Czy program Excel Solver może rozwiązać tę optymalizację przypominającą plecak?

1

Kupuję jedzenie i chcę jak najwięcej kalorii za moje pieniądze.

Mam budżet w wysokości 12,00 USD. Istnieją 3 grupy żywności i muszę wybrać 2 przedmioty z każdej z tych grup. Jest też grupa Deserów - muszę wybrać jeden deser. To w sumie 7 pozycji. Nie możesz kupić przedmiotu więcej niż raz.

Oto moje przedmioty:

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

Czy mogę rozwiązać ten problem w programie Excel za pomocą dodatku Solver? Czy mógłbyś skierować mnie w dobrym kierunku?

Hairgami_Master
źródło

Odpowiedzi:

1

Niestety nie. Excel może zmieniać tylko jeden element na raz i musisz zmienić co najmniej 4 zmienne.

Ale z drugiej strony, nie potrzebujesz solvera, aby uzyskać najlepszą aranżację. Najpierw oblicz koszt za kalorię. Wybierz najniższe 2 (lub 1) elementy z każdej grupy. Jesteś skończony.

LDC3
źródło
To była moja pierwsza reakcja, ale niekoniecznie jest to prawda. Najniższy koszt na kalorię może obejmować przedmioty, które łącznie przekraczają limit 12 USD. Jest to prawdopodobnie zły przykład użyty do zilustrowania problemu. W ogólnym przypadku wyższa liczba kalorii w grupie żywności może wiązać się z wyższymi kosztami. Przestrzeganie budżetu może wymagać wyboru żywności o mniejszej liczbie kalorii lub wyższym koszcie na kalorię, ale mniejszym koszcie produktu.
fixer1234
@ fixer1234 Używając powyższej metody, otrzymuję 1410 kalorii za 10,59 USD. Ponieważ pozostawia mi to 1,41 USD, mogę dołączyć inny przedmiot lub zmienić przedmioty. Ponieważ zamiana przedmiotów przyniesie mi mniej kalorii przy wyższym koszcie, najlepiej byłoby dodać kolejny przedmiot. Ponadto niektóre ceny oparte są na podaży i popycie. Stek z chucka może kosztować 4,99 USD / funt, ale stek z polędwicy kosztuje prawie 15,99 USD / funt, ale mają prawie takie same kalorie.
LDC3
W podanym przykładzie masz rację. Zakładałem, że to wymyślony przykład, aby zilustrować problem, a wartości nie zostały przemyślane. W przypadku rzeczywistych danych mogą istnieć sprzeczne wybory. Np. Może być sprzedaż w Bolonii w dużym pakiecie ekonomicznym o dobrej cenie / funt. Może to przynieść najniższy koszt / kalorię, ale cena produktu może być zbyt wysoka. Podobnie najlepsze wybory dla trzech grup żywności mogą dać ci wystarczająco dużo pieniędzy na ostatni produkt o niskim koszcie, ale wysokim koszcie / kalorii. W ogólnym przypadku myślę, że może to wymagać VBA do iteracji rozwiązania.
fixer1234
Dzięki chłopaki - myślę, że będę musiał użyć MatLAB do tego rodzaju problemów. Nie sprecyzowałem, że próbuję zmaksymalizować swoje wydatki - dodatkowe ograniczenie, które wydaje się mieć znaczenie.
Hairgami_Master