• Nie Znaleziono Wyników

MAX FLOW maksymalny przepªyw

N/A
N/A
Protected

Academic year: 2021

Share "MAX FLOW maksymalny przepªyw"

Copied!
53
0
0

Pełen tekst

(1)

Algorytmika - wykªad 5

dr Anna Sasak-Oko«

Uniwersytet Marii Curie-Skªodowskiej w Lublinie

28.10.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 komiwoja»era, problem plecakowy

(3)

Problemy fundamentalne

REACHABILITY MAX FLOW

SATISFABILITY - SAT, MAX-SAT, HORNSAT, CIRCUIT SAT, CIRCUIT VALUE

(4)

REACHABILITY

Wiele problemów obliczeniowych dotyczy grafów. Wszystkie rozwa»ane przez nas grafy b¦d¡ sko«czone i skierowane.

Denicja

Graf G(V , E) jest sko«czonym zbiorem wierzchoªków V i zbiorem kraw¦dzi E, które s¡ parami wierzchoªków.

(5)

Najbardziej podstawowy problem grafowy dotyczy rozstrzygni¦cia czy dla danego grafu G i jego dwóch wierzchoªków 1, n ∈ V istnieje

±cie»ka od 1 do n. > problem ten nazywamy REACHABILITY Np. w powy»szym grae scie»ka od wierzchoªka 1 do 5 istnieje (1,4,5) ale przestanie istnie¢ je»eli zmienimy zwrot kraw¦dzi (4,5).

Jak wi¦kszo±¢ interesuj¡cych problemów REACHABILITY ma niesko«czony zbiór mo»liwych przykªadów z których ka»dy jest obiektem matematycznym, na temat którego zadajemy pytanie i oczekujemy odpowiedzi.

Rodzaj zadawanego pytania charakteryzuje problem. Tu oczekujemy na odpowied¹ 'tak'/'nie' >problem decyzyjny.

(6)

Problem REACHABILITY mo»e by¢ rozwi¡zany za pomoc¡ tzw.

algorytmu wyszukiwania.

Utwórz zbiór wierzchoªków S i pocz¡tkowo ustal S = {1}.

Ka»dy wierzchoªek mo»e by¢ zaznaczony lub niezaznaczony.

Zaznaczenie wierzchoªka i oznacza, »e znajdowaª si¦ w zbiorze S na wcze±niejszym etapie oblicze« lub obecnie znajduje sie w zbiorze S. Pocz¡tkowo jedynie wierzchoªek 1 jest zaznaczony.

W ka»dej iteracji wybierz wierzchoªej i ∈ S i usu« go z S.

Rozwa» wszystkie kraw¦dzie (i,j) wychodz¡ce z i. Je»eli wierzchoªek j jest niezaznaczony, to zaznacz go i dodaj do S.

Powtarzaj proces dopóty dopóki zbiór S nie stanie si¦ pusty.

Odpowiedz TAK > je»eli wierzchoªek n jest zaznaczony, lub NIE

> je»eli jest niezaznaczony.

(7)

Od sposobu wyboru wierzchoªka 'i' zale»y charakterystyka samego algorytmu pozwalaj¡ca uzyska¢ efekt przeszukiwania:

'W SZERZ' i najkrótsz¡ ±cie»k¦ (S implementowana jak kolejka, wybierany jest wierzchoªek, który jet w niej najdªu»ej) 'W GŠB' (S jako stos, wybierany jest wierzchoªek ostatnio dodany).

(8)

Algorytm dziaªa poprawnie w ka»dym przypadku. Co wi¦cej dziaªa EFEKTYWNIE.

Zauwa»my, »e ka»dy element macierzy s¡siedztwa jest odwiedzany tylko raz - wówczas gdy wybierany jest wierzchoªek odpowiadaj¡cy wersowi, w którym znajduje si¦ element → wykona si¦ jedynie okoªo n2 operacji, przetwarzaj¡c kraw¦dzie wychodz¡ce z wybranych wierzchoªków (w caªym grae mo»e by¢ max n2 kraw¦dzi).

Wszystkie pozostaªe, proste operacje jak zaznaczenie czy wybór elementu, mo»na zrobi¢ w staªym czasie > O(n2)

Wymagania pami¦ciowe?

Algorytm musi przechowywa¢ zbiór S i znaczniki wierzchoªków.

