examples/diet.mod
changeset 1 c445c931472f
equal deleted inserted replaced
-1:000000000000 0:6f8de280d29a
       
     1 # STIGLER'S NUTRITION MODEL
       
     2 #
       
     3 # This model determines a least cost diet which meets the daily
       
     4 # allowances of nutrients for a moderately active man weighing 154 lbs.
       
     5 #
       
     6 #  References:
       
     7 #              Dantzig G B, "Linear Programming and Extensions."
       
     8 #              Princeton University Press, Princeton, New Jersey, 1963,
       
     9 #              Chapter 27-1.
       
    10 
       
    11 set N;
       
    12 /* nutrients */
       
    13 
       
    14 set F;
       
    15 /* foods */
       
    16 
       
    17 param b{N};
       
    18 /* required daily allowances of nutrients */
       
    19 
       
    20 param a{F,N};
       
    21 /* nutritive value of foods (per dollar spent) */
       
    22 
       
    23 var x{f in F} >= 0;
       
    24 /* dollars of food f to be purchased daily */
       
    25 
       
    26 s.t. nb{n in N}: sum{f in F} a[f,n] * x[f] = b[n];
       
    27 /* nutrient balance (units) */
       
    28 
       
    29 minimize cost: sum{f in F} x[f];
       
    30 /* total food bill (dollars) */
       
    31 
       
    32 data;
       
    33 
       
    34 param : N : b :=
       
    35          Calorie       3 /* thousands */
       
    36          Protein      70 /* grams */
       
    37          Calcium     0.8 /* grams */
       
    38          Iron         12 /* milligrams */
       
    39          Vitamin-A     5 /* thousands IUs */
       
    40          Vitamin-B1  1.8 /* milligrams */
       
    41          Vitamin-B2  2.7 /* milligrams */
       
    42          Niacin       18 /* milligrams */
       
    43          Vitamin-C    75 /* milligrams */  ;
       
    44 
       
    45 set F := Wheat Cornmeal Cannedmilk Margarine Cheese Peanut-B Lard
       
    46          Liver Porkroast Salmon Greenbeans Cabbage Onions Potatoes
       
    47          Spinach Sweet-Pot Peaches Prunes Limabeans Navybeans;
       
    48 
       
    49 param a default 0
       
    50 
       
    51 :           Calorie  Protein  Calcium  Iron  Vitamin-A  Vitamin-B1 :=
       
    52 #            (1000)    (g)      (g)    (mg)   (1000IU)     (mg)
       
    53 
       
    54 Wheat         44.7     1411      2.0    365        .       55.4
       
    55 Cornmeal      36        897      1.7     99      30.9      17.4
       
    56 Cannedmilk     8.4      422     15.1      9      26         3
       
    57 Margarine     20.6       17       .6      6      55.8        .2
       
    58 Cheese         7.4      448     16.4     19      28.1        .8
       
    59 Peanut-B      15.7      661      1       48        .        9.6
       
    60 Lard          41.7        .       .       .        .2        .
       
    61 Liver          2.2      333       .2    139     169.2       6.4
       
    62 Porkroast      4.4      249       .3     37        .       18.2
       
    63 Salmon         5.8      705      6.8     45       3.5       1
       
    64 Greenbeans     2.4      138      3.7     80      69         4.3
       
    65 Cabbage        2.6      125      4       36       7.2       9
       
    66 Onions         5.8      166      3.8     59      16.6       4.7
       
    67 Potatoes      14.3      336      1.8    118       6.7      29.4
       
    68 Spinach        1.1      106       .     138     918.4       5.7
       
    69 Sweet-Pot      9.6      138      2.7     54     290.7       8.4
       
    70 Peaches        8.5       87      1.7    173      86.8       1.2
       
    71 Prunes        12.8       99      2.5    154      85.7       3.9
       
    72 Limabeans     17.4     1055      3.7    459       5.1      26.9
       
    73 Navybeans     26.9     1691     11.4    792        .       38.4
       
    74 
       
    75 :          Vitamin-B2  Niacin  Vitamin-C :=
       
    76 #             (mg)      (mg)     (mg)
       
    77 
       
    78 Wheat         33.3       441         .
       
    79 Cornmeal       7.9       106         .
       
    80 Cannedmilk    23.5        11        60
       
    81 Margarine       .          .         .
       
    82 Cheese        10.3         4         .
       
    83 Peanut-B       8.1       471         .
       
    84 Lard            .5         5         .
       
    85 Liver         50.8       316       525
       
    86 Porkroast      3.6        79         .
       
    87 Salmon         4.9       209         .
       
    88 Greenbeans     5.8        37       862
       
    89 Cabbage        4.5        26      5369
       
    90 Onions         5.9        21      1184
       
    91 Potatoes       7.1       198      2522
       
    92 Spinach       13.8        33      2755
       
    93 Sweet-Pot      5.4        83      1912
       
    94 Peaches        4.3        55        57
       
    95 Prunes         4.3        65       257
       
    96 Limabeans     38.2        93         .
       
    97 Navybeans     24.6       217         .   ;
       
    98 
       
    99 end;