Pathfinding. Prof. Dr. Taoufik Nouri

Size: px
Start display at page:

Download "Pathfinding. Prof. Dr. Taoufik Nouri"

Transcription

1 Pathfinding Prof. Dr. Taoufik Nouri

2 Pathfinding Depth First Search Breadth First Search Dijkstra A*

3 Pathfinding Pathfinding

4 AI-Game Engine Navigation 1:Soccer

5 Navigation 2: Raven

6 Pathfinding 1 Pathfinding is the path between two nodes of a graph. A graph is a set of points called nodes connected to each other through connections. There is an infinite number of paths from one node to another. Usually pathfinding is the shortest way between two nodes

7 Pathfinding 2 Graphs can have a cost associated to the connections like distances etc. This kind of graphs is called weighted graph. There is also, directional graphs: paths between nodes is considered one way. Graphs can be more complicated: Weighted directional graphs, you can not go back. A graph can be of any dimensions and any shapes

8 Pathfinding Very important for real world problems: 1. The airport system is a graph. What is the best flight from one city to another? 2. Traffic flow can be modeled with a graph. What are the shortest routes? 3. Traveling Salesman Problem: What is the best order to visit a list of cities in a graph?

9 Graph Representation v5 v4 v3 v6 We can use an adjacency matrix representation. v2 v1 v7 For each edge (u,v) we set A[u][v] to true; else it is false. If there are weights associated with the edges, insert those instead. v1 v2 v3 v4 v5 v6 v7 v v v3 v4 v5 v6 v7

10 Adjacency List v5 v4 v3 v6 We can use an adjacency list representation. v2 v1 v7 For each vertex we keep a list of adjacent vertices. If there are weights associated with the edges, that information must be stored as well. v1 v2 v4 v3 v2 v4 v5 v3 v6 v4 v6 v7 v3 v5 v4 v7 v6 v7 v6

