|   | 
    
         
        
      
        » Agprice 
            Constraint » Curve » Decent » Distrib » Economy » Efficient » Factory » Farm » Food » Hydro » Logic » Manpower » Market » Milk » Mining » OandX » Opencast » Refinery » Tariff » TSP » Yield 
           |   | 
             
     
      | Model 
        Constraint  
              
        
       | 
     
     
       
         
       | 
     
     
      |   | 
       
         MODEL Constraint 
       | 
     
     
      |   | 
      SET | 
     
     
      |   | 
        | 
       
         terms={1..8},  
       | 
      ! variables in constraint | 
     
     
      |   | 
        | 
       
         ceils={1..6},  
       | 
     
     
      |   | 
        | 
       
         roofs={1..6}; 
       | 
     
     
      |   | 
      DATA  | 
     
     
      |   | 
        | 
       
         ceiling[ceils,terms] << "ceiling.dat", 
       | 
     
     
      |   | 
        | 
       
         roofing[roofs,terms] << "roofing.dat";  
       | 
     
     
      |   | 
      VARIABLES  | 
     
     
      |   | 
        | 
       
         a[terms],  
       | 
      ! new coefficients | 
     
     
      |   | 
        | 
       
         b, 
       | 
      ! new right-hand-side | 
     
     
      |   | 
      OBJECTIVE  | 
     
     
      |   | 
        | 
       
         MINIMISE rhs=b-a[3]-a[5]; 
       | 
      ! minimise new right-hand-side | 
     
     
      |   | 
        | 
       
         ! MINIMISE s=sum{j in terms} a[j]j;           
       | 
      ! minimise sum of new coefficients | 
     
     
      |   | 
      CONSTRAINTS  | 
     
     
      |   | 
        | 
       
         cei{i in ceils} : sum{j in terms,ceiling[i,j]>0} a[ceiling[i,j]] 
          <= b, 
       | 
     
     
      |   | 
        | 
       
         roo{k in roofs} : sum{j in terms,roofing[k,j]>0} a[roofing[k,j]] 
          >= b+1,  
       | 
     
     
      |   | 
        | 
       
         ord{j in terms,j<terms} : a[j]-a[j+1] >= 0; 
       | 
     
     
      |   | 
       
         END MODEL  
       | 
     
     
      |   | 
        | 
       
         solve Constraint;  
       | 
     
     
      |   | 
        | 
       
         print solution for Constraint >> "Constraint.sol"; 
       | 
     
     
      |   | 
        | 
       
         quit;  
       | 
     
     
      |   | 
       
         
       | 
     
     
      |   | 
      ceiling.dat | 
     
     
      |   | 
         | 
      [1, 2, 3, 0, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      1, 2, 4, 8, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      1, 2, 6, 7, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      1, 3, 5, 6, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      2, 3, 4, 6, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      2, 5, 6, 7, 8 0, 0, 0 ] | 
        | 
     
     
      |   | 
       
         
       | 
     
     
      |   | 
      roofing.dat | 
     
     
      |   | 
        | 
      [1, 2, 3, 8, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      1, 2, 5, 7, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      1, 3, 4, 7, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      1, 5, 6, 7, 8, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      2, 3, 4, 5, 0, 0, 0, 0,  | 
        | 
     
     
      |   | 
        | 
      3, 4, 6, 7, 8, 0, 0, 0 ] | 
        | 
     
     
      |   | 
        | 
     
     
      |   | 
        
       | 
     
             
           | 
        
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
        
          |   | 
         
       
        
        
        
        
        
        
        
        
        
     | 
      |