Spatial Networks. Learning Objectives After this segment, students will be able to Describe societal importance of spatial networks Limitations of spatial.

Slides:



Advertisements
Similar presentations
Three-Step Database Design
Advertisements

Problem solving with graph search
Chap 6: Spatial Networks 6. 1 Example Network Databases 6
Introduction to Algorithms Lecture 12 Prof. Constantinos Daskalakis CLRS
Lecture 11: Code Optimization CS 540 George Mason University.
Problem Solving by Searching Copyright, 1996 © Dale Carnegie & Associates, Inc. Chapter 3 Spring 2007.
Discrete Math for Computer Science. Mathematical Model Real-world Problem Computerized Solution Abstract Model Transformed Model picture of the real worldpicture.
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
CSE 380 – Computer Game Programming Pathfinding AI
Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or.
ITEC 320 Lecture 12 Higher level usage of pointers.
The Shortest Path Problem. Shortest-Path Algorithms Find the “shortest” path from point A to point B “Shortest” in time, distance, cost, … Numerous.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
1 Networking through Linux Partha Sarathi Dasgupta MIS Group Indian Institute of Management Calcutta.
Nearest Neighbor. Predicting Bankruptcy Nearest Neighbor Remember all your data When someone asks a question –Find the nearest old data point –Return.
Lecture 23 (mini-lecture): A Brief Introduction to Network Analysis Parts of the Network Analysis section of this lecture were borrowed from a UC Berkeley.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lectures 3 Tuesday, 9/25/01 Graph Algorithms: Part 1 Shortest.
Graphs. Graph definitions There are two kinds of graphs: directed graphs (sometimes called digraphs) and undirected graphs Birmingham Rugby London Cambridge.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
Week 7. Feature relationship and topology Oct. 17 th, 2005.
Chap8: Trends in DBMS 8.1 Database support for Field Entities 8.2 Content-based retrieval 8.3 Introduction to spatial data warehouses 8.4 Summary.
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
Route Planning Vehicle navigation systems, Dijkstra’s algorithm, bidirectional search, transit-node routing.
Map Analysis with Networks Francisco Olivera, Ph.D., P.E. Department of Civil Engineering Texas A&M University Some of the figures included in this presentation.
Distance Indexing on Road Networks A summary Andrew Chiang CS 4440.
Spatial Networks. Outline 1.Motivation, and use cases 2.Example spatial networks 3.Conceptual model 4.Need for SQL extensions 5.CONNECT statement 6.RECURSIVE.
CECS 474 Computer Network Interoperability WAN Technologies & Routing
Data Structures Using C++ 2E
Chapter 1: Introduction to Spatial Databases 1.1 Overview 1.2 Application domains 1.3 Compare a SDBMS with a GIS 1.4 Categories of Users 1.5 An example.
Lab 3 How’d it go?.
Geography and CS Philip Chan. How do I get there? Navigation Which web sites can give you turn-by-turn directions?
IST 210 Introduction to Spatial Databases. IST 210 Evolution of acronym “GIS” Fig 1.1 Geographic Information Systems (1980s) Geographic Information Science.
Distance. Euclidean Distance Minimum distance from a source (Value NoData) Input grid must have at least one source cell with the rest of the grid.
Representing and Using Graphs
Algorithm Course Dr. Aref Rashad February Algorithms Course..... Dr. Aref Rashad Part: 5 Graph Algorithms.
Shortest Path Problem Weight of the graph –Nonnegative real number assigned to the edges connecting to vertices Weighted graphs –When a graph.
CS 415 – A.I. Slide Set 5. Chapter 3 Structures and Strategies for State Space Search – Predicate Calculus: provides a means of describing objects and.
MA/CSSE 473 Day 28 Dynamic Programming Binomial Coefficients Warshall's algorithm Student questions?
Group 8: Denial Hess, Yun Zhang Project presentation.
Presentation Template KwangSoo Yang Florida Atlantic University College of Engineering & Computer Science.
Graphs A ‘Graph’ is a diagram that shows how things are connected together. It makes no attempt to draw actual paths or routes and scale is generally inconsequential.
Analytical Queries on Road Networks: An Experimental Evaluation of Two System Architectures Shangfu PengHanan Samet Department.
Spatial Networks. Outline 1.Motivation, and use cases 2.Example spatial networks 3.Conceptual model 4.Need for SQL extensions 5.CONNECT statement 6.RECURSIVE.
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
Trends: Spatio-temporal graphs Introduction to Spatial Computing.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
1 Algorithms CSCI 235, Fall 2015 Lecture 32 Graphs I.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
1 Overview of Query Evaluation Chapter Outline  Query Optimization Overview  Algorithm for Relational Operations.
Database Laboratory TaeHoon Kim. /18 Work Progress.
Spanning Trees Dijkstra (Unit 10) SOL: DM.2 Classwork worksheet Homework (day 70) Worksheet Quiz next block.
NETWORK ANALYSIS.
Network Analyst. Network A network is a system of linear features that has the appropriate attributes for the flow of objects. A network is typically.
Spatial Networks.
Graphs Breadth First Search & Depth First Search
Algorithms Detour - Shortest Path
Graphs Breadth First Search & Depth First Search
I206: Lecture 15: Graphs Marti Hearst Spring 2012.
Spatial Networks.
Graphs Chapter 11 Objectives Upon completion you will be able to:
Problem Spaces & Search
Overview of Query Evaluation
Efficiently Estimating Travel Time
Problem Spaces & Search
Graphs.
Graphs.
Graphs.
Graphs.
Presentation transcript:

