[ The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]

library(eplex)

Interface to external Simplex or MIP solvers

Predicates

EplexInstance: (?Vars $:: ++Lo..Hi)
Constrains list elements to lie between the given bounds.
EplexInstance:(?X $= ?Y)
Constrains X to be equal to Y.
EplexInstance:(?X $=< ?Y)
Constrains X to be less than or equal to Y.
EplexInstance:(?X $>= ?Y)
Constrains X to be greater than or equal to Y.
EplexInstance: (?Vars :: ++Lo..Hi)
Constrains list elements to lie between the given bounds.
EplexInstance:(?X =:= ?Y)
Constrains X to be equal to Y.
EplexInstance:(?X =< ?Y)
Constrains X to be less than or equal to Y.
EplexInstance:(?X >= ?Y)
Constrains X to be greater than or equal to Y.
EplexInstance:eplex_cleanup
Destroy the external solver associated with EplexInstance.
EplexInstance:eplex_get(++ParamName, -Value)
Retrieve information about solver state and results for eplex instance EplexInstance.
eplex_instance(++EplexInstance)
Initialises the eplex instance EplexInstance.
EplexInstance:eplex_probe(+Objective, -Cost)
Invoke EplexInstance's external solver using a temporary objective function.
EplexInstance:eplex_read(++Format,++File)
Read a problem from a file into eplex instance EplexInstance.
EplexInstance:eplex_set(++ParamName, -Value)
Change initial options for solver state associated with EplexInstance
EplexInstance:eplex_solve(-Cost)
Explicitly invoke the external solver associated with EplexInstance.
EplexInstance:eplex_solver_setup(+Objective)
Setup an external solver state for eplex instance EplexInstance
EplexInstance:eplex_solver_setup(+Objective, ?Cost, ++ListOfOptions, +TriggerModes)
Setup an external solver state for eplex instance EplexInstance
eplex_solver_setup(?, ?, ?, ?, ?)
No description available
EplexInstance:eplex_var_get(+Var, ++What, -Value)
Obtain information for an individual solver problem variable Var.
EplexInstance:eplex_write(++Format,++File)
Write the problem in the solver for eplex instance EplexInstance to a file.
EplexInstance:get_changeable_value(?Var, -Val)
Interface predicate to access the changeable value for this variable.
instantiation_deviates(+Handle)
A trigger goal for lp_demon_setup/5.
EplexInstance:integers(?Vars)
Constrains Vars to integers for eplex instance EplexInstance.
lp_add(+Handle, +NewNormCons, +NewIntegers)
Add new constraints to a solver state Handle.
lp_add_columns(+Handle, +Columns)
Add new variables as columns to the external solver's matrix.
lp_add_constraints(+Handle, +Constraints, ++Integers)
Add new constraints to the demon solver Handle, possibly triggering it.
lp_add_constraints(+Handle, +Constraints, ++Integers, -Indices)
Add new expandable constraints to the demon solver Handle.
lp_add_vars(+Handle, +Vars)
Declare Vars to be problem variables for the solver state Handle
lp_cleanup(+Handle)
Destroy the specified solver Handle and clean up.
lp_demon_setup(+Objective, ?Cost, ++ListOfOptions, ++TriggerModes, -Handle)
Setup the external solver as a simplex demon.
lp_get(++ParamName, ?Value)
Obtain the value of a global parameter.
lp_get(+Handle, ++ParamName, -Value)
Retrieve information about solver state and results for solver state Handle.
EplexInstance:get_changeable_value(+Handle, ?Var, -Val)
Interface predicate to access the changeable value for this variable.
lp_get_license
Get a runtime license token for the external solver.
lp_get_license(+LicStr, +LicNum)
Get a runtime license token for the external solver.
lp_get_license_challenge(-Challenge)
Get parameter for computing license key (some external solvers only)
lp_probe(+Handle, +Objective, -Cost)
Invoke external solver using a temporary objective function.
lp_read(+File, ++Format, -Handle)
Read a problem from a file and setup a solver for it.
lp_release_license
Release a runtime license token for the external solver.
lp_set(++ParamName, ++Value)
Set a global parameter for the external solver.
lp_set(+Handle, ++What, +Value)
Change initial options for solver state Handle.
lp_setup(+NormConstraints, +Objective, ++ListOfOptions, -Handle)
Create a new external solver state for the constraints NormConstraints.
lp_solve(+Handle, -Cost)
Explicitly invoke the external solver.
EplexInstance:suspend_on_change(+Handle, ?Var, +Susp)
Record the given suspension to be scheduled whenever a solution is found for the Eplex handle.
lp_var_get(+Handle, +Var, ++What, -Value)
Obtain information for an individual solver problem variable Var.
lp_var_get_bounds(+Handle, ?Var, -Lo, -Hi)
Returns the bounds stored in the solver state of Handle for Var.
lp_var_occurrence(?Var, ?Handle, -Index)
Returns the column number Index for Var in the external solver represented by Handle
lp_var_set_bounds(+Handle, ?Var, +Lo, +Hi)
Imposes new bounds for Var on the solver state of Handle.
lp_write(+Handle, ++Format, +File)
Write a solver problem to a file.
normalise_cstrs(+Constraints, -NormConstraints, -NonlinConstraints)
Normalise the linear constraints in Constraints.
EplexInstance:piecewise_linear_hull(?X, ++Points, ?Y)
Relates X and Y according to a piecewise linear function.
EplexInstance:reals(?Vars)
Constraints Vars to the real domain for EplexInstance.
reduced_cost_pruning(+Handle, ?GlobalCost)
Prune bounds of all problem variables based on their reduced costs
solution_out_of_range(+Handle)
A trigger goal for lp_demon_setup/5.
EplexInstance:suspend_on_change(?Var, +Susp)
Record the given suspension to be scheduled whenever a solution is found for the EplexInstance.

