[ library(eplex) | The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]

lp_set(+Handle, ++What, +Value)

Change initial options for solver state Handle.
Handle
Handle to a solver state
What
Option to set
Value
Value being set

Description

This primitive can be used to change some of the initial options even after setup. Handle refers to an existing solver state, What can be one of the following:

method
Set the method that will be used to solve the problem. Value is one of default, primal, dual, net_primal, net_dual, barrier, barrier_primal, barrier_dual. Note that some of these methods may not be available on all external solvers. In case of MIP solving, this is the start algorithm (the one that is used to solve the initial relaxation).

solution
Make the solutions available each time the problem has been (re-)solved successfully. Value is one of the atoms yes or no.

reduced_cost
Make the reduced costs available each time the problem has been (re-)solved successfully. Value is one of the atoms yes or no.

slack
Make the constraint slacks available each time the problem has been (re-)solved successfully. Value is one of the atoms yes or no.

dual_solution
Make the dual solutions available each time the problem has been (re-)solved successfully. Value is one of the atoms yes or no.

keep_basis
Store the basis each time the problem has been solved successfully, and use this basis as a starting point for re-solving next time. Value is one of the atoms yes or no.

demon_tolerance
Specify how far outside a variable's range an lp-solution can fall before lp_demon_setup/5 re-triggers. Value is a comma-separated pair (RealTol,IntTol) of floating-point values (default (0.00001,0.5)).

use_var_names
Specify if variable names (set using set_var_name/2 of the var_name library) should be passed to the external solver. If a particular variable does not have a name, a solver's default name would be used. Note that for XPRESS-MP, there is a limit on the length of the name, which can be changed between 8 and 64 in steps of 8 with the parameter N_NAMLEN. Variable names longer than this limit are truncated to the limit. Note also that only new variables from constraints added after the lp_set/3 call will pass their names to the external solver. Value is one of the atoms yes or no.

timeout
Set the external solver's specific time-out parameter to time-out after Value seconds. Value is a positive number, which is mapped into the appropriate solver format before the the parameter is set, for example, In cases where the solver expects an integer for the time-out interval, the time given is rounded up to the next integer value. The solver will abort (in either the abort or suboptimal state, depending on if a suboptimal solution was found) if the optimal solution was not found within the time limit. If the solver's parameters are global and not problem specific, an unimplemented functionality exception would be raised (In such cases, the option can be set globally using lp_set/2). It is recommended that this be used instead of the solver specific optimizer_param(Param) for setting timeouts as these parameters have different names, types and semantics. Note that the new setting is not undone on backtracking.

suboptimal_handler
Value is a user defined goal to handle the case when the external solver returned a suboptimal solution (because the problem was aborted). Value would replace any existing suboptimal handler, and would also be run in place of raising the default eplex_suboptimal event.

unbounded_handler
Value is a user defined goal to handle the case when the problem is unbounded. Value would replace any existing unbounded handler, and would be run in place of raising the default eplex_unbounded event.

unknown_handler
Value is a user defined goal to handle the case when the external solver was not able to determine if the problem is unbounded Value would replace any existing unknown handler, and would be run in place of raising the default eplex_unknown event.

abort_handler
Value is a user defined goal to handle the case when the external solver aborted without finding any solution. Value would replace any existing abort handler, and would be run in place of raising the default eplex_abort event.

optimizer_param(Param)
Set the external solver's control parameter Param for the problem Handle. If the solver's parameters are global and not problem specific, an unimplemented functionality exception would be raised. See lp_get/3 for more details on the external solver's parameters.

write_before_solve
Value can be the pair (Format,File) or the atom no. If (Format,File) is given, Eplex will ask the external solver to dump the problem each time the solver is invoked by calling lp_write/3. This allows the problem in an eplex_probe/2 or lp_probe/3 to be dumped. Format and File are simply passed to lp_write/3. `no' will turn off this dumping.

post_equality_when_unified
Value can be the atoms yes or no. Determines if an equlity constraint between two solver variables will be posted to the solver when these variables are unified. Setting Value to no means that the constraint will not be posted. Note that this can lead to the solver's problem becoming inconsistent with ECLiPSe's.

Making solutions available means that they can be retrieved using lp_get/3 or lp_var_get/4 after the solver has been run successfully.

Resatisfiable

no

See Also

lp_setup / 4, lp_get / 3, lp_var_get / 4, eplex_set / 2