This document supplies information on the options for using the 'AfortMP' solver in AMPL. The general syntax of a solver option command is: option afortmp_options "<option list>"; Where <option list> comprises one or more options separated by blank space. Quotes may be omitted if only one option is mentioned with no interior blank spaces. Character '\' (backslash) may be used within the option list as line terminator in order to continue options on the following line. The general form of an individual option is: <keyword>=<value> where <keyword> is the coded name of an option and <value> is the value to be assigned. The '=' sign may have blank spaces around it. The nature of an option <value> is dependant on the option - at present all option values are numeric and one of the following kinds: - Integer - Real, decimal or floating point - Switch, zero meaning OFF or one meaning ON We expect that string values may feature in future enhancements. A description of each option is given below. 1) General Algorithm Switches ------------------------------ ipmalgorithm=<switch> Controls whether Interior Point Method (IPM) is to be used rather than SSX as the main solver. Default is 0 (OFF). mip=<switch> If the model contains discrete variable types then normally the MIP (branch & bound) algorithm is invoked to find the integer optimum. This can be stopped in trial-running with option 'MIP=0', and then any optimum found will refer to the continuous relaxation. Default is 1 (ON). scale=<switch> Controls whether to execute SCALE before calling the main solve algorithm (SSX or IPM). Default is 1 (ON). presolve=<switch> Controls whether to execute PRESOLVE before calling the main solve algorithm (SSX or IPM). If PRESOLVE is used then POSTSOLVE is called to correct the optimum basis. Default is 0 (OFF). mippreprocess=<switch> Controls whether to execute MIP preprocessor in a problem with mixed integer variables. Default is 0 (OFF). cutgenerate=<switch> Controls whether cut-processing will be used in the Mixed Integer algorithm. Default is 0 (OFF). 2) Maximum Limits ------------------ maxssxiter=<integer> Supplies the iteration limit for SSX algorithms. Default is 50000. maxipmiter=<integer> Supplies the iteration limit for the IPM algorithm. Default is 80. maxmipintsol=<integer> Supplies the integer solution limit for the MIP algorithm. Default is 300. maxmipnode=<integer> Supplies the node execution limit for the MIP algorithm. Default is 50000. maxmiptime=<real> Supplies the execution time limit (seconds) for the MIP algorithm. Default is 50000.0. maxqpsiter=<integer> Supplies the iteration limit for the QP-SSX algorithm. Default is 2000. 3) General Tolerances ---------------------- djtol=<real> This sets the DJ tolerance for SSX algorithms. Default is 1.0e-5. zerotol=<real> This sets the zero tolerance for SSX and other algorithms. Default is 1.0e-16. rhstol=<real> This sets the RHS tolerance for the SSX algorithm. Default is 1.0e-5. integertol=<real> This sets the criterion for adjudging whether the solution value of some Mixed Integer variable-type may be considered feasible. Default is 0.001. 4) Options for Mixed Integer ----------------------------- mipcutoffrel=<real> This supplies a fraction to control the accuracy of an integer optimum result. The fraction, mutiplied into the gap between best integer objective and the continuous relaxation objective, is taken as 'cutoff tolerance' - that is subtracted from the best integer objective (or added in the case of MAXIMIZE) in order to form the bound restricting further search of the tree. Default is 0.0. mippriorityup=<switch> Controls the preferred branch for next node selection in MIP. If the switch is ON then node selection follows the UP direction with a corresponding change to fraction criteria in selecting a variable for branching. Otherwise the UP and DOWN directions are considered equally. The contol is particularly useful when the UP branch forces several other discrete choices to the DOWN value - e.g. in binary models with SOS-type constraints. Default is 0 (OFF). miplistoutput=<switch> Controls whether to create an 'agenda list' output file holding the best integer solution. Output is written to a file named '<stub>.agl' whenever an improved integer solution is obtained. The file may be used in a subsequent solver execution by using control 'miplistinput=1'. Default is 0 (OFF). miplistinput=<switch> Controls whether a previous agenda list file '<stub>.agl', created with control 'miplistoutput=1', is to be read in as a starting integer solution. If the model differs from the previous one only in relaxing certain bounds or RHS limits then this restart may provide an advanced integer solution reducing the search time. The variable numbering of the two executions must be identical. Default is 0 (OFF). miplogfrequency=<integer> This option sets the node logging interval in terms of node-count (applies if the log level is 2 or more). Default is 1. 5) Options for Quadratic Programming ------------------------------------ qpsdjtol=<real> This sets the DJ tolerance for the QP-SSX algorithm. Default is 1.0e-7. qpsrhstol=<real> This sets the RHS tolerance for the QP-SSX algorithm. Default is 1.0e-7. maxqpsrhstol=<real> Supplies a maximum to the RHS tolerance for the QP-SSX algorithm. Normally a solution is to be found within the tolerance given by 'qpsrhstol', but if this proves impossible this control specifies a relaxation. Relaxed solutions are indicated by separate codes that can be displayed in 'solver_result_num'. Default is 1.0e-4. qpmemextension=<integer> This control sets the amount of extra memory (bytes) to be added for QP models. Default is 10000000, normally enough for any small-to- medium sized model. qpsscale=<switch> Controls whether a symmetric scaling is to be used in QP-SSX. Default is 0 (OFF). 6) Options for Output and Display --------------------------------- In the AMPL/FortMP solver all display and message output is associated with a message level. Level 0 comprises error-messages, level 1 comprises stage completion messages and higher levels may show progressively more information. Logged output is written to a file '<stub>.log' - each new execution for models with the same stub appending to the end of an existing '<stub>.log' file if it exists already. However if an execution terminates normally (exitcode zero) then the log-file is deleted unless user explicitly chooses to retain it with option 'keeplog=1' - see below. If execution terminates with an error then the log-file is retained. Options are as follows: logsolver=<integer> This control supplies a maximum level-number from 0 to 4 for the output log during FortMP solver execution (excludes the AMPL/FortMP interface). The default is 4 recording all mesages from the solver - however the solver has further options controlling individual levels for each algorithm, and these levels all default to 1. Options to adjust individual levels are available via the other SPECS commands - see next section. displaysolver=<integer> This control supplies a maximum level-number from 0 to 4 for the console display during FortMP solver execution (excludes the AMPL/FortMP interface). The default is zero - suitable for small models - and for larger models level 1 should be used to allow progress to be monitored. logafinterface=<integer> This control supplies a maximum level-number from 0 to 3 for the console display during AMPL/FortMP iterface execution. This is for debugging purposes, and displayed messages are all copied to the log. If the option is used at all, it should appear first in the option list (otherwise some messages may be lost). The default is 0 (error messages only). keeplog=<switch> If this switch is ON the logfile is retained whatever the exitcode. Default is 0 (OFF). rewindlog=<switch> Setting this switch causes the logfile to be rewound (deleting previous output) before starting each solver run. Note that rewinding also deletes the options listed for the current execution and may not be desirable for this reason. Default is 0 (OFF). 7) Other SPECS commands ----------------------- A large number of additional controls can be applied to the solver by using the SPECS command file. This is a file 'fortmp.spc' located in the current working directory. It is written according to the descriptions given in the FortMP manual and other documentation - eg 'Commands.doc'. The following options are available to control its use. usespecfile=<switch> If this switch is set to 1 (ON) then the FortMP solver reads an additional source of options in the file 'fortmp.spc'. These will override any equivalents entered in the AMPL script. In WIN32 systems there is a dialogue available for building this file - see control 'buildspecs' described next. Default is 0 (OFF). buildspecs=<switch> In the WIN32 system only, setting this switch to 1 (ON) invokes a dialogue to build the SPECS command file. Users wishing to employ this dialog should contact Optirisk systems. Default is 0 (OFF).
Return to the AMPL remote access page.
Return to the AMPL home page.