Binary Decision Diagrams
|
|
- Karsten Michel
- vor 5 Jahren
- Abrufe
Transkript
1 Dr. Wolfgang Günther BDDs - Binar Decision Diagrams Dr. Wolfgang Günther BDDs - 2 Binar Decision Diagrams Anwendungen in der kombinatorischen und sequentiellen Verifikation bieten eine kanonische Darstellung Konstruktion des BDDs für Spezifikation und für Implementierung Vergleich der BDDs in linearer (konstanter) Zeit bieten effiziente Algorithmen zur Manipulation Boolesche Operationen, Quantifizierung, etc. 0 Dr. Wolfgang Günther BDDs - 3 In diesem Kapitel... Definition von BDDs Algorithmen auf BDDs Konjunktion, etc. Smbolische Simulation Implementierung von BDDs Optimieren der Variablenordnung verschiedene Verfahren Verallgemeinerungen KFDDs, WLDDs, LTBDDs Dr. Wolfgang Günther BDDs - 4 Frei verfügbare BDD-Packages CUDD-Package: Fabio Somenzi Universit of Colorado at Boulder. CAL-Package: R.K. Ranjan and J. Sanghavi Universit of California, Berkele.
2 Dr. Wolfgang Günther BDDs - 5 Beispiel beschreibt die Boolesche Funktion f(,, ) = ' ' ' + ' + '. BDDs beruhen auf der Shannon-Epansion: f(,..., i,..., n ) = i ' f i=0 (,..., n ) + i f i= (,..., n ). Dr. Wolfgang Günther BDDs - 6 Definition von BDDs: Snta Ein binäres Entscheidungsdiagramm (engl. Binar Decision Diagram, BDD) über einer Variablenmenge X n ={,..., n } ist ein gerichteter, azklischer Graph G = (V, E) mit Wurzel v V, wobei G genau eine Wurzel und mindestens eine Senke hat V aus terminalen und nichtterminalen Knoten besteht jeder nichtterminale Knoten v V mit einer Variablen inde(v) X n markiert ist und zwei direkte Nachfolger low(v) V und high(v) V hat; jeder terminale Knoten t V einen Booleschen Wert inde(t) {0,} als Marke hat und Senke ist. Dr. Wolfgang Günther BDDs - 7 Definition von BDDs: Semantik Ist B ein BDD über X n, v ein Knoten von B, so ist die Boolesche Funktion fv : X n {0,}, die durch v dargestellt wird, folgendermaßen definiert: Ist v terminaler Knoten, so ist f v die konstante Boolesche Funktion inde(v). Ist v ein nichtterminaler Knoten mit inde(v)=, so ist f v gleich f v = ' f low (v) + f high (v). Ist w die Wurzel von B, so ist die Funktion f B : X n {0,}, die durch B dargestellt wird, gleich f w. Dr. Wolfgang Günther BDDs - 8 Beispiel Welche Funktion ist dargestellt? 0
3 Dr. Wolfgang Günther BDDs - 9 Schwierigkeiten bei BDDs Allgemeine BDDs gemäß der obigen Definition liefern keine kanonische Darstellung Boolescher Funktionen. Es ist unklar wie Operationen (and, or, not,...) auf Booleschen Funktionen bei allgemeinen BDDs effizient realisiert werden können. Deshalb: Verwendung von Einschränkungen: Reduzierte geordnete Decision Diagrams (ROBDDs) Dr. Wolfgang Günther BDDs - 0 Einschränkungen an BDDs Definition [freie DD, FBDD]: Ein BDD heißt frei, wenn auf jedem Pfad von der Wurzel zu einem terminalen Knoten jede Variable höchstens einmal als Markierung vorkommt. Definition [ordered BDD, OBDD] Ein FBDD über {,..., n } heißt geordnet, wenn es eine bijektive Abbildung π:{,...,n} {,..., n } gibt, so dass für jede Kante (v,w) mit w nichtterminal die Ungleichung π (inde(w)) > π (inde(v)) gilt, d.h. π gibt die Reihenfolge an, in der die Variablen auf jedem Pfad von der Wurzel zu einem Blatt abgefragt werden. Dr. Wolfgang Günther BDDs - Beispiele für geordnete und nicht geordnete BDDs Dr. Wolfgang Günther BDDs - 2 Reduzierte OBDDs (ROBDDs) 4 geordnet mit π=(,2,3,4) 4 nicht geordnet, da auf einem Pfad vor und auf einem anderen Pfad 2 nach 3 steht Ein OBDD ist reduziert, wenn es keine verschiedenen Knoten v und w gibt, die Wurzeln von isomorphen BDDs sind. keinen nichtterminalen Knoten v mit low(v) = high(v) gibt. Reduktionsregeln zur Transformation von OBDDs in ROBDDs: z z
4 Dr. Wolfgang Günther BDDs - 3 Reduzieren von OBDDs () Dr. Wolfgang Günther BDDs - 4 Reduzieren von OBDDs (2) isomorphe Knoten isomorphe Knoten isomorphe Knoten OBDDs können schichtweise (bottom up) reduziert werden Dr. Wolfgang Günther BDDs - 5 Reduzieren von OBDDs (3) redundanter Knoten isomorphe Knoten 4 Dr. Wolfgang Günther BDDs - 6 Reduzieren von OBDDs (4) 4 redundanter Knoten 4 ROBDD Anmerkung: Gängige Implementierungen von ROBDD-Paketen haben keine eigene Operation zum Reduzieren, sondern garantieren zu jedem Zeitpunkt, dass im gesamten Sstem (evtl. aus mehreren ROBDDs bestehend) nie zwei identische Sub-Funktionen durch verschiedene ROBDD-Knoten repräsentiert werden
5 Dr. Wolfgang Günther BDDs - 7 Kanonizität von ROBDDs Satz (Brant, 986): Sei π eine feste Variablenordnung. Dann gibt es zu jeder Booleschen Funktion f (bis auf Isomorphie) genau einen ROBDD mit Variablenordnung π, der f beschreibt. Wesentliche Eigenschaft für die Verifikation: Sowohl für Spezifikation als auch für Implementierung werden die ROBDDs der entsprechenden Booleschen Funktionen (mit der selben Variablenordnung) berechnet. Äquivalenztest reduziert sich auf den Test, ob die entsprechenden ROBDDs isomorph sind. Dr. Wolfgang Günther BDDs - 8 Kanonizität von ROBDDs (2) Beweis: Induktion nach Zahl n der Variablen, von denen f abhängt Induktionsanfang: n=0 f ist konstant. O.B.d.A. sei f = 0. Sei B ein ROBDD, der f repräsentiert und k hat. 0 innere Knoten Da f B = 0, führt jeder Pfad von der Wurzel zu Terminal 0, d.h. Terminal kommt in B nicht vor. Wegen Reduziertheit gibt es genau ein 0-Terminal. Annahme: k. Da B endlich und azklisch ist, gibt es dann einen inneren Knoten, dessen beide Nachfolger Blätter, also Terminal 0 sind. Widerspruch dazu, dass B reduziert ist! Dr. Wolfgang Günther BDDs - 9 Kanonizität von ROBDDs (3) Dr. Wolfgang Günther BDDs - 20 Kanonizität von ROBDDs (4)... Induktionsvoraussetzung: Es gibt zu jeder Funktion mit < n Variablen (bis auf Isomorphie) genau einen ROBDD. Induktionsschritt: Annahme: Zur Funktion f (mit n Variablen) gebe es 2 verschiedene, nicht isomorphe ROBDDs B und B2 mit Wurzeln w und w2 und f B = f B2 = f. Sei w mit i beschriftet und w2 mit j beschriftet.... Fall : i j. O.B.d.A. sei π - ( i ) < π - ( j ). f B2 ist unabhängig von i f = f B2 ist unabhängig von i. Nach Def. gilt f = f B = i ' f low (w) + i f high (w) und somit f i ' = f low (w) und f i = f high (w). Da f unabhängig von i, gilt f i ' = f i und f low (w) = f high (w) Fallunterscheidung i j und i j. Nach Ind.vor. gibt es dazu (bis auf Isomorphie) genau einen ROBDD. Wegen Reduziertheit von B ist deshalb low(w) = high(w) und somit ist w ein redundanter Knoten. Widerspruch.
6 Dr. Wolfgang Günther BDDs - 2 Dr. Wolfgang Günther BDDs - 22 Kanonizität von ROBDDs (5)... Fall 2: i j. D.h. w und w2 sind mit i beschriftet. Analog zu obiger Argumentation: f low (w) = f i' = f low (w2) und f high (w) = f i = f high (w2), da f = f B = f B2. Damit nach Ind.vor.: die ROBDDs mit Wurzeln low(w) und low(w2) sind isomorph und die ROBDDs mit Wurzeln high(w) und high(w2) sind isomorph. B und B2 sind isomorph. Q.E.D. Im Folgenden: alle BDDs sind geordnet und reduziert Variablenmenge ist X n Annahme: Wir haben Funktionen f und g als BDD gegeben. Frage: Wie kann man damit rechnen, d.h. wie ist der BDD für f g, f + g, f g, etc.? Dr. Wolfgang Günther BDDs - 23 Konstruktion von BDDs Bemerkung: alle Booleschen Operatoren lassen sich durch den tenären Operator ITE(F, G, H) = F G + F' H zurückführen. Beispiel: AND(F, G) = ITE(F, G, 0), NOT(F) = ITE(F, 0, ). ITE(F, G, H) = F G + F' H = (F G + F'H) + ' (F G + F'H) ' = (F G + (F )' H ) + ' (F ' G ' + (F ' )'H ' ) = ITE(F, G, H ) + ' ITE(F ', G ', H ' ) Dr. Wolfgang Günther BDDs - 24 Basisalgorithmus für ITE () ITE(F, G, H) = ' ITE(F ', G ', H ' ) + ITE(F, G, H ) Berechne rekursiv ROBDDs für ITE(F ',G ',H ) und ITE(F,G,H ). Falls ITE(F,G,H ) = ITE(F ',G ',H ), so ist ITE(F,G,H) = ITE(F,G,H ) = ITE(F ',G ',H ). Ansonsten: Generiere einen neuen Knoten v mit inde(v)=, dessen low-kante auf ITE(F ',G ',H ) zeigt und dessen high-kante auf ITE(F,G,H ) zeigt, (falls ein solcher Knoten nicht schon eistiert).
7 Dr. Wolfgang Günther BDDs - 25 Basisalgorithmus für ITE (2) Dr. Wolfgang Günther BDDs - 26 Beschleunigung durch Cache node* ITE(node* F, node* G, node* H) { /* Terminalfälle */ } if (F == G == H) return G; if (F == 0) return H; /* Rekursive Aufrufe */ = top_variable_of(f, G, H); low = ITE(F ', G ', H ' ); high = ITE(F, G, H ); if (low == high) return low; R = unique_table_find_or_add(, low, high); return R; Die 3 Operatoren müssen die gleiche Variablenordnung haben Eponentielle Laufzeit in der Anzahl der Variablen (zwei rekursive Aufrufe!) node* ITE(node* F, node* G, node* H) { /* Terminalfälle */ if (computed_table_has_entr(f, G, H)) return result; R = /* Berechne Ergebnis */; computed_table_insert(f, G, H, R); return R; } In der computed table werden alle Resultate der bisherigen ITE- Operationen gespeichert Anzahl der Aufrufe von ITE beschränkt durch die Anzahl der möglichen Tripel (F, G, H) Dr. Wolfgang Günther BDDs - 27 Laufzeit des ITE-Operators Sei F die Zahl der Knoten im BDD für F. Lemma: Die Laufzeit von ITE(F, G, H) ist in O( F G H ). Korollar: Die Laufzeit des logischen AND(F, G) ist in O( F G ). Dr. Wolfgang Günther BDDs - 28 Unique Table Knoten eines BDDs werden in einer Hashtabelle gespeichert Schlüssel: Inde und ausgehende Kanten (Zeiger) Vor dem Anlegen eines neuen Knoten wird nachgesehen, ob es schon einen mit gleicher Funktion gibt. Dadurch wird Kanonizität gewährleistet Üblicherweise werden für jeden Inde (für jedes Level) separate Hashtabellen verwendet
8 Dr. Wolfgang Günther BDDs - 29 Computed Table Cache für Operationen, um zu verhindern, dass die gleiche Operation mehrfach berechnet werden muss Es ist nicht sinnvoll, alle Ergebnisse zu speichern (Speicherbedarf) Üblicherweise ist die Größe der Computed Table (ziemlich) fest gewählt Hashing mit Verlust: Soll ein Eintrag neu eingefügt werden und ist die entsprechende Hash-Adresse schon belegt, so wird der alte Eintrag überschrieben. Dr. Wolfgang Günther BDDs - 30 Implementierung Struktur für Knoten: struct node { variable var; // Variable int ref; // Referenzzähler struct node *low, *high; // Kanten struct node *net; // für Unique Table }; ref: Zahl der eingehenden Kanten Dr. Wolfgang Günther BDDs - 3 Komplementkanten Jeder Kante bekommt ein zusätzliches Bit Das unterste Bit der Zeiger kann verwendet werden, da bei üblichen Rechnerarchitekturen nur gerade Speicheradressen verwendet werden Ist das Bit gesetzt, so ist die dargestellte Funktion zu invertieren Es genügt ein Terminalknoten Dr. Wolfgang Günther BDDs - 32 Kanonizität bei Komplementkanten Die Darstellung mit Komplementkanten ist (zunächst) nicht kanonisch. Die Kanonizität kann wiederhergestellt werden durch die Einschränkung, dass low-kanten nicht komplementiert sein dürfen i i i i i f i 0 i f i i f i 0 i f i
9 Dr. Wolfgang Günther BDDs - 33 Kofaktor-Berechnung Berechnung von f 0 f,, 0, i i i Verwendung einer Computed Table Kofaktor nach i eines Knotens v ist die low-kante, wenn der Knoten mit i markiert ist, der Knoten (inde (v), (f low ) i=0, (f high ) i=0 ), sonst, Dr. Wolfgang Günther BDDs - 34 node* cofactor(node* f, variable v) { /* Terminalfälle */ if (f konstant) return f; := inde(f ); if (level( ) > level(v)) return f; // f hängt nicht von v ab /* Überprüfen der Computed Table */ if (computed table has entr (f, v, result)) return result; if ( == v) result = f low ; else { res0 = cofactor(f low, v); res = cofactor(f high, v); result = unique_find_or_add(, res0, res); } insert (f, v, result) into computed_table; return result; } Dr. Wolfgang Günther BDDs - 35 Überblick über Operationen Dr. Wolfgang Günther BDDs - 36 Smbolische Simulation () Operation Kompleität Auswertung O(n) Erfüllbarkeit O() Äquivalenz O() Negation* O() AND/OR/XOR O( F G ) Kofaktor O( F ) Quantifizierung O( F 2 ) * mit Komplementkanten, sonst O( F ) Gegeben: Kombinatorische Schaltung Gesucht: BDD für die Boolesche Funktion, die die Schaltung realisiert Anwendungen: Äquivalenzvergleich Wenn ich für zwei Schaltungen den BDD konstruiert habe, kann ich in konstanter Zeit sagen, ob sie die gleiche Funktion berechnen... und viele andere
10 Dr. Wolfgang Günther BDDs - 37 Smbolische Simulation (2) Dr. Wolfgang Günther BDDs - 38 Smbolische Simulation (3) Beginne bei den Eingängen, erzeuge für jeden Eingang den BDD für die entsprechende Eingangsvariable. Durchlaufe die Schaltung in topologischer Reihenfolge und berechne mit Operationen die BDDs für die an den einzelnen Gattern berechneten Funktionen. Resultat: BDD der realisierten Booleschen Funktion Smbolische Simulation (im Gegensatz zur Simulation einzelner Eingangsbelegungen) 4. Generiere BDDs für die Variablen,..., 4 : bdd,..., bdd 4 4 f Dr. Wolfgang Günther BDDs - 39 Smbolische Simulation (4) Dr. Wolfgang Günther BDDs - 40 Die Größe des BDDs 4 f. bdd 2 := AND(bdd, bdd 2 ) 2. bdd 23 := AND(bdd 2, bdd 3 ) 3. bdd 2' := NOT(bdd 2 ) 4. bdd 2'4 := AND(bdd 2', bdd 4 ) 5. bdd 23+2'4 := OR(bdd 23, bdd 2'4 ) 6. bdd 3' := NOT(bdd 3 ) 7. bdd 3'4 := AND(bdd 3', bdd 4 ) 8. bdd f := AND(bdd 23+2'4, bdd 3'4 ) Die Größe des BDDs einer Funktion hängt von der Funktion ab Es gibt Funktionen, für die der BDD lineare Größe hat Beispiel: Die XOR-Funktion Es gibt Funktionen, für die der BDD eponentiell groß ist Beispiel: Die Multipliziererfunktion Fast alle BDDs haben eponentielle Größe Folgt aus Satz von Shannon (Fast alle Booleschen Funktionen haben eine Kompleität (= Anzahl von 2- Input-Gattern in optimaler Realisierung) > 2 n /n) und der Tatsache, dass man BDDs als Multipleerschaltkreise interpretieren kann
11 Dr. Wolfgang Günther BDDs - 4 Die XOR-Funktion f(,, ) = Dr. Wolfgang Günther BDDs - 42 Hidden Weighted Bit-Funktion Betrachte mit hwb n, s i n i, n 0 0 s s Wie groß ist der BDD dafür unter der besten Variablenordnung? s Dr. Wolfgang Günther BDDs - 43 Definition: Transfermenge Sei eine Belegung der Variablen aus X n := {... n } und I X n. lässt sich aufteilen in eine Belegung Variablen in I und in eine Belegung anderen Variablen. I der Xn\I der Eine Menge F(I) von Belegungen der Variablen aus I heißt Transfermenge (fooling set) für eine Boolesche Funktion f, wenn es für I, I ' F(I) mit I I ' eine Belegung J der Variablen aus Xn\I gibt, so dass f( I J ) f( I ' J ). Dr. Wolfgang Günther BDDs - 44 Definition: Balancierte Partition Sei (0, ). Sei (L, R) eine Partitionierung von X n, d.h. L R = X n und L R =. Die Partition ist balanciert, wenn X n L X n. Man kann sich auch auf eine Menge Y X n von Schlüsselvariablen beschränken. Dazu muss man in obiger Definition X n durch Y ersetzen.
12 Dr. Wolfgang Günther BDDs - 45 Untere Schranke für die Größe Dr. Wolfgang Günther BDDs - 46 Untere Schranke für HWB n Satz (Brant, 99): Sei f : B n B und (0, ). Gibt es für jede balancierte Partition (L, R) bezüglich eine Transfermenge F(L) der Größe c, so hat jede BDD-Repräsentation von f mindestens c-2 Knoten. Sind die Variablen L im oberen Teil des BDDs, muss jede Belegung von F(L) zu einem neuen BDD-Knoten zeigen. Für jede Variablenordnung gibt es eine balancierte Partition (L, R) bezüglich Beweis: Drechsler, Becker, Graph. Funktionsdarstellung. Satz (Brant, 99): Ein BDD für HWB n benötigt (2 n/0 ) Knoten. Beweis: Sei n ein Vielfaches von 0 (o. B. d. A.). Sei (L, R) eine balancierte Partition bzgl. = 0,6. Zu zeigen: Transfermenge F(L) der Größe (2 (0, n) ). Seien X H und X L Teilmengen von X n mit X H 0.9n, X L 0.5n, Da L = 0,6 n und X H + X L = 0,8 n, muss entweder X H L 0,2 n oder X L L 0,2 n sein. Es gibt ein W mit W 0,2 n und W L oder W, 0.5n X H, 0.n X L L. Dr. Wolfgang Günther BDDs - 47 Fall : W Untere Schranke für HWB n (2) X H L. F(L) wird so definiert, dass F(L) setzt die Hälfte der Variablen in W und alle Variablen aus L W auf. In L sind dann genau 0,5 n Variablen mit Wert. F(L) ist Transfermenge: Seien F(L), Aus Def. von F(L) folgt: Wegen W X H ist 0,5n i i 2 W : ( i ) 0,9n. 2 ( i ). Sei R eine Belegung der Variablen aus R, die (i 0.5n) Variablen auf setzt. Da 0.5n Variablen aus L mit belegt sind, gilt HWB n ( R ) = ( i ) 2 ( i ) = HWB n ( 2 R ). n Die Größe von F(L) ist 0.2n n 2. Dr. Wolfgang Günther BDDs - 48 Fall 2: W Untere Schranke für HWB n (3) X L L. F(L) wird so definiert, dass F(L) setzt die Hälfte der Variablen in W und alle Variablen aus L W auf 0. In L sind dann genau 0, n Variablen mit Wert. F(L) ist Transfermenge: Seien F(L), Aus Def. von F(L) folgt: Wegen W X L ist 0,n < i i W : 0,5n. 2 ( i ) 2 ( i ). Sei R eine Belegung der Variablen aus R, die (i 0.n) Variablen auf setzt. Da 0.n Variablen aus L mit belegt sind, gilt HWB n ( R ) = ( i ) 2 ( i ) = HWB n ( 2 R ). n Die Größe von F(L) ist 0.2n n 2.
13 Dr. Wolfgang Günther BDDs - 49 Eponentielle Größe Mit der gleichen Beweistechnik lässt sich beweisen, dass die Multipliziererfunktion f,, n,,, n eponentiell groß ist. bin Genauer: Um das (n-)-te Ergebnisbit darzustellen, n werden 8 2 Knoten benötigt. Im Gegensatz zur HWB hat diese eine hohe praktische Relevanz! i n i 2 i i n i 2 i Dr. Wolfgang Günther BDDs - 50 Einfluss der Variablenordnung Die Größe eine BDDs kann stark von der verwendeten Variablenordnung abhängen Beispiel: f, n n 2 n n eponentielle Größe , n lineare Größe 3 Dr. Wolfgang Günther BDDs - 5 Verbessern der Variablenordnung Satz (Bollig, Savick, Wegener, 994): Das Problem, zu einem gegebenen BDD mit Variablenordnung π eine Variablenordnung π ' zu finden, bei der die BDD-Größe minimal ist, ist NP-vollständig. Man unterscheidet eakte Verfahren initiale Verfahren (Ordnung wird aus Darstellung des Schaltkreises bestimmt) dnamische Verfahren (Ordnung wird während der Berechnung verbessert) Dr. Wolfgang Günther BDDs - 52 Vertauschen benachbarter Variablen Basisoperation für viele Verfahren, die mit einem BDD starten. k j l i m j echange( i, j ) n Variablentausch ist eine lokale Operation und betrifft nur die Knoten, die mit den beiden Variablen beschriftet sind. i j i k m l n
14 Dr. Wolfgang Günther BDDs - 53 Vertauschen benachbarter Variablen (2) Dr. Wolfgang Günther BDDs - 54 Vertauschen benachbarter Variablen (3) Die Größe kann sich verändern i i j j j j k l k m a l b m mit k, l, m, a, b paarweise verschieden. echange( i, j ) j i i k l m a b j Es brauchen nur die Knoten der beiden betroffenen Variablen betrachtet werden Aber: Knoten sind in einer Hashtabelle (Unique Table) gespeichert Deshalb: Für jede Variable wird eine separate Unique Table verwendet Bei n Variablen sind es nun n Unique Tables Schlüssel der Hashtabelle braucht die Variable nicht mehr zu enthalten Größen der Hashtabellen müssen dnamisch sein Dr. Wolfgang Günther BDDs - 55 Eaktes Minimieren Dr. Wolfgang Günther BDDs - 56 Eaktes Minimieren (2) Es gibt Anwendungen, bei denen eine geringe Größe des BDDs sehr wichtig ist Logik-Snthese: Der BDD wird direkt auf einen Multipleer- Schaltkreis abgebildet Evaluierung von Heuristiken Trivialer Ansatz: Konstruiere den BDD für alle n! Ordnungen Satz (Friedman, Supowit, 987): Sei f : B n B, I X n, k = I und i I. Dann gibt es c 0, so dass #nodes i (f, für jedes (I) mit (k) = i, wobei (I) = { : ( j ) I I }. Knoten in Level k bleiben unverändert bei Änderungen im oberen / unteren Bereich Folgt aus Lokalität des Tausches benachbarter Variablen j ) = c k
15 Dr. Wolfgang Günther BDDs - 57 Eaktes Minimieren (3) Dnamische Programmierung Der BDD wird von oben her aufgebaut Sei I X n mit I = k. Angenommen, die optimale Ordnung sei für alle I' I mit I' = k- bekannt. Dann kann die optimale Ordnung für I berechnet werden, indem für alle i I die Variablen aus I \ { i } in die oberen Level gebracht werden Variable i nach Level k gebracht wird Dr. Wolfgang Günther BDDs - 58 compute_optimal_ordering(bdd f ) insert (I =, min_cost = 0, = current order) into table; for (k = ; k n; k++) { // k : current level net_table = ; for each I table { set_permutation( I ); for each i X n { shift i to level k; I' = I { i }; = current order; cost = min_cost I + #nodes i (f, ); if (I' net_table or cost < min_cost I' ) store (I', cost, ) into net_table; } } table = net_table; } set_permutation(best ); Dr. Wolfgang Günther BDDs - 59 Dr. Wolfgang Günther BDDs - 60 Beispiel: f = + Beispiel: f = + table := { (I =, min_cost = 0, = (,, ) ) }; k := ; net_table := { ( { },, (,, ) ), ( { },, (,, ) ), ( { },, (,, ) ) }; 0 table := { ( { },, (,, ) ), ( { },, (,, ) ), ( { },, (,, ) ) }; k := 2; net_table := { ( {, }, 2, (,, ) ), ( {, }, 2, (,, ) ), ( {, }, 2, (,, ) ) }; 0 0
16 Dr. Wolfgang Günther BDDs - 6 Beispiel: f = + Dr. Wolfgang Günther BDDs - 62 Eaktes Minimieren (5) table := { ( {, }, 2, (,, ) ), ( {, }, 2, (,, ) ), ( {, }, 2, (,, ) ) }; k := 3; net_table := { ( {,, }, 3, (,, ) ) }; 0 Möglichkeiten der Verbesserung Verwendung unterer Schranken etwa Brant, 99 Verwendung von Smmetrien Wenn f ( ) = f ( ), dann kann o. B. d. A. angenommen werden, dass vor in der optimalen Ordnung steht. Für Funktionen mit bis zu ~25 Variablen anwendbar Dr. Wolfgang Günther BDDs - 63 Heuristische Verfahren Dr. Wolfgang Günther BDDs - 64 Sifting Sifting (Rudell, 993) lower bound sifting (Drechsler, Günther, 999) Group Sifting (Panda, Somenzi, 995) Block-restricted Sifting (Meinel, Slobodová, 997) Window Permutation Anwendung des eakten Verfahrens auf Fenster geringer Größe Die Fenster werden über den BDD verschoben Evolutionärer Algorithmus i := Variable des breitesten Levels i
17 Dr. Wolfgang Günther BDDs - 65 Sifting i := Variable des breitesten Levels Verschieben des Levels an alle Positionen Dr. Wolfgang Günther BDDs - 66 Sifting i := Variable des breitesten Levels Verschieben des Levels an alle Positionen Verschieben an die beste Position Wiederhole dies für die restlichen Variablen Dr. Wolfgang Günther BDDs - 67 Sifting (2) Laufzeit: O(n 2 ) Vertauschungen von Variablen Bei Funktionen mit >00 Variablen zu viel Verbesserungen: Verschieben zum näheren Ende zuerst Eine Variable wird nicht weiter in eine Richtung bewegt, wenn eine Maimalgröße überschritten ist Beispiel:.2-faches der momentanen Größe Verwendung unterer Schranken Dr. Wolfgang Günther BDDs - 68 Lower Bound Sifting SiftingDown(k : level to sift) lb = compute_lower_bound(k); best = size_of_bdd(); while (k < n and lb best ) { level_echange(k, k+); lb = compute_lower_bound(k); if (size_of_bdd() < best ) best = size_of_bdd(); k = k + ; }
18 Dr. Wolfgang Günther BDDs - 69 Bit-Ebene: f : B n Varianten von BDDs B m Andere Dekompositionstpen (FDDs, KFDDs) Weniger restriktive Darstellungen (Freie BDDs, Read-k-times BDDs) Transformationen (LTBDDs,...) Operationsknoten (Parit-BDDs, BEDs,...) Wort-Ebene: f : B n Z m MTBDDs, BMDs, *BMDs, K*BMDs,... Die Multiplikation kann mit *BMDs linearer Größe dargestellt werden Dr. Wolfgang Günther BDDs - 70 Functional DDs (FDDs) positive Davio-Dekomposition: f(,..., i,..., n ) = f i=0 i (f i=0 negative Davio-Dekomposition: f(,..., i,..., n ) = f i= i ' (f i=0 f i= ) f i= ) Manipulation von FDDs XOR-Operation bleibt polnomiell AND, OR eponentiell im worst case Minimierung Variablentausch kann analog zu BDDs erfolgen ( Übungsaufgabe) Dr. Wolfgang Günther BDDs - 7 Kronecker Functional DDs (KFDDs) Dr. Wolfgang Günther BDDs - 72 Linear Transformierte BDDs alle drei Dekompositionstpen Manipulation von KFDDs wie bei FDDs Minimierung Wahl der Variablenordnung und der Dekompositionstpen Knoten haben statt einer Variablen die Parität einer Menge von Variablen Dies entspricht einer linearen Transformation f '() = f (A()) f = ( + ( ) ) 0
19 Dr. Wolfgang Günther BDDs - 73 Linear Transformierte BDDs (2) Dr. Wolfgang Günther BDDs - 74 Linear Transformierte BDDs (3) Kanonische Darstellung Für eine feste Variablenordnung und Transformation Ein eponentieller Unterschied ist möglich Es gibt eine Funktion, die mit einem LTBDD linearer Größe dargestellt werden kann, für die aber jeder BDD eponentiell groß ist. Verändern der Transformation ist effizient Ersetzen von durch für in der Variablenordnung benachbarte Variablen ist lokale Operation Techniken zur Minimierung: Linear Sifting (Meinel, Somenzi, Theobald, 997) Erweiterung von Sifting um einen linearen Operator auch hier können untere Schranken verwendet werden Eakte Minimierung Nur für sehr kleine Funktionen praktikabel Window Optimization Algorithmus Genetischer Algorithmus Dr. Wolfgang Günther BDDs - 75 Operatoren auf LTBDDs Dr. Wolfgang Günther BDDs - 76 Word-Level DDs ITE-Operator kann wie für BDDs implementiert werden ITE(f A, g A, h A) = ITE(f, g, h) Es gibt effiziente Algorithmen für Kofaktor-Berechnung Quantifizierung Erfüllbarkeitsprobleme A Bit-level DDs können die Multiplikation nicht mit polnomieller Größe darstellen Außer... Arithmetische Schaltungen können auch durch pseudo-boolesche Funktionen beschrieben werden Boolesche Werte werden mit 0, identifiziert Inverter: f ( ) =.
20 Dr. Wolfgang Günther BDDs - 77 Dekompositionstpen für WLDDs Dr. Wolfgang Günther BDDs - 78 Multi-Terminal BDDs Shannon: ( i ) f i=0 + i f i= positiv Davio: f i=0 + i ( f i= f i=0 ) f low := f i=0 heißt konstanter Teil f high := f i= f i=0 heißt linearer Teil negativ Davio: f i= + ( i ) ( f i=0 f i= ) Nur Shannon-Dekomposition Ganzzahlige Terminalknoten Kanonische Darstellung Minimierung und Manipulation ähnlich zu BDDs Terminalknoten können in einer weiteren Hashtabelle gespeichert werden Dr. Wolfgang Günther BDDs - 79 Binar Moment Diagrams Dr. Wolfgang Günther BDDs - 80 Reduktionsregeln für BMDs Nur positiv Davio-Dekomposition Kanonische Darstellung Können Multiplizierer in quadratischer Größe darstellen z z (klar) 0 + *0
21 Dr. Wolfgang Günther BDDs - 8 BMDs: Beispiel Dr. Wolfgang Günther BDDs - 82 Auswertung von BMDs f (,, z) = 8 20 z z z + 5 = (8 20 z z ) + ( z + 5 ) = ((8 20 z ) + (2 + 4 z )) + (( z ) + 5 ) z z z Summe aller aktiven Pfade Eine Kante ist aktiv, falls es eine low-kante ist eine high-kante ist und die Belegung der Variablen wahr ist Ein aktiver Pfad ist ein Pfad von der Wurzel zu einem terminalen Knoten, der nur aus aktiven Kanten besteht. Beispiel: f (0,, ) = = -6. z z z Dr. Wolfgang Günther BDDs - 83 BMDs: Beispiel 2 Dr. Wolfgang Günther BDDs - 84 BMDs: Beispiel 3 f,, n n i i 2 i n- n f,, n,, n i i, n 2 i n n i n-2 2 n n-
22 Dr. Wolfgang Günther BDDs - 85 BMDs: Multiplizierer Dr. Wolfgang Günther BDDs - 86 BMDs: Addition f, i n i 2 i i n, n,,, n i 2 i n=3: 3 2 Gegeben: BMDs für f und g. Gesucht: BMD für (f + g). f + g = (f low + i f high ) + (g low + i g high ) = (f low + g low ) + i (f high + g high ) Die Multiplikation lässt sich durch einen BMD mit n² inneren Knoten darstellen node* ADD(node* F, node* G) { check terminal cases = top_variable_of(f, G); low = ADD(F ', G ' ); } high = ADD(F, G ); R = unique_table_find_or_add(, low, high); return R; Dr. Wolfgang Günther BDDs - 87 BMDs: Operationen Addition zweier BMDs F und G hat eine Laufzeit von O( F G ) wenn die Computed Table perfekt funktioniert Multiplikation zweier BMDs F und G kann eponentiellen Aufwand erfordern Operation BDD BMD Auswertung O(n) O( F ) Erfüllbarkeit O() O() Äquivalenz O() O() AND O( F G ) ep. ADD -- O( F G ) MULT -- ep. Dr. Wolfgang Günther BDDs - 88 Multiplicative Binar Moment Diagrams Bei *BMDs werden zusätzlich multiplikative Faktoren 0 an den Kanten zugelassen. f low m f high Kanonizität? Die eingehende Kante des Knotens repräsentiert die Funktion m * (f low + * f high ).
23 Dr. Wolfgang Günther BDDs - 89 Kanonizität von *BMDs *BMDs sind eine kanonische Darstellung, wenn () es als Terminalknoten höchstens 0 und gibt, (2) alle multiplikativen Faktoren ungleich 0 sind, (3) der multiplikative Faktor von high-kanten > 0 ist, (4) der größte gemeinsame Teiler der ausgehenden Kanten eines Knotens ist. Dr. Wolfgang Günther BDDs - 90 *BMDs: Beispiel f = 8 20 z z z + 5 BMD 5 z z z 5 z z z z 5 z z 5 z *BMD Dr. Wolfgang Günther BDDs - 9 Multiplikation mit *BMDs Dr. Wolfgang Günther BDDs - 92 Verifikation mit *BMDs BMD *BMD Die Multiplikation lässt sich durch einen *BMD mit 2n inneren Knoten beschreiben. 4 Vorteile: weiterhin kanonische Darstellung lineare Größe für alle wichtigen arithmetischen Schaltungen Für Boolesche Funktionen verhalten sich *BMDs in der Prais ähnlich wie BDDs Nachteile: Algorithmen zur Snthese können eponentiellen Aufwand haben Multiplizierer kann nur auf Wort-Ebene dargestellt werden (Gruppierung der Ausgänge)
24 Dr. Wolfgang Günther BDDs - 93 Kronecker Multiplicative BMDs Dr. Wolfgang Günther BDDs - 94 Vergleich BDDs vs. BMDs () Alle drei Dekompositionstpen Additive und multiplikative Kantengewichte f low (a,m) f high Die eingehende Kante des Knotens repräsentiert die Funktion a + m * ((-) f low + * f high ) (Shannon) a + m * (f low + * f high ) (pos. Davio) a + m * (f low + ( ) * f high ) (neg. Davio) BDDs: reine Bit-Level- Datenstruktur Schaltung muss auf Bit-Ebene gegeben sein. Nur Boolesche Operationen können auf BDDs berechnet werden *BMDs: Word-Level- Datenstruktur Schaltung kann auf Word-Level gegeben sein, Operationen auf ganzen Zahlen können verwendet werden Additionen und Multiplikationen können direkt auf *BMDs durchgeführt werden. Dr. Wolfgang Günther BDDs - 95 Vergleich BDDs vs. BMDs (2) BDDs Multiplizierer benötigen eponentielle Größe Boolesche Operationen benötigen in polnomiale Zeit Vorwärtsaufbau Standard *BMDs Manchmal kann man eponentielle Blowups vermeiden. (Boolesche) Operationen benötigen eponentielle Zeit Rückwärtsaufbau haben sich (noch???) nicht durchgesetzt
é KFDDs (Kronecker Functional Decision Diagrams) [Drechsler, Sarabi, Becker, Perkowski 1994]
9.2 Weitere DD-Tpen Die wichtigsten... é BDDs [Brant 1986] é KFDDs (Kronecker Functional Decision Diagrams) [Drechsler, Sarabi, Becker, Perkowski 1994] é Word-Level DDs é *BMDs (Multiplicative Binar Moment
5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)
5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:
Entscheidungsverfahren für die Software-Verifikation. 4 - BDDs
Entscheidungsverfahren für die Software-Verifikation 4 - BDDs Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen) Boolesche
Nicht-Kanonizität von AIGs Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.6
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)
Darstellung Boolescher Funktionen
Darstellung Boolescher Funktionen Einführung in die Technische Informatik Univ.-Prof. Dr. Paul Molitor Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg
Shannon Formeln. Formale Systeme. Normierte Shannon Formeln. Eigenschaften des sh-operators
Shannon Formeln Formale Systeme Prof. Dr. Bernhard Beckert Fakultät für Informatik Universität Karlsruhe (TH) Shannon Formeln sind aussagenlogische Formeln, die aufgebaut sind aus dem dreistelligen Operator
Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH)
Formale Systeme Prof. Dr. Bernhard Beckert Fakultät für Informatik Universität Karlsruhe (TH) Winter 28/29 Prof. Dr. Bernhard Beckert Formale Systeme Winter 28/29 / 32 Shannon Formeln Shannon Formeln sind
Binary Decision Diagrams
Hauptseminar Model Checking Binary Decision Diagrams Kristofer Treutwein 23.4.22 Grundlagen Normalformen Als kanonische Darstellungsform für boolesche Terme gibt es verschiedene Normalformen, u.a. die
Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert, WS 2017/2018
Formale Systeme Prof. Dr. Bernhard Beckert, WS 27/28 Binary Decision Diagrams KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK www.kit.edu KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft Shannon-Formeln
Binary 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
Graphenbasierte Funktionsdarstellung. Boolesche und Pseudo- Boolesche Funktionen
Graphenasierte Funktionsdarstellung Boolesche und Pseudo- Boolesche Funktionen Entscheidungsdiagramme (engl.: "decision diagrams" (DDs) Bedeutender Beitrag zur Bewältigung der Komplexität in der formalen
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)
4. OBDDs und Modellüberprüfung
4. OBDDs und Modellüberprüfung OBDD Ordered Binary Decision Diagrams Geordnete binäre Entscheidungsdiagramme Binäres Entscheidungsdiagramm: in der einfachsten Form ein binärer Entscheidungsbaum, in dem
Präsentation BDDs Binary Decision Diagrams
Präsentation Binary Decision Diagrams Günther Eder Andreas Weichhart 28.01.2011 1 / 19 Überblick 1/2 Überblick Boolean Expressions Nachteil KNF/DNF Shannon Expansion INF 1. 2. Boolean Expressions 3. Nachteil
Electronic Design Automation (EDA) Technology Mapping
Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel
Binary 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
Grundlagen digitaler Systeme WS12
Grundlagen digitaler Systeme WS12 Binary Decision Diagrams Johann Blieberger 183.580, VU 2.0 Automation Systems Group E183-1 Institute of Computer Aided Automation Vienna University of Technology email:
runekrauss.com Effiziente Implementierung von Binären Entscheidungsdiagrammen
runekrauss.com Effiziente Implementierung von Binären Entscheidungsdiagrammen Einleitung Repräsentation und Manipulation Boolescher Funktionen ist wichtig für viele Applikationen: Symbolische Simulation,
Formale 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
Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)
WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) 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_15
Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008
Informatik II Rainer Schrader Zentrum für Angewandte Informatik Köln 3. November 008 1 / 47 / 47 jede Boolesche Funktion lässt mit,, realisieren wir wollen wir uns jetzt in Richtung Elektrotechnik und
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
Quantum Ordered Binary Decision Diagrams
Quantum Ordered Binary Decision Diagrams Hecke Schrobsdorff BCCN Göttingen Oberseminar Theoretische Informatik WS 5 Inhalt Einführung Wiederholung: Quantumcomputing 3 Wiederholung: OBDDs 4 Quanten Branching
Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume
Algorithmen auf Sequenzen
Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen
Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier
Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre
Copyright, Page 1 of 7 Heapsort
www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl
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,
Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016
Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +
7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
Wiederholung. Divide & Conquer Strategie
Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in
2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}
1. Berechne für jeden Knoten i in BFS-Art eine Liste S i von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt: (i) S i < n 2 + 1 und Si enthält alle von i aus erreichbaren Knoten (ii) S i = n
ADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,
Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Übung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
Algorithmen 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
Albert Ludwigs Universität Freiburg Institut für Informatik
Albert Ludwigs Universität Freiburg Institut für Informatik Lehrstuhl für Rechnerarchitektur Prof. Dr. Bernd Becker Diplomarbeit Verifikation von Dividierern mit Word-Level-Decision-Diagrams Achim D. Brucker
12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
Rechnerstrukturen. 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
Übung 3 Musterlösung
Prof aa Dr Ir Joost-Pieter Katoen Sebastian Junges, Benjamin Kaminski, David Korzeniewski, Tim Quatmann Hinweise: Übung 3 Musterlösung Die Lösungen müssen bis Donnerstag, den 03 Mai um 16:00 Uhr in den
Algorithmen zur Visualisierung von Graphen
Algorithmen zur Visualisierung von Graphen Teile & Herrsche-Algorithmen: Bäume und serien-parallele Graphen Vorlesung im Wintersemester 20/202..202 Algorithmen zum Zeichnen von Bäumen Anwendbarkeit Gut
5 Zwei spieltheoretische Aspekte
5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,
Algorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15
Logik Gabriele Kern-Isberner LS 1 Information Engineering TU Dortmund Wintersemester 2014/15 WS 2014/15 G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 1 / 125 Übersicht Modallogik 5. Grundlagen 6. Erfüllbarkeit
Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16
Rechnerstrukturen, Teil Vorlesung 4 SWS WS 5/6 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-.de http://ls-www.cs.tu-.de Übersicht. Organisatorisches 2.
Informatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine
Isomorphie von Bäumen
Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................
ADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt
3.3 Optimale binäre Suchbäume
3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum
Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf
Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf
Rechnerstrukturen WS 2012/13
Rechnerstrukturen WS 202/3 Boolesche Funktionen und Schaltnetze Repräsentationen boolescher Funktionen (Wiederholung) Normalformen boolescher Funktionen (Wiederholung) Repräsentation boolescher Funktionen
Definition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:
2.1.2 Rot-Schwarz-Bäume Definition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 1 alle Blätter hängen an schwarzen Kanten
Datenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
Grundbegriffe für dreiwertige Logik
Grundbegriffe für dreiwertige Logik Hans Kleine Büning Universität Paderborn 1.11.2011 1 Syntax und Semantik Die klassische Aussagenlogik mit den Wahrheitswerten falsch und wahr bezeichnen wir im weiteren
Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
Informatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine
Algorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).
2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form
Rechnerstrukturen WS 2012/13
Rechnerstrukturen WS 2012/13 Boolesche Funktionen und Schaltnetze Schaltnetze Rechner-Arithmetik Addition Bessere Schaltnetze zur Addition Carry-Look-Ahead-Addierer Multiplikation Wallace-Tree Hinweis:
Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.
Abschätzung für die Rekursion von SELECT Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Wir nehmen erst einmal an, dass eine Konstante d existiert,
Lernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /
Carry Lookahead Adder
Carry Lookahead Adder Mittels der Generate und Propagate Ausdrücke lässt ich dann für jede Stelle i der Carry (Übertrag) für die Stelle i+1 definieren: Für einen 4 Stelligen Addierer ergibt sich damit:
Analysis 1, Woche 2. Reelle Zahlen. 2.1 Anordnung. Definition 2.1 Man nennt eine Anordnung für K, wenn: 1. Für jeden a K gilt a a (Reflexivität).
Analysis 1, Woche 2 Reelle Zahlen 2.1 Anordnung Definition 2.1 Man nennt eine Anordnung für K, wenn: 1. Für jeden a K gilt a a (Reflexivität). 2. Für jeden a, b K mit a b und b a gilt a = b (Antisymmetrie).
Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
Speichern von Zuständen
Speichern von Zuständen Erweiterung eines R S Latch zu einem D Latch (D=Data, C=Clock) R S altes Q neues Q 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 R S C D altes Q neues Q 0 0 0 0 0 1 0 1 0 0 1
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
6. Sich selbst organisierende Datenstrukturen
6. Sich selbst organisierende Datenstrukturen 6.1 Motivation einfach, wenig Verwaltungsoverhead effizient im amortisierten Sinn EADS 6.1 Motivation 201/598 6.2 Sich selbst organisierende lineare Listen
2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus
2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten
3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)
WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) 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_16
(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
DAP2-Klausur
DAP2-Klausur 09.10.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik (inkl. angewandte Informatik)/ Lehramt Informatik/Informationstechnik/ Physik/Mathe/Statistik/Sonstiges: Bitte
EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
4. Alternative Temporallogiken
4. Alternative Temporallogiken Benutzung unterschiedlicher Temporallogiken entsprechend den verschiedenen Zeitbegriffen LTL: Linear Time Logic Ähnlich der CTL, aber jetzt einem linearen Zeitbegriff entspechend
Aufgaben zur Klausurvorbereitung
Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014
Einführung in die Logik
Einführung in die Logik Klaus Madlener und Roland Meyer 24. April 2013 Inhaltsverzeichnis 1 Aussagenlogik 1 1.1 Syntax................................. 1 1.2 Semantik............................... 3 1.3
Parallele Algorithmen in der Bildverarbeitung
Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren
Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 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:
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge
Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.
Linken von Bäumen: Zwei Bäume desselben Wurzel-Rangs werden unter Einhaltung der Heap-Bedingung verbunden. Sind k 1 und k 2 die Wurzeln der zwei zu linkenden Bäume, so wird ein neuer Baum aufgebaut, dessen
13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)
AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe
Kapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
Fortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
13 Berechenbarkeit und Aufwandsabschätzung
13 Berechenbarkeit und Aufwandsabschätzung 13.1 Berechenbarkeit Frage: Gibt es für jede Funktion, die mathematisch spezifiziert werden kann, ein Programm, das diese Funktion berechnet? Antwort: Nein! [Turing
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
Lösungen von Übungsblatt 12
Lösungen von Übungsblatt 12 Algorithmen (WS 2018, Ulrike von Luxburg) Lösungen zu Aufgabe 1 Eine (kanonische) Möglichkeit, die Branch-Schritte auszuführen ergibt sich wie folgt: Das ursprüngliche Problem