Spatial Networks

Learning Objectives After this segment, students will be able to Describe societal importance of spatial networks Limitations of spatial querying for spatial networks

Navigation Systems Historical Navigation is a core human activity for ages! Trade-routes, Routes for Armed-Forces Recent Consumer Platforms Devices: Phone Apps, In-vehicle, “GPS”, … WWW: Google Maps, MapQuest, … Services Display map around current location Compute the shortest route to a destination Help drivers follow selected route

Location Based Services Location: Where am I ? –Geo-code: Place Name (or Street Address)  –Reverse Geo-code:  Place Name Directory: What is around me? –Where is the nearest Clinic? Restaurant? Taxi? –List all Banks within 1 mile. Routes: How do I get there? –What is the shortest path to get there? –…–…

Spatial Networks & Modern Society Transportation, Energy, Water, Communications, …

Limitations of Spatial Querying OGIS Simple Feature Types Supports Geometry (e.g., Points, LineStrings, Polygons, …) However, lack Graphs data type, shortest_path operator Traditional SQL Supports select, project, join, statistics Lacked transitive closure, e.g., network analysis (next slide) SQL3 added recursion & transitive closure

Spatial Network Analysis Route ( A start-point, Destination(s) ) –What is the shortest path to get there? –What is the shortest path to cover a set of destinations? Allocation ( A set of service centers, A set of customers) –Assign customers to nearest service centers –Map service area for each service center Site Selection ( A set of customers, Number of new service centers) –What are best locations for new service centers ?

Learning Objectives After this segment, students will be able to Describe 3 simple spatial networks List simple queries on example spatial networks

Spatial Network Query Example 1.Find shortest path from a start-point to a destination 2.Find nearest hospital by driving distance 3.Find shortest route to deliver packages to a set of homes 4.Allocate customers to nearest service center

Railway Network & Queries 1.Find the number of stops on the Yellow West (YW) route. 2.List all stops which can be reached from Downtown Berkeley (2) 3.List the routes numbers that connect Downtown Berkeley (2) & Daly City (5) 4.Find the last stop on the Blue West (BW) route

River Network & Queries 1.List the names of all direct and indirect tributaries of Mississippi river 2.List the direct tributaries of Colorado 3.Which rivers could be affected if there is a spill in North Platte river

Spatial Networks: Three Examples A Road Network A River Network A Railway Network

Learning Objectives After this segment, students will be able to Describe Conceptual models of Spatial Networks List & compare alternative Graph models

Data Models of Spatial Networks 1.Conceptual Model Information Model: Entity Relationship Diagrams Mathematical Model: Graphs 2.Logical Data Model Abstract Data types Custom Statements in SQL 3.Physical Data Model Storage-Structures Algorithms for common operations

Modeling Roadmaps Many Concepts, e.g. Roads (or streets, avenues) Road-Intersections Road-Segments Turns …

An Entity Relationship Diagram

