1 / 19

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH. WYKŁAD 13 Problemy trudne informatyki Grażyna Mirkowska PJWSTK , 2003. Plan wykładu. Wieże Hanoi Generowanie permutacji Problem komiwojażera Scieżki Hamiltona (ścieżki Eulera) Problem kolorowania grafu Problem P= NP? Problemy NP -zupełne Rozstrzygalność

Download Presentation

ALGORYTMY I STRUKTURY DANYCH

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORYTMY I STRUKTURY DANYCH WYKŁAD 13 Problemy trudne informatyki Grażyna Mirkowska PJWSTK , 2003

  2. Plan wykładu • Wieże Hanoi • Generowanie permutacji • Problem komiwojażera • Scieżki Hamiltona (ścieżki Eulera) • Problem kolorowania grafu • Problem P= NP? • Problemy NP -zupełne • Rozstrzygalność • Nierozstrzygalność Problemu stopu G. Mirkowska, ASD_13 Problemy trudne

  3. Przypomnienie Powiemy, że problem jest wielomianowy, tzn. jest rozwiązywalny w czasie wielomianowym, jeżeli istnieje algorytm rozwiązujący ten problem dla danych rozmiaru n w czasie O(n k), dla pewnego ustalonego k. Powiemy, że problem jest wykładniczy, jeśli każdy algorytm rozwiązujący ten problem dla danych rozmiaru n, ma koszt rzędu k n , dla pewnej stałej k. Wyszukiwanie Sortowanie w tablicySortowanie z użyciem struktur drzewiastych Kompresja danychNajdłuższy wspólny podciąg Najkrótsze ścieżki Przykłady G. Mirkowska, ASD_13 Problemy trudne

  4. A B C Wieże Hanoi Danych jest n krążków, umieszczonych w porządku rosnących średnic, na drążku A. Zadanie polega na przeniesieniu wszystkich krążków na drążek B z wykorzystaniem pomocniczego drążka C (oba drążki B i C są początkowo puste), ale mniejszy krążek musi zawsze leżeć na większym. Problem G. Mirkowska, ASD_13 Problemy trudne

  5. Algorytm Procedure przenies(n, A,B, C);{przenieś n krążków z A na B wykorzystując C}begin if (n<>0) then przenies(n-1, A,C,B); przeloz (A,B); {przełóż jeden krążek z A na B} przenieś(n-1, C, B, A) fi end Koszt wykładniczy KosztT(1) = 1T(n) = T(n-1) +1 +T(n-1) Rozwiązanie : T(n) = 2 n -1 T(64) = 0.5 miliona lat G. Mirkowska, ASD_13 Problemy trudne

  6. Permutacje Dla danej liczby naturalnej n wygenerować wszystkie permutacje liczb {1,2,...,n}. Problem Wywołanie:generuj(0) z now =-1 i tab[i]=0 dla i=1..n daje Procedure generuj(k : integer);var t : integer;begin now := now +1; tab[k] := now; if now =n then wypisz(tab);fi; for t:= 1 to n do if tab[t] = 0 then generuj(t); od; now := now-1; tab[k] := 0;end; 123412431324142313421432 213421433124412331424132 231424133214421334124312 234124313241423134214321 Koszt rzędu n! G. Mirkowska, ASD_13 Problemy trudne

  7. Problemy decyzyjne Problem, którego rozwiązanie ma dawać odpowiedź binarną tak lub nie nazywać będziemy problemem decyzyjnym. Danych jest n kart, na których wydrukowane są kolorowe obrazki. Czy można z nich ułożyć kwadrat tak, by wszystkie obrazki pasowały do siebie kształtem i kolorem? Koszt (n!) Przykład Algorytm naiwny: przeglądamy wszystkie możliwe ułożenia. Odpowiadamy TAK, jeśli jakieś ułożenie jest poprawne, odpowiadamy NIE gdy żadne ułożenie nie było poprawne. G. Mirkowska, ASD_13 Problemy trudne

  8. Pierwsza klasyfikacja Algorytmy wymagające nierozsądnie dużo czasu „Małpia układanka” Ale ... Który z dwóch algorytmów o koszcie (n 100) i (2 n) dla małych n, jest lepszy? Algorytmy rozsądne Algorytmy sortowania Algorytmy wyszukiwania Kompresja danych G. Mirkowska, ASD_13 Problemy trudne

  9. NP P Klasyfikacja problemów decyzyjnych P - klasa problemów decyzyjnych rozwiązywalnych w czasie wielomianowym NP = klasa problemów decyzyjnych, dla których dowód, że podane rozwiązanie (algorytm) jest poprawne można zweryfikować w czasie wielomianowym. Tzn. rozwiązywalnych przez algorytm niedeterministyczny w czasie wielomianowym. G. Mirkowska, ASD_13 Problemy trudne

  10. 6 3 8 4 9 10 4 3 5 7 7 Problem komiwojażera Zadanie komiwojażera polega na odwiedzeniu wszystkich miast z danego zbioru i powrót do punktu wyjścia, tak by pokonana droga była najkrótsza. Algorytm naiwny :wygenerować wszystkie możliwe cykle. Problem NP Koszt (n!) Koszt=28 W wersji decyzyjnej Czy dla danego k istnieje cykl przechodzący przez wszystkie wierzchołki danego grafu taki, że suma kosztów jego krawędzi nie przekracza k. G. Mirkowska, ASD_13 Problemy trudne

  11. p q r 1 0 1 v: Problem spełnialności Spełnialność Język Semantyka ((p q)  r) ((p q)  r) (v) = 1 Problem Czy dla danej formuły istnieje wartościowanie, które spełnia tę formułę? Koszt : 2 n dla formuły o długości n RozwiązanieMetoda zero-jedynkowa Ale ... G. Mirkowska, ASD_13 Problemy trudne

  12. Ścieżki Hamiltona Czy w danym niezorientowanym grafie istnieje ścieżka przechodząca przez każdy wierzchołek dokładnie raz? Nie ma ścieżki Hamiltona Istnieje ścieżka Hamiltona Euler Algorytm naiwny : sprawdzić wszystkie ścieżki. Koszt  (n!) G. Mirkowska, ASD_13 Problemy trudne

  13. Kolorowanie grafów Zadanie Pokolorować wierzchołki niezorientowanego grafu G , tak by wierzchołki sąsiednie miały różne kolory. Nie jest znany żaden algorytm wielomianowy znajdowania liczby chromatycznej grafu. Najmniejszą liczbę kolorów jakich trzeba użyć do pokolorowania grafu G nazywamy liczbą chromatyczną grafu , ozn. (G) Problem decyzyjny: Dany jest graf G. Ustalić, czy k kolorów wystarczy do pokolorowania tego grafu. G. Mirkowska, ASD_13 Problemy trudne

  14. Inne problemy Dany jest ciąg obiektów s1,...sn (0) oraz pojemność plecaka C. Problem polega na znalezieniu podzbioru T {1,2,...,n} aby Ssi dla i T przyjmowała wartość największą oraz Ssi  C. Problem plecakowy Dana jest nieograniczona liczba kontenerów o pojemności 1 oraz n obiektów rozmiaru s1,...sn, gdzie 0  si 1. Jaka jest najmniejsza liczba kontenerów, potrzebna do zapakowania wszystkich obiektów? Problem pakowania Niech J1,...,Jn będą zadaniami do wykonania, t1,...,tn - czasem koniecznym do wykonania zadania, ad1,...,dn terminami wykonania zadań, p1,...,pn karą za przekroczenie terminu. Znaleźć taką kolejność wykonywania zadań, by zminimalizować kary. Problem planowania pracy G. Mirkowska, ASD_13 Problemy trudne

  15. P = NP ? Gdyby udowodniono wykładnicze dolne ograniczenie dla jakiegoś problemu klasy NPC, to żądnego z problemów NPC nie możnaby rozwiązać wielomianowo. Klasa NPC = problemy NP-zupełne Problem p jest NP-zupełny, jeśli 1. należy do klasy NP i 2. każdy inny problem z tej klasy jest wielomianowo redukowalny do p. Gdyby istniało wielomianowe rozwiązanie dla jakiegokolwiek problemu z klasy NPC, to istniałby wielomianowy algorytm dla wszystkich innych problemów tej klasy. G. Mirkowska, ASD_13 Problemy trudne

  16. f wielomianowo Wszystko albo nic redukcja Problem p Problem p’ Dane do problemu p Dane do problemu p’ Odpowiedzią dla danych x jest TAK Odpowiedzią dla danych f(x) jest TAK wttw Problem ścieżek Hamiltona redukuje się do problemu komiwojażera. Twierdzenie. Gdyby jakiś NP-zupełny problem należał do klasy P, to P = NP. G. Mirkowska, ASD_13 Problemy trudne

  17. Rozstrzygalność i nierozstrzygalność Powiemy, że problem jest rozstrzygalny, jeśli istnieje algorytm, który dla dowolnych danych x po skończonej liczbie kroków daje rozwiązanie problemu. W przeciwnym przypadku problem jest nierozstrzygalny Dany jest dowolny algorytm i dane do tego algorytmu. Pytamy, czy ten algorytm kończy obliczenia dla tych danych czy nie? TwierdzenieProblem stopu jest nierozstrzygalny (halting problem). Problem Czy istnieje algorytm Q, który dla dowolnego algorytmu A napisanego w pewnym ustalonym języku programowania i dla ustalonych danych x, po skończonej liczbie kroków odpowiada na pytanie, czy A zapętla się dla danych x, czy nie. G. Mirkowska, ASD_13 Problemy trudne

  18. Nierozstrzygalność problemu „Stopu” W S Program wejściowy Program S S S W W Hipotetyczny program Q dla problemu stopu Odpowiada Tak, gdy program dany zatrzymuje się i Nie jeśli program ma nieskończoną pętlę Q Sprzeczność TAK(stop) NIE (pętla) Sprzeczność wyjście G. Mirkowska, ASD_13 Problemy trudne

  19. Ścieżki Eulera Dla danego grafu niezorientowanego zbadać czy istnieje ścieżka Eulera, tzn. Droga lub cykl w grafie przechodzący przez każdą krawędź i to tylko raz. KosztO(m), gdzie m jest liczbą krawędzi grafu Nie istnieje ścieżka Eulera. Istnieje ścieżka Eulera. Algorytm 1. Zbadać czy graf jest spójny2. Zbadać, czy graf wszystkie, z wyjątkiem co najwyżej dwóch wierzchołków, mają rząd parzysty. G. Mirkowska, ASD_13 Problemy trudne

More Related