Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.rst Mark Sulum as discontinued and remove from the readme Feb 18, 2016 Refactor solver API Sep 30, 2014 Update sulum driver Feb 18, 2016
sulum.h Update the Sulum driver Apr 30, 2015


Sulum (discontinued)

The solver sulum uses Sulum to solve LP or MIP problems.

Normally the sulum solver is invoked by AMPL's solve command, which gives the invocation

sulum stub -AMPL

in which is an AMPL generic output file (possibly written by ampl -obstub or ampl -ogstub). After solving the problem, the solver writes a stub.sol file for use by ampl's solve and solution commands. When you run ampl, this all happens automatically if you give the AMPL commands

option solver sulum;

You can control the solver by setting the environment variable sulum_options appropriately (either by using ampl's option command, or by using the shell's set and export commands before you invoke ampl). You can put one or more (white-space separated) option assignments in $sulum_options. The option version doesn't take a value:

Phrase Meaning
version Report version details before solving the problem.

Others are name-value pairs separated by '=', as in


which limits the simplex optimizer time to 600 seconds.

The following command prints the full list of options with descriptions:

sulum -=

See Sulum Options for AMPL for the full list of options.

solve_result_num values

Here is a table of solve_result_num values that sulum can return to an AMPL session, along with the text that appears in the associated solve_message.

Value Message
0 optimal solution
100 feasible solution
101 dual feasible solution
102 integer feasible solution
200 infeasible problem
201 infeasible or unbounded
202 integer infeasible
203 integer infeasible or unbounded
600 interrupted

If you invoke sulum stub -AMPL or sulum stub, you can also supply additional command-line arguments of the form name=value. Such arguments override specifications in $sulum_options. Example:

ampl -obfoo foo.model
nohup sulum -s foo 2>>err&

to solve a problem whose solution will take a while; after it finishes,

ampl foo.model -
solution foo.sol;
display ... /* things involving the computed solution */;

(Here, - denotes standard input, and ampl reads the solution... and display... lines.)