Graph Models A Simple Mathematical Model A graph G = (V,E) V = a finite set of vertices E = a set of edges model a binary relationship between vertices Example

A Graph Model of River Network Nodes = rivers Edges = A river falls into another river

Pros and Cons of Graph Models Strength Well developed mathematics for reasoning Rich set of computational algorithms and data-structures Weakness Models only one binary relationship Implications A. Difficult to model multiple relationships, e.g., connect, turn B. Multiple graph models possible for a spatial network

Modeling Turns in Roadmaps Approach 1: Model turns as a set of connects Approach 2: Use hyper-edges (and hyper-graphs) Approach 3: Annotate graph node with turn information

Alternative Graph Models for Roadmaps Choice 1: Nodes = road-intersections Edge (A, B) = road-segment connects adjacent road-intersections A, B Choice 2: Nodes = (directed) road-segments Edge (A,B) = turn from road-segment A to road-segment B Choice 3: Nodes = roads Edge(A,B) = road A intersects_with road B

Learning Objectives After this segment, students will be able to Describe need for SQL extensions List two ways to extend query languages

Data Models of Spatial Networks 1.Conceptual Model: Entity Relationship Diagrams, Graphs 2.Logical Data Model & Query Languages Abstract Data types Custom Statements in SQL 3.Physical Data Model: Storage-Structures, Algorithms

Transitive Closure Consider a graph G = (V, E) Transitive closure(G) = G* = (V*, E*), where V* = V (A, B) in E* if and only if there is a path from A to B in G.

Transitive Closure - Example Example G has 5 nodes and 5 edges G* has 5 nodes and 9 edges Note edge (1,4) in G* for path (1, 2, 3, 4) in G.

Limitations of Original SQL Recall Relation algebra based languages Ex. Original SQL Can not compute transitive closure, e.g., shortest path

Supporting Graphs in SQL Abstract Data Type (user defined) SQL3 May include shortest path operation! Custom Statements SQL2 - CONNECT clause in SELECT statement For directed acyclic graphs, e.g. hierarchies SQL3 - WITH RECURSIVE statement Transitive closure on general graphs

Learning Objectives After this segment, students will be able to Describe CONNECT clause in SQL SELECT Use it to query Directed Acyclic Graphs

Querying Graphs: Overview Relational Algebra Can not express transitive closure queries Two ways to extend SQL to support graphs 1.Abstract Data Types 2.Custom Statements –SQL2 - CONNECT BY clause(s) in SELECT statement –SQL3 - WITH RECURSIVE statement

CONNECT BY : Input, Output Input: (a) Edges of a directed acyclic graph G (b) Start Node S, e.g., Missouri (c) Travel Direction Output: Transitive closure of G Ex. Predecessors of S = Missouri Ex. Successors of S = Missouri

Directed Edges: Tabular Representation SourceDest P1Platte P2Platte Y1Yellowstone Y2Yellowstone PlatteMissouri YellowstoneMissouri Mississippi OhioMississippi RedMississippi ArkansasMississippi Table: Falls_Into

SourceDest P1Platte P2Platte Y1Yellowstone Y2Yellowstone PlatteMissouri YellowstoneMissouri Mississippi OhioMississippi RedMississippi ArkansasMississippi Table: Falls_Into CONNECT BY– PRIOR - START WITH SELECT source FROM Falls_Into CONNECT BY PRIOR source = dest START WITH dest =“Missouri” Q? What does CONNECT BY … PRIOR specify? Direction of travel Example: From Dest to Source Alternative: From Source to Dest

SourceDest P1Platte P2Platte Y1Yellowstone Y2Yellowstone PlatteMissouri YellowstoneMissouri Mississippi OhioMississippi RedMississippi ArkansasMississippi Table: Falls_Into CONNECT BY– PRIOR - START WITH SELECT source FROM Falls_Into CONNECT BY PRIOR source = dest START WITH dest =“Missouri” SELECT dest FROM Falls_Into CONNECT BY source = PRIOR dest START WITH source =“Missouri” Choice 1: Travel from Dest to Source Ex. List direct & indirect tributaries of Missouri. Choice 2: Travel from Source to Dest Ex. Which rivers are affected by spill in Missouri?

