Solver Interface

The information about the problem and its structure as processed by SML is stored in a tree of ExpandedModel objects.

The solver can be called by


where 'em' is the ExpandedModel representing the root node.

This behaviour should be changed. Rather we should do something like Amplsolver:
  • Either, compile SML into a library that provides a call of the form
ExpandedModel *SML_process_model(char *model_file_name, char *data_file_name)

Each ExpandedModel object represents one node of the Expanded Model tree. It roughly corresponds to a child in a decomposition scheme applied to solve the problem. It gives information about the variables and constraints local to this node as well as links to any children.

It further provides an interface to AMPL that provides functions to ask AMPL to evaluate constraint functions on this node.