Vertiefungsstoff zum Thema Logik und Schaltalgebra

Slides:



Advertisements
Ähnliche Präsentationen
(Zweistufige) Logiksynthese
Advertisements

Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Kapitel 1 Der Boolesche Kalkül
Eine dynamische Menge, die diese Operationen unterstützt,
Polynomial Root Isolation
Schnelle Matrizenoperationen von Christian Büttner
5. Aussagenlogik und Schaltalgebra
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Syntax der Aussagenlogik
Ein Modellansatz zur Beschreibung von Vagheiten
Verifizieren versus Berechnen
Welches sind die beiden Kirchhoffschen Gesetze, die mit der hier dargestellten Schaltung verifiziert werden können und wie lauten diese?   Kirchhofsche.
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Kapitel 5 Stetigkeit.
Zahlen mit Zahlen ausmessen
Minimum Spanning Tree: MST
Addierwerke.
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
§24 Affine Koordinatensysteme
Effiziente Algorithmen
Basisinformationstechnologie HK-Medien
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
§3 Allgemeine lineare Gleichungssysteme
Fuzzymengen – Was ist das?
3.1 Gates und boolesche Algebra
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Technische Informatik II Vorlesung 3: Kombinatorische Schaltungen
Schaltnetze und Schaltwerke Marcel Waldvogel
Technische Informatik II
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Von der Schaltfunktion zur Schaltung
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Schaltungen, Schaltwerke und Automaten
Analyse der Laufzeit von Algorithmen
Vom graphischen Differenzieren
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Technische Informatik I Vorlesung 4: Vereinfachung von Schaltfunktionen Mirco Hilbert Universität Bielefeld Technische Fakultät.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Kapitel 3: Boolesche Algebra Inhalt: 3
 Sortigkeit oder Arität
Gliederung der Vorlesung
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
Vertiefungsstoff zum Thema „Darstellung von Zahlen“
Vorstellen und Herleiten der Horner Schemas
Von Bits, Bytes und Raid Eine Schnuppervorlesung Inhalt
X. Übungsblatt – Aufgabe X Mit Hilfe von NAND-Gattern, kann jede beliebige Boolesche Funktion realisiert werden. (Gleiches gilt für die Verwendung von.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Teil II Entwurf digitaler Schaltungen
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
Technische Informatik II Vorlesung 3: Kombinatorische Schaltungen
Technische Informatik I
Technische Informatik I
 Präsentation transkript:

Vertiefungsstoff zum Thema Logik und Schaltalgebra Aussagenlogik induktive Definition boolescher Terme systematische Aufzählung boolescher Funktionen technische Realisierung von Schaltfunktionen konjunktive Normalformen weitere Verfahren zur Minimierung von Schaltfunktionen – Quine-McCluskey – BDD Werkzeuge zum Aufbau und zur Simulation von Schaltfunktionen

Beispiele für Boolesche Algebren Aussagenlogik: mit den Operatoren „UND“ , „ODER“ und „NICHT“ über einer Menge von Aussagen. (Maschinelles Schlussfolgern) Mengenalgebra mit den Operatoren „“ Vereinigung und „“ und „/“ Mengenkomplement auf der Potenzmenge einer Grundmenge G. Schaltalgebra mit den Operatoren Ø , Ù , Ú man verwendet dabei bi-stabile Schaltelemente: – Bi-stabile Schaltelemente haben zwei stabile Schaltzustände, denen man die Schaltwerte 0 bzw. 1 zuordnet. – Technische Realisierung der Schaltzustände z.B. als Schalter offen/geschlossen oder mit Transistor: Durchgang nichtleitend/leitend, hohes/niedriges Potential etc.

Aussagenlogik / Schaltlogik / Boolesche Algebra Aussagen sind Elemente einer Menge, die entweder wahr oder falsch sind. (Beispiel: Zeugenaussagen bei einem Verhör.) Aussagen lassen sich mit bestimmten Operatoren verknüpfen. Der Wahrheitsgehalt einer Verknüpfung ist dann ebenfalls wieder wahr oder falsch. Beispiel („Logelei“): Nach einem Einbruch wurden drei Verdächtige A, B und C festgenommen. Im Verhör ergaben sich folgende Sachverhalte: 1. Als Täter kommen nur A, B und C in Frage. 2 C „arbeitet“ niemals alleine. 3. A arbeitet niemals mit C. 4. Wenn A schuldig ist und B nicht, dann ist auch C schuldig. Preisfrage: Ist B schuldig?

Induktive Definition boolescher Ausdrücke Gegeben: eine Basismenge M = {a1, ..., an} n  2 1. Induktionsanfang: – Alle Elemente a1 aus M sind boolesche Ausdrücke. – Das neutrale Element 0 ist ein boolescher Ausdruck. – Das Eins- Element 1 ist ein boolescher Ausdruck. 2. Induktionsschritt: Falls A und B boolesche Ausdrücke sind, so auch: A • B, B • A, (logische Notation: A Ù B, B Ù A, BA, AB A + B, B + A A Ú B, B Ú A 'A, 'B ØA, ØB ) (A), (B) Beispiel: Basismenge M = {0, 1}. ⇒ (0+1) • '(1+'0) ist boolescher Ausdruck, bzw. (0 Ú 1) Ù Ø(1 Ú Ø0)

