Binäre Entscheidungsgraphen

Größe: px
Ab Seite anzeigen:

Download "Binäre Entscheidungsgraphen"

Transkript

1 Binäre Entscheidungsgraphen Christel Baier Skript zum Seminar SS 2012 i

2 Inhaltsverzeichnis 1 Schaltfunktionen und Schaltkreise Schaltfunktionen Schaltkreise Logische Netze für kombinatorische Schaltkreise Logische Netze für sequentielle Schaltkreise Finite State Machines Funktionale Äquivalenz Binäre Entscheidungsgraphen Geordnete binäre Entscheidungsgraphen OBDDs und Schaltfunktionen Reduzierte OBDDs Grundlegende Algorithmen auf OBDDs Binäre boolesche Operatoren Kofaktoren, Negation und Komposition Einfache Analysealgorithmen Implementierungstechniken Die Eindeutigkeitstabelle Der ITE Algorithmus Komposition und Kofaktoren Speicherverwaltung Komplementierte Kanten BFS-basierte Synthesealgorithmen Das Problem der Variablenordnung Der Einfluß der Variablenordnung Separate ROBDD-Darstellungen versus shared OBDDs Minimierungsalgorithmen Der Variablenswap und Variablenshift Exakte Minimierung Dynamische Umordnungsheuristiken Heuristiken für günstige Anfangsordnungen Analyse sequentieller Schaltkreise Symbolische Erreichbarkeitsanalyse ii

3 4.2 Relationales Produkt Verallgemeinerte Kofaktoren Der Constrain-Operator Der Restrict-Operator Einsatz verallgemeinerter Kofaktoren zur Bildberechnung Partitionierung der Übergangsrelation Output- und Input-Splitting Vorgezogene Quantifizierung Verzahnung von Konjunktion und Quantifizierung Vorwärts- versus Rückwärtssuche Diskrete Funktionen mit reellem Wertebereich Multiterminale Entscheidungsgraphen Der APPLY-Algorithmus für MTBDDs Matrizenrechnung mit MTBDDs Kürzeste Wege Probleme und Matrizenmultiplikation in Quasi-Ringen Entscheidungsgraphen mit Kantengewichten Anwendungen von BDDs in der zweistufigen Logiksynthese Symblische Primimplikantenberechnung Zero-surpressed BDDs Syntax und Semantik von ZBDDs Reduzierte ZBDDs OBDDs versus ZBDDs Implementierung und Operatoren auf ZBDDs Anwendung von ZBDDs in der zweistufigen Logiksynthese iii

4 Einleitung Binäre Entscheidungsgraphen (engl. Abkürzung BDD für binary decision diagram ) wurden erstmals von Lee (1959) und Akers (1978) als Datenstruktur für Schaltfunktionen untersucht. Wir beschäftigen uns hier nur mit geordneten BDDs (Abkürzung OBDDs), einer Variante, die auf Bryant(1986) zurückgeht und in der eine feste Ordnung der Variablen einer Schaltfunktionen vorausgesetzt wird. OBDDs haben sich in den letzten Jahren für die Synthese und Analyse von kombinatorischen und sequentiellen Schaltkreise bewährt und werden heutzutage in zahlreichen CAD/CAV Tools 1 (z.b. ESPRESSO, SIS/VIS, LSS, SMV, VERUS, COSPAN, etc.) eingesetzt. Zu den populärsten Beispielen, die den Erfolg BDD-basierter Techniken demonstrieren, zählen die Falsifizierung des IEEE Futurebus+ cache coherence Protokolls (1992) und des Intel Pentium Dividierers (1994). Neben dem Einsatz von BDDs für den Hardwareentwurf gibt es zahlreiche andere Anwendungsbereiche (Komplexitätstheorie, Künstliche Intelligenz, Graphenalgorithmen, Fixpunkttheorie, Zählprobleme, Leistungsbewertung, etc). In dieser Vorlesung werden die wesentlichen Aspekte von OBDDs und einigen Anwendungen besprochen. Überblick: Abschnitt 1 (Seite 3 ff) faßt die Grundbegriffe über Schaltfunktionen, aussagenlogische Formeln und Schaltkreise zusammen, die wir im folgenden benötigen. Abschnitt 2 (Seite 47 ff) stellt die Grundkonzepte von OBDDs und deren Implementierungen in BDD-Paketen vor. Abschnitt 3 (Seite 137 ff) behandelt Strategien zur Minimierung der Darstellungsgröße von OBDDs. Abschnitt 4 (Seite 354 ff) beschäftigt sich mit Varianten von OBDDs. In Abschnitt 5 (Seite 215 ff) werden einige BDD-basierte Techniken zur Analyse sequentieller Schaltkreise vorgestellt. 1 Die Abkürzungen CAD und CAV stehen für computer-aided design und computer-aided verification. 1

5 Literatur Die Inhalte der Vorlesung können zu großen Teilen in den Büchern von Meinel und Theobald [MT98] und Wegener [Weg00] nachgelesen werden. MT98 Meinel, Theobald: Algorithmen und Datenstrukturen im VLSI-Design, Springer Weg00 I. Wegener: Branching Programs and Binary Decision Diagrams: Theory and Applications, SIAM Monographs on Discrete Mathematics and Applications, Die Monographie [Weg00] von Wegener ist ein umfassendes Werk zum Thema binäre Entscheidungsgraphen. Die Inhalte der Vorlesung sind dort weitgehend wiederzufinden. Darüberhinaus enthält es viele Aspekte von BDDs, die in der Vorlesung nicht behandelt werden. Weitere Bücher (in alphabetischer Ordnung): BD98 B. Becker, R. Drechsler: Graphenbasierte Funktionsdarstellungen, Teubner-Verlag, CGP00 E. Clarke, O. Grumberg, D. Peled: Model Checking, MIT Press, HS96 G. Hachtel, F. Somenzi: Logic Synthesis and Verification Algorithms, Kluwer Academic Press, Kro97 T. Kropf: Introduction to Formal Hardware Verification, Springer verlag, McM93 K. McMillan: Symbolic Model Checking, Kluwer Academic Press, MS99 Molitor, Scholl: Datenstrukturen und effiziente Algorithmen für die Logiksynthese kombinatorischer Schaltungen Teubner, Einige Teile der Vorlesung sind auch in [BD98], [MS99], [HS96] zu finden. [MS99] und [HS96] beschäftigen sich vorwiegend mit den Grundlagen der Logiksynthese. BDDs werden am Rande angesprochen. [BD98] behandelt neben BDDs auch andere DD-Varianten. Die Bücher [Kro97] und [CPG00] beschäftigen sich allgemein mit Verifikation. Sie enthalten einige Abschnitte über symbolisches Model Checking mit BDDs. Beide Bücher gehen weit über die Inhalte dieser Vorlesung hinaus und behandeln umgekehrt nur einen Teil der in der Vorlesung behandelten Themen. [McM93] ist die soweit mir bekannt nicht mehr erhältliche Buchversion der Doktorarbeit von Ken McMillan, in dem die Meilensteine für BDD-basiertes Model Checking gelegt wurden. 2

