In order to illustrate the Alt Opt Solutions feature, consider the following simple linear program (see http://www.math.clemson.edu/~shierd/Shier/MthSc440/Alternative%20Optimal%20Solutions.pdf):

MODEL:

 

MAX = 6*X1   +   4*X2 ;

 

       X1   +   4*X2  <=  40 ;

     3*X1   +   2*X2  <=  30 ;

     3*X1   +     X2  <=  24 ;

 

END

Model: ALTOPT

The graph of this linear program follows:

 altoptex01

Note that there are two alternate optimal solutions at point C and D, both with an objective value of 60. We next run the Solver | Options command and set Alt Opt Solutions option to 10 as seen here:

 altoptex02

In general, you will not know beforehand how many alternate optimal solutions exist (if any), meaning you may want to request a large number of potential alternate solutions to ensure you find the maximum solutions possible.  If the number of solutions found is less than the maximum requested, LINGO just displays the solutions that were successfully found.

Next, solving the model with the Solver | Solve command we are presented with the following dialog box:

 altoptex03

Note that there are two solutions listed corresponding to the two alternate optimal solutions in this model. We can select one, or more, solutions at a time and then examine their solution reports. Selecting both solutions to view, we are presented with:

 Global optimal solution found.

 Objective value:                   60.00000

 Infeasibilities:                   0.000000

 Total solver iterations:                  2

 Elapsed runtime seconds:               0.14

 

   Variable           Value

         X1        6.000000

         X2        6.000000

 

        Row    Slack or Surplus

          1        60.00000

          2        10.00000

          3        0.000000

          4        0.000000

Alt Opt Solution 1

 

 Global optimal solution found.

 Objective value:                   60.00000

 Infeasibilities:                   0.000000

 Total solver iterations:                  4

 Elapsed runtime seconds:               0.14

 

   Variable           Value

         X1        4.000000

         X2        9.000000

 

        Row    Slack or Surplus

          1        60.00000

          2        0.000000

          3        0.000000

          4        3.000000

Alt Opt Solution 2

These are the two alternate optimal solutions (point C and D) shown in the diagram above.

There is also a column labeled Tradeoff, which lists the value in each solution of a designated tradeoff variable.  Any scalar variable in a model can be selected as the tradeoff variable.  This may be some secondary value, after the primary objective value, that is of interest.  For example, in a staff scheduling model we might set tradeoff variable to be the number of employees working on Sunday, which we might prefer to be as low as possible, all other things being equal.

The following buttons are available along the bottom edge of the dialog box:

Help Displays online help regarding the Alt Opt feature.
Cancel Cancels out of Alt Opt mode, closing the dialog box.
View Displays any solutions selected in the Candidate Solutions box.
Select Allow you to select one of the candidate solutions as the final solution to the model.