CPLEX

366 views
Skip to first unread message

elham

unread,
Oct 14, 2012, 11:40:16 PM10/14/12
to AIMMS - The Modeling System
Hi,
I tried solving a MIL problem which was terminated by solver, because
I think that the tree structure gets very large. It only founds a
feasible solution for the problem (after nearly 25 millions
iteration). However, I already know a better solution with lower cost
(minimisation problem).

My question is that how I can force CPLEX to start with my initial
solution to see if it can find the optimal one. At the moment the
optimality gap is over 25%.

Thanks,
Elham

Luis Pinto

unread,
Oct 16, 2012, 8:18:46 AM10/16/12
to ai...@googlegroups.com
Hello Elham,

AIMMS/CPLEX checks if the current solution given by your variables is feasible.
It actually has a factor of how many constraints are feasible and if it is within the limit, it will seek to use it.

You can force CPLEX to use it as well.

Check CPLEX options (in the Project Settings):
Advanced Start

And general Solver setting
Accept basis

Description bellow:

Cheers,

Luis Pinto

www.unisoma.com.br




General - Advanced Start

Top Previous Next

Type: Selection
Range: The settings listed below
Default: Automatic

This option determines whether advanced start information should be used and how. Possible values are:

q Automatic (default): Depending on the setting of the general solvers option Accept Basis.
q Off: Do not use advanced start information.
q Use advanced basis. In case of a continuous model, CPLEX will use an advanced basis supplied by the user. In case of MIP, CPLEX will use the level values as start values or continue exploring the MIP tree if one is available.
q Crush advanced basis. In case of a continuous model, CPLEX will crush an advanced basis or starting vector supplied by the user. In case of MIP, CPLEX will use the level values as start values or continue exploring the MIP tree if one is available.

If set to "Use advanced basis" or "Crush advanced basis", this option indicates that CPLEX should use advanced starting information when optimization is initiated.

For MIP models, settings "Use advanced basis" and "Crush advanced basis" are currently identical. Both will cause CPLEX to continue with a partially explored MIP tree if one is available. If tree exploration has not yet begun, settings "Use advanced basis" or "Crush advanced basis" indicate that CPLEX should use a loaded MIP start, if available.

For continuous models solved with the simplex algorithm, setting "Use advanced basis" will use the currently loaded basis. If a basis is available only for the original, unpresolved model, or if CPLEX has a start vector rather than a simplex basis, then the simplex algorithm will proceed on the unpresolved model. With setting "Crush advanced basis", CPLEX will first perform presolve on the model and on the basis or start vector, and then proceed with optimization on the presolved problem. Setting "Crush advanced basis" can be particularly useful for solving fixed MIP models, where a start vector but no corresponding basis is available.

For continuous models solved with the barrier algorithm, settings "Use advanced basis" or "Crush advanced basis" will continue optimization from the last available barrier iterate.

For continuous models with setting "Automatic", CPLEX will use an advanced basis supplied by the user if the value of the general solvers option Accept Basis indicates that the basis should be accepted, and CPLEX will not use advanced start information if the value of the Accept Basis indicates that the basis should be rejected. For MIP models with setting "Automatic", CPLEX will not use the MIP start values.

Note

The option MIP Start Values that was available in CPLEX 9.1 (and earlier versions) is no longer available in CPLEX 10. It has been included in the option Advanced Start. If you do not want CPLEX to use a MIP start you should set this option to "Off"; if you want CPLEX to use a MIP start you should set this option to "Use advanced basis" (or "Crush advanced basis").


Interface - Accept Basis

Top Previous Next

Type: Floating point number
Range: [0,1]
Default: 0.01

After solving a model AIMMS will store the final basis. When this model has to be solved again, after it has been modified, AIMMS can pass the stored basis to the solver. When using this basis as a starting point for solving the modified model, the solver is often faster than if the solver has to start from scratch.

Whether or not AIMMS passes the stored basis to the solver depends on the setting of this option and the effect of your model modifications on the model structure. AIMMS will take the solution of the previous model (corresponding to the stored basis), and determine how many rows in the modified model are infeasible for that solution. If the amount of 'infeasible rows' is too high then AIMMS will not pass the basis (as it is likely that this basis will not be a good starting point for the modified model).

An Accept Basis value of 1 always accepts a provided basis and an Accept Basis of 0 always rejects a basis, even if no changes in the model were made. For other values of Accept Basis, AIMMS will pass the basis if and only if

number of 'infeasible rows' / number of rows <= Accept Basis.

Note

The value of Accept Basis has no influence on the restart basis; the solver will always load the file with the restart basis if the Restart option is set (and the file exists).
When you provide your own starting point for a NLP model, which is not the same as the solution of a previous solve of the same model, you should set this option to 0. If you do not do this, it is possible that the NLP solver will not find the optimal solution since the basis might force the solver to search locally while the starting point might not be near the optimal solution.




--
You received this message because you are subscribed to the Google Groups "AIMMS - The Modeling System" group.
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.


Reply all
Reply to author
Forward
0 new messages