1.4 Suche in Und-oder-Bäumen
|
|
- Barbara Schulze
- vor 9 Jahren
- Abrufe
Transkript
1 Einführung in die KI Prof. Dr. sc. Hans-Dieter Burkhard Vorlesung Suchverfahren -Teil 2: 1.4 Problemzerlegung 1.5 Spielbäume 1.4 Suche in Und-oder-Bäumen Problemzerlegung Und-oder-Baum Lösungsbaum Lösungsverfahren Umformung in Zustandsraum-Suche Beschränkung auf Bäume! Suchverfahren 2 1
2 Problemlösung durch Zerlegung Zerlege ein Problem P in einzelne Probleme P 1,...,P n Löse jedes Problem P i (als einfaches Problem oder durch iterierte Problemzerlegung) Füge die Lösungen zusammen zu P Beispiele: Ungarischer Würfel Kurvendiskussion Integralrechnung Prolog: Klausel -> Subgoals Agenten: Verteiltes Problemlösen Suchverfahren 3 Problemlösung durch Zerlegung Ergebnis: Plan als Hierarchie von Teilzielen: Darstellung als Baum bzw. Liste von Teilzielen: Folge von Basis-Aktionen (Blätter des Baumes) Least Commitment: Zerlegung in Teilziele möglichst spät Suchverfahren 4 2
3 Beweisbaum (PROLOG) mother_in_law(gaea,gaea) mother(gaea,uranus) parent(gaea,uranus) parent(uranus,gaea,cronus) father(uranus,cronus) female(gaea) mother(gaea,cronus) parent(uranus,cronus) male(uranus) parent(gaea,cronus) female(gaea) Suchverfahren 5 Prolog: Klausel als Problemzerlegung goal(x 1,...,X n ) :- subgoal 1 (X 1,...,X n ),..., subgoal m (X 1,...,X n ). erreichbar(start,ziel,zeit) :- s_bahn(start,zwischenziel,abfahrt,ankunft,_), erreichbar(zwischenziel,ziel,zeit1), addierezeit(zeit1,ankunft,abfahrt,zeit). Suchverfahren 6 3
4 Problemzerlegung Graphische Darstellung: Und-Verzweigung brother(b,x) :- male(b), parent(v,m,b), parent(v,m,x) brother(b,x) male(b) parent(v,m,b) parent(v,m,x) Suchverfahren 7 Abhängigkeit von Teilproblemen Abhängige Teilprobleme Inhaltlich: Ressourcen, Bindungen von Variablen in Prolog-Klauseln, Zeitlich Abfolge: Schritte (partiell) geordnet Suchverfahren 8 4
5 Alternativen für Problemzerlegung Zerlegung des Problems P in Probleme P 1,...,P n oder in Probleme P 1,...,P n oder... Klauseln einer Prolog-Prozedur bieten Alternativen grandfather(x,z):-father(x,y),father(y,z). grandfather(x,z):-father(x,y),mother(y,z). Graphische Darstellung: Oder-Verzweigung grandfather(x,z) Klausel1 Klausel2 Suchverfahren 9 Kombinierte Verzweigungen verreisen oder-verzweigung fliegen autofahren bahnfahren wandern und-verzweigungen oder-verzweigungen Zum Bahnhof fahren Fahrkarte kaufen... Tram Tai Bus Automat Schalter und-verzweigungen Suchverfahren 10 5
6 (Virtuelle) Optionen Hierarchie PlaySoccer Offensive Defensive... Score Kick DoublePass/1 DoublePass/2... Dribble Pass... ChangeWings/ Attack... OffsideTrap Run Reposition Intercept Architektur: RoboCup Spieler Suchverfahren Oder-Verzweigungen Auswahlmöglichkeiten in der Optionenhierarchie Angriff Torschuss Doppelpass/1 Doppelpass/2... Flügelwechsel/1... Suchverfahren 12 6
7 Intention Subtree (Resultat des Deliberators) PlaySoccer Offensive Defensive... Score Kick DoublePass/1 DoublePass/2... Dribble Pass... ChangeWings/ Attack... OffsideTrap Run Reposition Intercept Suchverfahren 13 Problem-Zerlegung Komplee Option: Petri-Netz, Und-Verzweigung Dribbling Pass Run Intercept Mitspieler frei Pass fertig Mitspieler hat gepasst Doppelpass Dribbling Pass Run Intercept Suchverfahren 14 7
8 Und-Oder-Baum Ein Und-oder-Baum besteht (abwechselnd) aus Knoten mit oder-verzweigungen und Knoten mit und-verzweigungen Modell für Problemzerlegungen: oder-verzweigungen für alternative Möglichkeiten zur Problemzerlegung und-verzweigungen für Teilprobleme Modell für Prolog-Programm: oder-verzweigungen für alternative Klauseln einer Prozedur und-verzweigungen für subgoals einer Klausel Suchverfahren 15 Und-Oder-Baum Anfrage Startknoten ( Wurzel ) modelliert Ausgangsproblem Knoten ohne Nachfolger ( Blätter ) sind unterteilt in - terminale Knoten ( primitive Probleme ) Fakt modellieren unmittelbar lösbare Probleme - nichtterminale Knoten modellieren nicht zu lösende Probleme Innere Knoten sind unterteilt in - Knoten mit und-verzweigung - Knoten mit oder-verzeigung Unerfüllbares Goal (keine unifizierende Klausel) Subgoals einer Klausel Alternative Klauseln Suchverfahren 16 8
9 Und-Oder-Baum a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) Suchverfahren 17 Und-Oder-Baum?-a (1) (2) a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) b c e f (3) (4) (5) (6) (7) (8) g h e h g h (9) (6) (9) (9) Suchverfahren 18 9
10 Lösbare/unlösbare Knoten Lösbare Knoten: 1. terminale Knoten, 2. Knoten mit Und-Verzweigung: falls alle Nachfolger lösbar sind 3. Knoten mit Oder-Verzweigung: falls mindestens ein Nachfolger lösbar ist Unlösbare Knoten: 1. nichtterminale Knoten, 2. Knoten mit Und-Verzweigung: falls mindest. ein Nachfolger unlösbar, 3. Knoten mit Oder-Verzweigung: falls alle Nachfolger unlösbar sind Für endliche Bäume ergibt sich bei Festlegung für die Blätter eine H.D.Burkhard, eindeutige HU Berlin Zerlegung Vorlesung Einführung in lösbare/unlösbare in die KI Knoten Suchverfahren 19 (Bedingungen sind jeweils komplementär) Lösbare/unlösbare Knoten?-a (1) (2) b c e f a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) (3) (4) (5) (6) (7) (8) g h e h g h (9) (6) (9) (6) Suchverfahren 20 10
11 Bottom-up-Konstruktionsalgorithmus Anfang: M LÖSBAR := terminale Knoten M UNLÖSBAR := nichtterminale Knoten Zyklus: Solange nicht alle Knoten untersucht wurden: Wähle Knoten k, dessen Nachfolger alle untersucht wurden. Falls k und-verzweigung und alle Nachfolger von k in M LÖSBAR oder falls k oder-verzw. und ein Nachfolger von k in M LÖSBAR : M LÖSBAR := M LÖSBAR {k}, andernfalls: M UNLÖSBAR := M UNLÖSBAR {k}. Suchverfahren 21 Bottom-up-Konstruktionsalgorithmus Ergebnis für endliche Und-Oder-Bäume: Zerlegung der Knoten in lösbare Knoten (M LÖSBAR ) und unlösbare Knoten (M UNLÖSBAR ) Das Ausgangsproblem kann genau dann durch Problemzerlegung gelöst werden, wenn der Startknoten in M LÖSBAR ist. Falls Ausgangsproblem lösbar ist, kann ein Lösungsbaum konstruiert werden. Suchverfahren 22 11
12 Lösungsbaum Endlicher Teilbaum des Und-oder-Baums mit folgenden Eigenschaften: - Enthält nur lösbare Knoten, - enthält Wurzelknoten, - bei Und-Verzweigungen sind alle Nachfolger enthalten, - bei Oder-Verzweigungen ist (genau) ein Nachfolger enthalten Modell für Beweisbaum in PROLOG Suchverfahren 23 Lösungsbäume?-a (1) (2) a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) b c e f (3) (4) (5) (6) (7) (8) g h e h g h (9) (6) (9) (6) Suchverfahren 24 12
13 Lösungsbäume?-a (1) (2) b c e f a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) (3) (4) (5) (6) (7) (8) g h e h g h (9) (6) (9) (6) Suchverfahren 25 Und-oder-Baum modelliert Beweisversuche grandfather(x,ares) grandfather(x,ares):- father(x,y),father(y,ares). grandfather(x,ar father(x,y),moth father(x,y). father(x,y):-parent(x,y),male(x). father(y,ares). father(y,ares):-parent(y,ares),male(y). parent(x,y). male(x). parent(y,ares). male(y). parent(uranus, parent(gaea, cronus). uranus). male(uranus). parent(gaea, cronus). male(cronus). parent(uranus, parent(rhea, rhea). male(zeus). parent(gaea, cronus). parent(cronus, zeus). male(hades). uranus). male(uranus). parent(rhea, hera). zeus). male(apollo). parent(gaea, cronus). male(cronus). male(dionysius). parent(rhea, rhea). male(zeus). parent(cronus, zeus). male(hades). zeus). male(apollo). male(dionysius). male(hermes). male(hermes). parent(rhea, hera). Suchverfahren 26 13
14 Und-oder-Baum modelliert Beweisversuche grandfather(x,ares) father(x,ares):- r(x,y),father(y,ares). grandfather(x,ares):- father(x,y),mother(y,ares). father(x,y). father(x,y):-parent(x,y),male(x). mother(y,ares). Mother(Y,ares):-parent(Y,ares),female(Y parent(x,y). male(x). parent(y,ares). female(y). parent(uranus, parent(gaea, cronus). uranus). male(uranus). parent(gaea, cronus). male(cronus). parent(uranus, parent(rhea, rhea). male(zeus). parent(gaea, cronus). parent(cronus, zeus). male(hades). uranus). female(gaea) parent(rhea, hera). zeus). male(apollo). parent(gaea, cronus). male(cronus male(dionysius). parent(rhea, rhea). male(zeus male(hermes). parent(cronus, zeus). male(ha parent(rhea, hera). zeus). male(a ma Suchverfahren 27 Lösungsbaum modelliert Beweisbaum grandfather(cronus,ares). father(cronus,zeus). father(zeus,ares). male(cronus). parent(cronus,zeus). male(zeus). parent(zeus,ares). Suchverfahren 28 14
15 Modell für nicht-deterministische Suche Beispiel: Vereinfachtes PROLOG-Schema (ohne Unifikation: Aussagen-Kalkül ) 1. Initialisiere: subgoals={g 1,...,g n } 2. Falls subgoals = : Erfolg. 3. Wähle g subgoals. 4. Wähle Klausel k: g :- g 1,...,g m der Prozedur für g. Falls kein solches k eistiert: Mißerfolg (des Versuchs). 5. subgoals := ({g 1,...,g n } - {g} ) {g 1,...,g m }. Weiter bei 2. Alle Varianten probieren, falls keine zum Erfolg führt: Nicht beweisbar Suchverfahren 29 Varianten für ND-Suche?-a (1) (2) b c e f (3) (4) (5) (6) (7) (8) g h e h g h (9) (6) (9) (9) {a} {b,c} {e,f} a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) {g,h,c} {e,h,c} {b} {f} {e,g} {e} {g,c} {g,h} {h,c} {e,c} {e,h} {g,h} {e,h} {g} {h} {g} {} {g} {g} {c} {h} {c} {e} {h} {e} {g} {h} {e} {} {} {} {} {} {} {} {} {} Alle H.D.Burkhard, Varianten HU Berlin (jeden Weg von der Wurzel aus) probieren, falls keine zum Erfolg führt: Nicht beweisbar Suchverfahren 30 15
16 Prolog-Interpreter Einschränkung der Varianten Reihenfolge innerhalb einer Klausel (Und-Verzweigung) (alle subgoals müssen erfüllt werden) links vor rechts Reihenfolge innerhalb einer Prozedur (Oder-Verzweigung) (Alternativen für Beweis) oben vor unten Zu zeigen wäre: Wenn Beweis eistiert, dann auch schon hierbei. Suchverfahren 31 Einschränkung der Varianten {a} {b,c} {e,f} a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) {g,h,c} {e,h,c} {b} {f} {e,g} {e} {g,c} {g,h} {h,c} {e,c} {e,h} {g,h} {e,h} {g} {h} {g} {} {g} {g} {c} {h} {c} {e} {h} {e} {g} {h} {e} {} {} {} {} {} {} {} {} {} Subgoals sind alle zu beweisen, Winter-Semester Reihenfolge 2008/09links vor rechts Suchverfahren 32 16
17 Einschränkung der Varianten {a} {b,c} {e,f} a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) {g,h,c} {e,h,c} {f} {c} {h,c} {g} {h} {} {} Subgoals sind alle zu beweisen, Winter-Semester Reihenfolge 2008/09links vor rechts Suchverfahren 33 Backtracking Effizienzgewinn Wege werden nicht vollständig neu probiert, sondern nur stückweise. Bei Alternativen: Einfügen eines Choicepoint Backtracking : Bei Fehlschlag am jüngsten Choicepoint andere Alternative verfolgen Suchverfahren 34 17
18 Backtracking {b,c} {a} a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) Choicepoint e. % (6) f :- g. % (7) {e,f} f :- h % (8) h. % (9) {g,h,c} {e,h,c} {f} {h,c} Und so weiter {g} {h} {c} {} {} Suchverfahren 35 Modelle für Prolog-Suche Vereinfachtes Schema (ohne Unifikation: AK ) Liste 1. subgoals=[g 1,...,g n ]. 2. Falls subgoals = [ ] : Erfolg. 3. k sei nächste Klausel der Prozedur für g 1 : g 1 :- g 1,...,g m. Falls kein solches k eistiert: Backtracking. Falls kein Backtracking möglich: Misserfolg. 4. subgoals := [g 1,...,g m,g 2,...,g n, ]. Weiter bei 2. Suchverfahren 36 18
19 Prolog-Interpreter Und-Verzweigung: links vor rechts Teilziele der Reihe nach vollständig abarbeiten Verfolgen eines Zweiges in die Tiefe Oder-Verzweigung: oben vor unten Linke Zweige zuerst Backtracking bei Fehlschlag: Rückkehr zu Alternative an Oder-Verzweigung Nächster Zweig einer Oder-Verzweigung Problem: Choicepoint in subgoal Liste nicht repräsentierbar Suchverfahren 37 Modelle für Prolog-Suche [a] [b,c] Choicepoint [g,h,c] [e,h,c] b kommt nicht vor Problem: Choicepoint in subgoal Liste nicht repräsentierbar Suchverfahren 38 19
20 Quelle für Missverständnisse Bei erfolgreichem Beweis ist subgoal-liste leer Aber Baum noch nicht vollständig durchsucht [a] Choicepoint [b,c] [e,f] [g,h,c] [e,h,c] [f] [h,c] [g] [h] [c] [] [] Suchverfahren 39 Abarbeitung im Und-oder-Baum?-a Choice point (1) (2) b c e f Choice point (3) (4) (5) (6) (7) (8) a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) g h e h g h Fehlschlag (9) (6) (9) (6) Suchverfahren 40 20
21 Abarbeitung im Und-oder-Baum?-a Choice point (1) (2) b c e f a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) (3) (4) (5) (6) (7) (8) g h e h 1. Beweis gelungen g h (9) (6) (9) (6) Suchverfahren 41 Algorithmus für systematische Suche grandfather(x,ares) grandfather(x,ares):- father(x,y),father(y,ares). grandfather(x,ares):- father(x,y),mother(y,ares). father(x,y). father(y,ares). father(x,y). mother(y,ares). father(x,y):-parent(x,y),male(x). father(y,ares):-parent(y,ares),male(y). father(x,y):-parent(x,y),male(x). Mother(Y,ares):-parent(Y,ares),female(Y). parent(x,y). male(x). parent(y,ares). male(y). parent(x,y). male(x). parent(y,ares). female(y). parent(uranus, cronus). male(uranus). parent(gaea, uranus). male(cronus). parent(uranus, cronus). male(uranus). parent(gaea, cronus). male(zeus). parent(gaea, uranus). male(cronus). parent(gaea, cronus). male(zeus). parent(gaea, rhea). male(hades). parent(gaea, rhea). male(hades). parent(rhea, zeus). parent(cronus, zeus). male(apollo). parent(rhea, zeus). parent(rhea, hera). male(dionysius). parent(cronus, zeus). male(apollo). male(hermes). parent(rhea, hera). male(dionysius). male(hermes). parent(uranus, cronus). male(uranus). parent(gaea, uranus). male(cronus). parent(uranus, cronus). female(gaea). parent(gaea, cronus). male(zeus). parent(gaea, uranus). male(cronus). parent(gaea, rhea). male(hades). parent(gaea, cronus). male(zeus). parent(gaea, rhea). male(hades). parent(rhea, zeus). male(apollo). parent(rhea, zeus). parent(cronus, zeus). male(apollo). parent(rhea, hera). male(dionysius). parent(cronus, zeus). male(hermes). parent(rhea, hera). male(diony). male(herm). Suchverfahren 42 21
22 Algorithmus für systematische Suche PROCEDURE solve(unsolved_goals: GOALLIST); goals = [g 1,,g n ] Bezeichnet Liste von goals g i top(goals) = g 1 Bezeichnet erstes Element tail(goals) = [g 2,,g n ] Bezeichnet Rest-Liste NIL = [ ] Bezeichnet leere Liste concatenate( [g 1,,g n ], [g 1,,g m] ) = [ g 1,,g n, g 1,,g m] Bezeichnet Verkettung von Listen Suchverfahren 43 Algorithmus für systematische Suche PROCEDURE solve(unsolved_goals: GOALLIST); unsolved_goals klauseln(g) Liste ungelöster subgoals Klauseln der Prozedur für g ackermann(o,n,s(n)). ackermann(s(m),o,v):- ackermann(m,s(o),v). ackermann(s(m),s(n),v):- ackermann(s(m),n,v1),ackermann(m,v1,v). subgoals(k) Subgoals der Klausel k ackermann(s(m),s(n),v):- ackermann(s(m),n,v1), ackermann(m,v1,v). Suchverfahren 44 22
23 Algorithmus für systematische Suche PROCEDURE solve(unsolved_goals: GOALLIST); VAR k:klausel, g: GOAL; BEGIN IF unsolved_goals = NIL THEN HALT(yes) ELSE g:= top(unsolved_goals); FORALL k klauseln(g) DO (* Klauseln für g nacheinander rekursiv probieren*) solve(concatenate(subgoals(k),tail(unsolved_goals))) (* subgoals der Klausel k weiter verfolgen *) END (*FORALL*) END (*IF*) END solve; Aufruf mit solve([goal]); HALT(no). Choicepoints Reihenfolge: oben vor unten Reihenfolge: links vor rechts Suchverfahren 45 Algorithmus für systematische Suche Rekursive Prozedur-Aufrufe mit Subgoal-Listen. Bei leerer Subgoalliste: Resultat yes Abbruch der Prozedur-Kette. Nach erfolgloser vollständiger Abarbeitung einer Aufruf-Kette Rückkehr zur jüngsten Möglichkeit gemäß FORALL... (Backtracking). Wenn alle (FORALL-)Varianten erfolglos versucht: Resultat no Prozedur-Ketten vollständig abgearbeitet. Suchverfahren 46 23
24 Algorithmus für systematische Suche Transformation in Zustandsraumsuche: Subgoal-Listen sind Zustände eines Zustandsraums Algorithmus verwendet eigentlich zwei Listen (gemäß LIFO-Prinzip: Keller/stacks) - Liste unsolved_goals - Liste der offenen Prozedur-Aufrufe (Prozedurkeller) mit Alternativen für Backtracking'' Andere Repräsentation der Zustände: Betrachtung als verschachtelte Listen L = [ L 1,...,L m ] = [ [g 11,..., g 1n ],..., [g i1,..., g i,ni ],..., [g m1,..., g m,nm ]] Suchverfahren 47 Algorithmus für systematische Suche (0) (Start) L : = [ [Ausgangsproblem(e)] ]. (1) Falls L = [[ ],...,[ ]] : EXIT(yes). (2) Sei L i erste nicht-leere Subgoal-Liste aus L = [ L 1,...,L m ]. Sei g i1 erstes Element aus L i =[g i1,..., g i,ni ] : g i1 aus L i entfernen: L i := [g i2,..., g i,ni ]. Falls keine Klauseln für g i1 eistieren: weiter bei (4). (3) Sei k die nächste abzuarbeitende Klausel für g i1. Falls k Fakt: weiter bei (1). Falls k Regel: g i1 :- g 1,..., g n : L := [ [g 1,..., g n ], L 1,.., L i,..., L m ]. Falls weitere Klauseln für g i1 eistieren: Choice Point setzen. Weiter bei (2). (4) Backtracking: Rücksetzen zum jüngsten Choice Point : L zurücksetzen auf Stand vor Choice Point, weiter bei (3). Suchverfahren 48 Falls kein Choice Point eistiert: L =[ ], EXIT(no). 24
25 Algorithmus für systematische Suche [[a]] [ [b,c],[] ] [ [e,f],[] ] Choice point Choice point [ [g,h],[c],[] ] [ [e,h],[c],[] ] [ [f],[] ] a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) Choice point [ [h],[c],[] ] [ [g],[],[] ] [ [h],[],[] ] [ [],[c],[] ] [ [],[],[] ] [ [],[],[] ] Suchverfahren 49 Algorithmus für systematische Suche Alternative: Gelöste subgoals [[a]] markieren Choice point [ [b,c],[a] ] [ [e,f],[a] ] Choice point a :- b,c. % (1) a :- e,f. % (2) b :- g,h. % (3) b :- e,h. % (4) c. % (5) e. % (6) f :- g. % (7) f :- h % (8) h. % (9) [ [g,h],[b,c],[a] ] [ [e,h],[b,c],[a] ] [ [e,f],[a] ] Choice point [ [e,h],[b,c],[a] ] [ [h],[h,f],[a] ] [ [g],[e,f],[a] ] [ [e,h],[b,c],[a] ] [ [h],[h,f],[a] ] [ [e,h],[b,c],[a] ] Suchverfahren 50 25
26 Effizientere Implementation Bekannt sind: Reihenfolge von Klauseln in Prozeduren Reihenfolge von subgoals in Klauseln Zur Laufzeit nicht gesamte Listen speichern, sondern nur Referenz auf jeweils nächsten Eintrag g i statt [g i,..., g n ], Suchverfahren 51 Weitere Probleme für Prolog Behandlung von Variablenbindungen (Unifikation). Eingriffe in den Beweisablauf (cut). Effiziensteigerung (vorzeitige Speicherfreigabe), z.b. last call Optimierung ( lco ) deterministische Klauseln ( dco ) Prolog-Compiler: Übersetzung in optimiertes Programm (WAM = Warren abstract machine) Suchverfahren 52 26
27 Algorithmen für Problemzerlegung Analog zu Prolog-Variante: - Transformation in Zustandsraum - Anwendung entsprechender Verfahren Betrachtung der (abgewickelten) Und-Oder-Bäume Prinzipiell auch für Und-Oder-Graphen möglich, aber schwer überschaubar Suchverfahren Suche in Spielbäumen Spielbäume 2-Personen-Nullsummen-Spiele Minima-Strategie Pruning-Verfahren Heuristische Verfahren Suchverfahren 54 27
28 Spiele mit n Spielern P1,...,Pn Darstellung des Spiels als Spielbaum: Knoten: mit Spielsituationen markiert Kanten: Züge von einer Situation zur nächsten Ggf. gleiche Situation an unterschiedlichen Knoten Graph schwierig zu managen... Suchverfahren 55 Spiele mit n Spielern P1,...,Pn Endknoten mit Bewertung für jeden Spieler markiert Positive Zahl: Gewinn Negative Zahl: Verlust... -2, -5,-3, 0, 0 0, 0,0, 0, ,5,-3, 0, 7 Suchverfahren 56 28
29 o o o... o o Spieler A o o o o o o o o o o Spieler B o o o o o o o o o o o o o o o -1/ Spieler A o o o o o o o o o o o o o o o +1/-1 Spieler B... o o o o o o o o o o o o o o o o -1/+1 o o o o o o o o o o o o 0/0 +1/-1 0/0 Tic-Tac-Toe Spieler A Suchverfahren 57 Schach Durchschnittlich 30 Zugvarianten in jeder Situation 1. eigener Zug: 30 Nachfolgeknoten 1. gegnerischer Zug: 30 2 = 900 Nachfolgeknoten 2. eigener Zug: 30 3 = Nachfolgeknoten 2. gegnerischer Zug: 30 4 = Nachfolgeknoten gegnerischer Zug: ~ 6*10 14 Nachfolgeknoten gegnerischer Zug: ~ 3,5*10 29 Nachfolgeknoten... Suchverfahren 58 29
30 Weitere Spieltypen Spiel mit unvollständiger Information: Skat, Poker,... Eigene Unsicherheit vermindern Gegnerische Unsicherheit erhöhen Emotionen modellieren Emotionen beeinflussen Spiel mit Zufallseinfluss: Monopoly,... (Würfel als weiterer Spieler ) Nullsummenspiel: Gewinne = Verluste Suchverfahren 59 Simulation von Spielverläufen: Wahrschein-lichkeiten für Situationen Suchverfahren 60 30
31 π i : Spielstrategie (policy) des Spielers P i Vorgabe eines Zuges für jede Situation π i : Situationen Spielzüge des Spielers P i Entspricht einem Teilbaum des Spielbaums 1 Nachfolger für den eigenen Zug gemäß Strategie k Nachfolger für k mögliche Züge anderer Spieler Spielstrategien π 1,...,π n aller Spieler ergeben einen Weg im Baum zu einem Endzustand Suchverfahren 61 Spielbaum o o o... o o Spieler A o o o o o o o o o o Spieler B o o o o o o o o o o o o o o o -1/ Spieler A o o o o o o o o o o o o o o o +1/-1 Spieler B... o o o o o o o o o o o o o o o o -1/+1 o o o o o o o o o o o o 0/0 +1/-1 0/0 Spieler A Suchverfahren 62 31
32 Spielbaum Strategie Spieler A (Beispiel) o o o o Spieler A o o o o o o o o o o +1/-1 Spieler B o o o o o o Spieler A o o o o o o o o +1/-1 +1/-1 o o o Spieler B o o o o o o o o o +1/-1 o o o o Spieler A Suchverfahren 63 0/0 Zugfolge: Strategie Spieler A Strategie Spieler B (Beispiel) o o o o Spieler A o Spieler B o o Spieler A o o o o o o o o o o o Spieler B Suchverfahren 64 +1/-1 Spieler A 32
33 Gewinn/Verlust G i (π 1,...,π n ) : Gewinn/Verlust des Spielers P i wenn jeweils Spieler P k die Spielstrategie π k verwendet Bewertung für alle Spieler als Vektor: [G 1 (π 1,...,π n ), G 2 (π 1,...,π n ),..., G n (π 1,...,π n )] Gesamtheit der Bewertungen als n-dimensionale Matri Ausgangspunkt für Festlegung der eigenen Strategie (Gewinn maimieren) für Verhandlungen über Koalitionen (Problem: stabile Koalitionen) Suchverfahren 65 Gefangenendilemma Strategien: leugnen oder gestehen Resultatsmatri gestehen Spieler 2 leugnen Spieler 1 gestehen leugnen [5,5] [10,0] [0,10] [3,3] Suchverfahren 66 33
34 Modell für Koordination Koalitionsbildung Verhandlungen etc. einschließlich Kooperation (Koalitionen) z.b. Verhandlung über Strategie-Wahl π 1,...,π n gemäß erwarteten Gewinnen [G 1 (π 1,...,π n ),..., G n (π 1,...,π n )] und Konflikt (Gegnerschaft) Ziele: Probleme: Welche Werte optimieren? (Individuellen/Globalen) Gewinn optimieren Suchverfahren 67 Modelle für Koordination Nash-Gleichgewicht: Ein einzelner Spieler kann sich nicht verbessern, wenn er eine andere Strategie wählt (insbesondere ist individuelles Betrügen bei Vereinbarungen sinnlos). Pareto-Optimal: Bei jeder anderen Wahl der Strategienmenge schneidet wenigstens ein Spieler schlechter ab (insbesondere kann kein Spieler besser abschneiden, ohne dass ein anderer schlechter abschneidet). Global-Optimal: Summe über alle Gewinne optimal. Suchverfahren 68 34
35 Probabilistische Modelle Wahrscheinlichkeiten für Spielzustand (bei unvollst. Information) Zufallseinflüsse (Würfel) Strategien (Eigene/Gegnerische Züge) Ergebnis als Erwartungswert Hier nicht weiter verfolgen Spieltheorie Optimierung BWL Suchverfahren 69 Spielstrategien entwickeln Im weiteren beschränken: 2-Personen-Nullsummenspiele 2 konkurrierende Spieler A und B Spieler ziehen abwechselnd Gewinn(A) + Verlust(B) = 0 Angabe für Spieler A ausreichend Volle Information der Spieler Ohne Zufall Deterministische Strategien Suchverfahren 70 35
36 Spielbaum für diese Spiele Darstellung analog zu Und-Oder-Baum: A kann Zug wählen: Oder-Verzweigung A muss auf jeden Zug von B reagieren: Und-Verzweigung Bei Spielen mit Werten 1, -1 (Gewinn, Verlust) volle Analogie zu Problemzerlegung: lösbare Knoten: A gewinnt evtl. auch unlösbare Knoten: A verliert unentschieden Lösungsbaum liefert Gewinn-Strategie: einbeziehen A wählt jeweils Zug zu lösbarem Knoten, B muß dann ebenfalls zu lösbarem Knoten ziehen. Suchverfahren 71 o o o... o o Spieler A o o o o o o o o o o Spieler B o o o o o o o o o o o o o o o Spieler A o o o o o o o o o o o o o o o Spieler B... o o... o o o o o o o o o o o o o o A hat Problem gelöst o o o o o o o o o o o o A hat Problem gelöst Spieler A Suchverfahren 72 36
37 Optimalitätsannahme Annahme: Beide Spieler spielen optimal Mit Strategie π A durch Spieler A erreichbarer Wert: G(π A ) := Min{ G(π A, π B ) π B Strategie für B } Im Spiel durch Spieler A erreichbarer Wert: G A := Ma{ G(π A ) π A Strategie für A } Spieler A ist Maimierer (seines Gewinns) Spieler B ist Minimierer (des Gewinns für A) Optimale Strategie für Spieler A: π A * mit G(π A *) = G A Spieler A besitzt Gewinnstrategie, falls G A maimal möglichen Wert annimmt Suchverfahren 73 Problemstellungen Besitzt Spieler A eine Gewinnstrategie? Konstruiere ggf. Gewinnstrategie für A Konstruiere optimale Strategie π A * ( optimal z.b. hinsichtlich Spieldauer) Suchverfahren 74 37
38 Gewinnstrategien eistieren für Wolf und Schafe (Schafe gewinnen) Nim-Spiel (abhängig von Startsituation gewinnt A oder B) Baumspiel (1.Spieler gewinnt immer) Satz: Jedes Spiel mit endlicher Baumstruktur und nur Gewinn/Verlust besitzt entweder eine Gewinnstrategie für A oder eine Gewinnstrategie für B Suchverfahren 75 Baumspiel Situationen: Menge von Bäumen Start: Ein einziger Baum Zug: Streiche einen Knoten und alle seine Vorgänger in einem Baum (übrig bleiben Teilbäume) Gewinn: Wer letzten Baum streicht. Suchverfahren 76 38
39 Wert von Spielsituationen Welchen Zug soll Spieler als nächstes wählen? Wert G A (s) einer Spielsituation s für Spieler A G A (s) Gewinne G A (s) := maimaler Wert, den Spieler A von dort aus mit seiner optimalen Strategie π A * erreichen kann Aus G A kann umgekehrt π A * konstruiert werden: In Situation s wähle Zug zu einer Folgesituation s mit optimaler Bewertung G A (s) Suchverfahren 77 Ermitteln der Werte von Spielsituationen Credit-Assignment-Problem: Wert einer Situation (bzw. eines Spielzugs) ist erst am Spielende bekannt Immerhin: Iterative Abhängigkeit der Werte Wenn A in s zieht: G A (s) = Ma {G A (s ) s Nachfolgesituation von s } Wenn B in s zieht: G A (s) = Min {G A (s ) s Nachfolgesituation von s} Bei bekanntem Spielbaum: Bottom-Up-Konstruktion der Minima-Verfahren Werte im Spielbaum Suchverfahren 78 39
40 Lernen der Werte von Spielsituationen Immerhin: Iterative Abhängigkeit der Werte Wenn A in s zieht: G A (s) = Ma {G A (s ) s Nachfolgesituation von s } Wenn B in s zieht: G A (s) = Min {G A (s ) s Nachfolgesituation von s} Bei unbekanntem Spielbaum: Reinforcement-Lernen Eploration (Erkunden von Möglichkeiten, d.h. Spielzüge ausprobieren) Sukzessives Verbessern der Bewertungen Suchverfahren 79 Minima-Verfahren Voraussetzungen: Endlicher Spielbaum Endknoten mit Resultaten für Spieler A markiert (1)Falls Startknoten markiert: Eit: Wert der optimalen Strategie π A * = Wert(Startknoten) (2)Wähle unmarkierten Knoten k, dessen Nachfolger markiert sind Wenn A in k zieht: Wert(k):=Ma{Wert(k ) k Nachfolger von k } Wenn B in k zieht: Wert(k):=Min{Wert(k ) k Nachfolger von k } Weiter bei (1). Suchverfahren 80 40
41 Sicht Spieler A o o -1 o... o0o Spieler A o -1 o o -1 o o 0 o o o o o -1-1 Spieler B o o o-1o o o+1 o o 0 o o +1 o o+1 o o o Spieler A o o o o o o+1 o o-1o o -1 o o 0o o-1o Spieler B... o o o o o o -1 o o 0o 0-1 o+1 o o 0o o o o o o o o o 0o o+1 o o 0o o o Spieler A Suchverfahren 81 Sicht Spieler B o o +1 o... o0o Spieler A o +1 o o+1 o o 0 o o o o o Spieler B o o o+1 o o o-1o o0o o -1 o o-1o o o Spieler A o o o o o o-1o o+1 o o +1 o o 0o o+1 o Spieler B... o o o o o o +1 o o 0o 0 +1 o-1o o 0o o o o o o o o o 0o o-1o o 0o o o Spieler A Suchverfahren 82 41
42 Sicht Spieler B o 0o Spieler A o+1 o o +1 o o 0 o o o o o Spieler B o o o o +1 o o+1 o o o-1o o 0o o -1 o o-1o o o Spieler A... o o o o o +1 o-1o o+1 o o +1 o o 0 o o +1 o Spieler B... o o... o o o Hier eistiert +1 o +1 o o 0o +1 o-1o o 0o Gewinnstrategie o o o für Spieler B! o o o o Spieler A o 0o o -1 o o 0o o o Suchverfahren 83 Sicht Spieler B o o+1o o o o o+1o o+1 o o+1o o o o o o o o+1 o o 0o o+1 o o o o o o o o o o o o o Spieler A Spieler B o o o 0o o o o 0 o Spieler A Suchverfahren 84 42
43 Gewinnstrategie Spieler B o o o o o o o o o o o o Spieler A o o o o o o o o o o o o o o o o Spieler B Suchverfahren 85 Züge ausschließen: Pruning-Strategien Idee: Wenn es bereits bessere Varianten gibt, müssen schlechtere nicht weiter verfolgt werden Suchverfahren 86 43
44 α-pruning (Züge von A ausschließen) Spieler A wird diesen 30 Zug nicht wählen Suchverfahren 87 α-pruning (Züge von A ausschließen) α-pruning: Suchbaum in diesem Zweig nicht untersuchen Suchverfahren 88 44
45 β-pruning (Züge von B ausschließen) Spieler B wird diesen 50 Zug nicht wählen Suchverfahren 89 β-pruning (Züge von B ausschließen) β-pruning: Suchbaum in diesem Zweig nicht untersuchen Suchverfahren 90 45
46 Effizienz von Pruning-Strategien abhängig von der Reihenfolge: im ungünstigsten Fall keine Einsparung: Es bleibt bei b d Endknoten für Verzweigungsfaktor b, Tiefe d im günstigsten Fall ( beste Züge jeweils links ): Aufwand ungefähr 2 * b (d/2) 2 * b (d/2) 1 für gerade d, b ((d+1)/2) + b ((d 1)/2) 1 für ungerade d. d.h. Doppelte Suchtiefe mit gleichem Aufwand möglich Weitere Verfahren zur Auswahl günstiger Epansionsreihenfolge Suchverfahren 91 Heuristische Suche 1. Spielbaum teilweise entwickeln von aktueller Situation ausgehend 2. dort Situationen statisch bewerten (z.b. Figuren, Stellung,...) ????????????????????? Suchverfahren 92 46
47 Heuristische Suche 3. gefundene Werte dynamisch gemäß Minima zurückverfolgen 4. aussichtsreichsten Zug wählen ????????????????????? Suchverfahren 93 Woher kommen Bewertungen? Statische Bewertung von Situationen: Analogie zu Schätzfunktionen Vorhersage des erreichbaren Gewinns Unterschiedliche Bewertungsfaktoren Verdichtung zu einer Zahl, z.b. gewichtete Summe Bauer: 1 Läufer, Springer: 3 Turm: 5 Dame: 9 Bauernstellung: 0,5 Königsstellung: 0,5 Lernen von Gewichten anhand von Beispielen Suchverfahren 94 47
Praktische Informatik 2
Praktische Informatik 2 Sommer-Semester 2007 Prof. Dr. sc. Hans-Dieter Burkhard www.ki.informatik.hu-berlin.de Praktische Informatik 2 Themen Alternative Programmiermethoden: Deklaratives (logisches Programmieren):
MehrModell für Relationen (mit Variablen)
Effizientere Implementation Bekannt sind: Reihenfolge von Klauseln in Prozeduren Reihenfolge von subgoals in Klauseln Zur Laufzeit nicht gesamte Listen speichern, sondern nur Referenz auf jeweils nächsten
MehrSuche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20
Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:
MehrPraktische Informatik 2
Praktische Informatik 2 Sommer-Semester 2007 Prof. Dr. sc. Hans-Dieter Burkhard www.ki.informatik.hu-berlin.de Praktische Informatik 2 Themen Alternative Programmiermethoden: Deklaratives (logisches Programmieren):
MehrVerfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere
Prolog-Arithmetik Verfügbare arithmetische Operationen ( reelle Zahlen): +, -,, /, //, mod und ggf. weitere Verfügbare arithmetische Vergleichsoperationen: >, =, =
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrPraktische Informatik 2 Sommer-Semester 2005
Praktische Informatik 2 Sommer-Semester 2005 Prof. Dr. sc. Hans-Dieter Burkhard www.ki.informatik.hu-berlin.de Praktische Informatik 2 Themen Alternative Programmiermethoden: Deklaratives (logisches Programmieren):
MehrAnmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrGuten Morgen und Willkommen zur Saalübung!
Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei
Mehr2. Spielbäume und Intelligente Spiele
2. Spielbäume und Intelligente Spiele Arten von Spielen 2. Spielbäume und Intelligente Spiele Kombinatorische Spiele als Suchproblem Wie berechnet man eine gute Entscheidung? Effizienzverbesserung durch
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Mehr4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.
Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrBinäre Bäume Darstellung und Traversierung
Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
MehrConstraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9
Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit
Mehr3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel
3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36
MehrNachtrag zu binären Suchbäumen
Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement
MehrGrundlagen der Programmierung 2. Bäume
Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)
MehrUnterscheidung: Workflowsystem vs. Informationssystem
1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise
MehrKap. 4.2: Binäre Suchbäume
Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:
MehrGrundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
MehrKapitel 5: Dynamisches Programmieren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrDefinition eines Spiels
Definition eines piels 1. Einleitung 1.1 Einführung: Die mathematische pieltheorie beschäftigt sich nicht nur mit der Beschreibung und Analyse von pielen im üblichen inn, sondern allgemein mit Konfliktsituationen
MehrKugel-Fächer-Modell. 1fach. 3fach. Für die Einzelkugel gibt es 3 Möglichkeiten. 6fach. 3! Möglichkeiten
Kugel-Fächer-Modell n Kugeln (Rosinen) sollen auf m Fächer (Brötchen) verteilt werden, zunächst 3 Kugeln auf 3 Fächer. 1fach 3fach Für die Einzelkugel gibt es 3 Möglichkeiten } 6fach 3! Möglichkeiten Es
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrBeweisbar sichere Verschlüsselung
Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6
MehrKompetitive Analysen von Online-Algorithmen
Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen
MehrLernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
MehrKeller (Stapel, Stack, LIFO)
Keller (Stapel, Stack, LIFO) Liste K=[ K(1), K(2),..., K(n) ] mit beschränktem Zugriff Operationen: pop: liefert oberstes Element K(1) entfernt oberstes Element: K = [ K(2),..., K(n) ] (Fehler bei leerem
MehrAnalysis I für Studierende der Ingenieurwissenschaften
Fachbereich Mathematik der Universität Hamburg WiSe 2015/16 Prof. Dr. M. Hinze Dr. P. Kiani Analysis I für Studierende der Ingenieurwissenschaften Lösungshinweise zu Blatt 2 Aufgabe 1: (12 Punkte) a) Beweisen
MehrDynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206
Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrKapitel 7 und Kapitel 8: Gleichgewichte in gemischten Strategien. Einleitung. Übersicht Teil 2 2. Übersicht 3
Übersicht Teil 2 Kaitel 7 und Kaitel 8: Gleichgewichte in gemischten Strategien Übersicht Teil 2 2 Übersicht Einleitung Was ist eine gemischte Strategie? Nutzen aus gemischten Strategien Reaktionsfunktionen
MehrKapitalerhöhung - Verbuchung
Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
MehrThe Effects of Within-Group Communication on Group Decision and Individual Choice in the Assurance and Chicken Team Games
Experimentelle Wirtschaftsforschung, Sommersemester 8 Zusatzaufgabe The Effects of Within-Group Communication on Group Decision and Individual Choice in the Assurance and Chicken Team Games Gary Bornstein,
MehrSuchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative
MehrAlgorithmen und Datenstrukturen Balancierte Suchbäume
Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrWS 2013/14. Diskrete Strukturen
WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrDokumentation zum Spielserver der Software Challenge
Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrSeminar Analyse von Petrinetz-Modellen
Seminar Analyse von Petrinetz-Modellen Vortrag: "Deadlocks und Fallen" II Steve Reich 26.11.2007 Wiederholung Falle Deadlock 1 Wiederholung Deadlock und Falle Nur Deadlock Nur Falle 2 Satz zur strukturellen
MehrVier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie
Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie Präsentation Agenda I. Einführung 1. Motivation 2. Das Spiel Vier Gewinnt
MehrStatistische Untersuchungen zu endlichen Funktionsgraphen
C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion
MehrLogische Programmierung
Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);
Mehr15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrSoftware-Engineering SS03. Zustandsautomat
Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die
MehrEinführung in Petri-Netze. Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: Motivation. Petri-Netze
Einführung in Petri-Netze Modellierung von Abläufen und Prozessen () Motivation Abhängigkeitsgraphen: A B 6 C 5 D Petri-Netze Markierungen Invarianten Credits: L. Priese, H. Wimmel: Petri-Netze, Theoretische
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrMerkblatt für Schiedsrichter zum Spielbetrieb 2014
1.) SPIELABSAGEN Merkblatt für Schiedsrichter zum Spielbetrieb 2014 Bei frühzeitigen Spielabsagen durch Anruf vom Verein muss der Verein bei KM/Res.-Spielen auch den Klassenreferenten verständigen. Bis
MehrAlles zu seiner Zeit Projektplanung heute
Alles zu seiner Zeit Projektplanung heute Nicole Megow Matheon Überblick Projektplanung Planen mit Graphentheorie Maschinenscheduling Ein 1 Mio. $ Problem Schwere & leichte Probleme? Zeitplanungsprobleme?
MehrErstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
MehrVortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)
Vortrag Suchverfahren der Künstlichen Intelligenz Sven Schmidt (Technische Informatik) Suchverfahren der Künstlichen Intelligenz Grundlagen Zustandsraumrepräsentation Generische Suche Bewertung von Suchstrategien
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrKONSTRUKTION VON ROT-SCHWARZ-BÄUMEN
KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume
MehrEs kann maximal ein Prozess die Umladestelle benutzen.
SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat
Mehr6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne
6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten
MehrHilfe zur Urlaubsplanung und Zeiterfassung
Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,
MehrJan Parthey, Christin Seifert. 22. Mai 2003
Simulation Rekursiver Auto-Assoziativer Speicher (RAAM) durch Erweiterung eines klassischen Backpropagation-Simulators Jan Parthey, Christin Seifert jpar@hrz.tu-chemnitz.de, sech@hrz.tu-chemnitz.de 22.
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
Mehr4. Dynamische Optimierung
4. Dynamische Optimierung Allgemeine Form dynamischer Optimierungsprobleme 4. Dynamische Optimierung Die dynamische Optimierung (DO) betrachtet Entscheidungsprobleme als eine Folge voneinander abhängiger
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
MehrBeispiellösungen zu Blatt 111
µ κ Mathematisches Institut Georg-August-Universität Göttingen Beispiellösungen zu Blatt 111 Aufgabe 1 Ludwigshafen hat einen Bahnhof in Dreiecksform. Markus, Sabine und Wilhelm beobachten den Zugverkehr
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrStructure Sharing vs. Structure Copying
a, b, c, d?-a. a, e, f CP a a, g b, c, d b, g, h g, h, c, d c, k, g h, c, d g c, d h k, g, d backtracking SLD-Ableitungen a :- b,c,d. a :- e,f. a :- g. b :- g,h. c :- k,g. g. h. CP a e, f a g { } backtracking
Mehr2.11 Kontextfreie Grammatiken und Parsebäume
2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle
MehrDiagnostisches Interview zur Bruchrechnung
Diagnostisches Interview zur Bruchrechnung (1) Tortendiagramm Zeigen Sie der Schülerin/dem Schüler das Tortendiagramm. a) Wie groß ist der Teil B des Kreises? b) Wie groß ist der Teil D des Kreises? (2)
Mehr1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
MehrAlignment-Verfahren zum Vergleich biologischer Sequenzen
zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen
MehrDie restlichen Steine bilden den Vorrat (verdeckt auf dem Tisch liegend).
Swisstrimino Das Swisstrimino ist sehr vielseitig und wird ohne Spielplan gespielt. Schon nach der nachstehenden Spielregel gespielt, kann es auch angestandene Dominospieler fesseln. Zum Spielen benötigen
Mehr4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum
4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrVorlesung Dokumentation und Datenbanken Klausur
Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrSpieltheorie. Sebastian Wankerl. 16. Juli 2010
Spieltheorie Sebastian Wankerl 16. Juli 2010 Inhalt 1 Einleitung 2 Grundlagen Extensive Form choice functions Strategien Nash-Gleichgewicht Beispiel: Gefangenendillema 3 Algorithmen Minimax Theorem Minimax
MehrOPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
MehrGRS SIGNUM Product-Lifecycle-Management
GRS SIGNUM Product-Lifecycle-Management Das optionale Modul Product-Lifecycle-Management stellt eine mächtige Ergänzung zum Modul Forschung & Entwicklung dar. Folgende Punkte werden dabei abgedeckt: Definition
MehrLastenheft. Poker iphone App
Lastenheft Poker iphone App Auftraggeber: Lehrstuhl für Informatik V Prof. Dr. Reinhard Männer Universität Heidelberg Zuletzt geändert: 10.April 2012 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis
MehrVerkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Jörg Rambau
Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? 1 x x = Anteil der Fahrzeuge, die dort entlang fahren Verkehrsstauspiel:
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrBasis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.
Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren
MehrAufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung
- 1 - Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung 1. Die Tabelle mit den Werten und Gewichten der Gegenstände, sowie die Spalte mit der Anzahl ist vorgegeben und braucht nur eingegeben zu werden
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrAnleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15
Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15 1 Bitte melden Sie sich über das Campusmanagementportal campus.studium.kit.edu
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
Mehr