this repo has no description
1% Planning a balanced meal
2include "table.mzn";
3int: min_energy;
4int: min_protein;
5int: max_salt;
6int: max_fat;
7set of FOOD: desserts;
8set of FOOD: mains;
9set of FOOD: sides;
10enum FEATURE = { name, energy, protein, salt, fat, cost};
11enum FOOD;
12array[FOOD,FEATURE] of int: dd; % food database
13
14array[FEATURE] of var int: main;
15array[FEATURE] of var int: side;
16array[FEATURE] of var int: dessert;
17var int: budget;
18
19constraint main[name] in mains;
20constraint side[name] in sides;
21constraint dessert[name] in desserts;
22constraint table(main, dd);
23constraint table(side, dd);
24constraint table(dessert, dd);
25constraint main[energy] + side[energy] + dessert[energy] >=min_energy;
26constraint main[protein]+side[protein]+dessert[protein] >=min_protein;
27constraint main[salt] + side[salt] + dessert[salt] <= max_salt;
28constraint main[fat] + side[fat] + dessert[fat] <= max_fat;
29constraint budget = main[cost] + side[cost] + dessert[cost];
30
31solve minimize budget;
32
33output ["main = ",show(to_enum(FOOD,main[name])),
34 ", side = ",show(to_enum(FOOD,side[name])),
35 ", dessert = ",show(to_enum(FOOD,dessert[name])),
36 ", cost = ",show(budget), "\n"];