jak przekonwertować (a ∧ b) ↔ c do postaci CNF?

Sep 14 2020

Po sporządzeniu tabeli prawdy wymyśliłem:

(¬ (a ∧ b) ∨ c) ∧ ((a ∧ b) ∨ c) ∧ ((a ∧ b) ∨ ¬ c)

Ale teraz trudno mi przekształcić to w CNF. Nie mam pojęcia, jak zmienić ∧ tak, aby stały się ∨ w klauzulach.

To, co robię, to używanie (a ∧ b) ic do utworzenia CNF. Ale to mnie do niczego nie prowadzi.

Skonsultowałem się z moimi kolegami, którzy powiedzieli, że zamiast tego powinienem używać a, b i c do utworzenia CNF. Myślę, że mają rację, ale nie wiem, dlaczego się mylę.

Czy powinienem używać tylko zdań atomowych zamiast zdania złożonego? Czy to dlatego uderzam tutaj w ceglaną ścianę?

Gdybym użył zdań atomowych, czy nie miałoby to innego znaczenia niż użycie zdania złożonego (a ∧ b)?

Proszę pomóż. Dzięki wielkie.

Odpowiedzi

1 ParclyTaxel Sep 13 2020 at 23:40

$(a\land b)\leftrightarrow c$ staje się $$(a\land b\land c)\lor(\neg a\land\neg c)\lor(\neg b\land\neg c)$$To jest DNF. Aby uzyskać CNF, rozdzielamy OR na AND, usuwając kombinacje zawierające takie rzeczy jak$a\lor\neg a$ oraz klauzule zawarte w innych klauzulach: $$(a\lor\neg c)\land(b\lor\neg c)\land(c\lor\neg a\lor\neg b)$$