11 Graph GraphNodes are indexed nodes see class GraphNode GraphNodeTypes.h class GraphEdge {protected: //An edge connects two nodes. Valid node indices are always positive. int m_ifrom; int m_ito; //the cost of traversing the edge double m_dcost; public: //ctors GraphEdge(int from, int to, double cost):m_dcost(cost), m_ifrom(from), m_ito(to) } see GraphEdgeTypes.h The graph can be a matrix or a lists

12 Pathfinding 3 This is a weighted graph Cities are nodes connected through roadsdistances-relief-terrain kante(saintgall, zurich, 80, Terrain etc). kante(zurich, basel, 85). kante(basel, bern, 100). kante(lausanne,fribourg,31). kante(lausanne, geneve, 100). kante(zurich, bern, 120). kante(bern, fribourg, 30). kante(bern, neuchatel, 48). kante(neuchatel, lausanne, 78). kante(zurich, solothurn, 99). kante(solothurn, biel, 27). kante(biel, neuchatel, 29).

13 Pathfinding 4 Usually, we define a graph as regularly spaced grid where we can travel to: N, NW, NE, S, SW, SE etc. Green is start position, Red is Target Note: There is no obstacle in our grid

14 Pathfinding 5 Here is a graph with obstacle Graph is a powerfull representation tool. But this power can be realized when they are operated upon by algorithms designed to explore them, either to find a specific node or to find a path berween nodes. this is what we will do next

15 General search algorithm Start with "frontier" = { (v,v) } Until frontier is empty remove an edge (n,m) from the frontier set mark n as parent of m mark m as visited if m = w, return otherwise for each edge <i,j> from m add (i, j) to the frontier» if j not previously visited

16 Questions Answer the following questions: What is pathfinding? Why is pathfinding useful or necessary what is a graph What is a weighted graph What are the traditional types of pathfinding methods

17 Pathfinding Depth First Search Breadth First Search Dijkstra A*

18 Depth First Search DFS Stack Parent >? 2->? 3->? 4->? 5->? 6->? Firt In Last Out

19 DFS Node 5 is marked Visited Stack Parent >? 2->? 3->? 4->? 5->5 6->? The edges leading from node 5 are placed on the Stack

20 DFS Node 2 is marked Visited Stack Parent >? 2->5 3->? 4->? 5->5 6->? Node 2 is pushed on the Stack, Node 5 is parent of 2

21 DFS Node 1 is marked Visited Stack Parent >2 2->5 3->? 4->? 5->5 6->? Node 1 is pushed on the stack, 2 is parent of 1

22 DFS Node 3 is marked Visited, OHH Node 3 is the Target, the algorithm exit Stack Parent >2 2->5 3->1 4->? 5->5 6->? Node 1 is parent of 3, Edge 1-3 is poped from the stack The path from S to T is stored in a vector m-route in the table parent. A method getpathtotarget will extract this information and return a vector What about the path 5-4-3

23 DFS Depth limitation is the major problem of DFS The path is not allways the shortest It is easy to implement using recursion Some situation DFS will make spagethi if not restricted in depth see GraphAlgorithms.h implementation

24 DFS in Action

25 Breadth First Search BFS The BFS fans out from the source node and examines each of the nodes ist edges lead to before fanning out from those nodes and examining all the edges they connect to and so on. look at that!!!

26 BFS Queue Parent 1->? 2->? 3->? 4->? 5->? 6->? 5-5 First In First Out

27 BFS Node 6, 4 and 2 are marked Visited Queue Parent 1->? 2->? 3->? 4->? 5->5 6->? The edges faning from node 5 are placed on the Queue

28 BFS Node 6 is marked Visited Queue Parent 1->? 2->? 3->? 4->5 5->5 6-> Node 6 pointed to node 4(visited), Node 6 is not placed on the Queue

29 BFS Node 4 is marked Visited Queue Parent 1->? 2->5 3->? 4->5 5->5 6-> The edges leading from node 4 to 3 are placed on the Queue

30 Node 3 is marked Visited BFS Queue Parent 1->? 2->5 3->4 4->5 5->5 6-> Edge 4-3 is next. Node 4 is noted to be node 3's parent. Node 3 is Target. BFS exits. m_routes Vector work back through the parents from T to S and we get

31 BFS in Action BFS returns allways the shortest path if exist. Simple to implement Very Slow on large graphe. Doesn't consider path cost! see GraphAlgorithms.h implementation

32 DFS-BFS Summary Depth first search begins by diving down as quickly as possible to the leaf nodes of the tree (or graph). Traversal can be done by: visiting the node first, then its children (pre-order traversal): a b d h e i j c f k g visiting the children first, then the node (post-order traversal): h d i j e b k f g c a visiting some of the children, then the node, then the other children (in-order traversal) h d b i e j a f k c g Breadth-first search traverses the tree or graph level-by-level, visiting the nodes of the tree above in the order a b c d e f g h i j k.

33 Exercices How are the traditional types of pathfinding methods implemented Implement in a pseudo-code the following pathfinding techniques:bfs, DFS

34 Shortest Path Trees SPT Dijkstra's Algorithm This is a weighted graph. Weight is distance, cost etc. How to find the shortest path from a source node to a Target node?

35 Dijkstra's Algorithm T T SPT 5 S Starting from node 5, source.

36 Dijkstra's Algorithm T T SPT 5 2 S The algorithm take edge 2 and 6. Added the shortest 2 (1.9) to the SPT

37 Dijkstra's Algorithm T T SPT 5 2 S 6 The algorithm examines edge 2-3, the cost to node 3 is 5( ). The cost to from node 5 to 6 is 3.0. Node 6 is added to SPT

38 Dijkstra's Algorithm T T SPT 5 2 S 6 The process is repeated once more. Cost to node 4 is less( contra to node 3. Node 4 is added to SPT

39 Dijkstra's Algorithm T T SPT 5 2 S The shortest path is: with the cost The process is repeated once more. Cost to node 3 is more( contra to node 3. Node 3 is added to SPT through 5-2-3

40 Djikstra's Algorithm Use a priority queue a data structure in which the item with the smallest "value" is always first items can be added in any order Use the "value" of an edge as the total cost of the path through that edge always expand the node with the least cost so far If an edge leads to a previously expanded node compare costs if greater, ignore edge if lesser, replace path and estimate at node with new value "Greedy" algorithm

41 Dijskra's Algoritm in Action In this case the cost is the distance, from source to target see GraphAlgorithms.h implementation

42 Best First Search A* Dijkstra's algorithm searches by minimizing the cost of the path in a directed weighet graph. In some situations, we have partial knowledge of the structure of the search space that can be applied to guide search. It can be improved by estimating the cost to the target. This estimate is usually referred to as a heuristic and the algorithm is called Best-first search (A*). We can inspect all the currently-available transitions, and rank them on the basis of our partial knowledge. Here high rank means that the transition looks promising in relation to the goal.

43 Best First Search A* If good Heuristics are used,a* is guaranteed to give the optimal paths. Heuristics: any cost estimate to the goal, ex. Euclidean distance, Block distance, it can be coupled with penalties or bonuses for traveling on a specific type of terrain(jungle, desert, forest,plain ). Performance of A* is based on the value of Heuristics Poor heuristics provides bad performance with A*

44 Best First Search A* Heuristic estimates Max(dx, dy) Manhatten or Blocks (dx+dy) Euclidean sqrt(dx*dx + dy*dy)

45 Best First Search A* You are at A going to Target T. f(t) = g(a) + h(a). f(t) total cost, g(a) cost until A, h(a) estimate cost from A to T. We continue our search with the lowest f(t).

46 A* in Action see GraphAlgorithms.h implementation

47 Comparison No walls

48 Comparison with walls

49 Questions about A* What is A*? What are the advantages of A*? What are the disadvantages of A*? How can heuristics be used to help A*?

50 Exercices Implement in a pseudo-code the following pathfinding techniques: DJ,A*

51 Summary We introduced the concepts of : node, edge and graph. Pathfinding: BFS, BFS, DJ and best-first search A* Their Advantages/Desadvantages Demo and comparison For source code/exe files s. [1]

52 Exercices 1. Solve with hand some path finder using these four algorithms. 2. Implement the DFS Method 3. Implement the A* search Method 4. Create a weighted Graph and walk through it step by step with Dijkstra's 5. Try Dijkstra's on graph with negative weights 6. Experiment with pathfinder chapt. 5 [1]

53 Exercices 7. Implement or read the implementations of DFS, BFS, Dijkstra and A* 8. Read the solution of exercice 7 in chap. 5 [1]

54 Other Implementations In the next slide, you have the best search first using prolog. It is compact and efficient. Demo-- Vortrag

55 Exercice: Best search using prolog pfad_mit_breitensuche(anfp, EndP, Route) :- weg([[anfp]], EndP, R), reverse(r, Route ). /* to use this programme, write: go(saintgall,geneve,route). moeglicher_knoten( AnfP, Kantenzug, ZP) :- The answer look like this: Route = [saintgall,zurich,bern,fribourg,lausanne,geneve] */ kante(saintgall, zurich, 80). kante(zurich, basel, 85). kante(basel, bern, 100). kante(lausanne,fribourg,31). kante(lausanne, geneve, 100). kante(zurich, bern, 120). kante(bern, fribourg, 30). kante(bern, neuchatel, 48). kante(neuchatel, lausanne, 178). kante(zurich, solothurn, 99). kante(solothurn, biel, 27). kante(biel, neuchatel, 29). % Best first search kurz_pfad(routes, Dest, Route) :- shortest(routes, Shortest, RestRoutes), proceed(shortest, Dest, RestRoutes, Route). % proceed finds all the legal extensions to the path and adds them to the list pfad_ohne_zyklus(anfp, EndP):- weg(anfp, EndP, [AnfP]). (kante(anfp, ZP, Dist); kante(zp, AnfP, Dist)), not(element(zp, Kantenzug)), weg(zp, EndP, [ZP Kantenzug]). element(e, [E Rest]). element(e, [Kopf Rest]):- element(e, Rest). pfad_mit_knotenliste(anfp, EndP, Pfad):- weg(anfp, EndP, [], P), reverse(p, Pfad). weg(x, X, Kantenzug, [X Kantenzug]). weg(anfp, EndP, T, Kantenzug) :- collect_found(s, L) :-getnext(x),!,collect_found([x S], L). collect_found(l, L). getnext(x) :- retract(found(x)),!, X \== mark. (kante(anfp, ZP,Dist); kante(zp, AnfP,Dist)), not(element(zp, Kantenzug)). append([], Liste, Liste). append([kopf Rest], Liste, [Kopf Ergebnis]):- append( Rest, Liste, Ergebnis). pfad(x, X). pfad(anfp, EndP):- (kante(anfp, ZP,Dist); kante(zp, AnfP,Dist) ), pfad(zp, EndP). weg(x, X, Kantenzug). weg(anfp, EndP, Kantenzug):- append([], Liste, Liste). append([kopf Rest], Liste, [Kopf Ergebnis]) :-append( Rest, Liste, Ergebnis). moeglicher_knoten(anfp, T, ZP), weg(zp, EndP, [AnfP T], Kantenzug). moeglicher_knoten(anfp, Kantenzug, ZP) :- (kante(anfp, ZP,Dist); kante(zp, AnfP,Dist)), not(element(zp, Kantenzug)). reverse([], []). reverse([k Rest], Neueliste):-reverse( Rest, TL),append(TL, [K], Neueliste). proceed(r(dist, Route), Dest,_, Route):- Route =[Dest _]. % r(m, P) M is the total length of the path and P is the list of places visited proceed(r(dist, [Last Trail]), Dest, Routes, Route):findall(r(D1, [Z, Last Trail]), legalnode(last, Trail, Z, Dist, D1), List), % write(route),write(dist),nl, % write(routes),nl, % write([list]),nl, % write([d1,z,dist,d1,last,trail]),nl, append(list, Routes, NewRoutes), kurz_pfad(newroutes, Dest, Route). % shortest returns the shortest path on the list shortest([route Routes], Shortest, [Route Rest]):shortest(Routes, Shortest, Rest), shorter(shortest, Route),!. shortest([route Rest], Route, Rest). shorter(r(m1,_), r(m2,_)):- M1 < M2. % legal node adds the distance to the next town legalnode(x, Trail, Y, Dist, NewDist) :- (kante(x, Y, Z); kante(y, X, Z)), legal(y, Trail), NewDist is Dist + Z. legal(x, []). % legal ist gleich not member or not element legal(x, [H T]) :- X \== H, legal(x, T). % To start write: go(zurich,geneve,j). go(start, Dest, Route) :- kurz_pfad([r(0, [Start])], Dest, R), reverse(r, Route),!.

56 Pseudo-code of DFS

57 Pseudo-code of BFS

58 Pseudo-code of DJ

59 Pseudo-code of A*

60 Pseudo-code of Trace

9/17/2015 7:56 AM. CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective

9/17/2015 7:56 AM. CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective The goal of this assignment is to implement and compare the performance of Breadth-first search (BFS), Depth-First Search

More information

The Shortest Path Problem

The Shortest Path Problem The Shortest Path Problem 1 Shortest-Path Algorithms Find the shortest path from point A to point B Shortest in time, distance, cost, Numerous applications Map navigation Flight itineraries Circuit wiring

More information

CPSC 436D Video Game Programming

CPSC 436D Video Game Programming CPSC 436D Video Game Programming Strategy & Adversarial Strategy Strategy Given current state, determine BEST next move Short term: best among immediate options Long term: what brings something closest

More information

CSE 100 Minimum Spanning Trees Prim s and Kruskal

CSE 100 Minimum Spanning Trees Prim s and Kruskal CSE 100 Minimum Spanning Trees Prim s and Kruskal Your Turn The array of vertices, which include dist, prev, and done fields (initialize dist to INFINITY and done to false ): V0: dist= prev= done= adj:

More information

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2. Problem Solving Agents. Problem Solving Agents: Assumptions

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2. Problem Solving Agents. Problem Solving Agents: Assumptions Class Overview COMP 3501 / COMP 4704-4 Lecture 2 Prof. JGH 318 Problem Solving Agents Problem Solving Agents: Assumptions Requires a goal Assume world is: Requires actions Observable What actions? Discrete

More information

The goal of this assignment is to implement and test Breadth-first search (BFS) on a simple navigation problem (path-finding).

The goal of this assignment is to implement and test Breadth-first search (BFS) on a simple navigation problem (path-finding). CSCE 420 Programing Assignment #1 due: Thurs, Sept 18 (by start of class) Objective The goal of this assignment is to implement and test Breadth-first search (BFS) on a simple navigation problem (path-finding).

More information

ME/CS 132: Advanced Robotics: Navigation and Vision

ME/CS 132: Advanced Robotics: Navigation and Vision ME/CS 132: Advanced Robotics: Navigation and Vision Lecture #5: Search Algorithm 1 Yoshiaki Kuwata 4/12/2011 Lecture Overview Introduction Label Correcting Algorithm Core idea Depth-first search Breadth-first

More information

UNIT Name the different ways of representing a graph? a.adjacencymatrix b. Adjacency list

UNIT Name the different ways of representing a graph? a.adjacencymatrix b. Adjacency list UNIT-4 Graph: Terminology, Representation, Traversals Applications - spanning trees, shortest path and Transitive closure, Topological sort. Sets: Representation - Operations on sets Applications. 1. Name

More information

Algorithm Design (8) Graph Algorithms 1/2

Algorithm Design (8) Graph Algorithms 1/2 Graph Algorithm Design (8) Graph Algorithms / Graph:, : A finite set of vertices (or nodes) : A finite set of edges (or arcs or branches) each of which connect two vertices Takashi Chikayama School of

More information

UNIT III TREES. A tree is a non-linear data structure that is used to represents hierarchical relationships between individual data items.

UNIT III TREES. A tree is a non-linear data structure that is used to represents hierarchical relationships between individual data items. UNIT III TREES A tree is a non-linear data structure that is used to represents hierarchical relationships between individual data items. Tree: A tree is a finite set of one or more nodes such that, there

More information

Notes. Video Game AI: Lecture 5 Planning for Pathfinding. Lecture Overview. Knowledge vs Search. Jonathan Schaeffer this Friday

Notes. Video Game AI: Lecture 5 Planning for Pathfinding. Lecture Overview. Knowledge vs Search. Jonathan Schaeffer this Friday Notes Video Game AI: Lecture 5 Planning for Pathfinding Nathan Sturtevant COMP 3705 Jonathan Schaeffer this Friday Planning vs localization We cover planning today Localization is just mapping a real-valued

More information

Understand graph terminology Implement graphs using

Understand graph terminology Implement graphs using raphs Understand graph terminology Implement graphs using djacency lists and djacency matrices Perform graph searches Depth first search Breadth first search Perform shortest-path algorithms Disjkstra

More information

Informed search strategies (Section ) Source: Fotolia

Informed search strategies (Section ) Source: Fotolia Informed search strategies (Section 3.5-3.6) Source: Fotolia Review: Tree search Initialize the frontier using the starting state While the frontier is not empty Choose a frontier node to expand according

More information

Computer Science and Software Engineering University of Wisconsin - Platteville. 3. Search (Part 1) CS 3030 Lecture Notes Yan Shi UW-Platteville

Computer Science and Software Engineering University of Wisconsin - Platteville. 3. Search (Part 1) CS 3030 Lecture Notes Yan Shi UW-Platteville Computer Science and Software Engineering University of Wisconsin - Platteville 3. Search (Part 1) CS 3030 Lecture Notes Yan Shi UW-Platteville Read: Textbook Chapter 3.7-3.9,3.12, 4. Problem Solving as

More information

Section 08: Solutions

Section 08: Solutions Section 08: Solutions 1. Limitations and properties of shortest path algorithms (a) Draw an example of a directed graph where (a) there exists a path between two vertices s and t but (b) there is no shortest

More information

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2: Search. Problem Solving Agents

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2: Search. Problem Solving Agents Class Overview COMP 3501 / COMP 4704-4 Lecture 2: Search Prof. 1 2 Problem Solving Agents Problem Solving Agents: Assumptions Requires a goal Assume world is: Requires actions Observable What actions?

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 04 / 13 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Depth First Search (DFS) Shortest path Shortest weight path (Dijkstra's

More information

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC)

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC) SET - 1 II B. Tech I Semester Supplementary Examinations, May/June - 2016 PART A 1. a) Write a procedure for the Tower of Hanoi problem? b) What you mean by enqueue and dequeue operations in a queue? c)