Jest najwy»ej n znaczników i zbiór S nie mo»e miec wi¦cej ni» n elementów. → algorytm potrzebuje pami¦ci rozmiaru O(n).

(9)

MAX FLOW  maksymalny przepªyw

Problem obliczeniowy stanowi¡cy uogólnienie REACHABILITY.

WE: to rodzaj uogólnionego grafu, który nazywany jest sieci¡.

Sie¢ N = (v, E, s, t, c) jest grafem (V , E) z dwoma wyró»nionymi wierzchoªkami s¹ródªo i tuj±cie. ™ródªo nie ma kraw¦dzi

wchodz¡cych, a uj±cie wychodz¡cych. Dla ka»dej krawedzi (i,j) okre±lona jest jej przepustowo±¢  liczba naturalna c(i,j).

(10)

Denicja

Przepªyw w sieci N to przypisanie nieujemnych warto±ci caªkowitych f (i, j) 6 c(i, j) wszystkim kraw¦dziom (i,j) w ten sposób by dla ka»dego wierzchoªka ró»nego od s i t suma warto±ci f kraw¦dzi wchodz¡cych do wierzchoªka byªa równa sumie warto±ci f kraw¦dzi wychodz¡cych z wierzchoªka.

Warto±ci¡ przepªywu f jest suma przepªywów przypisanych

kraw¦dziom wychodz¡cym z s (lub kraw¦dziom wchodz¡cym do t).

Jest to przykªad problemu optymalizacyjnego, poniewa» w±ród wielu mo»liwych rozwi¡za« poszukujemy najlepszego wedªug pewnego prostego kryterium kosztu.

(11)

Algorytm wielomianowy rozwi¡zuj¡cy problem MAX FLOW jest oparty na zasadniczym fakcie dotycz¡cym sieci, znanym jako:

Tw. o maksymalnym przekroju i minimalnym przekroju W dowolnej sieci warto±¢ maksymalnego przepªywu jest równa przepustowo±ci minimalnego przekroju.

Denicja

Przekrojem w sieci N = (V , E, s, t, c) nazywamy zbiór wierzchoªków S, taki, »e s ∈ S i t 6∈ S.

Denicja

Przepustowo±ci¡ przekroju zbioru S nazywamy sum¦ przepustowo±ci wszystkich kraw¦dzi wychodz¡cych z wierzchoªków zbioru S.

(12)

przykªadowa sie¢ i jej pewien przepªyw (f)

(13)

Algorytm

Powiedzmy, »e mamy dany pewien przepªyw f i chcemy wiedzie¢ czy jest on optymalny czy nie.

Gdyby istniaª przepªyw f0 o warto±ci > f to wówczas

∆f = f0− f byªby tak»e przepªywem o dodatniej warto±ci.

Niestety ∆f mo»e mie¢ ujemn¡ warto±¢ dla pewnej kraw¦dzi (i , j ).

Mo»emy jednak wtedy potraktowac go jak przepªyw dodatni wzdªu» kraw¦dzi przeciwnej (j, i).

Z drugiej strony dodatnie warto±ci ∆f (i, j) moga by¢ równe najwy»ej c(i, j) − f (i, j).

(14)

Mo»emy inaczej powiedzie¢, »e ∆f jest przepªywem w nowo zdeniowanej sieci:

N(f ) = (V , E0, s, t, c0) w której

E0 = E − {(i , j ) : f (i , j ) = c(i , j )} ∪ {(i , j ) : (j , i ) ∈ E , f (j , i ) >0}, c0(i , j ) = c(i , j ) − f (i , j )

dla (i, j) ∈ E oraz c0(i , j ) = f (j , i )dla (i, j) ∈ E0− E.

(15)

> Potramy wi¦c stwierdzi¢ czy zadany przepªyw jest maksymalny.

> St¡d pomysª na algorytm dla problemu MAX FLOW:

Zaczynij od przepªywu zerowego w sieci N.

Stopniowo buduj sie¢ N(f ), próbuj¡c znale¹¢ ±cie»k¦ z s do t w N(f ).

Je»eli taka ±cie»ka istnieje, to znajd¹ najmniejsz¡

przepustowo±¢ c0 na jej kraw¦dziach i dodaj t¦ warto±¢ do przepªywu f na wszystkich kraw¦dziach ±cie»ki. W rezultacie otrzymujemy oczywi±cie wiekszy przepªyw.

