Kann Excel Solver diese Knapsack-ähnliche Optimierung lösen?

757
Hairgami_Master

Ich kaufe etwas zu essen und möchte die meisten Kalorien, die ich für mein Geld bekommen kann.

Ich habe ein Budget von 12,00 $. Es gibt 3 Lebensmittelgruppen, und ich muss 2 Artikel aus jeder dieser Gruppen auswählen. Es gibt auch eine Dessertgruppe - ich muss einen Dessertartikel auswählen. Das sind insgesamt 7 Artikel. Sie können einen Artikel nur einmal kaufen.

Also hier sind meine Artikel:

ID Food Group Calories Price 1 Banana Fruit (must pick 2 fruits) 160 $.75 2 Apple Fruit (must pick 2 fruits) 120 $.65 3 Orange Fruit (must pick 2 fruits) 160 $1.25 4 Sausage Meat (must pick 2 meats) 260 $3.05 5 Bologna Meat (must pick 2 meats) 230 $1.15 6 Ground Beef Meat (must pick 2 meats) 310 $3.15 7 Salami Meat (must pick 2 meats) 320 $2.73 8 Carrots Veg (must pick 2 vegetables) 70 $1.80 9 Cucumbers Veg (must pick 2 vegetables) 90 $2.10 10 Bell Pepper Veg (must pick 2 vegetables) 110 $1.35 11 Cake Dessert (must pick 1 dessert) 350 $2.28 12 Pie Dessert (must pick 1 dessert) 320 $2.90 13 Ice Cream Dessert (must pick 1 dessert) 380 $1.86 

Kann ich dieses Problem mit dem Solver-Add-In in Excel lösen? Würdest du mich bitte in die richtige Richtung weisen?

1

1 Antwort auf die Frage

1
LDC3

Unglücklicherweise nicht. Excel kann jeweils nur ein Element variieren und Sie müssen mindestens 4 Variablen ändern.

Aber auf der helleren Seite brauchen Sie nicht den Löser, um die beste Anordnung zu erhalten. Zuerst berechnen Sie die Kosten pro Kalorie. Wählen Sie aus jeder Gruppe die niedrigsten 2 (oder 1) Elemente aus. Sie sind fertig.

Das war meine erste Reaktion, aber das stimmt nicht unbedingt. Die niedrigsten Kosten pro Kalorie könnten Artikel verwenden, die zusammen die Grenze von $ 12 überschreiten. Dies ist wahrscheinlich ein schlechtes Beispiel, um das Problem zu veranschaulichen. Im Allgemeinen können höhere Kalorienwerte in einer Lebensmittelgruppe höhere Kosten verursachen. Um im Rahmen des Budgets zu bleiben, müssen Sie möglicherweise Nahrungsmittel auswählen, die weniger Kalorien oder höhere Kosten pro Kalorie enthalten, jedoch weniger Artikel. fixer1234 vor 9 Jahren 0
@ fixer1234 Mit der obigen Methode bekomme ich 1410 Kalorien für 10,59 $. Da mir nur noch 1,41 US-Dollar zur Verfügung stehen, kann ich einen anderen Artikel hinzufügen oder den Artikel wechseln. Da das Wechseln von Artikeln zu geringeren Kosten zu geringeren Kosten führt, empfiehlt es sich, einen weiteren Artikel hinzuzufügen. Einige Preise basieren ebenfalls auf Angebot und Nachfrage. Chuck Steak kann $ 4,99 / Pfund sein, aber Lendensteak ist fast $ 15,99 / Pfund, aber sie haben fast die gleichen Kalorien. LDC3 vor 9 Jahren 0
In dem genannten Beispiel haben Sie recht. Ich nahm an, dass dies ein erfundenes Beispiel ist, um das Problem zu veranschaulichen, und die Werte wurden nicht durchdacht. Bei realen Daten kann es zu widersprüchlichen Entscheidungen kommen. Zum Beispiel könnte es einen Verkauf auf Bologna in einem großen Sparpaket mit einem guten Preis / Pfund geben. Dies könnte die niedrigsten Kosten / Kalorien ergeben, aber der Artikelpreis könnte zu hoch sein. In ähnlicher Weise könnte die beste Auswahl für drei der Lebensmittelgruppen Ihnen gerade genug Geld für einen letzten Artikel mit niedrigen Artikelkosten, aber hohen Kosten / Kalorien geben. Für den allgemeinen Fall denke ich, dass VBA erforderlich ist, um eine Lösung zu durchlaufen. fixer1234 vor 9 Jahren 0
Vielen Dank, ich glaube, ich muss MatLAB für diese Art von Problem verwenden. Ich habe nicht angegeben, dass ich meine Ausgaben maximieren wollte - eine zusätzliche Einschränkung, die scheinbar einen Unterschied macht. Hairgami_Master vor 9 Jahren 0