Execution Trace – Step 1 SourceDest P1Platte P2Platte Y1Yellowstone Y2Yellowstone PlatteMissouri YellowstoneMissouri Mississippi OhioMississippi RedMississippi ArkansasMississippi Table: Falls_Into SELECT source FROM Falls_Into CONNECT BY PRIOR source = dest START WITH dest = Missouri 1.Prior Result = SELECT * FROM Falls_Into WHERE (dest = Missouri ) SourceDest PlatteMissouri YellowstoneMissouri Table: “Prior ”

Execution Trace – Step 2. SourceDest P1Platte P2Platte Y1Yellowstone Y2Yellowstone PlatteMissouri YellowstoneMissouri Mississippi OhioMississippi RedMississippi ArkansasMississippi Table: Falls_Into SELECT source FROM Falls_Into CONNECT BY PRIOR source = dest START WITH dest = Missouri 2. Iteratively add Join(Prior_Result.source = Falls_Into.dest) SourceDest PlatteMissouri YellowstoneMissouri Prior Result SourceDest P1Platte P2Platte Y1Yellowstone Y2Yellowstone PlatteMissouri YellowstoneMissouri Prior Result

Learning Objectives After this segment, students will be able to Describe RECURSIVE statement in SQL3 Use it to query Graphs

Querying Graphs: Overview Relational Algebra Can not express transitive closure queries Two ways to extend SQL to support graphs 1.Abstract Data Types 2.Custom Statements –SQL2 - CONNECT clause(s) in SELECT statement –SQL3 - WITH RECURSIVE statement

WITH RECURSIVE: Input, Output Input: (a) Edges of a directed graph G (b) Sub-queries to –Initialize results –Recursively grow results –Additional constraints Output: Transitive closure of G Ex. Predecessors of a node Ex. Successors of a node

Syntax of WITH RECURSIVE Statement WITH RECURSIVE X(source,dest) AS (SELECT source,dest FROM R ) UNION (SELECT R.source, X.dest FROM R, X WHERE R.dest=X.source ) Description of Result Table Initialization Query Recursive Query to grow result

Example Input and Output WITH RECURSIVE X(source,dest) AS (SELECT source,dest FROM R ) UNION (SELECT R.source, X.dest FROM R, X WHERE R.dest=X.source )

SQL3 Recursion Example - Meaning Initialize X by (SELECT source,dest FROM R ) Recursively grow X by (SELECT R.source, X.dest FROM R, X WHERE R.dest=X.source ) Infer X(a,c) from R (a,b),X(b,c) Infer X(1,3) from R(1,2),X(2,3) Infer X(2,4) from R(2,3),X(3,4) Infer X(5,4) from R(5,3),X(3,4) Infer X(1,4) from R(1,5),X(5,4)

Learning Objectives After this segment, students will be able to List main-memory data-structures for Graphs Describe disk-based file-structures for Graphs

Data Models of Spatial Networks 1.Conceptual Model : Entity Relationship Diagrams, Graphs 2.Logical Data Model : Abstract Data types, Custom Statements in SQL 3.Physical Data Model Storage: Data-Structures, File-Structures Algorithms for common operations

Main Memory Data-Structures Adjacency matrix M[A, B] = 1 if and only if edge(vertex A, vertex B) exists Adjacency list : maps a vertex to a list of its successors

Disk-based Tables Normalized tables one for vertices, other for edges Denormalized one table for nodes with adjacency lists

File-Structures: Partition Graph into Disk Blocks Which partitioning reduces disk I/O for graph operations? Choice 1: Geometric partition Choice 2: min-cut Graph Partition Choice 2 cuts fewer edges and is preferred Assuming uniform querying popularity across edges

Graph Based Storage Methods Consider two disk-paging of Minneapolis major roads Non-white edges => node pair in same page White edge are cut-edges Node partitions on right has fewer cut-edges and is preferred

Exercise: Graph Based Storage Methods Consider spatial network on right If a disk page holds 3 records, which partitioning will has fewest cut-edges? (a)(1, 2, 3), (4,5,6) (b)(2, 3, 4), (1, 5, 6) (c)(1, 2, 6), (3, 4, 5) (d)(1, 3, 5), (2, 4, 6)

Learning Objectives After this segment, students will be able to List building blocks for graph queries Compare 2 algorithms for a connectivity queries

