this repo has no description
at develop 1.3 kB view raw
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 ];