• Nie Znaleziono Wyników

HAMILTON PATH

N/A
N/A
Protected

Academic year: 2021

Share "HAMILTON PATH"

Copied!
52
0
0

Pełen tekst

(1)

Algorytmika - wykªad 6

dr Anna Sasak-Oko«

Uniwersytet Marii Curie-Skªodowskiej w Lublinie

18.11.2019

(2)

Na razie wiemy tyle:

P  klasa problemów, dla których istnieje wielomianowy algorytm rozwi¡zania na Deterministycznej Maszynie Turinga. np sortowanie elementów, algorytm euklidesa

NP  wielomianowy algorytm rozwi¡zania istnieje jedynie na niedeterministycznej MT, a rozwi¡zanie nie jest mo»liwe w czasie wielomianowym. np. cykl Hamiltona, problem

(3)

TRAVELING SALESMAN PROBLEM

Mamy danych n miast 1,...n i nieujemne, caªkowite olegªo±ci di ,j, mi¦dzy ka»dymi dwoma miastami i i j (zakªadamy »e odleglo±ci s¡

symetryczne, tzn. di ,j = dj ,i dla dowolnych i i j).

Naszym zadaniem jest znalezienie najkrótszej trasy prowadz¡cej przez wszystkie miasta, tzn. permutacji π takiej, »e suma Σni =1dπ(i ),π(i +1) jest tak maªa jak to tylko jest mo»liwe. (przez π(n +1) rozumiemy π(1))

(4)

Wersj¦ decyzyjn¡ problemu TSP(D) deniujemy analogicznie jak MAX FLOW(D), tzn. razem z macierz¡ di ,j podajemy caªkowite ograniczenie B (bud»et komiwoja»era) i pytamy czy istnieje trasa komiwoja»era o dªugo±ci co najwy»ej B.

Algorytm naiwny → przej»e¢ wszystkie mo»liwe rozwi¡zania, obliczy¢ koszt ka»dego z nich i wybra¢ najlepsze. Czas jest proporcjonalny do n! (12(n −1)1 tras do rozwa»enia).

Z drugiej strony ograniczenie pami¦ciowe jest bardzo dobre  proporcjonalne do nlogn  gdy» algorytm musi pami¦ta¢ jedynie aktualnie badan¡ permutacj¦ i najlepsz¡ z dotychczasowych tras.

(5)

Nie s¡ znane algorytmy o czasie wielomainowym dla TSP. Mo»na jedynie nieco poprawi¢ ograniczenie czasowe n! stosuj¡c metody programowania dynamicznego (ale wymagania pami¦ciowe wzrastaj¡ do wykªadniczych).

Istniej¡ tak»e metody heurystyczne, które dziaªaj¡ efektywnie i daj¡

w wyniku trasy niewiele gorsze od optymalnych, jezeli stosuje si¦ je do 'typowych' przykªadów.

Je»eli jednak poszukujemy optimum to obecny stan wiedzy oferuje jedynie rozwi¡zania wykªadnicze.

(6)

HAMILTON PATH

Dla zadanego grafu chcemy stwierdzi¢ czy istnieje ±cie»ka, która przechodzi przez ka»dy wierzchoªek dokªadnie raz.

Na poni»szym rysunku ±cie»ka Hamiltona zaznaczona jest pogrubion¡ lini¡

(7)

Klasa NP (jak tez i inne klasy) zawiera niesko«czenie wiele j¦zyków.

Wspomniane wcze±niej:

TSP(D) SAT

REACHABILITY (∈ P ∈ NP) CIRCUIT VALUE (∈ P ∈ NP)

Intuicja podpowiada »e dwa pierwsze s¡ bardziej reprezentatywne (trudniejsze?) dla NP ni» dwa ostatnie. → Potrzeba poj¦cia umo»liwiaj¡cego dokªadne okre±lenie, kiedy jeden problem jest PRZYNAJMNIEJ TAK TRUDNY jak inny.  wykorzystamy do tego poj¦cie REDUKCJI.

(8)

Mówimy »e B redukuje sie do A, je»eli istnieje transformacja R, w wyniku której dla ka»dego przykªadu z problemu B powstaje równowa»ny mu przykªad R(x) problemu A

Przez równowa»no±¢ rozumiemy tutaj, »e odpowied¹ na pytania, czy R(x) jest pozytywnym przykªadem problemu A, jest

jednoczesnie odpowiedzi¡ na pytanie, czy x jest pozytywnym przykªadem problemu B.

Czyli aby obliczy¢ B dla przykªadu x, wsytarczy obliczy¢ R(x) i rozwi¡za¢ A dla tego przykªadu.

(9)

