| Model Opencast  | 
                 | 
              
              
                
  | 
              
              
                |   | 
                MODEL OPENCAST | 
              
              
                |   | 
                SET | 
              
              
                |   | 
                   | 
                maxi = {1 .. 30}; | 
              
              
                |   | 
                DATA  | 
              
              
                |   | 
                  | 
                cost[maxi] << "costdata.dat"; | 
              
              
                |   | 
                   | 
                 rev[maxi] << "revdata.dat", | 
              
              
                |   | 
                VARIABLES | 
              
              
                |   | 
                   | 
                block[maxi]; | 
              
              
                |   | 
                OBJECTIVE | 
              
              
                |   | 
                   | 
                MAXIMIZE PROFIT = sum{i in maxi} (rev[i]-cost[i])*block[i]; | 
              
              
                |   | 
                CONSTRAINTS | 
              
              
                |   | 
                   | 
                con1 : block[1] - block[2] <= 0, | 
              
              
                |   | 
                   | 
                 con2 : block[1] - block[3] <= 0, | 
              
              
                |   | 
                   | 
                con3 : block[1] - block[4] <= 0, | 
              
              
                |   | 
                   | 
                con4 : block[1] - block[5] <= 0, | 
              
              
                |   | 
                   | 
                con5 : block[2] - block[6] <= 0, | 
              
              
                |   | 
                   | 
                con6 : block[2] - block[7] <= 0, | 
              
              
                |   | 
                   | 
                con7 : block[2] - block[9] <= 0, | 
              
              
                |   | 
                   | 
                con8 : block[2] - block[10] <= 0, | 
              
              
                |   | 
                   | 
                con9 : block[3] - block[7] <= 0, | 
              
              
                |   | 
                   | 
                con10 : block[3] - block[8] <= 0, | 
              
              
                |   | 
                   | 
                con11 : block[3] - block[10] <= 0, | 
              
              
                |   | 
                   | 
                con12 : block[3] - block[11] <= 0, | 
              
              
                |   | 
                    | 
                con13 : block[4] - block[9] <= 0, | 
              
              
                |   | 
                   | 
                con14 : block[4] - block[10] <= 0, | 
              
              
                |   | 
                   | 
                con15 : block[4] - block[12] <= 0, | 
              
              
                |   | 
                   | 
                 con16 : block[4] - block[13] <= 0, | 
              
              
                |   | 
                  | 
                 con17 : block[5] - block[10] <= 0,  | 
              
              
                |   | 
                  | 
                con18 : block[5] - block[11] <= 0,  | 
              
              
                |   | 
                  | 
                con19 : block[5] - block[13] <= 0,  | 
              
              
                |   | 
                  | 
                con20 : block[5] - block[14] <= 0,  | 
              
              
                |   | 
                  | 
                con21 : block[6] - block[15] <= 0,  | 
              
              
                |   | 
                  | 
                con22 : block[6] - block[16] <= 0,  | 
              
              
                |   | 
                  | 
                 con23 : block[6] - block[19] <= 0,  | 
              
              
                |   | 
                  | 
                con24 : block[6] - block[20] <= 0,  | 
              
              
                |   | 
                  | 
                con25 : block[7] - block[16] <= 0,  | 
              
              
                |   | 
                  | 
                con26 : block[7] - block[17] <=   | 
              
              
                |   | 
                  | 
                con27 : block[7] - block[20] <= 0,  | 
              
              
                |   | 
                  | 
                 con28 : block[7] - block[21] <= 0,  | 
              
              
                |   | 
                  | 
                con29 : block[8] - block[17] <= 0, | 
              
              
                |   | 
                  | 
                con30 : block[8] - block[18] <= 0,  | 
              
              
                |   | 
                  | 
                con31 : block[8] - block[20] <= 0,  | 
              
              
                |   | 
                  | 
                con32 : block[8] - block[21] <= 0, | 
              
              
                |   | 
                  | 
                con33 : block[9] - block[19] <= 0,  | 
              
              
                |   | 
                  | 
                con34 : block[9] - block[20] <= 0, | 
              
              
                |   | 
                  | 
                 con35 : block[9] - block[23] <= 0, | 
              
              
                |   | 
                  | 
                 con36 : block[9] - block[24] <= 0, | 
              
              
                |   | 
                  | 
                 con37 : block[10] - block[20] <= 0, | 
              
              
                |   | 
                  | 
                 con38 : block[10] - block[21] <= 0, | 
              
              
                |   | 
                  | 
                 con39 : block[10] - block[24] <= 0, | 
              
              
                |   | 
                  | 
                 con40 : block[10] - block[25] <= 0, | 
              
              
                |   | 
                  | 
                 con41 : block[11] - block[21] <= 0, | 
              
              
                |   | 
                  | 
                 con42 : block[11] - block[22] <= 0, | 
              
              
                |   | 
                  | 
                con43 : block[11] - block[25] <= 0, | 
              
              
                |   | 
                  | 
                 con44 : block[11] - block[26] <= 0, | 
              
              
                |   | 
                  | 
                 con45 : block[12] - block[23] <= 0, | 
              
              
                |   | 
                  | 
                 con46 : block[12] - block[24] <= 0,  | 
              
              
                |   | 
                  | 
                con47 : block[12] - block[27] <= 0, | 
              
              
                |   | 
                  | 
                 con48 : block[12] - block[28] <= 0, | 
              
              
                |   | 
                  | 
                 con49 : block[13] - block[24] <= 0, | 
              
              
                |   | 
                  | 
                con50 : block[13] - block[25] <= 0, | 
              
              
                |   | 
                  | 
                 con51 : block[13] - block[28] <= 0, | 
              
              
                |   | 
                  | 
                 con52 : block[13] - block[29] <= 0, | 
              
              
                |   | 
                  | 
                con53 : block[14] - block[25] <= 0,  | 
              
              
                |   | 
                  | 
                con54 : block[14] - block[26] <= 0, | 
              
              
                |   | 
                  | 
                con55 : block[14] - block[29] <= 0, | 
              
              
                |   | 
                  | 
                con56 : block[14] - block[30] <= 0, | 
              
              
                |   | 
                  | 
                 bounds{i in maxi} : block[i] <= 1; | 
              
              
                |   | 
                END MODEL  | 
              
              
                |   | 
                  | 
                solve OPENCAST;  | 
              
              
                |   | 
                  | 
                print solution for OPENCAST >> "opencast.sol";  | 
              
              
                |   | 
                  | 
                quit;   | 
              
              
                 
                 | 
              
              
                |   | 
                costdata.dat 
                   | 
              
              
                |   | 
                  | 
                [10,8,8,8,8,6,6,6,6,6,6,6,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3] | 
              
              
                 
                 | 
              
              
                |   | 
                revdata.dat | 
              
              
                |   | 
                  | 
                [12,10,8,24,12,4,4,1,6,6,2,8,8,4,1.5,1.5,1,0.5,2,2,1.5,1,3,4,3,1.5,3,3,3,1.5]; | 
              
              
                 
                 |