Wolfram Language

Álgebra y teoría de números

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.

In[1]:=
Click for copyable input
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.

In[2]:=
Click for copyable input
counts = KnapsackSolve[fruits, Quantity[25, "Euros"]]
Out[2]=

Ésta es la contribución calórica de cada uno de los tipos de fruta y el total.

In[3]:=
Click for copyable input
fruits[[All, 1]] counts
Out[3]=
In[4]:=
Click for copyable input
fruits[[All, 1]] counts; Total[%]
Out[4]=

Éste es el costo de cada tipo de fruta y el costo total.

In[5]:=
Click for copyable input
fruits[[All, 2]] counts
Out[5]=
In[6]:=
Click for copyable input
fruits[[All, 2]] counts; Total[%]
Out[6]=

Ejemplos relacionados

de en fr ja ko pt-br ru zh