Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda...

19
Optymalizacja. Algorytmy dokladne dr hab. inż. Maciej Komosiński Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski Maciej Komosiński, Maciej Hapke

Transcript of Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda...

Page 1: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Optymalizacja. Algorytmy dokładne

dr hab. inż. Maciej Komosiński

Instytut InformatykiPolitechnika Poznańska

www.cs.put.poznan.pl/mkomosinski

© Maciej Komosiński, Maciej Hapke

Page 2: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Organizacja zbioru rozwiązań w problemie SAT

Wielokrotny podział na dwia podzbiory: x1 = T , x1 = F , ...

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 3: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Organizacja zbioru rozwiązań w problemie TSP

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 4: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Jeśli w drzewie umieścimy rozwiązania niekompletne(częściowe)...

Czy można jakoś ograniczyć przeglądanie takiego drzewa?

Tak – można nie przeglądać gałęzi prowadzących tylko dorozwiązań niedopuszczalnych

Tak – można nie przeglądać gałęzi, w których nie istniejerozwiązanie lepsze od już znalezionego

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 5: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Ilustracja z wykładu – coraz lepsze ograniczenieCzerwona przerywana linia to złe ograniczenie – trasy mogą być krótsze

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 6: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Problem plecakowy – zapis matematyczny

Zmiennexi ∈ {0, 1} − 1 jeżeli element i jest umieszczany w plecaku

Maksymalizuj∑i xici

Przy ograniczeniu:∑i xiwi ≤W

Problem plecakowy jest NP-trudny

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 7: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Metoda podziału i ograniczeń – Branch & Bound

Konstruowanie rozwiązania jest widziane jak przeglądanie drzewa.Np. dla problemu plecakowego:

{0,0,0,0}

{1,0,0,0}

{1,1,0,0}

{1,1,1,0}

{1,1,1,1}

{1,1,0,1}

{1,0,1,0}

{1,0,1,1}

{1,0,0,1}

{0,1,0,0}

{0,1,1,0}

{0,1,1,1}

{0,1,0,1}

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 8: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Górna (dolna) granica – upper (lower) bound

Górna granica – wartość, której na pewno nie przekroczyfunkcja celu dla żadnego z rozwiązań, w których ustalonopewne elementy (np. pewne zmienne decyzyjne)

Np. jaka jest górna granica dla rozwiązań, w których x1 = 1 ix5 = 1 ?

Górna granica nie musi być, i z reguły nie jest, osiągalna przezżadne rozwiązanie

Znajdowanie górnej granicy jest zależne od problemu

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 9: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Znajdowanie górnej granicy dla problemu plecakowego

Załóżmy, że do plecaka możemy wkładać części elementów

Posortuj elementy według stosunku ci/wi

Wkładaj do plecaka elementy rozpoczynając od elementu onajwiększym stosunku ci/wi aż do zapełnienia plecaka.

Ostatni element może zostać włożony częściowo.

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 10: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Przykład. Pojemność plecaka = 10

Element i wi ci Stosunek ci/wi

1 3 5 1.6666672 6 5 0.8333333 5 4 0.84 2 1.5 0.753 1 0.3333334 1 0.25

Górna granica = 5+ 5+ 15 · 4 = 10.8

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 11: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Znajdowanie górnej granicy dla problemu plecakowego

Jeżeli pewne części rozwiązania są już ustalone (elementy sąwybrane – 1, lub nie – 0), to rozpatrujemy tylko pozostałeelementy

Np. jeśli zadecydowaliśmy, że nie umieszczamy elementu 1, aelement 2 jest już w plecaku i mamy 4 jednostki wolne:

43

Górna granica = 5+ 45 · 4 = 8.2

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 12: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Metoda podziału i ograniczeń

Jeżeli dla danej gałęzi drzewa górna granica jest niższa od znanegojuż rozwiązania, to gałąź tę można pominąć.

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 13: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

B&B – przykład (problem plecakowy)

{0,0,0,0,0,0}C=0,GG=10.8

{1,0,0,0,0,0}C=5,GG=10.8

{1,1,0,0,0,0}C=10,GG=10.8

Niedopuszczalność

{0,1,0,0,0,0}C=5,GG=8.2

