ALGORYTMY I STRUKTURY DANYCH

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

description

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ść - PowerPoint PPT Presentation

Transcript of ALGORYTMY I STRUKTURY DANYCH

Page 1: ALGORYTMY I STRUKTURY  DANYCH

ALGORYTMY I STRUKTURY DANYCH

WYKŁAD 13 Problemy trudne informatyki

Grażyna MirkowskaPJWSTK , 2003

Page 2: ALGORYTMY I STRUKTURY  DANYCH

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

Page 3: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 4: ALGORYTMY I STRUKTURY  DANYCH

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

Page 5: ALGORYTMY I STRUKTURY  DANYCH

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

Page 6: ALGORYTMY I STRUKTURY  DANYCH

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!

Page 7: ALGORYTMY I STRUKTURY  DANYCH

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!)

Page 8: ALGORYTMY I STRUKTURY  DANYCH

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?

Page 9: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 10: ALGORYTMY I STRUKTURY  DANYCH

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!)

Page 11: ALGORYTMY I STRUKTURY  DANYCH

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

Page 12: ALGORYTMY I STRUKTURY  DANYCH

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

Page 13: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 14: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 15: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 16: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 17: ALGORYTMY I STRUKTURY  DANYCH

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.

Page 18: ALGORYTMY I STRUKTURY  DANYCH

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ść

Page 19: ALGORYTMY I STRUKTURY  DANYCH

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