More information

CSE 100: GRAPH ALGORITHMS

CSE 100: GRAPH ALGORITHMS CSE 100: GRAPH ALGORITHMS Dijkstra s Algorithm: Questions Initialize the graph: Give all vertices a dist of INFINITY, set all done flags to false Start at s; give s dist = 0 and set prev field to -1 Enqueue

More information

Chapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1

Chapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs 2011 Pearson Addison-Wesley. All rights reserved 14 A-1 Terminology G = {V, E} A graph G consists of two sets A set V of vertices, or nodes A set E of edges A subgraph Consists of a subset

More information

Spanning Trees, greedy algorithms. Lecture 22 CS2110 Fall 2017

Spanning Trees, greedy algorithms. Lecture 22 CS2110 Fall 2017 1 Spanning Trees, greedy algorithms Lecture 22 CS2110 Fall 2017 1 We demo A8 Your space ship is on earth, and you hear a distress signal from a distance Planet X. Your job: 1. Rescue stage: Fly your ship

More information

Route planning / Search Movement Group behavior Decision making

Route planning / Search Movement Group behavior Decision making Game AI Where is the AI Route planning / Search Movement Group behavior Decision making General Search Algorithm Design Keep a pair of set of states: One, the set of states to explore, called the open

More information

TIE Graph algorithms

