Optimization of Food Costs with Dietary Constraints


This diet optimization considers 100 types of food to meet dietary requirements. The maximum servings of each food are limited to 3 during a 7 day period. The overall objective is to minimize a cost function while meeting basic dietary needs. The model includes:

  • caloric energy constraint
  • carbohydrate constraint
  • fat constraint
  • vitamin B2
  • vitamin B1
  • protein
  • niacin
  • calcium
  • vitamin C
  • iron
  • vitamin A
  • beverage
  • cereal based
  • rice based
  • cereal meal
  • meat dish
  • vegetable
  • fruit
  • wheat based
  • sea food

Classification

The model and optimization problem are posed as a Mixed-Integer Linear Program (MILP).



! Diet Optimization
! 7 days with the objective to minimize the cost 
!  with constraints for the nutrients
! the optimizer can select up to 3 portions
!  of each food for the week
Model diet

  Variables
    ! servings for 100 types of food
    ! x[37:40] not used
    int_x[1:100] = 0, >=0, <=3
    obj_food_cost
  End Variables

  Intermediates
    x[1:100] = int_x[1:100]
  End Intermediates

  Equations
    ! minimize food cost
    obj_food_cost = 1.0*x[1] + 1.0*x[2] + 0.7*x[3] + 1.0*x[4] + 0.5*x[5] + 1.0*x[6] &
      + 1.0*x[7] + 1.0*x[8] + 0.1*x[9] + 0.5*x[10] &
      + 0.5*x[11] + 0.3*x[12] + 0.4*x[13] + 0.5*x[14] + 0.5*x[15] + 0.8*x[16] + &
      0.5*x[17] + 0.8*x[18] + 0.7*x[19] &
      + 0.2*x[20] + 0.3*x[21] + 0.2*x[22] + 0.2*x[23] + 0.2*x[24] + 0.2*x[25] + &
      0.3*x[26] + 0.2*x[27] + 0.3*x[28] &
      + 0.3*x[29] + 0.2*x[30] + 0.8*x[31] + 0.8*x[32] + 0.8*x[33] + 0.8*x[34] + &
      0.8*x[35] + 0.5*x[36] + 0.5*x[41] &
      + 0.7*x[42] + 0.7*x[43] + 0.6*x[44] + 0.6*x[45] + 1.0*x[46] + 1.0*x[47] + &
      1.0*x[48] + 0.6*x[49] + 1.0*x[50] &
      + 0.2*x[51] + 0.3*x[52] + 0.3*x[53] + 0.4*x[54] + 0.2*x[55] + 0.4*x[56] + &
      0.2*x[57] + 0.4*x[58] + 0.2*x[59] &
      + 0.2*x[60] + 0.8*x[61] + 0.2*x[62] + 0.3*x[63] + 0.2*x[64] + 0.6*x[65] + &
      0.5*x[66] + 0.2*x[67] + 0.7*x[68] &
      + 0.2*x[69] + 0.3*x[70] + 0.3*x[71] + 0.2*x[72] + 0.2*x[73] + 0.5*x[74] + &
      0.5*x[75] + 0.5*x[76] + 0.2*x[77] &
      + 0.2*x[78] + 0.2*x[79] + 0.2*x[80] + 0.9*x[81] + 0.8*x[82] + 0.8*x[83] + &
      0.8*x[84] + 0.8*x[85] + 0.8*x[86] &
      + 0.9*x[87] + 0.8*x[88] + 0.8*x[89] + 0.8*x[90] + 0.4*x[91] + 0.3*x[92] + &
      0.3*x[93] + 0.2*x[94] + 0.2*x[95] &
      + 0.3*x[96] + 0.2*x[97] + 0.2*x[98] + 0.3*x[99] + 0.2*x[100]

    ! caloric energy constraint
    2050.0 <= 163*x[1] + 65*x[2] + 4*x[3] + 234*x[4] + 44*x[5] + &
      174*x[6] + 187*x[7] + 131*x[8] + 48*x[10] + 159*x[11] &
      + 202*x[12] + 96*x[13] + 60*x[14] + 321*x[15] + 376*x[16] + &
      281*x[17] + 389*x[18] + 359*x[19] + 49*x[20] &
      + 189*x[21] + 30*x[22] + 183*x[23] + 132*x[24] + 117*x[25] + &
      168*x[26] + 256*x[27] + 192*x[28] + 184*x[29] &
      + 75*x[30] + 448*x[31] + 278*x[32] + 508*x[33] + 637*x[34] + &
      436*x[35] + 167*x[36] + 288*x[41] + 133*x[42] &
      + 130*x[43] + 89*x[44] + 268*x[45] + 255*x[46] + 195*x[47] + &
      179*x[48] + 137*x[49] + 139*x[50] + 73*x[51] &
      + 42*x[52] + 39*x[53] + 27*x[54] + 15*x[55] + 45*x[56] + &
      16*x[57] + 36*x[58] + 15*x[59] + 25*x[60] + 63*x[61] &
      + 103*x[62] + 155*x[63] + 51*x[64] + 103*x[65] + 38*x[66] + &
      56*x[67] + 133*x[68] + 50*x[69] + 37*x[70] + 36*x[71] &
      + 144*x[72] + 128*x[73] + 203*x[74] + 282*x[75] + 71*x[76] + &
      268*x[77] + 17*x[78] + 90*x[79] + 140*x[80] + 72*x[81] &
      + 143*x[82] + 130*x[83] + 55*x[84] + 263*x[85] + 67*x[86] + &
      109*x[87] + 71*x[88] + 171*x[89] + 149*x[90] + 244*x[91] &
      + 483*x[92] + 246*x[93] + 221*x[94] + 73*x[95] + 48*x[96] + &
      13*x[97] + 129*x[98] + 74*x[99] + 91*x[100] <= 2840.0

    ! carbohydrate constraint
    180.0 <= 24.8*x[1] + 3.4*x[2] + 0.9*x[3] + 11.3*x[4] &
      + 11.0*x[5] + 23.3*x[6] + 18.2*x[7] + 12.1*x[8] + 12.1*x[10] + 30.8*x[11] &
      + 34.1*x[12] + 19.6*x[13] + 12.6*x[14] + 36.2*x[15] + &
      55.4*x[16] + 40.6*x[17] + 58.2*x[18] + 45.5*x[19] + 6.2*x[20] &
      + 42.0*x[21] + 6.7*x[22] + 33.6*x[23] + 28.8*x[24] + &
      26.5*x[25] + 35.9*x[26] + 35.5*x[27] + 35.9*x[28] + 30.3*x[29] &
      + 14.7*x[30] + 72.0*x[31] + 46.0*x[32] + 91.5*x[33] + &
      86.8*x[34] + 73.7*x[35] + 38.5*x[36] + 16.0*x[41] + 11.9*x[42] &
      + 7.7*x[43] + 0.7*x[44] + 0.2*x[45] + 3.2*x[46] + &
      2.8*x[47] + 1.2*x[48] + 1.6*x[49] + 0.5*x[50] + 0.3*x[51] + 1.0*x[52] &
      + 1.4*x[53] + 2.4*x[54] + 1.9*x[55] + 1.1*x[56] + &
      1.2*x[57] + 0.4*x[58] + 1.8*x[59] + 2.3*x[60] + 14.7*x[61] + 23.6*x[62] &
      + 37.4*x[63] + 11.1*x[64] + 21.0*x[65] + 8.1*x[66] + &
      11.3*x[67] + 32.3*x[68] + 11.7*x[69] + 8.0*x[70] + 4.3*x[71] + 18.8*x[72] &
      + 17.3*x[73] + 35.4*x[74] + 50.5*x[75] + 11.9*x[76] + &
      42.4*x[77] + 3.3*x[78] + 18.1*x[79] + 20.9*x[80] + 15.5*x[81] + 7.2*x[82] &
      + 4.7*x[83] + 2.6*x[84] + 2.3*x[85] + 9.7*x[86] + &
      2.0*x[87] + 5.4*x[88] + 3.3*x[89] + 3.9*x[90] + 33.6*x[91] + 91.5*x[92] + 43.5*x[93] &
      + 44.5*x[94] + 10.5*x[95] + 8.6*x[96] + 2.5*x[97] + &
      24.4*x[98] + 14.4*x[99] + 12.1*x[100] <= 330.0

    ! fat constraint
    46 <= 5.7*x[1] + 4.3*x[2] + 18.8*x[4] + 5.1*x[6] + 8.7*x[7] + &
      4.4*x[8] + 1.7*x[11] + 6.1*x[12] + 0.4*x[13] + 0.2*x[14] &
      + 15.5*x[15] + 11.4*x[16] + 9*x[17] + 13.1*x[18] + 12.5*x[19] + &
      2.4*x[20] + 1.5*x[21] + 0.2*x[22] + 2.9*x[23] &
      + 1*x[24] + 0.3*x[25] + 1.8*x[26] + 12*x[27] + 3.8*x[28] + &
      5.6*x[29] + 1.4*x[30] + 13.5*x[31] + 3.2*x[32] + 12.3*x[33] &
      + 25.1*x[34] + 12.3*x[35] + 0.1*x[36] + 13.2*x[41] + 5.6*x[42] + &
      5.1*x[43] + 6.9*x[44] + 20.1*x[45] + 17.9*x[46] &
      + 13.2*x[47] + 13.7*x[48] + 8.1*x[49] + 10.1*x[50] + 0.4*x[51] + &
      0.2*x[52] + 1.1*x[53] + 0.1*x[54] + 0.1*x[55] &
      + 0.1*x[56] + 0.1*x[57] + 0.2*x[60] + 0.4*x[61] + 0.4*x[62] + &
      0.2*x[64] + 0.7*x[65] + 0.4*x[66] + 0.2*x[67] + 0.1*x[69] &
      + 0.3*x[70] + 1.8*x[71] + 6.2*x[72] + 5.6*x[73] + 2.2*x[74] + &
      5.8*x[75] + 1.6*x[76] + 7.8*x[77] + 0.3*x[78] + 1.5*x[79] &
      + 5.1*x[80] + 5.4*x[81] + 6.6*x[82] + 7.2*x[83] + 2.9*x[84] + &
      12.4*x[85] + 2.2*x[86] + 7.9*x[87] + 5.2*x[88] + 9.2*x[89] &
      + 8.3*x[90] + 8.3*x[91] + 11.3*x[92] + 6.8*x[93] + 4.2*x[94] + &
      2.8*x[95] + 1.4*x[96] + 0.3*x[97] + 2.9*x[98] + 0.4*x[99] &
      + 4.2*x[100] <= 86

    ! vitamin B2
    0.08*x[1] + 0.54*x[2] + 1.21*x[4] + 0.85*x[6] + 1.02*x[7] + &
      1.16*x[8] + 0.04*x[11] + 0.06*x[12] + 0.12*x[13] + 0.1*x[14] &
      + 0.24*x[15] + 0.25*x[16] + 0.14*x[17] + 0.16*x[18] + 0.31*x[19] &
      + 0.1*x[20] + 0.01*x[22] + 0.04*x[23] + 0.03*x[24] &
      + 0.06*x[25] + 0.1*x[26] + 0.06*x[27] + 0.05*x[28] + 0.06*x[29] + &
      0.02*x[30] + 0.17*x[31] + 0.16*x[32] + 0.75*x[33] &
      + 0.1*x[34] + 0.12*x[35] + 0.01*x[36] + 0.24*x[41] + 0.2*x[42] + &
      0.05*x[43] + 0.29*x[44] + 0.11*x[45] + 0.12*x[46] &
      + 0.09*x[47] + 0.1*x[48] + 0.1*x[49] + 0.11*x[50] + 0.13*x[51] + &
      0.24*x[52] + 0.15*x[53] + 0.17*x[54] + 0.11*x[55] &
      + 0.12*x[56] + 0.54*x[57] + 0.1*x[58] + 0.06*x[59] + 0.12*x[60] + &
      0.01*x[61] + 0.08*x[62] + 0.04*x[63] + 0.06*x[64] &
      + 0.09*x[65] + 0.03*x[66] + 0.11*x[67] + 0.08*x[68] + 0.03*x[69] &
      + 0.16*x[70] + 0.05*x[71] + 0.03*x[72] + 0.03*x[73] &
      + 0.09*x[74] + 0.13*x[75] + 0.02*x[76] + 0.06*x[77] + 0.2*x[79] + &
      0.07*x[80] + 0.08*x[81] + 0.1*x[82] + 0.12*x[83] &
      + 0.06*x[84] + 0.08*x[85] + 0.1*x[86] + 0.07*x[87] + 0.01*x[88] + &
      0.03*x[89] + 0.09*x[90] + 0.58*x[91] + 0.05*x[92] &
      + 0.05*x[93] + 0.01*x[95] + 0.05*x[96] + 0.05*x[98] + 0.02*x[99] &
      + 0.02*x[100] >= 1.0

    ! vitamin B1
    0.13*x[1] + 0.1*x[2] + 0.59*x[4] + 0.01*x[5] + 0.08*x[6] + &
      0.08*x[7] + 0.1*x[8] + 0.2*x[11] + 0.04*x[12] &
      + 0.16*x[13] + 0.1*x[14] + 0.07*x[15] + 0.23*x[16] + 0.03*x[17] + &
      0.28*x[18] + 0.22*x[19] + 0.1*x[20] + 0.02*x[21] &
      + 0.05*x[23] + 0.01*x[24] + 0.03*x[25] + 0.02*x[26] + 0.02*x[27] &
      + 0.01*x[28] + 0.02*x[29] + 0.04*x[30] + 0.22*x[31] &
      + 0.07*x[32] + 0.45*x[33] + 0.17*x[34] + 0.22*x[35] + 0.03*x[36] &
      + 0.12*x[41] + 0.15*x[42] + 0.02*x[43] + 0.12*x[44] &
      + 0.07*x[45] + 0.03*x[46] + 0.03*x[47] + 0.05*x[48] + 0.04*x[49] &
      + 0.04*x[50] + 0.06*x[51] + 0.08*x[52] + 0.12*x[53] &
      + 0.09*x[54] + 0.05*x[55] + 0.12*x[56] + 0.11*x[58] + 0.03*x[59] &
      + 0.03*x[60] + 0.03*x[61] + 0.07*x[62] + 0.03*x[63] &
      + 0.11*x[64] + 0.07*x[65] + 0.05*x[66] + 0.05*x[67] + 0.16*x[68] &
      + 0.01*x[69] + 0.12*x[70] + 0.02*x[71] + 0.02*x[72] &
      + 0.04*x[73] + 0.08*x[74] + 0.07*x[75] + 0.03*x[76] + 0.11*x[77] &
      + 0.03*x[79] + 0.04*x[80] + 0.02*x[81] + 0.22*x[82] &
      + 0.14*x[83] + 0.04*x[84] + 0.03*x[85] + 0.05*x[86] + 0.05*x[87] &
      + 0.08*x[89] + 0.05*x[90] + 0.07*x[91] + 0.62*x[92] &
      + 0.03*x[93] + 0.05*x[94] + 0.02*x[95] + 0.03*x[98] >= 1.1

    ! protein
    3.4*x[1] + 3.2*x[2] + 0.1*x[3] + 4.8*x[4] + 9*x[6] + 8.9*x[7] &
      + 10.5*x[8] + 5.1*x[11] + 4.2*x[12] + 3.7*x[13] &
      + 2.1*x[14] + 9.4*x[15] + 12.8*x[16] + 9.4*x[17] + 9.7*x[18] &
      + 9.2*x[19] + 0.6*x[20] + 1.8*x[21] + 0.5*x[22] &
      + 5.6*x[23] + 1.9*x[24] + 2.2*x[25] + 1.9*x[26] + 1.6*x[27] &
      + 3.6*x[28] + 3.3*x[29] + 0.9*x[30] + 9.6*x[31] &
      + 16.1*x[32] + 8*x[33] + 16.2*x[34] + 7.6*x[35] + 2.9*x[36] &
      + 26.4*x[41] + 8.7*x[42] + 13.1*x[43] + 6.1*x[44] &
      + 21.7*x[45] + 20.2*x[46] + 16.4*x[47] + 12.7*x[48] + &
      14.4*x[49] + 11.7*x[50] + 1.8*x[51] + 2.7*x[52] + 2.5*x[53] &
      + 3.9*x[54] + 1.1*x[55] + 1.3*x[56] + 1.7*x[57] + 3.6*x[58] &
      + 0.5*x[59] + 2.1*x[60] + 0.2*x[61] + 1.3*x[62] &
      + 1.3*x[63] + 1.2*x[64] + 3.1*x[65] + 0.5*x[66] + 2.4*x[67] &
      + 0.8*x[68] + 0.6*x[69] + 0.8*x[70] + 0.7*x[71] &
      + 3.1*x[72] + 1.9*x[73] + 10.4*x[74] + 6.9*x[75] + 2.1*x[76] &
      + 7.1*x[77] + 0.3*x[78] + 1*x[79] + 2.7*x[80] &
      + 5.5*x[81] + 20*x[82] + 14.6*x[83] + 5*x[84] + 35.8*x[85] + &
      10.8*x[86] + 8.3*x[87] + 5.8*x[88] + 20.3*x[89] &
      + 16.3*x[90] + 9*x[91] + 3.9*x[92] + 2.7*x[93] + 1.2*x[94] + &
      1.6*x[95] + 0.3*x[96] + 1.3*x[98] + 3.4*x[99] &
      + 1.2*x[100] >= 54.0

    ! niacin
    16 <= 0.3*x[1] + 1*x[2] + 0.4*x[3] + 7*x[4] + 0.1*x[5] + &
      0.8*x[6] + 2.1*x[7] + 3.6*x[8] &
      + 0.3*x[11] + 0.4*x[12] + 1*x[13] + 0.7*x[14] + 0.5*x[15] + &
      4.3*x[16] + 1.2*x[17] + 1.8* x[18] + 3.5*x[19] &
      + 0.2*x[20] + 0.1*x[21] + 0.1*x[22] + 0.5*x[23] + 0.2*x[24] + &
      0.1*x[25] + 0.1*x[26] + 0.7*x[27] + 0.5*x[28] &
      + 0.8*x[29] + 0.1*x[30] + 0.2*x[31] + 2.8*x[32] + 1.3*x[33] + &
      5.6* x[34] + 3.9*x[35] &
      + 2.5*x[41] + 1.9*x[42] + 1*x[43] + 1.2*x[44] + 1.8*x[45] + &
      2.5*x[46] &
      + 2.4*x[47] + 1*x[48] + 1.6*x[49] + 0.1*x[50] + 0.1*x[52] + &
      0.7*x[53] + 0.6*x[54] + 0.2*x[55] &
      + 0.6*x[56] + 0.2*x[57] + 0.6*x[58] + 0.1*x[59] + 0.6*x[60] + &
      0.6*x[61] + 0.7*x[62] + 0.7*x[63] + 1.2*x[64] &
      + 0.3*x[65] + 0.2*x[66] + 0.2*x[67] + 0.2*x[68] + 0.1*x[69] + &
      0.6*x[70] + 0.1*x[71] + 0.5*x[72] + 0.3*x[73] &
      + 1*x[74] + 1.5*x[75] + 0.3*x[76] + 1.4*x[77] + 0.3*x[79] + &
      1.6*x[80] + 0.9*x[81] + 1.5*x[82] &
      + 0.8*x[83] + 0.2*x[84] + 1.2*x[85] + 1.9*x[86] + 1.2*x[87] + &
      0.1*x[88] + 1.7*x[89] + 1.4*x[90] + 3*x[91] &
      + 0.3*x[92] + 0.9*x[93] + 1.3*x[94] + 0.3*x[95] + 0.1*x[96] + &
      0.5*x[98] + 0.1*x[99] + 0.2*x[100] <= 30

    ! calcium
    1000 <= 18*x[1] + 271*x[2] + 2*x[3] + 130*x[4] + 1*x[5] + &
      279*x[6] + 279*x[7] + 339*x[8] + 30*x[9] &
      + 21*x[11] + 3*x[12] + 15*x[13] + 10*x[14] + 31*x[15] + &
      31*x[16] + 32*x[17] + 55*x[18] + 26*x[19] &
      + 1*x[20] + 3*x[21] + 5*x[22] + 9*x[23] + 4*x[24] + 39*x[25] + &
      42*x[26] + 4*x[27] + 6*x[28] &
      + 10*x[29] + 5*x[30] + 20*x[31] + 23*x[32] + 20*x[33] + &
      73*x[34] + 25*x[35] + 4*x[36] &
      + 34*x[41] + 42*x[42] + 20*x[43] + 16*x[44] + 21*x[45] + &
      146*x[46] &
      + 44*x[47] + 33*x[48] + 12*x[49] + 45*x[50] + 63*x[51] + &
      63*x[52] + 72*x[53] + 38*x[54] + 27*x[55] &
      + 178*x[56] + 24*x[57] + 28*x[58] + 14*x[59] + 79*x[60] + &
      5*x[61] + 11*x[62] + 29*x[63] + 36*x[64] &
      + 28*x[65] + 31*x[66] + 17*x[67] + 16*x[68] + 19*x[69] + &
      19*x[70] + 9*x[71] + 18*x[72] + 10*x[73] &
      + 18*x[74] + 25*x[75] + 26*x[76] + 35*x[77] + 11*x[79] + &
      11*x[80] + 11*x[81] + 25*x[82] &
      + 51*x[83] + 17*x[84] + 64*x[85] + 23*x[86] + 22*x[87] + &
      196*x[88] + 20*x[89] + 19*x[90] + 60*x[91] &
      + 102*x[92] + 3*x[93] + 35*x[94] + 6*x[95] + 4*x[96] + 1*x[97] &
      + 5*x[98] + 4*x[99] + 7*x[100] <= 2500

    ! vitamin C
    65 <= 0.8*x[1] + 2.3*x[2] + 4.3*x[4] + 5.6*x[5] + 0.7*x[13] + &
      0.4*x[14] + 1.5*x[15] + 2.9*x[17] + 0.9*x[18] &
      + 0.2*x[22] + 0.3*x[24] + 1.7*x[25] + 1*x[28] + 0.2*x[32] &
      + 37.2*x[51] + 18.4*x[52] + 25.8*x[53] + 80.3*x[54] + 36.3*x[55] &
      + 12.3*x[56] + 41*x[57] + 53.2*x[58] + 9.4*x[59] + 28.7*x[60] + &
      5.5*x[61] + 17.3*x[62] + 168*x[64] &
      + 30.5*x[65] + 30.7*x[66] + 112.8*x[67] + 15.3*x[68] + 32.6*x[69] &
      + 17.1*x[70] + 0.3*x[71] + 0.2*x[72] + 0.2*x[73] &
      + 0.3*x[76] + 0.1*x[95] + 2.1*x[98] <= 1800

    ! iron
    15 <= 0.5*x[1] + 1.3*x[2] + 4.8*x[4] + 0.8*x[6] + 0.3*x[7] + 0.5*x[8] &
      + 1.8*x[11] + 0.4*x[12] + 1.1*x[13] + 0.8*x[14] + 6.5*x[15] + &
      3.4*x[16] + 2.2*x[17] + 4.1*x[18] + 2.4*x[19] &
      + 0.1*x[20] + 1.4*x[21] + 0.3*x[22] + 0.7*x[23] + 1.1*x[24] + &
      1.1*x[25] + 0.7*x[26] + 2.1*x[27] + 0.7*x[28] &
      + 2.1*x[29] + 0.7*x[30] + 4.7*x[31] + 0.7*x[32] + 3.8*x[33] + &
      25.1*x[34] + 3.4*x[35] + 0.3*x[36] &
      + 3.3*x[41] + 2*x[42] + 2.3*x[43] + 2*x[44] + 10.1*x[45] + 3.2*x[46] &
      + 2.5*x[47] + 2.8*x[48] + 1.9*x[49] + 2*x[50] + 0.6*x[51] + &
      2.1*x[52] + 0.9*x[53] + 0.7*x[54] + 0.41*x[55] &
      + 1*x[56] + 1.6*x[57] + 1*x[58] + 0.2*x[59] + 4*x[60] + 0.2*x[61] &
      + 0.6*x[62] + 0.4*x[63] + 1.3*x[64] &
      + 0.3*x[65] + 1.6*x[66] + 1.1*x[67] + 1*x[68] + 2.1*x[69] + &
      0.6*x[70] + 0.1*x[71] + 0.4*x[72] + 0.5*x[73] &
      + 2.4*x[74] + 3*x[75] + 0.4*x[76] + 0.6*x[77] + 0.1*x[79] + &
      3.6*x[80] + 1.1*x[81] + 0.9*x[82] &
      + 1*x[83] + 1*x[84] + 2.9*x[85] + 1.6*x[86] + 1*x[87] + 1*x[88] + &
      0.5*x[89] + 1.1*x[90] + 2.3*x[91] &
      + 4.4*x[92] + 1.1*x[93] + 2.8*x[94] + 0.3*x[95] + 0.4*x[96] + &
      0.1*x[97] + 0.4*x[98] + 0.5*x[99] + 0.3*x[100] <= 45

    ! vitamin A
    600 <= 82*x[2] + 166*x[4] + 3*x[5] + 38*x[6] + 66*x[7] + 41*x[8] + &
      2*x[11] + 25*x[12] + 9*x[13] + 5*x[14] + 105*x[15] &
      + 2*x[16] + 63*x[17] + 124*x[18] + 65*x[19] + 2*x[20] + 1*x[21] + &
      18*x[23] + 10*x[24] + 2*x[25] + 2*x[26] + 3*x[27] + 14*x[28] &
      + 26*x[29] + 6*x[30] + 87*x[32] + 809*x[34] + 352*x[41] + 360*x[42] &
      + 435*x[43] + 253*x[44] + 51*x[45] + 348*x[46] &
      + 133*x[47] + 38*x[48] + 250*x[49] + 54*x[50] + 14*x[51] + 201*x[52] &
      + 83*x[53] + 44*x[54] + 3*x[55] &
      + 527*x[56] + 156*x[57] + 184*x[60] + 27*x[61] + 50*x[62] + 12*x[63] &
      + 11*x[64] &
      + 16*x[66] + 307*x[67] + 4*x[68] + 211*x[70] + 9*x[71] + 30*x[72] + &
      20*x[73] &
      + 76*x[74] + 26*x[75] + 21*x[76] + 36*x[77] + 1*x[78] + 11*x[79] + &
      33*x[80] + 100*x[81] + 32*x[82] &
      + 18*x[83] + 49*x[84] + 109*x[85] + 35*x[86] + 142*x[87] + 38*x[88] &
      + 110*x[89] + 69*x[90] &
      + 2*x[92] + 6*x[93] + 1*x[94] + 24*x[95] + 8*x[96] + 14*x[98] + &
      2*x[99] + 8*x[100] <= 2800

    ! beverage
    x[1] + x[2] + x[3] + x[4] + x[5] + x[6] + x[7] + x[8] +x[9] + x[10] >= 4

    ! cereal based
    x[11] + x[12] + x[13] + x[14] + x[15] + x[16] + x[17] + x[18] + x[19] + x[20] = 1

    ! rice based
    x[21] + x[22] + x[23] + x[24] + x[25] + x[26] + x[27] + x[28] + x[29] + x[30] = 1

    ! cereal meal
    x[31] + x[32] + x[33] + x[34] + x[35] + x[36] = 2

    ! meat dish
    x[41] + x[42] + x[43] + x[44] + x[45] + x[46] + x[47] + x[48] + x[49] + x[50] = 1

    ! vegetable
    x[51] + x[52] + x[53] + x[54] + x[55] + x[56] + x[57] + x[58] + x[59] + x[60] = 2

    ! fruit
    x[61] + x[62] + x[63] + x[64] + x[65] + x[66] + x[67] + x[68] + x[69] + x[70] = 2

    ! wheat based
    x[71] + x[72] + x[73] + x[74] + x[75] + x[76] + x[77] + x[78] + x[79] + x[80] = 1

    ! sea food
    x[81] + x[82] + x[83] + x[84] + x[85] + x[86] + x[87] + x[88] + x[89] + x[90] = 1

    ! miscellaneous
    x[91] + x[92] + x[93] + x[94] + x[95] + x[96] + x[97] + x[98] + x[99] + x[100] = 1
  End Equations

End Model