Gdy przeszukiwana ±cie»ka nie istnieje → przepªyw jest maksymalny co ko«czy algorytm.

(16)

Poprzednio stwierdzili±my, »e ka»da iteracja algorytmu znajdowania

±cie»ki i powi¦kszanie przepªywu wzdªu» niej zabiera czas O(n2). Iteracji mo»e by¢ co najwy»ej nc gdzie c jest maksymaln¡

przepustowo±ci¡ kraw¦dzi w sieci.(ka»da iteracja powoduje

zwi¦kszenie przepªywu przynajmniej o 1, a przepªyw maksymalny ie mo»e by¢ wi¦kszy ni» nC gdy» ze ¹ródªa wychodzi najwy»ej n kraw¦dzi) st¡d > O(n3c)

Nasz¡ czujno±¢ powinna wzbudzi¢ liniowa zale»no±¢ czasu dziaªania algorytmu od c. Powy»sze ograniczenia algorytmu, nie s¡ wcale wielomianowe poniewa» ich wymagania czasowe rosn¡ wykªadniczo w zale»no±ci od dªugo±ci danych wej±ciowych. (pamietaj¡c »e liczby s¡ przedstawiane w postaci binarnej, a dªugo±¢ reprezentacji jest logarytmiczna w stosunku do przedstawianej liczby)

(17)

przykªad zªej sieci dla algorytmu podstawowego

(18)

Ulepszenie: Powi¦kszanie przepªywu NIE wzdªu» dowolnej ±cie»ki z s do t ale wzdªu» NAJKRÓTSZEJ  znalezionej np.

przeszukiwaniem wgª¡b.

Kraw¦d¹ o najmniejszej przepustowo±ci c0 na najkrótszej ±cie»ce z s do t w sieci N(f) nazwiemy WSKIM GARDŠEM (bottleneck).

Je»eli zawsze wybieramy najkrótsz¡ ±cie»k¦ do powi¦kszenia przepªywu, to ka»da kraw¦d¹ (i,j )z sieci N lub kraw¦d¹ do niej przeciwna mo»e by¢ w¡skim gardªem w najwy»ej n iteracjach.

Poniewa» w sieci jest najwy»ej n2 krawedzi i ka»da iteracja ma przynajmniej jedno w¡skie gardªo, wi¦c liczba iteracji w wersji z najkrótsz¡ ±ciezk¡ musi byc ograniczona przez n3. St¡d algorytm rozwi¡zuje problem MAX FLOW w O(n5).

(19)

Formuªy rachunku zda«

Ustalmy niesko«czony, przeliczalny alfabet zmiennych zdaniowych X = {x1, x2, ...}. S¡ to zmienne, które mog¡ przyjmowa¢ jedn¡ z dwóch warto±ci logicznych: true, false.

Zmienne zdaniowe mo»na ª¡czy¢, wykorzystuj¡c spójniki logiczne takie jak: ∨(or) ∧(and) ¬(not) prawie w ten sam sposób jak ª¡czy si¦ zmienne rzeczywiste operatorami +, ∗, − tworz¡c dziaªania arytmetyczne.

(20)

Denicja

Formuªa rachunku zda« mo»e by¢:

zmienn¡ zdaniow¡ xi

wyra»eniem postaci ¬θ1, gdzie θ1 jest formuª¡ > negacja wyra»eniem postaci (θ1∨ θ2), gdzie θ1, θ2 s¡ formuªami >

alternatywa = dysjunkcja

wyra»eniem postaci (θ1∧ θ2), gdzie θ1, θ2 s¡ formuªami >

koniunkcja

Formuª¦ postaci xi lub ¬xi nazywamy literaªem.

(21)

Denicja

Warto±ciowanie logiczne T jest odwzorowaniem ze sko«czonego zbioru zmiennych zdaniowych X0⊂ X w zbiór warto±ci logicznych {true, false}

Niech θ b¦dzie formuª¡. Przez X (θ) oznaczmy zbiór zmiennych wyst¦puj¡cych w θ, który deniujemy nast¦puj¡co:

je»eli θ jest zmienn¡ xi, to X (θ) = {xi}. je»eli θ = ¬θ1 to X (θ) = X (θ1)

je»eli θ = (θ1∨ θ2)lub θ = (θ1∧ θ2) to X (θ) = X (θ1) ∪ X (θ2)

(22)

