Künstliche Intelligenz

Größe: px
Ab Seite anzeigen:

Download "Künstliche Intelligenz"

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. F1 = F0 - {N}. Liefert FAIL, wenn F0 leer ist. 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. F1 = 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. 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. F1 = 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. 22

57 Generischer Algorithmus zur Graphsuche Definiert, was ein Ziel ist. Definiert, die Zustandsbergangsrelation 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. F1 = 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. 22

58 Generischer Algorithmus zur Graphsuche Definiert, was ein Ziel ist. Definiert, die Zustandsbergangsrelation efinieren, die Suchstrategie 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. F1 = 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. 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 <latexit sha1_base64="r/agnrpclv9wqbqh379hbri7z4g=">aaaethicrvnlb9naeb4ha215niulehelgasiiuweamwp4iuoiiogbaw2ihu7dvfxs/amkeb5w/wqbtz5erw48m1kq1uiwg6s5d2dmz1vvpmdtarmndymv3mtc/7fs5fn5heuxl12fbg9dgozkqe10j1vzmw9ncsnzkyhe9bytg9xty7zjnnbsf8p27eodn2ysnhvh5xey+o0madgxraqsv2fdqmgkgzmfdkyltqwu8+ygzqget2dvvnat6jgasrawdygrydimzas1imgzfhy+i6ihljahuwqyjmhjrl7vijmapxjh9mhb04vvdm2eyqpzof1thfpdd3h/gm4axpiexqpoa1mgc+fivqoqcxn2nysg9kc/9eyablhje+quqlzqsorlamujt+2o2e3lbhmbik36zabg+wsdwtx9ogkgj67+1hcv8g3az6hrnkdgxi5wcmt8xntanwhokvxioa2jzmftoo0bwtgbmrbyd2vwbid+z38lwqxkbysvi7z+imvy1361wgjqwagq6wjeocf8bxunw/hpm/cnzxy+rfpgd5jxyyubnbgduzglz9pv67ande/ehtors26ye0qyx1xiyyr1o8c+b3xc+qljadncjifrilytot6yjbj65ggnhrw7f5p7fsmgaovlt41zac9fv3zubobzzvuhp3blc76y9dtc3sb7qdxi1qldxpjg+chvk/ej5bxavmp/f1f+xpytou5n5t0avjfl+1466a=</latexit> <latexit sha1_base64="r/agnrpclv9wqbqh379hbri7z4g=">aaaethicrvnlb9naeb4ha215niulehelgasiiuweamwp4iuoiiogbaw2ihu7dvfxs/amkeb5w/wqbtz5erw48m1kq1uiwg6s5d2dmz1vvpmdtarmndymv3mtc/7fs5fn5heuxl12fbg9dgozkqe10j1vzmw9ncsnzkyhe9bytg9xty7zjnnbsf8p27eodn2ysnhvh5xey+o0madgxraqsv2fdqmgkgzmfdkyltqwu8+ygzqget2dvvnat6jgasrawdygrydimzas1imgzfhy+i6ihljahuwqyjmhjrl7vijmapxjh9mhb04vvdm2eyqpzof1thfpdd3h/gm4axpiexqpoa1mgc+fivqoqcxn2nysg9kc/9eyablhje+quqlzqsorlamujt+2o2e3lbhmbik36zabg+wsdwtx9ogkgj67+1hcv8g3az6hrnkdgxi5wcmt8xntanwhokvxioa2jzmftoo0bwtgbmrbyd2vwbid+z38lwqxkbysvi7z+imvy1361wgjqwagq6wjeocf8bxunw/hpm/cnzxy+rfpgd5jxyyubnbgduzglz9pv67ande/ehtors26ye0qyx1xiyyr1o8c+b3xc+qljadncjifrilytot6yjbj65ggnhrw7f5p7fsmgaovlt41zac9fv3zubobzzvuhp3blc76y9dtc3sb7qdxi1qldxpjg+chvk/ej5bxavmp/f1f+xpytou5n5t0avjfl+1466a=</latexit> <latexit sha1_base64="r/agnrpclv9wqbqh379hbri7z4g=">aaaethicrvnlb9naeb4ha215niulehelgasiiuweamwp4iuoiiogbaw2ihu7dvfxs/amkeb5w/wqbtz5erw48m1kq1uiwg6s5d2dmz1vvpmdtarmndymv3mtc/7fs5fn5heuxl12fbg9dgozkqe10j1vzmw9ncsnzkyhe9bytg9xty7zjnnbsf8p27eodn2ysnhvh5xey+o0madgxraqsv2fdqmgkgzmfdkyltqwu8+ygzqget2dvvnat6jgasrawdygrydimzas1imgzfhy+i6ihljahuwqyjmhjrl7vijmapxjh9mhb04vvdm2eyqpzof1thfpdd3h/gm4axpiexqpoa1mgc+fivqoqcxn2nysg9kc/9eyablhje+quqlzqsorlamujt+2o2e3lbhmbik36zabg+wsdwtx9ogkgj67+1hcv8g3az6hrnkdgxi5wcmt8xntanwhokvxioa2jzmftoo0bwtgbmrbyd2vwbid+z38lwqxkbysvi7z+imvy1361wgjqwagq6wjeocf8bxunw/hpm/cnzxy+rfpgd5jxyyubnbgduzglz9pv67ande/ehtors26ye0qyx1xiyyr1o8c+b3xc+qljadncjifrilytot6yjbj65ggnhrw7f5p7fsmgaovlt41zac9fv3zubobzzvuhp3blc76y9dtc3sb7qdxi1qldxpjg+chvk/ej5bxavmp/f1f+xpytou5n5t0avjfl+1466a=</latexit> <latexit sha1_base64="r/agnrpclv9wqbqh379hbri7z4g=">aaaethicrvnlb9naeb4ha215niulehelgasiiuweamwp4iuoiiogbaw2ihu7dvfxs/amkeb5w/wqbtz5erw48m1kq1uiwg6s5d2dmz1vvpmdtarmndymv3mtc/7fs5fn5heuxl12fbg9dgozkqe10j1vzmw9ncsnzkyhe9bytg9xty7zjnnbsf8p27eodn2ysnhvh5xey+o0madgxraqsv2fdqmgkgzmfdkyltqwu8+ygzqget2dvvnat6jgasrawdygrydimzas1imgzfhy+i6ihljahuwqyjmhjrl7vijmapxjh9mhb04vvdm2eyqpzof1thfpdd3h/gm4axpiexqpoa1mgc+fivqoqcxn2nysg9kc/9eyablhje+quqlzqsorlamujt+2o2e3lbhmbik36zabg+wsdwtx9ogkgj67+1hcv8g3az6hrnkdgxi5wcmt8xntanwhokvxioa2jzmftoo0bwtgbmrbyd2vwbid+z38lwqxkbysvi7z+imvy1361wgjqwagq6wjeocf8bxunw/hpm/cnzxy+rfpgd5jxyyubnbgduzglz9pv67ande/ehtors26ye0qyx1xiyyr1o8c+b3xc+qljadncjifrilytot6yjbj65ggnhrw7f5p7fsmgaovlt41zac9fv3zubobzzvuhp3blc76y9dtc3sb7qdxi1qldxpjg+chvk/ej5bxavmp/f1f+xpytou5n5t0avjfl+1466a=</latexit> 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 O(n e+1 ),eine Speicherplatzkomplexität von O(n e+1 ) und ist optimal. 58