Reexports

reexport eplex_s
except add_constraint / 1, lp_eq / 3, lp_ge / 3, lp_le / 3, lp_interval / 3, lp_int_interval / 3, lp_real_interval / 3, reals / 2, integers / 2, eplex_get / 3, eplex_cleanup / 1, eplex_probe / 3, eplex_solve / 2, eplex_var_get / 4, eplex_set / 3, eplex_read / 3, eplex_write / 3

Description

This library lets you use an external Simplex or MIP solver like CPLEX or XPRESS-MP from within ECLiPSe. The library provides just the interface, and does not include the solver or any required licence to use them.

The is the `standalone' version of the eplex library which does not require additional libraries (e.g. IC) to support the variable bounds. Instead, the bounds are stored in the external solver instance. This version of eplex is not completely source compatible with the other versions of eplex. Note, however, that once the library is loaded, the default eplex instance created is eplex and the low-level predicates are accessed through the module eplex, rather than s_eplex.

The main difference from the other eplex versions are:

The constraints provided are:

X =:= Y
equality over linear expressions
X >= Y
inequality over linear expressions
X =< Y
inequality over linear expressions
X $= Y
equality over linear expressions
X $>= Y
inequality over linear expressions
X $=< Y
inequality over linear expressions
integers(Xs)
integrality of variables
Vs :: Bound
Bounds on variables
Vs $:: Bound
Bounds on variables
Their operational behaviour is as follows:

The following arithmetic expression can be used inside the constraints:

X
Variables. If X is not yet a ranged variable for the external solver instance, it is turned into one via an implicit declaration X :: -inf..inf.

123, 3.4
Integer or floating point constants.

+Expr
Identity.

-Expr
Sign change.

E1+E2
Addition.

sum(ListOfExpr)
Equivalent to the sum of all list elements.

E1-E2
Subtraction.

E1*E2
Multiplication.

ListOfExpr1*ListOfExpr2
Scalar product: The sum of the products of the corresponding elements in the two lists. The lists must be of equal length.

About


Generated from eplex.eci on Sat Aug 7 01:44:32 2004