asd13

advertisement
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ść
Nierozstrzygalność Problemu stopu
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
2
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
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.
Najkrótsze ścieżki
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
3
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
czerwiec 2003
B
G. Mirkowska, ASD_13 Problemy trudne
C
4
Algorytm
Procedure przenies(n, A,B, C);
{przenieś n krążków z A na B wykorzystując C}
begin
Koszt
if (n<>0) then
wykładniczy
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
Rozwiązanie :
T(n) = 2 n -1
czerwiec 2003
Koszt
T(1) = 1
T(n) = T(n-1) +1 +T(n-1)
T(64) = 0.5 miliona lat
G. Mirkowska, ASD_13 Problemy trudne
5
Permutacje
Dla danej liczby naturalnej n wygenerować wszystkie
permutacje liczb {1,2,...,n}.
Wywołanie:generuj(0)
Procedure generuj(k : integer);
z now =-1 i tab[i]=0
var t : integer;
dla i=1..n daje
begin
now := now +1; tab[k] := now;
1234
if now =n then wypisz(tab);fi;
2134
1243
for t:= 1 to n do
2143 2314
1324
if tab[t] = 0 then generuj(t);
3124 2413 2341
1423
od;
4123 3214 2431
1342
now := now-1; tab[k] := 0;
3142 4213 3241
1432
end;
4132 3412 4231
4312 3421
Koszt rzędu n!
4321
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
6
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
Koszt
(n!)
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.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
7
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
czerwiec 2003
Kompresja
danych
Algorytmy
wyszukiwania
G. Mirkowska, ASD_13 Problemy trudne
8
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.
P
Tzn. rozwiązywalnych przez algorytm
niedeterministyczny w czasie
wielomianowym.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
9
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.
6
3
9 8
4
3
5
Koszt=28
7
4
7
10
Algorytm naiwny :
wygenerować wszystkie
możliwe cykle.
Koszt (n!)
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.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
10
Problem spełnialności
Język
((p q)  r)
Problem
v:
p q r
1 0 1
((p q)  r) (v) = 1
Czy dla danej formuły istnieje
wartościowanie, które spełnia tę
formułę?
Rozwiązanie
Metoda zero-jedynkowa
czerwiec 2003
Spełnialność
Semantyka
Koszt : 2 n
dla formuły o długości n
G. Mirkowska, ASD_13 Problemy trudne
11
Ś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
Algorytm naiwny :
sprawdzić wszystkie ścieżki.
czerwiec 2003
Istnieje ścieżka Hamiltona
Koszt  (n!)
G. Mirkowska, ASD_13 Problemy trudne
Euler
12
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
13
Inne problemy
Dany jest ciąg obiektów s1,...sn (0) oraz
pojemność plecaka C. Problem polega na
Problem plecakowy znalezieniu podzbioru T {1,2,...,n} aby
Dana jest
liczba kontenerów
Ssi nieograniczona
dla i T przyjmowała
wartość
o pojemności
1 oraz
n obiektów
największą
oraz
Ssi  C. rozmiaru
s1,...sn, gdzie 0  si  1. Jaka jest
najmniejsza liczba kontenerów, potrzebna
Problem pakowania
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.
Problem planowania
pracy
Znaleźć taką kolejność wykonywania zadań, by
zminimalizować kary.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
14
P = NP ?
Klasa NPC = problemy NP-zupełne
Gdyby udowodniono wykładnicze dolne
ograniczenie dla jakiegoś problemu
klasy NPC, to żądnego z problemów
NPC nie możnaby rozwiązać
wielomianowo.
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.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
15
Wszystko albo nic
Problem p
redukcja
f
Dane do
problemu p
wielomianowo
Odpowiedzią dla
danych x jest TAK
wttw
Problem p’
Dane do
problemu p’
Odpowiedzią dla
danych f(x) jest TAK
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.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
16
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.
Dany jest dowolny
algorytm i dane do tego
algorytmu. Pytamy, czy ten
algorytm kończy
obliczenia dla tych danych
czy nie?
W przeciwnym
przypadku problem
Twierdzenie
jest nierozstrzygalny
Problem stopu jest
nierozstrzygalny
(halting 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.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
17
Nierozstrzygalność problemu „Stopu”
S
W
Program S
S
W
Program
wejściowy
S
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
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
18
Ś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.
Koszt
O(m),
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.
czerwiec 2003
G. Mirkowska, ASD_13 Problemy trudne
gdzie m
jest liczbą
krawędzi
grafu
19
Download