Zaawasowae programowaie wykład 5: algorytmy dokłade prof. dr hab. iż. Marta Kasprzak Istytut Iformatyki, Politechika Pozańska lgorytmy dokłade lgorytmy dokłade służą rozwiązywaiu problemów w sposób dokłady (czyli ieheurystyczy). W przypadku problemów optymalizacyjych ozacza to gwarację wygeerowaia rozwiązaia optymalego Problemy trude obliczeiowo rozwiązywae są algorytmami działającymi w tzw. wykładiczym czasie: problemy silie NP-trude (silie NP-zupełe) rozwiązywae są algorytmami wykładiczymi, p. algorytmem brach-ad-boud lub brach-ad-cut problemy NP-trude (NP-zupełe) w zwykłym sesie mogą zostać rozwiązae algorytmami pseudowielomiaowymi, p. algorytmem programowaia dyamiczego 2 Metoda podziału i ograiczeń (ag. brach-ad-boud) opiera się a przeszukiwaiu (ajczęściej w głąb) drzewa reprezetującego przestrzeń rozwiązań problemu. Stosowae w tej metodzie odcięcia redukują liczbę przeszukiwaych węzłów (wykładiczą względem rozmiaru istacji) Metoda jest skompoowaa z grubsza rzecz ujmując z dwóch podstawowych procedur: rozgałęziaie (ag. brachig) dzieleie zbioru rozwiązań reprezetowaego przez węzeł a rozłącze podzbiory, reprezetowae przez astępików tego węzła ograiczaie (ag. boudig) pomijaie w przeszukiwaiu tych gałęzi drzewa, o których wiadomo, że ie zawierają optymalego rozwiązaia w swoich liściach Rozgałęziaie może być w korzeiu drzewa, jeśli rozpoczya każde rozwiązaie Następiki węzła muszą wyczerpywać wszystkie możliwe połączeia Węzeł reprezetuje zbiór rozwiązań osiągalych z iego Liście drzewa reprezetują komplete rozwiązaia 3 4 Ograiczaie Przykład dla problemu komiwojażera (bez predykcji) Odcięcia w drzewie opierają się a bieżącej wartości fukcji celu Im ta wartość bliższa optymalej, tym większe gałęzie moża pomiąć Wstępa heurystyka poprawia efektywość odcięć 0 31 32 11 18 31 0 59 23 46 32 59 0 40 15 11 23 40 0 27 18 46 15 27 0 Miejsca odcięć wykrywa się z wyprzedzeiem (predykcja) 126 5 6 1
W węźle drzewa porówywae są wartości tzw. dolego i górego ograiczeia (ag. lower ad upper boud). Wyik tego porówaia wpływa a decyzję o odcięciu gałęzi drzewa w tym węźle Przy założeiu miimalizacji fukcji celu, wartość tej fukcji dla ajlepszego osiągiętego do tej pory rozwiązaia staowi góre ograiczeie W (prawie) każdym węźle obliczaa jest aktuala wartość dolego ograiczeia, która musi być ie większa iż wartość fukcji celu ajlepszego rozwiązaia możliwego do osiągięcia z tego węzła ole i góre ograiczeie (miimalizacja fukcji celu) W bieżącym poddrzewie poszukujemy rozwiązań z obszaru pomiędzy góre ograiczeie dolym i górym (ajlepsze otrzymae do tej pory rozwiązaie) ograiczeiem Gdy obliczoa w węźle zbiór rozwiązań wartość dolego osiągaych ograiczeia jest ie z bieżącego węzła miejsza iż górego, odciamy poddrzewo wychodzące z tego węzła żade zawarte w im dole ograiczeie rozwiązaie ie będzie (żade rozwiązaie ie będzie lepsze) lepsze od posiadaego 7 8 Wartość dolego ograiczeia musi zostać obliczoa poprawie w tym sesie, że rzeczywiście żade rozwiązaie ie będzie miało lepszej wartości fukcji celu. Z drugiej stroy, wartość ta może odbiegać od rzeczywistej wartości fukcji celu ajlepszego rozwiązaia w poddrzewie Należy dążyć do tego, aby wartość dolego ograiczeia była jak ajbliższa rzeczywiście istiejącemu rozwiązaiu. Pozwoli to a dokoaie bardziej efektywych odcięć, czyli skróci czas obliczeń okłade obliczeie optymalej wartości dolego ograiczeia (rówej wartości fukcji celu optymalego rozwiązaia w poddrzewie) wiąże się z wykładiczym czasem obliczeń, stąd stosuje się szybkie metody przybliżoe 9 Przykładowo, dole ograiczeie dla problemu komiwojażera moża obliczyć sumując m+1 ajmiejszych iewłączoych jeszcze do trasy odległości z macierzy, gdzie m jest liczbą ieodwiedzoych miast ardziej dokładym przybliżeiem byłoby sumowaie odcików o ajmiejszej długości spośród dochodzących do ieodwiedzoych miast (plus powrót do źródła), po jedym a każde takie miasto alej przybliżając tę wartość, moża zliczać takie ajmiejsze odległości z macierzy, które łączą dwa ieodwiedzoe miasta, z uczyieiem wyjątku dla połączeń z bieżącą częścią rozwiązaia Krokiem dalej jest obliczaie w każdym węźle drzewa rozwiązaia dla problemu przydziału, w którym łączy się pozostałe miasta w pary i każde ieodwiedzoe miasto występuje w dwóch takich parach 10 Problem przydziału (ag. assigmet problem) sformułoway jest astępująco: mi z x ij i1 x ij j1 1, c x ij ij i1 j1 j 1,..., c ij koszt przydziału x ij zmiea decyzyja (o wartości 0/1) Iymi słowy, ależy z kwadratowej macierzy kosztów wybrać pozycji takich, że każdy wiersz i każda koluma macierzy jest wybraa dokładie raz oraz suma wskazaych kosztów jest miimala 1, i 1,..., 11 Problem przydziału rozwiązyway jest w wielomiaowym czasie tzw. metodą węgierską. Mimo to zastosowaie tego podejścia w każdym węźle drzewa może wydłużyć obliczeia zamiast je skrócić Obiekty w wierszach i kolumach mogą staowić, w zależości od iterpretacji, rozłącze lub idetycze zbiory (p. osoby i zadaia lub miasta w problemie komiwojażera) Rozwiązaie problemu przydziału dla miast z problemu komiwojażera daje zbiór rozłączych cykli. Miimala wartość z zawsze będzie poprawym dolym ograiczeiem by wykluczyć iepożąday (w problemie komiwojażera) wybór kosztu z przekątej macierzy, pozycjom tym przypisuje się a wstępie duże wartości 12 2
Przykład rozwiązaia problemu przydziału w węźle drzewa 0 31 32 11 18 31 0 59 23 46 32 59 0 40 15 11 23 40 0 27 18 46 15 27 0 23 46 11 27 18 27 Przykład rozwiązaia problemu przydziału w węźle drzewa 0 31 32 11 18 31 0 59 23 46 32 59 0 40 15 11 23 40 0 27 18 46 15 27 0 59 40 15 31 23 46 11 23 27 18 46 27 Rozw.: -,-,- Wartość f. celu: 68 ole ogr.: 159 Góre ogr.: 127 Rozw.: -,-,-,- Wartość fukcji celu: 79 ole ograiczeie: 111 Góre ograiczeie: 127 13 14 Porówaie metod o różym stopiu dokładości stosowaych do obliczeia dolego ograiczeia przykład ( slajd 10) metoda rozwiązaie wartość m+1 ajmiejszych odległości -, -, - 11+15+18=44 ajmiejsze odległości dochodzące do m+1 miast ajmiejsze odległości pomiędzy parami miast -, -, - 11+15+18=44 -, -, - 23+27+11=61 problem przydziału -, -, - 23+27+18=68 Wyik metody obliczającej dole ograiczeie może, wraz z częścią już istiejącego rozwiązaia, staowić poprawe rozwiązaie główego problemu. W takim przypadku jest to ajlepsze (lub jedo z ajlepszych) rozwiązaie możliwe do osiągięcia w poddrzewie wychodzącym z aalizowaego węzła i moża w tym miejscu zakończyć rozgałęziaie zasami moża zaoszczędzić a obliczeiach, przechodząc z węzła do jego astępika, gdyż problemy rozwiązywae w sąsiedich węzłach są podobe Struktura drzewa często opieraa jest a elemetach rozwiązaia każdy elemet w jedym węźle które po dodaiu do siebie tworzą rozwiązaie. Moża jedak zastosować iy schemat, p. węzeł ozacza brak daego elemetu w rozwiązaiu 15 16 Oprócz właściwego doboru schematu rozgałęziaia i ograiczaia, istotym elemetem jest uporządkowaie astępików węzła. Kolejość ich odwiedzaia ma wpływ a wcześiejsze osiągięcie lepszego górego ograiczeia, a więc a czas obliczeń Najczęściej stosowaymi strategiami są: least-cost-ext least-lower-boud-ext last-i-first-out first-i-first-out Uporządkowaie zależy w dużej mierze od rodzaju problemu Moża zrezygować z obliczaia dolego ograiczeia a ajiższych poziomach drzewa z uwagi a oszczędość czasu, ew. ajwyższych z uwagi a iską skuteczość Warto wyposażyć algorytm w mechaizm przerywaia zbyt długich obliczeń. Wtedy zamiast stracić dokoae obliczeia możemy uzyskać wyik przybliżoy, często o bardzo dobrej jakości Oprócz ajlepszego rozwiązaia osiągiętego do mometu przerwaia obliczeń algorytm może zwrócić ajiższą wartość dolego ograiczeia obliczoą dla wszystkich ierozgałęzioych węzłów. Wiemy wtedy, że poszukiwaa wartość optymala zajduje się pomiędzy tymi dwiema wartościami 17 18 3
rach & cut Metoda podziału i odcięć (ag. brach-ad-cut) powstała przez połączeie dwóch metod: podziału i ograiczeń oraz płaszczyz odciających (ag. cuttig-plae) Metoda podobie jak brach-ad-boud służy do rozwiązywaia problemów kombiatoryczych, czyli takich, w których zmiee mają wartości całkowite. Problem jest wyrażay zazwyczaj w postaci układu rówań i ierówości programowaia liiowego całkowitoliczbowego (ag. iteger liear programmig, ILP, przykład a slajdzie 11) Rozwiązaie problemu ILP jest trude obliczeiowo. W praktyczych podejściach stosuje się metodę przybliżoą, polegającą a rozwiązaiu problemu bez ograiczeia wartości zmieych do liczb całkowitych (metodą simplex), z zamiaą uzyskaych wartości ułamkowych a całkowitoliczbowe rach & cut Proste zaokrągleie wartości ułamkowych do ajbliższych liczb całkowitych ajczęściej ie sprawdza się, gdyż wartość taka może być iedopuszczala (aruszająca ograiczeia z problemu) Metoda cuttig-plae Ralpha Gomory ego polega a wprowadzaiu do sformułowaia problemu dodatkowych zmieych i dodawaiu ierówości mających a celu wyelimiowaie wartości ułamkowych kolejych zmieych Metoda Gomory ego jest powiązaa z postacią rówań z metody simplex (opis obu tych metod wykracza poza program wykładu). W praktyce stosuje się w metodzie brach-ad-cut także uproszczoe podejście, bez dodatkowych zmieych i z prostszymi ierówościami (kolejy slajd) 19 20 rach & cut W każdym węźle drzewa rozwiązyway jest problem ILP w sposób przybliżoy metodą simplex i dodawaa jest ierówość w dwóch wariatach dla wybraej zmieej, co prowadzi do dwóch owych sformułowań i rozgałęzieia węzła Sformułowaie ILP + ograiczeie x 27 Sformułowaie ILP x = 27,6 Sformułowaie ILP + ograiczeie x 28 W momecie uzyskaia rozwiązaia bez wartości ułamkowych dla zmieych całkowitoliczbowych, mamy rozwiązaie dopuszczale problemu i kończymy rozgałęziaie w tym węźle 21 rach & cut Wartość fukcji celu ajlepszego dotąd otrzymaego rozwiązaia całkowitoliczbowego staowi góre ograiczeie. olym ograiczeiem jest wartość fukcji celu wyliczoa metodą simplex dla problemu przybliżoego Liczba wywołań metody simplex bywa ograiczaa, ie uruchamia się jej wtedy w każdym węźle Podobie jak w brach-ad-boud, wstępa heurystyka poprawia jakość odcięć Stosuje się wstępe przetworzeie problemu ILP obejmujące: elimiację zbędych zmieych ustaleie zmieych o stałej wartości uproszczeie ierówości 22 rach & cut W przypadku zero-jedykowego programowaia liiowego, w którym zmiee decyzyje przyjmują wartości 0 lub 1, rozgałęziaie może zostać zrealizowae w jeszcze bardziej uproszczoy sposób. Metoda simplex może być używaa wtedy do obliczaia dolego ograiczeia w wybraych węzłach Przykład 0-1 LP problem plecakowy max f wi i1 si k i1 0,1, i 1,..., ae w problemie: liczba elemetów s i rozmiar elemetu w i wartość elemetu k rozmiar plecaka 23 rach & cut Przykład rozgałęzieia dla problemu plecakowego Istacja problemu: =5, k=10 dla LP: 0 x i 1 ograiczeie: x 1 = 0 LP = [0,1,1,1,0.33] f LP = 12.33 LP = [0.2,1,1,1,0] f LP = 12.6 ograiczeie: x 1 = 1 LP = [1,0.33,0,1,0] f LP = 10.32 24 4
Programowaie dyamicze [R. ellma, Proceedigs of the Natioal cademy of Scieces of the US 38, 1952, 716 719] Programowaie dyamicze (ag. dyamic programmig) jest metodą stosowaą do optymalego rozwiązaia problemów zarówo wielomiaowych, jak i NP-trudych (NP-zupełych) Problemy te muszą spełiać zasadę optymalości ellmaa, tz. decyzja optymala podjęta w kroku i jest adal optymalą w kroku i+1 i kolejych. Mają oe tzw. optymalą podstrukturę, czyli rozwiązaia optymale dla podproblemów składają się a rozwiązaie optymale całego problemu Nie ma awrotów w tej metodzie Programowaie dyamicze W programowaiu dyamiczym wypełia się k-wymiarową macierz wartości o rozmiarze ograiczoym zazwyczaj (w zastosowaiach praktyczych) wielomiaem będącym fukcją rozmiaru istacji i ajwiększej liczby występującej w istacji Najbardziej zaym w bioiformatyce algorytmem programowaia dyamiczego jest algorytm dopasowaia dwóch sekwecji (algorytm Needlemaa-Wuscha, algorytm Smitha-Watermaa) Na kolejych slajdach przedstawioy jest przykład algorytmu programowaia dyamiczego dla problemu plecakowego ( slajd 23). lgorytm te ma złożoość pseudowielomiaową O(k) 25 26 Programowaie dyamicze Programowaie dyamicze Istacja problemu: =5, k=10 Tablica programowaia dyamiczego: j lgorytm: 0 1 2 3 4 5 6 7 8 9 10 i 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 3 3 3 3 3 3 2 0 0 0 4 4 4 4 4 7 7 7 3 0 0 2 4 4 6 6 6 7 7 9 4 0 0 2 4 6 6 8 10 10 12 12 5 0 0 2 4 6 6 8 10 10 12 12 i=0.., j=0..k, i f(i, 0) = 0 j f(0, j) = 0 f(i, j) = f(i 1, j) gdy j < s i, f(i, j) = max{ f(i 1, j s i)+w i, f(i 1, j)} wpp. Optimum: f(, k) 27 Istacja problemu: =5, k=10 Tablica programowaia dyamiczego: j 0 1 2 3 4 5 6 7 8 9 10 i 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 3 3 3 3 3 3 2 0 0 0 4 4 4 4 4 7 7 7 3 0 0 2 4 4 6 6 6 7 7 9 4 0 0 2 4 6 6 8 10 10 12 12 5 0 0 2 4 6 6 8 10 10 12 12 Rozwiązaie odczytujemy od końca, cofając się z pola (,k) po kolei do pól, z których wywiedzioe zostały wartości składające się a optymalą ścieżkę. Kończymy a wartości 0. Rozwiązaiem jest podzbiór elemetów: {2, 3, 4} 28 Literatura cd. hristos H. Papadimitriou, Keeth Steiglitz, ombiatorial Optimizatio: lgorithms ad omplety, Pretice Hall, glewood liffs, 1982. 29 5