Konjunktive Normalform bilden?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du hast Dich schon bei der ersten Umformung vertan:



. ¬[ (a∧b) ∨ ¬c ] ∨ (c∧b) ∨ ¬a
= [ ¬(a∧b) ∧ c ] ∨ (c∧b) ∨ ¬a
= [ (¬a∨¬b) ∧ c ] ∨ (c∧b) ∨ ¬a

Du hast hier eine Disjunktion (Oder), bei der zwei Terme keine Literale sind. Such Dir einen davon aus und wende das Distributivgesetz an: (x∧y) ∨ ... ⇔ (x ∨ ...)∧(y ∨ ...). Ich nehme mal die eckige Klammer:

= [ (¬a∨¬b) ∨ (c∧b) ∨ ¬a ]∧[ c ∨ (c∧b) ∨ ¬a ]

Nun musst Du (rekursiv) beide eckige Klammern in eine KNF umformen. Davor kann man aber zusammenfassen und via „x∨(x∧y) ⇔ x“ vereinfachen:

= [ ¬a ∨¬b ∨ (c∧b) ]∧[ c ∨¬a ]

Die zweite Klammer steht schon in Literalform, aber die erste enthält noch die Konjunktion (c∧b). Das wird wieder zerlegt:

= [ ¬a ∨¬b ∨ c ]∧[ ¬a ∨¬b ∨ b ]∧[ c ∨¬a ]

Die erste Klammer wird von der dritten nach dem Schema „(x∨y)∧x ⇔ x“ absorbiert. Die mittlere Klammer kann entfallen, weil sie immer wahr ist. Also bleibt nur noch die dritte übrig:

= ( c ∨ ¬a )

Und ja, das ist eine KNF – sie hat eben nur einen Faktor.

(a∧b ∨ ¬c) ∨ (c∧b ∨ ¬a)
Vereinfachen:   (a ∧ b) ∨ ¬c ∨ (c ∧ b) ∨ ¬a
KNF:            ((a ∨ ¬c) ∧ (b ∨ ¬c)) ∨ ((c ∨ ¬a) ∧ (b ∨ ¬a))