2. Aufgabenblatt Wintersemester 2012/2013 - Musterlösung Informatik A (Autor: Max Willert) 1. Logik im Alltag (a) Restaurant A wirbt mit dem Slogan Gutes Essen ist nicht billig!, das danebenliegende Restaurant B sagt Billiges Essen ist nicht gut!. Meinen sie nun dasselbe oder nicht? Begründen Sie Ihre Antwort! zu prüfen: Gutes Essen ist nicht billig. Billiges Essen ist nicht gut. Sei G : Das Essen ist gut. und B : Das Essen ist billig. Dann gilt für die 1. Aussage: G B und für die 2. Aussage: B G (G B) ( G B) ( B G) (B G) Fazit: Beide Aussagen meinen das Selbe. (b) Ein 100-jähriger wird nach seinem Rezept fürs Altwerden gefragt. Seine Antwort: Hier sind meine Essregeln. Wenn man kein Bier zu einer Mahlzeit trinkt, dann esse man Fisch. Wenn man Bier und Fisch zu einer Mahlzeit hat, dann verzichte man auf Eiscreme. Wenn man Eiscreme hat oder Bier meidet, dann esse man keinen Fisch. Das kann man auch kürzer sagen! Wie und warum? Das Rezept fürs Altwerden: t = ( B F ) (B F E) (E B F ) wobei B : Man trinke Bier. F : Man esse Fisch. E : Man esse Eiscreme. Vereinfachung von t durch Anwenden der Gesetze der Booleschen Algebra: t = ( B F ) (B F E) (E B F ) (B F ) ( B F E) ( E B F ) (B F ) ( F ( B E)) ( F ( E B)) (B F ) ( F (( B E) E B)) (B F ) ( F B E B E E B) (B F ) ( F 0 E B) (B F ) ( F E B) (B F ) (F F ) ( E B) (F E B) B F 0 E B B E F B F ((B E) (B E F )) B F B E
B ( F E) B (F E) t Man trinke Bier und esse niemals Fisch und Eiscreme gleichzeitig. 2. Vollständige Signaturen (a) Zeigen Sie, dass weder { }, { } noch { } funktional vollständige Signaturen sind. Eine Funktion f : B n B mit f(1, 1,..., 1) = 0 kann nicht dargestellt werden, da Terme, die nur aus Variablen und bestehen, für die Belegung β(x i ) = 1 ( 1 i n) immer 1 ergeben werden. Somit kann jedes solche f nicht dargestellt werden und daher ist { } funktional unvollständig. Die Signaturen { } und { } sind ebenfalls funktional unvollständig (Begründung ist analog). (b) Drücken Sie den NOR-Operator semantisch äquivalent mittels des NAND- Operators aus und die Äquivalenz durch NAND-Operatoren. x x x x y (x y) (x y) (x y) (x y) x y ( x y) x y (x x) (y y) Wahrheitstabelle für und : x y x y x y 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 1 Aufstellen der DNF: dnf(x y) = x y (x y) ((x x) (y y)) ((x x) (y y)) ((x x) (y y)) Also: x y ((x x) (y y)) ((x x) (y y)). dnf(x y) = (x y) ( x y) [(x ( y) (x y)] [((x x) (y y)) )((x( x) (y y))] ([(x ) [(x y) (x y)] [(x y) (x y)] x) (y y)] [(x x) (y y)] ( ) ) [(x x) (y y)] [(x x) (y y)]
( ) ( ([(x Also: x y [(x y) (x y)] [(x y) (x y)] x) (y y)] [(x x) (y y)] ) ( [(x x) (y y)] [(x x) (y y)] )) (c) Zeigen Sie, dass Σ := {, } funktional vollständig. Beweis: Seien x und y Boolesche Variablen. Da x x 1 lässt sich die atomare Aussage 1 darstellen. Wegen 1 x x lässt sich die Negation darstellen. Und schließlich wegen ( x) y x y x y ist auch die Disjunktion darstellbar. Damit kann man mit Σ die Operatoren der vollständigen Signatur {, } darstellen und somit ist Σ funktionale vollständig. 3. Majoritätsfunktion Wir betrachten für n > 1 die n-stellige Boolesche Funktion f n : B n B, die den Wert 1 annimmt, falls mindestens die Hälfte der Eingabe aus Einsen besteht. Dies ist die n-stellige Majoritätsfunktion. (a) Geben Sie die Wertetabelle der 3-stelligen Majoritätsfunktion an. x 1 x 2 x 3 f(x 1, x 2, x 3 ) 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 (b) Leiten Sie aus der Wertetabelle die kanonische konjunktive Normalform knf(f 3 ) und die kanonische disjunktive Normalform dnf(f 3 ) ab. dnf(f 3 ) = ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 ) knf(f 3 ) = ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 )
4. Boolesche Gesetze Vereinfachen Sie die folgenden Terme durch Anwendung der Booleschen Gesetze so weit wie möglich: t 1 = ((x z) ( x z)) (z ( x y)) t 2 = (x (y z)) ((x y) (x z)) t 1 = ((x z) ( x z)) (z ( x y)) (( z x) ( z x)) (z ( x y)) (2 Kommutativgesetz) ( z (x x)) (z ( x y)) (Distributivgesetz) ( z 1) (z ( x y)) (Komplementarität) z (z ( x y)) (Neutralität) z (z ( x y)) (Involution) z (Absorption) t 2 = (x (y z)) ((x y) (x z)) ( x ( y z)) ( ( x y) ( x z)) ( x ( y z)) ( x y ( x z)) (DeMorgan) ( x ( y z)) ( x y ( x z)) (2 DeMorgan) (x (y z)) (x y ( x z)) (3 Doppelte Verneinung) ((x (y z)) (x y)) ( x z) (Assoziativgesetz) x ((y z) y) ( x z) (Distributivgesetz) x (y ( z y)) ( x z) (Assoziativgesetz) x (y ( y z)) ( x z) (Kommutativgesetz) x ((y y) z) ( x z) (Assoziativgesetz) x (0 z) ( x z) (Komplementarität) (x 0) ( x z) (Dominanz) x ( x z) (Neutralität) (x x) z (Assoziativgesetz) 1 z (Komplementarität) 1 (Dominanz) 5. Erfüllbarkeit Geben Sie 3 Boolesche Terme in den Variablen x, y, z an, von denen je zwei gleichzeitig erfüllt werden können, aber nicht alle 3 gleichzeitig. In jedem der Terme sollen alle 3 Variablen vorkommen. Geht es auch schon mit zwei Variablen? Tipp: Veranschaulichen Sie sich die Aufgabe im 3-dimensionalen Würfel. Wir definieren uns 3 boolesche Funktionen f 1, f 2, f 3 und bestimmen dazu dann die jeweilige dnf.
x y z f 1 (x, y, z) f 2 (x, y, z) f 3 (x, y, z) 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 1 Offensichtlich sind bei jeder Belegung der Variablen x, y, z immer genau 2 Funktionen wahr und somit erfüllen auch unsere Terme die Voraussetzungen. t 1 = dnf(f 1 ) = ( x y z) ( x y z) ( x y z) ( x y z) t 2 = dnf(f 2 ) = ( x y z) ( x y z) (x y z) (x y z) (x y z) (x y z) t 3 = dnf(f 3 ) = ( x y z) ( x y z) (x y z) (x y z) (x y z) (x y z) Nun probieren wir es mit 2 Variablen: Wir definieren uns wieder 3 boolesche Funktionen f 1, f 2, f 3 und bestimmen dazu dann die jeweilige knf. x y f 1 (x, y, z) f 2 (x, y) f 3 (x, y) 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 Offensichtlich sind bei jeder Belegung der Variablen x, y immer genau 2 Funktionen wahr und somit erfüllen auch unsere Terme wieder die Voraussetzungen. t 1 = knf(f 1 ) = x y t 2 = knf(f 2 ) = ( x y) ( x y) t 3 = knf(f 3 ) = (x y) (x y)