Niech T b¦dzie warto±ciowaniem okre±lonym na zbiorze zmiennych X0, takim »e X (θ) ⊆ X0. Takie warto±ciowanie nazwiemy

odpowiednim dla θ.

Zaªó»my, »e T jest odpowiednie dla θ. Zdeniujmy teraz poj¦cie T speªnia θ, które zapisujemy T  θ:

je»eli θ jest zmienn¡ xi ∈ X (θ) to T  θ gdy T (xi) = true je»eli θ = ¬θ1 to T  θ gdy T 2 θ1

je»eli θ = (θ1∨ θ2) to T  θ gdy T  θ1 lub T  θ2

je»eli θ = (θ1∧ θ2) to T  θ gdy zachodzi zarówno T  θ1 jak i T  θ2

(23)

przykªad

Rozwa»my formuª¦ θ = ((¬x1∨ x2) ∧ x3).

Warto±ciowanie dla θ : T (x1) = T (x3) = true i T (x2) = false. Czy T  θ?

Oczywi±cie T  x3 Jednak»e denicja speªnialno±ci koniunkcji wymaga, by T speªniaªo tak»e (¬x1∨ x2)Czy speªnia? Zaczynaj¡c od T  x1, widzimy »e T 6 ¬x1. Tak»e T 6 x2. St¡d wynika, »e T 6 (¬x1∨ x2)poniewa» zaden ze skªadników alternatywy nie jest speªniony. Na koniec T 6 θ, poniewa» nie udaªo sie speªni¢ jednego z czynników  konkretnie (¬x1∨ x2)

(24)

Powiemy, »e dwie formuªy θ1, θ2 s¡ równowa»ne (θ1≡ θ2) gdy dla dowolnego warto±ciowania T, odpowiedniego dla obu formuª T  θ1

wtedy i tylko wtedy gdy T  θ2.

Je»eli dwie formuªy s¡ równowa»ne to mo»emy je traktowa¢ jak ró»ne reprezentacje tego samego obiektu i u»ywa¢ ich zamiennie.

(25)

wªasno±ci spójników logicznych

Niech θ1, θ2 b¦d¡ dowolnymi formuªami rachunku zda«, wtedy:

11∨ θ2) ≡ (θ2∨ θ1) przemienno±¢

21∧ θ2) ≡ (θ2∧ θ1) przemienno±¢

3 ¬¬θ1≡ θ1

4 ((θ1∨ θ2) ∨ θ3) ≡ (θ1∨ (θ2∨ θ3)) ª¡czno±¢

5 ((θ1∧ θ2) ∧ θ3) ≡ (θ1∧ (θ2∧ θ3)) ª¡czno±¢

6 ((θ1∧ θ2) ∨ θ3) ≡ ((θ1∨ θ3) ∧ (θ2∨ θ3)) rozdzielno±¢

7 ((θ1∨ θ2) ∧ θ3) ≡ ((θ1∧ θ3) ∨ (θ2∧ θ3)) rozdzielno±¢

8 ¬(θ1∨ θ2) ≡ (¬θ1∧ ¬θ2)  prawa

9 ¬(θ1∧ θ2) ≡ (¬θ1∨ ¬θ2)  de Morgana

10 θ1∨ θ1 ≡ θ1  idempotentno±¢ formuª

(26)

Wykorzystuj¡c powy»sze wªasno±ci, ka»d¡ formuª¦ mo»na zapisa¢ w równowa»nej, wygodnej z pewnych wzgl¦dów postaci.

Powiemy, »e formuªa θ jest w KONIUNKTYWNEJ POSTACI NORMALNEJ, je»li θ = ∧ni =1ci, gdzie n > 1 oraz ka»de ci jest alternatyw¡ co najmniej jednego literaªu.

Formuªy ci nazywamy klauzulami formuªy w koniunktywnej postaci normalnej.

Powiemy, »e formuªa θ jest w DYSJUNKTYWNEJ POSTACI NORMALNEJ, je»li θ = ∨ni =1di, gdzie n > 1 oraz ka»de di jest koniunkcj¡ co najmniej jednego literaªu.

Formuªy di nazywamy implikantami formuªy w dysjunktywnej postaci normalnej.

(27)

Twierdzenie

Ka»da formuªa rachunku zda« ma formuª¦ równowa»n¡ w koniunktywnej postaci normalnej oraz formuª¦ równowa»n¡ w dysjunktywnej postaci normalnej.