Aufzählung Boolescher Funktionen / Schaltfunktionen Frage: Welche 1-wertige und 2-stellige boolesche Funktionen gibt es? Ansatz: Systematisches Aufzählen aller möglichen Funktionen der Funktionen f : {0, 1} 2  {0, 1} 1-wertige u. 2-stellige boolescher Funktionen: 1. Nullfunktion: f0 (a,b) -> 0 2. Konjunktion: f1 (a,b) -> a Ù b ..... 16. Einsfunktion f15 (a,b) -> 1 a b f1 0 0 1 0 1 2 1 0 3 1 1 1 eine zweistellige Funktion f hat 2*2 mögliche Kombinationen von Eingabewerte ist f einstellig, so hat man für jeden der 4 Eingabekombinationen e1, e2, e3, e4 jeweils die Möglichkeit, diese auf den Wert 0 oder 1 abzubilden. Somit erhält man: 2*2*2*2 = 16 verschiedene Zuordnungsmöglichkeiten (= Funktionen) Anmerkung: Man kann bei der Aufzählung die Funktionen fi (0  i  15) übersichtlich so indizieren, dass aus ihrem Index i ablesbar ist, für welche Kombination der Eingabewerte (a, b) sie den Wert 1 annimmt.

Aufzählung Boolescher Funktionen / Schaltfunktionen x 0 1 1 0 0 fi a b 1 1 3 1 0 2 Øa Ù Øb Øa Ù b a Ù Øb a Ù b In dieser Spalte stehen die Elemente der Indexmenge von Funktion fi. Beispiel: If3 ={2, 3} d.h. f3 =1 für die Eingangsbelegungen: a Ù Øb oder a Ù b fi 0 1 2 3 Ausdruck Bezeichnung Kürzel f0 0 0 0 0 0 Null-Funktion f1 0 0 0 1 a Ù b Konjunktion UND f2 0 0 1 0 a Ù Øb f3 0 0 1 1 a Projektion f4 0 1 0 0 Øa Ù b f5 0 1 0 1 b Projektion f6 0 1 1 0 a  b Antivalenz XOR ........... Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1

Aufzählung Boolescher Funktionen Die 16 möglichen Schaltfunktionen fi : {0,1} x {0,1}  {0, 1}

