AIMMS Tutorial for Beginners - Solving the Model

This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www..com

Aimms 3.13 Copyright c 1993–2012 by Paragon Decision Technology B.V. All rights reserved.

Paragon Decision Technology B.V. Paragon Decision Technology Inc. Schipholweg 1 500 108th Avenue NE 2034 LS Haarlem Ste. # 1085 The Netherlands Bellevue, WA 98004 Tel.: +31 23 5511512 USA Fax: +31 23 5511517 Tel.: +1 425 458 4024 Fax: +1 425 458 4025

Paragon Decision Technology Pte. Ltd. Paragon Decision Technology 55 Market Street #10-00 Shanghai Representative Office Singapore 048941 Middle Huaihai Road 333 Tel.: +65 6521 2827 Shuion Plaza, Room 1206 Fax: +65 6521 3001 Shanghai China Tel.: +86 21 51160733 Fax: +86 21 5116 0555

Email: [email protected] WWW: www.aimms.com

ISBN xx–xxxxxx–x–x

Aimms is a registered trademark of Paragon Decision Technology B.V. IBM ILOG CPLEX and CPLEX is a registered trademark of IBM Corporation. is a registered trademark of Gurobi Optimization, Inc. KNITRO is a registered trademark of Ziena Optimization, Inc. XPRESS-MP is a registered trademark of FICO Fair Isaac Corporation. Mosek is a registered trademark of Mosek ApS. Windows and Excel are registered trademarks of Microsoft Corporation. TEX, LATEX, and AMS-LATEX are trademarks of the American Mathematical Society. Lucida is a registered trademark of Bigelow & Holmes Inc. Acrobat is a registered trademark of Adobe Systems Inc. Other brands and their products are trademarks of their respective holders.

Information in this document is subject to change without notice and does not represent a commitment on the part of Paragon Decision Technology B.V. The software described in this document is furnished under a license agreement and may only be used and copied in accordance with the terms of the agreement. The documentation may not, in whole or in part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine-readable form without prior consent, in writing, from Paragon Decision Technology B.V.

Paragon Decision Technology B.V. makes no representation or warranty with respect to the adequacy of this documentation or the programs which it describes for any particular purpose or with respect to its adequacy to produce any particular result. In no event shall Paragon Decision Technology B.V., its employees, its contractors or the authors of this documentation be liable for special, direct, indirect or consequential damages, losses, costs, charges, claims, demands, or claims for lost profits, fees or expenses of any nature or kind.

In addition to the foregoing, users should recognize that all complex software systems and their doc- umentation contain errors and omissions. The authors, Paragon Decision Technology B.V. and its em- ployees, and its contractors shall not be responsible under any circumstances for providing information or corrections to errors and omissions discovered at any time in this book or the software it describes, whether or not they are aware of the errors or omissions. The authors, Paragon Decision Technology B.V. and its employees, and its contractors do not recommend the use of the software described in this book for applications in which errors or omissions could threaten life, injury or significant loss.

This documentation was typeset by Paragon Decision Technology B.V. using LATEX and the Lucida font family. Chapter 5

Solving the Model

5.1 Computing the solution

Thus far, you have entered all the identifiers, their attributes and their data. Procedures for You will also need to build at least one procedure in order to be able to instruct action Aimms to take action. In this tutorial, you will enter two statements inside the body of the existing (empty) procedure MainExecution: one to solve the mathematical program, and the other to set the solution to zero when the mathematical program is not optimal.

Figure 5.1: The attribute form of MainExecution

The procedure MainExecution can be completed as follows: Building a procedure ◮ press the F8 key to open the Model Explorer, ◮ select the MainExecution procedure and open it by double-clicking , ◮ enter the two statements in the body attribute as illustrated in Figure 5.1, and ◮ press the Check, Commit and Close button to register the changes.

Should Aimms report errors, simply check your input and make the necessary corrections. Chapter 5. Solving the Model 28

To obtain information about specific Aimms keywords, you can use the right- Right-mouse for mouse popup menu to open the Aimms documentation on the appropriate help page with a single click. For instance, you can obtain help on the ‘ProgramSta- tus’ keyword as follows:

◮ position the cursor over the ‘ProgramStatus’ keyword, ◮ right-click the mouse and select the ‘ProgramStatus’ entry in the ‘Help’ submenu (see Figure 5.2).

Figure 5.2: A right-mouse popup menu

The procedure MainExecution is special in that there is a dedicated key, F6, to Running the execute this procedure. For all other procedures you can use the right mouse procedure button to select the Run Procedure command.

By pressing the Ctrl and p keys simultaneously, Aimms displays a progress Watching window with selected information on the progress it has made (or is making) execution during an execution phase. Figure 5.3 shows the progress window you should progress expect to see. Chapter 5. Solving the Model 29

Figure 5.3: The Aimms progress window

You have already encountered data pages while entering the elements of sets Results in data and the numeric values of parameters. Once Aimms has computed the values pages of the variable ‘Transport’, these values become immediately available on the corresponding data page. Just go to this variable in the model tree, and click on it. Then use the right mouse to select the Data... command to open the data page. This will open a pivot table with Transport data and its corresponding suffices. If you drag the column suffix header out of the pivot table and set this to level you should see the figure below. Upon closing the data page select Yes, this will save the lay out changes you just made.

Figure 5.4: Data page displaying the solution for the variable ‘Transport’