6 1 Schaltfunktionen und Schaltkreise Wir beginnen mit einigen Grundbegriffen, die im Verlauf der Vorlesung häufig benötigt werden. Abschnitt 1.1 behandelt Schaltfunktionen. Einige grundlegende Konzepte für kombinatorische und sequentielle Schaltkreise werden in Abschnitt 1.2 vorgestellt. 1.1 Schaltfunktionen Wir definieren Schaltfunktionen als Funktionen des Typs f : Variablenbelegung {0, 1} Dabei wird eine feste Menge von booleschen Variablen zugrundegelegt. Bezeichnung [Die Variablenmenge Z, Variablenbelegungen] Im folgenden bezeichnet Z = {z 1,..., z n } eine endliche Menge von booleschen Variablen (d.h. Variablen, welche die Werte 0 oder 1 annehmen können). Wir nehmen dabei an, daß z 1,..., z n paarweise verschieden sind. Eine Belegung (engl. evaluation) für Z ist eine Abbildung η : Z {0, 1}, die jeder Variablen z Z einen (Wahrheits-)Wert η(z) {0, 1} zuordnet. Eval(Z) bezeichnet die Menge aller Belegungen für Z. Sind a 1,..., a n {0, 1}, so schreiben wir [z 1 = a 1,..., z n = a n ] für die Belegung η Eval(Z) mit η(z i ) = a i, i = 1,..., n. Manchmal verwenden wir auch Tupelschreibweisen (a 1,..., a n ) für Belegungen und setzen damit voraus, daß eine feste Reihenfolge der Variablen aus dem Kontext hervorgeht. 2 Weiter benutzen wir häufig auch Kurzschreibweisen wie z.b. [ z = ā] statt [z 1 = a 1,..., z n = a n ] oder [ z = ā, ȳ = b] statt [z 1 = a 1,..., z n = a n, y 1 = b 1,..., y m = b m ], wobei z = (z 1,..., z n ), ȳ = (y 1,..., y m ) mit paarweise verschiedenen Variablen z 1,..., z n, y 1,..., y m und ā = (a 1,..., a n ) {0, 1} n, b = (b 1,..., b m ) {0, 1} m. Definition [Schaltfunktionen] Eine Schaltfunktion über Z ist eine Abbildung f : Eval(Z) {0, 1} Der Menge aller Schaltfunktionen über Z = {z 1,..., z n } wird mit IB(Z) oder IB(z 1,..., z n ) bezeichnet. Bezeichnung [Projektionsfunktion, boolesche Operatoren, etc.] Wir verwenden im folgenden Schreibweisen wie f = (z 1 z 2 ) z 3, um eine Schaltfunktion f IB(z 1, z 2, z 3,...) mit den offensichtlichen Funktionswerten zu bezeichnen. 3 Formal ist z i eine Kurzschreibweise für die Projektionsfunktion proj zi : Eval(Z) {0, 1}, proj zi (η) = η(z i ), 2 Klar, wenn die Variablen von 1 bis n durchnumeriert sind, ist damit auch eine Ordnung gegeben. Wenn die Variablen allerdings x, y, z heißen, ist nicht a-priori klar, welche Reihenfolge zugrundeliegt. Außerdem werden später (Kapitel 3) Permutationen von Variablenordnungen eine wichtige Rolle spielen. 3 Streng genommen müßte man in Schreibweisen wie f = (z 1 z 2 ) z 3 angeben, welche Variablenmenge Z man zugrundelegt. Beispielsweise wäre Z = {z 1, z 2, z 3 } oder auch Z = {z 1, z 2, z 3, z 4, z 5 } möglich. 3

7 wobei Z = {z 1, z 2, z 3,...} die zugrundeliegende Variablenmenge ist. Die booleschen Verknüpfer (Negation), (Konjunktion), (Disjunktion), (Parität, XOR), etc. haben die übliche Bedeutung. Auch Schaltfunktionen über unterschiedlichen Variablenmengen können kombiniert werden. Z.B. ist für f 1 = z 1 z 2 IB(z 1, z 2 ) und f 2 = z 2 z 3 IB(z 2, z 3 ) die disjunkte Verknüpfung eine Schaltfunktion über den drei Variablen z 1, z 2 und z 3 : f 1 f 2 = (z 1 z 2 ) (z 2 z 3 ) IB(z 1, z 2, z 3 ). Die konstanten Schaltfunktionen werden mit 0 oder 1 bezeichnet. (D.h. ist f = 0 IB(Z), so ist f(η) = 0 für alle η Eval(Z).) Durch geeignete Abstraktions- und Codierungstechniken lassen sich sehr viele Fragestellungen der Informatik durch Schaltfunktionen formalisieren. Im folgenden geben wir einige einfache Beispiele. Beispiel [N-Damen-Problem] Die Fragestellung des N-Damen-Problems ist wie folgt. Gegeben sind ein N N-Schachbrett und N Damen. Gesucht ist eine Positionierung der N Damen, so daß keine Dame eine andere bedroht. Mit Schaltfunktionen läßt sich das N-Damen-Problem z.b. wie folgt darstellen. Das Schachbrett wird als boolesche N N Matrix (z i,j ) 1 i,j n mit dem Eintrag z i,j = 1 gdw eine Dame steht auf dem Feld (i, j) interpretiert. Eine Belegung η = [z i,j = a i,j : 1 i, j N] entspricht genau dann einer zulässigen Positionierung der Damen, wenn (I) Zeilen i Spalte j mit a i,j = 1 (II) Für alle Felder (i, j) mit a i,j = 1 und alle Felder (I, J), für die (i, j) (I, J) ein zulässiger Damenzug ist, gilt a I,J = 0. Siehe Abbildung 1. Präzise lautet die Fragestellung nun, eine erfüllende Belegung für die Schaltfunktion ( ( ) ) f N = zi,j z I,J zu finden. 1 i N 1 j N (i, j) (I, J) ist zulässiger Damenzug Beispiel [ Wissensbasiertes System für Chemielabor] Gegeben ist eine Datenbank, in der Informationen über die vorhandenen chemischen Stoffe und durchführbaren chemischen Reaktionen τ τ k ϱ ϱ l verwaltet werden. Gefragt ist, ob ein gewisser Stoff ϱ (über 0 oder mehr chemische Reaktionen) erzeugt werden kann. Für eine Formulierung der Problemstellung durch Schaltfunktionen verwenden wir eine boolesche Variable z σ für jeden Stoff σ mit der intuitiven Interpretation z σ = 1 gdw σ ist herstellbar (oder vorhanden). 4

