Theoretische und technische Informatik - ganz praktisch - Letzte Fragen & Antworten in AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=qa&qa_1=%C3%BCbungsblatt-4&qa_2=au-4-1 Powered by Question2Answer Beantwortet: NP-Vollständigkeit https://info2.aifb.kit.edu/qa/index.php?qa=7494&qa_1=np-vollst%C3%A4ndigkeit&show=7519#a7519 <p>Hallo,</p><p>Warum es NP ist, ist vermutlich klar, oder? Der zweite Teil ist hier vermutlich das Problem.</p><p>Ein Beispiel:</p><p><img alt="" src="https://info2.aifb.kit.edu/qa/?qa=blob&amp;qa_blobid=5360501562305834283" style="height:236px; width:600px"><br>&nbsp;</p> AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=7494&qa_1=np-vollst%C3%A4ndigkeit&show=7519#a7519 Sat, 22 Jan 2022 15:24:33 +0000 Beantwortet: Tut 4 - A3 https://info2.aifb.kit.edu/qa/index.php?qa=7307&qa_1=tut-4-a3&show=7309#a7309 <p>Hallo,</p><p>in dieser Aufgabe geht es darum, einen binären Vollsubtrahierer aufzustellen. Dabei bezeichnet E das&nbsp;<strong>Ergebnis-Bit</strong>, welches von den Eingaben a und b (die Subtrahenden) und ü, dem Übertrags-Bit, abhängt.</p><p>Wir füllen zunächst die Tabelle aus, bei der wir jeweils a-b-ü&nbsp;rechnen und das Ergebnis in E speichern - falls wir im negativen landen, speichern wir außerdem eine 1 im Übertragsbit. Das kommt so zustande, da wir quasi schriftlich subtrahieren. So erhält man dann folgende Tabelle:</p><p><img alt="" src="https://info2.aifb.kit.edu/qa/?qa=blob&amp;qa_blobid=6938831487761323222" style="height:418px; width:395px"></p><p>Diese Tabelle deckt einfach nur alle möglichen Szenarien an Eingaben für a, b und ü ab. Jetzt betrachten wir die Zeile des Ergebnisbits E: Wir versuchen zu erkennen, über welche logische Verknüpfung wir dieses jeweils pro Zeile erzeugen können - und nehmen uns dabei das XOR Gatter zur Hilfe. Die Formel für E lautet also nicht wie von dir beschrieben <em>a + b + ü</em>, sondern <em>a XOR b XOR ü</em></p><p><em><img alt="" src="https://info2.aifb.kit.edu/qa/?qa=blob&amp;qa_blobid=8363378249487879408" style="height:70px; width:431px"></em></p><p>Zur Erinnerung: XOR ist das Gatter, was eine 1 zurückgibt, wenn eine der beiden Eingaben 1 ist, aber nicht beide. Schauen wir also beispielsweise mal Zeile 3 unserer Tabelle an: Wir vergleichen zunächst a und b in einem XOR miteinander, also 0 und 1 -&gt; dieser XOR ist "wahr", liefert also eine 1 zurück. Die zurückerhaltene 1 vergleichen wir nun &nbsp;in einem zweiten XOR mit dem Übertragsbit ü, also der 0. Wir vergleichen also wieder 1 und 0 im XOR und erhalten eine 1 zurück, da die XOR-Bedingung erfüllt ist. So funktioniert das für alle Zeilen der Tabelle, probier es gerne als Übung mal für ein paar Zeilen aus :)</p><p>LG,</p><p>Martin (Tutor)</p> AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=7307&qa_1=tut-4-a3&show=7309#a7309 Thu, 11 Mar 2021 10:27:21 +0000 Beantwortet: BDD - Tut 4 (Aufgabe 2a) https://info2.aifb.kit.edu/qa/index.php?qa=7306&qa_1=bdd-tut-4-aufgabe-2a&show=7308#a7308 <p>Hallo,</p><p>um deine Frage zu beantworten, müssen wir uns nochmal anschauen, wie das BDD aus dem Baum entstanden ist:</p><p><img alt="" src="https://info2.aifb.kit.edu/qa/?qa=blob&amp;qa_blobid=16518046480785665801" style="height:238px; width:600px">Im dritten Schritt sieht man, dass wir bei Eingabe einer 1 in x zum <strong>rechten y</strong> gehen - dieses ist aufgrund seiner verschiedenen Nachfolgekonfigurationen&nbsp;<u>nicht</u>&nbsp;identisch mit dem linken y! Jedoch sehen wir, dass wir vom rechten y aus immer im rechten z landen werden, egal ob wir eine 0 oder eine 1 eingeben. Aufgrund dessen ist das rechte y überflüssig, wir können immer direkt von x ins rechte z gehen, wenn wir eine 1 einlesen.</p><p>Eine Kante (0 / 1) von x zum linken y zu zeichnen wäre nicht richtig, da das linke y andere Folgekonfigurationen hat. Deutlich wird das vielleicht an einem Beispiel:</p><p>Wir betrachten die Eingabefolge (1,0,1), mit der wir immer am Ende eine 1 erhalten sollten (siehe Ausgangsgraph). Wenn wir jetzt aber die Kante (0 / 1) von x zum linken y hinzufügen, wie von dir vorgeschlagen, erhalten wir für eben diese Eingabe eine 0.</p><p>Ich hoffe das hat es deutlich gemacht, bei Nachfragen melde dich gerne.</p><p>Beste Grüße,</p><p>Martin (Tutor)</p> AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=7306&qa_1=bdd-tut-4-aufgabe-2a&show=7308#a7308 Thu, 11 Mar 2021 10:12:59 +0000 Beantwortet: Inverter https://info2.aifb.kit.edu/qa/index.php?qa=6229&qa_1=inverter&show=6230#a6230 Hallo,<br /> <br /> also sind alle deine Variablen (in unserem Fall A, B &nbsp;und C) bereits in deiner Funktion negiert vorhanden, kannst du aufgrund der Eigenschaften von p-Mos und n-Mos (wie in der Antwort zuvor schon beschrieben) die Leitungen von A, B und C direkt verwenden und benötigst keinen Invertierer.<br /> <br /> Das bedeutet du musst nur für Variablen die ohne Negation in der Funktion vorkommen einen Inverter einbauen. Also wenn die Funktion z.b. lauten würde:<br /> <br /> f(A,B,C) = (nichtA oder nichtB) und C<br /> <br /> Dann müsstest du C zunächst Invertieren und könntest dann erst die Leitung nutzen.<br /> <br /> Schau dir hierzu vielleicht mal die Aufgabe CMO-AC c) an. Hier siehst du das wir in der Lösung für C zunächst einen Invertierer einbauen und erst danach die Leitung weiterverweden.<br /> <br /> Hoffe es wurde jetzt ein wenig verständlicher :)<br /> <br /> Beste Grüße,<br /> <br /> Marius (Tutor) AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=6229&qa_1=inverter&show=6230#a6230 Fri, 26 Jan 2018 12:42:07 +0000 Beantwortet: Tut 4/ A8 https://info2.aifb.kit.edu/qa/index.php?qa=6221&qa_1=tut-4-a8&show=6228#a6228 <p> Hallo,</p> <p> ich vermute, dass sich deine Frage auf den Aufgabenteil b) bezieht.</p> <p> In der Aufgabe ist gefordert, den jeweiligen Zustand in welchem sich der Automat bei den Eingaben befindet mit den Flip Flops zu kodieren.</p> <ul> <li> Hierbei wird die 1. Stelle der dreistelligen binären Zahl durch FF 2 kodiert. Die 2. Stelle durch FF 1 und die dritte Stelle durch FF 0.</li> <li> Das RS-Flip Flop lässt sich durch eine 1 am Eingang s auf 1 stellen und durch eine 1 am Eingang r auf eine 0 stellen. Da im Eingang r in dieser Aufgabe immer die Negation des bei s eintreffenden Signals ankommt, wird ein Flip Flop auf null gesetzt wenn eine 0 den den Flip Flop erreicht und auf 1 gesetzt, wenn eine 1 den Flip Flop erreicht.</li> <li> Der Automat stellt eine Sprache dar, in welcher ein Wort am Ende mindestens 4 Einsen enthalten muss um zur Sprache zu gehören. Mit einer der Eingabe 1, geht der Automat in den jeweils nächsten Zustand über. Die Eingabe gehört zur Sprache wenn die Flip Flops die Werte FF2=1 FF1= 0 FF0=0. Dementsprechend hat e3 den Wert 1 wenn FF2 den Wert 1 hat.</li> </ul> <p> Mit diesem Wissen kann man nun das Schaltwerk ergänzen. Wie man sieht befindet sich vor jedem "Und" 4 Eingänge: E, die Eingabe; q0, Wert des FF 0; q1, Wert des FF1 und q2 Wert des FF2. Auch kann man sehen, dass für jedes "Und" verschiedene q negiert sind. Nun schaust du durch mit welcher Belegung die "Und"s den Wert 1 weitergeben:</p> <p> Von oben nach unten:</p> <ul> <li> 1. Und: E = 1&nbsp; q2 = 0&nbsp; q1 = 0&nbsp; q0 = 0<br> (Dieses "Und" gibt also den Wert 1 weiter, wenn die Eingabe 1 ist und der Automat sich im Zustand s000 befindet.</li> <li> 2. Und: E = 1&nbsp; q2 = 0&nbsp; q1 = 0&nbsp; q0 = 1</li> <li> 3. Und: E = 1&nbsp; q2 = 0&nbsp; q1 = 1&nbsp; q0 = 0</li> <li> 4. Und: E = 1&nbsp; q2 = 0&nbsp; q1 = 1&nbsp; q0 =1</li> <li> 5. Und: E = 1&nbsp; q2 = 1&nbsp; q1= 0&nbsp;&nbsp; q0 = 0</li> </ul> <p> Jedes "Und" leitet also den Wert 1 weiter, wenn die Eingabe 1 ist und sich der Automat im jeweiligen Zustand befindet. Jetzt musst du nur noch diese "Und"s so mit den "Oder"s verbinden, dass der im Automat nächste Zustand mit den Flip Flops kodiert wird.</p> <p> Beispiel:</p> <ul> <li> 1. Und: Wir bekommen die Eingabe E = 1 und befinden uns im Zustand s000. Damit wäre der Folgezustand s001. Deswegen verbinden wir dieses "Und" mit dem untersten "Oder". Damit die nachfolgende Flip Flop Belegung q2 = 0 q1 = 0 q0 = 1 ist und damit den Zustand s001 zeigt.</li> </ul> <p> Usw.</p> <p> Ich hoffe dies hat dir weitergeholfen.</p> <p> Grüße</p> <p> Michelle (Tutorin)</p> <p> &nbsp;</p> AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=6221&qa_1=tut-4-a8&show=6228#a6228 Fri, 26 Jan 2018 10:23:56 +0000 Beantwortet: Tut 4/ A5 https://info2.aifb.kit.edu/qa/index.php?qa=6222&qa_1=tut-4-a5&show=6226#a6226 <p> Hallo,</p> <p> dass ein Konverter nicht benötigt wird, liegt daran, dass auch die darzustellende Funktion eine negation vor jeder Variable hat und somit deren Komplement benutzt.</p> <p> Auf die Lösung kommt man in dieser Aufgabe gut, wenn man sich zunächst fragt für welche Belegungen von A,B,C die Funktion die Werte 0 oder 1 annimmt.</p> <p> Zur Erinnerung:</p> <ul> <li> Liegt an einem p-Mos Bauteil eine 0 am Gatter an, so wird eine 1 weitergeleitet</li> <li> Liegt an einem n-Mos Bauteil eine 1 an einem Gatter an, so wird eine 0 weitergeleitet</li> </ul> <p> Für den oberen Teil (den p-Mos Teil) betrachtest du nun alle Belegungen für die die Funktion eine 1 ergibt. Das wäre: A oder B ist 0 und zusätzlich muss C 0 sein. Da zwischen A oder B eine "Oder"-Beziehung besteht, müssen sie paralell geschaltet werden, da für entweder eine an A anliegende 0 oder an B anliegende 0 eine 1 weitergeleitet werden soll. Zusätzlich muss C mit diesem Gebilde in Reihe geschaltet werden, da zwischen C und (A oder B) eine "Und"-Beziehung besteht.</p> <p> Für den unteren Teil (den n-Mos Teil) betrachtest du nun alle Belegungen die für die Funktion zu einer 0 führen. Das wäre: A und B sind 1 oder C ist 1. Wir haben nun also zwei Möglichkeiten eine 0 zu erzeugen. Erstens C = 1 und Zweitens A =1 und B=1. Wegen dieser "Oder"-Beziehung muss C also parallel zu A und B geschaltet werden. Nun müssen wir uns noch fragen wie der n-Mos Teil der Schaltung mit A und B aussieht. Da zwischen ihnen hier eine "Und"- Beziehung herrscht (beide müssen 1 sein, damit f =0 ist), müssen sie in Reihe geschaltet werden.</p> <p> Ich hoffe jetzt ist es verständlicher geworden.</p> <p> Grüße</p> <p> Michelle (Tutorin)</p> AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=6222&qa_1=tut-4-a5&show=6226#a6226 Fri, 26 Jan 2018 08:43:00 +0000 Beantwortet: Wie hoch ist der Aufwand um ein Erfüllbarkeitsproblem in KNF zu lösen? https://info2.aifb.kit.edu/qa/index.php?qa=2521&qa_1=wie-hoch-ist-der-aufwand-ein-erf%C3%BCllbarkeitsproblem-knf-l%C3%B6sen&show=2522#a2522 <div class="ilFrmPostContent"> <p> Hallo,</p> <p> die so genannten SAT-Probleme, bei denen eine allgemeine aussagenlogische Formel auf Erfüllbarkeit geprüft wird, sind NP-vollständig, also die schwierigsten Probleme aus NP. (Siehe Vorlesung)</p> <p> Das Prüfen eines Problems in DNF auf Erfüllbarkeit stellt einen Spezialfall des SAT-Problems dar. Da es dabei ausreicht einen einzigen Konjunktionsterm zu finden, der wahr ist, ist der Aufwand linear.</p> <p> Bei der KNF müssen alle Disjunktionsterme geprüft werden. &nbsp;Das Problem gehört zu der Problemklasse NP-vollständig und ist im Allgemeinen nur mit viel Rechenaufwand lösbar.</p> <p> Für die Umwandlung von KNF in DNF gibt es mehrere Methoden. Eine aus Grundlagen der Informatik I bekannte Methode erfordert die Aufstellung einer Wahrheitstabelle. Die Wahrheitstabelle hat \(2^n\) Zeilen. Auch andere Methoden führen zum exponentionellen Aufwand.</p> <p> Viele Grüße</p> <p> Irina (Tutorin)</p> </div> <p> &nbsp;</p> AU-4-1 https://info2.aifb.kit.edu/qa/index.php?qa=2521&qa_1=wie-hoch-ist-der-aufwand-ein-erf%C3%BCllbarkeitsproblem-knf-l%C3%B6sen&show=2522#a2522 Tue, 22 Sep 2015 09:34:25 +0000