Multi-objective optimization with tolerance


For one of my projects, I would like to use the functionality multi-objective optimization with tolerance via the procedure GMP::Column::SetAsMultiObjective. Unfortunately, the results are not as I expected. Therefore I made a very small example to test this procedure.

In the example, we have one variable (x1) which is nonnegative, one constraint (c1: x1 smaller or equal than 10) and two objectives: (obj1: x1 and obj: -x1). Moreover, the direction of the model (ex1) is maximize. To solve the example, I used the following code:

myGMP := GMP::Instance::Generate( ex1 );

GMP::Column::SetAsMultiObjective( myGMP, obj1, 2, 1, 2, 0);
GMP::Column::SetAsMultiObjective( myGMP, obj2, 1, 1, 0, 0);

GMP::Instance::Solve( myGMP );

Based on the first objective (with the highest priority), I would expect the solution to be x1 = 10. Then, since we also have a second object and we allow the obj1 to have an absolute tolerance equal to 2, I would expect that the final solution would be x1 = 8. Instead the solution is x1 = 0.

Is there something I am missing?

Kind regards,
Tom Luijten

Best answer by Chris Kuip 4 May 2019, 16:52

View original

2 replies

Userlevel 4
Badge +7
Hi Tom,

I've been able to reproduce the behavior you described. Thank you for reporting.
I will share the example I made with AIMMS Development.

With kind regards,

Userlevel 4
Badge +7
Hi Tom,

I created an example using GMP::Column::SetAsMultiObjective and drafted an associated How To article.

This example is based on the DietProblem from the AIMMS examples modified to minimize both price and calories.

Please find the example and the draft in pdf form enclosed.

With kind regards,



Didn't find what you were looking for? Try searching on our documentation pages:

AIMMS Developer & PRO | AIMMS How-To | AIMMS SC Navigator