Aby poj¦cie redukcji byªo sensowne, powinno opiera¢ si¦ na najsªabszych mo»liwych obliczeniach. Za 'efektywn¡ redukcj¦' przyjmiemy redukcj¦ w pami¦ci ograniczonej przez log(n).

Powiemy wi¦c, »e j¦zyk L1 jest redukowalny do L2, je»eli istnieje funkcja R okre±lona na sªowach i o warto±ciach w zbiorze sªów, obliczana przez maszyn¦ Turinga wykorzystuj¡c¡ pami¦¢ O(log(n)), taka »e dla ka»dego sªowa wej±ciowego x zachodzi: x ∈ L1 wtedy i tylko wtedy, gdy R(x) ∈ L2. Funkcja R jest nazywana REDUKCJ

L1 do L2.

Uwaga: redukcje speªniaj¡ce powy»sze warunki sa algorytmami wielomianowymi.

(10)

przykªad 1

HAMILTON PATH →R(X ) SAT

Niech G b¦dzie danym grafem. Skonstruujmy formuª¦ logiczn¡

R(G), która jest speªnialna wwtedy, gdy w grae G istnieje ±cie»ka Hamiltona.

Przyjmijmy, »e graf G ma n wierzchoªków: 1,2,...n. Wobec tego formuªa R(G) bedzie miaªa n2 zmiennych logicznych: xi ,j dla 1 6 i, j 6 n.

Mówi¡c nieformalnie, xi ,j b¦dzie przedstawiaªa fakt, »e wierzchoªek j jest i-tym wierzchoªkiem na ±cie»ce Hamiltona, co moze by¢ albo prawd¡ albo faªszem. Formuªa G b¦dzie w koniunktywnej postaci

(11)

Klauzule R(G) (ich koniunkcja) b¦da wyra»aªy wymagania w stosunku do xi ,j, zapewniaj¡ce, »e zmienne s¡ kodowaniem prawdziwej ±cie»ki Hamiltona:

wierzchoªek j musi pojawi¢ si¦ na ±cie»ce  klauzula (x1j∨ x2j ∨ ... ∨ xnj) skonstruowana dla ka»dego j.

wierzchoªek j nie mo»e by¢ jednoczesnie i-tym i k-tym na

±cie»ce  klauzula (¬xij ∨ ¬xkj) dla wszystkich j oraz i 6= k musi istnie¢ wierzchoªek, który b¦dzie na pozycji i w ±cie»ce  klauzula (xi1∨ xi2∨ ... ∨ xin),

»adne dwa wierzchoªki nie mog¡ byc jednocze±nie na tej samej pozycji  (¬xij ∨ ¬xik)dla wszystkich i oraz wszystkich j 6= k, dla ka»dej pary (i,j), która NIE jest kraw¦dzi¡ w grae G, j nie mo»e wystepowac bezpo±rednio po i w ±cie»ce Hamiltona  (¬xki ∨ ¬xk+1,j), dla (i, j) 6∈ G, k = 1..n − 1

(12)

Twierdzenie

R jest redukcj¡ problemu HAMILTON PATH do SAT Dowód:

1. dla ka»dego grafu G formuªa R(G) ma warto±ciowanie speªniaj¡ce wwtedy gdy graf G ma ±ciezk¦ Hamiltona 2. R mozna wyliczy¢ w pami¦ci log(n)

(13)

dowód cz.1

przypu±¢my »e formuªa R(G) ma warto±ciowanie speªniaj¡ce T poniewa» T speªnia wszystkie klauzule formuªy R(G), wi¦c musi by¢ prawd¡ »e dla ka»dego j istnieje dokªadnie jedno i, takie »e T (xij) = true  w przeciwnym razie klauzule (x1j∨ x2j ∨ ... ∨ xnj) i (¬xij ∨ ¬xkj)nie mogªyby wszystkie jednocze±nie by¢ speªnione