8 N-Damen-Problem Gegeben: N x N - Schachbrett, N Damen Gesucht: Positionierung der N Damen, so daß keine Dame eine andere bedroht. N= Boolsche Variablen z ij mit i, j = 1,...,N z ij = 1 gdw eine Dame steht auf Feld (i,j) z.b. [z 11 =1, z 24 = 1, z 31 = 0,... ] Zulässige Positionierung = Belegung [ z ij = a ij : 1 i, j N ] mit (1) Zeilen i Spalte j mit a ij = 1 (2) Damenzug (i,j) -> (I,J) gilt: a IJ = 0 Abbildung 1: Codierung des N-Damen-Problems Eine mögliche Formalisierung ergibt sich nun, indem wir die Ausgangssitutation durch folgende Schaltfunktion f darstellen. f = ( ) ( ( ) ) z σ zτ1 z τk z ϱ1 z ϱl σ vorhanden τ τ k ϱ ϱ l durchführbare Reaktion Die Frage reduziert sich nun auf ein Gültigkeitsproblem. Hierzu betrachten wir die Schaltfunktion f ϱ = f z ϱ = f z ϱ Offenbar kann Stoff ρ genau dann hergestellt werden, wenn f ϱ = 1. Wir illustrieren diese Aussage an einem Beispiel. MgO + H 2 Mg + H 2 O C + O 2 CO 2 H 2 O + CO 2 H 2 CO 3 seien die durchführbaren chemischen Reaktionen, wobei die Grundstoffe MgO, H 2, O 2 und C verfügbar sind. Wir fragen, ob ϱ = H 2 CO 3 (Kohlensäure, wenn mich meine vagen Erinnerungen an den Chemieunterricht nicht täuschen) herstellbar ist. Die angegebene Schaltfunktion f hat in dieser Instanz die Form f = z MgO z H2 z O2 z C (z MgO z H2 z Mg z H2 O) (z H2 O z CO2 z H2 CO 3 ) (z C z O2 z CO2 ) Man überzeugt sich leicht davon, daß f z H2 CO 3 = 1. Also ist H 2 CO 3 herstellbar. 5

9 Das folgende Beispiel zeigt, daß Schaltfunktionen auch eingesetzt werden können, um die Funktionsweise eines Systems zu beschreiben. Beispiel [Ampelschaltung] Die gewünschte Funktionsweise einer Ampelschaltung könnte durch die nachstehenden Anforderungen formuliert werden: Die Ampeln für die Autofahrer ist niemals grün, wenn für die Fußgänger das Signal walk gegeben wird. (Sicherheit) Sobald ein Fußgänger die Request-Taste betätigt, gibt die Fußgängerampel in Kürze das Signal walk. Die Request-Taste ist dann solange blockiert bis die Fußgängerampel auf don t walk zurückschaltet. (Lebendigkeit) Darüberhinaus fordern wir, daß die Ampel für die Autofahrer die üblichen vier Zyklen (rot, rot/gelb, grün, gelb) durchläuft, während die Fußgängerampel zwischen den Phasen don t walk und walk alterniert. Kontrollsystem für Ampelschaltung FA request Schalt= funktion FA FA Zustände der Ampel für Autofahrer Fußgängerampel mit Request-Taste request=1 FA=0 request=0 FA=0 FA=0 FA=1 FA=0 Zustandsmaschine für das Kontrollsystem ½ Ö¾ ½ Ö Ö½ Ö¾ ¼ Abbildung 2: Codierung des reaktiven Verhaltens einer Ampelschaltung Ö½ ¼ Ö¾ ½ Ö½ ½ Ö¾ ¼ Für die Phasen der Autofahrerampel verwenden wir vier Kontrollzustände, die wir mit zwei booleschen Variablen r 1 und r 2 codieren. 00 steht für grün für die Autofahrer, 01 für gelb, 10 für rot und 11 für die Rot/Gelb-Phase. Das erste Bit steht für die Belegung von r 1, das zweite für die Belegung von r 2. Die möglichen Werte für request und dem Signal der Fußgängerampel sind jeweils 0 oder 1. 6

10 request = 0: request = 1: Die Requesttaste ist nicht gedrückt. Die Requesttaste wurde von einem Fußgänger gedrückt. In den Zuständen 01, 10 und 11 wird request ignoriert. Die Signale der Fußgängerampel haben folgende Bedeutung: FA = 1: FA = 0: Die Fußgängerampel signalisiert walk. Die Fußgängerampel signalisiert don t walk. Siehe Abbildung 2. Die Schaltfunktionen sind nun durch folgende Wertetafel gegeben: Also: Eingabe Werte der Schaltfunktion für die Ausgabe r 1 r 2 request r 1 r 2 FA / / / Schaltfunktion f r1 = r 1 r 2 Schaltfunktion f r2 = ( r 1 r 2 request) (r 1 r 2 ) Schaltfunktion f F A = r 1 r 2 Das so konzipierte System kann als Zustandsmaschine aufgefaßt werden (siehe Skizze links unten auf der Folie). Das Kontrollsystem für die Ampelschaltung ist ein typisches Beispiel für ein reaktives System, dessen Funktionsweise durch die ständige Interaktion mit der Umgebung (hier: die Fußgänger) bestimmt ist. Dies steht im Gegensatz zu traditionellen Programmen, deren Aufgabe die Berechnung einer Funktion ist und für die man üblicherweise totale Korrektheit (Terminierung und Ausgabe der korrekten Funktionswerte) fordert. Die schematische Darstellung der Ampelschaltung liegt auch sequentiellen Schaltkreisen zugrunde. Sequentielle Schaltkreise verwenden Register als Speicherelemente. Die Ausgabebits hängen sowohl von der Eingabebelegung als auch von der aktuellen Registerbelegung ab. Kombinatorische Schaltkreise dagegen verwenden keine Speicherelemente. Siehe Abbildung 3 auf Seite 8. Das Ein/Ausgabeverhalten eines kombinatorischen Schaltkreises mit den Eingabevariablen x 1,..., x n kann daher durch Schaltfunktionen λ y IB(x 1,..., x n ) für jede Ausgabevariable y beschrieben werden. Näheres hierzu in Abschnitt (Seite 30 ff). Beispiel [Halbaddierer] Als Beispiel für einen kombinatorischen Schaltkreis betrachten wir einen Halbaddierer (siehe Abbildung 4), dessen Funktionalität durch die beiden Schaltfunktionen s = λ y1 = x 1 x 2, c = λ y2 = x 1 x 2 IB(x 1, x 2 ) beschrieben werden kann. Intuitiv steht s für die 1-Bit-Summe und c für den Übertrag (das Carrybit). 7

11 Abbildung 3: Schema kombinatorischer und sequentieller Schaltkreise Das taktweise Verhalten eines sequentiellen Schaltkreises (mit den Eingabebits x 1,..., x n und den Registern r 1,..., r k ) wird durch Schaltfunktionen λ y IB(x 1,..., x n, r 1,..., r k ) δ r IB(x 1,..., x n, r 1,..., r k ) für jede Ausgabevariable y für jedes Register r beschrieben. Genaueres hierzu in Abschnitt (Seite 35 ff). Beispiel [Modulo-8-Counter] Als Beispiel für einen sequentiellen Schaltkreis betrachten wir einen Modulo-8-Counter, siehe Abbildung 5 auf Seite 10. Dieser hat drei Register r 1, r 2, r 3, die einen Counter (mit Werten in {0, 1,..., 7}) codieren: counter = 4 r r 2 + r 3 In jedem Takt wird der Counter um eins erhöht. Nur wenn sein Wert 7 ist, wird eine Eins ausgegeben; andernfalls eine Null. Da ein sequentieller Schaltkreis ohne Eingabebits mit genau einer Ausgabevariablen y vorliegt, hängen die Ausgabe- und Übergangsfunktionen nur von der Registerbelegungen ab. Das Ausgabeverhalten wird durch die Schaltfunktion λ y = r 1 r 2 r 3 IB(r 1, r 2, r 3 ) beschrieben. Die taktweisen Registertransfers sind durch die Schaltfunktionen gegeben. δ r1 = (r 3 r 2 ) r 1, δ r2 = r 3 r 2, δ r3 = r 3 IB(r 1, r 2, r 3 ) Bemerkung [Schaltfunktionen versus boolesche Funktionen] Boolesche Funktionen sind Funktionen des Typs F : {0, 1} n {0, 1}. D.h. boolesche Funktionen bilden Bitvektoren fester Länge n auf Wahrheitswerte ab. Ist f IB(Z) eine Schaltfunktion, so erhält man eine entsprechende boolesche Funktion F, indem man die Variablen von Z numeriert, etwa z 1,..., z n, und F (a 1,..., a n ) = f ( [z 1 = a 1,..., z n = a n ] ) 8

