Solución del problema de la mochila
La nueva función KnapsackSolve proporciona una forma fácil y amigable para el usuario de resolver problemas de optimización combinatoria, tales como el problema de la mochila. Los problemas de la mochila aparecen en procesos de toma de decisiones en una gran variedad de campos de estudio, como por ejemplo problemas de corte de dos dimensiones y presupuesto de capital, y son también utilizados en la construcción de sistemas criptográficos.
Ésta es una lista de compras en la cual cada fruta es especificada junto con su contenido calórico, precio promedio y conteo máximo.
fruits = <|
Entity["FoodType", "Apple"] -> {Quantity[91, "LargeCalories"],
Quantity[2.36, "Euros"], 3},
Entity["FoodType", "Orange"] -> {Quantity[71, "LargeCalories"],
Quantity[2.12, "Euros"], 3},
Entity["FoodType", "Banana"] -> {Quantity[105, "LargeCalories"],
Quantity[1.89, "Euros"], 5},
Entity["FoodType", "Kiwi"] -> {Quantity[103, "LargeCalories"],
Quantity[3.77, "Euros"], 10},
Entity["FoodType", "Pear"] -> {Quantity[96, "LargeCalories"],
Quantity[2.87, "Euros"], 5}|>;
Determine el número de frutas de cada tipo que maximiza el contenido calórico para una determinada cantidad de dinero.
counts = KnapsackSolve[fruits, Quantity[25, "Euros"]]
Ésta es la contribución calórica de cada uno de los tipos de fruta y el total.
fruits[[All, 1]] counts
fruits[[All, 1]] counts;
Total[%]
Éste es el costo de cada tipo de fruta y el costo total.
fruits[[All, 2]] counts
fruits[[All, 2]] counts;
Total[%]