Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ALGORYTMY I STRUKTURY DANYCH WYKŁAD 14 Problemy trudne informatyki Grażyna Mirkowska PJWSTK ITN, semestr letni 2002.

Podobne prezentacje


Prezentacja na temat: "ALGORYTMY I STRUKTURY DANYCH WYKŁAD 14 Problemy trudne informatyki Grażyna Mirkowska PJWSTK ITN, semestr letni 2002."— Zapis prezentacji:

1

2 ALGORYTMY I STRUKTURY DANYCH WYKŁAD 14 Problemy trudne informatyki Grażyna Mirkowska PJWSTK ITN, semestr letni 2002

3 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne2 Plan wykładu 4 Wieże Hanoi 4 Generowanie permutacji 4 Problem komiwojażera 4 Scieżki Hamiltona (ścieżki Eulera) 4 Problem P= NP.? 4 Problemy NP.-zupełne 4 Rozstrzygalność –Nierozstrzygalność Problemu stopu

4 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne3 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. Wyszukiwanie Sortowanie w tablicy Sortowanie z użyciem struktur drzewiastych Kompresja danych Najdłuższy wspólny podciąg Najkrótsze ścieżki 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.

5 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne4 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. ABC

6 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne5 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 Koszt T(1) = 1 T(n) = T(n-1) +1 +T(n-1) Rozwiązanie Rozwiązanie : T(n) = 2 n -1 T(64) = 0.5 miliona lat Koszt wykładniczy

7 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne6 Permutacje Dla danej liczby naturalnej n wygenerować wszystkie permutacje liczb {1,2,...,n}. 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; Wywołanie:generuj(0) z now =-1 i tab[i]=0 dla i=1..n daje Koszt rzędu n!

8 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne7 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? 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. Koszt (n!) Koszt (n!)

9 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne8 Pierwsza klasyfikacja Algorytmy rozsądne Algorytmy wymagające nierozsądnie dużo czasu Algorytmy sortowania Algorytmy wyszukiwania Kompresja danych 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?

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

11 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne10 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. W wersji decyzyjnej 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 Koszt=28 Algorytm naiwny : wygenerować wszystkie możliwe cykle. Koszt (n!)

12 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne11 Problem spełnialności Rozwiązanie Rozwiązanie Metoda zero-jedynkowa Problem Czy dla danej formuły istnieje wartościowanie, które spełnia tę formułę? Język Semantyka Spełnialność ((p q) r) p q r v: ((p q) r) (v) = 1 Koszt : 2 n dla formuły o długości n

13 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne12 Ś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 HamiltonaIstnieje ścieżka Hamiltona Algorytm naiwny : sprawdzić wszystkie ścieżki. Koszt (n!) Euler

14 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne13 P = NP ? Klasa NPC 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. Gdyby udowodniono wykładnicze dolne ograniczenie dla jakiegoś problemu klasy NPC, to żądnego z problemów NPC nie możnaby rozwiązać wielomianowo.

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

16 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne15 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 Twierdzenie Twierdzenie Problem stopu jest nierozstrzygalny (halting problem). Dany jest dowolny algorytm i dane do tego algorytmu. Pytamy, czy ten algorytm kończy obliczenia dla tych danych czy nie? 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.

17 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne16 Nierozstrzygalność problemu Stopu W Program wejściowy WW Q TAK (stop) NIE (pętla) Hipotetyczny program Q dla problemy stopu Odpowiada Tak, gdy program dany zatrzymuje się i Nie jeśli program ma nieskończoną pętlę wyjście Program S S SS Sprzeczność

18 19 czerwca 2002G. Mirkowska, ASD_14 Problemy trudne17 Ś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. Nie istnieje ścieżka Eulera.Istnieje ścieżka Eulera. 1. Zbadać czy graf jest spójny 2. Zbadać, czy graf wszystkie, z wyjątkiem co najwyżej dwóch wierzchołków, mają rząd parzysty. Koszt O(m), gdzie m jest liczbą krawędzi grafu


Pobierz ppt "ALGORYTMY I STRUKTURY DANYCH WYKŁAD 14 Problemy trudne informatyki Grażyna Mirkowska PJWSTK ITN, semestr letni 2002."

Podobne prezentacje


Reklamy Google