Processing math: 100%

Postacie normalne

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 pq zbudujemy formułę

(pq)(¬pq)(¬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

lillik

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

  1. pq,
  2. p(qp),
  3. (pq)p,
  4. (pab)(¬q¬a)(r¬b¬c)(cp)),
  5. (pq)(rs).

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ł

  1. (¬pq)(¬q¬r)(¬q¬p)
  2. (¬pq)(¬q¬r)(¬qp)

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.