Basically, I failed to trying to implement individual global MINLP solvers (alphaBB, ANTIGONE, BARON, Couenne, LindoAPI, and SCIP) in C++/Xcode/Mac system. On the other hand, I realize that GAMS already integrate a lot of solvers. So I am thinking of using C++/Xcode/Mac system to construct models and let GAMS solve that. What would be the standard practice in this respect? Thank you.

asked 05 Feb '15, 19:16

Chivalry's gravatar image

Chivalry
229117
accept rate: 0%


Check out the GAMSLinks project at COIN-OR for interfacing with the Bonmin solver at COIN-OR. You could probably also extend GAMSLinks for the solver of your choice.

link

answered 05 Feb '15, 20:03

Matthew%20Saltzman's gravatar image

Matthew Salt... ♦
4.7k310
accept rate: 17%

2

I think the question is rather about interfacing GAMS itself from the C++ project and not about solvers called from GAMS.

(06 Feb '15, 06:57) rschwarz

I'm assuming that you want GAMS to solve some subproblems during your main algorithm (e.g., an exact algorithm within a matheuristic). In other words, your main algorithm would provide the inputs to your subproblems (the inputs could parameters or variables that should be fixed), while GAMS would solve the resulting mathematical model. Considering that, you can achieve this as follows:

  1. Build the necessary model in GAMS IDE or any text editor of your choice. This model file should be capable of reading the required inputs and exporting the necessary outputs.
  2. Using your main algorithm in C++, export your input data (i.e., model parameters) as some kind file that is recognized by GAMS (you could do it using text, Excel, or GDX files).
  3. Solve the model using GAMS via calling it from your main algorithm.
  4. Read the GAMS output (e.g., solution and marginal values) using your main algorithm.

GAMS provides all of the necessary data structures and methods to do this via its API facilities. The introduction to this approach is available from here.

link

answered 07 Feb '15, 12:16

Ehsan's gravatar image

Ehsan ♦
4.8k31122
accept rate: 16%

edited 07 Feb '15, 12:17

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×51
×46

Asked: 05 Feb '15, 19:16

Seen: 1,596 times

Last updated: 07 Feb '15, 12:17

OR-Exchange! Your site for questions, answers, and announcements about operations research.