Postacie normalne
Definicja 6.1
Literałem nazywamy formułę, która jest zmienną zdaniową lub negacją zmiennej zdaniowej.
Zauważmy, że formuła konstruowana w dowodzie twierdzenia 5.2 jest w pewnej standartowej postaci - formuła jest alternatywą formuł, które są koniunkcjami literałów. Przypomnijmy, że dla p⇒q zbudujemy formułę
(p∧q)∨(¬p∧q)∨(¬p∧¬q).
Definicja 6.2
Formuła jest w dyzjunktywnej postaci normalnej (DNF), jeśli jest alternatywą formuł które są koniunkcjami literałów. Czyli wtedy, gdy jest postaci
ϕ1∨⋯∨ϕn
oraz każda z formuł ϕi jest koniunkcją literałów, czyli jest postaci
lil∧⋯∧lik
dla pewnych literałów lil,…,lik
Twierdzenie 6.3
Dla każdej formuły istnieje równoważna formuła w DNF.
Dowód
Wynika bezpośrednio z konstrukcji w dowodzie twierdzenia 5.2.
Definicja 6.4
Formuła jest w koniunktywnej postaci normalnej (CNF), jeśli jest koniunkcją formuł które są alternatywami literałów.
Twierdzenie 6.5
Dla każdej formuły istnieje równoważna formuła w CNF.
Dowód
Niech Φ będzie dowolną formułą. Z twierdzenia twierdzenia 6.3 wynika, że dla formuły ¬Φ istnieje dyzjunktywna postać normalna. Niech Ψ będzie taką formułą. Wtedy mamy
Φ≡¬Ψ.
Stosując wielokrotnie prawa de'Morgana dla formuły ¬Ψ otrzymamy formułę w koniunktywnej postaci normalnej. Indukcyjny dowód tego faktu pomijamy.
Ćwiczenie 6.1
Jak sprawdzić, czy formuła w CNF jest tautologią?
Ćwiczenie 6.2
Dla poniższych formuł wypisz ich najkrótsze równoważne formuły w CNF
- p⇔q,
- p⇒(q⇒p),
- (p⇒q)⇒p,
- (p∨a∨b)∧(¬q∨¬a)∧(r∨¬b∨¬c)∧(c∨p)),
- (p∧q)∨(r∧s).
Spełnialność
Spośród wszystkich formuł wyróżnimy też zbiór formuł spełnialnych.
Definicja 6.6
Formuła jest spełnialna, jeśli istenieje takie wartościowanie, które wartościuje tą formułę na 1.
- Formuły spełnialne są w ścisłym związku z tautologiami.
Twierdzenie 6.7
Formuła ϕ jest tautologią wtedy i tylko wtedy, kiedy formuła ¬ϕ nie jest spełnialna.
Dowód
Przypuśćmy, że formuła ϕ jest tautologią. Wtedy dla każdego wartościowania v mamy v(ϕ)=1. Stąd otrzymujemy, że dla każdego wartościowania v mamy v(¬ϕ)=0, a więc nie istnieje wartościwanie, które spełnia ¬ϕ, czyli formuła ta nie jest spełnialna.
Przypuśćmy, że formuła ¬ϕ nie jest spełnialna, czyli nie istnieje wartościowanie v takie, że v(¬ϕ)=0. Wynika stąd, że dla każdego wartościowania mamy v(ϕ)=1, a więc ϕ jest tautologią.
Ćwiczenie 6.3
Sprawdź spełnialność następujących formuł
- (¬p∨q)∧(¬q∨¬r)∧(¬q∨¬p)
- (¬p∨q)∧(¬q∨¬r)∧(¬q∨p)
Formuły z powyższego zadania, poza tym że są w koniunktywnej postaci normalnej, to jeszcze występujące w nich klauzule mają dokładnie dwa literały. Problem spełnialności takich formuł jest nazywany w literaturze problemem 2SAT. Dla takich formuł istnieją szybkie algorytmy pozwalające ocenić ich spełnialność. Dopuszczanie klauzul o długości 3, bardzo komplikuje problem. Do dziś nie wiadomo czy dla takich formuł istnieją szybkie algorytmy oceniające spełnialność. Więcej na ten temat można się dowiedzieć z wykładu Teoria złożoności.