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.
![Click for copyable input](assets.es/solve-the-knapsack-problem/In_72.png)
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.
![Click for copyable input](assets.es/solve-the-knapsack-problem/In_73.png)
counts = KnapsackSolve[fruits, Quantity[25, "Euros"]]
![](assets.es/solve-the-knapsack-problem/O_65.png)
Ésta es la contribución calórica de cada uno de los tipos de fruta y el total.
![Click for copyable input](assets.es/solve-the-knapsack-problem/In_74.png)
fruits[[All, 1]] counts
![](assets.es/solve-the-knapsack-problem/O_66.png)
![Click for copyable input](assets.es/solve-the-knapsack-problem/In_75.png)
fruits[[All, 1]] counts;
Total[%]
![](assets.es/solve-the-knapsack-problem/O_67.png)
Éste es el costo de cada tipo de fruta y el costo total.
![Click for copyable input](assets.es/solve-the-knapsack-problem/In_76.png)
fruits[[All, 2]] counts
![](assets.es/solve-the-knapsack-problem/O_68.png)
![Click for copyable input](assets.es/solve-the-knapsack-problem/In_77.png)
fruits[[All, 2]] counts;
Total[%]
![](assets.es/solve-the-knapsack-problem/O_69.png)