podobnie klauzule (xi1∨ xi2∨ ... ∨ xin i (¬xij ∨ ¬xik)

gwarantuj¡ »e dla ka»dego i istnieje dokªadnie jedno j, takie »e T (xij) = true

st¡d T rzeczywi±cie reprezentuje permutacj¦ π(1), ...π(n) wierzchoªków grafu G, gdzie π(i) = j wwtedy gdy T (xij) = true

(14)

dodatkowo klauzule (¬xki ∨ ¬xk+1,j), dla

(i , j ) 6∈ G , k =1..n − 1 zapewniaj¡, »e dla ka»dego k para (πk, π(k +1)) jest kraw¦dzi¡ grafu G.

a wi¦c (π(1), π(2), ...π(n)) jest ±cie»k¡ Hamiltona grafu G.

W druga stron¦: przypu±cmy, »e graf G ma ±cie»k¦ Hamiltona (π(1), π(2), ...π(n)), gdzie π jest permutacj¡. Wówczas jest

oczywiste, »e warto±ciowanie T, takie »e T (xij) = true gdy π(i) = j oraz T (xij) = false gdy π(i) 6= j speªnia wszystkie klauzule formuªy R(G)

(15)

dowód cz.2

Maj¡c dany graf G, maszyna Turinga oblicza formuª¦ R(G) w nastepuj¡cy sposób:

Najpierw maszyna pisze binarnie n  liczbe wierzchoªków grafu G i na podstawie n generuje w swoim ciagu wyj±ciowym, jedna po drugiej klauzule, które nie zale»¡ od grafu (pierwsze 4). Jak na razie MT potrzebuje jedynie trzech liczników: i,j oraz k sªu»¡cych do konstrukcji indeksów zmiennych w klauzulach.

Dla ostatniej grupy klauzul, zale»nych od grafu G, maszyna M ponowie generuje w swoim ciagu roboczym , jedn¡ po drugiej, klauzule postaci (¬xki ∨ ¬xk+1,j)dla k=1,...n-1. Po wygenerowaniu takiej klauzuli MT sprawdza w swoim sªowie wej±ciowym czy (i,j) jest krawedzi¡ w grae G. Je»eli nie jest, to wypisuje klauzul¦ w ci¡gu wyj±ciowym. To ko«czy dowód.

(16)

przykªad 2

REACHABILITY →R(x ) CIRCUIT VALUE

Mamy dany graf G i chcemy skonstruowa¢ sie¢ R(G) bez zmiennych, tak¡,»e R(G) ma warto±¢ true wwtedy, gdy istnieje

±ciezka od wierzchoªka 1 do n w grae G.

(17)

Bramki sieci R(G) s¡ postaci gijk gdzie 1 6 i, j 6 n i 0 6 k 6 n oraz hijk gdzie 1 6 i, j, k 6 n.

Mówi¡c nieformalnie,

gijk=true wwtedy gdy istnieje ±ciezka w grae G od wierzchoªka i do wierzchoªka j NIE PRZECHODZCA przez ›ADEN wierzchoªek po±redni >k.

hijk=true wwtedy gdy w grae G istnieje ±cie»ka z wierzchoªka i do wierzchoªka j, jak poprzednio nie przechodz¡ca przez wierzchoªki

>k, ale PRZECHODZCA przez wierzchoªek k.

(18)

Typy bramek:

dla k=0 wszystkie gij0 s¡ bramkami wej±ciowymi (nie ma bramek hij0)

W szczególno±ci gij0= true wwtedy gdy i=j lub (i,j) jest kraw¦dzi¡ grafu G; w przeciwnym razie =false.

dla k=1,...,n hijk jest bramk¡ AND (tzn. s(hijk) = ∧), a jej poprzednikami s¡ gi ,k,k−1 oraz gk,j ,k−1 (tzn. w sieci R(G) istniej¡ kraw¦dzie (gi ,k,k−1, hijk) i (gk,j ,k−1, hijk)).

Bramki gijk dla k=1,...n s¡ typu OR i prowadz¡ do nich kraw¦dzie (gi ,j ,k−1, gijk) i (hijk, gijk).

g1nn jest bramk¡ wyj±ciow¡.

(19)

R(G) jest rzeczywi±cie poprawn¡ sieci¡ bez zmiennych, której bramki mo»na ponumerowa¢ liczbami 1, 2, ..., 2n3+ n2 (np.

zgodnie z niemalej¡cym porz¡dkiem trzeciego indeksu), tak by kraw¦dzie prowadziªy od bramek o mniejszych numerach do bramek o wi¦kszych numerach. Stopnie wej±ciowe bramek s¡ odpowiednie do ich rodzajów.

(20)

dowód

Poka»emy przez indukcje wzgl¦dem k, »e warto±ci bramek odpowiadaj¡ podanemu poprzednio nieformalnemu znaczeniu.

1. stwierdzenie to jest prawdziwe dla k=0 (bramki wej±ciowe) 2. nast¦pnie zauwa»my, »e jesli jest ono prawdziwe dla liczb 6 k − 1 to denicje hijk jako (gi ,k,k−1∧ gk,j ,k−1)oraz gijk jako (hijk∨ gi ,j ,k−1)gwarantuj¡, »e stwierdzenie jest prawdziwe tak»e dla k.

St¡d bramka wyj±ciowa g1nn= true wwtedy gdy istnieje ±ciezka od 1 do n nie przechodz¡ca przez wierzchoªki o numerach wiekszych ni» n ( a takich nie ma).

(21)

redukcja R mo»e by¢ obliczona w pami¦ci log(n).

Maszyna turinga, podobnie jak w poprzenim przykªadzie, przegl¡da wszystkie mo»liwe indeksy i,j,k i umieszcza w ciagu wyj±ciowym odpowiednie kraw¦dzie i typy bramek dla ka»dej zmiennej.

Konstrukcja sieci R(G) opiera si¦ na algorytmie wielomianowym dla problemu REACHABILITY → algorytm FLOYDA-WARSHALLA.

Skonstruowana sie¢ nie zawiera bramek NOT i st¡d jest sieci¡

monotoniczn¡ i ma gª¦boko±¢ liniow¡ do n.

(22)

przykªad 3

CIRCUIT SAT → SAT

Mamay dan¡ sie¢ C, dla której chcemy utworzy¢ formuª¦ logiczn¡

R(C), tak¡ »e R(C) jest speªnialna wwtedy, gdy C jest speªnialna.

Zmienne formuªy R(C) b¦d¡ zawieraªy zmienne wystepuj¡ce w C, a ponadto dla ka»dej bramki g z C bedziemy mie¢ w formule R(C) zmienn¡ oznaczon¡ tak»e przez g.

(23)

Dla ka»dej bramki sieci C wygenerujemy pewne klauzule w formule R(C).

Jezeli g jest bramk¡ zmiennej, na przykªad odpowiadajac¡

zmiennej x, to dodajemy dwie klauzule: (¬g ∨ x) i (g ∨ ¬x).  Zauwa»my »e dowolne warto±ciowanie T speªniaj¡ce obie kluzule musi zachowa¢ równo±¢ T(g)=T(x) tzn. jest to CNF dla formuªy g ⇔ x

Jezeli g jest bramk¡ o warto±ci true  dodajemy klauzul¦ g Je»eli jest bramk¡ o warto±ci false  dodajemy klauzul¦ ¬g Je»eli g jest bramk¡ NOT, a jej poprzednikiem w sieci C jest bramka h, to dodajemy klauzule (¬g ∨ h) i (g ∨ h)  czyli CNF dla (g ⇔ ¬h)

(24)

Je»eli g jest bramk¡ OR o poprzednikach h i h'  dodajemy klauzule (¬h ∨ g), (¬h0∨ g )czyli CNF dla (g ⇔ (h ∨ ¬h) je»eli g jest bramk¡ AND o poprzednikach h i h'  dodajemy klauzule (¬ ∨ h), (¬g ∨ h0), (¬h ∨ ¬h0∨ g )

je»eli g jest bramk¡ wyjsciow¡ to dodajemy klauzul¦ (g) Formuªa R(C) jest speªnialna wwtedy gdy sie¢ C byªa speªnialna, oraz konstrukcja formuªy R(C) mo»e byc przeprowadzona w pami¦ci log(n)

(25)

Redukcja przez uogólnienie

Nieformlanie powiemy, »e problem A jest szczególnym przypadkiem problemu B, je»eli przykªady problemu A stanowi¡ ªatwo

rozpoznawalny podzbiór przykªadów B oraz pozytywne przykªady A s¡ jednoczesnie pozytywnymi przykªadami B, a negatywne

przykªady A - negatywnymi przykªadami B.

Problem CIRCUIT VALUE jest szczególnym przypadkiem problemu CIRCUIT SAT  jego przykªadami s¡ wszystkie sieci, które (tak sie skªada) nie maja zmiennych. Ponadto dla tych sieci problemy CIRCUIT VALUE i CIRCUIT SAT daj¡ identyczne odpowiedzi na pytanie, czy sie¢ jest pozytywnym przykªadem problemu.  Problem CIRCUIT SAT jest uogólnieniem problemu CIRCUIT VALUE  redukcja z R - funkcj¡ to»samo±ciow¡.

(26)

REACHABILITY → CIRCUIT VALUE → CIRCUIT SAT → SAT.

REACHABILITY → SAT (czy istnieje?)

Okazuje si¦ »e tak, gdy» redukcje mo»na skªada¢.

Je»eli R jest redukcj¡ j¦zyka L1 do L2 oraz R' jest redukcj¡ j¦zyka L2 do L3, to zªo»enie R*R' jest redukcj¡ L1 do L3.

Poniewa» redukowalno±¢ jest przechodnia, mo»liwe jest wi¦c uporz¡dkowanie problemów wedªug ich trudno±ci. Szczególnie interesuj¡ce b¦d¡ elementy maksymalne w tym porz¡dku.

(27)

denicja

Niech C b¦dzie klas¡ zªo»ono±ci i niech L b¦dzie j¦zykiem z klasy C.

Powiemy, »e L jest C-zupeªny, jezeli dowolny j¦zyk l0∈ C mo»e by¢

zredukowany do L.

Problemy zupeªne stanowi¡ wa»ne narz¦dzie metodologiczne teorii zªo»ono±ci. Tylko wtedy mo»emy uzna¢, »e w peªni rozumiemy problem i znamy jego zªo»ono±¢ gdy wyka»emy, »e problem ten jest zupeªny w swojej klasie zªo»ono±ci.

(28)

Najbardziej powszechnym zastosowaniem zupeªno±ci s¡

NEGATYWNE WYNIKI W ZŠO›ONO‘CI: spo±ród wszystkich problemów nale»¡cych do klasy C najmniej prawdopodobne jest, »e to wªa±nie problem zupeªny w tej klasie b¦dzie nale»aª do sªabszej klasy C0⊆ C. Jezeli jednak tak sie stanie, to caªa klasa C okazuje sie równa sªabszej klasie C' ( o ile tylko C' jest zamkni¦ta na redukcje)

