Algorytmika - wykªad 5
dr Anna Sasak-Oko«
Uniwersytet Marii Curie-Skªodowskiej w Lublinie
28.10.2019
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
Problemy fundamentalne
REACHABILITY MAX FLOW
SATISFABILITY - SAT, MAX-SAT, HORNSAT, CIRCUIT SAT, CIRCUIT VALUE
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.
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.
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.
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 GB' (S jako stos, wybierany jest wierzchoªek ostatnio dodany).
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).
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).
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.
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.
przykªadowa sie¢ i jej pewien przepªyw (f)
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).
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.
> 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.
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)
przykªad zªej sieci dla algorytmu podstawowego
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 WSKIM GARDEM (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).
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.
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.
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)
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
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)
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.
wªasno±ci spójników logicznych
Niech θ1, θ2 b¦d¡ dowolnymi formuªami rachunku zda«, wtedy:
1 (θ1∨ θ2) ≡ (θ2∨ θ1) przemienno±¢
2 (θ1∧ θ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ª
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.
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
Powiemy, »e formuªa rachunku zda« θ jest SPENIALNA 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¡.
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
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ª.
DUGOCI formuªy jest dªugo±¢ odpowiadaj¡cego jej sªowa.
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
(*) 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.
Inne odmiany problemu speªnialno±ci:
MAX-SAT HORNSAT CIRCUIT SAT
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
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)
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.
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)
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'.
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.
Poniewa» podana procedura mo»e by¢ wykonana w czasie wielomianowym, wi¦c udowodnili±my »e:
Twierdzenie
Problem HORNSAT jest w P.
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}
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.
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
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.
Graf C ma do±¢ szczególn¡ sruktur¦ (SKADNIA 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 → WEJCIE 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 WYJCIEM GRAFU (bramk¡ wychodz¡c¡). Mo»e wystepowa¢ kilka takich bramek.
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¡.
przykªad sieci nr 1 (wspólne podformuªy)
θ = ((x1∨ (x1∧ x2)) ∨ ((x1∧ x2) ∧ ¬(x2∨ x3)))
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))
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).
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).
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.
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
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