29.01.2014 Aufrufe

MafI I: Logik & Diskrete Mathematik

MafI I: Logik & Diskrete Mathematik

MafI I: Logik & Diskrete Mathematik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Teilösung zum 2. Aufgabenblatt vom Donnerstag, den 22. Oktober 2009 zur Vorlesung<br />

<strong>MafI</strong> I: <strong>Logik</strong> & <strong>Diskrete</strong> <strong>Mathematik</strong><br />

(Autor: F. Hoffmann)<br />

1. Assoziativität Wir definieren einen Booleschen Operator ⊙ durch<br />

1 ⊙ 1 = 1, 1 ⊙ 0 = 0, 0 ⊙ 1 = 0, 0 ⊙ 0 = 1<br />

Ist dies ein assoziativer Operator? Begründung!<br />

2. DNF,KNF I Betrachten Sie den Booleschen Ausdruck:<br />

(x ∧ ¬y ∨ ¬z) ⇒ (x ∧ y)<br />

Geben Sie zunächst die vollständige Klammerung für diesen Ausdruck an. Bilden Sie<br />

dazu die kanonische DNF und die kanonische KNF.<br />

Lösung: Wegen der in der Reihenfolge ¬, ∧, ∨, ⇒ abnehmenden Bindungsstärke ergibt<br />

sich als vollständige Klammerung<br />

(((x ∧ (¬y)) ∨ (¬z)) ⇒ (x ∧ y))<br />

Wir belegen die Variablen x, y, z mit Booleschen Werten und interpretieren den Term.<br />

Es ergibt sich folgende Wertetabelle einer 3-stelligen Booleschen Funktion f, wobei<br />

zwecks Übersichtlichkeit einige Zwischenschritte aufgeführt sind:<br />

x y z α = x ∧ ¬y β = α ∨ ¬z x ∧ y β ⇒ x ∧ y<br />

0 0 0 0 1 0 0<br />

0 0 1 0 0 0 1<br />

0 1 0 0 1 0 0<br />

0 1 1 0 0 0 1<br />

1 0 0 1 1 0 0<br />

1 0 1 1 1 0 0<br />

1 1 0 0 1 1 1<br />

1 1 1 0 0 1 1<br />

Für die kanonische DNF ergibt sich:<br />

dnf(f) = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ z)<br />

Für die kanonische KNF erhalten wir:<br />

knf(f) = (x ∨ y ∨ z) ∧ (x ∨ ¬y ∨ z) ∧ (¬x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)


3. DNF,KNF II<br />

Finden Sie zu den folgenden Formeln semantisch äquivalente Terme in DNF bzw. KNF.<br />

(a) (p ⇒ (q ∨ r)) ∧ ¬q ∧ ¬r<br />

(b) ¬(p ⇔ q) ⇔ r<br />

(c) ¬r ⇒ (((p ∨ q) ⇒ r) ⇒ ¬q)<br />

Lösung: Wir formen den Term semantisch äquivalent um:<br />

¬r ⇒ (((p ∨ q) ⇒ r) ⇒ ¬q) ≡ r ∨ ¬(¬(p ∨ q) ∨ r) ∨ ¬q<br />

≡ r ∨ ((p ∨ q) ∧ ¬r) ∨ ¬q ≡ (r ∨ p ∨ q) ∧ (r ∨ ¬r) ∨ ¬q ≡ r ∨ p ∨ q ∨ ¬q<br />

Die erhaltene Formel ist sowohl in DNF wie auch in KNF.<br />

4. Vollständige Signaturen<br />

(a) Schreiben Sie a ⇒ (b ∧ c) unter ausschließlicher Verwendung des NOR-Operators.<br />

(Sie können ↓ als NOR–Operatorzeichen benutzen.)<br />

(b) Zeigen Sie, dass weder {∧}, {∨} noch {⇒} funktional vollständig sind.<br />

(c) Zeigen Sie, dass die Implikation ⇒ zusammen mit dem Term false funktional<br />

vollständig ist.<br />

Lösung: Wir wissen, dass die Signatur {¬, ∨} funktional vollständig ist. Weiterhin<br />

gelten die folgenden semantischen Äquivalenzen:<br />

¬x ≡ (false ⇒ x), x ∨ y ≡ (¬x ⇒ y) ≡ ((false ⇒ x) ⇒ y)<br />

Auf dieser Grundlage kann man jeden Term über der Signatur {¬, ∨} durch die<br />

neue Signatur semantisch äquivalent darstellen.<br />

(d) (Schwerer! ) Zeigen Sie, dass {⊕} keine vollständige Signatur ist.<br />

Tipp: Zeigen Sie zunächst, dass ⊕ assoziativ ist. Dann zeigen Sie, dass man zum<br />

Beispiel die konstante Funtion 1 nicht ausdrücken kann.<br />

Lösung: Es ist leicht mittels einer Wertetabelle gezeigt, dass ⊕ assoziativ ist, d.h.<br />

es gilt<br />

x ⊕ (y ⊕ z) ≡ (x ⊕ y) ⊕ z:<br />

x y z x ⊕ y y ⊕ z x ⊕ (y ⊕ z) (x ⊕ y) ⊕ z<br />

0 0 0 0 0 0 0<br />

0 0 1 0 1 1 1<br />

0 1 0 1 1 1 1<br />

1 0 0 1 0 1 1<br />

0 1 1 1 0 0 0<br />

1 0 1 1 1 0 0<br />

1 1 0 0 1 0 0<br />

1 1 1 0 0 1 1<br />

Wir können also auch von links klammern, egal wieviele Variablen durch ⊕ verknüpft<br />

sind.<br />

Angenommen wir haben eine Term über einer Variablenmenge, der die konstante<br />

Funktion 1 repräsentiert. Sei m die Anzahl der Vorkommen von Variablen im


Term. m kann gerade oder ungerade sein. Wenn wir jede vorkommende Variable<br />

mit dem Booleschen Wert b interpretieren, so ergibt sich:<br />

(. . . (b ⊕ b) ⊕ b) . . .) ⊕ b = 0 (1)<br />

} {{ }<br />

2k−mal<br />

(b ⊕ . . . ⊕ b)<br />

} {{ }<br />

2k−mal<br />

⊕ b = b (2)<br />

Wir sehen, dass -egal wie der Term aussieht- bei der Belegung aller Variablen mit<br />

0, der Term zu 0 ausgewertet wird. Widerspruch. Also ist die Signatur {⊕} nicht<br />

funktional vollständig.<br />

Hinweis: Man könnte jetzt vermuten, dass {⊕, true} funktional vollständig ist, da<br />

man die konstante Funktion 1 nun realisieren kann. Dem ist jedoch nicht so! Wer<br />

will, kann sich am Beweis versuchen. Die Kommutativität des ⊕–Operators ist<br />

dabei sehr hilfreich.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!