Nicht-Kanonizität von AIGs Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.6
|
|
- Fanny Blau
- vor 7 Jahren
- Abrufe
Transkript
1 Nicht-Kanonizität von AIGs BDDs Binar Decision Diagrams BDDs 2 neue dreistellige Basis-Operation ITE (i-then-else): Bedingung ist immer eine Variable ( ) ( ) gehen zurück au Shannon (deshalb auch Shannon-Graphs) meist verwendete Version sind die ROBDDs Reduced Ordered Binar Decision Diagrams beide Formeln und AIGs beschreiben XOR von und (Ausmultiplizieren der rechten Formel ergibt linke Formel) i.allg. gibt es mehrere AIGs ür dieselbe boolesche Funktion [Brant86] hat Kanonizität von ROBDDs gezeigt: Jede Boolesche Funktion hat genau einen ROBDD Graphische Darstellung BDDs 3 Semantik BDDs 4 Knoten ist markiert mit einer Variablen innere Knoten sind ITE, Blätter sind boolesche Konstante ELSE Nacholger wird über gestrichelte oder rote Kante erreicht THEN Nacholger wird über durchgezogene Kante erreicht Schreibweise ite(,, ) bedeutet wenn dann ansonsten (beachte: ELSE-Argument kommt hinter trotz umgekehrter Indizierung) Semantik eval produziert booleschen Ausdruck aus einem BDD eval() eval() eval((ite(,, )) eval( ) eval( ) Boolesche Konstante FALSE Boolesche Konstante TRUE BDDs sind auch wieder algebraisch reduzierte DAG s (ma. Sharen von isomorphen Teil-Graphen wie bei AIGs) Negations-Kanten wie bei AIGs möglich
2 Von der Funktionstabelle zum BDD BDDs 5 Algebraische Reduktions-Regel BDDs 6 Entscheidungs-Baum Entscheidungs-Diagramm (DAG) Maimales Sharen isomorpher Teil-Graphen Semantische Reduktions-Regel BDDs 7 Reduced Ordered BDDs BDDs 8 maimale algebraische und semantische Reduktion (das Reduced in ROBDDs) Variablen von der Wurzel zu den Blättern sind gleich geordnet (das Ordered in ROBDDs) diesen Annahmen machen BDDs kanonisch modulo Variablenordnung unterschiedliche Ordnungen ühren i.allg. zu unterschiedlichen BDDs Elimination redundanter Innerer Knoten Variablenordnung bestimmt essentiell die Grösse von BDDs im weiteren meinen wir immer ROBDDs, wenn wir BDD sagen
3 Linearer BDD ür Vektoren-Vergleich BDDs 9 Eponentieller BDD ür Vektoren-Vergleich BDDs Boolesche Funktion: Π n i= i = i Verschränkte Variablen-Ordnung (interleaved) 3 > 3 > 2 > 2 > > > > Fehlende Kanten gehen zur Allgemein: Vergleich zweier n-bit Vektoren braucht bei verschränkter Ordnung 3 n innere Knoten. Variablen-Ordnung BDDs Tautologie, Erüllbarkeit, Äquivalenz BDDs 2 es gibt eponentielle Unterschiede zwischen Variablen-Ordnungen Kanonizität der BDDs ür boolesche Funktionen ergibt: es gibt aber leider auch eponentielle Funktionen: BDD ist immer eponentiell, z.b. mittlere Ausgabe-Bits von Multiplizierer ein BDD ist eine Tautologie, gdw. er nur aus dem -Blatt besteht ein BDD ist erüllbar, gdw. er nicht aus dem -Blatt besteht es gibt Heuristiken zur statischen Variablen-Ordnung: meist einache Aulistung der Variablen in DFS des DAG/AIG (etwa wie in input cone aig) zwei BDDs sind äquivalent, gdw. die BDDs sind isomorph (werden BDDs wie AIGs in der gleichen Unique-Tabelle gespeichert, dann ist der Test au Äquivalenz ein einacher Pointer-Vergleich) zusätzlich gibt es noch dnamische Umordnung von Variablen basiert au in-place Austausch von benachbarten Variablen Frage: Wo ist die NP-Vollständig der Erüllbarkeit geblieben? Antwort: Versteckt sich im Autwand der Erzeugung eines BDDs.
4 Shannonsche Epansionsregel BDDs 3 Repräsentation von BDDs in C BDDs 4 lautet wie olgt: () () () Sei nun die oberste Variable zweier BDDs und g: ite(,, ) g ite(,g,g ) mit i bzw. g i die Kinder von und g ür i =,. Dann olgt () = g() = g () = g() = g da nach dem R in ROBDD nur ganz oben in und g vorkommt. ( ()@g()) ( ()@g()) ) ) eine beliebige zweistellige boolesche Operation ist (z.b.,,,...) Rekursives Schema zur Berechnung von Operationen au BDDs tpede struct BDD BDD; struct BDD int id, mark; child[2], *net; ; #deine sign_bdd(ptr) ( & (unsigned) ptr) #deine strip_bdd(ptr) ((BDD*) (~ & (unsigned) ptr)) #deine not_bdd(ptr) ((BDD*) ( ^ (unsigned) ptr)) #deine true_bdd ((BDD*) ) #deine alse_bdd ((BDD*) ) #deine is_constant_bdd(ptr) \ ((ptr) == true_bdd (ptr) == alse_bdd) Unique-Tabelle ür BDDs BDDs 5 Normalisierung von BDD Knoten BDDs 6 #deine UNIQUE_SIZE ( << 2) unique[unique_size]; * ind_bdd (int id, c, c) r, **p; unsigned h = (id + ((int) c) * * (int) c); h = h & (UNIQUE_SIZE - ); or (p = unique + h; (r = *p); p = &r->net) i (r->id == id && r->child[] == c && r->child[] == c) break; return p; ite(,, ) ( ) ( ) ite(,, )
5 Hils-Konstruktor ür BDDs BDDs 7 Konstruktor ür BDDs BDDs 8 new_bdd_au (int id, c, c) res; assert (!sign_bdd (c)); i ((res = *ind_bdd (id, c, c))) return res; res = () malloc (sizeo (BDD)); memset (res,, sizeo (BDD)); res->id = id; res->child[] = c; res->child[] = c; *ind_bdd (id, c, c) = res; new_bdd (int id, c, c) res; int sign; i (c == c) return c; i ((sign = sign_bdd (c))) c = not_bdd (c); c = not_bdd (c); res = new_bdd_au (id, c, c); return res; return sign? not_bdd (res) : res; Unterschiedliche Top-Indizes BDDs 9 Top-Inde Berechnung BDDs g int top_id_bdd ( a, b) int res[2]; res[] = (is_constant_bdd (a))? - : strip_bdd (a)->id; res[] = (is_constant_bdd (b))? - : strip_bdd (b)->id; return res[res[] < res[]]; gibt einach den Inde der Variablen im obersten Knoten zurück ( g)() ( g) ( g) (hier kann einer der beiden Argumente eine Konstante sein) bei nicht passenden Indizes wird nur ein Knoten zerlegt
6 Berechnung einacher Koaktoren BDDs 2 Divide BDDs 22 coactor ( bdd, int pos, int id) res; int sign; i (is_constant_bdd (bdd)) return bdd; i ((sign = sign_bdd (bdd))) bdd = not_bdd (bdd); res = (bdd->id == id)? bdd->child[pos] : bdd; return sign? not_bdd (res) : res; pos-ter Koaktor von bdd ist pos-tes Kind wenn Variablen-Inde passt ansonsten wird der gleiche BDD zurückgegeben (man beachte Propagierung des Vorzeichens) void coactor2 ( a, b, c[2][2], int *id_ptr) int id = *id_ptr = top_id_bdd (a, b); c[][] = coactor (a,, id); c[][] = coactor (a,, id); c[][] = coactor (b,, id); c[][] = coactor (b,, id); bestimme Top-Inde der beiden BDDs a und b und berechne Koaktoren bezüglich des Top-Inde Basis-Funktoren ür Appl BDDs 23 Brant s Appl Algorithmus BDDs 24 basic_and ( a, b) assert (is_constant_bdd (a) && is_constant_bdd (b)); return () (((unsigned) a) & (unsigned) b); basic_or ( a, b) assert (is_constant_bdd (a) && is_constant_bdd (b)); return () (((unsigned) a) (unsigned) b); basic_or ( a, b) assert (is_constant_bdd (a) && is_constant_bdd (b)); return () (((unsigned) a) ^ (unsigned) b); tpede (*BasicFunctor) (, ); appl (BasicFunctor op, a, b) tmp[2], *c[2][2]; int id; i (is_constant_bdd (a) && is_constant_bdd (b)) return op (a, b); coactor2 (a, b, c, &id); tmp[] = appl (op, c[][], c[][]); tmp[] = appl (op, c[][], c[][]); return new_bdd (id, tmp[], tmp[]); Deinition eines Funktions-Pointer-Tp, zur Aunahme von Operationen
7 Abkürzungen BDDs 25 Zusammenassung Appl BDDs 26 and_bdd ( a, b) return appl (basic_and, a, b); or_bdd ( a, b) return appl (basic_or, a, b); or_bdd ( a, b) return appl (basic_or, a, b); var_bdd (int id) return new_bdd (id, alse_bdd, true_bdd); es ehlt noch ein Cache : dann linear in beiden Argumenten im Cache merkt man sich schon mal durchgeührte Berechnungen dann können alle Knoten von beiden Argumenten nur einmal autreten Optimierung : Spezialalgorithmen ür AND und XOR einühren auch wenn nur ein Argument konstant ist, kann man rüher abbrechen ebenso, wenn beide Argumente bis au das Vorzeichen identisch sind weitere BDD-Algorithmen basieren au gleichem Schema: Koaktoren bestimmen, Rekursion, mit Shannon zusammensetzen Zusammenassung BDDs BDDs 27 Kanonische Datenstruktur ür boolesche Funktionen kein Allheilmittel aber wesentlich besser als DNF häuig kompakt ür in der Prais autretenden Funktionen Trade-O: Platz statt Zeit Anwendungen: Snthese, Smbolische Simulation, Equivalence Checking, Model-Checking
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)
MehrBinary Decision Diagrams (BDDs) 1
Handout 22.11.2011 Binary Decision Diagrams (BDDs) 1 Übersicht Es gibt viele verschiedene Möglichkeiten um Boole sche Funktionen zu repräsentieren (Boole sche Formeln, Minterme, Wahrheitstabellen, ). Manche
MehrBinary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
MehrWas 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,
MehrFormale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK
Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association
MehrAlgorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen
Algorithmen für OBDD s 1. Reduziere 2. Boole sche Operationen 1 1. Reduziere siehe auch M.Huth und M.Ryan: Logic in Computer Science - Modelling and Reasoning about Systems, Cambridge Univ.Press, 2000
MehrBinä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:
MehrRechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik
Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik WS 2013/14 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 21. Oktober 2013 1/33 1 Boolesche
MehrInformationsverarbeitung auf Bitebene
Informationsverarbeitung auf Bitebene Dr. Christian Herta 5. November 2005 Einführung in die Informatik - Informationsverarbeitung auf Bitebene Dr. Christian Herta Grundlagen der Informationverarbeitung
MehrWas bisher geschah: klassische Aussagenlogik
Was bisher geschah: klassische Aussagenlogik klassische Aussagenlogik: Syntax, Semantik Äquivalenz zwischen Formeln ϕ ψ gdw. Mod(ϕ) = Mod(ψ) wichtige Äquivalenzen, z.b. Doppelnegation-Eliminierung, DeMorgan-Gesetze,
MehrTU5 Aussagenlogik II
TU5 Aussagenlogik II Daniela Andrade daniela.andrade@tum.de 21.11.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;)
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrWas bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion
Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert
MehrII.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
Mehr2. Lernen von Entscheidungsbäumen
2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,
MehrDr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
MehrII. Grundlagen der Programmierung
II. Grundlagen der Programmierung II.1. Zahlenssteme und elementare Logik 1.1. Zahlenssteme 1.1.1. Ganze Zahlen Ganze Zahlen werden im Dezimalsstem als Folge von Ziffern 0, 1,..., 9 dargestellt, z.b. 123
MehrGrundlagen 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.
MehrProgrammierung 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:
MehrProf. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015
Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I
MehrMathematik für Informatiker I
Mathematik für Informatiker I Mitschrift zur Vorlesung vom 19.10.2004 In diesem Kurs geht es um Mathematik und um Informatik. Es gibt sehr verschiedene Definitionen, aber für mich ist Mathematik die Wissenschaft
MehrCodes 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
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrBeispiel Aussagenlogik nach Schöning: Logik...
Beispiel Aussagenlogik nach Schöning: Logik... Worin besteht das Geheimnis Ihres langen Lebens? wurde ein 100-jähriger gefragt. Ich halte mich streng an die Diätregeln: Wenn ich kein Bier zu einer Mahlzeit
MehrGrundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
MehrMB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am
MB-ALG, SS1 Seite 1 Hauptklausur, geschrieben am.07.01 Vorname Nachname Matrikel-Nr Diese Klausur ist mein letzter Prüfungsversuch (bitte ankreuzen): Ja Nein Ihre Lösung für Aufgabe 1 können Sie direkt
Mehr4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum
4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,
MehrVU Grundlagen digitaler Systeme
VU Grundlagen digitaler Systeme Übung 4. Übung 183.580, 2014W Übungsgruppen: Fr., 05.12.2014 Hinweis: Verwenden Sie für Ihre Lösungen keinen Taschenrechner und geben Sie die einzelnen Lösungsschritte an,
MehrÜBUNG ZUM GRUNDKURS LOGIK WS 2015/16 GÜNTHER EDER
ÜBUNG ZUM GRUNDKURS LOGIK WS 2015/16 GÜNTHER EDER SPARSAMKEIT BEI DER WAHL DER JUNKTOREN Wie sich mit Wahrheitstaeln zeigen lässt, benötigen wir nicht gar nicht alle Junktoren die oiziell in unserer Sprache
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
MehrBisher. minimale DNF. logischen Formeln Booleschen Funktionen Schaltungen
Bisher Klassische Aussagenlogik (Syntax, Semantik) semantische Äquivalenz von Formeln äquivalentes Umformen von Formeln (syntaktisch) Normalformen: NNF, DNF, CNF, kanonische DNF und CNF Ablesen kanonischer
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrHaskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
Mehr13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems
13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrGeordnete Binärbäume
Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung
MehrNachholklausur Informatik II
Technische Universität Darmstadt Teil Informatik II Fachbereich Informatik Frühjahr 2001 Fachgebiet Graphisch-Interaktive Systeme Prof. Dr. J. L. Encarnação Dr. J. Schönhut Nachholklausur Informatik II
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Mehr5. Elementare Befehle und Struktogramme
5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen
MehrIn diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. 1. Bäume Grundlagen...
Bäume und Graphen In diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. Inhalt 1. Bäume... 1.1. Grundlagen... 1.. Repräsentation von Binärbäumen... 9 1..1.
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrBinäre Bäume Darstellung und Traversierung
Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.
MehrWas bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,
MehrRandomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
MehrMathematik-Vorkurs für Informatiker Aussagenlogik 1
Christian Eisentraut & Julia Krämer www.vorkurs-mathematik-informatik.de Mathematik-Vorkurs für Informatiker Aussagenlogik 1 Aufgabe 1. (Wiederholung wichtiger Begriffe) Notieren Sie die Definitionen der
MehrHochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.
Zahldarstellung Lernziele: Vertiefen der Kenntnisse über Zahldarstellungen. Aufgabe 1: Werte/Konstanten Ergänzen Sie die Tabelle ganzzahliger Konstanten auf einem 16- Bit- System. Die Konstanten in einer
MehrÜbungen zu Programmierung I - Blatt 8
Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail
MehrAussagenlogik. Aussagen und Aussagenverknüpfungen
Aussagenlogik Aussagen und Aussagenverknüpfungen Aussagen sind Sätze, von denen sich sinnvollerweise sagen läßt, sie seien wahr oder falsch. Jede Aussage besitzt also einen von zwei möglichen Wahrheitswerten,
MehrBinä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.
MehrKonjunktive und disjunktive Normalformen
Konjunktive und disjunktive Normalformen Nachdem gesprochen wurde, wie man Boolesche Terme unter einer Belegung der Variablen interpretiert und dass somit jeder Boolesche Term eine Boolesche Funktion repräsentiert,
MehrNotizen zu Transformationen und Permutationen. T (A) = {f : A A}
Transformationen Notizen zu Transformationen und Permutationen Ist A eine Menge, so ist die Menge T (A) = {f : A A} bezüglich der Komposition (Hintereinanderausführung) als Operation und der identischen
MehrBäume und Wälder. Bäume und Wälder 1 / 37
Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine Kreise enthält. Diese Graphen sind Bäume: Diese aber nicht:
MehrAbstrakte Algorithmen und Sprachkonzepte
Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise
Mehr4 Logik 4.1 Aussagenlogik
4 Logik 4.1 Aussagenlogik Mod - 4.1 Kalkül zum logischen Schließen. Grundlagen: Aristoteles 384-322 v. Chr. Aussagen: Sätze, die prinzipiell als ahr oder alsch angesehen erden können. z. B.: Es regnet.,
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen
MehrKap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrStrukturelle Rekursion und Induktion
Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion
MehrGliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten
Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und
Mehr2. Repräsentationen von Graphen in Computern
2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen
MehrEine 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
MehrTutoraufgabe 1 (2 3 4 Bäume):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.0.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden aus
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Beweise)
WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14
MehrAlgorithmen & Programmierung. Ausdrücke & Operatoren (1)
Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck
MehrKlausur Formale Systeme Fakultät für Informatik 2. Klausur zum WS 2010/2011
Fakultät für Informatik 2. Klausur zum WS 2010/2011 Prof. Dr. Bernhard Beckert 08. April 2011 Vorname: Matrikel-Nr.: Platz: Klausur-ID: **Platz** **Id** Die Bearbeitungszeit beträgt 60 Minuten. A1 (17)
MehrVorlesung Diskrete Strukturen Graphen: Wieviele Bäume?
Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Mehrexpr :: Expr expr = Mul (Add (Const 3) (Const 4)) (Div (Sub (Const 73) (Const 37)) (Const 6))
1 - Korrektur 2 - Abstrakte Datentypen für arithmetische Ausdrücke Der Datentyp Wir beginnen zunächst mit dem algebraischen Datentyp für Ausdrücke. Hierfür definieren wir einen Konstruktor Number für Zahlen,
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer
Mehr1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrGoniometrische Gleichungen
EL / GS - 3.8.5 - e_triggl.mcd Goniometrische Gleichungen Definition: Gleichungen, in denen die Variable als Argument von Winkelfunktionen vorkommen, nennt man "goniometrische Gleichungen". sweg: Mit Hilfe
MehrWas bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone
Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer
MehrZusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
MehrKapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrAbschnitt: 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
Mehr368 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
MehrBinary 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
MehrProblemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus
Problemreduktion durch Transformation am Beispiel des Erweiterten Euklidschen Algorithmus Wolfgang Windsteiger JKU Linz, A 4040 Linz, Austria Kurzfassung Transformation beschreibt im Wesentlichen die algorithmische
MehrProgrammiertechnik II
2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität
MehrÜbung 4: Aussagenlogik II
Übung 4: Aussagenlogik II Diskrete Strukturen im Wintersemester 2013/2014 Markus Kaiser 8. Januar 2014 1/10 Äquivalenzregeln Identität F true F Dominanz F true true Idempotenz F F F Doppelte Negation F
MehrStudientag zur Algorithmischen Mathematik
Studientag zur Algorithmischen Mathematik Eulertouren, 2-Zusammenhang, Bäume und Baumisomorphismen Winfried Hochstättler Diskrete Mathematik und Optimierung FernUniversität in Hagen 22. Mai 2011 Outline
MehrFormalisierung von Sudoku Formalisieren Sie das Sudoku-Problem:
Formalisierung von Sudoku Formalisieren Sie das Sudoku-Problem: 4 4 4 4 4 1 1 1 1 2 2 3 3 5 5 5 5 5 5 6 6 6 7 7 8 8 9 9 9 9 9 8 6 Verwenden Sie dazu eine atomare Formel A[n, x, y] für jedes Tripel (n,
Mehr13. Abzählen von Null- und Polstellen
13. Abzählen von Null- und Polstellen 77 13. Abzählen von Null- und Polstellen Als weitere Anwendung des Residuensatzes wollen wir nun sehen, wie man ot au einache Art berechnen kann, wie viele Null- bzw.
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrBeispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
MehrDer 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