Varianten zur Darstellungen Boolescher Funktionen Booleschen Funktion lassen sich auf verschiedene Form darstellen: Beispiel: fXOR : {0, 1} 2n  {0, 1} Wertetabelle: Indexmenge: IXOR = {01, 10} = {110, 310 } Boolescher Ausdruck: fXOR (a,b) = a  b = a‘ b + a b‘ = (a+b) (a‘+b‘) Funktionsgraph (Binary Decision Diagram) (wird heute im Chip-Design verwendet)  1

Realisierung Boolescher Funktionen mit Schaltertechnik Gegeben: Menge von binären Schaltvariablen Gesucht: Geeignet Schalterbausteine, mit denen man Boole'sche Funktionen fi : {0,1}n x {0,1}  {0, 1} realisieren kann Lösungsansatz: a) konstruiere Schalterbausteine für die Grundoperationen Ø , Ù , Ú b) konstruiere Schalterbausteine zur Realisierung eines Null und eines Eins-Elements. Zu a): Konjunktion: Schaltfunktion fÙ (a,b)  a Ù b Disjunktion: Schaltfunktion fÚ (a,b)  a Ú b Komplement: Schaltfunktion fØ (a)  Ø a

Realisierung Boolescher Funktionen mit Schaltertechnik Zu b): Schaltkonstante 0: Schaltfunktion f0 (a)  0 wird realisiert als ständig offener Schalter: Schaltkonstante 0: Schaltfunktion f1 (a)  1 wird realisiert als ständig geschlossener Schalter: Anmerkung: Die so realisierte Schaltalgebra ist eine Boolesche Algebra. Es lassen sich beliebig komplexe Schaltfunktionen durch Kombination der Schalterbausteine aufbauen.

Realisierung von Gattern mit Halbleitern (für Interessierte) Schaltgatter werden physisch im Wesentlichen aus Halbleiter-Bauelementen (Transistoren) aufgebaut. Eine wichtige Rolle spielen die sog. MOSFET (Metal-Oxide-Semiconductor-Field-Effect-Transistor) Transistoren. Man unterscheidet zwischen: – n-MOS Transistoren und daraus aufgebaute Schaltungen – p-MOS Transistoren und daraus aufgebaute Schaltungen – CMOS: Kombination von n-MOS und p-MOS Transistoren Aufbau eines n-MOS Transistors: Positive Spannung zwischen Gate und Source induziert n-leitende "Inversionsschicht" unter der Oxidschicht des Gates n-Kanal (dies ist der "Field Effect"), d.h., es fließt Strom zum Ausgleich des Potentialunterschieds zwischen Drain und Source. ⇒ n-MOS Transistor fungiert als Schalter

Realisierung von Gattern mit Halbleitern Aufbau eines p-MOS analog, jedoch mit komplementärer Schaltfunktion. Schaltbild: n-MOS p-MOS NMOS-Technologie: Realisierung elementarer logischer Gatter mit MOS-Transistoren. Ausschließliche Verwendung von n-MOS Transistoren hat erheblich an Bedeutung verloren. CMOS-Technologie: Gemeinsame Verwendung von n-MOS und p-MOS Transistoren in komplementärer Form ist heutige Standardtechnologie- Gatter-Schaltzeiten bereits unter 0,5 nano sec. (Schaltzeit = Zeit, bis das Gatter aus Eingabe a den Wert f(a) bestimmt.)

Aufbau eines NICHT-Gatters in CMOS Technologie a=0 (d.h. Spannung kleiner als Schwellwert) - n-MOS Transistor sperrt - p-MOS Transistor ist leitend - b erhält den Wert 1. a=1: - p-MOS Transistor sperrt - n-MOS Transistor ist leitend - b erhält den Wert 0.

NAND- und NOR-Gatter in CMOS Technologie NAND-Gatter NOR-Gatter