12 Abbildung 4: Halbaddierer setzt. Umgekehrt kann man jeder n-stelligen booleschen Funktion F eine Schaltfunktion f zuordnen, indem man n Variablen z 1,..., z n fixiert und die Eingabetupel (a 1,..., a n ) {0, 1} n für F als Eingabebelegungen für z 1,..., z n interpretiert. Wir machen uns nun den dezenten Unterschied zwischen booleschen Funktionen und Schaltfunktionen klar, der je nach Kontext entscheidend oder irrelevant sein kann. Die Funktionswerte von booleschen Funktionen werden häufig durch formelähnliche Ausdrücke wie F (a, b, c) = a (b c) als Kurzschreibweise für für alle a, b, c {0, 1} gilt: F (a, b, c) = a (b c) angegeben. a, b, c dienen hier lediglich als Metavariablen für die Argumente von F ; die Namen a, b, c können beliebig geändert werden. Um Verwechslungen zwischen booleschen Variablen und solchen Metavariablen zu vermeiden, verwenden wir im folgenden Buchstaben wie x, y, z für boolesche Variablen a, b, c für Metavariablen mit Platzhalterfunktion für Werte in {0, 1} (oder für festgewählte Werte in {0, 1}) Z.B. sind F (a, b, c) = a (b c) F (b, a, c) = b (a c) F (a 1, a 2, a 3 ) = a 1 (a 2 a 3 ) völlig gleichwertige Ausdrücke, um die Funktionswerte einer dreistelligen booleschen Funktion F anzugeben. Dagegen sind die Schaltfunktionen } f 0 = x (y z) IB(x, y, z) f 1 = y (x z) f 2 = z 1 (z 2 z 3 ) IB(z 1, z 2, z 3 ) 9

13 Abbildung 5: Modulo-8-Counter verschieden. (Beachte: Hier stehen die booleschen Variablen x, y, z, z 1, z 2 und z 3 für die entsprechenden Projektionsfunktionen.) Der Grund, warum Schaltfunktionen einen präziseren Formalismus für Schaltkreise darstellen als boolesche Funktionen, ist wie folgt. Die Synthese komplexer Schaltkreise erfolgt üblicherweise im Baukastenprinzip, indem sukzessive Schaltkreise mit logischen Verknüpfer wie,,,,... kombiniert werden. Wir betrachten folgenden kombinatorischen Schaltkreis C mit drei Gattern, der sich durch die disjunktive Verknüpfung (Gatter 3) der Ausgänge von Gatter 1 und 2 ergibt. Gatter 1 und 2 können durch die booleschen Funktionen F 1, F 2 : {0, 1} 2 {0, 1} mit F 1 (a, b) = F 2 (a, b) = a b beschrieben werden. Der Effekt des gesamten Schaltkreises C entspricht jedoch nicht der Disjunktion von F 1 und F 2 F 1 F 2 : {0, 1} 2 {0, 1}, (F 1 F 2 )(a, b) = F 1 (a, b) F 2 (a, b) = a b, sondern der dreistelligen booleschen Funktion F : {0, 1} 3 {0, 1}, F (a, b, c) = (a b) (b c). 10

14 Im Gegensatz dazu sind Variablen von Schaltfunktionen (x, y, z in obigem Beispiel) feste Symbole, die auch im Kontext nicht erklärungsbedürftig sind. Für den obigen Schaltkreis C kann der Effekt der Gatter 1 bzw. 2 durch die Schaltfunktionen f 1 = x y und f 2 = y z dargestellt werden. Die Ausgabefunktion von C ergibt sich nun durch die Disjunktion von f 1 und f 2 : f 1 f 2 = (x y) (y z) (eine Schaltfunktion mit den Variablen x, y und z). Nachdem wir uns den Unterschied zwischen Schaltfunktionen und booleschen Funktionen klargemacht haben, gehen wir zu lässigen Schreibweisen mit Bittupeln (die streng genommen nur für boolesche Funktionen präzise sind) über. Liegt z.b. eine Schaltfunktion f IB(Z) vor, für deren Variablen eine feste Reihenfolge, etwa z 1,..., z n, aus dem Kontext hervorgeht, und ist η = [z 1 = a 1,..., z n = a n ] Eval(z 1,..., z n ) = Eval(Z), so schreiben wir auch f(a 1,..., a n ) statt f(η). Man sollte jedoch bei Verwendung dieser Bittupelnotation für Schaltfunktionen stets im Kopf behalten, daß diese nur dann sinnvoll ist, wenn aus dem Kontext klar wird, an welcher Position die Belegungen der einzelnen Variablen stehen. Darstellungsformen für Schaltfunktionen Zu den einfachsten Repräsentationen von Schaltfunktionen zählt die explizite Darstellung der Funktionswerte durch Wertetafeln. Wertetafeln sind zwar konzeptionell sehr einfach, jedoch besteht die Wertetafel einer Schaltfunktion IB(z 1,..., z n ) stets aus 2 n Zeilen und hat damit exponentielle Platzkomplexität (gemessen an der Anzahl an Variablen). Oftmals effizienter sind implizite Darstellungen beispielsweise durch aussagenlogische Formeln (z.b. Normalformen wie KNF oder DNF) Schaltbilder (logische Netze) Varianten von Entscheidungsbäumen (Branching Programme, Entscheidungsgraphen) Auf die impliziten Darstellungsformen gehen wir später ein. Wir machen uns zunächst klar, warum es keine universelle Darstellungsform geben kann, die für jede Schaltfunktion als effizient anzusehen ist. 4 Dies resultiert aus der Anzahl an Schaltfunktionen, die doppelt-exponentiell in der Anzahl n an Variablen wächst. Satz [Anzahl der Schaltfunktionen] Die Anzahl an Schaltfunktionen über Z ist IB(Z) = 2 2 Z. 4 Unter einer universellen Darstellungsform versteht man eine Repräsentationsart, mit der jede Schaltfunktion dargestellt werden kann. 11

