this repo has no description
1% Productos a producir.
2enum Products;
3
4% Beneficio por unidad para cada producto.
5array[Products] of int: profit;
6
7% Recursos a utilizar.
8enum Resources;
9
10% Cantidad de cada recurso disponible.
11array[Resources] of int: capacity;
12
13% Unidades de cada recurso requerido para producir 1 unidad de producto.
14array[Products, Resources] of int: consumption;
15constraint assert(forall (r in Resources, p in Products)
16 (consumption[p,r] >= 0), "Error: consumo negativo");
17
18% Sobre el número de productos.
19int: mproducts = max (p in Products)
20 (min (r in Resources where consumption[p,r] > 0)
21 (capacity[r] div consumption[p,r]));
22
23% Variables: La cantidad que se debe de producir de cada producto.
24array[Products] of var 0..mproducts: produce;
25array[Resources] of var 0..max(capacity): used;
26
27% La producción no puede utilizar más que los recursos disponibles.
28constraint forall (r in Resources) (
29 used[r] = sum (p in Products)(consumption[p, r] * produce[p])
30);
31constraint forall (r in Resources) (
32 used[r] <= capacity[r]
33);
34
35% Maximizar los beneficios.
36solve maximize sum (p in Products) (profit[p] * produce[p]);
37
38output [ "\(p) = \(produce[p]);\n" | p in Products ] ++
39 [ "\(r) = \(used[r]);\n" | r in Resources ];