Konjunktive-Normalform KNF Definition: KNF, kanonische KNF, Maxterme Seien D1 .... Dm (1 £ i £ m) paarweise verschiedene n-stellige Disjunktionsterme. Dann definiert man die Konjunktive-Normalform als den Term: m m n KNF =  Di =   xij i=1 i=1 j=1 Eine KNF heißt kanonisch, gdw. wenn jeder der m Disjunktionsterme Di alle n verschiednen Variablen (xi = ai oder xi = a'i ) enthält. In diesem Falle heißen die Di Volldisjunktionen oder Maxterme (=> Maxterm hat Wert 0 gdw. alle xi = 0) Beispiel: KNF mit maximal 3-stelligen Disjunktionstermen: a‘1 • (a2 + a3 ) • (a1 + a‘2 + a‘3 ) • (a1 + a3) kanonische KNF mit 3-stelligen Disjunktionstermen: (a1 + a2 + a3 ) • (a1 + a‘2 + a3 ) • (a‘1 + a‘2 + a3 )

Verwendung von Normalformen zur Beschreibung boolescher Funktionen zu 1: Konstruktion der kanonischen DNF für f f(a,b,c) = ab'+c = ab'(c+c') +c ergänze ab' zum Minterm = ab'c + ab'c' + c = ab'c + ab'c' + (a+a') (b+b') c ergänze c zum Minterm = ab'c + ab'c' + (a+a') (bc+b'c) = ab'c + ab'c' + abc + ab'c + a'bc + a'b'c „ausmultiplizieren“ = ab'c + ab'c' + abc + ab'c + a'bc + a'b'c entferne Duplikate = ab'c + ab'c' + abc + a'bc + a'b'c sortiere Minterme = a'b'c + a'bc + ab'c' +ab'c + abc fertig! zu 2: Konstruktion der kanonischen KNF für f wie formt man ab'+c so um, dass eine KNF der Form (x, y, z) entsteht mit x=a oder x =a', y=b oder y=b' und z=c oder z=c'

Konstruktion der kanonischen KNF Überlegung: man kann die KNF von f wie folgt berechnen: 1. bilde unter Anwendung von DeMorgan das Komplement f ' von f 2. berechne die DNF für f' 3. wende auf DNF für f' wieder De Morgan an. => KNF von f Beispiel: Sei f(a,b,c) = ab'+c => f '(a,b,c) = (ab')'c' = (a'+b)c' = a'c' + bc' berechne DNF für f ' f '(a,b,c) = a'c' + bc' = a'c'b + a'c'b'+ abc' + a'bc' ergänze zu Mintermen = a'c'b + a'c'b'+ abc' + a'bc' entferne Duplikate und ordne um = a'b'c' + a'bc' + abc' das ist die DNF von f ' berechne Komplement der DNF von f ', also (a'b'c' + a'bc' + abc')' (a'b'c' + a'bc' + abc')' = (a'b'c')' (a'bc' )'(abc')' = (a+b+c)(a+b'+c)(a'+b'+c) = KNF von f

Bestimmung von Min- und Maxtermen aus Funktionstabelle Satz: Zur eindeutigen Beschreibung einer Funktion f : {0, 1} n -> {0, 1} reicht es aus, alle konjunktiv verknüpften Kombinationen von Eingangsvariablen zu betrachten, für die die Funktion den Wert 1 annimmt zu betrachten. Diejenigen Kombinationen, für die f den Wert 1 annimmt sind gerade die Minterme der DNF von f. Index a b c f(a,b,c) Minterm 0 0 0 0 0 1 0 0 1 1 a'b'c 2 0 1 0 0 3 0 1 1 1 a'bc 4 1 0 0 1 ab'c' 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 abc => DNF = a'b'c + a'bc + ab'c' + abc

Zusammenhang: Funktionstabelle, Min- und Maxtermen Zur eindeutigen Beschreibung einer Funktion f : {0, 1} n -> {0, 1} kann man: die Minterme (d.h. Konjunktionen) aus der Funktionstabelle entnehmen. wahlweise die Minterme der komplementären Funktion f ' bestimmen und diese invertieren. Man erhält dadurch die Maxterme der KNF von f. Begründung: Es gilt: KNF von f = (DNF von f ' )' Beispiel: f(a,b,a) gegeben durch: Index a b c f(a,b,c) Minterme f Minterme f ' Maxterme f 0 0 0 0 0 a'b'c' a+b+c 1 0 0 1 1 a'b'c 2 0 1 0 0 a'bc' a+b'+c 3 0 1 1 1 a'bc 4 1 0 0 1 ab'c' 5 1 0 1 0 ab'c a'+b+c' 6 1 1 0 0 abc' a'+b'+c 7 1 1 1 1 abc => DNF von f = a'b'c + a'bc + ab'c' + abc => KNF von f = (a'+b'+c)(a'+b+c')(a+b'+c)(a+b+c)

Minimierungsverfahren für Normalformen Motivation: kanonische Normalformen sind ein Instrument, um die Äquivalenz von booleschen Termen zu überprüfen. Bei der Entwicklung von Schaltfunktionen hat man jedoch das Problem, dass man möglichst kurze beschreibende Terme für die zu realisierende Schaltfunktion haben möchte. Man ist daher am kürzesten booleschen Term interessiert, der f beschreibt. Definition: Minimalformen Sei DNF und KNF eine Disjunktive- bzw. eine Konjunktive Normalform der n-stelligen Funktion f : {0, 1} n -> {0, 1}. Dann bezeichnet: Disjunktive-Minimalform (DMF) die kürzeste DNF für f und Konjunktive-Minimalform (KMF) die kürzeste KNF für f Anmerkungen: Offenbar gibt es für jede boolesche Funktion f einen kürzesten booleschen Term in DNF bzw. KNF, der f definiert. => Prinzipiell auffindbar, durch systematisches Ausprobieren. => Ausprobieren ist jedoch unpraktikabel wegen kombinatorischer Explosion.

Minimierungsverfahren für Normalformen Zur Minimierung boolescher Terme in DNF wurden unterschiedliche Verfahren entwickelt: Diagramm-Verfahren von Karnaugh Grafisches Verfahren, das die Summanden so in einer Tabelle anordnet, dass man einfach erkennen kann, welche Terme zusammengefasst werden können. Listenverfahren von Quine-McCluskey Von DNF ausgehend, werden die Summanden systematische Vergleichen und soweit möglich mit der Nachbarschaftsregel (ab + ab' = a) verkürzt. Dazu werden die Summanden in Listen verwaltet. Verwendung der baumartigen Binary Decision Diagramme (BDC's) Grafisches Verfahren, das die Funktionstabelle als Entscheidungsbaum darstellt. Minimale Terme werden gefunden, indem man mit der Nachbarschaftsregel. Wird mittlerweile in vielen CAD Systemen verwendet. Resolutionsmethode von Robinson Erweiterung des Verfahren von Quine-McCluskey. Man benötigt jedoch keine DNF als Ausgangspunkt. (Einsatz: automatischen Beweisen, KI-Anwendungen).

Listenverfahren von Quine-McCluskey Grundgedanke: es gibt Fälle, in denen es vorteilhaft ist, eine gegebne DNF unter Anwendung der Idempotenz (a=a+a ) erst "aufzublähen", um dann mit Anwendung der Nachbarschaftsregel (ac+ac' = a(c+c') = a ) eine Verkürzung zu erzielen. Beispiel: Gegeben sei Funktion f in DNF: f(a,b,c) = a'b'c + ab'c' + ab'c = a'b'c + ab'c' + ab'c Nachbarschaftsregel anwendbar = (a'+a)b'c + ab'c' (a'+a)= 1 und 1•b'•c = b'c = b'c + ab'c' Frage: geht's noch kürzer? Versuch 2: = a'b'c + ab'c'+ ab'c + ab'c Aufblähen mit ab'c = ab'c + ab'c = (a'+a)b'c + ab'(c'+c) Nachbarschaftsregel 2 mal anwenden = b'c + ab' = b'(a+c) eine Multiplikation eingespart!

Listenverfahren von Quine-McCluskey Vorbereitung Zur übersichtlichen und systematischen Verwaltung der Summanden wählt man für diese eine geschickte Indizierung: Gegeben sei eine n-stellige Funktion f in DNF: K1 + ... + Km Zuerst ordnet man jedem Summanden Ki seine n-stellige Binärzahl bi zu. Der besseren Übersicht halber bestimmt man für die bi noch die entsprechenden Dezimalindices di Beispiel: Gegeben sei Funktion f in DNF: f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' Summanden Ki der DNF If = { 000 010 100 101 110 } Binär-Indices der Summanden 0 2 4 5 6 Dezimalindices Beobachtung: Die Nachbarschaftsregel lässt sich offenbar auf genau die Summanden anwenden, die sich in ihrer Quersumme um genau eine 1 unterscheiden. => man gruppiert die Summanden nach der Anzahl der Einsen ihrer Binärindizes und kann sich dann bei der Suche nach möglichen Kandidaten für die Anwendung der Nachbarschaftsregel auf die Summanden je zwei benachbarter Gruppen beschränken.

Listenverfahren von Quine-McCluskey Erstellen der 1. Liste (am Beispiel) Sei f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' Summanden Ki der DNF 000 010 100 101 110 Binärindices der Summanden 0 2 4 5 6 Dezimalindices Anwendung der Nachbarschaftsregel: eliminierte Variablen hinterlassen Lücken "_" 0,2 0_0 0,4 _00 2,6 _10 4,5 10_ 4,6 1_0 die reduzierten Terme werden in die nächste (= 2.te Liste) übernommen Liste 1 1. Indexgruppe 0 000 (keine 1) 2. Indexgruppe 2 010 (eine 1) 4 100 3. Indexgruppe 5 101 (zwei Einsen) 6 110 alle Terme der ersten Liste sind durch die neuen Terme der zweiten Liste abgedeckt (brauchen nicht mehr beachtet werden.

Listenverfahren von Quine-McCluskey Übernahme in 2. Liste und erneute Anwendung der Nachbarschaftsregel auf benachbarte Gruppen liefert eine 3. Liste mit dem Eintrag _ _0 Rückübersetzung von _ _0 liefert den Term c' Liste 1 Liste2 Liste3 1. Indexgruppe 0 000 0,2 0_0 0,2,4,6 _ _0 (keine 1) 0,4 _00 0,4,2,6 _ _0 2. Indexgruppe 2 010 2,6 _10 (eine 1) 4 100 4,5 10_ 4,6 1_0 3. Indexgruppe 5 101 (zwei Einsen) 6 110 Die Summanden der Minimalform sind genau die Terme, die in der Tabelle nicht weiter zusammengefasst werden konnten. Anschaulich: von ihnen gehen keine Verbindungslinien zu einer nächsten Liste aus (siehe eingekreiste Terme) => DMF für f(a,b,c) = a'b'c' + a'bc'+ ab'c' + ab'c + abc' lautet somit: ab' + c'

Anmerkungen zum Quine-McCluskey Verfahren Vorteile: Systematisches Verfahren, das sich gut automatisieren lässt. Da die übrig bleibenden Summanden in jeder Liste kürzer werden, ist sichergestellt, dass das Verfahren nach endlich vielen Schritten terminiert. Nachteile: zusätzlicher Aufwand zur Erstellung der DNF für die erste Liste. Verfahren findet stets alle Primimplikanten (d.h., solche Summanden, die nicht weiter zusammengefasst werden können). Für die Minimalform einer Funktion benötigt man jedoch nicht immer alle Primimplikanten. => Quine-McCluskey Verfahren liefert nicht notwendigerweise den kürzesten Term (DMF). => Weiterer Schritt zur Identifikation der Primimplikaten erforderlich! Beispiel: f(a,b,c) = a'b'c' + ab'c' + ab'c + abc Durchführung des Listenverfahrens für f liefert: ac + ab' + b'c' Aufstellen einer Wertetabelle lässt erkennen, dass gilt: f(a,b,c) = ac + b'c' Frage: Wie kann man überflüssige Primimplikanten aussortieren ?

Auffinden überflüssiger Primimplikaten Ansatz 1: 1. Stelle Wertetabelle für f auf 2. Überprüfe, welche Primimplikaten die 1-Werte der Funktion abdecken. => Entferne Primimplikanten, die nur 1-Werte abdecken, die bereits von anderen Primimplikanten abgedeckt werden. Beispiel: f(a,b,c) = a'b'c' + ab'c' + ab'c + abc DNF If = { 000 100 101 111 } Indexmenge von f Ergebnis des Listenverfahrens: ac + ab' + b'c' a b c f(a,b,c) ac ab' b'c' 0 0 0 0 1 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 0 4 1 0 0 1 1 1 5 1 0 1 1 1 1 6 1 1 0 0 7 1 1 1 1 1 In der Wertetabelle von f kann man ablesen, welche Primimplikanten zu welchen Einsen beitragen. Die Einsen der Zeilen 4 und 5 werden doppelt abgedeckt! => ab' ist überflüssig

Aufstellen einer Primimplikantentabelle Vorgehensweise: 1. Kopfzeile der Tabelle: Elemente der Indexmenge von f (d.h., die Indices, für die Funktion f den Wert 1 hat) 2. 1. Spalte: alle mit dem QMC-Listenverfahren gefundenen Primimplikanten 3. Zellen: Eintrag 1, an Stelle i, j, falls Primimplikant der Zeile i Dezimalindex der Spalte j abdeckt. Kein Eintrag sonst. Beispiel: f(a,b,c) = a'b'c' + ab'c' + ab'c + abc DNF If = { 000 100 101 111 } Indexmenge binär 0 4 5 7 Indices als Dezimalzahlen Ergebnis des QMC-Listenverfahrens: ac + ab' + b'c' => Primimplikanten-Tabelle: Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1 ac 0 4 5 7 1 b'c' ab'

Auswahl eines Minimalsatzes an Primimplikanten Vorgehensweise: 1. Bestimme zunächst den Kern, d.h., jene Primimplikanten, die Einsen abdecken, die von keinem anderen Primimplikanten abgedeckt werden. 2. Entferne alle Spalten und Zeilen, die von Kernelementen abgedeckt werden. => es entsteht eine kleinere (oder sogar leere) Tabelle. 3. Suche in der ggf. verbleibenden Tabelle nach Überdeckungen. Beispiel: Primimplikanten-Tabelle für f ac 0 4 5 7 1 b'c' ab' Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1 Bestimme Kern: = { ac, b'c' } Entferne vom Kern abgedeckte Zeilen und Spalten => es entsteht eine leere Tabelle. Also fertig. Ergebnis ist ac+b'c'

Auswahl eines Minimalsatzes an Primimplikanten Beispiel: Sei f : {0, 1}4 -> {0, 1} gegeben durch If = { 1, 2, 3, 6, 8, 9, 12, 13, 14, 15 } Ergebnis QMC: ab + ac' + bcd' + a'b'd + a'b'c+ a'cd' + b'c'd Primimplikanten-Tabelle für f 1 2 3 6 8 9 12 13 14 15 ab ac' bcd' a'b'd a'b'c a'cd' b'c'd Bestimme Kern: = { ab, a'c' } 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Beispiel f1: f1 liefert nur für den Index 3 (= Eingabekombination 11) den Funktionswert 1 in dieser Resttabelle muss weiter nach Überdeckungen gesucht werden. => mögliche Wahl: a'b'd + a'cd' => Gesamtergebnis somit: ab+ ac' + a'b'd + a'cd'

Minimierungsverfahren für Normalformen Zur Minimierung boolescher Terme in DNF wurden unterschiedliche Verfahren entwickelt: Diagramm-Verfahren von Karnaugh Grafisches Verfahren, das die Summanden so in einer Tabelle anordnet, dass man einfach erkennen kann, welche Terme zusammengefasst werden können. Listenverfahren von Quine-McCluskey Von DNF ausgehend, werden die Summanden systematische Vergleichen und soweit möglich mit der Nachbarschaftsregel (ab + ab' = a) verkürzt. Dazu werden die Summanden in Listen verwaltet. Verwendung der baumartigen Binary Decision Diagramme (BDC's) Grafisches Verfahren, das die Funktionstabelle als Entscheidungsbaum darstellt. Minimale Terme werden gefunden, indem man mit der Nachbarschaftsregel. Wird mittlerweile in vielen CAD Systemen verwendet. Resolutionsmethode von Robinson Erweiterung des Verfahren von Quine-McCluskey. Man benötigt jedoch keine DNF als Ausgangspunkt. (Einsatz: automatischen Beweisen, KI-Anwendungen)

Weitere Verfahren zur Minimierung Motivation: Bei komplexeren Aufgaben stößt man auf folgende typische Probleme: – Schalttabelle zu groß (bei n Variablen 2n Zeilen!) – kanonische DNF oder kanonische KNF meist auch sehr groß, selbst in vereinfachter Form. – Untersuchung der Eigenschaften Boolescher Funktionen bei Darstellung durch kDNF oder kKNF schwierig (z.B. Kosten der Auswertung steigen nicht linear zur Anzahl der Variablen.) => Entwicklung weiterer Darstellungsmöglichkeiten: – reduzierte Funktionsgraphen und – binäre Entscheidungsdiagramme (Binary Decision Diagram / BDD) BDD's haben in den letzten Jahren (seit 1986) im Bereich des CAD (Computer Aided Design) starke Bedeutung erlangt für: - den rechnergestützten Schaltungsentwurf, bzw. - für die Untersuchung von Eigenschaften Boolescher Funktionen.

Funktionsdarstellung mit BDD Beispiel: 3-stellige Boole'sche Funktion f(a,b,c) Darstellung von f als BDD a b c f(...) c c c c DNFf = a'bc + ab'c + abc' +abc Idee: Man minimiert f, indem man den BDD geeignet umbaut.

Minimierung mit dem BDD Verfahren Beispiel: f(a,b,c) = XOR(a,b,c) = a  b  c Darstellung von f als BDD DMFf = a'b'c + a'bc' + ab'c' + abc Anmerkung: BDD der XOR-Funktion mit n Variablen hat (ohne Blätter) genau 2n+1 Knoten, die DNF oder KNF der gleichen Funktion hat jedoch die Größe 2n. => BDD verursacht erheblich weniger Aufwand bei der Minimierung.

Zusammenfassung Minimierung Boolescher Funktionen Allgemeines Schema beim Entwurf einer Schaltfunktion: Textuelle Aufgabenstellung Schritt 1: Schritt 2: Schritt 3: Schritt 4: Schritt 5: Funktionsgleichung / Wertetabelle aufstellen (bei m-wertigen Funktionen m Einzel-Tabellen) Minterme bestimmen DNF aus Mintermen bestimmen DMF bestimmen 2-stufiges Schaltnetz ableiten und zeichnen Zur Minimierung stehen unterschiedliche Verfahren zur Auswahl. Für kleine Aufgaben, die von Hand durchgeführt werden, sind die grafische Methoden (Karnaugh-Diagramm, oder BDD) gut geeignet.

Entwurf und Simulation von Digitalschaltungen Digitale Schaltungen lassen sich bequem mit grafischen Werkzeugen entwerfen und austesten, bevor man sie physisch aufbaut. Beispiel: Elektronik Design Labor (www.electronicsworkbench.de )