Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda...
Transcript of Optymalizacja. Algorytmy dok adne · Maciej Komosiński Optymalizacja. Algorytmy dokładne. Metoda...
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
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
Metoda podziału i ograniczeńProgramowanie dynamiczne
Organizacja zbioru rozwiązań w problemie TSP
Maciej Komosiński Optymalizacja. Algorytmy dokładne
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
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
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
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
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
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
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
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
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
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
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
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
Metoda podziału i ograniczeńProgramowanie dynamiczne
Programowanie dynamiczne – ilustracja z wykładuTrajektorie lotu rakiety
Maciej Komosiński Optymalizacja. Algorytmy dokładne
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
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
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