TIE Graph algorithms TIE-20106 1 1 Graph algorithms This chapter discusses the data structure that is a collection of points (called nodes or vertices) and connections between them (called edges or arcs) a graph. The common

More information

Chapter 3: Solving Problems by Searching

Chapter 3: Solving Problems by Searching Chapter 3: Solving Problems by Searching Prepared by: Dr. Ziad Kobti 1 Problem-Solving Agent Reflex agent -> base its actions on a direct mapping from states to actions. Cannot operate well in large environments

More information

Graph Representation DFS BFS Dijkstra A* Search Bellman-Ford Floyd-Warshall Iterative? Non-iterative? MST Flow Edmond-Karp

Graph Representation DFS BFS Dijkstra A* Search Bellman-Ford Floyd-Warshall Iterative? Non-iterative? MST Flow Edmond-Karp Charles Lin Graph Representation DFS BFS Dijkstra A* Search Bellman-Ford Floyd-Warshall Iterative? Non-iterative? MST Flow Edmond-Karp Adjacency Matrix bool way[100][100]; cin >> i >> j; way[i][j] = true;

More information

Pathfinding. Advaith Siddharthan

Pathfinding. Advaith Siddharthan Pathfinding Advaith Siddharthan Context What is Intelligence? Rational? Search Optimisation Reasoning Impulsive? Quicker response Less predictable Personality/Emotions: Angry/Bored/Curious Overview The

