Hi everyone,

I used BARON for my MINLP model (linear constraint but non linear objective function) and the solver report shows normal completion and solver did not provide marginals for model fulfilment. Does it mean the solution is not optimal? If so, how should I solve the problem? Thank you very much indeed!

## Solver didn't provide marginals for model fulfilment

### Re: Solver didn't provide marginals for model fulfilment

Hello lixlz51,

Your post raised some questions. First, you don't say anything about yourself (name, affiliation, etc.) This forum isn't intended for anonymous usage.

Second, what do you mean by "model fulfillment"? What is it you would do with the marginal values (for a MINLP) that BARON might return?

-Steve

Your post raised some questions. First, you don't say anything about yourself (name, affiliation, etc.) This forum isn't intended for anonymous usage.

Second, what do you mean by "model fulfillment"? What is it you would do with the marginal values (for a MINLP) that BARON might return?

-Steve

### Re: Solver didn't provide marginals for model fulfilment

Hi Steve,

Thank you for pointing that out for me! I totally forgot to complete my profile. Basically, I have developed a MINLP model for online order fulfilment for my study. I wanted to check the marginal value to see the shadow price for sensitivity analysis. I used ANTIGONE and it gives marginal but the values are like 2000ish for the decision variables. I am not sure whether I compiled the model correctly now. The solver summary for ANTIGONE says:

Solver status: 1 Normal completion

Model status: 8 Integer solution

Termination status: Global minimum.

Does it mean it is global optimal? Thank you very much indeed!

Thank you for pointing that out for me! I totally forgot to complete my profile. Basically, I have developed a MINLP model for online order fulfilment for my study. I wanted to check the marginal value to see the shadow price for sensitivity analysis. I used ANTIGONE and it gives marginal but the values are like 2000ish for the decision variables. I am not sure whether I compiled the model correctly now. The solver summary for ANTIGONE says:

Solver status: 1 Normal completion

Model status: 8 Integer solution

Termination status: Global minimum.

Does it mean it is global optimal? Thank you very much indeed!

### Re: Solver didn't provide marginals for model fulfilment

The model status of 8 Integer Solution indicates that the solver has found an integer solution, but it is not making the stronger claim that it is the globally optimal solution. This is somewhat at odds with the message "Termination status: Global minimum." that you have in your note. Without seeing the log I could not say more about what ANTIGONE has claimed to find.

The question of whether marginals are returned and how to interpret them is orthogonal to the termination status question: whether the current integer-feasible point is a global optimum or not, the marginals would be computed and interpreted in the same way: the discrete vars are fixed at their current values and the resultant NLP marginals are returned.

HTH,

-Steve

The question of whether marginals are returned and how to interpret them is orthogonal to the termination status question: whether the current integer-feasible point is a global optimum or not, the marginals would be computed and interpreted in the same way: the discrete vars are fixed at their current values and the resultant NLP marginals are returned.

HTH,

-Steve

### Re: Solver didn't provide marginals for model fulfilment

Hi dirkse,

Thank you so much for the reply. I got a screenshot for the log. I have reduced the the number of stores from 8 to 3 to hopefully understand the mechanism better.

Thank you so much for the reply. I got a screenshot for the log. I have reduced the the number of stores from 8 to 3 to hopefully understand the mechanism better.

### Re: Solver didn't provide marginals for model fulfilment

Hi,

I can get similar output using the procsel model from the GAMS model library, so I'll use that output as an example. Running with defaults (but ANTIGONE as the solver) I get this in the .lst file:

The MODEL STATUS of 8 Integer Solution indicates that an integer feasible solution has been found, but that no claim of global optimality is being made. This is consistent with the lines further down about Best Feasible Point, Best Possible Point, and Relative Gap. Unfortunately, the line just above that - Termination Status : Global maximum - is not consistent with what the solver is actually reporting. I'm not sure why that line is there, but I guess it has some history and that this is not the first time someone has been confused by it. If I learn more about that I'll let you know.

If you reduce the relative optimality tolerance (see https://www.gams.com/latest/docs/UG_Opt ... arch=optcr for details) you can get a better bound. If you set it to zero, you can get a model status of 1 Optimal.

HTH,

-Steve

I can get similar output using the procsel model from the GAMS model library, so I'll use that output as an example. Running with defaults (but ANTIGONE as the solver) I get this in the .lst file:

Code: Select all

```
S O L V E S U M M A R Y
MODEL process OBJECTIVE pr
TYPE MINLP DIRECTION MAXIMIZE
SOLVER ANTIGONE FROM LINE 96
**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 8 Integer Solution
**** OBJECTIVE VALUE 1.9231
RESOURCE USAGE, LIMIT 0.054 1000.000
ITERATION COUNT, LIMIT 4 2000000000
EVALUATION ERRORS 0 0
ANTIGONE 25.1.2 r67455 Released Aug 1, 2018 WEI x86 64bit/MS Windows
-------------------------------------------------------------------------------
ANTIGONE: Algorithms for coNTinuous/Integer Global Optimization; Version 1.1
Ruth Misener and Christodoulos A. Floudas
Computer-Aided Systems Laboratory (CASL)
Department of Chemical & Biological Engineering; Princeton University
-------------------------------------------------------------------------------
Termination Status : Global maximum
Best Feasible Point: +1.923099e+00
Best Possible Point: +2.115409e+00
Relative Gap: +1.000000e-01
```

If you reduce the relative optimality tolerance (see https://www.gams.com/latest/docs/UG_Opt ... arch=optcr for details) you can get a better bound. If you set it to zero, you can get a model status of 1 Optimal.

HTH,

-Steve

### Re: Solver didn't provide marginals for model fulfilment

Dear Steve,

Thank you very much indeed for the illustration and explanation! I shall try with the optimality tolerance reduction and see how it goes. Have a good week!

Cheers,

Lina

Thank you very much indeed for the illustration and explanation! I shall try with the optimality tolerance reduction and see how it goes. Have a good week!

Cheers,

Lina