D: PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE I. Strategia zachłanna II. Problem przetasowań w genomie III. Sortowanie przez odwrócenia IV. Algorytmy przybliżone V. Algorytm zachłanny dla problemu znalezienia motywu Strategia zachłanna- Problem plecaka Strategia zachłanna: wyznaczanie rozwiązania globalnie optymalnego w oparciu o aktualne lokalnie dobierane (w każdym kroku wyboru) najlepsze rozwiązania D. Makowiec: D: algorytmy zachłanne 80 Problem kasjera: jak wydać resztę Strategia na skróty wciąga w pułapki Problem plecakowy: Input : zbiór elementów o określonej wadze i wartości oraz plecak o zadanym udźwigu Problem jest NP-trudny: nie znamy rozwiązania o złożoności wielomianowej Output: podzbiór elementów taki, że suma wartości jest możliwie największa, a suma wag jest niewiększa niż udźwig plecaka. http://pl.wikipedia.org/wiki/problem_plecakowy 1
Strategia zachłanna- problem plecaka D. Makowiec: D: algorytmy zachłanne 81 1. Posortuj przedmioty według stosunku wartości do wagi 2. Wybieraj od góry te przedmioty, które mieszczę się w plecaku Złożoność obliczeniowa : wybrano (1) i (3): 11$ i 11 kg Rozwiązanie pełne: O(2 n ) Rozwiązanie greedy: O(n log n) Optymalny wybór: (1) i (5): 12$ i 14 kg wyzwanie D. Makowiec: D: algorytmy zachłanne 82 Czy, a jeśli tak to jak, można zapanować nad błędem popełnianym przez algorytm, który realizuje strategią zachłanną? Odpowiedź to : algorytmy aproksymacyjne 2
Problem sortowania naleśników D. Makowiec: D: algorytmy zachłanne 83 Christos Papadimitrou (nauczyciel) i Bill Gates (student) odwracają stos naleśników Lata 70-te University of Texas at Dallas Problem porządkowania stosu naleśników: Dany jest stos n naleśników o różnych rozmiarach. Jaka jest minimalna ilość odwróceń tego stosu, aby uzyskać ułożenie uporządkowane przy czym możliwe są jedynie odwrócenia łopatkowe Problem sortowania naleśników D. Makowiec: D: algorytmy zachłanne 84 Operacja odwrócenia stosu przez łopatkę r(1, i) : permutacja prefiksowa Dana jest permutacja p. Znaleźć ilość d prefix (p) = minimalna liczbą permutacji prefiksowych r(1, i) porządkujących p. Podejście zachłanne: 2 odwrócenia prefiksowe są potrzebne, aby umieścić naleśnik na swoim miejscu, (razem będzie zatem 2(n 1) operacji) zastosowano 5 odwróceń 1-szy krok: odwróć stos tak, by największy element przenieść na górę 2-gi krok: odwróć stos od właściwej pozycji elementu z góry 3
Rozwiązanie lepsze D. Makowiec: D: algorytmy zachłanne 85 zastosowano 4 odwrócenia William Gates and Christos Papadimitriou pokazali, że można problem ten rozwiązać za pomocą co najwyżej 5/3 (n + 1) prefiksowych odwróceń Problem przetasowań w genomie D. Makowiec: D: algorytmy zachłanne 86 Mitochondrialne genotypy kapusty i rzepy są w 99% identyczne - Jeffrey Palmer (1980) ALE!!! Różne jest uporządkowanie genów w mitochondrialnym DNA 1-5 4-3 2 1 2 3 4 5 (1,2,3,4,5) (1,-5,4,-3, 2) 3 przetasowania (permutacje ze znakiem 4
Problem przetasowań w genomie D. Makowiec: D: algorytmy zachłanne 87 Zestawy genów są IDENTYCZNE (prawie) ale są one różnie poustawiane. Uważa się, że poprzez zmianę porządku genów ujawnia się EWOLUCJA. Rozmieszczenie genów z ludzkiego genotypu na genotypie myszy [87] Rozmieszczenie genów z mysiego genotypu na genotypie człowieka Historia chromosomu X D. Makowiec: D: algorytmy zachłanne 88 Rat Genome Sequencing Consortium, Nature 428,2004 Drzewo filogenetyczne drzewo rekonstrukcji gatunków 5
Problem przetasowań w genomie D. Makowiec: D: algorytmy zachłanne 89 1.Odwróć kolejność bloków od pozycji 2 do 3 2.Odwróć kolejność bloków od pozycji 3 do 5 3.Odwróć kolejność bloków od pozycji 1 do 3 przez Sortowanie odwrócenia Sortowanie przez odwrócenia D. Makowiec: D: algorytmy zachłanne 90 Odwrócenie: najprostsza postać przetasowania 1 2 3 8 4 9 10 7 1 2 3 6 5 9 10 8 4 oznaczenie r(4,8) 7 6 5 skąd dokąd 6
Przetasowania w genomie D. Makowiec: D: algorytmy zachłanne 91 Niech geny w genomie są oznaczane kolejnymi liczbami naturalnymi : 1,2, n Niech ciąg (1, 2,, n) oznacza uporządkowany ciąg genów Przetasowaniem nazywamy każdą permutację p tego ciągu. r( i, j) Odwrócenie pozycji j włącznie p 1,2,..., n) ( p, p,..., ( 1 2 n to takie przetasowanie, które odwraca kolejność od pozycji i do Przykład odwróceń D. Makowiec: D: algorytmy zachłanne 92 Uwaga: argumenty r to pozycje a nie wartości 7
Sortowanie przez odwrócenia D. Makowiec: D: algorytmy zachłanne 93 t nazywamy odległością permutacji s i p Jeśli s jest identycznością to problem staje się sortowaniem: Sortowanie przez odwrócenia D. Makowiec: D: algorytmy zachłanne 94 Poszerzanie prefiksowe (algorytm zachłanny) znajdź pozycję elementu i-tego zastosuj odwrócenie 8
Ocena jakości algorytmu zachłannego D. Makowiec: D: algorytmy zachłanne 95 O p t y m a li z a c y j n e dla algorytmu minimalizacjnego Gwarancja dla algorytmu przybliżonego błąd najgorszego przypadku max p min p ALG( OPT( wynik z algorytmu aproksymującego prawdziwy wynik dla algorytmu maksymalizacjnego Gwarancja algorytmu aproksymacyjnego D. Makowiec: D: algorytmy zachłanne 96 Jeśli A to algorytm minimalizacyjny z gwarancją a: to wartość rzeczywista minimum znajduje się w przedziale A( OPT ( A( a a max π ALG( OPT( Jeśli A to algorytm maksymalizacyjny z gwarancją a: to wartość rzeczywista maksimum znajduje się w przedziale 1 min a π ALG( OPT( ALG( OPT( aalg( Najlepszy algorytm sortowania przez odwrócenia daje gwarancje 1.375 9
Punkty łamiące permutacji D. Makowiec: D: algorytmy zachłanne 97 Dana jest permutacja p p... p 1... p i, p i 1 Def: Parę sąsiadujących elementów p i, p i 1 w permutacji p nazywamy uzgodnioną jeżeli p, są kolejnymi liczbami. i p i 1 W przeciwnym wypadku parę p i p i n, nazywamy punktem łamiącym 1 Przykład p ( 1 9 3 4 7 8 2 6 5 ) 0 10 pary uzgodnione punkty łamiące Oznaczenie: b(p)= ilość punktów łamiących w p Co tu brakuje? Def: Taśmą w permutacji p nazywamy przedział pomiędzy kolejnymi punktami łamiącymi. Taśma może być rosnąca lub malejąca. Taśmy łamiące w algorytmie D. Makowiec: E: algorytmy zachłanne 98 Tw.1 Jeśli permutacja Π zawiera taśmę malejącą, to istnieje odwrócenie ρ takie, które zmniejsza liczbę punktów łamiących, czyli Tw.2 Powyższy algorytm jest algorytmem aproksymacyjnym z gwarancją wyniku 4 1 ( OPT ( ( 4 10
Podsumowanie D. Makowiec: E: algorytmy zachłanne 99 5 3 Przypomnienie: geny w genomie mają zwrot. Algorytmy porządkowania powinny więc dotyczyć permutacji ze znakiem! 1 2 3 4 5-1 2-3 -4-5 Jeśli uporządkowanie genów jest identyczne, ale zwroty genów są inne, to te permutacje są różne Permutacje ze znakiem D. Makowiec: D: algorytmy zachłanne 100 Każde odwrócenie zmienia znak (1,2,3,4,5,6,7,8,9,10) (1,2,3,-8,-7,-6,-5,-4,9,10) Para zorientowana, to para kolejnych liczb całkowitych o różnych znakach (0,3,1,6,5,-2,4,7) pary zorientowane: (3,-2) and (1,-2). Odwrócenie zorientowane to takie odwrócenie, które z pary zorientowanej tworzy parę kolejnych liczb (3,-2) : (0,3,1,6,5,-2,4,7) (0,3,2,-5,-6,-1,4,7) (1,-2) : (0,3,1,6,5,-2,4,7) (0,3,-5,-6,-1,-2,4,7) Jakość odwrócenia zorientowanego to ilość nowych zorientowanych par Algorytm: tak długo, jak w jest para zorientowana zastosuje odwrócenie zorientowane takie, które maksymalizuje jakość odwrócenia. Wynik: permutacja o elementach dodatnich. 11
Uzupełnienie poszukiwania motywu D. Makowiec: E: algorytmy zachłanne 101 Wybór najlepszego motywu na podstawie dwóch pierwszych sekwencji ( n 2 l nlt) Wyznaczenie pozycji najlepiej dopasowanych l-merow 12