Hi John,
Attached is a small example that demonstrates the multi-start algorithm. You should create a new AIMMS project and load this .aim file. If you do a normal solve (run MainExecution) then the solution found has an objective of 5.64 (minimization problem; I used CONOPT 3.14V) and if you use multi-start (run UseMultiStart) then two other solutions are found with an objective of 5.33 and 4.98; the latter being the global optimum and returned by the multi-start algorithm.
The multi-start algorithm can be controlled by several parameters as listed in the MultiStart Control Declarations section of the multi-start module. The most important ones are IterationLimit which controls the number of iterations used by the multi-start algorithm and UsePresolver which controls whether the multi-start algorithm should start by preprocessing the nonlinear model (switched off by default).
More information about the multi-start algorithm can be found in chapter 17.2 in the Language Reference (AIMMS 3.12).
About the error, did you by chance declare math program PhA inside a module?
Best regards,
Marcel Hunting
AIMMS Software Developer
Hi John,
If you want the multi-start algorithm to save more solutions then you have to set, e.g.,
MulStart::NumberOfBestSolutions := 5;
before calling the MulStart::DoMultiStart procedure. The algorithm will then store the 5 best solutions in the so-called solution repository of the GMP. To send a solution from the solution repository to the model identifiers you have to use the procedure GMP::Solution::SendToModel. See the attached example.