dowód indukcyjny wzgl¦dem struktury θ:

θ − xj jest pojedyncz¡ zmienn¡  tw. jest prawdziwe

Z: θ1 jest przedstawiona w dysjunktywnej postaci normalnej tj.

θ1 = d1∨ d2∨ ..dj

T: θ = ¬θ1. Wówczas z praw de Morgana

θ = ¬d1∧ ¬d2∧ ...¬dj, oraz ka»de ¬dj jest alternatyw¡

negacji literaªów wyst¦puj¡cych w dj

Podobnie, rozpoczynaj¡c od koniunktywnej postaci normalnej θ1 pokazujemy, »e θ mo»na przedstawi¢ w dysjunktywnej

(28)

Powiemy, »e formuªa rachunku zda« θ jest SPEŠNIALNA gdy istnieje warto±ciowanie logiczne T odpowiednie dla θ, takie »e T  θ.

Powiemy, »e θ jest PRAWDZIWA lub, »e jest tautologi¡ gdy T  θ dla wszystkich T odpowiednich dla θ

To oznacza, »e formuªa prawdziwa musi byc speªnialna, a formuªa niespeªnialna nie mo»e by¢ prawdziwa.

Uwaga!

Formuªa rachunku zda« jest niespeªnialna wtedy i tylko wtedy, gdy jej negacja jest tautologi¡.

(29)

przykªad

Czy formuªa ((x1∨ ¬x2) ∧ ¬x1) jest speªnialna?

TAK, gdy» speªnia j¡ warto±ciowanie T (x1) = T (x2) = false. Czy speªniona jest formuªa:

((x1∨x2∨x3)∧(x1∨¬x2)∧(x2∨¬x3)∧(x3∨¬x1)∧(¬x1∨¬x2∨¬x3)) NIE, bo:

jest w koniunktywnej postaci normalnej, wi¦c warto±ciowanie speªniaj¡ce, musiaªoby speªnia¢ wszystkie 3 klauzule

pierwsza klauzula wymaga, by jedna z trzech warto±i:

T (x1), T (x2), T (x3)byªa równa TRUE

kolejne trzy klauzule wymagaj¡ by wsystkie powy»sze warto±ci byªy jednakowe

by spelni¢ ostatni¡ klauzul¦ trzeba jednej z tych trzech

(30)

Speªnialno±¢ i prawdziwo±¢ s¡ wa»nymi wªasno±ciami formuª, wi¦c prze±led¹my odpowiadaj¡ce im problemy obliczeniowe.

Formuª¦ rachunku zda« mozna przedstawi¢ jako dane algorytmu w postaci sªowa nad alfabetem, który zawiera symbole x,0,1

(potrzebne do zapisu nazw zmiennych z indeksami zapisanymi binarnie), a tak»e symbole (, ), ∨, ¬, ∧ wymagane przez skªadni¦

formuª.

DŠUGO‘CI formuªy jest dªugo±¢ odpowiadaj¡cego jej sªowa.

(31)

SATISFABILITY

SAT = speªnialno±¢  jest nast¦puj¡cym problemem:

Czy zadana formuªa θ w koniunktywnej postaci normalnej jest speªnialna?

Mozna natychmiat zauwa»y¢, »e problem SAT mo»e by¢ rozwi¡zany przez algorytm w czasie O(n22n)gdzie n to liczba zmiennych w formule, który przegl¡da wszystkie mo»liwe kombinacje warto±ci logicznych dla zmiennych logicznych, które wystepuj¡ w formule i odpowiada 'tak' lub 'nie' → problem speªnialno±ci jest

ROZSTRZYGALNY

(32)

(*) Problem SAT b¦dzie miaª dla nas szczególne znaczenie, gdy»

poka»emy, »e ka»dy j¦zyk w NP jest do niego wielomianowo redukowalny. Skoro tak, to bedziemy dysponowali przykªadem problemu NP zupeªnego i uzyskamy potwierdzenie sensowno±ci redukowalno±ci wielomianowej.

Problem SAT mo»e by¢ bardzo ªatwo rozwi¡zany przez niedeterministyczny algorytm wielomianowy, który zgaduje

warto±ciowanie speªniaj¡ce i sprawdza, czy rzeczywi±cie speªnia ono wszystkie klauzule. St¡d SAT jest w NP. Jak w przypadku innego wa»nego problemu TSP(D), aktualnie nie wiemy, czy SAT nale»y do P, raczej spodziewamy si¦ »e NIE.

