CONOPT is a nonlinear solver written by Arne Drud. It is based on the reduced gradient method. Command-line arguments to conopt either have the form keywd= or keywd=value where keywd is one of the keywords described below, or is the name of a CONOPT "CR-Cell" (as described in separate CONOPT documentation). Alternatively, you can invoke conopt the way AMPL's solve command does, i.e., conopt stub -AMPL [keywd=value ...] where stub was specified in ampl -obstub ... or ampl -ogstub... Such an invocation causes conopt to read from stub.nl and to write stub.sol. ------------------ Controlling conopt ------------------ Conopt reads keywords and values from the environment (shell) variable conopt_options and from the command line. Case is ignored. For logical CR-Cells, use 0 for FALSE and 1 for TRUE. Here are the non-CR-Cell keywords that conopt understands; fp indicates a floating-point value and none indicates a keyword that appears by itself, without a value. Keyword Value Meaning debug integer When to use finite differences to check derivatives: 0 ==> never (default); -1 ==> only at the starting point; > 0 ==> every that many iterations. debug2d integer When to use finite differences to check the Lagrangian Hessian: 0 (default) ==> never; -1 ==> only at the starting point; > 0 ==> every that many iterations. errlim integer Evaluation-error limit (default 500). If the objective or constraints cannot be evaluated at a proposed next iterate, CONOPT will try a shorter step at most errlim times. hess integer whether to use the Lagrangian Hessian: 0 = no; 1 = yes: just the explicit Hessian; 2 = yes: just Hessian-vector products; 3 = yes (default): use both explicit and Hessian-vector products; -1 = no, but evaluate gradients as for Hessian computations (debug option). iterlim integer iteration limit (default 1000000). logfreq integer For outlev=3, print one summary line for every logfreq iterations. Default = 1. maxftime fp Limit on cpu seconds; default 999999. maxfwd integer Use forward automatic diff. for defined variables that depend on at most maxfwd other variables. Default = 5. maximize none Maximize the objective (even if the model says to minimize it). maxiter integer Maximum iterations; default 999999. minimize none Minimize the objective (even if the model says to maximize it). objno integer Which objective to optimize: 1 = first objective (default), 2 = second objectve, etc. 0 = just satisfy the constraints. outlev integer 0 = no options echoed on stdout. 1 (default) = options but no iteration log. 2 = CONOPT "SCREEN" output on stdout. 3 = log line every logfreq iterations. superbasics integer limit on number of superbasic variables (default >= 500). timing integer 0 = no timing report. 1 = timing report on stdout. 2 = timing report on stderr. 3 = timing report on both. version none Show version and CONOPT banner. workmeg fp 0 = let CONOPT decide how much memory to allocate. > 0 means allocate workmeg megabytes of memory. ------------------ Sample Invocations ------------------ If you're using AMPL, just say option solver conopt; solve; If you've executed, say, ampl -objunk junk.model junk.data then you could say conopt junk maxiter=300 rtmaxj=1e20 to force conopt to run for at most 300 iterations with CR-Cell rtmaxj set to 1e20. Either of the invocations conopt_options='maxiter=300 rtmaxj=1e20' conopt junk or (using Bourne-shell notation) conopt_options='iterations=300 rtmaxj=1e20' export conopt_options conopt junk would have the same effect; within AMPL, specifying option conopt_options 'iterations=300 rtmaxj=1e20', solver conopt; solve; would also have this effect. ----------------------- solve_result_num values ----------------------- Here is a table of solve_result_num values that "conopt" can return to an AMPL session, along with the text that appears in the associated solve_message. Values >= 510 indicate a bug of some kind. Value Message 0 Optimal. 100 Locally optimal. 101 Bogus "Termination by solver" (CONOPT bug). 200 Infeasible. 201 Locally infeasible. 202 Intermediate infeasible. 300 Unbounded. 400 Iteration limit. 401 Time limit. 500 CONOPT bug: unknown MODSTA value. 501 Intermediate non-optimal. 504 Unknown type of error. 505 Error no solution. 506 Evaluation error. 507 Evaluation error limit. 508 objno = nnn is not >= 0 and <= nnn. 510 CONOPT bug: unknown SOLSTA value. 511 "User interrupt" = CONOPT bug. 511 Setup failure. 512 Solver failure. 513 Internal solver error. 520 Surprise: coi_solve did not call Solution. 521 Not enough memory for CONOPT's initial allocations. 522 Too many constraints. 523 Too many variables. 524 Too many variables and constraints. 525 Too many nonzeros. 526 Size permitted by demo license exceeded. 527 Objective index out of range. 528 Too many nonlinear nonzeros: more than all nonzeros. 529 CONOPT ran out of memory. 530 Internal CONOPT error. 531 CONOPT error: Status not called. 532 ReadMatrix not registered. 533 FDEval not registered. 534 ErrMsg not registered. 535 Message not registered. 536 Status not registered. 537 Solution not registered. 538 COIDEF_Base not called. 539 Unexpected return nnn from coi_solve. ************************* If you have questions about or find errors in the above text, please contact: David M. Gay dmg@ampl.com