Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Decyzyjny algorytm plecakowy dla dóch plecaków

Ostatnio zmodyfikowano 2013-08-19 15:42
Autor Wiadomość
qba10
Temat założony przez niniejszego użytkownika
Decyzyjny algorytm plecakowy dla dóch plecaków
» 2013-08-19 00:54:03
Hej

Muszę zaimplementować algorytm plecakowy, tylko że problem tkwi w tym że nie jest to standardowy algorytm plecakowy, tylko decyzyjny (binarny) algorytm plecakowy dla dwóch plecaków (muszę wypełnić dwa plecaki o różnej pojemności pulą przedmiotów o jak największej wartości)

O ile już wiem jak zaimplementować algorytm dla jednego plecaka (używam metody programowania dynamicznego), o tyle zastanawiam się co z drugim plecakiem.
Pomysł był taki, żeby załadować jeden plecak, potem odrzucić przedmioty te które się znalazły w pierwszym i zrobić to dla drugiego, ale pierwsze wstępne próby na kartce pokazały że może to być nie optymalne ( a zależy mi na jak najbardziej optymalnym rozwiązaniu)

Czy macie może jakiś pomysł lub wskazówkę ?
P-90504
jankowalski25
» 2013-08-19 10:54:15
Potraktuj plecaki tak, jak elementy, które mają być w nich umieszczone i zastosuj poznany algorytm do wypełnienia wszystkich plecaków. Na podstawie tego możesz określić właściwą kolejność wypełniania plecaków. Myślę, że program będzie wystarczająco szybki, ale tym przejmuj się dopiero po jego napisaniu.
P-90512
DejaVu
» 2013-08-19 11:36:14
A istnieje coś takiego jak optymalny algorytm pakowania plecaka?

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

http://pl.wikipedia.org/wiki​/Algorytm_pseudowielomianowy
Problem plecakowy jest NP-trudny i nie jest dla niego znany algorytm wielomianowy (gdyby istniał oznaczałoby to, ze P=NP). Znany jest jednak algorytm pseudowielomianowy dla tego problemu oparty na programowaniu dynamicznym.

http://en.wikipedia.org/wiki​/Knapsack_problem

» Dokumentacjaproblem NP-Trudny

/edit:
Problem plecakowy jest NP-trudny i nie jest dla niego znany algorytm wielomianowy (gdyby istniał oznaczałoby to, ze P=NP).
Podkreślony fragment tekstu jest jednak nieprawdziwy, bowiem w przypadku ewentualnego znalezienia algorytmu wielomianowego dla problemu plecakowego, problem plecakowy zostałby zaklasyfikowany do innej puli, a problemy NP byłyby nadal nietknięte.
P-90518
qba10
Temat założony przez niniejszego użytkownika
» 2013-08-19 11:53:53
@jankowalski25

Trochę nie mogę sobie wyobrazić w jaki sposób  traktować plecaki jak elementy, które mają być w nich umieszczone. Mam umieścić plecak w plecaku czy co ?
P-90519
jankowalski25
» 2013-08-19 15:42:47
Najpierw używasz algorytmu, żeby znaleźć rozwiązanie, a później przetwarzasz wynik. Jeśli otrzymasz plecak w plecaku, to umieszczasz w danym plecaku elementy z tego plecaka, a nie sam plecak.

//edit: Upraszczając: Traktuj elementy jak pliki, a plecaki jak foldery.

//edit2: Przekładanie elementów z plecaka do plecaka wykonuj w trakcie obliczeń, bo inaczej możesz uzyskać nieprawidłowy wynik. Możesz również na początku ustalić właściwą kolejność (na wszelki wypadek wykonaj testy i sprawdź, czy wynik jest w porządku, bo nie jestem w 100% pewny tego algorytmu).
P-90535
« 1 »
  Strona 1 z 1