So suchen Sie zuerst nach der Breite
|
|
- Günter Kramer
- vor 3 Jahren
- Abrufe
Transkript
1 Künstliche Intelligenz 3. Suche Dr. Claudia Schon Institute for Web Science and Technologies 1
2 Diese Folien basieren auf den Folien von PD Dr. Matthias Thimm, Universität Koblenz-Landau, zur Vorlesung Künstliche Intelligenz 1 und Folien zum Buch: Poole, Mackworth and Goebel, Computational Intelligence: A Logical Approach, Oxford University Press,
3 Suche Eines der Kernprobleme der KI ist das allgemeine Problemlösen: Gegeben eine Problemspezifikation, bestimme die Lösung Oft ist ein direkter Algorithmenentwurf schwierig Idee: Formalisierung des Problems als (Graph)-Suchproblem Knoten sind (Teil-)lösungen, Kanten beschreiben Transitionen zwischen (Teil-)lösungen Herausforderungen: Graph zu groß für traditionelle Suchalgorithmen wie Dijkstra (! heuristische Suchverfahren) Graph nicht immer explizit gegeben (! implizite Graphsuche) 3
4 Suche Eines der Kernprobleme der KI ist das allgemeine Problemlösen: Gegeben eine Problemspezifikation, bestimme die Lösung Oft ist ein direkter Algorithmenentwurf schwierig Idee: Formalisierung des Problems als (Graph)-Suchproblem Knoten sind (Teil-)lösungen, Kanten beschreiben Transitionen zwischen (Teil-)lösungen Herausforderungen: Graph zu groß für traditionelle Suchalgorithmen wie Dijkstra (! heuristische Suchverfahren) Graph nicht immer explizit gegeben (! implizite Graphsuche) 3
5 Suche Eines der Kernprobleme der KI ist das allgemeine Problemlösen: Gegeben eine Problemspezifikation, bestimme die Lösung Oft ist ein direkter Algorithmenentwurf schwierig Idee: Formalisierung des Problems als (Graph)-Suchproblem Knoten sind (Teil-)lösungen, Kanten beschreiben Transitionen zwischen (Teil-)lösungen Herausforderungen: Graph zu groß für traditionelle Suchalgorithmen wie Dijkstra (! heuristische Suchverfahren) Graph nicht immer explizit gegeben (! implizite Graphsuche) 3
6 Suche Eines der Kernprobleme der KI ist das allgemeine Problemlösen: Gegeben eine Problemspezifikation, bestimme die Lösung Oft ist ein direkter Algorithmenentwurf schwierig Idee: Formalisierung des Problems als (Graph)-Suchproblem Knoten sind (Teil-)lösungen, Kanten beschreiben Transitionen zwischen (Teil-)lösungen Herausforderungen: Graph zu groß für traditionelle Suchalgorithmen wie Dijkstra (! heuristische Suchverfahren) Graph nicht immer explizit gegeben (! implizite Graphsuche) 3
7 Suche Eines der Kernprobleme der KI ist das allgemeine Problemlösen: Gegeben eine Problemspezifikation, bestimme die Lösung Oft ist ein direkter Algorithmenentwurf schwierig Idee: Formalisierung des Problems als (Graph)-Suchproblem Knoten sind (Teil-)lösungen, Kanten beschreiben Transitionen zwischen (Teil-)lösungen Herausforderungen: Graph zu groß für traditionelle Suchalgorithmen wie Dijkstra (! heuristische Suchverfahren) Graph nicht immer explizit gegeben (! implizite Graphsuche) 3
8 Beispiel: Schach Knoten: Spielkonfigurationen (welche Figur steht wo)? Kanten: verbinden Spielkonfigurationen durch legale Züge Herausforderung: Was macht der Gegner in seinem Zug? " " 4
9 Beispiel: Schach Spiele im Allgemeinen Startknoten: Initialzustand des Spiels Kanten: Mögliche Züge Zielknoten: Gewinnsituation (z. B. Schachmatt) Gesucht: Pfadfolge zu einem Zielknoten Logische Systeme Startknoten: Zu beweisende Aussage Kanten: Deduktionsregeln ({, _ }! { }) Zielknoten: Wahre Aussage Gesucht: Beweis Planung Startknoten: Startkonfiguration Kanten: Legale Aktionen Zielknoten: Zielzustand Gesucht: Aktionsfolge 5
10 Beispiel: Schach Spiele im Allgemeinen Startknoten: Initialzustand des Spiels Kanten: Mögliche Züge Zielknoten: Gewinnsituation (z. B. Schachmatt) Gesucht: Pfadfolge zu einem Zielknoten Logische Systeme Startknoten: Zu beweisende Aussage Kanten: Deduktionsregeln ({, _ }! { }) Zielknoten: Wahre Aussage Gesucht: Beweis Planung Startknoten: Startkonfiguration Kanten: Legale Aktionen Zielknoten: Zielzustand Gesucht: Aktionsfolge 5
11 Beispiel: Schach Spiele im Allgemeinen Startknoten: Initialzustand des Spiels Kanten: Mögliche Züge Zielknoten: Gewinnsituation (z. B. Schachmatt) Gesucht: Pfadfolge zu einem Zielknoten Logische Systeme Startknoten: Zu beweisende Aussage Kanten: Deduktionsregeln ({, _ }! { }) Zielknoten: Wahre Aussage Gesucht: Beweis Planung Startknoten: Startkonfiguration Kanten: Legale Aktionen Zielknoten: Zielzustand Gesucht: Aktionsfolge 5
12 Formalisierung: Suchproblem Ein Suchproblem P ist ein Tupel P =(S, O, I, G) mit 1. S ist eine Menge von Zuständen 2. O S S ist die Zustandsübergangsrelation 3. I 2 S ist der initiale Zustand 4. G S ist die Menge der Zielzustände 6
13 Formalisierung: Suchproblem Ein Suchproblem P ist ein Tupel P =(S, O, I, G) mit 1. S ist eine Menge von Zuständen 2. O S S ist die Zustandsübergangsrelation 3. I 2 S ist der initiale Zustand 4. G S ist die Menge der Zielzustände Sei P =(S, O, I, G) ein Suchproblem. Eine Lösung für P ist eine Sequenz =(S 1,...,S n ) mit 1. S 1,...,S n 2 S, S 1 = I, S n 2 G 2. für alle i =1,...,n 1 gilt (S i,s i+1 ) 2 O. 6
14 Beispiel: Fuchs, Schaf, Kohlkopf Ein Fuchs, ein Schaf, und ein Kohlkopf befinden sich auf der linken Seite eines Flusses. Das Ziel ist es diese drei Dinge auf die rechte Seite des Flusses zu bringen. Zu keiner Zeit dürfen allerdings Fuchs+Schaf oder Schaf+Kohlkopf alleine gelassen werden. Im Boot kann immer nur ein Gegenstand befördert werden. 7
15 Beispiel: Fuchs, Schaf, Kohlkopf Fuchs=f, Schaf=s, Kohlkopf=k Zustände sind Tupel (L, R, ) mit L, R {f,s,k} und 2{l, r} Beispiele: ({f,s}, {k},l): Fuchs und Schaf sind am linken Ufer, der Kohlkopf ist am rechten Ufer, das Boot (und wir selbst) sind am linken Ufer. ({}, {f, s,k}, r): Fuchs, Schaf, Kohlkopf sind am rechten Ufer, das Boot (und wir selbst) sind auch am rechten Ufer. Also P fsk =(S fsk,o fsk, ({f,s,k}, {},l), {({}, {f,s,k},l), ({}, {f,s,k},r)}) mit S fsk = {(L, R, ) L, R {f,s,k}, 2{l, r}} O fsk = {(({f,s,k}, {},l), ({f,s}, {k},r)), (({f,s,k}, {},l), ({f,k}, {s},r)),...} 8
16 Beispiel: Fuchs, Schaf, Kohlkopf Fuchs=f, Schaf=s, Kohlkopf=k Zustände sind Tupel (L, R, ) mit L, R {f,s,k} und 2{l, r} Beispiele: ({f,s}, {k},l): Fuchs und Schaf sind am linken Ufer, der Kohlkopf ist am rechten Ufer, das Boot (und wir selbst) sind am linken Ufer. ({}, {f, s,k}, r): Fuchs, Schaf, Kohlkopf sind am rechten Ufer, das Boot (und wir selbst) sind auch am rechten Ufer. Also P fsk =(S fsk,o fsk, ({f,s,k}, {},l), {({}, {f,s,k},l), ({}, {f,s,k},r)}) mit S fsk = {(L, R, ) L, R {f,s,k}, 2{l, r}} O fsk = {(({f,s,k}, {},l), ({f,s}, {k},r)), (({f,s,k}, {},l), ({f,k}, {s},r)),...} 8
17 Beispiel: Fuchs, Schaf, Kohlkopf Fuchs=f, Schaf=s, Kohlkopf=k Zustände sind Tupel (L, R, ) mit L, R {f,s,k} und 2{l, r} Beispiele: ({f,s}, {k},l): Fuchs und Schaf sind am linken Ufer, der Kohlkopf ist am rechten Ufer, das Boot (und wir selbst) sind am linken Ufer. ({}, {f, s,k}, r): Fuchs, Schaf, Kohlkopf sind am rechten Ufer, das Boot (und wir selbst) sind auch am rechten Ufer. Also P fsk =(S fsk,o fsk, ({f,s,k}, {},l),{({}, {f,s,k},l),({}, {f,s,k},r)}) mit Startzustand S fsk = {(L, R, ) L, R {f,s,k}, 2{l, r}} O fsk = {(({f,s,k}, {},l), ({f,s}, {k},r)), (({f,s,k}, {},l), ({f,k}, {s},r)),...} 8
18 Beispiel: Fuchs, Schaf, Kohlkopf Fuchs=f, Schaf=s, Kohlkopf=k Zustände sind Tupel (L, R, ) mit L, R {f,s,k} und 2{l, r} Beispiele: ({f,s}, {k},l): Fuchs und Schaf sind am linken Ufer, der Kohlkopf ist am rechten Ufer, das Boot (und wir selbst) sind am linken Ufer. ({}, {f, s,k}, r): Fuchs, Schaf, Kohlkopf sind am rechten Ufer, das Boot (und wir selbst) sind auch am rechten Ufer. Also P fsk =(S fsk,o fsk, ({f,s,k}, {},l),{({}, {f,s,k},l),({}, {f,s,k},r)}) mit Startzustand S fsk = {(L, R, ) L, R {f,s,k}, 2{l, r}} Menge der Zielzustände O fsk = {(({f,s,k}, {},l), ({f,s}, {k},r)), (({f,s,k}, {},l), ({f,k}, {s},r)),...} 8
19 Beispiel: Fuchs, Schaf, Kohlkopf Fuchs=f, Schaf=s, Kohlkopf=k Zustände sind Tupel (L, R, ) mit L, R {f,s,k} und 2{l, r} Beispiele: ({f,s}, {k},l): Fuchs und Schaf sind am linken Ufer, der Kohlkopf ist am rechten Ufer, das Boot (und wir selbst) sind am linken Ufer. ({}, {f, s,k}, r): Fuchs, Schaf, Kohlkopf sind am rechten Ufer, das Boot (und wir selbst) sind auch am rechten Ufer. Also P fsk =(S fsk,o fsk, ({f,s,k}, {},l),{({}, {f,s,k},l),({}, {f,s,k},r)}) mit Startzustand S fsk = {(L, R, ) L, R {f,s,k}, 2{l, r}} Menge der Zielzustände O fsk = {(({f,s,k}, {},l), ({f,s}, {k},r)), (({f,s,k}, {},l), ({f,k}, {s},r)),...} 8
20 Beispiel: Schiebepuzzle In einem n 2 großen Kästchenfeld befinden sich Zahlen 1,...,(n 2 ein freies Feld 1) und Durch Verschieben der Zahlen auf das jeweils freie Feld soll die Zahlenfolge sortiert werden 9
21 Beispiel: Schiebepuzzle Zustände: zweidimensionales Array int[n][n] mit Zahlen 1,...,(n 2 1) und 0 für frei Beispiel: [[1,2,3],[8,0,4],[7,6,5]] 10
22 Beispiel: Schiebepuzzle Zustände: zweidimensionales Array int[n][n] mit Zahlen 1,...,(n 2 1) und 0 für frei Beispiel: [[1,2,3],[8,0,4],[7,6,5]] Also P 3 =(S 3,O 3,I,{[[1, 2, 3], [8, 0, 4], [7, 6, 5]]}) mit S 3 = {[[x 1,x 2,x 3 ], [x 4,x 5,x 6 ], [x 7,x 8,x 9 ]] {x 1,...,x 9 } = {0,...,8}} I zufällig O 3 = {([[3,4,8],[1,2,7],[5,0,6]], [[3,4,8],[1,2,7],[0,5,6]]),...} 10
23 Weitere Beispiele: Rubik s Cube 11
24 Weitere Beispiele: Sokoban 12
25 Das Problem der Zustandsdefinition Die richtige Repräsentation des Zustandsraums hat großen Einfluss auf die Problemkomplexität. Erinnerung Fuchs-Schaf-Kohlkopf: (L, R, ) mit L, R {f,s,k} und 2 {l, r} Besser: (L, ) mit L {f,s,k} und 2{l, r} (alles was nicht auf der linken Seite ist, ist automatisch auf der rechten Seite) Vorteile: Zustandsraum weitaus kleiner, Suche effizienter Eine saubere Zustandsdefinition ist oft wichtiger als die richtige Wahl des tatsächlichen Suchalgorithmus. 13
26 Das Problem der Zustandsdefinition Die richtige Repräsentation des Zustandsraums hat großen Einfluss auf die Problemkomplexität. Erinnerung Fuchs-Schaf-Kohlkopf: (L, R, ) mit L, R {f,s,k} und 2 {l, r} Besser: (L, ) mit L {f,s,k} und 2{l, r} (alles was nicht auf der linken Seite ist, ist automatisch auf der rechten Seite) Vorteile: Zustandsraum weitaus kleiner, Suche effizienter Eine saubere Zustandsdefinition ist oft wichtiger als die richtige Wahl des tatsächlichen Suchalgorithmus. 13
27 Das Problem der Zustandsdefinition Die richtige Repräsentation des Zustandsraums hat großen Einfluss auf die Problemkomplexität. Erinnerung Fuchs-Schaf-Kohlkopf: (L, R, ) mit L, R {f,s,k} und 2 {l, r} Besser: (L, ) mit L {f,s,k} und 2{l, r} (alles was nicht auf der linken Seite ist, ist automatisch auf der rechten Seite) Vorteile: Zustandsraum weitaus kleiner, Suche effizienter Eine saubere Zustandsdefinition ist oft wichtiger als die richtige Wahl des tatsächlichen Suchalgorithmus. 13
28 Das Problem der Zustandsdefinition Die richtige Repräsentation des Zustandsraums hat großen Einfluss auf die Problemkomplexität. Erinnerung Fuchs-Schaf-Kohlkopf: (L, R, ) mit L, R {f,s,k} und 2 {l, r} Besser: (L, ) mit L {f,s,k} und 2{l, r} (alles was nicht auf der linken Seite ist, ist automatisch auf der rechten Seite) Vorteile: Zustandsraum weitaus kleiner, Suche effizienter Eine saubere Zustandsdefinition ist oft wichtiger als die richtige Wahl des tatsächlichen Suchalgorithmus. 13
29 Das Problem der Zustandsdefinition Die richtige Repräsentation des Zustandsraums hat großen Einfluss auf die Problemkomplexität. Erinnerung Fuchs-Schaf-Kohlkopf: (L, R, ) mit L, R {f,s,k} und 2 {l, r} Besser: (L, ) mit L {f,s,k} und 2{l, r} (alles was nicht auf der linken Seite ist, ist automatisch auf der rechten Seite) Vorteile: Zustandsraum weitaus kleiner, Suche effizienter Eine saubere Zustandsdefinition ist oft wichtiger als die richtige Wahl des tatsächlichen Suchalgorithmus. 13
30 Uninformierte Suche 14
31 Uninformierte Suche 14
32 Uninformierte Suche Gegeben Suchproblem P =(S, O, I, G) mit Startzustand I Zustandsraum S normalerweise nicht explizit gegeben, sondern wird während der Suche von I aus aufgebaut (implizite Graphsuche) Anfangs nur Startzustand I und Nachfolger von I bekannt Sobald ein Nachfolger N von I betrachtet wird, sind auch dessen Nachfolger bekannt Ansatz der uninformierten Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar In welche Richtung gesucht werden soll, ist unbekannt. Suche kann dann durch (implizite) Graphsuche realisiert werden 15
33 Uninformierte Suche Gegeben Suchproblem P =(S, O, I, G) mit Startzustand I Zustandsraum S normalerweise nicht explizit gegeben, sondern wird während der Suche von I aus aufgebaut (implizite Graphsuche) Anfangs nur Startzustand I und Nachfolger von I bekannt Sobald ein Nachfolger N von I betrachtet wird, sind auch dessen Nachfolger bekannt Ansatz der uninformierten Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar In welche Richtung gesucht werden soll, ist unbekannt. Suche kann dann durch (implizite) Graphsuche realisiert werden 15
34 Uninformierte Suche Gegeben Suchproblem P =(S, O, I, G) mit Startzustand I Zustandsraum S normalerweise nicht explizit gegeben, sondern wird während der Suche von I aus aufgebaut (implizite Graphsuche) Anfangs nur Startzustand I und Nachfolger von I bekannt Sobald ein Nachfolger N von I betrachtet wird, sind auch dessen Nachfolger bekannt Ansatz der uninformierten Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar In welche Richtung gesucht werden soll, ist unbekannt. Suche kann dann durch (implizite) Graphsuche realisiert werden 15
35 Uninformierte Suche Gegeben Suchproblem P =(S, O, I, G) mit Startzustand I Zustandsraum S normalerweise nicht explizit gegeben, sondern wird während der Suche von I aus aufgebaut (implizite Graphsuche) Anfangs nur Startzustand I und Nachfolger von I bekannt Sobald ein Nachfolger N von I betrachtet wird, sind auch dessen Nachfolger bekannt Ansatz der uninformierten Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar In welche Richtung gesucht werden soll, ist unbekannt. Suche kann dann durch (implizite) Graphsuche realisiert werden 15
36 Uninformierte Suche Gegeben Suchproblem P =(S, O, I, G) mit Startzustand I Zustandsraum S normalerweise nicht explizit gegeben, sondern wird während der Suche von I aus aufgebaut (implizite Graphsuche) Anfangs nur Startzustand I und Nachfolger von I bekannt Sobald ein Nachfolger N von I betrachtet wird, sind auch dessen Nachfolger bekannt Ansatz der uninformierten Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar In welche Richtung gesucht werden soll, ist unbekannt. Suche kann dann durch (implizite) Graphsuche realisiert werden 15
37 Uninformierte Suche Gegeben Suchproblem P =(S, O, I, G) mit Startzustand I Zustandsraum S normalerweise nicht explizit gegeben, sondern wird während der Suche von I aus aufgebaut (implizite Graphsuche) Anfangs nur Startzustand I und Nachfolger von I bekannt Sobald ein Nachfolger N von I betrachtet wird, sind auch dessen Nachfolger bekannt Ansatz der uninformierten Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar In welche Richtung gesucht werden soll, ist unbekannt. Suche kann dann durch (implizite) Graphsuche realisiert werden 15
38 Implizite Graphsuche Graph zur Exploration ist nicht immer explizit gegeben. Wird während der Exploration (teilweise) erstellt. 16
39 Implizite Graphsuche 17
40 Graphsuche Allgemeines Schema: Suche Pfade inkrementell vom Startknoten aus ab Zu jedem Zeitpunkt pflege eine Menge von Grenzknoten (frontier nodes), die den bisher durchsuchten Bereich vom nicht-durchsuchten Bereich abgrenzen. Mit Voranschreiten des Algorithmus wird die Grenze expandiert, bis ein Zielknoten erreicht wird Die Art und Weise wie die Grenze expandiert wird, definiert die Suchstrategie: Breitensuche Tiefensuche Iterative Tiefensuche Bidirektionale Suche 18
41 Graphsuche Allgemeines Schema: Suche Pfade inkrementell vom Startknoten aus ab Zu jedem Zeitpunkt pflege eine Menge von Grenzknoten (frontier nodes), die den bisher durchsuchten Bereich vom nicht-durchsuchten Bereich abgrenzen. Mit Voranschreiten des Algorithmus wird die Grenze expandiert, bis ein Zielknoten erreicht wird Die Art und Weise wie die Grenze expandiert wird, definiert die Suchstrategie: Breitensuche Tiefensuche Iterative Tiefensuche Bidirektionale Suche 18
42 Graphsuche Allgemeines Schema: Suche Pfade inkrementell vom Startknoten aus ab Zu jedem Zeitpunkt pflege eine Menge von Grenzknoten (frontier nodes), die den bisher durchsuchten Bereich vom nicht-durchsuchten Bereich abgrenzen. Mit Voranschreiten des Algorithmus wird die Grenze expandiert, bis ein Zielknoten erreicht wird Die Art und Weise wie die Grenze expandiert wird, definiert die Suchstrategie: Breitensuche Tiefensuche Iterative Tiefensuche Bidirektionale Suche 18
43 Graphsuche Allgemeines Schema: Suche Pfade inkrementell vom Startknoten aus ab Zu jedem Zeitpunkt pflege eine Menge von Grenzknoten (frontier nodes), die den bisher durchsuchten Bereich vom nicht-durchsuchten Bereich abgrenzen. Mit Voranschreiten des Algorithmus wird die Grenze expandiert, bis ein Zielknoten erreicht wird Die Art und Weise wie die Grenze expandiert wird, definiert die Suchstrategie: Breitensuche Tiefensuche Iterative Tiefensuche Bidirektionale Suche 18
44 Graphsuche 19
45 Suchstrategien Wann ist eine Suchstrategie gut? Vollständigkeit: Gegeben, dass ein Zielzustand existiert, findet die Strategie diesen? Laufzeit: wieviele Knoten müssen betrachtet werden um einen Zielzustand zu finden? Speicherplatz: wieviele Knoten befinden sich maximal in Frontier? Optimalität: findet die Suchstrategie eine günstigste Lösung (=kürzeste Entfernung zum Startknoten)? 20
46 Suchstrategien Wann ist eine Suchstrategie gut? Vollständigkeit: Gegeben, dass ein Zielzustand existiert, findet die Strategie diesen? Laufzeit: wieviele Knoten müssen betrachtet werden um einen Zielzustand zu finden? Speicherplatz: wieviele Knoten befinden sich maximal in Frontier? Optimalität: findet die Suchstrategie eine günstigste Lösung (=kürzeste Entfernung zum Startknoten)? 20
47 Suchstrategien Wann ist eine Suchstrategie gut? Vollständigkeit: Gegeben, dass ein Zielzustand existiert, findet die Strategie diesen? Laufzeit: wieviele Knoten müssen betrachtet werden um einen Zielzustand zu finden? Speicherplatz: wieviele Knoten befinden sich maximal in Frontier? Optimalität: findet die Suchstrategie eine günstigste Lösung (=kürzeste Entfernung zum Startknoten)? 20
48 Suchstrategien Wann ist eine Suchstrategie gut? Vollständigkeit: Gegeben, dass ein Zielzustand existiert, findet die Strategie diesen? Laufzeit: wieviele Knoten müssen betrachtet werden um einen Zielzustand zu finden? Speicherplatz: wieviele Knoten befinden sich maximal in Frontier? Optimalität: findet die Suchstrategie eine günstigste Lösung (=kürzeste Entfernung zum Startknoten)? 20
49 Suchstrategien Wann ist eine Suchstrategie gut? Vollständigkeit: Gegeben, dass ein Zielzustand existiert, findet die Strategie diesen? Laufzeit: wieviele Knoten müssen betrachtet werden um einen Zielzustand zu finden? Speicherplatz: wieviele Knoten befinden sich maximal in Frontier? Optimalität: findet die Suchstrategie eine günstigste Lösung (=kürzeste Entfernung zum Startknoten)? 20
50 Generischer Algorithmus zur Graphsuche Generic Graph Search Algorithm search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). 21
51 Generischer Algorithmus zur Graphsuche search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. 22
52 Generischer Algorithmus zur Graphsuche search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. 22
53 Generischer Algorithmus zur Graphsuche search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. neighbors(n,nn) ist wahr, wenn NN die Liste der Zustände gibt, für die es von N aus einen Zustandsübergang gibt. 22
54 Generischer Algorithmus zur Graphsuche search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. neighbors(n,nn) ist wahr, wenn NN die Liste der Zustände gibt, für die es von N aus einen Zustandsübergang gibt. select(n,f 0,F1): Nimmt einen Knoten N aus der Frontier F0 heraus. = F0 - {N}. Liefert FAIL, wenn F0 leer ist. F1 22
55 Generischer Algorithmus zur Graphsuche search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. neighbors(n,nn) ist wahr, wenn NN die Liste der Zustände gibt, für die es von N aus einen Zustandsübergang gibt. select(n,f 0,F1): Nimmt einen Knoten N aus der Frontier F0 heraus. = F0 - {N}. Liefert FAIL, wenn F0 leer ist. F1 add_to_frontier(nn,f 1,F2): F2 ist die Frontier, die man aus F1 erhält, indem man die Liste der Knoten NN hinzufügt. 22
56 Generischer Algorithmus zur Graphsuche Definiert, was ein Ziel ist. search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. neighbors(n,nn) ist wahr, wenn NN die Liste der Zustände gibt, für die es von N aus einen Zustandsübergang gibt. select(n,f 0,F1): Nimmt einen Knoten N aus der Frontier F0 heraus. = F0 - {N}. Liefert FAIL, wenn F0 leer ist. F1 add_to_frontier(nn,f 1,F2): F2 ist die Frontier, die man aus F1 erhält, indem man die Liste der Knoten NN hinzufügt. 22
57 Generischer Algorithmus zur Graphsuche Definiert, was ein Ziel ist. search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. Definiert, die Zustandsübergangsrelation neighbors(n,nn) ist wahr, wenn NN die Liste der Zustände gibt, für die es von N aus einen Zustandsübergang gibt. select(n,f 0,F1): Nimmt einen Knoten N aus der Frontier F0 heraus. = F0 - {N}. Liefert FAIL, wenn F0 leer ist. F1 add_to_frontier(nn,f 1,F2): F2 ist die Frontier, die man aus F1 erhält, indem man die Liste der Knoten NN hinzufügt. 22
58 Generischer Algorithmus zur Graphsuche Definiert, was ein Ziel ist. search(frontier) ist wahr, wenn es einen Pfad von einem Element aus Frontier zu einem Zielknoten gibt. is_goal(n) ist wahr, wenn N ein Zielknoten ist. Definiert, die Zustandsübergangsrelation neighbors(n,nn) ist wahr, wenn NN die Liste der Zustände gibt, für die es von N aus einen Zustandsübergang gibt. Definieren, die Suchstrategie select(n,f 0,F1): Nimmt einen Knoten N aus der Frontier F0 heraus. = F0 - {N}. Liefert FAIL, wenn F0 leer ist. add_to_frontier(nn,f 1,F2): F2 ist die Frontier, die man aus F1 erhält, indem man die Liste der Knoten NN hinzufügt. F1 22
59 Beispiel Breitensuche A Explored Frontier - A 23
60 Beispiel Breitensuche A Explored Frontier - A A B,C,D,E B C D E 24
61 Beispiel Breitensuche B A C D E Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H F G H 25
62 Beispiel Breitensuche B C A D E Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I F G H I 26
63 Beispiel Breitensuche B C A D E Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K F G H I J K 27
64 Beispiel Breitensuche B C A D E Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O F G H I J K L M N O 28
65 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O 29
66 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O 30
67 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O 31
68 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O A,B,C,D,E,F,G,H,I J,K,L,M,N,O 32
69 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O A,B,C,D,E,F,G,H,I J,K,L,M,N,O A,B,C,D,E,F,G,H,I,J K,L,M,N,O 33
70 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O A,B,C,D,E,F,G,H,I J,K,L,M,N,O A,B,C,D,E,F,G,H,I,J K,L,M,N,O A,B,C,D,E,F,G,H,I,J,K L,M,N,O 34
71 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O A,B,C,D,E,F,G,H,I J,K,L,M,N,O A,B,C,D,E,F,G,H,I,J K,L,M,N,O A,B,C,D,E,F,G,H,I,J,K L,M,N,O A,B,C,D,E,F,G,H,I,J,K,L M,N,O 35
72 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O A,B,C,D,E,F,G,H,I J,K,L,M,N,O A,B,C,D,E,F,G,H,I,J K,L,M,N,O A,B,C,D,E,F,G,H,I,J,K L,M,N,O A,B,C,D,E,F,G,H,I,J,K,L M,N,O A,B,C,D,E,F,G,H,I,J,K,L,M N,O A,B,C,D,E,F,G,H,I,J,K,L,M,N O 36
73 Beispiel Breitensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B C,D,E,F,G,H A,B,C D,E,F,G,H,I A,B,C,D E,F,G,H,I,J,K A,B,C,D,E F,G,H,I,J,K,L,M,N,O A,B,C,D,E,F G,H,I,J,K,L,M,N,O A,B,C,D,E,F,G H,I,J,K,L,M,N,O A,B,C,D,E,F,G,H I,J,K,L,M,N,O A,B,C,D,E,F,G,H,I J,K,L,M,N,O A,B,C,D,E,F,G,H,I,J K,L,M,N,O A,B,C,D,E,F,G,H,I,J,K L,M,N,O A,B,C,D,E,F,G,H,I,J,K,L M,N,O A,B,C,D,E,F,G,H,I,J,K,L,M N,O A,B,C,D,E,F,G,H,I,J,K,L,M,N O A,B,C,D,E,F,G,H,I,J,K,L,M,N,O - 37
74 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Breitensuche behandelt? 38
75 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). Entnimmt das erste Element aus der Frontier. search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Breitensuche behandelt? 38
76 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). Entnimmt das erste Element aus der Frontier. Fügt die Nachfolgezustände hinten an die Frontier an. search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Breitensuche behandelt? 38
77 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). Entnimmt das erste Element aus der Frontier. Fügt die Nachfolgezustände hinten an die Frontier an. search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Breitensuche behandelt? Queue! 38
78 Breitensuche Breadth-first Search Breadth-first search treats the frontier as a queue: it always selects the earliest element added to the frontier. select(node, [Node Frontier], Frontier). add_to_frontier(neighbors, Frontier 1, Frontier 2 ) append(frontier 1, Neighbors, Frontier 2 ). Frontier: [e 1, e 2,...] e 1 is selected. Its neighbors are added to the end of the queue. e 2 is selected next. ( David Poole, Alan Mackworth, Randy Goebel, and Oxford University Press 1998 *) 39
79 Beispiel Tiefensuche Beispiel Tiefensuche A Explored Frontier - A 40
80 Beispiel Tiefensuche Beispiel Tiefensuche A Explored Frontier - A A B,C,D,E B C D E 41
81 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E F G H 42
82 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E F G H 43
83 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E F G H 44
84 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E F G H 45
85 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E F G H I 46
86 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I D,E F G H I 47
87 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D J,K,E F G H I J K 48
88 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E F G H I J K 49
89 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E A,B,F,G,H,C,I,D,J,K E F G H I J K 50
90 Beispiel Tiefensuche Beispiel Tiefensuche A B C D E Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E A,B,F,G,H,C,I,D,J,K,E L,M,N,O F G H I J K L M N O 51
91 Beispiel Tiefensuche Beispiel Tiefensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E A,B,F,G,H,C,I,D,J,K,E L,M,N,O A,B,F,G,H,C,I,D,J,K,E,L M,N,O 52
92 Beispiel Tiefensuche Beispiel Tiefensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E A,B,F,G,H,C,I,D,J,K,E L,M,N,O A,B,F,G,H,C,I,D,J,K,E,L M,N,O A,B,F,G,H,C,I,D,J,K,E,L,M N,O 53
93 Beispiel Tiefensuche Beispiel Tiefensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E A,B,F,G,H,C,I,D,J,K,E L,M,N,O A,B,F,G,H,C,I,D,J,K,E,L M,N,O A,B,F,G,H,C,I,D,J,K,E,L,M N,O A,B,F,G,H,C,I,D,J,K,E,L,M,N O 54
94 Beispiel Tiefensuche Beispiel Tiefensuche B F G H C I A J D K E L M N O Explored Frontier - A A B,C,D,E A,B F,G,H,C,D,E A,B,F G,H,C,D,E A,B,F,G H,C,D,E A,B,F,G,H C,D,E A,B,F,G,H,C I,D,E A,B,F,G,H,C,I,D,J K,E A,B,F,G,H,C,I,D,J,K,E L,M,N,O A,B,F,G,H,C,I,D,J,K,E,L M,N,O A,B,F,G,H,C,I,D,J,K,E,L,M N,O A,B,F,G,H,C,I,D,J,K,E,L,M,N,O - 55
95 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Tiefensuche behandelt? 56
96 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). Entnimmt das erste Element aus der Frontier. search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Tiefensuche behandelt? 56
97 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). Entnimmt das erste Element aus der Frontier. Fügt die Nachfolgezustände vorne an die Frontier an. search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Tiefensuche behandelt? 56
98 Generic Graph Search Algorithm Generischer Algorithmus zur Graphsuche search(f 0 ) select(node, F 0, F 1 ) ^ is_goal(node). Entnimmt das erste Element aus der Frontier. Fügt die Nachfolgezustände vorne an die Frontier an. search(f 0 ) select(node, F 0, F 1 ) ^ neighbors(node, NN) ^ add_to_frontier(nn, F 1, F 2 ) ^ search(f 2 ). Wie wird die Frontier bei der Tiefensuche behandelt? Stack! 56
99 Computational Intelligence Chapter 4, Lecture 2, Page 1 Tiefensuche Depth-first Search Depth-first search treats the frontier as a stack: it always selects the last element added to the frontier. select(node, [Node Frontier], Frontier). add_to_frontier(neighbors, Frontier 1, Frontier 2 ) append(neighbors, Frontier 1, Frontier 2 ). Frontier: [e 1, e 2,...] e 1 is selected. Its neighbors are added to the front of the stack. e 2 is only selected when all paths from e 1 have been explored. 57 David Poole, Alan Mackworth, Randy Goebel, and Oxford University Press 1998 *)
100 Analyse Breitensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d 58
101 Analyse Breitensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Die Breitensuche ist vollständig, hat eine Laufzeitkomplexität von Speicherplatzkomplexität von O(n e ) und ist optimal. O(n e ), eine 58
102 Analyse Tiefensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d 59
103 Analyse Tiefensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Die Tiefensuche ist vollständig (für endliches d), hat eine Laufzeitkomplexität von O(n d ), eine Speicherplatzkomplexität von O(dn), ist aber nicht optimal. 59
104 Analyse Tiefensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Die Tiefensuche ist vollständig (für endliches d), hat eine Laufzeitkomplexität von O(n d ), eine Speicherplatzkomplexität von O(dn), ist aber nicht optimal. Was ist bei unendlichem d? Warum ist die Tiefensuche nicht optimal? 59
105 Iterative Tiefensuche Vorteil der Tiefensuche: es müssen wenige Knoten im Speicher gehalten werden. Nachteil der Tiefensuche: man geht evtl. viele Umwege zu einem Zielknoten Vorteil der Breitensuche: man entfernt sich nur so weit wie nötig vom Startknoten. Nachteil der Breitensuche: es müssen viele Knoten im Speicher gehalten werden. 60
106 Iterative Tiefensuche Vorteil der Tiefensuche: es müssen wenige Knoten im Speicher gehalten werden. Nachteil der Tiefensuche: man geht evtl. viele Umwege zu einem Zielknoten Vorteil der Breitensuche: man entfernt sich nur so weit wie nötig vom Startknoten. Nachteil der Breitensuche: es müssen viele Knoten im Speicher gehalten werden. Idee: Kombiniere Vorteile zu Iterativer Tiefensuche 1. Führe Tiefensuche bis zu einer festgelegten Tiefe T durch 2. Falls Ziel gefunden, terminiere 3. Ansonsten erhöhe T um 1 und wiederhole von Schritt 1. 60
107 Iterative Tiefensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d 61
108 Iterative Tiefensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Eigenschaften: vollständig Laufzeitkomplexität von O(n e+1 ) (wie bei Breitensuche) Speicherplatzkomplexität von O(dn) (wie bei Tiefensuche) optimal (für Starttiefe T =1) 61
109 Iterative Tiefensuche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Eigenschaften: vollständig Laufzeitkomplexität von O(n e+1 ) (wie bei Breitensuche) Speicherplatzkomplexität von O(dn) (wie bei Tiefensuche) optimal (für Starttiefe T =1) Nachteil der iterativen Tiefensuche: Alle Knoten, die für Tiefe T betrachtet werden, werden nocheinmal für Tiefe T +1betrachtet, usw. (asymptotisch hat dies allerdings keinen Einfluss auf die Laufzeit). 61
110 Bidirektionale Suche Idee: Suche gleichzeitig vom Start- und Zielknoten aus (letzter sollte eindeutig sein). Vorwärtssuche vom Startknoten aus (Breitensuche) Rückwärtssuche vom Zielknoten aus (Breitensuche) Immer wenn ein neuer Knoten Frontier einer Suche hinzugefügt wird, wird üperprüft ob er bereits in Frontier der anderen Suche enthalten ist. Falls ja, wurde ein Pfad zum Ziel über diesen Knoten gefunden. Start Goal 62
111 Bidirektionale Suche Idee: Suche gleichzeitig vom Start- und Zielknoten aus (letzter sollte eindeutig sein). Vorwärtssuche vom Startknoten aus (Breitensuche) Rückwärtssuche vom Zielknoten aus (Breitensuche) Immer wenn ein neuer Knoten Frontier einer Suche hinzugefügt wird, wird üperprüft ob er bereits in Frontier der anderen Suche enthalten ist. Falls ja, wurde ein Pfad zum Ziel über diesen Knoten gefunden. Start Goal 62
112 Bidirektionale Suche Idee: Suche gleichzeitig vom Start- und Zielknoten aus (letzter sollte eindeutig sein). Vorwärtssuche vom Startknoten aus (Breitensuche) Rückwärtssuche vom Zielknoten aus (Breitensuche) Immer wenn ein neuer Knoten Frontier einer Suche hinzugefügt wird, wird üperprüft ob er bereits in Frontier der anderen Suche enthalten ist. Falls ja, wurde ein Pfad zum Ziel über diesen Knoten gefunden. Start Goal 62
113 Bidirektionale Suche Idee: Suche gleichzeitig vom Start- und Zielknoten aus (letzter sollte eindeutig sein). Vorwärtssuche vom Startknoten aus (Breitensuche) Rückwärtssuche vom Zielknoten aus (Breitensuche) Immer wenn ein neuer Knoten Frontier einer Suche hinzugefügt wird, wird üperprüft ob er bereits in Frontier der anderen Suche enthalten ist. Falls ja, wurde ein Pfad zum Ziel über diesen Knoten gefunden. Start Goal 62
114 Bidirektionale Suche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d 63
115 Bidirektionale Suche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Die bidirektionale Suche ist vollständig, hat eine Laufzeitkomplexität von O(n (e+1)/2 ), eine Speicherplatzkomplexität von O(n e ) und ist optimal. 63
116 Bidirektionale Suche maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d Die bidirektionale Suche ist vollständig, hat eine Laufzeitkomplexität von O(n (e+1)/2 ), eine Speicherplatzkomplexität von O(n e ) und ist optimal. Problem: Bestimmung eines Vorgängers eines Knoten (für Rückwärtsuche) evtl. nicht einfach. 63
117 Zusammenfassung: Uninformierte Suche Uninformierte Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar Generelle Strategie: Suche Pfade inkrementell vom Startknoten aus ab Suchstrategien: Tiefensuche Breitensuche Iterative Tiefensuche Bidirektionale Suche 64
118 Zusammenfassung: Uninformierte Suche Uninformierte Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar Generelle Strategie: Suche Pfade inkrementell vom Startknoten aus ab Suchstrategien: Tiefensuche Breitensuche Iterative Tiefensuche Bidirektionale Suche 64
119 Zusammenfassung: Uninformierte Suche Uninformierte Suche: ausser der Zustandsübergangsrelation sind keine weiteren Informationen verfügbar Generelle Strategie: Suche Pfade inkrementell vom Startknoten aus ab Suchstrategien: Tiefensuche Breitensuche Iterative Tiefensuche Bidirektionale Suche 64
120 Informierte Suche 65
121 Informierte Suche 65
122 Informierte Suche Problem der uninformierten Suche: Kombinatorische Explosion (viele Nachfolgerzustände führen zu langer Laufzeit) Beispiel: Beim Schach gibt es bereits vom Startzustand aus 20 verschiedene Nachfolgerzustände (im weiteren Verlauf können dies noch viel mehr sein) Idee der informierten Suche: Rate den nächsten besten Zustand Noch besser: Rate geschickt und nutze Informationen der Domäne um Zustände einzuschätzen (Heuristiken). 66
123 Informierte Suche Problem der uninformierten Suche: Kombinatorische Explosion (viele Nachfolgerzustände führen zu langer Laufzeit) Beispiel: Beim Schach gibt es bereits vom Startzustand aus 20 verschiedene Nachfolgerzustände (im weiteren Verlauf können dies noch viel mehr sein) Idee der informierten Suche: Rate den nächsten besten Zustand Noch besser: Rate geschickt und nutze Informationen der Domäne um Zustände einzuschätzen (Heuristiken). 66
124 Informierte Suche Problem der uninformierten Suche: Kombinatorische Explosion (viele Nachfolgerzustände führen zu langer Laufzeit) Beispiel: Beim Schach gibt es bereits vom Startzustand aus 20 verschiedene Nachfolgerzustände (im weiteren Verlauf können dies noch viel mehr sein) Idee der informierten Suche: Rate den nächsten besten Zustand Noch besser: Rate geschickt und nutze Informationen der Domäne um Zustände einzuschätzen (Heuristiken). 66
125 Informierte Suche Analyse (uninformierte) Suche: Suchstrategien allgemein sind charakterisiert durch die Art und Weise wie sie den nächsten zu betrachteten Knoten auswählen. Uninformierte Strategien sortieren die Knoten nach problem-unabhängigen Eigenschaften (z.b. Anzahl Aktionen vom Startzustand). Informierte Suche (Best-first Search): Benutze eine Zustandsbewertungsfunktion f(n) für jeden Nachfolgerknoten n eines aktuell betrachteten Knotens m Betrachte nur den Nachfolgerknoten, der f maximiert (füge diesen in eine Warteschlange). Alternative: sortiere Nachfolgerknoten absteigend nach f und füge diese in einen Stack ein (ermöglicht Backtracking). 67
126 Informierte Suche Analyse (uninformierte) Suche: Suchstrategien allgemein sind charakterisiert durch die Art und Weise wie sie den nächsten zu betrachteten Knoten auswählen. Uninformierte Strategien sortieren die Knoten nach problem-unabhängigen Eigenschaften (z.b. Anzahl Aktionen vom Startzustand). Informierte Suche (Best-first Search): Benutze eine Zustandsbewertungsfunktion f(n) für jeden Nachfolgerknoten n eines aktuell betrachteten Knotens m Betrachte nur den Nachfolgerknoten, der f maximiert (füge diesen in eine Warteschlange). Alternative: sortiere Nachfolgerknoten absteigend nach f und füge diese in einen Stack ein (ermöglicht Backtracking). 67
127 Informierte Suche Analyse (uninformierte) Suche: Suchstrategien allgemein sind charakterisiert durch die Art und Weise wie sie den nächsten zu betrachteten Knoten auswählen. Uninformierte Strategien sortieren die Knoten nach problem-unabhängigen Eigenschaften (z.b. Anzahl Aktionen vom Startzustand). Informierte Suche (Best-first Search): Benutze eine Zustandsbewertungsfunktion f(n) für jeden Nachfolgerknoten n eines aktuell betrachteten Knotens m Betrachte nur den Nachfolgerknoten, der f maximiert (füge diesen in eine Warteschlange). Alternative: sortiere Nachfolgerknoten absteigend nach f und füge diese in einen Stack ein (ermöglicht Backtracking). 67
128 Informierte Suche Analyse (uninformierte) Suche: Suchstrategien allgemein sind charakterisiert durch die Art und Weise wie sie den nächsten zu betrachteten Knoten auswählen. Uninformierte Strategien sortieren die Knoten nach problem-unabhängigen Eigenschaften (z.b. Anzahl Aktionen vom Startzustand). Informierte Suche (Best-first Search): Benutze eine Zustandsbewertungsfunktion f(n) für jeden Nachfolgerknoten n eines aktuell betrachteten Knotens m Betrachte nur den Nachfolgerknoten, der f maximiert (füge diesen in eine Warteschlange). Alternative: sortiere Nachfolgerknoten absteigend nach f und füge diese in einen Stack ein (ermöglicht Backtracking). 67
129 Informierte Suche Analyse (uninformierte) Suche: Suchstrategien allgemein sind charakterisiert durch die Art und Weise wie sie den nächsten zu betrachteten Knoten auswählen. Uninformierte Strategien sortieren die Knoten nach problem-unabhängigen Eigenschaften (z.b. Anzahl Aktionen vom Startzustand). Informierte Suche (Best-first Search): Benutze eine Zustandsbewertungsfunktion f(n) für jeden Nachfolgerknoten n eines aktuell betrachteten Knotens m Betrachte nur den Nachfolgerknoten, der f maximiert (füge diesen in eine Warteschlange). Alternative: sortiere Nachfolgerknoten absteigend nach f und füge diese in einen Stack ein (ermöglicht Backtracking). 67
130 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
131 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
132 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
133 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
134 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
135 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
136 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
137 Zustandsbewertungsfunktion Eine Zustandsbewertungsfunktion f(n) implementiert eine Heuristik Eine Heuristik ist eine problem-abhängige Strategie zur Lösung Beispiele: Schach: Bevorzuge einen Zustand, bei dem der Gegenspieler wenig Figuren hat Sokoban: Bevorzuge einen Zustand, bei dem die Gesamtdistanz der Spielsteine zum Ziel gering ist Heuristiken müssen nicht immer korrekt und allgemeingültig sein Eine Heuristik ist eine Abschätzung der Kosten bis zum Ziel Im Gegensatz zu den tatsächlichen Kosten soll sie aber einfach zu berechnen sein Weiteres Beispiel: Luftliniendistanz als Heuristik für kürzeste Wege 68
138 Beispiel: Kürzeste Wege Oradea 71 Zerind Neamt 87 Arad Sibiu Fagaras Iasi 92 Vaslui Timisoara 111 Mehadia Dobreta Rimnicu Vilcea Lugoj Pitesti Craiova Giurgiu Bucharest 90 Urziceni Hirsova 86 Eforie 69
Künstliche Intelligenz
Künstliche Intelligenz 3. Suche Dr. Claudia Schon schon@uni-koblenz.de Institute for Web Science and Technologies 1 Diese Folien basieren auf den Folien von PD Dr. Matthias Thimm, Universität Koblenz-Landau,
MehrInformierte Suchverfahren
Informierte Suchverfahren Für größere Suchbäume sind Breiten- und Tiefesuche nicht effizient genug. Vielversprechender sind Ansätze, bei denen Problemwissen zur Steuerung des Suchprozesses eingesetzt wird.
MehrStartzustand. Mögliche heuristische Funktionen:
Informierte Suchverfahren Für größere Suchbäume sind Breiten- und Tiefensuche nicht effizient genug. Vielversprechender sind Ansätze, bei denen Problemwissen zur Steuerung des Suchprozesses eingesetzt
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune {rudolf.kruse,christian.braune}@ovgu.de Institut für Intelligente Kooperierende Systeme Fakultät für Informatik Otto-von-Guericke-Universität
MehrKünstliche Intelligenz
Künstliche Intelligenz Vorlesung 3: Suchverfahren Informierte Suche 1/78 WIEDERHOLUNG Bislang uninformierte Strategien BFS, DFS, Iteratives Vertiefen, Bidirektionale Suche Wichtige Begriffe: Suchraum,
MehrKünstliche Intelligenz
Künstliche Intelligenz Vorlesung 4: Suchverfahren Informierte Suche 1/135 WIEDERHOLUNG BISLANG... Uninformierte Strategien: bearbeiten den Suchraum systematisch, aber ohne problemspezifisches Wissen ab.
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 5. Klassische Suche: Beispiele von Zustandsräumen Malte Helmert Universität Basel 7. März 2014 Suchprobleme: Überblick Kapitelüberblick klassische Suche: 3. 5. Einführung
MehrZustände und Knoten. Vorgänger Information: Tiefe = 4 ΣKosten=4 Expandiert: ja. Zustand Aktion: right. Aktion: down
Zustände und Knoten Zustände: Schnappschüsse der Welt Knoten: Datenobjekte, welche Zustände repräsentieren und weitere Information enthalten Vorgängerknoten (im Baum 1) Nachfolgerknoten (im Baum b) mit
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse. raune. Doell {kruse,cbraune,doell}@iws.cs.uni-magdeburg.de Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke
Mehr13.1 Einführung Einführung. Grundlagen der Künstlichen Intelligenz Gierige Bestensuche 13.3 A Weighted A. 13.
Grundlagen der Künstlichen Intelligenz 31. März 2014 13. Klassische Suche: Gierige Bestensuche, A, Weighted A Grundlagen der Künstlichen Intelligenz 13. Klassische Suche: Gierige Bestensuche, A, Weighted
MehrÜbersicht. Künstliche Intelligenz: 3. Problemlösen durch Suche Frank Puppe 1
Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres
MehrWissensbasierte Systeme. Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche. Heuristiken und ihre Eigenschaften
1 Michael Beetz Technische Universität München Wintersemester 2004/05 Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche 2 3 der Eigenschaften der 4 : 8-Puzzle 5 Heuristiken und ihre Eigenschaften
Mehr3. Problemlösen durch Suche
3. Problemlösen durch Suche Problemlösende Agenten sind zielorientierte Agenten. Zielformulierung Fokussierung des möglichen Verhaltens unter Berücksichtigung der aktuellen Situation Problemformulierung
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune C. Moewes {kruse,cmoewes,russ}@iws.cs.uni-magdeburg.de Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik
MehrZustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche
Zustandsraumsuche: Blinde und Heuristische Suche Einführung in die KI Übungsstunde am 01.11.04 Benmin Altmeyer 1 Heute im Angebot Was ist Suche? Suche als Probemlösung Zustandsraumsuche Vollständigkeit
MehrKünstliche Intelligenz
Künstliche Intelligenz Vorlesung 4: Suchverfahren Informierte Suche 1/132 INFORMIERTE SUCHSTRATEGIEN (ISS) Benutzt neben der Definition des Problems auch problemspezifisches Wissen. Findet Lösungen effizienter
MehrGraph Suchalgorithmus Uninformierte Suche Informierte Suche. Pfadsuche. Mario Mohr. GWV-Tutorium 2013/ Januar 2014
Pfadsuche Mario Mohr GWV-Tutorium 2013/14 17. Januar 2014 4 Informierte Suche Heuristik Best-first A* 1 Graph 2 Suchalgorithmus 3 Uninformierte Suche Breadth-first Loop detection & multiple-path pruning
Mehr8.1 Blinde Suche. Grundlagen der Künstlichen Intelligenz. Klassische Suche: Überblick. 8. Klassische Suche: Breitensuche und uniforme Kostensuche
Grundlagen der Künstlichen Intelligenz 17. März 2014 8. Klassische Suche: Breitensuche und uniforme Kostensuche Grundlagen der Künstlichen Intelligenz 8. Klassische Suche: Breitensuche und uniforme Kostensuche
MehrHeuristische Suche. Uninformierte (blinde) Suchverfahren. erzeugen systematisch neue Knoten im Suchbaum und führen jeweils den Zieltest durch;
Heuristische Suche Uninformierte (blinde) Suchverfahren erzeugen systematisch neue Knoten im Suchbaum und führen jeweils den Zieltest durch; verwenden keine problemspezifische Zusatzinformation. Informierte
Mehr10.1 Blinde Suche Blinde Suche. Grundlagen der Künstlichen Intelligenz Breitensuche: Einführung BFS-Tree. 10.
Grundlagen der Künstlichen Intelligenz 13. März 2015 10. Klassische Suche: Grundlagen der Künstlichen Intelligenz 10. Klassische Suche: Malte Helmert Universität asel 13. März 2015 10.1 linde Suche 10.2
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Tiefensuche und iterative Tiefensuche Malte Helmert Universität asel 21. März 2014 Tiefensuche Iterative Tiefensuche linde Suche: Zusammenfassung
MehrEinfacher Problemlösungsagent. Übersicht. Begriffsdefinitionen für Einfach-Probleme
Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres
Mehr9.1 Tiefensuche. Grundlagen der Künstlichen Intelligenz. 9.1 Tiefensuche. 9.2 Iterative Tiefensuche. 9.3 Blinde Suche: Zusammenfassung
Grundlagen der Künstlichen Intelligenz 21. März 2014 9. Klassische Suche: Tiefensuche und iterative Tiefensuche Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Tiefensuche und iterative Tiefensuche
MehrEinführung in Heuristische Suche
Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?
MehrEinführung in die Methoden der Künstlichen Intelligenz. Suchverfahren / Uninformierte Suche
Einführung in die Methoden der Künstlichen Intelligenz Suchverfahren / Uninformierte Suche PD Dr. David Sabel SoSe 0 Stand der Folien:. pril 0 Einführung Blind Search n-damen Missionare & Kannibalen Modellierung
MehrUninformierte Suche in Java Informierte Suchverfahren
Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:
Mehr2 Problemlösen und Suche
Universität Bielefeld Was ist Problemlösen? Problemlösen und Suche. Vorlesung: Suchprobleme und Suchalgorithmen; heuristische Suche Methoden der Künstlichen Intelligenz Ipke Wachsmuth WS 003/00 Unter Problemlösen
MehrBeweise aus dem Fach Grundzüge der Künstlichen Intelligenz
Beweise aus dem Fach Grundzüge der Künstlichen Intelligenz Alexander Pacha TU Wien - Matr. Nr.: 0828440 alexander.pacha@tuwien.ac.at 1 Begriserklärungen Für die folgenden Beweise werden zuerst folgende
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Baumsuche und Graphensuche Malte Helmert Universität Basel 13. März 2015 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 5. 7.
MehrEinführung in die Methoden der Künstlichen Intelligenz. Suchverfahren / Uninformierte Suche
Einführung in die Methoden der Künstlichen Intelligenz Suchverfahren / Uninformierte Suche Prof. Dr. Manfred Schmidt-Schauß SoSe 08 Stand der Folien: 9. pril 08 Einführung Blind Search n-damen Missionare
MehrMotivation für Suchverfahren. Einführung in die Methoden der Künstlichen Intelligenz. Suchverfahren / Uninformierte Suche
Motivation für Suchverfahren Einführung in die Methoden der Künstlichen Intelligenz Suchverfahren / Uninformierte Suche Prof. Dr. Manfred Schmidt-Schauß SoSe 06 Beispiele: Spiele: Suche nach dem besten
MehrWissensbasierte Systeme 3. Problemlösen durch Suche
Wissensbasierte Systeme 3. Problemlösen durch Suche Problemlösende Agenten, Problemformulierungen, Suchstrategien Michael Beetz Plan-based Robot Control 1 Inhalt 3.1 Problemlösende Agenten 3.2 Problemformulierungen
MehrBeispiele. mit. Beispiel 2.3. Suche einen Weg von nach. Tiefensuche bzw. Breitensuche.
2. Suchverfahren Uninformierte Suchverfahren Beispiel 2.4. Ein Weinhändler hat drei Krüge, einen von 9 Liter, einen von 7 Liter und einen von 4 Liter Inhalt. Auf den Krügen sind keine Litermarkierungen
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune C. Doell {kruse,cbraune,doell}@iws.cs.uni-magdeburg.de Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrKlausur zur Vorlesung Künstliche Intelligenz
Klausur zur Vorlesung Künstliche Intelligenz Ulrich Furbach Claudia Obermaier Arbeitsgruppe Künstliche Intelligenz Fachbereich Informatik, Universität Koblenz-Landau 13.03.2009 Name: Vorname: Matrikelnummer:
MehrWissensbasierte Suche
Wissensbasierte Suche Jürgen Dorn Inhalt uninformierte Suche wissensbasierte Suche A* und IDA* Algorithmus Suche in Und/Oder-Graphen Jürgen Dorn 2003 Wissensbasierte Suche 1 Suche Suche in (expliziten
Mehr2 Problemlösen und Suche
2 Problemlösen und Suche 4. Vorlesung: Suchprobleme und Suchalgorithmen; heuristische Suche Methoden der Künstlichen Intelligenz Ipke Wachsmuth WS 2008/2009 Kernfragen der Vorlesung 1. Wie lässt sich Wissen
MehrGrundlagen der KI + Reasoning Agents
Grundlagen der KI + Reasoning Agents Prof. Thielscher Welche heuristischen Suchverfahren gibt es? Erläutern Sie A* am Beispiel. Aufbau und Schlussfolgerungen von Bayesschen Netzen. Thielscher drängt auf
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Moewes G. Ruß {kruse,cmoewes,russ}@iws.cs.uni-magdeburg.de Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke
MehrKünstliche Intelligenz
Künstliche Intelligenz Vorlesung 2: Suchverfahren Uninformierte Suche 1/143 STARKE UND SCHWACHE KI-HYPOTHESE Schwache KI-Hypothese Maschinen (Computer, Roboter,... ) können agieren, alsob sie intelligent
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune C. Moewes {kruse,cmoewes,russ}@iws.cs.uni-magdeburg.de Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik
MehrAlgorithmen und Datenstrukturen 2-1. Seminar -
Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8
MehrPro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik
Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune C. Moewes {kruse,cmoewes,russ}@iws.cs.uni-magdeburg.de Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrEin Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.
Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten
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
MehrIntelligente Systeme. Suche
Intelligente Systeme Suche Michael Schroeder www.biotec.tu-dredsen.de/schroeder Lehrbuch Folien basieren auf Russell und Norvig: Künstliche Intelligenz: Ein Moderner Ansatz. Dank an Prof. Fürnkranz für
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
MehrUninformierte Suche in Java Informierte Suchverfahren
Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2008/2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln 8-Damen-Problem Gegeben: Schachbrett
MehrInhalt. Kognitive Systeme 1. Expansion eines impliziten Suchraums Netz aller möglichen Schritte. Impliziter Suchraum. Uninformierte Suche
Inhalt Uninformierte Suche Dr.-Ing. Bernd Ludwig Lehrstuhl für Künstliche Intelligenz Friedrich-Alexander-Universität Erlangen-Nürnberg 04.11.2009 1 Implizite Suchgraphen 2 Tiefensuche 3 Breitensuche 4
MehrKognitive Systeme 1. Uninformierte Suche. Dr.-Ing. Bernd Ludwig
Kognitive Systeme 1 Uninformierte Suche Dr.-Ing. Bernd Ludwig Lehrstuhl für Künstliche Intelligenz Friedrich-Alexander-Universität Erlangen-Nürnberg 04.11.2009 Dr.-Ing. Bernd Ludwig (Lehrstuhl KI) Kognitive
MehrProgrammierung 2 Studiengang MI / WI
Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 Fachbereich Automatisierung
Mehr9. Heuristische Suche
9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany rudolf.kruse@cs.uni-magdeburg.de S Heuristische Suche Idee: Wir nutzen eine (heuristische)
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 14. Klassische Suche: IDA Malte Helmert Universität Basel 31. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 3. 5. Einführung 6. 9. Basisalgorithmen
Mehr3. Übung Künstliche Intelligenz
Prof. Dr. Gerd Stumme, Robert Jäschke Fachgebiet Wissensverarbeitung 3. Übung Künstliche Intelligenz 21.11.2007 Wintersemester 2007/2008 1 Suche Berechnen Sie mit dem Greedy -Suchalgorithmus den Weg von
MehrAlgorithmen 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 /
MehrGroße Lösungsräume. Leon Schmidtchen Hallo Welt Seminar - LS Leon Schmidtchen Große Lösungsräume Hallo Welt Seminar - LS2
Große Lösungsräume Leon Schmidtchen 1.06.201 Hallo Welt Seminar - LS 2!1 Gliederung Motivation Brute Force Backtracking Pruning Leon Schmidtchen Branch & Bound 1.06.201 Hallo Welt Seminar - LS 2 Wann soll
MehrKapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung
Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse
Mehr10. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php
MehrGraphentheorie. Vorkurs Informatik WS 2016/2017. Dennis Aumiller
Vorkurs Informatik WS 2016/2017 Dennis Aumiller Aumiller@stud.uni-heidelberg.de 14.10.2016 Über das Thema Wo alles begann Leider keine gesonderte Vorlesung dafür oft als Teilthema in anderen Vorlesungen
MehrKapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung
Gliederung der Vorlesung. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken
MehrUniversität Koblenz-Landau Fachbereich Informatik Klausur Einführung in die Künstliche Intelligenz / WS 2003/2004. Jun.-Prof. Dr. B.
Universität Koblenz-Landau Fachbereich Informatik Klausur Einführung in die Künstliche Intelligenz / Künstliche Intelligenz für IM Name, Vorname: Matrikel-Nr.: Studiengang: WS 2003/2004 Jun.-Prof. Dr.
MehrAlgorithmen I - Tutorium 28 Nr. 9
Algorithmen I - Tutorium 28 Nr. 9 29.06.2017: Spaß mit Graphen und Graphtraversierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE
MehrHeuristische Suchverfahren
Heuristische Suchverfahren Suchprozesse sind ein wichtiger Bestandteil unterschiedlicher Problemlöseverfahren z.b. Bestimmung der Konfliktmenge in Produktionssystemen Suche nach resolvierbaren Klauseln
MehrUniversität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21.
Name, Vorname: Matrikel-Nr.: Studiengang: Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008 Jun.-Prof. Dr. B. Beckert 21. Februar 2008 Informatik (Diplom) Computervisualistik
MehrDatenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
MehrAbschätzung der Suchbaumgröße
Effiziente Algorithmen Lösen NP-vollständiger Probleme 263 Abschätzung der Suchbaumgröße Der Schätzwert für die Suchbaumgröße war 3529. Lassen wir das Programm laufen, ergibt sich, daß 1830 gültige Positionen
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
MehrEinführung in Suchverfahren
Einführung in Suchverfahren Alfred Kranstedt 0.0.0 Seminar Intelligente Algorithmen Was ist heute Thema?. Was ist ein Suchproblem? Definitionen, Darstellungen etc.. Suchstrategien Blinde Suche Heuristische
MehrA O T. Grundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz Problemlösen und Suche 27.10.2005 rijnesh J Jain bjj@dai-labor.de Agententechnologien in betrieblichen Anwendungen und der Telekommunikation Lernziele: Wir diskutieren,
MehrAlgorithmen & Datenstrukturen 2 Praktikum 3
Algorithmen & Datenstrukturen 2 Praktikum 3 Thema: Graphalgorithmen Sommersemester 2016 Prof. Dr. Christoph Karg Hochschule Aalen Dieses Praktikum widmet sich dem Thema Graphalgorithmen. Ziel ist die Implementierung
MehrFerienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 16. Klassische Suche: A : Optimalität, Teil II Malte Helmert Universität Basel 4. April 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 3. 5.
MehrGrundlagen von Decision Support und Expertensystemen
Grundlagen von Decision Support und Expertensystemen Peter Becker Hochschule Bonn-Rhein-Sieg Fachbereich Informatik peter.becker@h-brs.de Vorlesung Wintersemester 2012/13 Allgemeines zur Vorlesung Vorbemerkungen
MehrKapitel 5: Suchverfahren: Backtracking
Kapitel 5: Suchverfahren: Backtracking Prof. Dr. F. Otto (Universität Kassel) Entwurf und Analyse von Algorithmen 278 / 541 Suchverfahren: Backtracking Viele Probleme lassen sich als Suchprobleme formulieren.
Mehrals Bewertungsfunktion g(n) eines Knotens n wird der tatsächliche Weg vom Startzustand zu diesem Knoten benutzt
5 Suche 12. Vorlesung: Bestensuche; Goal Trees best-first search einfache Bestensuche: als Bewertungsfunktion g(n) eines Knotens n wird der tatsächliche Weg vom Startzustand zu diesem Knoten benutzt Bewertungsfunktion
Mehr9 Minimum Spanning Trees
Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne
MehrAufgaben 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
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrProgrammierkurs Prolog, SS 2000
Programmierkurs Prolog SS 2000 Universitaet Dortmund nach Joachims 1998 Suche Repräsentation von Bäumen Repräsentation von Graphen Suchstrategien DFS, BFS, Iterative Deepening, Locale Heuristiken, Globale
MehrEinführung in die Informatik 2
Einführung in die nformatik 2 raphenexploration Sven Kosub A Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester
Mehr12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013
12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Graphen Graphenalgorithmen 2
MehrÜbersicht. Informierte (heuristische) Suche. Algorithmus Bester-Zuerst-Suche. Bester-Zuerst-Suche
Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres
MehrName:... Vorname:... Matr.-Nr.:... Studiengang:...
Technische Universität Braunschweig Sommersemester 2011 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Christiane Schmidt Klausur Algorithmen und Datenstrukturen 01.09.2011 Name:.....................................
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (2) Spannbäume Kürzeste Wege Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 455 Wiederholung Traversierung eines Graphen via Tiefendurchlaufs
MehrAufgabe 1 (Allgemeines)
Klausur... Einführung in die Künstliche Intelligenz 1SS08 Aufgabe 1 (Allgemeines) (4 Punkte) a) In der Künstlichen Intelligenz unterscheidet man symbolische und subsymbolische Verfahren. Beschreibe diese
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Große Lösungsräume Maximilian Seitzer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Große Lösungsräume Worum geht s hier? Für viele wichtige Probleme sind
MehrSokoban. Knowledge Engineering und Lernen in Spielen. Mark Sollweck Fachbereich 20 Seminar Knowledge Engineering Mark Sollweck 1
Sokoban Knowledge Engineering und Lernen in Spielen Mark Sollweck 29.04.2010 Fachbereich 20 Seminar Knowledge Engineering Mark Sollweck 1 Überblick Sokoban Spielregeln Eigenschaften Lösungsansatz IDA*
MehrEinführung in die Methoden der Künstlichen Intelligenz
Einführung in die Methoden der Künstlichen --- Vorlesung vom 24.4.2007 --- Sommersemester 2007 Prof. Dr. Ingo J. Timm, Andreas D. Lattner Professur für Wirtschaftsinformatik und Simulation (IS) 3. Uninformierte
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)
MehrÜbungsblatt 2 Lösungen
rundlagen der Künstlichen Intelligenz Prof. Dr. J. Boedecker, Prof. Dr. W. Burgard, Prof. Dr. F. Hutter, Prof. Dr. B. Nebel M. Krawez, T. chulte ommersemester 08 Universität Freiburg Institut für Informatik
MehrAlgorithmen und Datenstrukturen 1-5. Seminar -
Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung
Mehr12. AuD Tafelübung T-C3
12. AuD Tafelübung T-C3 Simon Ruderich 2. Februar 2011 Kollisionen (Primär)Kollision Stelle mit normal eingefügtem Element schon belegt (gleicher Hashwert) tritt bei verketteten Listen und Sondierung auf
Mehr7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
Mehr