Binary Decision Diagrams

Größe: px
Ab Seite anzeigen:

Download "Binary Decision Diagrams"

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]

é 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

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

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:

Mehr

Entscheidungsverfahren für die Software-Verifikation. 4 - BDDs

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

Mehr

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 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)

Mehr

Darstellung Boolescher Funktionen

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

Mehr

Shannon Formeln. Formale Systeme. Normierte Shannon Formeln. Eigenschaften des sh-operators

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

Mehr

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH)

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

Mehr

Binary Decision Diagrams

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

Mehr

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert, WS 2017/2018

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

Mehr

Binary Decision Diagrams (BDDs) 1

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

Mehr

Graphenbasierte Funktionsdarstellung. Boolesche und Pseudo- Boolesche Funktionen

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

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

4. OBDDs und Modellüberprüfung

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

Mehr

Präsentation BDDs Binary Decision Diagrams

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

Mehr

Electronic Design Automation (EDA) Technology Mapping

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

Mehr

Binary Decision Diagrams (Einführung)

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

Mehr

Grundlagen digitaler Systeme WS12

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:

Mehr

runekrauss.com Effiziente Implementierung von Binären Entscheidungsdiagrammen

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,

Mehr

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

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

Mehr

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

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

Mehr

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

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

Mehr

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

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

Mehr

Algorithmen und Datenstrukturen 2

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

Mehr

Quantum Ordered Binary Decision Diagrams

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

Mehr

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

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

Mehr

Algorithmen auf Sequenzen

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

Mehr

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 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

Mehr

Copyright, Page 1 of 7 Heapsort

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

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

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 +

Mehr

7. Sortieren Lernziele. 7. Sortieren

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

Mehr

Wiederholung. Divide & Conquer Strategie

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

Mehr

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

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

Mehr

ADS: Algorithmen und Datenstrukturen 2

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,

Mehr

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: :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

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

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

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Ü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

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Ü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

Mehr

Algorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen

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

Mehr

Albert Ludwigs Universität Freiburg Institut für Informatik

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

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

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

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

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

Mehr

Übung 3 Musterlösung

Ü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

Mehr

Algorithmen zur Visualisierung von Graphen

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

Mehr

5 Zwei spieltheoretische Aspekte

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,

Mehr

Algorithmische Bioinformatik 1

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

Mehr

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 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

Mehr

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

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.

Mehr

Informatik I Komplexität von Algorithmen

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

Mehr

Vorlesung Datenstrukturen

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

Mehr

Isomorphie von Bäumen

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..............................

Mehr

ADS: Algorithmen und Datenstrukturen 2

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,

Mehr

Algorithmen und Datenstrukturen 2

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

Mehr

3.3 Optimale binäre Suchbäume

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

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Ü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

Mehr

Rechnerstrukturen WS 2012/13

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

Mehr

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:

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

Mehr

Datenstrukturen und Algorithmen (SS 2013)

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

Mehr

Grundbegriffe für dreiwertige Logik

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

Mehr

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.

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

Mehr

Datenstrukturen & Algorithmen

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

Mehr

Informatik II, SS 2014

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

Mehr

Algorithmen und Datenstrukturen Heapsort

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

Mehr

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

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

Mehr

Rechnerstrukturen WS 2012/13

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:

Mehr

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.

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,

Mehr

Lernmodul 7 Algorithmus von Dijkstra

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

Mehr

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) 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

Mehr

Algorithmen und Datenstrukturen

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 /

Mehr

Carry Lookahead Adder

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:

Mehr

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). 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).

Mehr

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.

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

Mehr

Speichern von Zuständen

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

Mehr

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

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

Mehr

6. Sich selbst organisierende Datenstrukturen

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

Mehr

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 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

Mehr

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. 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:

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

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

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(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,

Mehr

DAP2-Klausur

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

Mehr

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 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

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

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

Mehr

4. Alternative Temporallogiken

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

Mehr

Aufgaben zur Klausurvorbereitung

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

Mehr

Einführung in die Logik

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

Mehr

Parallele Algorithmen in der Bildverarbeitung

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

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

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:

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

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

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

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

Mehr

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

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

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

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

Mehr

Algorithmen und Datenstrukturen 2

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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

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

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Mehr

13 Berechenbarkeit und Aufwandsabschätzung

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

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

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

Mehr

Lösungen von Übungsblatt 12

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

Mehr