Solve in a Loop¶
This article provides an example of how to solve several instances of a problem at once, using a loop.
If the input data is being loaded from an external source (like an Excel file), you should iterate through each external source, read in the data, solve the math program and store the output. The input data can also be loaded from an AIMMS case file or AIMMS identifiers with an index for the iteration.
The structure of execution usually follows this format:
Define the collection of inputs
Process each input in a loop
The example project and Excel input files can be downloaded from the links below.
Logic of the iterative operation¶
The flow of a procedure to solve a math program multiple times is shown on the right. These operations can be done using any iterative operator like
while. The loop starts by selecting the first input file from the list of files to be iterated through.
When using a
while loop, you must initialize the iterator before the loop block is written. This is not necessary when using a
for loop because it uses a set index in AIMMS.
In the example, we use a
for i_fn do sp_Workbook := sp_BatchExcelInputFolder + sp_InputFileNames(i_fn); pr_ExecuteSingleRun(sp_Workbook); endfor;
In the attached example, go to section
Iterative Solve to find the procedure
pr_ExecuteBatch. This procedure contains some additional error handling statements to ensure the proper working of this example.