ALGORYTMY I STRUKTURY DANYCH
description
Transcript of ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
WYKŁAD 13 Problemy trudne informatyki
Grażyna MirkowskaPJWSTK , 2003
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 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
czerwiec 2003 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.
Wyszukiwanie
Sortowanie w tablicySortowanie z użyciem struktur drzewiastych
Kompresja danychNajdł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.
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 4
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.
A B C
czerwiec 2003 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 KosztKosztT(1) = 1T(n) = T(n-1) +1 +T(n-1)
RozwiązanieRozwiązanie : T(n) = 2 n -1 T(64) = 0.5 miliona lat
Koszt Koszt wykładniczywykładniczy
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 6
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
123412431324142313421432
213421433124412331424132
231424133214421334124312
234124313241423134214321
Koszt rzędu n!Koszt rzędu n!
czerwiec 2003 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?
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 Koszt (n!)(n!)
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 8
Pierwsza klasyfikacja
Algorytmy rozsądne
Algorytmy wymagające nierozsądnie dużo czasu
Algorytmy sortowania Algorytmy
wyszukiwaniaKompresja 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?
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 9
Klasyfikacja problemów decyzyjnych
PP - klasa problemów decyzyjnych rozwiązywalnych w czasie wielomianowym
NPNP = 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.
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 10
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 decyzyjnejW 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.
6
4
7
893
4 3
5
7
10
Koszt=28
Algorytm naiwny :wygenerować wszystkie możliwe cykle. Koszt (n!)
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 11
Problem spełnialności
RozwiązanieRozwiązanieMetoda zero-jedynkowa
ProblemProblem 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 1 0 1
v:((p q) r) (v) = 1
Koszt : 2 n
dla formuły o długości n
czerwiec 2003 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
Algorytm naiwny : sprawdzić wszystkie ścieżki.
Koszt (n!)Euler
czerwiec 2003 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.
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.
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 14
Inne problemy
Problem plecakowy
Problem pakowania
Problem planowania pracy
Dany jest ciąg obiektów s1,...sn (0) oraz pojemność plecaka C. Problem polega na znalezieniu podzbioru T {1,2,...,n} aby si dla i T przyjmowała wartość największą oraz si C.
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?
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.
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 15
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.
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 16
Wszystko albo nic
Twierdzenie.Twierdzenie. Gdyby jakiś NP-zupełny problem należał do klasy P, to P = NP.
Problem p Problem p’redukcja
wielomianowof
Odpowiedzią dla danych x jest TAK
wttw Odpowiedzią dla danych f(x) jest TAK
Dane do problemu p
Dane do problemu p’
Problem ścieżek Hamiltona redukuje się do problemu komiwojażera.
czerwiec 2003 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 nierozstrzygalnyTwierdzenieTwierdzenieProblem 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.
czerwiec 2003 G. Mirkowska, ASD_13 Problemy trudne 18
Nierozstrzygalność problemu „Stopu”
W Program wejściowy
W W
Q
TAK(stop)
NIE(pętla)
Hipotetyczny program Q dla problemu stopu
Odpowiada Tak, gdy program dany zatrzymuje się i Nie jeśli program ma nieskończoną pętlę
wyjście
Program S S
S S
Sprzeczność
Sprzeczność
czerwiec 2003 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.
Nie istnieje ścieżka Eulera. Istnieje ścieżka Eulera.
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.
KosztKosztO(m),O(m),gdzie m jest liczbą krawędzi grafu