101 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

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

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. Was ist bei unendlichem d? Warum ist die Tiefensuche nicht optimal? 59

104 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

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

106 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

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 Eigenschaften: vollständig Laufzeitkomplexität von O(n e ) Speicherplatzkomplexität von O(dn) (wie bei Tiefensuche) optimal (für Starttiefe T =1) 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 ) 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

109 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

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 maximale Anzahl an Nachfolgern eines Knotens: n Entfernung des zuerst erreichten Zielknotens: e maximale Suchtiefe (=Entfernung bis zu einem kinderlosen Knoten): d 63

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

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. Problem: Bestimmung eines Vorgängers eines Knoten (für Rückwärtsuche) evtl. nicht einfach. 63

116 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

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 Informierte Suche 65

120 Informierte Suche 65

121 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

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

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

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

So suchen Sie zuerst nach der Breite

So suchen Sie zuerst nach der Breite 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,

Mehr

Wissensbasierte Systeme. Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche. Heuristiken und ihre Eigenschaften

Wissensbasierte 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

Mehr

Zustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche

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

Mehr

Künstliche Intelligenz

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

Mehr

Graph Suchalgorithmus Uninformierte Suche Informierte Suche. Pfadsuche. Mario Mohr. GWV-Tutorium 2013/ Januar 2014