(33)

Inne odmiany problemu speªnialno±ci:

MAX-SAT HORNSAT CIRCUIT SAT

(34)

1. MAX-SAT

Dla formuªy f w postaci koniunkcyjnej, znale¹¢ takie warto±ciowanie zmiennych f, aby najwi¦ksza mo»liwa liczba klauzul w f byªa

prawdziwa.

(*) Zadanie MAX-SAT jest NP-trudne, gdy» je±li istnieje warto±ciowanie speªniaj¡ce caªe f to zostanie ono znalezione.

(*) MAX-SAT nie jest problemem NP-zupeªnym, gdy» nie odpowiada na pytanie typu 0/1.

(*) Problem MAX-SAT i jego warianty cz¦sto pojawiaj¡ si¦ w kontek±cie konstruowania i oceniania algorytmów (programów) znajduj¡cych warto±ciowania speªniaj¡ce tzw. sat-solverów

(35)

2. HORNSAT

Mówimy, »e klauzula jest hornowska, je»eli zawiera najwy»ej jeden literaª pozytywny, czyli wszystkie jej literaªy, z wyj¡tkiem by¢ mo»e jednego s¡ negacjami zmiennych.

Nast¦puj¡ce klauzule s¡ wi¦c hornowskie:

1 (¬x2∨ x3)

2 (¬x1∨ ¬x2∨ ¬x3∨ ¬x4)  klauzula czysto negatywna

3 (x1)

(36)

Klauzule 1 i 3, które zawieraj¡ literaª pozytywny nazywane s¡

IMPLIKACJAMI.

Oznacza to ,»e mog¡ by¢ przeksztaªcone do postaci:

((x1∧ x2∧ ... ∧ xm) ⇒ y ) gdzie y jest literaªem pozytywnym.

Implikacje z przykªadu mogªyby zostac zapisane (x2⇒ x3) oraz (true ⇒ x1)

Czy wszystkie takie klauzule s¡ speªnialne?

Istnieje efektywny algorytm, który potra to sprawdzi¢ na podstawie implikacyjnej klauzuli hornowskiej.

(37)

Algorytm - czy θ, koniunkcja klauzul hornowskich jest speªnialna

Warto±ciowanie reprezentuje zbiór T zªo»ony z tych zmiennych, którym nadajemy warto±¢ true.

rozwa»amy tylko implikacje wystepuj¡ce w θ i budujemy warto±ciowanie speªniaj¡ce dla tej cz¦±ci zadanej formuªy T :=0  wszystkie zmienne maj¡ warto±¢ false

Do momentu gdy wszystkie implikacje b¦d¡ speªnione powtarzamy nastepuj¡cy krok:

 wybierz dowoln¡, niespeªnion¡ implikacj¦

((x1∧ x2∧ ... ∧ xm) ⇒ y )(tzn. klauzul¦ w której wszystkie xi

sa true i y s¡ false) i dodaj y do T (tzn. nadaj jej warto±¢ true)

(38)

Caªy algorytm dziaªa w sko«czonym czasie, poniewa» T powi¦ksza si¦ w ka»dym kroku.

Ponadto otrzymane ostatecznie warto±ciowanie musi speªnia¢

wszystkie implikacje z θ, poniewa» tylko wtedy procedura si¦ ko«czy.

Co wi¦cej, dowolne inne warto±ciowanie T', które rówie» speªnia wszytskie implikacje θ musi zawiera¢ T (T ⊆ T0). Gdyby ten warunek nie byª speªniony, wówczas w pierwszym kroku algorytmu, w którym T przestaje by¢ podzbiorem T', warto±ciowanie T' spowodowaªoby, »e jedna z klauzul (ta powoduj¡ca powi¦kszenie T poza T') nie byªaby speªniona przez T'.

(39)

Teraz mo»emy sprawdzi¢ speªnialno±¢ caªej formuªy θ.

Twierdzimy, »e θ jest speªnialna wwtedy. gdy speªnia j¡

warto±ciowanie T powstaªe w czasie wykonywania opisanego algorytmu.

dowód:

