next up previous index
Next: FDPLEX: A Hybrid Finite Up: Porting to Standalone Eplex Previous: Porting to Standalone Eplex   Index

Differences between Standalone Eplex and Older Non-Standalone Eplex

The main difference between the standalone eplex and the non-standalone eplex is that the standalone version does not use an ECLiPSe `bounds keeper' like lib(ic) or lib(range) to provide the ranges for the problem variables. Instead, ranges for variables are treated like another type of eplex constraint, i.e., they are posted to an eplex instance, and are stored with the external solver state.

In the non-standalone eplex, the bounds of all problem variables are transferred from the bounds keeper to the external solver each time the solver is invoked, regardless of if the bounds for the variables have changed or not since the last invocation. This can become very expensive if a problem has many variables. With the standalone eplex, this overhead is avoided as the external solver bounds for variables are only updated if they are explicitly changed. A possible inconvenience is that for hybrid programming, where eplex is being used with another ECLiPSe solver, any bound updates due to inferences made by the ECLiPSe solver are not automatically transferred to the external solver. This can be an advantage in that it leaves the programmer the freedom of when and how these bound changes should be transferred to the external solver.

The main user visible differences with the non-standalone eplex are:


next up previous index
Next: FDPLEX: A Hybrid Finite Up: Porting to Standalone Eplex Previous: Porting to Standalone Eplex   Index
Warwick Harvey
2004-08-07