15 Abbildung 6: Der binäre Eintopf Beweis. Für jede endliche Menge A gibt es genau 2 A n = Z, so gilt: Abbildungen A {0, 1}. Ist Eval(Z) = Anzahl Abbildungen Z {0, 1} = 2 Z = 2 n und somit IB(Z) = Anzahl Abbildungen Eval(Z) {0, 1} = 2 Eval(Z) = 2 2n. Für n = 1 besteht IB(z 1 ) besteht aus den vier Schaltfunktionen 0,1, z 1 und z 1. Für n = 2 Variablen liegen bereits 2 4 = 16 Schaltfunktionen vor: 0 z 1 z 2 (z 1 z 2 ) z 1 (z 2 z 1 ) z 2 z 1 z 2 z 1 z 2 1 (z 1 z 2 ) z 1 z 2 z 1 z 2 z 1 z 2 z 1 z 2 (z 1 z 2 ) IB(z 1, z 2, z 3 ) enthält 2 8 = 256 verschiedene Schaltfunktionen, während es bereits 2 32 > bzw > verschiedene Schaltfunktionen mit fünf bzw. sechs Variablen gibt. Die Aussage von Satz induziert, daß bezüglich jeder universellen Darstellungsform für Schaltfunktionen die worst-case Darstellungsgröße mindestens exponentiell in der Anzahl n der Variablen wächst. Diese Aussage ist wie folgt einsichtig. Wir gehen von einer festen Darstellungsform aus und nehmen an, daß C die Anzahl an Schaltfunktionen f IB(z 1,..., z n ) ist, die durch höchstens 2 n 1 Bits dargestellt werden. Offenbar gilt: C 2 n 1 i=0 2 i = 2 2n < 2 2n

16 Also haben mindestens 2 2n 2 2n 1 +1 = 2 2n 1 +1 ( ) 2 2n 2 n = 2 2n 1 +1 ( ) 2 2n Schaltfunktionen eine Darstellung mit mehr als 2 n 1 Bits. Obige Rechnung erlaubt sogar die Aussage, daß nur ein sehr kleiner Bruchteil aller Schaltfunktionen eine Darstellung mit 2 n 1 oder weniger Bits haben kann. Diese Überlegung zeigt, daß wir keine Darstellungsform erwarten können, die für alle Schaltfunktionen als effizient anzusehen ist. Dennoch gibt es universelle Darstellungsformen, die für viele praxisrelevanten Schaltfunktionen effizient sind. Zu solchen Darstellungsformen, die manchmal effizient sind, zählen symbolische Darstellungen durch aussagenlogische Formeln und binäre Entscheidungsgraphen. Aussagenlogik und Schaltfunktionen Während Schaltfunktionen auf einer Black-Box-Sicht beruhen, in der von der Berechnungsvorschrift abstrahiert wird, können aussagenlogische Formeln und deren Schaltbilddarstellungen als Auswertungsmechanismus (oder als Modell für die Realisierung eines Chips) angesehen werden. Die Hörerinnen und Hörer sollten aus dem Grundstudium mit der Aussagenlogik vertraut sein. Wir erläutern nur kurz unsere Schreibweisen und den Zusammenhang zwischen Schaltfunktionen und aussagenlogischen Formeln. Syntax der Aussagenlogik. Sei Z = {z 1,..., z n } eine endliche Menge boolescher Variablen. Aussagenlogische Formeln über Z sind durch die nachstehende Grammatik gegeben. α ::= true z α 1 α 2 α wobei z Z. IL(Z) oder IL(z 1,..., z n ) bezeichnet die Menge aller aussagenlogischer Formeln über Z. Als Basisoperatoren haben wir lediglich die Negation und Konjunktion verwendet. Andere Operatoren wie Disjunktion, Implikation, Äquivalenz, Parität (XOR) können hieraus hergeleitet werden. Das sollte bekannt sein... Schaltfunktionssemantik der Aussagenlogik. Intuitiv stehen die Variablen z Z für Aussagen, die je nach Kontext interpretiert und somit wahr oder falsch sein können. Der Kontext wird durch eine Variablenbelegung η formalisiert, die jeder Variablen z Z einen Wahrheitswert (0 oder 1) zuordnet. Die Semantik aussagenlogischer Formeln α IL(Z) läßt sich daher durch eine Schaltfunktion f α IB(Z) angeben, so daß f α (η) = 1 genau dann, wenn α unter der Belegung η wahr ist. Die formale Definition 13

17 der Schaltfunktion f α ist wie folgt: 5 f true = 1 (konstante Schaltfunktion) f z = proj z = z (Projektionsfunktion) f α = f α (Negation für Schaltfunktionen) f α1 α 2 = f α1 f α2 (Konjunktion für Schaltfunktionen) Die Abbildung α f α induziert eine Eins-zu-Eins-Beziehung zwischen Schaltfunktionen über Z und den Äquivalenzklassen aussagenlogischer Formeln über Z bezüglich der (oftmals als Gleichheit behandelten) Äquivalenz, die genau solche Formeln identifiziert, die bezüglich jeder Variablenbelegung η Eval(Z) denselben Wahrheitswert haben. α 1 α 2 gdw f α1 = f α2 Schaltfunktionen sind also ein semantisches Modell für aussagenlogische Formeln, das von der Realisierung durch Gatter abstrahiert. Abbildung 7 auf Seite 15 zeigt einige Regeln für die Äquivalenz der Aussagenlogik. Die Assoziativ- und Kommutativgesetze rechtfertigen den Verzicht auf Klammern bzw. die Verallgemeinerung von Konjunktion, Disjunktion und Parität (sofern man die Äquivalenz als Gleichheit behandelt, also nur an den Wahrheitswerten interessiert ist). Wir verwenden die üblichen Schreibweisen wie α 1 α n = α i, oder auch 1 i n α 1 α n = 1 i n α 1 α n = α i, i I α i, i I 1 i n für beliebige Indexmengen I. Für die Paritätsfunktion setzen wir die Endlichkeit von I voraus. Die Wahrheitswerte der n-stelligen Paritätsfunktion sind wie folgt definiert. Sind a 1,..., a n {0, 1}, so gilt a 1... a n = 1 genau dann, wenn die Anzahl an Indizes i {1,..., n} mit a i = 1 ungerade ist. Für n = 2 erhält man also die übliche XOR- Semantik: a 1 a 2 = 1 genau dann, wenn (a 1, a 2 ) {(0, 1), (1, 0)}. Für die leere Indexmenge I treffen wir folgende Vereinbarungen: = false, α i = true und = false. i α i i Wir verwenden die üblichen Begriffe. Sei α IL(Z). α heißt 5 Noch eine kleine technische Anmerkung zur Rolle der Variablenmenge. Für aussagenlogische Formeln ist die explizite Angabe der zugrundegelegten Variablenmenge Z nicht nötig. Für α sind höchstens die (syntaktisch) in α vorkommenden Variablen z relevant. Für Schaltfunktionen f IB(Z), also f : Eval(Z) {0, 1}, legt die Menge Z den Definitionsbereich Def (f) = Eval(Z) von f fest. Daher wäre es korrekter die Schaltfunktionen f α mit der zugrundeliegenden Variablenmenge Z zu parametrisieren; also fα Z anstelle von f α zu schreiben. i I α i, α i α i i α i 14

