MIQP

69 views
Skip to first unread message

Mauro Rozenberg

unread,
Jul 18, 2012, 12:06:22 PM7/18/12
to ai...@googlegroups.com
Hi all.
I'm bulding a model which has nothing too complicated but aimms is trying to solve it as an MIQP model. Which in the end ends up with a solver error message.
Aimms is using the AOA solver.
The issue is that I think it should be solved as a MIP. There's no quadratic term in the model.
Has this happend to anyone before? Any clues?
Is there a way to indicate to Aimms that it should solve it as an MIP?

Thanks,
Mauro.

Sergio Bruno

unread,
Jul 18, 2012, 1:11:08 PM7/18/12
to ai...@googlegroups.com
change the problem type in your Mathematical Problem identifier. It is probably set to Automatic right now


--
You received this message because you are subscribed to the Google Groups "AIMMS - The Modeling System" group.
To view this discussion on the web visit https://groups.google.com/d/msg/aimms/-/af-eM_VeET8J.
To post to this group, send email to ai...@googlegroups.com.
To unsubscribe from this group, send email to aimms+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/aimms?hl=en.

Mauro Rozenberg

unread,
Jul 18, 2012, 4:23:37 PM7/18/12
to ai...@googlegroups.com
Thanks.
Now I know which is the variable that makes the problem not-linear.
The problem is that makes no sence that this variable is not linear. I'm maximizing a mix of parameters with a certain weight.

If I use a variable to mix the parameters and a second one to sum them and maximize then it's not-linear:
    VARIABLE:
       identifier   :  SKU_score
       index domain :  (a)
       range        :  free
       definition   :  0.5*iSKU_vpd(a)+0.5*iSKU_vpdsuc(a);
    VARIABLE:
       identifier   :  Suma_score
       range        :  free
       definition   :  sum[(a,e),Ubicacion(a,e)*SKU_score(a)];
Ubicacion is a binary variable that identifies the selected SKUs; and iSKU_vpd and iSKU_vpdsuc are parameters.

But if I mix both variables into one it works:
    VARIABLE:
       identifier   :  Sum_score
       range        :  free
       definition   :  sum[(a,e),Ubicacion(a,e)*{0.5*iSKU_vpd(a)+0.5*iSKU_vpdsuc(a)}] ;

Any clues?
I could do it all in one huge variable (I have many parameters to mix) but then it wouldn't easy to modify.

Thanks,
Mauro.



On Wednesday, July 18, 2012 2:11:08 PM UTC-3, Sergio Bruno wrote:
change the problem type in your Mathematical Problem identifier. It is probably set to Automatic right now

Luis Pinto

unread,
Jul 18, 2012, 4:29:04 PM7/18/12
to ai...@googlegroups.com
If iSKU_vpd and iSKU_vpdsuc are parameters, then SKU_score should also be a parameter, not a variable.
Even though it is intuitive to you that the result of this calculation only depends on parameters, if you define the identifier as a variable, the system will literally create it, making it a non-linear model.

Try changing SKU_score to parameter.
Should work.

Cheers,

Luis Pinto

www.unisoma.com.br

--
You received this message because you are subscribed to the Google Groups "AIMMS - The Modeling System" group.
To view this discussion on the web visit https://groups.google.com/d/msg/aimms/-/e9dK_TzGdG0J.

Mauro Rozenberg

unread,
Jul 18, 2012, 5:41:47 PM7/18/12
to ai...@googlegroups.com
You're right!
I had done what you told me for the parameter iSKU_vpdsuc that comes from another parameter but I didn't do it for the score.

Thanks!



On Wednesday, July 18, 2012 5:29:04 PM UTC-3, Luis Pinto - UniSoma wrote:
If iSKU_vpd and iSKU_vpdsuc are parameters, then SKU_score should also be a parameter, not a variable.
Even though it is intuitive to you that the result of this calculation only depends on parameters, if you define the identifier as a variable, the system will literally create it, making it a non-linear model.

Try changing SKU_score to parameter.
Should work.

Cheers,

Luis Pinto

www.unisoma.com.br

To unsubscribe from this group, send email to aimms+unsubscribe@googlegroups.com.

Mauro Rozenberg

unread,
Aug 1, 2012, 8:37:21 AM8/1/12
to ai...@googlegroups.com
Hi. It's me again with a similar error.
This time I am trying to solve an MIQP model but the AOA solver returns this error messege:
To run AOA the name of the AOA callback procedure should be assigned to suffix 'CallbackAOA' of 'Min_carga_marg'. For example: Min_carga_marg.CallbackAOA := 'OuterApprox::BasicAlgorithm'; where 'OuterApprox' is the prefix of the Outer Approximation module.
The model is exactly like an MIP model that works perfectly but I have squared the optimization variable.
Any clues?

Best,
Mauro.

Guido Diepen

unread,
Aug 7, 2012, 9:21:18 AM8/7/12
to ai...@googlegroups.com
Hi Mauro,

you get this error when AOA is used as the solver for your type of problem. Using the AOA solver actually requires that you first add a system module. 

Instead of using this standard AOA solver, it might be better to use the GMP version of AOA. You can find some more information about how to use this GMP version on the AIMMS blog:  http://blog.aimms.com/2012/02/solving-minlp-problems-with-aimms-outer-approximation/ 

Guido Diepen
AIMMS Specialist
Reply all
Reply to author
Forward
0 new messages