Data Models of Spatial Networks 1.Conceptual Model : Entity Relationship Diagrams, Graphs 2.Logical Data Model : Abstract Data types, Custom Statements in SQL 3.Physical Data Model Storage-Structures Algorithms for common operations

Query Processing for Spatial Networks Query Processing DBMS decomposes a query into building blocks Keeps a couple of strategy for each building block Selects most suitable one for a given situation Building blocks Connectivity(A, B): Is node B reachable from node A? Shortest path(A, B): Identify least cost path from node A to node B

Algorithms Main memory Connectivity: Breadth first search, depth first search Shortest path: Dijkstra’s algorithm, A* Disk-based Shortest path - Hierarchical routing algorithm Connectivity strategies are in SQL3

Algorithms for Connectivity Query Breadth first search Visit descendent by generation Children before grandchildren Example: 1 - (2,4) - (3, 5) Depth first search Try a path till dead-end Backtrack to try different paths Like a maze game Example: Note backtrack from 3 to 2 5 3

Learning Objectives After this segment, students will be able to List 2 algorithms for shortest path queries Compare those two algorithms

Shortest Path Algorithms Iterate Expand most promising descent node Dijkstra’s: try closest descendent to self A* : try closest descendent to both destination and self Update current best path to each node, if a better path is found Till destination node is expanded

Shortest Path Algorithms Dijkstra’s algorithm Identify paths to descendent Each iteration Expand descendent with smallest cost path so far Update current best path to each node, if a better path is found Till destination node is expanded Correct assuming Fixed, positive and additive edge costs Sub-path optimality

Shortest Path strategies -1 (Example) Consider shortest_path(1,5) for graph in Figure 6.2(a), pp. 154 Iteration 1 expands node 1 and edges (1,2), (1,4) set cost(1,2) = sqrt(8); cost(1,4) = sqrt(10) using Edge table in Fig. 6.2(d) Iteration 2 expands least cost node 2 and edges (2,3), (2,4) set cost(1,3) = sqrt(8) + sqrt(5) Iteration 3 expands least cost node 4 and edges (4,5) set cost(1,5) = sqrt(10) + sqrt(5) Iteration 4 expands node 3 and Iteration 5 stops node 5. Answer is the path (1-4-5)

Figure 6.2 for examples Fig 6.2

Shortest Path Strategies - 2 Best first algorithm Similar to Dijkstra’s algorithm with one change Cost(node) = actual_cost(source, node) + estimated_cost(node, destination) Estimated_cost should be an underestimate of actual cost Example - Euclidean distance Given effective estimated_cost() function, it is faster than Dijkstra’s algorithm

Shortest Path Strategies - 2 (Example) Revisit shortest_path(1,5) for graph in Figure 6.2(a) Iteration 1 expands node 1 and edges (1,2), (1,4) Set actual_cost(1,2) = sqrt(8); actual_cost(1,4) = sqrt(10); Estimated_cost(2,5) = 5; estimated_cost(4,5) = sqrt(5) Iteration 2 expands least cost node 4 and edges (4,5) Set actual_cost(1,5) = sqrt(10) + sqrt(5), estimated_cost(5,5) = 0 Iteration 3 expands node 5 Answer is the path (1-4-5)

Shortest Path Strategies - 3 Dijkstra’s and Best first algorithms Work well when entire graph is loaded in main memory Otherwise their performance degrades substantially Hierarchical Routing Algorithms Works with graphs on secondary storage Loads small pieces of the graph in main memories Can compute least cost routes

Shortest Path Strategies - 3 (Key Ideas) Key ideas behind Hierarchical Routing Algorithm Fragment graphs - pieces of original graph obtained via node partitioning Boundary nodes - nodes of with edges to two fragments Boundary graph - a summary of original graph Contains Boundary nodes Boundary edges: edges across fragments or paths within a fragment

Shortest Path Strategies – 3 (Insight) A Summary of Optimal path in original graph can be computed Using Boundary graph and 2 fragments The summary can be expanded into optimal path in original graph Examining a fragments overlapping with the path Loading one fragment in memory at a time

