next up previous index
Next: Solver Specific Information Up: EPLEX: The ECLiPSe/CPLEX Interface Previous: Dealing with Large and   Index


Error Handling

If the external solver's optimization aborts with an error condition, or if limits are exceeded, lp_solve/2 raises one of the following events:

eplex_suboptimal
This means that a solution was found but it may be suboptimal. The default behaviour is to print a warning and succeed.
eplex_unbounded
This means that the problem is unbounded. The default behaviour is to bind Cost to infinity (positive or negative depending on the optimisation direction), print a warning and succeed. CAUTION: No solution values are computed when the problem is unbounded, so unless the problem was set up with the solution(no) option, an error will occur when trying to continue as if the optimisation had succeeded.
eplex_unknown
This means that due to the solution method chosen, it is unknown whether the problem is unbounded or infeasible. The default behaviour is to print a warning and fail (even though this may be logically wrong!).
eplex_abort
Some other error condition occurred during optimisation. The default behaviour is to print an error and abort.
If the default behaviour for these special cases is undesirable, the programmer can define their own handlers for those events, using set_event_handler/2. Such a handler could for instance change parameter settings and call lp_solve again. The handler always receives two arguments, the event name and the lp_solve/2 goal in which the event was raised. The return status of the unsuccessful external solver invocation that caused the event can be accessed using lp_get(Handle, status, ...).


next up previous index
Next: Solver Specific Information Up: EPLEX: The ECLiPSe/CPLEX Interface Previous: Dealing with Large and   Index
Warwick Harvey
2002-05-15