PD. Dr. Pradumn Shukla Marlon Braun Micaela Wünsche Dr. Friederike Pfeiffer-Bohnen Dr. Lukas König Institut für Angewandte Informatik und Formale Beschreibungsverfahren Grundlagen der Informatik II Übungsblatt: 4, WS 7/8 mit Lösungen Besprechung ab:. Deember 27 Forum: http://info2.aifb.kit.edu/qa Klicken Sie auf die ID AU-X-Y im Aufgaben-Header um um richtigen Thread u gelangen. Anmerkung um XWiard (http://www.wiard.de): Auf den Übungsblättern sind manchmal Links (QR-Codes) angegeben, die u dem in der Aufgabe behandelten Konept (etwa dem dort dargestellten endlichen Automaten) auf der XWiard-Website führen. Die mit Skript überschriebenen Links leiten einfach u dem jeweiligen endlichen Automaten (oder sonstigen Konept) weiter, wo Sie damit herumspielen können. Die mit MiniDüberschriebenen Links führen u einer kleinen 2-Minuten-Aufgabe, die Sie usätlich mit dem XWiard lösen können. Tipp: Sie können auch die angegebene ID (in der Form ID-234) ins Skriptfeld eingeben. Aufgabe AU-4- INTRAKTIV(a) Kompleität Bekanntermaßen ist das S AT-Problem NP-vollständig. In dieser allgemeinen Variante liegen die aussagenlogischen Formeln in beliebiger Form vor. (a) Wie hoch ist der Aufwand, wenn man die Formelstruktur in der Art einschränkt, dass die Formeln in disjunktiver Normalform vorliegen ( DNF-SAT )? i
Zur rinnerung: in Boolescher Ausdruck hat die konjunktive (disjunktive) Normalform, wenn er aus Klauseln k,..., k n besteht, die alle mit UND (ODR) verknüpft sind. ine Klausel k i ist dabei eine ODR- (UND-) Verknüpfung von Literalen l i,..., l im (für m, i, i,..., i m, n N). in Literal kann eine Boolesche Variable oder ihre Negierung sein. Der Aufwand ist linear, da nur ein einiger wahrer Konjunktionsterm impliiert, dass die gane Formel wahr ist. Also kann man einfach alle Konjunktionsterme der Reihe nach überprüfen. Dabei ist jede einelne Überprüfung einfach, da die Literale alle mit UND verknüpft sind, also ein einiges falsches Literal impliiert, dass die gane Klausel falsch ist. ntsprechend ist bei der KNF-Variante die Frage, ob es eine nicht-erfüllende Belegung gibt, einfach. (b) Wenn die DNF-Variante leichter ist, warum ist die allgemeine Variante nicht genauso leicht, da es ja u jeder Formel eine äquivalente in DNF gibt? Die Umwandlung in DNF kann eponentiellen Aufwand haben. Aufgabe 2 HU-4- Für uhause NP-Vollständigkeit In der Vorlesung wurde das Problem CLIQU vorgestellt. s beeichnet die folgende Fragestellung: Sei G = (V, ) ein ungerichteter Graph mit der Knotenmenge V und der Kantenmenge ; sei k eine natürliche Zahl; gibt es in G mindestens k Knoten, die paarweise durch eine Kante verbunden sind, also eine Clique bilden? Zum Beispiel bilden im abgebildeten Graphen die Knoten a, b, c und d die größte Clique mit k = 4. Formal ist CLIQU die Menge aller Graphen mit ugehöriger Zahl k, sodass der jeweilige Graph eine Clique der Größe k besitt: CLIQU = {(G, k) V V mit V = k : v, v 2 V : (v, v 2 ) } Die formale Fragestellung ist, ob ein gegebenes Tupel aus Graph G und Zahl k in der Menge CLIQU enthalten ist oder nicht. ii
a) s sei bereits bekannt, dass S AT pol CLIQU gilt. Zeigen Sie: CLIQU ist NPvollständig. Zu eigen bleibt: CLIQU NP. ine nichtdeterministische Turingmaschine kann eine Knoten-Teilmenge V V mit V = k raten und in Polnomialeit verifiieren, ob die Knoten eine Clique bilden. b) Das Problem INDS T ( Independent set ) ist definiert als die Frage, ob es in einem Graphen eine Anahl von Knoten gibt, die paarweise nicht durch Kanten verbunden sind, also: INDS T = {(G, k) V V mit V = k : v, v 2 V : (v, v 2 ) }. Zeigen Sie unter Ausnutung des Resultats aus a), dass INDS T ebenfalls NP-vollständig ist. () INDS T NP: ine nichtdeterministische Turingmaschine kann eine Knoten- Teilmenge V V mit V = k raten und in Polnomialeit verifiieren, dass die Knoten alle nicht miteinander verbunden sind. (2) CLIQU pol INDS T: Sei (G, k) eine ingabe für CLIQU. Die Funktion f : Graph N Graph N : f (G, k) = (G, k) mit G = (V, ) und v, v 2 V : (v, v 2 ) (v, v 2 ) ist polnomialeitberechenbar. ( f ereugt also den kanteninversen Graphen.) s gilt offensichtlich: (G, k) CLIQU (G, k) INDS T Damit ist geeigt, dass INDS T NP-schwer ist, da wir das NP-vollständige Problem CLIQU auf INDS T polnomialeit-reduieren konnten. (ine Rückführung der Ausgabe von INDS T auf die Ausgabe von CLIQU ist hier nicht notwendig, da als Lösung nur wahr oder f alsch herauskommen kann.) iii
Aufgabe 3 INTRAKTIV(a) AU-4-2 Binar Decision Diagram (BDD) a) reugen Sie ein BDD u der durch den Baum gegebenen Funktion f : B 3 B. / Skript ID-885 b) Lesen Sie aus dem berechneten BDD einen Booleschen Ausdruck in disjunktiver Normalform (DNF) ab. iv
f (,, ) = + + Aufgabe 4 HU-4-4 Für uhause BDD Gegeben sei die Funktion f : B 3 B mit,, B : f (,, ) = ( ) ( + ) (wobei das eklusive OR (XOR) ist, d. h. a b = a b + ab ). Tragen Sie die Werte der Funktion in die angegebene Wahrheitstabelle ein und ereugen Sie das ugehörige BDD mit Variablenreihenfolge. ( ) ( + ) f (,, ) v
/ / / / / / Skript ID-99 Aufgabe 5 HU-4-2 CMOS Gegeben sei die Boolesche Funktion f un: B 3 B mit: f (A, B, C) = ( A B) C Zeichnen Sie in das vorgegebene Feld eine CMOS-Schaltung für f un. Hinweis: Versuchen Sie, die Funktion direkt in CMOS abubilden, ohne elementare Bausteine wie NOT, NAND oder NOR u verwenden. vi
V DD A B fun(a,b,c) C GND Aufgabe 6 AU-4-3 INTRAKTIV(a) Schaltnete ntwickeln Sie einen Vollsubtrahierer. Dieser hat 3 ingänge, bestehend aus dem Bit a, dem Bit b, welches von a abgeogen wird, und dem Übertrag ü aus eventuell uvor durchgeführten Subtraktionen. Die wei Ausgänge sollen das rgebnis der Subtraktion und den Übertrag darstellen. Verwenden Sie für Ihren Vollsubtrahierer nur die Bausteine OR, AND, NOT, NAND, NOR und XOR. vii
Wertetabelle: a b ü rgebnis Übertrag Ü Wie aus der Wertetabelle ersichtlich ist, kann das rgebnis wie folgt dargestellt werden: Der Übertrag Ü lässt sich wie folgt darstellen: (a, b, ü) = a b ü Ü(a, b, ü) = a b ü + a b ü + a bü + abü = a (b ü + b ü ) + b ü = a (b ü) + b ü Daraus ergibt sich die folgende Schaltung: a Ü b ü 2k+ 2k+ Skript ID-886 (Die Schaltkreise sind im XWiard augenblicklich noch im Beta-Stadium; das heißt, man kann sie nur anschauen, aber nicht simulieren o. ä. Wir arbeiten dereit an weiteren Funktionen. Zur Simulation von Schaltkreisen können Sie Logisim oder Logiflash verwenden.) viii
Aufgabe 7 HU-4-3 Für uhause Schaltnete Gegeben sei die Funktion g : B 3 B 3 : (a, b, c) (a b, a c, b c) (wobei das eklusive OR (XOR) ist, d. h. a b = a b + ab ). (a) Stellen Sie diese Funktion als Schaltnet mit drei ingängen und drei Ausgängen dar. s stehen Ihnen hierfür nur Gatter vom Tp AND, OR und NOT ur Verfügung. a b ab a b c b c bc a b + ab b c + bc a c + ac a c ac (b) s ist möglich, diese Schaltung unter Verwendung von beliebig vielen AND und OR, aber nur 2 NOT Gattern u realisieren. Wie sieht diese Schaltung aus? i
a bc 3. 3.2 4 5 6. 6.2 3.3 6.3 2 7. 7.2 7.3 7.4 7.5 7.6 8. 8.2 8.3 a b a c b c
: a b c 2 : (a b c) = a + b + c 3. : (a + b + c ) a b = a b c 3.2 : (a + b + c ) a c = a b c 3.3 : (a + b + c ) b c = a b c 4 : a b c + a b c + a b c + a b c 5 : (a b c + a b c + a b c + a b c ) = a b c + a b c + a b c + a b c 6. : a + b c 6.2 : b + a c 6.3 : c + a b 7. : a (b + a c ) = a b 7.2 : b (a + b c ) = a b 7.3 : a (c + a b ) = a c 7.4 : c (a + b c ) = a c 7.5 : b (c + a b ) = b c 7.6 : c (b + a c ) = b c 8. : (a b ) + (a b) = a b 8.2 : (a c ) + (a c) = a c 8.3 : (b c ) + (b c) = b c i
Aufgabe 8 AU-4-4 (a) Welche Sprache L(A) erkennt der rechts abgebildete endliche Automat A = ({, }, {s, s, s, s, s }, δ, s, {s })? L(A) = {w w {, } } (b) rgänen Sie das unten abgebildete Schaltwerk so, dass eine am Ausgang e 3 genau dann anliegt, wenn die bisher über erfolgte ingabe w lement der Sprache L(A) ist. Hinweise: Das Schaltwerk erhält pro Takt T über ein Zeichen von w. Pro Takt erhöht sich also die Länge w um. Assoiieren Sie jeden Zustand von A mit Zuständen der drei Flipflops (FF), sodass der Zustand s abc (a, b, c {, }) kodiert ist durch Seten von FF auf c, FF auf b und FF 2 auf a. Schaltwerke s s s s s Skript ID-964 ii
T q q > HA r 2 s e 3 q q q q HA HA > s r q q q q q q HA HA > s r q q Skript ID-923 (Die Schaltkreise sind im XWiard augenblicklich noch im Beta-Stadium; dieser recht umfangreiche Schaltkreis sieht noch iemlich unübersichtlich aus. Wir arbeiten an Verbesserungen.) Fröhliche Weihnachten! Skript ID-9994 iii