Denicja

Powiemy, »e klasa C' jest zamkni¦ta na redukcje, jezeli dla ka»dego j¦zyka L redukowalnego do L0 ∈ C0, zachodzi tak»e L ∈ C0.

Wszystkie interesuj¡ce nas klasy maj¡ t¦ wªasno±¢ (P,NP,L,.

(29)

Problem P0 jest NP-zupeªny, gdy:

P0 ∈NP, oraz ka»dy problem klasy NP da si¦ sprowadzi¢ w czasie wielomianowym do problemu P0

Problemy NP-zupeªne byªyby wi¦c w pewnym sensie najtrudniejsze w caªej klasie NP, gdyz rozwi¡zuj¡c je , rozwi¡»emy te» wszystkie pozostaªe problemy. Czyli. np znaj¡c rozwi¡zanie problemu P0 w czasie wielomianowym na DTM, moglibysmy w czasie

wielomianowym rozwi¡za¢ ka»dy problem z klasy NP. Czyli wówczas byªoby P=NP.

(30)

Obecnie wi¦kszo±¢ teoretyków wci¡» skªania si¦ ku tezie, »e »aden efektywny algorytm dla problemu NP-zupeªnego nie istnieje.

Rozstrzygni¦cie zwi¡zku mi¦dzy P a NP jest jednym z 7 tzw.

Milenijnych Problemów ogªoszonych przez Clay Mathematics Institute w 2000r.

(31)

Problemy NP-trudne

Problemami klasy NP-trudnej nazywamy problemy obliczeniowe dla których:

znalezienie rozwi¡zania problemu nie jest mo»liwe ze zªozono±ci¡ wielomianow¡ oraz

sprawdzenie rozwi¡zania problemu nie jest mo»liwe ze zªo»ono±ci¡ wielomianow¡, oraz

sprawdzenie rozwi¡zania problemu jest co najmiej tak trudne jak ka»dego innego problemu NP.

Problemy Np-trudne obejmuj¡ zarówno problemy decyzyjne jak równie» problemy przeszukiwania czy te» problemy optymalizacyjne.

(32)

Problemy zaliczane s¡ do NP-trudnych je»eli sprawdzenie poprawno±ci rozwi¡zania wymaga zªo»ono±ci obliczeniowej co najmniej wielomianowej i jednocze±nie speªniony jest co najmniej jeden z poni»szych warunków:

rozwa»any problem NP jest problemem NP-zupeªnym rozwa»any jest problem przeszukiwania

rozwa»any jest peoblem optymalizacyjny

znalezienie rozwi¡zania problemu nie jest mo»liwe ze zªo»ono±ci¡ wielomianow¡

Problemy Np-zupeªne nale»¡ do zbioru problemów NP jak równie»

do zbioru problemów NP-trudnych.

(33)

Klasa problemu NP Klasy Zªo»ono±ci czasowej

Sprawdzenie rozwi¡zania Znalezienie rozwi¡zania problem P

zªo»ono±¢ wielomianowa:

P = O(nx)

zªo»ono±¢ wielomianowa:

NP = O(nx)

problem NP zªo»ono±¢ wielomianowa

lub wykªadnicza:

NP = O(nx)

NEXPTIME = O(Xn)

problem NP-zupeªny »ªo»ono±¢ wykªadnicza:

NEXPTIME = O(xn) problem NP-trudny zªo»ono±¢ wielomianowa

lub wykªadnicza:

P = O(nx)

EXPTIME = O(Xn)

(34)

Problem SAT i Twierdzenie Cooka

Problem SAT  SATISFABILITY

DANE: Formuªa boolowska f o zmiennych x1, ..., xn∈ {0, 1}

PYTANIE: Czy istnieje warto±ciowanie dla X1, ..., xn, dla którego f jest speªniona?

Problem SAT ma szczególne znaczenie, gdy» da sie pokaza¢, »e ka»dy j¦zyk w NP jest do niego wielomianowo redukowalny. Skoro tak, to b¦dziemy dysponowali przykªadem problemu NP-zupeªnego i uzyskamy potwierdzenie sensowno±ci redukowalno±ci wielomianowej.

Twierdzenie COOKA

Problem SAT jest NP-zupeªny.

(35)

dowód - krok 1

Zgodnie z denicj¡ NP-zupeªno±ci nale»y wykona¢ dwa kroki:

1. pokaza¢, »e SAT jest w NP

2. pokaza¢, »e ka»dy problem w NP ma wielomianow¡ redukcj¦ do SAT.

Krok1: SAT jest w NP. Maszyna niedeterministyczna mo»e 'zgadn¡¢' rozwi¡zanie, a nastepnie zwerykowa¢ czy jest ono warto±ciowaniem speªniaj¡cym zadan¡ formuª¦. Operacj¦

sprawdzenia warto±ci formuªy boolowskiej mo»na wykona¢ w czasie wielomianowym ze wzgledu na jej dªugo±¢. Zatem SAT jest w NP.

(36)

dowód - krok 2

Poka»my, »e dla ka»dej niedeterministycznej maszyny Turinga M = (Q, Σ, Γ, δ, q0, B, F )dziaªaj¡cej w czasie wielomianowym p(n) i sªowa w (|w|=n) mo»na zbudowac formuª¦ boolowsk¡ f tak¡, »e M akceptuje w wwtedy, gdy dla f istnieje warto±ciowanie speªniaj¡ce.

Zauwa»my, »e poniewa» zªo»ono±¢ M jest oszacowana przez wielomian p(n), to wystarczy rozpatrywa¢ tylko komórki ta±my poªo»one o nie dalej ni» p(n) od pozycji gªowicy w stanie q0. Pozycj¦ na tasmie w q0 oznaczamy jako 0, a nastepnie numerujemy pozycje na ta±mie symetrycznie po obu stronach 0 liczbami z zakresu od -p(n) do p(n). Operacje przesuni¦cia gªowicy w prawo i lewo b¦dziemy identykowali z dodaniem odpowiednio +1 i -1 do

(37)

Niech q ∈ Q, −p(n) 6 i 6 p(n), j ∈ Σ, 0 6 k 6 p(n). Kodowanie maszyny zaczniemy od podania zmiennych boolowskich, które wystepuj¡ w naszej formule:

Tijk jest prawdziwa (=1) ⇔ i-ta komórka na ta±mie zawiera symbol j w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)2).

Hik jest prawdziwa ⇔ gªowica znajduje si¦ nad i-t¡ komórk¡

ta±my w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)2).

Qqk jest prawdziwa ⇔ M jest w stanie q w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)).

Za pomac¡ tak wprowadzonych zmiennych zbudujemy formuª¦

boolowsk¡, która b¦dzie wyra»aªa obliczenie M. Ogóªem mamy O(p(n)2) zmiennych.

(38)

Formuªa f jest koniunkcj¡ podformuª koduj¡cych:

Tij0  i-ta komórka w stanie q0 zawiera symbol j  O(p(n)) takich elementów

Qs0  stan pocz¡tkowy (jeden)

H00  pocz¡tkowe poªo»enie gªowicy (jedno)

Tijk ⇒ ¬Tij0k dla j 6= j0  w ka»dym kroku obliczenia, w ka»dej komórce jedt dokªadnie jeden symbol.  O(p(n)2) takich elementów.

Tijk = Tij (k+1)∨ Hik  zmiana na tasmie mo»e nast¡pi¢ tylko na pozycji gªowicy.  O(p(n)) takich elementów

(q,σ,g00,d )∈δ(Hik ∧ Qqk∧ Ti σk) →

(H(i +d )(k+1)∧ Qq0(k+1)∧ T(i +d )σ0(k+1))  przej±cia do kolejnego stanu w ka»dym kroku musz¡ by¢ zgodne z relacj¡

przej±cia δ  O(p(n)2) takich elementów

 stan po zako«czeniu obliczenia musi by¢

(39)

Przykªady problemów NP-zupeªnych

Logika  problem trójspeªnialno±ci (3SAT) 3-SAT

DANE: Formuªa boolowska f w postaci 3-CNF, czyli taka, której klauzule skªadaj¡ si¦ z co najwy»ej 3 literaªów.

PYTANIE: czy f jest speªnialna?

dowód : przez wielomianowe sprowadzenie do niego z problemu CNF-SAT

(40)

Problemy grafowe(1) - znajdowanie kliki

Klik¡ - w grae nazywamy jego podgraf, którego wszystkie wierzchoªki s¡ ze sob¡ poª¡czone kraw¦dziami.(i.e klika jest podgrafem peªnym danego grafu). Klika maksymalna - taka klika,

»e nie mo»na ju» do niej doda¢ »adnego nowego wierzchoªka grafu

Problem 1 - Czy w danym grae istnieje klika rz¦du k.

Problem 2 - Jaka jest klika maksymalna dla danego grafu.

(41)

Problemy grafowe(2) - znajdowanie cyklu Hamiltona

Cykl Hamiltona jest cyklem, który odwiedza ka»dy wierzchoªek grafu dokªadnie jeden raz (za wyj¡tkiem pierwszego, od którego cykl si¦ zaczyna i w którym sie ko«czy) Prosty algorytm