More information

Spanning Trees 4/19/17. Prelim 2, assignments. Undirected trees

Spanning Trees 4/19/17. Prelim 2, assignments. Undirected trees /9/7 Prelim, assignments Prelim is Tuesday. See the course webpage for details. Scope: up to but not including today s lecture. See the review guide for details. Deadline for submitting conflicts has passed.

More information

Spanning Trees. Lecture 22 CS2110 Spring 2017

Spanning Trees. Lecture 22 CS2110 Spring 2017 1 Spanning Trees Lecture 22 CS2110 Spring 2017 1 Prelim 2, assignments Prelim 2 is Tuesday. See the course webpage for details. Scope: up to but not including today s lecture. See the review guide for

More information

Algorithms and Path Planning

Algorithms and Path Planning Algorithms and Path Planning Topics Simple Search Depth First Search Breadth First Search Dijkstra s Search Greedy Search A* Search Classes of interest ECE400: Computer Systems Programming CS4700: Foundations

More information

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro CMU-Q 15-381 Lecture 2: Search problems Uninformed search Teacher: Gianni A. Di Caro RECAP: ACT RATIONALLY Think like people Think rationally Agent Sensors? Actuators Percepts Actions Environment Act like

More information

ARTIFICIAL INTELLIGENCE. Pathfinding and search

ARTIFICIAL INTELLIGENCE. Pathfinding and search INFOB2KI 2017-2018 Utrecht University The Netherlands ARTIFICIAL INTELLIGENCE Pathfinding and search Lecturer: Silja Renooij These slides are part of the INFOB2KI Course Notes available from www.cs.uu.nl/docs/vakken/b2ki/schema.html

More information

Graph and A* Analysis

Graph and A* Analysis Graph and A* Analysis Kyle Ray Entertainment Arts and Engineering University of Utah Salt Lake City, Ut 84102 kray@eng.utah.edu Abstract: Pathfinding in video games is an essential tool to have for both

More information

CMPUT 396 Sliding Tile Puzzle

CMPUT 396 Sliding Tile Puzzle CMPUT 396 Sliding Tile Puzzle Sliding Tile Puzzle 2x2 Sliding Tile States Exactly half of the states are solvable, the other half are not. In the case of 2x2 puzzles, I can solve it if I start with a configuration

More information

1. Graph and Representation

1. Graph and Representation Chapter Graphs Tree Root Direction: parent-child relationships No cycles Graph Vertices + Edges No tree restrictions Examples World Wide Web Maps. Graph and Representation A graph G: a pair (V, E) vertices

More information

Trees. Arash Rafiey. 20 October, 2015