18 Idempotenz: α α α, α α α Doppelte Verneinung: α α De Morgan: (α 1 α 2 ) α 1 α 2 (α 1 α 2 ) α 1 α 2 Assoziativität: (α 1 α 2 ) α 3 α 1 (α 2 α 3 ) (α 1 α 2 ) α 3 α 1 (α 2 α 3 ) (α 1 α 2 ) α 3 α 1 (α 2 α 3 ) Kommutativität: α 1 α 2 α 2 α 1 α 1 α 2 α 2 α 1 α 1 α 2 α 2 α 1 Distributitivität: β (α 1 α 2 ) (β α 1 ) (β α 2 ) β (α 1 α 2 ) (β α 1 ) (β α 2 ) Absorption: α (α β) α α (α β) α Äquivalenzgesetze mit false und true: α true α, α false false, α true α, α α false, α α false, α true true α false α α false α α α true α α true Abbildung 7: Äquivalenzregeln für die Aussagenlogik gültig oder Tautologie, wenn α true, also wenn f α = 1, erfüllbar, wenn es eine erfüllende Belegung für α gibt, d.h. f α 0, unerfüllbar, wenn α nicht erfüllbar ist, also wenn f α = 0. Syntaxbäume und Schaltbilder. Aussagenlogische Formeln können durch Schaltbilder gemäß ihres syntaktischen Aufbaus dargestellt werden, wobei die Gattertypen den gewählten Basisoperatoren entsprechen, die als Grundbausteine der Syntax verwendet werden. In der auf Seite 1.1 angegebenen Syntax wurden die Basisoperatoren (Negation) und (zweistellige Konjunktion) verwendet. Es können jedoch auch andere Basen eingesetzt werden. Zunächst stellen wir fest, daß ein enger Zusammenhang zwischen dem Schaltbild einer aussagenlogische Formel α und dem Syntaxbaum von α bzgl. der zugrundegelegten Basis besteht. Abbildung 8 illustriert diese Aussage an einem Beispiel mit der 15

19 Basismenge Ω = {,, } und der Formel α = (z 1 z 2 ) z 3 ( (z 3 z 4 ) z 5 ). Abbildung 8: Vom Syntaxbaum zum Schaltbild Der Syntaxbaum von α ist auf der Folie links oben skizziert. Das Schaltbild (in seiner üblichen Darstellung, in welchem die Eingabevariablen links, die Ausgabevariablen rechts stehen) für α ergibt sich, indem der Syntaxbaum um 90 Grad im Uhrzeigersinn gedreht wird, Blätter mit denselben Eingabevariablen zusammengelegt und ein Ausgang eingefügt wird. Familien aussagenlogischer Formeln können in derselben Art und Weise durch Schaltbilder dargestellt werden, wobei gemeinsame Teilformeln durch gemeinsame Knoten der Syntaxbäume erfaßt und durch denselben Gatterknoten dargestellt werden. Die Kombination der Syntaxbäume führt zu einem azyklischen Graph anstelle eines Baums. 16

20 Zweistufige Normalformen. Durch Anwenden der Äquivalenzgesetze läßt sich jede aussagenlogische Formel in gewisse Normalform Darstellungen überführen. Die gängigsten Normalformtypen sind KNF (konjunktive Normalform) DNF (disjunktive Normalform) Beide Normalformeln sind Ausgangspunkt vieler Algorithmen, die zur Lösung aussagenlogischer Probleme entwickelt wurden. Für die zweistufige Logiksynthese spielen disjunktive Normalformen eine zentrale Rolle, da sie die Grundlage einer Realisierung von Schaltfunktionen durch PLAs (programmable logic arrays) bilden. Definition [Literal, Monom, DNF] Unter einem Literal versteht man eine Formel des Typs z oder z. Ein Monom (oder Konjunktionsterm) ist eine Konjunktion von Literalen, also eine Formel des Typs γ = ξ 1 ξ 2... ξ l, wobei ξ 1,..., ξ l Literale sind. Eine aussagenlogische Formel ist in disjunktiver Normalform (DNF), falls sie eine Disjunktion von Monomen ist, also eine Formel des Typs α = m i=1 ( ξi,1 ξ i,2... ξ i,li ) mit Literalen ξ i,j, j = 1,..., l i und i = 1,..., m. Formeln in DNF werden auch Polynome genannt. In analoger Weise sind Disjunktionsterme und konjunktive Normalformen definiert. Z.B. ist α = (z 1 z 2 z 3 ) (z 1 z 2 z 3 z 4 ) eine DNF-Formel, während z 1 z 3 ( z 2 z 4 ) eine zu α äquivalente Formel in KNF ist. Aus dem Grundstudium sollte bekannt sein, daß jede aussagenlogische Formel α zu einer Formel in DNF äquivalent ist. Einen Algorithmus zur Erstellung einer DNF-Formel erhält man (im wesentlichen) durch sukzessives Anwenden der De Morganschen Regeln. Entsprechendes gilt für die KNF. Daher sind DNF- sowie KNF-Darstellungen universelle Repräsentationsformen für Schaltfunktionen. Mit den Überlegungen auf Seite 11 ff folgt, daß es Schaltfunktionen gibt, die keine effizienten DNF-oder KNF-Darstellungen haben. Dabei bezeichnen wir eine DNF-Darstellung als effizient, falls deren Gesamtlänge (gemessen an der Gesamtanzahl an Literalen; Vielfachheiten mitgezählt) polynomiell beschränkt in der Anzahl n an Variablen ist. Beispielsweise gibt es keine effiziente DNF-Darstellung der n-stelligen Paritätsfunktion: Lemma Jede DNF-Darstellung der Paritätsfunktion PAR(z 1,..., z n ) = z 1 z 2... z n hat mindestens exponentiell viele Monome. Beweis. Sei α = γ 1... γ m eine DNF-Darstellung von PAR(z 1,..., z n ), wobei die γ j s Monome sind. Wir können o.e. annehmen, dass die γ j s paarweise nicht äquivalent sind und dass keine Variable z i in einem γ j zwei- oder mehrmals vorkommt. Kommt nämlich das positive Literal z i (oder das negative Literal z i ) zweimal in γ j vor, so kann eines der 17

A.1 Schaltfunktionen und Schaltnetze

A.1 Schaltfunktionen und Schaltnetze Schaltfunktionen und Schaltnetze A. Schaltfunktionen und Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Bedeutung des Binärsystems für den Rechneraufbau Seit Beginn der Entwicklung von Computerhardware

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

Grundlagen der Informationverarbeitung

Grundlagen der Informationverarbeitung Grundlagen der Informationverarbeitung Information wird im Computer binär repräsentiert. Die binär dargestellten Daten sollen im Computer verarbeitet werden, d.h. es müssen Rechnerschaltungen existieren,

Mehr

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen aussagenlogischer Regeln: Wissensbasis (Kontextwissen): Formelmenge,

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Binärer Entscheidungsbaum. für Boole sche Funktionen. (binary decision tree: BDT) Kapitel 4: Binäre Entscheidungsdiagramme