Zaªó»my, »e w θ pozostaªa klauzula bez literaªu pozytywnego niespeªniona przez T, np (¬x1∨ ¬x2∨ ... ∨ ¬xm). To oznacza, »e {x1, x2, ..., xm} ⊆ T. st¡d wynika, »e »aden nadzbiór T nie mo»e speªni¢ tej klauzuli, a przecie» wiemy, »e wszystkie warto±ciowania speªniaj¡ce θ s¡ nadzbiorami T.

(40)

Poniewa» podana procedura mo»e by¢ wykonana w czasie wielomianowym, wi¦c udowodnili±my »e:

Twierdzenie

Problem HORNSAT jest w P.

(41)

Funkcje logiczne i sieci - CIRCUIT SAT i CIRCUIT VALUE

Denicja

Funkcj¦ f : {true, false}n7→ {true, false} nazywamy n-argumentow¡ funkcj¡ logiczn¡

Np. ∨, ∧, ⇔, ⇒ s¡ czterema spo±ród mo»liwych 16 binarnych (dwuargumentowych) funkcji logicznych, które przeksztaªcaj¡ pary warto±ci logicznych w {true, false}

(42)

Bardziej ogólnie, dowoln¡ formuª¦ rachunku zda« θ mo»na uwa»a¢

za n-argumentow¡ funkcj¦ logiczn¡ fθ, gdzie n = |X (θ)|, gdy» dla dowolnego warto±ciowania T zmiennych wystepuj¡cych w θ,

warto±¢ logiczna jest zdeniowana jako true, gdy T |= θ, oraz false, gdy T 6|= θ.

Formalnie, mówimy, »e formuªa θ ze zmiennymi x1, X2, ...xn wyra»a n-argumentow¡ funkcj¦ logiczn¡ f, gdy dla n-krotki warto±ci

logicznych t = (t1, t2, ..., tn), f(t)=true, gdy T |= θ oraz f(t)=false, gdy T 6|= θ, gdzie T (xi) = ti, dla i = 1, 2, ...n.

(43)

Dowolna n-argumentowa funkcja logiczna f mo»e by¢ wyra»ona jako formuªa θf zawieraj¡ca zmienne x1, ..., xn.

dowód:

Niech F b¦dzie podzbiorem zbioru {true, false}n, skªadaj¡cym si¦ z n-krotek warto±ci logicznych, dla których f = true.

Dla ka»dej t = (t1, ...tn) ∈ F niech Dt b¦dzie koniunkcj¡

wszytskich zmiennych xi, dla których ti = true, orz wszystkich negacji ¬xi, gdy ti = false.

Poszukiwana formuªa jest ostatecznie równa θf = ∨t∈FDt (jest ona od razu w dysjunktywnej formie normalnej).

Šatwo sprawdzi¢, »e dla dowolnego warto±ciowania T

odpowiedniego dla θ, T |= θf wwtedy, gdy f (t) = true, gdzie

(44)

Istnieje potencjalnie bardziej oszcz¦dny sposób reprezentowania funkcji ni» formuªy rachunku zda«  sieci logiczne.

Denicja

SIE‚ LOGICZNA jest grafem C = (V , E), którego wierzchoªki V = {1, ..., n} nazywamy BRAMKAMI grafu C.

(45)

Graf C ma do±¢ szczególn¡ sruktur¦ (SKŠADNIA SIECI).

1 nie ma w nim cykli → kraw¦dzie s¡ postaci (i,j) gdzie i<j.

2 wierzchoªki maj¡ stopie« wej±ciowy równy 0,1 lub 2.

3 ka»da bramka i ∈ V ma przypisany rodzaj s(i), gdzie s(i ) ∈ {true, false, ∨, ∧, ¬} ∪ {x1, ...xn}.

4 je»eli s(i) ∈ {true, false} ∪ {x1, ..., xn}, to stopie« wej±ciowy i wynosi 0 → nie ma kraw¦dzi wchodz¡cych → WEJ‘CIE GRAFU

5 je»eli s(i) = ¬ to i ma stopie« wej±ciowy 1

6 je»eli s(i) ∈ {∨, ∧} to stopie« wej±ciowy i musi byc równy 2

7 Wierzchoªek n (bramka w sieci o najwiekszym numerze, bez kraw¦dzi wychodz¡cych) jest nazywany WYJ‘CIEM GRAFU (bramk¡ wychodz¡c¡). Mo»e wystepowa¢ kilka takich bramek.

(46)

SEMANTYKA SIECI okre±la warto±¢ logiczn¡ sieci dla ka»dego warto±ciowania. Niech X(C) b¦dzie zbiorem wsystkich zmiennych logicznych, które pojawi¡ si¦ w sieci C. Powiemy, »e warto±ciowenie T jest odpowiednie dla sieci C, je»eli okre±la warto±ci wszystkich zmiennych z X(C).

Maj¡c dane takie T, deniujemt T(i)-warto±¢ logiczn¡ bramki i ∈ V. Warto±ci¡ sieci jest T(C) jest T(n), gdzie n jest bramk¡

wyj±ciow¡.

(47)

przykªad sieci nr 1 (wspólne podformuªy)

θ = ((x1∨ (x1∧ x2)) ∨ ((x1∧ x2) ∧ ¬(x2∨ x3)))

(48)

przykªad sieci nr 2 (konstrukcja intuicyjna)

tworzenie nowej bramki i, dla ka»dej podformuªy napotkanej w θ.

θ = (x3∧¬((x1∨x2)∧(negx1∨¬x2)))∨(¬x3∧(x1∨x2)∧(¬x1∨¬x2))

(49)

przykªad sieci 3 (bezbramkowa)

sie¢ 'bez zmiennych', czyli bez bramek, których rodzaj nale»y do X.

Jej warto±¢¹ logiczna T(C) jest niezale»na od warto±ciowania T.

(tu: false).

(50)

CIRUIT SAT

Problem obliczeniowy: Dla danej sieci C nale»y stwierdzi¢, czy istnieje warto±ciowanie T odpowiednie dla C, takie »e T(C)=true.

Problem CIRCUIT SAT jest obliczeniowo równowa»ny problemowi SAT (redukuje si¦ do SAT), a st¡d prawdopodobnie bardzo trudny (NP-complete).

(51)

CIRCUIT VALUE

Ten sam problem ale dla sieci bez bramek zmiennych. Faktycznie jest to pytanie o stan danej sieci (circuit value) ma algorytm w czasie wielomianowym  wystarczy obliczy¢ warto±ci wszystkich bramek w kolejno±ci zgodnej z ich numerami.

(52)

formuªy rachunku zda«  wyra»aj¡ funkcje logiczne sieci logiczne  obliczaj¡ funkcje logiczne

Powiemy, »e sie¢ logiczna C ze zmiennymi x1, x2, ..., Xn oblicza n-argumentow¡ funkcj¦ logiczn¡ f, je»eli dla ka»dej n-krotki warto±ci logicznych t = (t1..tn) zachodzi f (t) = T (C) gdzie warto±ciowanie T jest zdeniowane nastepuj¡co: T (xi) = ti, i =1, ...n

Ale jak du»a musi by¢ sie¢ w zale»no±ci od n?

Twierdzenie

Dla dowolnego n > 2 istnieje n-argumentowa funkcja logiczna f, taka »e istnieje sie¢ logiczna o co najwy»ej 22nn bramkach

(53)

Co nale»y wiedzie¢?

Wymieni¢ przykªady problemów fundamentalnych dla Algorytmiki

Zdeniowa¢ i opisa¢ rozwi¡zanie problemu REACHABILITY Zna¢ poj¦cie seci, przepªywu, przekroju, przepustowo±ci Zdeniowa¢ i opisa¢ rozwi¡zanie problemu MAX FLOW Rozumie¢ dziaªanie formuª rachunku zda«, umie¢ znale¹¢

warto±ciowanie odpowiednie dla danej formuªy

Zdeniowa¢ i opisa¢ problemy zwi¡zane z rachunkiem zda« - SAT, MAXSAT, HORNSAT, CIURCUIT-SAT, CIRCUIT VALUE

Cytaty

Powiązane dokumenty

Zadaniem Marka było odgadn ˛a´c t˛e licz- b˛e zadaj ˛ ac Adamowi pytania, na które mógł odpowiada´c jedynie TAK lub NIE.. Niestety Adam miał skłonno´sci

[r]

• Tak naprawde, trudne wydaj¡ si¦ jedynie (powi¡zane ze sob¡) pytania o istnienie lewych sprz¦-. »onych dla funktorów reduktu wzgl¦dem morzmu tras drzewiastych i o

W specjalnym studio mierzono czas reakcji na bodziec wzrokowy u n kierowców TIRów na chwilę przed oraz 15 minut po wypiciu 100 g wódki.. Na poziomie istotności α przetestuj

[r]

[r]

[r]

[r]