examples/diet.mod
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 05 Dec 2010 17:35:23 +0100
changeset 2 4c8956a7bdf4
permissions -rw-r--r--
Set up CMAKE build environment
     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;