Shortest Path Strategies – 3 (Illustration of the Algorithm) Figure 6.7(a) - fragments of source and destination nodes Figure 6.7(b) - computing summary of optimal path using Boundary graph and 2 fragments Note use of boundary edges only in the path computation Figure 6.8(a) - The summary of optimal path using boundary edges Figure 6.8(b) Expansion back to optimal path in original graph

Hierarchical Routing Algorithm-Step 1 Step 1: Choose Boundary Node Pair Minimize COST(S,Ba)+COST(Ba,Bd)+COST(Bd,D) Determining Cost May Be Non-Trivial Fig 6.7(a)

Hierarchical Routing- Step 2 Step 2: Examine Alternative Boundary Paths Between Chosen Pair (Ba,Bd) of boundary nodes Fig 6.7(b)

Hierarchical Routing- Step 2 Result Step 2 Result: Shortest Boundary Path Fig 6.8(a)

Hierarchical Routing- Step 3 Step 3: Expand Boundary Path: (B a1,B d ) -> B a1 Bd a2 B a3 B da4 …B d Boundary Edge (B ij,B j ) ->fragment path (B i1,N 1 N 2 N 3 …….N k,B j ) Fig 6.8(a)

Summary Spatial Networks are a fast growing applications of SDBs Spatial Networks are modeled as graphs Graph queries, like shortest path, are transitive closure not supported in relational algebra SQL features for transitive closure: CONNECT BY, WITH RECURSIVE Graph Query Processing Building blocks - connectivity, shortest paths Strategies - Best first, Dijkstra’s and Hierarchical routing Storage and access methods Minimize CRR

Investigating Spatial Big Data for Next Generation of Routing Services Acknowledgement: UMN Interdisciplinary Doctoral Fellowship ( ) work at Center for Transportation Studies

From Traditional Roadmaps Source: Google Maps Dinky town Roadmap Corresponding Digital Representation Intersection between 5 th Ave SE and 4 th St Intersection between 5 th Ave SE and 5 th St 5 th Ave SE edge Attributes of 5 th Ave SE road segment between N4 and N7 N7 N4 US Road Network only few Gigabytes

To Temporally Detailed (TD) Roadmaps Per minute speed/travel time values 100 million road segments in US Can reach Petabytes very quickly NAVTEQ’s highly compressed weekly speed profile data Source: ESRI and NAVTEQ

Spatial Network Partition

Spatial Network Partition – Traditional

Spatial Network Partition – CCAM

Dijkstra’s vs. A* Dijkstra’s AlgorithmA* Algorithm

Dijkstra’s vs. A* Dijkstra’s AlgorithmA* Algorithm

Dijkstra’s vs. A* Dijkstra’s AlgorithmA* Algorithm

Dijkstra’s vs. A* Dijkstra’s AlgorithmA* Algorithm

Dijkstra’s vs. A* Dijkstra’s AlgorithmA* Algorithm

Dijkstra’s vs. A* Arrived! Dijkstra’s AlgorithmA* Algorithm

Dijkstra’s vs. A* Dijkstra’s Algorithm

Dijkstra’s vs. A* Dijkstra’s Algorithm

Dijkstra’s vs. A* Arrived! Dijkstra’s Algorithm

Shortest Path Algorithms Iterate Expand most promising node Dijkstra’s: try closest descendent to self A* : try closest descendent to both destination and self Update current best path to each node, if a better path is found Till destination node is expanded Correct assuming Sub-path optimality Fixed, positive and additive edge costs A* : underestimate function

Breadth First Search vs. Depth First Search BFS AlgorithmDFS Algorithm

Breadth First Search vs. Depth First Search BFS AlgorithmDFS Algorithm

Breadth First Search vs. Depth First Search BFS AlgorithmDFS Algorithm

Breadth First Search vs. Depth First Search BFS AlgorithmDFS Algorithm

Breadth First Search vs. Depth First Search BFS AlgorithmDFS Algorithm

Breadth First Search vs. Depth First Search Arrived! BFS AlgorithmDFS Algorithm

Breadth First Search vs. Depth First Search BFS Algorithm

Breadth First Search vs. Depth First Search BFS Algorithm

Breadth First Search vs. Depth First Search BFS Algorithm

Breadth First Search vs. Depth First Search BFS Algorithm

Breadth First Search vs. Depth First Search BFS Algorithm Arrived!