Problem plecakowy?

Problem plecakowy?
BU
  • Rejestracja:prawie 15 lat
  • Ostatnio:prawie 15 lat
0

Nie wiem jak algorytm tak naprawdę będzie do tego najlepszy.

http://pl.wikipedia.org/wiki/Problem_plecakowy

Problem plecakowy często przedstawia się jako problem złodzieja rabującego sklep – znalazł on N towarów; j–ty przedmiot jest wart c[j] oraz waży w[j]. Złodziej dąży do zabrania ze sobą jak najwartościowszego łupu, przy czym nie może zabrać więcej niż B kilogramów. Nie może też zabierać ułamkowej części przedmiotów (byłoby to możliwe w ciągłym problemie plecakowym).

Ale mam problem taki, że:
Plecaków może być kilka ustalam ile, oraz będą kwoty ujemne i musi tak pakować do plecaków, żeby nie zostały kwoty ujemne oraz wartość plecaka była dodatnia (Rozmiar plecaków taki sam)

KR
Moderator
  • Rejestracja:około 21 lat
  • Ostatnio:około 9 godzin
  • Postów:2964
0

Ale co to znaczy najlepszy?
Są 2 sprzeczne kryteria: jakość podawanych wyników oraz szybkość obliczeń.
Algorytmy dokładne będą powolne a heurystyki podadzą wynik szybko, ale może nie być optymalny.

lemmiwink
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 12 lat
0

Dla problemu ciągłego rozwiązaniem może być algorytm SIMPLEX, dla dyskretnego poszukaj w googlach coś na temat optymalizacji liniowej dyskretnej

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
0
Krolik napisał(a)

Ale co to znaczy najlepszy?
Są 2 sprzeczne kryteria: jakość podawanych wyników oraz szybkość obliczeń.

Jak to z większością algorytmów bywa, „najlepszy” to taki, który może nie daje zawsze optymalnego wyniku, ale bliski optymalnemu, oraz wykonuje się w rozsądnym czasie.

matek3005
  • Rejestracja:około 15 lat
  • Ostatnio:prawie 5 lat
  • Postów:358
0

Spróbuj rozwiązać to genetycznie :)

KR
Moderator
  • Rejestracja:około 21 lat
  • Ostatnio:około 9 godzin
  • Postów:2964
0

Zanim spróbujesz genetycznymi, lepiej spróbuj VNS - dużo prostsze, mniej parametrów i działa na ogół znacznie lepiej (nie ma problemów z przedwczesną zbieżnością, ma mniejsze zapotrzebowanie na RAM, nakłada mniejsze wymagania na reprezentację rozwiązań - w sumie same zalety; nie bardzo widzę, w czym genetyczne mogą być lepsze). W sumie VNSa dla problemu plecakowego można zakodować w mniej niż 20 linijkach.

lemmiwink
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 12 lat
0

Co to znaczy

...będą kwoty ujemne i musi tak pakować do plecaków, żeby nie zostały kwoty ujemne...
?
Czy to znaczy, że do plecaka trzeba wziąć wszystkie elementy o ujemnych wartościach? Tak to trzeba rozumieć?</quote>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.