Graph 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

Mehr

8.1 Blinde Suche. Grundlagen der Künstlichen Intelligenz. Klassische Suche: Überblick. 8. Klassische Suche: Breitensuche und uniforme Kostensuche

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

Mehr

Übersicht. Künstliche Intelligenz: 3. Problemlösen durch Suche Frank Puppe 1

Ü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

Mehr

10.1 Blinde Suche Blinde Suche. Grundlagen der Künstlichen Intelligenz Breitensuche: Einführung BFS-Tree. 10.

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

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen 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

Mehr

9.1 Tiefensuche. Grundlagen der Künstlichen Intelligenz. 9.1 Tiefensuche. 9.2 Iterative Tiefensuche. 9.3 Blinde Suche: Zusammenfassung

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

Mehr

Einführung in Heuristische Suche

Einfü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?

Mehr

Einführung in die Methoden der Künstlichen Intelligenz. Suchverfahren / Uninformierte Suche

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

Mehr

Startzustand. Mögliche heuristische Funktionen:

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

Mehr

Informierte Suchverfahren

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

Mehr

Grundlagen der Künstlichen Intelligenz

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

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte 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

Mehr

2 Problemlösen und Suche

2 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

Mehr

Grundlagen der Künstlichen Intelligenz

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

Mehr

Einführung in die Methoden der Künstlichen Intelligenz. Suchverfahren / Uninformierte Suche

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

Mehr

Beweise aus dem Fach Grundzüge der Künstlichen Intelligenz

Beweise 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

Mehr

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

Mehr

Wissensbasierte Systeme 3. Problemlösen durch Suche

Wissensbasierte 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

Mehr

Beispiele. mit. Beispiel 2.3. Suche einen Weg von nach. Tiefensuche bzw. Breitensuche.

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

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

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

Mehr

Klausur zur Vorlesung Künstliche Intelligenz

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

Mehr

Wissensbasierte Suche

Wissensbasierte 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

Mehr

2 Problemlösen und Suche

2 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

Mehr

Einfacher Problemlösungsagent. Übersicht. Begriffsdefinitionen für Einfach-Probleme

Einfacher 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

Mehr

Künstliche Intelligenz

Kü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,

Mehr

Algorithmen & Komplexität

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

Mehr

Grundlagen der KI + Reasoning Agents

Grundlagen 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

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen 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

Mehr

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

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

Mehr

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

Mehr

Künstliche Intelligenz

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

Mehr

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.

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

Mehr

Zustände und Knoten. Vorgänger Information: Tiefe = 4 ΣKosten=4 Expandiert: ja. Zustand Aktion: right. Aktion: down

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

Mehr

1 topologisches Sortieren

1 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

Mehr

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

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

Mehr

Inhalt. Kognitive Systeme 1. Expansion eines impliziten Suchraums Netz aller möglichen Schritte. Impliziter Suchraum. Uninformierte Suche

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

Mehr

Kognitive Systeme 1. Uninformierte Suche. Dr.-Ing. Bernd Ludwig

Kognitive 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

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte 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

Mehr

Programmierung 2 Studiengang MI / WI

Programmierung 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

Mehr

9. Heuristische Suche

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

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

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

Mehr

Künstliche Intelligenz

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

Mehr

10. Übungsblatt zu Algorithmen I im SS 2010

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

Mehr

Graphentheorie. Vorkurs Informatik WS 2016/2017. Dennis Aumiller

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