{1,0,1,0,0,0}C=9,GG=10.5

{1,0,1,1,0,0}C=10.5,GG=10.5

{1,0,0,1,0,0}C=6.5,GG=8

{1,0,0,0,1,0}C=6,GG=7

Niedopuszczalność

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 14: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Branch & Bound – produkcja

Znajdź przydział, który maksymalizuje łączną wydajność.

Wydajność cij :PPPPPPPPPStanowisko

Wyrób1 2 3 4

A 2 10 9 7B 15 4 14 8C 13 14 16 11D 4 15 13 9

1 Sformułuj ogólne zadanie2 Zaproponuj algorytm jego rozwiązania3 Zastosuj go do powyższej instancji problemu.

B.O.D.I., zad. 2.21

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 15: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Programowanie dynamiczne

PD jest stosowane do wieloetapowych procesów decyzyjnych z własnościąMarkowaKatarzyna Jakowska-Suwalska. Programowanie dynamiczne, przykłady izadania (online doc).WPD: n + 1 stanów (si ), n decyzji (xi ), si+1 = Ti (si , xi )WPD: s1 → d1 → s2 → d2 → s3 → ...→ sn → dn → sn+1Na każdym etapie procesu, będąc w stanie si ∈ Si , podejmujemy decyzję di zezbioru decyzji Di

Strategia to ciąg decyzji d1, d2, .., dn

Własność Markowa: w dowolnym stanie procesu, wpływ dalszych decyzji nafunkcję celu zależy tylko od bieżącego stanu i tych decyzji (historia nie wpływa)Wiele zadań optymalizacji da się sprowadzić do (potraktować jak) WPD zwłasnością MarkowaNa przykład z = f1(s1, x1) + ...+ fn(sn, xn)Z własności Markowa wynika zasada optymalności Richarda Bellmana którąwykorzystuje PD: „Strategia optymalna ma tę własność, że niezależnie od tegojaki był stan początkowy i jakie były decyzje początkowe, pozostałe decyzjemuszą tworzyć strategię optymalną ze względu na stan będący efektem tychpoczątkowych decyzji.”

B.O.D.I., str. 91–94

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 16: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Programowanie dynamiczne – ilustracja z wykładuTrajektorie lotu rakiety

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 17: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Programowanie dynamiczne – przykład

Zadanie: jednowymiarowy proces alokacyjny. Rozdziel M = 8jednostek zasobu na N = 3 działalności (zyski podane w tabeli)tak, aby zmaksymalizować całkowity zysk.

x 0 1 2 3 4 5 6 7 8f1(x) 0 5 15 40 80 90 95 98 100f2(x) 0 5 15 40 60 70 73 74 75f3(x) 0 4 26 40 45 50 51 52 53

1 Sformułuj ogólne zadanie jako PM2 Zaproponuj sposób jego dekompozycji dla PD3 Rozwiąż powyższą instancję problemu.

B.O.D.I., str. 91–94

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 18: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Programowanie dynamiczne [obliczenia]

x 0 1 2 3 4 5 6 7 8f1(x) 0 5 15 40 80 90 95 98 100f2(x) 0 5 15 40 60 70 73 74 75f3(x) 0 4 26 40 45 50 51 52 53

x 0 1 2 3 4 5 6 7 8q3(x)

d3(x)

q2(x)

d2(x)

q1(x)

d1(x)

Maciej Komosiński Optymalizacja. Algorytmy dokładne

Page 19: Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda podziału i ograniczeń ... Znajdź przydział, który maksymalizuje łączną wydajność.

Metoda podziału i ograniczeńProgramowanie dynamiczne

Programowanie dynamiczne [obliczenia]

x 0 1 2 3 4 5 6 7 8f1(x) 0 5 15 40 80 90 95 98 100f2(x) 0 5 15 40 60 70 73 74 75f3(x) 0 4 26 40 45 50 51 52 53

x 0 1 2 3 4 5 6 7 8q3(x) 0 4 26 40 45 50 51 52 53d3(x) 0 1 2 3 4 5 6 7 8q2(x)

d2(x)

q1(x)

d1(x)

Maciej Komosiński Optymalizacja. Algorytmy dokładne