this repo has no description
1% Planificación de una comida equilibrada.
2include "table.mzn";
3
4int: min_energy;
5int: min_protein;
6int: max_salt;
7int: max_fat;
8set of FOOD: desserts;
9set of FOOD: mains;
10set of FOOD: sides;
11enum FEATURE = { name, energy, protein, salt, fat, cost};
12enum FOOD;
13
14% Base de datos de alimentos.
15array[FOOD,FEATURE] of int: dd;
16
17array[FEATURE] of var int: main;
18array[FEATURE] of var int: side;
19array[FEATURE] of var int: dessert;
20var int: budget;
21
22constraint main[name] in mains;
23constraint side[name] in sides;
24constraint dessert[name] in desserts;
25constraint table(main, dd);
26constraint table(side, dd);
27constraint table(dessert, dd);
28constraint main[energy] + side[energy] + dessert[energy] >=min_energy;
29constraint main[protein]+side[protein]+dessert[protein] >=min_protein;
30constraint main[salt] + side[salt] + dessert[salt] <= max_salt;
31constraint main[fat] + side[fat] + dessert[fat] <= max_fat;
32constraint budget = main[cost] + side[cost] + dessert[cost];
33
34solve minimize budget;
35
36output ["Plato principal = ",show(to_enum(FOOD,main[name])),
37 ", acompañamiento = ",show(to_enum(FOOD,side[name])),
38 ", postre = ",show(to_enum(FOOD,dessert[name])),
39 ", costo = ",show(budget), "\n"];