Mehr

Intelligente Systeme

Intelligente 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

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 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

Mehr

Universitä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 / 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.

Mehr

Algorithmen I - Tutorium 28 Nr. 9

Algorithmen 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

Mehr

Heuristische Suchverfahren

Heuristische Suchverfahren Heuristische Suchverfahren Suchprozesse sind ein wichtiger Bestandteil unterschiedlicher Problemlöseverfahren z.b. Bestimmung der Konfliktmenge in Produktionssystemen Suche nach resolvierbaren Klauseln

Mehr

Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21.

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

Mehr

Datenstrukturen. einfach verkettete Liste

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

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 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

Mehr

Abschätzung der Suchbaumgröße

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

Mehr

WS 2009/10. Diskrete Strukturen

WS 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

Mehr

A O T. Grundlagen der Künstlichen Intelligenz

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

Mehr

Einführung in Suchverfahren

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

Mehr

Algorithmen & Datenstrukturen 2 Praktikum 3

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

Mehr

Grundlagen der Künstlichen Intelligenz

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

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Ferienkurs 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

Mehr

Kapitel 5: Suchverfahren: Backtracking

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

Mehr

als Bewertungsfunktion g(n) eines Knotens n wird der tatsächliche Weg vom Startzustand zu diesem Knoten benutzt

als 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

Mehr

9 Minimum Spanning Trees

9 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

Mehr

Algorithmen & Komplexität

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

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Einführung in die Informatik 2

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

Mehr

Programmierkurs Prolog, SS 2000

Programmierkurs 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

Mehr

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

Informatik II, SS 2016

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

Mehr

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Mehr

Hallo Welt für Fortgeschrittene

Hallo 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

Mehr

Intelligente Systeme. Suche

Intelligente 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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Ü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

Mehr

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

Mehr

Übersicht. Informierte (heuristische) Suche. Algorithmus Bester-Zuerst-Suche. Bester-Zuerst-Suche

Ü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

Mehr

Algorithmen und Datenstrukturen 1-5. Seminar -

Algorithmen 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

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

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

12. AuD Tafelübung T-C3

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

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

Mehr

Breitensuche BFS (Breadth First Search)

Breitensuche BFS (Breadth First Search) Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;

Mehr

Aufgabe 1 (Allgemeines)

Aufgabe 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

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

Mehr

Smart Graphics: Search 1

Smart Graphics: Search 1 Smart Graphics: Search 1 Lecture Smart Graphics Andreas Butz 23.11.2010 1 Über den Studiengang und das Forschungsgebiet Medieninformatik informieren Studenten, Interessenten sowie deren Familie und Freunde

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken

Mehr

8.1 Einleitung. Grundlagen der Künstlichen Intelligenz. 8.1 Einleitung. 8.2 Lokale Suchverfahren. 8.3 Zusammenfassung. Suchprobleme: Überblick

8.1 Einleitung. Grundlagen der Künstlichen Intelligenz. 8.1 Einleitung. 8.2 Lokale Suchverfahren. 8.3 Zusammenfassung. Suchprobleme: Überblick Grundlagen der Künstlichen Intelligenz 5. April 0 8. Suchalgorithmen: Lokale Suche Grundlagen der Künstlichen Intelligenz 8. Suchalgorithmen: Lokale Suche 8.1 Einleitung Malte Helmert Universität Basel

Mehr

Einführung in die Künstliche Intelligenz SS 18 Prof. Dr. J. Fürnkranz, Prof. Dr. K. Kersting

Einführung in die Künstliche Intelligenz SS 18 Prof. Dr. J. Fürnkranz, Prof. Dr. K. Kersting Einführung in die Künstliche Intelligenz SS 8 Prof. Dr. J. Fürnkranz, Prof. Dr. K. Kersting Beispiellösung für das. Übungsblatt (5.05.208) Aufgabe Agenten-Umgebung a) Eine beispielhafte PEAS-Beschreibung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

Mehr

Bäume 1. Thomas Röfer

Bäume 1. Thomas Röfer Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra

Mehr