Binärer Entscheidungsbaum. für Boole sche Funktionen. (binary decision tree: BDT) Kapitel 4: Binäre Entscheidungsdiagramme Kapitel 4: Binäre Entscheidungsdiagramme (BDDs) BDDs (binary decision diagrams) wurden aus binären Entscheidungsbäumen für boole sche Funktionen entwickelt. Binärer Entscheidungsbaum (binary decision tree:

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Verwendet man zur Darstellung nur binäre Elemente ( bis lat.: zweimal) so spricht man von binärer Digitaltechnik.

Verwendet man zur Darstellung nur binäre Elemente ( bis lat.: zweimal) so spricht man von binärer Digitaltechnik. Kursleiter : W. Zimmer 1/24 Digitale Darstellung von Größen Eine Meßgröße ist digital, wenn sie in ihrem Wertebereich nur eine endliche Anzahl von Werten annehmen kann, also "abzählbar" ist. Digital kommt

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

N Bit binäre Zahlen (signed)

N Bit binäre Zahlen (signed) N Bit binäre Zahlen (signed) n Bit Darstellung ist ein Fenster auf die ersten n Stellen der Binär Zahl 0000000000000000000000000000000000000000000000000110 = 6 1111111111111111111111111111111111111111111111111101

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Formelsammlung. Wahrscheinlichkeit und Information

Formelsammlung. Wahrscheinlichkeit und Information Formelsammlung Wahrscheinlichkeit und Information Ein Ereignis x trete mit der Wahrscheinlichkeit p(x) auf, dann ist das Auftreten dieses Ereignisses verbunden mit der Information I( x): mit log 2 (z)

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

183.580, WS2012 Übungsgruppen: Mo., 22.10.

183.580, WS2012 Übungsgruppen: Mo., 22.10. VU Grundlagen digitaler Systeme Übung 2: Numerik, Boolesche Algebra 183.580, WS2012 Übungsgruppen: Mo., 22.10. Aufgabe 1: Binäre Gleitpunkt-Arithmetik Addition & Subtraktion Gegeben sind die Zahlen: A

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Kapitel 3: Boolesche Algebra

Kapitel 3: Boolesche Algebra Inhalt: 3.1 Grundlegende Operationen und Gesetze 3.2 Boolesche Funktionen u. u. ihre Normalformen 3.3 Vereinfachen von booleschen Ausdrücken 3.4 Logische Schaltungen 3.1 Grundlegende Operationen und Gesetze

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 29/ Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws9

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

OPERATIONS-RESEARCH (OR)

OPERATIONS-RESEARCH (OR) OPERATIONS-RESEARCH (OR) Man versteht darunter die Anwendung mathematischer Methoden und Modelle zur Vorbereitung optimaler Entscheidungen bei einem Unternehmen. Andere deutsche und englische Bezeichnungen:

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Codes und Informationsgehalt

Codes und Informationsgehalt Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf

Mehr

Daten, Informationen, Kodierung. Binärkodierung

Daten, Informationen, Kodierung. Binärkodierung Binärkodierung Besondere Bedeutung der Binärkodierung in der Informatik Abbildung auf Alphabet mit zwei Zeichen, in der Regel B = {0, 1} Entspricht den zwei möglichen Schaltzuständen in der Elektronik:

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

1 Das Lemma von Burnside und seine Anwendungen

1 Das Lemma von Burnside und seine Anwendungen Das Lemma von Burnside und seine Anwendungen Mit dem Lemma von Burnside lassen sich Zählprobleme lösen, bei denen Symmetrien eine Rolle spielen. Betrachten wir als einführendes Beispiel die Anzahl der

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Von der Aussagenlogik zum Computer

Von der Aussagenlogik zum Computer Von der Aussagenlogik zum Computer Markus Koch Gymnasium in der Glemsaue Ditzingen Januar 2012 Inhaltsverzeichnis Einleitung...3 Der Computer...3 Grundlagen...4 Wahrheitstabellen...4 Aussagenlogik...4

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Rechnen mit Dualzahlen

Rechnen mit Dualzahlen Konrad-Zuse-Museum: Die frühen Computer (Z-Z) Einführung in die moderne Rechentechnik Rechnen mit Dualzahlen Das Z-Addierermodell 3 Rechnerarchitektur Halblogarithmische Zahlendarstellung Rechnen mit Dualzahlen

Mehr

Binary Decision Diagrams

Binary Decision Diagrams Begleitmaterial zur Vorlesung Binary Decision Diagrams Wintersemester 2006/2007 Detlef Sieling Universität Dortmund FB Informatik, LS 2 44221 Dortmund Von diesem Begleitmaterial dürfen einzelne Ausdrucke

Mehr

Logischer Entwurf binärer Systeme

Logischer Entwurf binärer Systeme Logischer Entwurf binärer Systeme Prof. Dr. sc. techn. Hans Joachim Zander 3., bearbeitete Auflage VEB VERLAG TECHNIK BERLIN Inhaltsverzeichnis Bedeutung häufig verwendeter Buchstaben 11 Bedeutung häufig

Mehr

Was bisher geschah. Lernen: überwachtes Lernen. biologisches Vorbild neuronaler Netze: unüberwachtes Lernen

Was bisher geschah. Lernen: überwachtes Lernen. biologisches Vorbild neuronaler Netze: unüberwachtes Lernen Was bisher geschah Lernen: überwachtes Lernen korrigierendes Lernen bestärkendes Lernen unüberwachtes Lernen biologisches Vorbild neuronaler Netze: Neuron (Zellkörper, Synapsen, Axon) und Funktionsweise

Mehr

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s Nachtrag zur allgemeinen Vektorraum-Theorie. 1.5.15. Direkte Summen. Sei V ein Vektorraum, seien U 1,..., U t Unterräume, wir schreiben V = U 1 U 2 U t = t i=1 U i falls die folgenden beiden Bedingungen

Mehr

1 Aussagenlogik und Mengenlehre

1 Aussagenlogik und Mengenlehre 1 Aussagenlogik und engenlehre 1.1 engenlehre Definition (Georg Cantor): nter einer enge verstehen wir jede Zusammenfassung von bestimmten wohl unterschiedenen Objekten (m) unserer Anschauung oder unseres

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

Geometrische Mannigfaltigkeiten

Geometrische Mannigfaltigkeiten Geometrische Mannigfaltigkeiten Thilo Kuessner Abstract Kurzfassung der Vorlesung: Definitionen, Beispiele und Sätze, keine Beweise. Definition 1. Ein topologischer Raum ist eine Menge X mit einer Familie

Mehr

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

Mehr

Endlicher Automat (EA)

Endlicher Automat (EA) Endlicher Automat (EA) siehe auch Formale Grundlagen 3 1 Motivation: Automaten für die Modellierung, Spezifikation und Verifikation verwenden! Definition Ein Endlicher Automat A = (S,I,Σ,T,F) besteht aus

Mehr

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Kapitel DB:III. III. Konzeptueller Datenbankentwurf Kapitel DB:III III. Konzeptueller Datenbankentwurf Einführung in das Entity-Relationship-Modell ER-Konzepte und ihre Semantik Charakterisierung von Beziehungstypen Existenzabhängige Entity-Typen Abstraktionskonzepte

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

D A T E N... 1 Daten Micheuz Peter

D A T E N... 1 Daten Micheuz Peter D A T E N.....! Symbole, Alphabete, Codierung! Universalität binärcodierter Daten! Elementare Datentypen! Speicherung binärcodierter Daten! Befehle und Programme! Form und Bedeutung 1 Daten Micheuz Peter

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Einführung in die Vektor- und Matrizenrechnung. Matrizen Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:

Mehr

Übungsaufgaben für "Grundlagen der Informationsverarbeitung" (mit Lösungen)

Übungsaufgaben für Grundlagen der Informationsverarbeitung (mit Lösungen) Übungsaufgaben für "Grundlagen der Informationsverarbeitung" (mit Lösungen). Erläutern Sie die Begriffe Bit, Byte und Wort bezogen auf einen 6 Bit Digitalrechner. Bit: Ein Bit ist die kleinste, atomare,

Mehr

Unterrichtsvorhaben Q2- I:

Unterrichtsvorhaben Q2- I: Schulinterner Lehrplan Informatik Sekundarstufe II Q2 III. Qualifikationsphase Q2 Unterrichtsvorhaben Q2- I: Im ersten Halbjahr 1 Klausur, im 2. Halbjahr ein Projekt. Die Länge der Klausur beträgt 90 min.

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen

Logik & Semantik 7. Vorlesung Prädikatenlogik 1. Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen Logik & Semantik 7. Vorlesung Prädikatenlogik 1 Syntax der Prädikatenlogik Semantik der Prädikatenlogik: Grundbegriffe (Variablen-)Substitutionen 1 Definition eines logischen Systems: Generelles Schema

Mehr

Einführung in das Entity-Relationship-Modell

Einführung in das Entity-Relationship-Modell Einführung in das Entity-Relationship-Modell Historie Entity-Relationship-Modell kurz: ER-Modell bzw. ERM 1976 von Peter Chen vorgeschlagen Standardmodell für frühe Entwurfsphasen in der Datenbankentwicklung

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

Numerisches Programmieren

Numerisches Programmieren Technische Universität München SS 2012 Institut für Informatik Prof Dr Thomas Huckle Dipl-Inf Christoph Riesinger Dipl-Math Alexander Breuer Dipl-Math Dipl-Inf Jürgen Bräckle Dr-Ing Markus Kowarschik Numerisches

Mehr

Schaltalgebra - logische Schaltungen

Schaltalgebra - logische Schaltungen Schaltalgebra - logische Schaltungen Bakkalaureatsarbeit im Rahmen des Mathematischen Seminars unter Leitung von Wolfgang Schmid eingereicht von Verena Horak Salzburg, Sommersemester 2003 Inhaltsverzeichnis

Mehr

Signalverarbeitung 1

Signalverarbeitung 1 TiEl-F000 Sommersemester 2008 Signalverarbeitung 1 (Vorlesungsnummer 260215) 2003-10-10-0000 TiEl-F035 Digitaltechnik 2.1 Logikpegel in der Digitaltechnik In binären Schaltungen repräsentieren zwei definierte

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Sequentielle Logik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Sequentielle Logik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Sequentielle Logik Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Schaltwerke Flip-Flops Entwurf eines Schaltwerks Zähler Realisierung Sequentielle

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Zusammenfalten des Post schen Verbandes mittels Operationen aus binären booleschen Funktionen

Zusammenfalten des Post schen Verbandes mittels Operationen aus binären booleschen Funktionen Institut für Informatik der Bayerischen Julius Maximilians Universität Würzburg Zusammenfalten des Post schen Verbandes mittels Operationen aus binären booleschen Funktionen Studienarbeit von Christian

Mehr

Kapitel 7: Formaler Datenbankentwurf

Kapitel 7: Formaler Datenbankentwurf 7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen

Mehr

Information in einem Computer ist ein

Information in einem Computer ist ein 4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.

Mehr

Formaler Entwurf mit Event-B Die Eventbank

Formaler Entwurf mit Event-B Die Eventbank Institut für Theoretische Informatik Anwendungsorientierte Formale Verifikation Vorlesung Anwendung Formaler Verifikation SS 2015, 9.6.15 Dr. V. Klebanov, Dr. M. Ulbrich Formaler Entwurf mit Event-B Die

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren 4: Stromchiffren Zwei Grundbausteine der symmetrischen Kryptographie: Stromchiffren Verschlüsseln beliebig langer Klartexte, interner Zustand Blockchiffren Verschlüsseln von Blocks einer festen Größe,

Mehr

3. Steuerungstechnik Teil I

3. Steuerungstechnik Teil I 3. Steuerungstechnik Teil I 3.. Boolsche Algebra und Schaltalgebra Die Berechnung logischer Verknüpfungen in binären Steuerungssystemen hat als Grundlage die Boolsche Algebra bzw. die auf Schaltsystemen

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

ax 2 + bx + c = 0, (4.1)

ax 2 + bx + c = 0, (4.1) Kapitel 4 Komplexe Zahlen Wenn wir uns auf die reellen Zahlen beschränken, ist die Operation des Wurzelziehens (also die Umkehrung der Potenzierung) nicht immer möglich. Zum Beispiel können wir nicht die

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Technische Informatik. Der VON NEUMANN Computer

Technische Informatik. Der VON NEUMANN Computer Technische Informatik Der VON NEUMANN Computer Inhalt! Prinzipieller Aufbau! Schaltkreise! Schaltnetze und Schaltwerke! Rechenwerk! Arbeitsspeicher! Steuerwerk - Programmausführung! Periphere Geräte! Abstraktionsstufen

Mehr

4. Digitale Datendarstellung

4. Digitale Datendarstellung 4 Digitale Datendarstellung Daten und Codierung Textcodierung Codierung natürlicher Zahlen - Stellenwertsysteme - Konvertierung - Elementare Rechenoperationen Codierung ganzer Zahlen - Komplementdarstellung

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

2.1 Codes: einige Grundbegriffe

2.1 Codes: einige Grundbegriffe Gitter und Codes c Rudolf Scharlau 2. Mai 2009 51 2.1 Codes: einige Grundbegriffe Wir stellen die wichtigsten Grundbegriffe für Codes über dem Alphabet F q, also über einem endlichen Körper mit q Elementen

Mehr

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n Über die Komposition der quadratischen Formen von beliebig vielen Variablen 1. (Nachrichten von der k. Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-physikalische Klasse, 1898, S. 309 316.)

Mehr

Software-Test: Funktionstest

Software-Test: Funktionstest Software-Test: Funktionstest Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-02-06 Funktionale Testverfahren Funktionale Testverfahren testen gegen die Spezifikation

Mehr

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Institut für Computerphysik Universität Stuttgart Wintersemester 2012/13 Wie rechnet ein Computer? Ein Mikroprozessor ist ein Netz von Transistoren,

Mehr

Übungen zu Modellierung verteilter Systeme

Übungen zu Modellierung verteilter Systeme Technische Universität München SoSe 2014 Institut für Informatik Lösungsblatt 1 PD Dr.habil. B. Schätz Ausgabe: 17. April 2014 M. Gleirscher, D. Marmsoler Besprechung: 24. April 2014 Übungen zu Modellierung

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Satz Ein Boolescher Term t ist eine Tautologie genau dann, wenn t unerfüllbar ist.

Satz Ein Boolescher Term t ist eine Tautologie genau dann, wenn t unerfüllbar ist. Erfüllbarkeit, Uerfüllbarkeit, Allgemeigültigkeit Defiitio Eie Belegug β ist passed zu eiem Boolesche Term t, falls β für alle atomare Terme i t defiiert ist. (Wird ab jetzt ageomme.) Ist β(t) = true,

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5

Zahlensysteme. Zahl 0 0 0 0 0 5 5. Stellenwert Zahl 0 0 0 0 0 50 5. Zahl = 55 +50 +5 Personal Computer in Betrieb nehmen 1/6 Weltweit setzen die Menschen alltäglich das Zehnersystem für Zählen und Rechnen ein. Die ursprüngliche Orientierung stammt vom Zählen mit unseren 10 Fingern. Für

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr