Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Inhaltsverzeichnis 4 Boolesche Algebra...................................................................................................... 4-2 4.1 Algebra der Logik, algebraische Logik................................................................ 4-2 4.1.1 Schaltalgebra und logische Schaltungen ...................................................... 4-3 4.1.1.1 Zustand eines digitalen Systems .............................................................. 4-5 4.1.1.2 Schaltfunktion ......................................................................................... 4-5 4.1.1.3 Schaltalgebra........................................................................................... 4-5 4.1.1.4 Die logischen Grundfunktionen ............................................................... 4-6 4.1.1.5 Grundgesetze der Aussagenlogik ............................................................. 4-7 4.1.1.6 Rechenregeln der Schaltalgebra............................................................... 4-8 4.1.1.6.1 Grundregeln für das Rechnen mit zweiwertigen Variablen................. 4-8 4.1.1.6.2 Regeln für die booleschen Konstanten ............................................... 4-9 4.1.1.7 Herleitung des Theorems von De Morgan...............................................4-10 4.1.1.8 Theorem von De Morgan für eine beliebige Zahl von Variablen.............4-11 4.1.1.9 Zusammenfassung der logischen Grundfunktionen für zwei Variablen ...4-13 4.1.1.9.1 Verknüpfungsarten (Operatoren in C) ...............................................4-13 4.1.1.9.2 Verknüpfungsarten (Weitere Schreibweisen) ....................................4-14 4.1.2 Benennungen, Schaltsymbole und Schaltfunktion.......................................4-15 4.1.2.1 Negation (Komplementbildung) .............................................................4-15 4.1.2.2 Konjunktion ...........................................................................................4-16 4.1.2.3 Disjunktion.............................................................................................4-18 4.1.2.4 Schaltsymbole in alter und neuer Norm ..................................................4-20 4.1.2.5 Schaltsymbole nach DIN 40900 Teil 12..................................................4-21 4.2 Normalformen ...................................................................................................4-22 4.2.1 Kanonische Normalformen.........................................................................4-22 4.2.2 Kanonische disjunktive Normalform (KDNF) ............................................4-23 4.2.3 Kanonische konjunktive Normalform (KKNF) ...........................................4-24 4.3 Wahrheitstafel bzw. Schaltbelegungstabelle (SBT) ............................................4-25 4.3.1 Darstellung aller Eingangsvariablen einer Schaltbelegungstabelle ..............4-25 4.3.2 Darstellung einer vollständigen Schaltbelegungstabelle..............................4-26 4.3.3 Ansteuerung einer LED Anzeige für BCD-Codes.......................................4-27 4.3.4 Vollständige und unvollständige Funktionen. .............................................4-28 DV1_Kapitel_4.doc Seite 4-1 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4 Boolesche Algebra 4.1 Algebra der Logik, algebraische Logik Das ist die seit der Mitte des 19. Jh. entwickelte Form des Klassen- und Relationenkalküls, die es erlaubt, die Gesetze der traditionellen (Klassen- oder syllogistischen1) Logik sowie logische Schlüsse in algebraischer Form zu behandeln. Sie basiert auf der von George Boole in seinem Werk „Mathematical analysis of logic“ (1847) entworfenen Booleschen Algebra und ist ein wichtiger Spezialfall der mehrwertigen Logik. Hauptwerk: „An investigation of the laws of thought (1854)“. George Boole George Boole, britischer Mathematiker und Logiker, *Lincoln 2.11.1815, ‡Ballintemple (bei Cork, Irland) 8.12.1864. Boole erwarb seine Kenntnisse der Mathematik auf autodidaktischem Weg und wurde 1849 Professor für Mathematik in Cork. Er erkannte, dass der mathematische Formalismus extensional ist und wandte diese Erkenntnis auf die im mathematischen Denken verwendeten logischen Gesetze selbst an. Er entwickelte als erster einen brauchbaren Logikkalkül und wurde so zum Begründer der mathematischen Logik. In diesem ersten System der Algebra der Logik wird jeder wahren Aussage und Aussagenverknüpfung der Wert 1, jeder falschen der Wert 0 zugeordnet. Boole erkannte außerdem, dass sich die auf die Zahlen 1 und 0 beschränkte Arithmetik als Klassenlogik deuten lässt und entwickelte so die Boolesche Algebra. (r.siol) 15.02.2006 FH_RV-Weingarten DV2 WS_0506 2 1 Den Syllogismus betreffend; die Lehre von den gültigen Schlüssen (Syllogismen, Schlussregeln) und deren Formen bildet das Kernstück der klassischen Logik. Die Syllogistik ist eine von Aristoteles entwickelte Lehre. Aus der Verbindung von zwei Vordersätzen (Prämissen) geht dabei der Schlusssatz (Konklusion) als logische Folgerung hervor. DV1_Kapitel_4.doc Seite 4-2 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten 4.1.1 Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Schaltalgebra und logische Schaltungen2 In digitalen nachrichtenverarbeitenden Systemen werden Nachrichten verschiedener Herkunft zu neuen Nachrichten verknüpft. Obwohl hierzu sehr einfach aufgebaute Grundschaltungen verwendet werden, ergeben sich bei größeren Systemen umfangreiche und unübersichtliche Schaltungen, die einer anschaulichen Betrachtungsweise kaum mehr zugänglich sind. Man verwendet deshalb eine symbolische Beschreibung, welche nur die Funktion einer Schaltung, nicht aber deren technische Ausführung kennzeichnet. Die zur abstrakten Beschreibung wichtigen Hilfsmittel wurden zuerst von SHANNON entwickelt [1], der die von BOOLE aus der formalen Logik abgeleitete symbolische Logik durch Analogieschlüsse auf die Behandlung von Schaltkreisen übertrug und damit die sogenannte Schaltalgebra begründete. Schaltungen, deren Verhalten durch die Schaltalgebra beschrieben werden kann, nennt man logische Schaltungen und die Planung der Zusammenhänge zwischen solchen logischen Schaltungen logischen Entwurf. Claude Elwood Shannon Claude Elwood Shannon, amerikanischer Ingenieur und Mathematiker, *Gaylord (Michigan) 30.4.1916; ab 1941 Mitarbeiter der Bell Telephone Laboratories, ab 1956 Professor am MIT. Neben Beiträgen zur Kryptographie (Verschlüsselungssysteme) und zur Schaltungstheorie der frühen elektronischen Rechner begründete Shannon 1949 mit seine Publikation >A mathematical theory of communication<, in der erstmals das Bit als Einheit einer Informationsmenge definiert wird, die Informationstheorie. Shannon lieferte damit die formale Grundlage für die Beschreibung von Daten-, Sprachen-, Ton- und Fernsehübertragungssystemen. Daneben beeinflusst die Informationstheorie in ihrer weiterentwickelten Form heute weite Bereiche der Natur- und Geisteswissenschaften. (r.siol) 18.10.2007 2 Hochschule Ravensburg-Weingarten Technik | Wirtschaft | Sozialwesen 25 Steinbuch/Rupprecht; Nachrichtentechnik – Eine einführende Darstellung; Springer Verlag; 1966 DV1_Kapitel_4.doc Seite 4-3 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Die Schaltalgebra dient 1. als Kurzschrift zur Beschreibung schaltungsmäßiger Verkopplungen digitaler Vorgänge und 2. als ein Rechenverfahren zum Finden von Schaltungen kleinsten Aufwandes (Minimisierung). Logische Schaltungen lassen sich technisch am besten für binäre Signale verwirklichen, d. h. für solche Signale, die nur zweier Wertstufen fähig sind (z. B. Impuls vorhanden oder Impuls nicht vorhanden). Darum hat man der Schaltalgebra eine spezielle BOOLEsche Algebra, nämlich die zweiwertige Logik zugrunde gelegt, die nur die binären Aussagen ja oder nein wahr oder nicht wahr richtig oder falsch hell oder dunkel groß oder klein links oder rechts kennt. Den beiden Zuständen ordnet man in der Schaltalgebra die Zeichen 0 und 1 (oder umgekehrt) zu. Gelegentlich wird statt 1 auch L geschrieben. Im folgenden sei 1 der Aussage ja zugeordnet und 0 der Aussage nein. Ein Bit ist die Informationsmenge in einer Antwort auf eine Frage, die zwei Möglichkeiten zulässt. Zu einer solchen Frage lässt sich immer eine Codierung der Antwort festlegen. Da es zwei mögliche Antworten gibt, reicht ein Code mit zwei Zeichen, ein so genannter binärer Code. Man benutzt dazu die Zeichen 0 und 1. DV1_Kapitel_4.doc Seite 4-4 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.1 Zustand eines digitalen Systems Den Zustand eines Systems, das den Regeln der Schaltalgebra gehorcht, beschreibt man durch binäre Variablen. Es gilt dabei für jede binäre Variable x: Ist x ≠ 0, so ist x = 1 und ist x ≠ 1, so ist x = 0. In der gewöhnlichen Algebra kann man im Gegensatz zur Schaltalgebra aus der Aussage x ≠ 0 im allgemeinen nicht schließen, welchen Wert x hat. Dies verdeutlicht die starken Einschränkungen, die in der Schaltalgebra gegeben sind. Es sei y eine abhängige binäre Variable (Ausgangsvariable), welche eine Funktion der unabhängigen binären Variablen (Eingangsvariablen) x1, x2, … , xn ist y = F ( x1, x 2 ,…, x i ,…, x n ) Da jede der unabhängigen Variablen x1 bis xn nur den Wert 0 oder 1 annehmen kann, gibt es bei einer endlichen Anzahl n von Variablen xi auch nur endlich viele Kombinationen € von Einsen und Nullen. Damit können also nur endlich viele verschiedene Funktionen gebildet werden. Diese können dargestellt werden durch eine Funktionstabelle, in der festgestellt wird, welchen Wert (0 oder 1) die abhängige Variable y haben soll, wenn die unabhängigen Variablen xi sämtliche möglichen Kombinationen von 0 und 1 nacheinander annehmen. Die Funktionen können aber auch durch einen analytischen Formelausdruck dargestellt werden, in der die einzelnen Variablen durch bestimmte noch näher zu erläuternde Verknüpfungsoperatoren miteinander verbunden sind. 4.1.1.2 Schaltfunktion Eine Schaltfunktion ist eine Gleichung der Booleschen Algebra, die die Abhängigkeit einer Ausgangsvariablen eines logischen Systems von den Eingangsvariablen beschreibt. Sie ähnelt in ihrer Struktur den Gatterstrukturen. Deshalb läßt sich die zugehörige Schaltungsstruktur in einfachen Fällen "auf einen Blick" finden. Es muß jedoch darauf hingewiesen werden, daß jede Schaltfunktion (Schaltungsgleichung) nur eine Ausgangsvariable in Abhängigkeit von den Eingangsvariablen funktionell darstellt. Zur Beschreibung der in der Praxis meist interessierenden Systeme mit mehreren Ausgängen (Ausgangsvariablen) sind daher mehrere Schaltfunktionen notwendig. 4.1.1.3 Schaltalgebra. Bei dieser Algebra nehmen die Variablen nur 2 Werte an (0 bzw 1, L bzw. H). Es werden die 3 logischen Operationen NICHT (Negation, Komplementbildung), ODER (Disjunktion) und UND (Konjunktion) verwendet. Für die Rangfolge dieser 3 Grundoperationen gilt in der Schaltalgebra - ähnlich dem Satz "Punktrechnung geht vor Strichrechnung" in der allgemeinen Algebra - die Reihenfolge 1. Negation, 2. Konjunktion, 3. Disjunktion. Die 3 Grundoperationen NICHT, ODER, UND reichen aus, um jede beliebig komplexe Verknüpfung zwischen beliebig vielen binären Variablen mathematisch zu beschreiben. DV1_Kapitel_4.doc Seite 4-5 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.4 Die logischen Grundfunktionen Fasst man A und B als Variable auf, die nur die Werte F und W annehmen können (Aussagenvariable), so beschreiben die folgenden Wahrheitstafeln die den Junktoren entsprechenden Wahrheitsfunktionen. Negation A ¬A F W W F bzw A (Entspricht der Schreibweise !A in den Programmiersprachen C und C++) € € Konjunktion Logisches AND bzw. UND A B A∧B F F W W F W F W F F F W € bzw. AB (Entspricht der Schreibweise A && B in den Programmiersprachen C und C++) Disjunktion Logisches OR bzw. ODER (vel) A B A∨B F F W W F W F W F W W W € bzw. A+B (Entspricht der Schreibweise A || B in den Programmiersprachen C und C++) Antivalenz Logisches OR bzw. ODER (aut) A B A≠B F F W W F W F W F W W F€ € bzw. A ⊕ B (Entspricht der Schreibweise A != B in den Programmiersprachen C Äquivalenz Logisches gleich A B A=B F F W W F W F W W F F W € DV1_Kapitel_4.doc und C++) (Entspricht der Schreibweise A = = B in den Programmiersprachen C und C++) Seite 4-6 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.5 Grundgesetze der Aussagenlogik 1. 2. € 3. € 4. € Assoziativgesetze ( A ∧ B) ∧ C = A ∧ ( B ∧ C ) ( A ∨ B) ∨ C = A ∨ ( B ∨ C ) Kommutativgesetze A∧B = B∧ A A∨B = B∨ A € Distributivgesetze ( A ∨ B) ∧ C = A ∧ C ∨ B ∧ C € Absorptionsgesetze A ∧ ( A ∨ B) = A € A ∧ B ∨ C = ( A ∨ C ) ∧ (B ∨ C ) A∨ A∧B = A 5. Idempotenzgesetze (Tautologie) A∧ A = A A∨ A = A € 6. Gesetz für die Negation A∧ A = F € A∨ A =W De Morgansche Regeln A∧B = A∨B € A∨B = A∧B € € 7. € 8. € € 9. € € Gesetze für W (wahr bzw. true) und F (falsch bzw. false) A ∧W = A A∨F = A € A∧F = F A ∨W = W W =F F =W Doppelte Negation € € € A=A € DV1_Kapitel_4.doc Seite 4-7 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.6 Rechenregeln der Schaltalgebra 4.1.1.6.1 Grundregeln für das Rechnen mit zweiwertigen Variablen3 Die bisherigen Betrachtungen wurden an Schaltungen durchgeführt. Das Ergebnis soll nun, ohne Bezugnahme auf ein spezielles technisches System, in allgemeiner Gestalt formuliert werden. Gegeben sei eine Menge von Variablen A, B, C, ... , von denen jede nur zwei Werte annehmen kann, die durch die Symbole 0 und 1 bezeichnet sind. Für diese Variablen gelten die folgenden Regeln: I. Gleichheitsregel Nimmt von zwei Variablen A, B die eine den Wert 0 genau dann an, wenn ihn die andere annimmt, so seien sie als gleich bezeichnet. II. Additionsregel Gegeben die Variablen A, B und C. Nimmt C genau dann den Wert 1 an, wenn A oder B den Wert 1 aufweist, so heißt C die Summe von A und B, in Zeichen: C = A + B. III. Multiplikationsregel Gegeben die Variablen A, B und C. Nimmt C genau dann den Wert 1 an, wenn A und B den Wert 1 annehmen, so heißt C das Produkt von A und B, in Zeichen: C = AB. IV. Komplementierungsregel Nimmt von zwei Variablen A und B die Variable B genau dann den Wert 1 an, wenn A den Wert 0 aufweist, so heißt B das Komplement von A, in Zeichen B = A . V. Existenz des Nullelementes € Es gibt eine Variable, die ausschließlich den Wert 0 annimmt. Sie werde als Nullelement bezeichnet und erhalte das Symbol 0. VI. Existenz des Einselementes Es gibt eine Variable, die ausnahmslos den Wert 1 hat. Sie werde Einselement oder Identität genannt und mit 1 bezeichnet. 3 Otto Föllinger, Wolfgang Weber; Methoden der Schaltalgebra; R. Oldenbourg Verlag München – Wien (1967) DV1_Kapitel_4.doc Seite 4-8 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.6.2 Regeln für die booleschen Konstanten 1a,b) 1∧1 = 1 0∨0 = 0 2a,b) 0∧0 = 0 1∨1 = 1 3a,b) 1∧ 0 = 0 ∧1 = 0 1∨ 0 = 0 ∨1 = 1 4a,b) 0 =1 1= 0 Regeln für eine Veränderliche € € 5a,b) A ∨0 = A A ∧1 = A 9) A=A € 6a,b) A ∨1 = 1 A ∧0 = 0 € Regeln für 2 und 3 Veränderliche € 10a,b) 12a,b) € 14a,b) € A∨B = B∨ A A∧B = B∧ A € 7a,b) € 11a,b) A ∧ B ∨ A ∧ C = A ∧ (B ∨ C ) ( A ∨ B) ∧ ( A ∨ C ) = A ∨ B ∧ C € A ∧ (A ∨ B) = A ∧ B € A∨ A =1 8a,b) A∧ A = 0 A∨ A = A A∧ A = A € A ∨ B ∨ C = (A ∨ B) ∨ C = A ∨ (B ∨ C) A ∧ B ∧ C = (A ∧ B) ∧ C = A ∧ (B ∧ C) A∨ A∧B = A 13a,b) 15) A∨ A∧B = A∨B € A ∧ ( A ∨ B) = A ( A ∨ B) ∧ (A ∨ C) = A ∧ C ∨ A ∧ B Satz von de Morgan4: € 16a,b) € A ∨ B ∨ C ∨ D ∨… = A ∧ B ∧ C ∧ D ∧… A ∧ B ∧ C ∧ D ∧… = A ∨ B ∨ C ∨ D ∨… Satz von Shannon: 17) € f ( A,B,C,D,…,Z,∨,∧) = f (A,B,C,D,…,Z,∧,∨) Das Theorem kann allgemein wie folgt formuliert werden: € Die Negation eines Ausdrucks wird in einen unnegierten Ausdruck umgewandelt, wenn alle Disjunktionen in Konjunktionen, alle Konjunktionen in Disjunktionen, alle negierten Variablen in unnegierte und alle unnegierten in negierte Variable umgewandelt werden. 4 De Morgan, Augustus; britischer Mathematiker und Logiker; *Madura (Indien) 27.6.1806, †London 18.3.1871; war 1828 – 31 und 1836 – 1866 Professor am University College in London; arbeitete vor allem über Algebra, Mathematische Logik und Geschichte der Wissenschaften; begründete durch seine Formulierung der Junktorenlogik im Rahmen eines Klassenkalküls (1847) neben George Boole die Algebra der Logik. DV1_Kapitel_4.doc Seite 4-9 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.7 Herleitung des Theorems von De Morgan Von den Beziehungen aus den Grundgesetzen der Aussagenlogik ist jetzt nur noch das Theorem von De Morgan aus den Axiomen von Huntington zu folgern. Es werde etwa in der Form AB = A + B hergeleitet. € Es gilt (13) A + A = 1 (14) AA = 0 (15) B + B = 1 € (16) BB = 0 € Durch Multiplikation von (13) und (15) folgt: € € AB + AB + AB + AB = 1 also wegen des Gesetzes A + A = A € AB + AB + AB + AB + AB = 1 AB + A(B + B) + B(A + A) = 1 Nach (13) und (15) ergibt sich hieraus bei Berücksichtigung von H 3: € (17) AB + (A + B) = 1 Andererseits ist € AB(A + B) = (AB)A + (AB)B = B(AA) + A(BB) = B ∧ 0 + A ∧ 0 = 0 also € (18) € AB(A + B) = 0 Die Gleichungen (17) und (18) zusammen besagen aber, dass (A + B) das Komplement zu AB ist, so dass also gilt: AB = A + B € € Bei diesem Beweis wurde das Assoziativgesetz sowohl für die Addition als auch für die Multiplikation mehrfach benutzt. DV1_Kapitel_4.doc Seite 4-10 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.8 Theorem von De Morgan für eine beliebige Zahl von Variablen Es wurde bewiesen, dass das Theorem von de Morgan für zwei logische Variablen gilt. Zu beweisen ist aber noch, ob es für eine beliebige Zahl von Variablen gilt. Dazu wollen wir zunächst annehmen, dass es für n Variable gilt. Das haben wir für n = 2 bereits bewiesen. Wenn es nun gelingt zu beweisen, dass es mit einer weiteren Variablen auch noch gilt, dann gilt es immer. Es gelte als bewiesen: (1) A1 A2 … An = A1 ∨ A2 ∨…∨ An Behauptung: € (2) A1 A2 … An An +1 = A1 ∨ A2 ∨…∨ An ∨ An +1 Es gilt: € (3) (4) (5) € (6) A1 A2 … An ∨ A1 A2 … An = 1 (A1 A2 … An ) ∧ (A1 A2 … An ) = 0 An +1 ∨ An +1 = 1 An +1 ∧ An +1 = 0 € Nun multiplizieren wir (3) und (5); oder anders formuliert; wir wenden das Distributivgesetz € an und erhalten: € ( ) (A1 A2 … An ∨ A1 A2 … An ) ∧ An +1 ∨ An +1 = 1∧1 (7) A1 A2 … An An +1 ∨ A1 A2 … An An +1 ∨ A1 A2 … An ∧ An +1 ∨ A1 A2 … An ∧ An +1 = 1 ( ) A1 A2 … An An +1 ∨ An +1 A1 A2 … An ∨ A1 A2 … An ∨ A1 A2 … An (An +1 ∨ An +1 ) = 1 Auf die Klammerausdrücke der letzten Zeile in (7) wenden wir nun das Gesetz der Negation an und erhalten € (8) A1 A2 … An An +1 ∨ An +1 ∧1∨ A1 A2 … An ∧1 = 1 A1 A2 … An An +1 ∨ (An +1 ∨ A1 A2 … An ) = 1 In (8) kann nun entweder der linke Term 1 sein, oder der in Klammern stehende rechts; es muss also einer der beiden Terme 1 sein. € Wir betrachten nun den Ausdruck DV1_Kapitel_4.doc Seite 4-11 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra A1 A2 … An An +1 ∧ (A1 A2 … An ∨ An +1 ) = (9) (A1 A2 … An An +1 ) ∧ A1 A2 … An ∨ (A1 A2 … An An +1 ) ∧ An +1 = An +1 ∧ (A1 A2 … An ∧ A1 A2 … An ) ∨ A1 A2 … An (An +1 ∧ An +1 ) Auf die letzte Zeile von (9) wenden wir wieder das Gesetz für die Negation in den Klammerausdrücken an und erhalten € (10) An +1 ∧ 0 ∨ A1 A2 … An ∧ 0 = 0 D.h. der Ausdruck (9) ergibt 0; es muss also einer der beiden Terme 0 sein. Aus (8) und (10) folgt jeweils, dass die Terme zueinander komplemtentär sein müssen, da beide Gleichungen € berechnet wurden; daher muss gelten: als gültig (11) A1 A2 … An An +1 = An +1 ∨ A1 A2 … An Nun haben wir aber die Gleichung (1) A1 A2 … An = A1 ∨ A2 ∨…∨ An als gültig, bzw. bewiesen betrachtet und können diese nun in (11) einsetzen. Damit erhalten wir € (12) A1 A2 … An An +1 = An +1 ∨ A1 ∨ A2 ∨…∨ An € A1 A2 … An An +1 = A1 ∨ A2 ∨…∨ An ∨ An +1 und damit ist die Behauptung nach Gleichung (2) bewiesen. € DV1_Kapitel_4.doc Seite 4-12 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.9 Zusammenfassung der logischen Grundfunktionen für zwei Variablen 4.1.1.9.1 Verknüpfungsarten (Operatoren in C) x1 = x2 = 0 1 0 1 Bezeichnung 0 0 1 1 y0 = y1 = y2 = y3 = y4 = y5 = y6 = 0 0 0 0 0 0 0 y7 = 0 1 1 1 y8 = 1 0 0 0 y9 = 1 0 0 1 y10 = y11 = y12 = y13 = y14 = y15 = 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 Operatoren in C für logische Verknüpfungen Operatoren in C für Bitoperationen Null y0 = 0 y0 = 0 Konjunktion (UND) y1 = x1 && x2 y1 = x1 & x2 Inhibition (x2 aber nicht x1) y2 = !x1 && x2 y2 = ~x1 & x2 Transfer y3 = x2 y3 = x2 Inhibition (x1 aber nicht x2) y4 = x1 && !x2 y4 = x1 & ~x2 Transfer y5 = x1 y5 = x1 Antivalenz, y6 = x1 && !x2 || !x1 && y6 = x1 ^ x2 exclusiv – oder x2 entweder … oder (aut) Disjunktion, y7 = x1 || x2 y7 = x1 | x2 inclusiv – oder (vel) weder – noch y8 = !x1 && !x2 y8 = ~x1 & ~x2 Peircescher Pfeil Äquivalenz5 y9 = !x1 && !x2 || x1 && y9 = ~(x1 ^ x2) x2 Komplement (Nicht x1) y10 = !x1 y10 = ~x1 Implikation y11 = !x1 || x2 y11 = ~x1 | x2 Komplement (Nicht x2) y12 = !x2 y12 = ~x2 Implikation y13 = x1 || !x2 y13 = x1 | ~x2 Shefferscher Strich y14 = !x1 || !x2 y14 = ~x1 | ~x2 Identität y15 = 1 y15 = 1 5 Man beachte, dass bei Bitoperationen die Antivalenz in der Programmiersprache C durch den Operator ^ dargestellt wird. Andererseits wird die Konjunktion in der Regel durch den sehr ähnlich aussehenden Operator dargestellt; allerdings nicht in der Programmiersprache C. DV1_Kapitel_4.doc Seite 4-13 von 28 ∧ Rüdiger Siol 12.09.2009 16:29 € Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.1.9.2 Verknüpfungsarten (Weitere Schreibweisen) x1 = x2 = y0 = y1 = y2 = y3 = y4 = y5 = y6 = y7 = y8 = y9 = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 Bezeichnung Weitere Schreibweisen Null Konjunktion (UND) Inhibition (x2 aber nicht x1) Transfer Inhibition (x1 aber nicht x2) € Transfer € Antivalenz, exclusiv – oder € entweder … oder (aut) 0 1 1 1 Disjunktion, € inclusiv – oder (vel) 1 0 0 0 weder – noch Peircescher Pfeil € 1 0 0 1 Äquivalenz y10 = 1 0 1 0 Komplement (Nicht x1) y11 = 1 0 1 1 Implikation y12 = y13 = y14 = y15 = 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 Komplement (Nicht x2) Implikation Shefferscher Strich Identität DV1_Kapitel_4.doc € € € € € € y0 = 0 y1 = x1∧ x2 y2 = ¬x1∧ x2 y3 = x2 y4 = x1∧¬x2 € y5 = x1 y6 = x1 ≠€x2 y0 = 0 y1 = x1• x2 y2 = x1'•x2 y3 = x2 y4 = x1• x2' y5 = x1 y6 = x1 ⊕ x2 € y7 = x1∨ x2 € y7 = x1 + x2 y8 = x1↓ x2 y8 = x1'•x2' y9 = x1 ≡ x2 y9 = (x1 ⊕ x2)' y9 = x1↔ € x2 y10 = ¬x1 y11 = x1€ → x2 y10 = x1’ y11 = x1'+ x2 y11 = ¬x1∨ x2 y12 = ¬x2 y13 = x1← € x2 y14 = x1 / x2 y15 = 1 y12 = x2’ y13 = x1+ x2' y14 = x1'+ x2' y15 = 1 Seite 4-14 von 28 € € Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten 4.1.2 Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Benennungen, Schaltsymbole und Schaltfunktion Die BOOLEsche Algebra geht üblicherweise von folgenden drei Grundoperationen aus 1. Negation 2. Konjunktion 3. Disjunktion 4.1.2.1 Negation (Komplementbildung) Die Negation ist eine Funktion einer einzigen Variablen. Hat die Variable den Wert Eins, dann ist die negierte Variable Null und umgekehrt. Dieser Zusammenhang ist in der Funktionstabelle dargestellt. x 0 1 y 1 0 Formelmäßig wird die Negation durch einen Querstrich über die zu negierende Variable ausgedrückt; häufig sind auch andere Schreibweisen üblich. y = x = ¬x =~ x =!x In Worten ausgesprochen: y gleich x nicht (y gleich „not x“). € Spezielle Fälle sind: 0 =1 1= 0 Eine mehrfache Anwendung der Negation ergibt: € € x=x € x DV1_Kapitel_4.doc x=x 1 y y = ~x Seite 4-15 von 28 x 0 1 y = ~x 1 0 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.2.2 Konjunktion Die Konjunktion sei zunächst für den Fall zweier binärer Variabler x1 und x2 anhand einer Funktionstabelle beschrieben. Die Tabelle für die Konjunktion sagt aus, dass nur dann y = 1 ist, wenn x1 und x2 gleich 1 sind. In allen anderen Fällen ist y = 0. Dieser Sachverhalt wird formelmäßig oft durch das unhandliche Zeichen “&“ ausgedrückt. Hier wird aber der Einfachheit halber der Punkt "." als Operationszeichen für die Konjunktion verwendet. Wenn ein Irrtum ausgeschlossen ist, wird der Punkt auch weggelassen. Die Konjunktion wird zunächst für den Fall zweier unabhängiger Variabler x1 und x2 anhand der folgenden Funktionstabelle erklärt. x1 0 0 1 1 x2 0 1 0 1 y 0 0 0 1 Die zugehörige Formal lautet: y = x1 & x 2 = x1 • x 2 = x1 x 2 = x1 ∧ x 2 Speziell gilt: € x •0 = 0 x •1 = x x•x = x x•x =0 Ferner gilt das kommutative Gesetz € x1 • x 2 = x 2 •€x1 € x1 x2 & y y = x1 & x2 x1 0 0 1 1 x2 0 1 0 1 y = x1 & x2 0 0 0 1 Durch eine formal gleichartige Überlegung, wie sie bei der Disjunktion mehrerer Variabler angestellt wurde, ergibt sich für die Konjunktion mehrerer (n) Variabler y = x1 • x 2 • x 3 … x i … x n = 1 falls alle xi = 1 sind = 0 in allen übrigen Fällen. € Die Konjunktion aller Variabler bezeichnet man als Vollkonjunktion oder Minterm. Die Bezeichnung Minterm hat ebenso wie die Bezeichnung Maxterm eine anschauliche Bedeutung, die noch näher erläutert wird. DV1_Kapitel_4.doc Seite 4-16 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Für die Konjunktion gilt das assoziative Gesetz: x1 • (x 2 • x 3 ) = (x1 • x 2 ) • x 3 An dieser Stelle sei nochmals vermerkt, dass in der Literatur häufig andersartige Symbole für die einzelnen Verknüpfungsoperatoren verwendet werden. Eine Liste der € verschiedenen Symbole mit anderen Verknüpfungsarten folgt noch. x1 x2 & x3 … y y = x1 ∧ x 2 ∧…∧ x n xn € DV1_Kapitel_4.doc Seite 4-17 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.2.3 Disjunktion Die Disjunktion wird zunächst für den Fall zweier unabhängiger Variabler x1 und x2 anhand der folgenden Funktionstabelle erklärt. x1 0 0 1 1 x2 0 1 0 1 y 0 1 1 1 Diese sagt aus, dass y = 1 ist, wenn x1 oder x2 gleich 1 ist, oder wenn beide x1 und x2 gleich 1 sind (sogenanntes inklusives oder, auch vel genannt). Nur wenn zugleich x1 und x2 gleich 0 sind, ist auch y = 0. Dieser Sachverhalt wird formelmäßig durch das Operationszeichen ∨ ausgedrückt; wobei aber auch häufig |, || oder + verwendet wird. y = x1 ∨ x 2 = x1 | x 2 = x1 || x 2 = x1 + x 2 € Es gelten folgende Spezialfälle: € x ∨1 = 1 x ∨0 = x x∨x = x x ∨ x =1 Aus der Funktionstabelle ergibt sich die Gültigkeit des kommutativen Gesetzes: € € x1 ∨ x€2 = x 2 ∨ x1 x1 x2 ≥1 y = x1 ∨ x 2 x1 0 0 1 1 x2 0 1 0 1 y = x1 | x2 0 1 1 1 € nicht zwei sondern drei Variable disjunktiv miteinander Es wird nun der Fall betrachtet, dass verknüpft werden. y = x1 ∨ x 2 ∨ x 3 Hier substituiert man € z = x2 ∨ x3 Dadurch erhält man € y = x1 ∨ z Hier wird y = 0 nur dann, wenn zugleich x1 und z gleich 0 sind. In allen Übrigen Fällen ist y=1. Andererseits wird nur dann z = 0, wenn zugleich x1 und x2 gleich 0 sind. € DV1_Kapitel_4.doc Seite 4-18 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Verallgemeinerung: Diese Überlegung lässt sich für beliebig viele Variable fortsetzen. Man erkennt hieraus unmittelbar für die Disjunktion n unabhängiger Variabler y = x1 ∨ x 2 ∨ x 3 ∨…∨ x n = 0 falls alle xi = 0 = 1 in allen übrigen Fällen. € Kommen in einer Funktion n binäre Variable vor, dann bezeichnet man einen Ausdruck, in dem alle Variable disjunktiv miteinander verknüpft sind, als Volldisjunktion oder auch als Maxterm. Der Sinn dieser Bezeichnungsweise wird sich später ergeben. Für die Disjunktion mehrerer Variabler gilt das assoziative Gesetz, wie man durch Einsetzen verifizieren kann. x1 ∨ (x 2 ∨ x 3 ) = (x1 ∨ x 2 ) ∨ x 3 (Klammern haben in der Schaltalgebra die gleiche Bedeutung wie in der gewöhnlichen Algebra, d. h., die in Klammern stehenden Operationen müssen zuerst ausgeführt werden.) € x1 x2 ≥1 x3 … y y = x1 ∨ x 2 ∨ x 3 ∨…∨ x n xn € DV1_Kapitel_4.doc Seite 4-19 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.2.4 Schaltsymbole in alter und neuer Norm DV1_Kapitel_4.doc Seite 4-20 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.1.2.5 Schaltsymbole nach DIN 40900 Teil 12 A B A B A B & & ≥1 Q € Q Q€ B 0 1 0 1 Q = A∧B A B Q = A∧B 0 0 1 1 0 1 0 1 1 1 1 0 A B Q = A∨B 0 0 1 1 0 1 0 1 0 1 1 1 A B Q = A∨B 0 0 1 1 0 1 0 1 1 0 0 0 A 0 0 1 1 Q = A∧B Q = A∧B Q = A∨B € € 0 0 0 1 € A B ≥1 € Q Q = A∨B A B =1 € Q Q= A⊕B A B =1 € Q Q= A⊕B A 1 € Q Q= A € A 0 0 1 1 B 0 1 0 €1 Q= A⊕B A 0 0 1 1 B 0 1 0 €1 Q= A⊕B 0 1 1 0 1 0 0 1 A Q= A 0 1 1 0 € € DV1_Kapitel_4.doc Seite 4-21 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.2 Normalformen Mit den Grundverknüpfungen Konjunktion, Disjunktion und Negation kann jede widerspruchsfreie Funktion endlich vieler binärer Variabler beschrieben werden. Um das einzusehen, sei eine Funktion mit n Variablen x1; x2; … ; xn betrachtet. Diese n Variablen können je die Werte 0 und 1 annehmen, d. h., es können 2n Fälle auftreten. Für jeden dieser 2n Fälle kann y entweder 0 oder 1 sein. Eine jede Funktion mit n binären Variablen muss sich also in einer Funktionstabelle darstellen lassen. Die einzelnen Terme dieser Normalformdarstellungen nennt man Fundamentalterme. Ein Fundamentalterm ist eine Konjunktion bzw. Disjunktion von Variablen (Fundamentalkonjunktion bzw. Fundamentaldiskonjunktion). Eine disjunktive (konjunktive) Normalform ist eine Disjunktion (Konjunktion) von Fundamentalkonjunktionen (Fundamentaldisjunktionen). 4.2.1 Kanonische Normalformen. Das logische Verhalten einer Kombinationsschaltung läßt sich durch viele disjunktive bzw. konjunktive Normalformen beschreiben. Besondere Bedeutung haben die bei den kanonischen (vollständigen) Normalformdarstellungen : die kanonische disjunktive und die kanonische konjunktive Normalform (KDNF bzw. KKNF). Die KDNF besteht aus der disjunktiven Verknüpfung aller Elementarkonjunktionen, für die die Ausgangsvariable den Funktionswert Y = 1 annimmt. Die KKNF besteht dagegen aus der konjunktiven Verknüpfung aller Elementardisjunktionen, für die die Ausgangsvariable den Funktionswert Y = 0 annimmt. Eine Elementarkonjunktion (Elementardisjunktion) ist eine Fundamentalkonjunktion (Fundamentaldisjunktion), die alle Variablen einer Schaltfunktion beinhaltet. Von jeder Schaltfunktion existiert genau eine KDNF und eine KKNF. Beide sind äquivalent und ineinander überführbar (Dualitätsprinzip ). Die Elementarkonjunktionen werden auch Minterme (mi) genannt (manchmal auch nur diejenigen Elementarkonjunktionen, aus denen sich die KDNF zusammensetzt). Die Elementardisjunktionen werden auch Maxterme (Mi) genannt (manchmal auch nur diejenigen Elementardisjunktionen, aus denen sich die KKNF zusammensetzt). Nach dieser Definition gibt es für eine aus 3 Variablen bestehende Schaltfunktion insgesamt 23 = 8 Minterme mo ... m7 und 23 = 8 Maxterme Mo ... M7. Zugehörige Minterme und Maxterme sind komplementär: M i = mi € DV1_Kapitel_4.doc Seite 4-22 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.2.2 € Kanonische disjunktive Normalform (KDNF) In jeder der 23 = 8 Zeilen tritt jede unabhängige Variable xk (mit einem speziellen Wert 0 oder 1) auf. Der Inhalt jeder Zeile lässt sich also durch Minterme der Form m j = x'1 ∧x'2 ∧x'3 darstellen, wobe x’k entweder xk oder x k bedeutet. Für jede Zeile soll der betreffende Minterm mj den Wert (0 oder 1) annehmen, den die abhängige Variable y dort annimmt. Ein Minterm lässt sich aber nur für solche Zeilen in eindeutiger Weise aufstellen, für welche y = 1 ist. Man erreicht dies für diese€Zeilen mit y = 1 in der Weise, dass x’k = xk gesetzt wird, wenn xk = 1 ist, und x’k = x k gesetzt wird, wenn xk = 0 ist. Darstellung einer Funktion dreier binärer Eingangsvariablen durch eine Funktionstabelle € (Wertetabelle bzw. Schaltbelegungstabelle) x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 y 0 0 1 1 1 0 0 0 m1 m2 m3 m4 m5 m6 m7 m8 M1 M2 M3 M4 M5 M6 M7 M8 m = Minterm; M = Maxterm und es gilt: M = m Für die Minterme gilt also: m 3 = x1 ∧ x 2 ∧ x 3 € m 4 = x1 ∧ x 2 ∧ x 3 m5 = x1 ∧ x 2 ∧ x 3 Für die Zeilen mit y = 0 gibt es verschiedene Möglichkeiten zur Aufstellung eines Minterms. Zur Darstellung des gesamten Sachverhaltes kann man aber auf die Zeilen mit y = 0 € verzichten. Es genügt, wenn nur die Zeilen mit y = 1 betrachtet werden, weil wegen des binären Charakters in allen übrigen Fällen automatisch y = 0 sein muss. Die Aussage der Tabelle wird also vollständig durch folgende Beziehung wiedergegeben y = m3 ∨ m4 ∨ m5 y = (x1 ∧ x 2 ∧ x 3 ) ∨ (x1 ∧ x 2 ∧ x 3 ) ∨ (x1 ∧ x 2 ∧ x 3 ) € Dieser Schematismus lässt sich ohne weiteres auch für Funktionen mit n Variablen x1; x2; … ; xn anwenden. Man greift dazu wieder aus der Funktionstabelle die Zeilen heraus, für die y = 1 ist. Für diese Zeilen wird der entsprechende Minterm gebildet. Die disjunktive Verknüpfung dieser Minterme bilden die Funktion y = f(x1; x2; … ; xn). DV1_Kapitel_4.doc Seite 4-23 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Die auf diese Weise gebildete Form der Funktion bezeichnet man als disjunktive Normalform (Wird auch als Mintermform bzw. Kanonische6 disjunktive Normalform (KDNF) bezeichnet). Jede widerspruchsfreie Funktion endlich vieler binärer Variabler lässt sich damit als disjunktive Normalform darstellen, welche nur die Grundverknüpfungen Konjunktion Disjunktion und Negation enthält. Diese lässt sich direkt aus der Schaltbelegungstabelle ablesen 4.2.3 Kanonische konjunktive Normalform (KKNF) Eine andere wichtige Darstellungsart einer Funktion endlich vieler binärer Variabler ist die konjunktive Normalform (Wird auch als Maxtermform bzw. Kanonische konjunktive Normalform (KKNF) bezeichnet). Hierzu geht man von den Maxtermen aus. In der Funktionstabelle soll in jeder Zeile der betreffende Maxterm Mk wieder den Wert (0 oder 1) haben, den die unabhängige Variable y dort hat. Nun lässt sich ein Maxterm nur für solche Zeilen in eindeutiger Weise aufstellen, für welche y = 0 ist. Das erreicht man, indem man x’k = xk setzt, wenn xk = 0 ist und x’k = x k setzt, wenn xk = 1 ist. Für die Maxterme M1; M2; M6; M7 und M8 gilt also M1 = x1 ∨ x 2 ∨ x 3 € M 2 = x1 ∨ x 2 ∨ x 3 M 6 = x1 ∨ x 2 ∨ x 3 M 7 = x1 ∨ x 2 ∨ x 3 M 8 = x1 ∨ x 2 ∨ x 3 Der gesamte Sachverhalt wird vollständig erfasst, wenn nur die Zeilen mit y = 0 betrachtet werden. Das sind also in diesem Fall die Maxterme. Diese Maxterme, konjunktiv verknüpft, € die Funktion y. ergeben y = M1 ∧ M 2 ∧ M 6 ∧ M 7 ∧ M 8 y = (x1 ∨ x 2 ∨ x 3 ) ∧ (x1 ∨ x 2 ∨ x 3 ) ∧ (x1 ∨ x 2 ∨ x 3 ) ∧ (x1 ∨ x 2 ∨ x 3 ) ∧ (x1 ∨ x 2 ∨ x 3 ) In dieser Gleichung wird y = 0, wenn wenigstens ein Maxterm Mi = 0 ist. Es kann nur dann y = 1 sein, wenn keiner der Maxterme zu Null wird. Ein beliebiger Maxterm Mi wird € aber nur dann zu Null, wenn alle xk = 0 (bzw. x k = 1) sind. Das trifft aber nur für die ausgewählten Zeilen mit y = 0 zu. y wird 1, wenn wenigstens ein Minterm m = 1 ist. Es kann nur dann y = 0 sein, wenn keiner der Minterme zu Eins wird. Ein beliebiger Minterm m wird aber nur dann zu Eins, € wenn alle xk = 1 (bzw. x k = 0 ) sind. Das trifft aber nur für die ausgewählten Zeilen mit y = 1 zu. € 6 1) Bildungssprachlich für: als Richtschnur, klassisches Muster dienend 2) Physik und Mathematik: Für die Beschreibung eines physikal. mathemat. Vorgangs am besten geeignet, angepasst. DV1_Kapitel_4.doc Seite 4-24 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.3 Wahrheitstafel bzw. Schaltbelegungstabelle (SBT) Die Begriffe „Wahrheitstafel“ bzw. „Wahrheitstabelle“ wurden in der Aussagenlogik eingeführt. Eine Aussagenvariable kann den Wert „wahr“ (w) oder „falsch“ (f) haben. Sind mehrere Aussagenvariablen miteinander zu verknüpfen so gilt es, alle möglichen Kombinationen zu erfassen. Diese Kombinationen werden in einer Wahrheitstafel dargestellt die dann vollständig ist, wenn sie alle möglichen Kombinationen erfaßt. Aus den Wahrheitstafeln kann man Formeln der Aussagenalgebra ablesen. Der Begriff „Schaltbelegungstabelle“ wurde beim Entwurf digitaler Systeme im Zusammenhang mit der Schaltalgebra eingeführt. Bei dieser Algebra nehmen die Variablen nur 2 Werte an, nämlich 0 oder 1. Aus den Schaltbelegungstabellen kann man Formeln der Schaltalgebra ablesen. Die Analogie der Grundgesetze (Rechenregeln) der Mengenlehre, der Aussagenlogik und der Schaltalgebra führt zu dem Begriff der Booleschen Algebra. 4.3.1 Darstellung aller Eingangsvariablen einer Schaltbelegungstabelle Soll für n Eingangsvariablen eine SBT erstellt werden, so sind n Spalten und 2 n Zeilen erforderlich. Die Kombination je Zeile kann als n-stellige Dualzahl interpretiert werden. Um alle Kombinationen zu erhalten zählt man im Dualsystem von 0,1,…,(2 n −1) und schreibt die binären Werte in jede Zeile. € Beispiel: Gegeben seien die Variablen a,b,c,d; also benötigt man 16 Zeilen und 4 Spalten. € Eingangsvariable a b c d 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 DV1_Kapitel_4.doc Seite 4-25 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.3.2 Darstellung einer vollständigen Schaltbelegungstabelle Den Kombinationen der Eingangsvariablen je Zeile können Ausgangsvariable zugeordnet werden. Jede Spalte für eine Ausgangsvariable definiert eine Ausgangsfunktion (Schaltfunktion bzw. auch eine Formel oder einen Ausdruck der Aussagenalgebra). (2n ) Bei n Spalten und 2 n Zeilen kann man also 2 Ausgangsfunktionen definieren. Das haben wir schon in der Zusammenfassung der logischen Grundfunktionen für zwei Variablen gezeigt für alle 16 Funktionen. € Beispiel: Eingangsvariable a b c d 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 € Ausgangsfunktionen f1 f2 f3 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 In dieser SBT sind drei Ausgangsfunktionen definiert, wobei: f1 = 1 sofern 3 Eingangsvariable den Wert 1 haben. f2 = 1 sofern die Dualzahl je Zeile durch 7 teilbar ist. f3 = 1 sofern a = b und c = d ist. Je Funktion ermittelt man nun die Minterme und schreibt dann die Kanonische Disjunktive Normalform (KDNF) für diese Funktion. f 1 = abcd ∧ abcd ∧ abcd ∧ abcd Es ist also: f 2 = abcd ∧ abcd f 3 = abcd ∧ abcd ∧ abcd ∧ abcd € DV1_Kapitel_4.doc Seite 4-26 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra 4.3.3 Ansteuerung einer LED Anzeige für BCD-Codes Die nachfolgend dargestellte Anzeige verfügt über die 7 Segmente a,b,c,d,e,f,g die selektiv dunkel getastet werden können. Für die Ziffern von 0 bis 9 benötigen wir 4 bit. Nun schaut man sich die Anzeige an und wählt die jeweils richtige Kombination. BCD --> 7-Segment Code (r.siol) 22.04.2007 Hochschule Ravensburg-Weingarten Technik | Wirtschaft | Sozialwesen 26 Daraus ergibt sich folgende Schaltbelegungstabelle: Eingangsvariable D C B A 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 Ausgangsvariable a b c d e f g 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 Dezimalziffer 0 1 2 3 4 5 6 7 8 9 Damit ist festgelegt, wie das IC für Siebensegmentcode (Der Code Umsetzer) hergestellt werden mußte. DV1_Kapitel_4.doc Seite 4-27 von 28 Rüdiger Siol 12.09.2009 16:29 Hochschule Ravensburg-Weingarten 4.3.4 Fakultät Technologie und Management Informationsverarbeitung Vorlesung zur Datenverarbeitung 1 Boolesche Algebra Vollständige und unvollständige Funktionen. Vollständige Funktionen sind Funktionen, bei denen die Ausgangsvariablen für jede aller möglichen Eingangskombinationen einen definierten Wert (0 oder 1) annehmen. Es gibt jedoch auch Fälle, bei denen Kombinationen von Eingangsvariablen auftreten, für die keine eindeutige Zuordnung der Ausgangsvariablen existiert (die Ausgangsvariable darf mit einem beliebigen Wert 0 oder 1 belegt werden). Solche Funktionen heißen unvollständig. Die zu diesen Eingangskombinationen gehörige Zeile der SBT wird entweder ganz weggelassen, oder es wird ein X in die entsprechende Ausgangsvariablenspalte eingetragen. Beim Aufstellen der Schaltfunktion in kanonischer disjunktiver Normalform können die genannten Eingangskombinationen unberücksichtigt bleiben oder als zusätzliche Elementarkonjunktionen Berücksichtigung finden. Der letztgenannte Fall bietet u. U. Vorteile bei der Vereinfachung der Schaltfunktion. DV1_Kapitel_4.doc Seite 4-28 von 28 Rüdiger Siol 12.09.2009 16:29