rekurencyjny znajdowania wszystkich cykli i ±ciezek Hamiltona posiada zªo»óno±¢ O(n!) co czyni go praktycznie bezu»ytecznym dla wi¦kszych grafów (powy»ej 30 wierzchoªków).

(42)

Problemy grafowe(3) - pokrycie wierzchoªkowe

Pokrycie wierzchoªkowe grafu G  taki podzbiór jego wierzchoªków,

»e ka»da kraw¦d¹ G jest incydentna do jakiego± wierzchoªka z tego podzbioru.

V0 jest pokryciem wierzchoªkowym grafu G = (V , E) je»eli V0 ⊂ V ∧ (∀e ∈ E , ∃v ∈ V0: v ∈ e

Znalezienie minimalnego pokrycie wierzchoªkowego jest

NP-trudnym problemem optymalizacyjnym (NP-kompletnym w wersji decyzyjnej).

(43)

Problemy grafowe (4) - problem komiwoja»era, TSP

Zagadnienie optymalizacyjne  znalezienie minimalnego cyklu Hamiltona w peªnym grae wa»onym. -problem NP-trudny.

Nazwa pochodzi od typowej ilustracji problemu w¦drownego sprzedawcy (komiwoja»era): dane jest n miast, które komiwoja»er ma odwiedzi¢, oraz odlegªo±¢ / cena podró»y / czas podró»y pomi¦dzy ka»d¡ par¡ miast. Celem jest znalezienie najkrótszej / najta«szej / najszybszej drogi ª¡cz¡cej wszystkie miasta,

zaczynaj¡cej si¦ i ko«cz¡cej si¦ w okre±lonym punkcie.

W wersji decyzyjnej problemu, danymi s¡ graf i pewna liczba n, nale»y odpowiedzie¢ czy istnieje trasa komiwoja»era krótsza od n.

Tak sformuªowany problem jest NP-zupeªny.

(44)

Problemy grafowe (5) - kolorowanie grafu

Kolorowanie grafu polega w ogólno±ci na przypisaniu okre±lonym elementom skªadowym grafu (najcz¦±ciej wierzchoªkom, rzadziej kraw¦dziom lub ±cianom) wybranych kolorów wedªug ±ci±le okre±lonych reguª.

(45)

Klasyczne (czyli wierzchoªkowe) kolorowanie grafu jest zwi¡zane z przypisaniem wszystkim wierzchoªkom w grae jednej z wybranych barw w ten sposób, aby »adne dwa s¡siednie wierzchoªki nie miaªy tego samego koloru.

Liczb¡ chromatyczn¡ grafu G nazywamy liczb¦ χ(G) równ¡

najmniejszej mo»liwej liczbie kolorów potrzebnych do legalnego pokolorowania wierzchoªków grafu G.

Problem, czy dany graf jest k-kolorowalny dla danego k jest NP-zupeªny, za wyj¡tkiem k ∈ {0, 1, 2} Problem znalezienia liczby chromatycznej jest NP-trudny.

Najlepsze algorytmy aproksymacyjne realizuj¡ kolorowanie co najwy»ej ze wspóªczynnikiem O(n(loglogn)2(logn)3) liczby chromatycznej.

(46)

Problemy grafowe - minimalne drzewo spinaj¡ce o ograniczonej wysoko±ci

problem znalezienia drzewa spinaj¡cego:

1. o minimialnym koszcie 2. o narzuconym korzeniu

3. nie przekraczaj¡cym okre±lonej wysoko±ci c

Ograniczenie c gwarantuje, »e poddrzewa przylegaj¡ce do korzenia nie maj¡ wi¦cej ni» c w¦zªów.

Je»eli z w¦zªami zwi¡zane s¡ wagi to ogranczenie c mówi, »e suma wag w »adnym poddrzewie nie mo»e by¢ wi¦ksza ni» c.

Kraw¦dzie ª¡cz¡ce podgrafy z korzeniem nazywane s¡ bramkami.

Heurystyki znajduj¡ce rozwi¡zania bliskie optymalnemu w czasie wielomianowym: Esau-Williamsa, Sharma's.

(47)

Problemy podziaªu zbioru

problem plecakowy (KNAPSACK PROBLEM)  dany jest zbiór przedmiotów, ka»dy o okreslonej wadze i warto±ci.

Nalezy wypeªni¢ plecak tymi przedmiotami (z powtórzeniami), tak aby nie przekroczy¢ dopuszczalnej wagi i uzyskac

maksymaln¡ warto±¢.

problem trójpodziaªu  Dla danego ograniczenia B i zbioru A skªadaj¡cego si¦ z 3q elementów o znanych wagach

caªkowitych, pytamy o istnienie podziaªu tego zbioru na q rozª¡cznych podzbiorów trójelementowych, takich »e suma wag w ka»dym z nich jest równa B

(48)

Inne

ukªadanki dwuwymiarowe

przydziaª ograniczonego miejsca i ukªadanie planu zaj¦¢  np.

sprawdzenie czy istnieje plan zaj¦¢ dopasowuj¡cy nauczycieli, klasy i godziny lekcyjne tak, aby dwie klasy nie miaªy

jednocze±nie zaj¦¢ z tym samym nauczycielem, nauczyciel nie prowadziª w tym samym czasie lekcji w dwóch ró»nych klasach

(49)

1. problem stopu  nie istnieje MT, która w sko«czonej liczbie kroków rozstrzygnie czy dowolna MT zako«czy prac¦

2. problem sprawdzenia, czy formuªa klasycznej logiki predykatów jest tautologi¡  je±li dana formuªa rachunku predykatów jest tautologi¡, to umiemy si¦ o tym przekona¢ w sko«czonym czasie.

Jesli jednak nie jest to tautologia, to nie ma takiej metody, która po sko«czonej liczbie kroków pozwoliªaby przerwa¢ post¦powanie i zdecydowa¢, »e to nie jest tautologia.

(50)

3. problem pokrycie pªaszczyzny/ problem domina  niech b¦d¡

dane kafelki - kwadraty podzielone przek¡tnymi na 4 cz¦±ci, z których ka»da zostaªa w pewien sposób pokolorowana. problem:

czy dowoln¡ sko«czon¡ powierzchni¦ mo»na pokry¢ kaami tak, zby s¡siaduj¡ce kae pasowaªy do siebie kolorami. Zakªadamy

dodatkowo, »e kae maj¡ ustalon¡ orientacj¦ i nie mo»na ich obraca¢, oraz »e liczba kai ka»dego typu jest nieograniczona

(51)
(52)

Co nale»y wiedzie¢?

Zna¢ poj¦cie redukcji, umie¢ poda¢ przykªady redukcji problemów fundamentalnych

Zna¢ poj¦cia problemów np-zupeªnych i np-trudnych, umie¢

wskaza¢ ró»nice pomi¦dzy nimi

poda¢ i opisa¢ przykªady problemów np-zupeªnych, np-trudnych i nierozstrzygalnych

Cytaty

Powiązane dokumenty

Na czym polega jednokierunkowa analiza wariancji, podać model, jakiej hipotezy dotyczy ta analiza, na jakie składowe rozkłada się całkowita suma kwadratów

Na czym polega jednokierunkowa analiza wariancji, podać model, jakiej hipotezy dotyczy ta analiza, na jakie składowe rozkłada się całkowita suma kwadratów

Udowodni¢, »e z dokªadno±ci¡ do izomorzmu istnieje przeliczalnie.. wiele przeliczalnych ciaª

Niech X, Y, Z będą afinicznymi

Pokaż też, że powyższe twierdzenie nie działa w drugą stronę, to znaczy znajdź ciąg {a n } który nie jest zbieżny, chociaż {|a n |}

Przypomnij dowód twierdzenia Banacha o odwzorowaniu otwartym w ujęciu Pytlika (Analiza funk- cjonalna, str 89-90).. Zauważ, że podana argumentacja zachowuje ważność, gdy

Wypisać wszystkie elementy ciała Z 3 (α) oraz obliczyć sumy i iloczyny wybranych elementów tego ciała.. (16) Zbudować ciało 4-elementowe oraz ciało 9-elementowe jako

Udowodnij, że istnieją wśród nich trzy, tworzące trójkąt (być może zdegenerowany) o obwodzie nie większym niż