Trees. Arash Rafiey. 20 October, 2015 20 October, 2015 Definition Let G = (V, E) be a loop-free undirected graph. G is called a tree if G is connected and contains no cycle. Definition Let G = (V, E) be a loop-free undirected graph. G is called

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 4 Graphs Definitions Traversals Adam Smith 9/8/10 Exercise How can you simulate an array with two unbounded stacks and a small amount of memory? (Hint: think of a

More information

Uninformed Search Methods

Uninformed Search Methods Uninformed Search Methods Search Algorithms Uninformed Blind search Breadth-first uniform first depth-first Iterative deepening depth-first Bidirectional Branch and Bound Informed Heuristic search Greedy

More information

CSE 373 Final Exam 3/14/06 Sample Solution

CSE 373 Final Exam 3/14/06 Sample Solution Question 1. (6 points) A priority queue is a data structure that supports storing a set of values, each of which has an associated key. Each key-value pair is an entry in the priority queue. The basic

More information

10/31/18. About A6, Prelim 2. Spanning Trees, greedy algorithms. Facts about trees. Undirected trees

10/31/18. About A6, Prelim 2. Spanning Trees, greedy algorithms. Facts about trees. Undirected trees //8 About A, Prelim Spanning Trees, greedy algorithms Lecture CS Fall 8 Prelim : Thursday, November. Visit exams page of course website and read carefully to find out when you take it (: or 7:) and what

More information

Spanning Trees, greedy algorithms. Lecture 20 CS2110 Fall 2018

Spanning Trees, greedy algorithms. Lecture 20 CS2110 Fall 2018 1 Spanning Trees, greedy algorithms Lecture 20 CS2110 Fall 2018 1 About A6, Prelim 2 Prelim 2: Thursday, 15 November. Visit exams page of course website and read carefully to find out when you take it

More information

Module 11: Additional Topics Graph Theory and Applications

Module 11: Additional Topics Graph Theory and Applications Module 11: Additional Topics Graph Theory and Applications Topics: Introduction to Graph Theory Representing (undirected) graphs Basic graph algorithms 1 Consider the following: Traveling Salesman Problem

More information

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value 1 Possible implementations Sorted linear implementations o Appropriate if

More information

ROOT A node which doesn t have a parent. In the above tree. The Root is A. LEAF A node which doesn t have children is called leaf or Terminal node.

ROOT A node which doesn t have a parent. In the above tree. The Root is A. LEAF A node which doesn t have children is called leaf or Terminal node. UNIT III : DYNAMIC STORAGE MANAGEMENT Trees: Binary tree, Terminology, Representation, Traversals, Applications. Graph: Terminology, Representation, Traversals Applications - spanning trees, shortest path.

More information

Outline. Graphs. Divide and Conquer.

Outline. Graphs. Divide and Conquer. GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.

More information

Topic 16: Graphs in Game AI

Topic 16: Graphs in Game AI Topic 16: Graphs in Game AI CSSE CITS4242 Game Design and Multi-Media Graphs in Game AI When developing the AI for games, one of the most common uses of graphs is to represent a network of paths an agent

More information

CAP 4630 Artificial Intelligence

CAP 4630 Artificial Intelligence CAP 4630 Artificial Intelligence Instructor: Sam Ganzfried sganzfri@cis.fiu.edu 1 http://www.ultimateaiclass.com/ https://moodle.cis.fiu.edu/ 2 Solving problems by search 3 8-puzzle 4 8-queens 5 Search

More information

Graphs & Digraphs Tuesday, November 06, 2007

Graphs & Digraphs Tuesday, November 06, 2007 Graphs & Digraphs Tuesday, November 06, 2007 10:34 PM 16.1 Directed Graphs (digraphs) like a tree but w/ no root node & no guarantee of paths between nodes consists of: nodes/vertices - a set of elements

More information

CSE 100: GRAPH ALGORITHMS

CSE 100: GRAPH ALGORITHMS CSE 100: GRAPH ALGORITHMS 2 Graphs: Example A directed graph V5 V = { V = E = { E Path: 3 Graphs: Definitions A directed graph V5 V6 A graph G = (V,E) consists of a set of vertices V and a set of edges

More information

Unweighted Graphs & Algorithms

Unweighted Graphs & Algorithms Unweighted Graphs & Algorithms Zachary Friggstad Programming Club Meeting References Chapter 4: Graph (Section 4.2) Chapter 22: Elementary Graph Algorithms Graphs Features: vertices/nodes/dots and edges/links/lines

More information

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT PROJECT 3 500 Internal Error problems Hopefully all resolved (or close to) P3P1 grades are up (but muted) Leave canvas comment Emails tomorrow End of quarter GRAPHS

More information

CSC 172 Data Structures and Algorithms. Lecture 24 Fall 2017

CSC 172 Data Structures and Algorithms. Lecture 24 Fall 2017 CSC 172 Data Structures and Algorithms Lecture 24 Fall 2017 ANALYSIS OF DIJKSTRA S ALGORITHM CSC 172, Fall 2017 Implementation and analysis The initialization requires Q( V ) memory and run time We iterate

More information

CS 512: Comments on Graph Search 16:198:512 Instructor: Wes Cowan

CS 512: Comments on Graph Search 16:198:512 Instructor: Wes Cowan CS 512: Comments on Graph Search 16:198:512 Instructor: Wes Cowan 1 General Graph Search In general terms, the generic graph search algorithm looks like the following: def GenerateGraphSearchTree(G, root):

More information

Graph. Vertex. edge. Directed Graph. Undirected Graph

Graph. Vertex. edge. Directed Graph. Undirected Graph Module : Graphs Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS E-mail: natarajan.meghanathan@jsums.edu Graph Graph is a data structure that is a collection

More information

Lecture 4: Search 3. Victor R. Lesser. CMPSCI 683 Fall 2010

Lecture 4: Search 3. Victor R. Lesser. CMPSCI 683 Fall 2010 Lecture 4: Search 3 Victor R. Lesser CMPSCI 683 Fall 2010 First Homework 1 st Programming Assignment 2 separate parts (homeworks) First part due on (9/27) at 5pm Second part due on 10/13 at 5pm Send homework

More information

Pathfinding Algorithms and Implementations on Grid Map

Pathfinding Algorithms and Implementations on Grid Map Pathfinding Algorithms and Implementations on Grid Map Steven Andrew / 13509061 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

More information

- Logic and Algorithms - Graph Algorithms

- Logic and Algorithms - Graph Algorithms Fundamentals of Computer Sience and Digital Communications - Logic and Algorithms - Graph Algorithms Johan Larsson Marco Loh 22..24 Overview What is a Graph? Representations of Graphs Breadth-first Search

More information

Chapter 9. Priority Queue

Chapter 9. Priority Queue Chapter 9 Priority Queues, Heaps, Graphs Spring 2015 1 Priority Queue Priority Queue An ADT in which only the item with the highest priority can be accessed 2Spring 2015 Priority Depends on the Application

More information

Backtracking and Branch-and-Bound

Backtracking and Branch-and-Bound Backtracking and Branch-and-Bound Usually for problems with high complexity Exhaustive Search is too time consuming Cut down on some search using special methods Idea: Construct partial solutions and extend

More information

18: GRAPH DATA STRUCTURES. Introduction

18: GRAPH DATA STRUCTURES. Introduction 18: GRAPH DATA STRUCTURES Introduction... 1 Describing graphs... Directed Graphs... 3 Traversing a graph... EXERCISE: Traversal... 8 Implementing a Graph... 9 EXERCISE: Looking at a Graph... 1 EXERICISE:

More information

ME512: Mobile Robotics Path Planning Algorithms. Atul Thakur, Assistant Professor Mechanical Engineering Department IIT Patna

ME512: Mobile Robotics Path Planning Algorithms. Atul Thakur, Assistant Professor Mechanical Engineering Department IIT Patna ME512: Mobile Robotics Path Planning Algorithms Atul Thakur, Assistant Professor Mechanical Engineering Department IIT Patna Path Planning Problem Given Robot state Obstacle positions Robot capabilities

More information

2. True or false: even though BFS and DFS have the same space complexity, they do not always have the same worst case asymptotic time complexity.

2. True or false: even though BFS and DFS have the same space complexity, they do not always have the same worst case asymptotic time complexity. 1. T F: Consider a directed graph G = (V, E) and a vertex s V. Suppose that for all v V, there exists a directed path in G from s to v. Suppose that a DFS is run on G, starting from s. Then, true or false:

More information

Graphs. The ultimate data structure. graphs 1

Graphs. The ultimate data structure. graphs 1 Graphs The ultimate data structure graphs 1 Definition of graph Non-linear data structure consisting of nodes & links between them (like trees in this sense) Unlike trees, graph nodes may be completely

More information

Graph Traversal Algorithms

Graph Traversal Algorithms Graph Traversal Algorithms Classes that implement the algorithms Posn, CartPt, Place The classes Posn, CartPt, nad Place are those you have designed in the earlier assignments. The Place class has a name

More information

ROOT: A node which doesn't have a parent. In the above tree. The Root is A.

ROOT: A node which doesn't have a parent. In the above tree. The Root is A. TREE: A tree is a finite set of one or more nodes such that there is a specially designated node called the Root, and zero or more non empty sub trees T 1, T 2...T k, each of whose roots are connected

More information

Graphs Data Structures

Graphs Data Structures Graphs Data Structures Introduction We looked previously at the binary tree data structure, which provides a useful way of storing data for efficient searching. In a binary tree, each node can have up

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 5 Exploring graphs Adam Smith 9/5/2008 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne Puzzles Suppose an undirected graph G is connected.

More information

CSS 343 Data Structures, Algorithms, and Discrete Math II. Graphs II. Yusuf Pisan

CSS 343 Data Structures, Algorithms, and Discrete Math II. Graphs II. Yusuf Pisan CSS 343 Data Structures, Algorithms, and Discrete Math II Graphs II Yusuf Pisan 2 3 Shortest Path: Dijkstra's Algorithm Shortest path from given vertex to all other vertices Initial weight is first row

More information

Algorithm Design Techniques (III)

Algorithm Design Techniques (III) Algorithm Design Techniques (III) Minimax. Alpha-Beta Pruning. Search Tree Strategies (backtracking revisited, branch and bound). Local Search. DSA - lecture 10 - T.U.Cluj-Napoca - M. Joldos 1 Tic-Tac-Toe

More information

Basic Graph Definitions

Basic Graph Definitions CMSC 341 Graphs Basic Graph Definitions A graph G = (V,E) consists of a finite set of vertices, V, and a finite set of edges, E. Each edge is a pair (v,w) where v, w V. V and E are sets, so each vertex

More information

Traveling Salesman Problem Parallel Distributed Tree Search

Traveling Salesman Problem Parallel Distributed Tree Search Traveling Salesman Problem Parallel Distributed Tree Search Ned Nedialkov Dept. of Computing and Software McMaster University, Canada nedialk@mcmaster.ca March 2012 Outline Traveling salesman problem (TSP)

More information

SPANNING TREES. Lecture 21 CS2110 Spring 2016

SPANNING TREES. Lecture 21 CS2110 Spring 2016 1 SPANNING TREES Lecture 1 CS110 Spring 016 Spanning trees What we do today: Calculating the shortest path in Dijkstra s algorithm Look at time complexity of shortest path Definitions Minimum spanning

More information

Java II Graph Algorithms II

Java II Graph Algorithms II Java II Graph Algorithms II Bernd Kiefer Bernd.Kiefer@dfki.de Deutsches Forschungszentrum für künstliche Intelligenz Heuristic Search Pictures from http://www-cs-students.stanford.edu/~amitp/gameprog.html

More information

SELF-BALANCING SEARCH TREES. Chapter 11

SELF-BALANCING SEARCH TREES. Chapter 11 SELF-BALANCING SEARCH TREES Chapter 11 Tree Balance and Rotation Section 11.1 Algorithm for Rotation BTNode root = left right = data = 10 BTNode = left right = data = 20 BTNode NULL = left right = NULL

More information

Graphs: A graph is a data structure that has two types of elements, vertices and edges.

Graphs: A graph is a data structure that has two types of elements, vertices and edges. Graphs: A graph is a data structure that has two types of elements, vertices and edges. An edge is a connection between two vetices If the connection is symmetric (in other words A is connected to B B

More information

R10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May

R10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May www.jwjobs.net R10 SET - 1 II B. Tech I Semester, Supplementary Examinations, May - 2012 (Com. to CSE, IT, ECC ) Time: 3 hours Max Marks: 75 *******-****** 1. a) Which of the given options provides the

More information

Online Graph Exploration

Online Graph Exploration Distributed Computing Online Graph Exploration Semester thesis Simon Hungerbühler simonhu@ethz.ch Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich Supervisors: Sebastian

More information

CS Algorithms and Complexity

CS Algorithms and Complexity CS 350 - Algorithms and Complexity Graph Theory, Midterm Review Sean Anderson 2/6/18 Portland State University Table of contents 1. Graph Theory 2. Graph Problems 3. Uninformed Exhaustive Search 4. Informed

More information

CS 5522: Artificial Intelligence II

CS 5522: Artificial Intelligence II CS 5522: Artificial Intelligence II Search Algorithms Instructor: Wei Xu Ohio State University [These slides were adapted from CS188 Intro to AI at UC Berkeley.] Today Agents that Plan Ahead Search Problems

More information

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 19 January, 2018

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 19 January, 2018 DIT411/TIN175, Artificial Intelligence Chapter 3: Classical search algorithms CHAPTER 3: CLASSICAL SEARCH ALGORITHMS DIT411/TIN175, Artificial Intelligence Peter Ljunglöf 19 January, 2018 1 DEADLINE FOR

More information

Uniformed Search (cont.)

Uniformed Search (cont.) Uniformed Search (cont.) Computer Science cpsc322, Lecture 6 (Textbook finish 3.5) Sept, 16, 2013 CPSC 322, Lecture 6 Slide 1 Lecture Overview Recap DFS vs BFS Uninformed Iterative Deepening (IDS) Search

More information

Search with Costs and Heuristic Search

Search with Costs and Heuristic Search Search with Costs and Heuristic Search Alan Mackworth UBC CS 322 Search 3 January 14, 2013 Textbook 3.5.3, 3.6, 3.6.1 1 Today s Lecture Recap from last lecture, combined with AIspace demo Search with costs:

More information

TIE Graph algorithms

TIE Graph algorithms TIE-20106 239 11 Graph algorithms This chapter discusses the data structure that is a collection of points (called nodes or vertices) and connections between them (called edges or arcs) a graph. The common

More information

Lecture 9 Graph Traversal

Lecture 9 Graph Traversal Lecture 9 Graph Traversal Euiseong Seo (euiseong@skku.edu) SWE00: Principles in Programming Spring 0 Euiseong Seo (euiseong@skku.edu) Need for Graphs One of unifying themes of computer science Closely

More information

TA: Jade Cheng ICS 241 Recitation Lecture Note #9 October 23, 2009

TA: Jade Cheng ICS 241 Recitation Lecture Note #9 October 23, 2009 TA: Jade Cheng ICS 241 Recitation Lecture Note #9 October 23, 2009 Recitation #9 Question: For each of these problems about a subway system, describe a weighted graph model that can be used to solve the

More information

Basic Search Algorithms

Basic Search Algorithms Basic Search Algorithms Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Abstract The complexities of various search algorithms are considered in terms of time, space, and cost

More information

Chapter 5.4 Artificial Intelligence: Pathfinding

Chapter 5.4 Artificial Intelligence: Pathfinding Chapter 5.4 Artificial Intelligence: Pathfinding Introduction Almost every game requires pathfinding Agents must be able to find their way around the game world Pathfinding is not a trivial problem The

More information

A System for Bidirectional Robotic Pathfinding

A System for Bidirectional Robotic Pathfinding A System for Bidirectional Robotic Pathfinding Tesca K. Fitzgerald Department of Computer Science, Portland State University PO Box 751 Portland, OR 97207 USA tesca@cs.pdx.edu TR 12-02 November 2012 Abstract

More information

Set 2: State-spaces and Uninformed Search. ICS 271 Fall 2015 Kalev Kask

Set 2: State-spaces and Uninformed Search. ICS 271 Fall 2015 Kalev Kask Set 2: State-spaces and Uninformed Search ICS 271 Fall 2015 Kalev Kask You need to know State-space based problem formulation State space (graph) Search space Nodes vs. states Tree search vs graph search

More information

Brute Force: Selection Sort

Brute Force: Selection Sort Brute Force: Intro Brute force means straightforward approach Usually based directly on problem s specs Force refers to computational power Usually not as efficient as elegant solutions Advantages: Applicable

More information

CSci 231 Final Review

CSci 231 Final Review CSci 231 Final Review Here is a list of topics for the final. Generally you are responsible for anything discussed in class (except topics that appear italicized), and anything appearing on the homeworks.

More information

CSC Intro to Intelligent Robotics, Spring Graphs

CSC Intro to Intelligent Robotics, Spring Graphs CSC 445 - Intro to Intelligent Robotics, Spring 2018 Graphs Graphs Definition: A graph G = (V, E) consists of a nonempty set V of vertices (or nodes) and a set E of edges. Each edge has either one or two

More information

Thus, it is reasonable to compare binary search trees and binary heaps as is shown in Table 1.

Thus, it is reasonable to compare binary search trees and binary heaps as is shown in Table 1. 7.2 Binary Min-Heaps A heap is a tree-based structure, but it doesn t use the binary-search differentiation between the left and right sub-trees to create a linear ordering. Instead, a binary heap only

More information

Graph Algorithms. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico.

Graph Algorithms. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico. Graph Algorithms Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico May, 0 CPD (DEI / IST) Parallel and Distributed Computing 0-0-0 / Outline

More information

Chapter 3. A problem-solving agent is a kind of goal-based agent. It decide what to do by finding sequences of actions that lead to desirable states.

Chapter 3. A problem-solving agent is a kind of goal-based agent. It decide what to do by finding sequences of actions that lead to desirable states. Chapter 3 A problem-solving agent is a kind of goal-based agent. It decide what to do by finding sequences of actions that lead to desirable states. A problem can be defined by four components : 1. The

More information

Lesson 1 Introduction to Path Planning Graph Searches: BFS and DFS

Lesson 1 Introduction to Path Planning Graph Searches: BFS and DFS Lesson 1 Introduction to Path Planning Graph Searches: BFS and DFS DASL Summer Program Path Planning References: http://robotics.mem.drexel.edu/mhsieh/courses/mem380i/index.html http://dasl.mem.drexel.edu/hing/bfsdfstutorial.htm

More information

UNIT 4 Branch and Bound

UNIT 4 Branch and Bound UNIT 4 Branch and Bound General method: Branch and Bound is another method to systematically search a solution space. Just like backtracking, we will use bounding functions to avoid generating subtrees

More information

CS6301 Programming and Data Structures II Unit -5 REPRESENTATION OF GRAPHS Graph and its representations Graph is a data structure that consists of following two components: 1. A finite set of vertices

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 04 / 06 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Definition Terminology two ways to represent edges in implementation traversals

More information

This course is intended for 3rd and/or 4th year undergraduate majors in Computer Science.

This course is intended for 3rd and/or 4th year undergraduate majors in Computer Science. Lecture 9 Graphs This course is intended for 3rd and/or 4th year undergraduate majors in Computer Science. You need to be familiar with the design and use of basic data structures such as Lists, Stacks,

More information

Data Structures and Algorithms

Data Structures and Algorithms Data Structures and Algorithms CS5-5S-6 Graph Traversals BFS & DFS David Galles Department of Computer Science University of San Francisco 6-: Graph Traversals Visit every vertex, in an order defined by

More information