Haitao Wang Utah State University SoCG 2017, Brisbane, Australia

Slides:



Advertisements
Similar presentations
Single Source Shortest Paths
Advertisements

The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions.
Graphs: MSTs and Shortest Paths David Kauchak cs161 Summer 2009.
PLANAR SHORTEST PATH & R-DIVISIONS Dwyane George March 10, 2015.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Dijkstra’s Algorithm Slide Courtesy: Uwash, UT 1.
Approximate Distance Oracles for Geometric Spanner Networks Joachim Gudmundsson TUE, Netherlands Christos Levcopoulos Lund U., Sweden Giri Narasimhan Florida.
Using Dijkstra’s Algorithm to Find a Shortest Path from a to z 1.
1 Quantum query complexity of some graph problems C. DürrUniv. Paris-Sud M. HeiligmanNational Security Agency P. HøyerUniv. of Calgary M. MhallaInstitut.
Fibonacci Heaps. Analysis FibonacciAnalysis.ppt Video  iew/cop5536sahni
CSE 373: Data Structures and Algorithms Lecture 21: Graphs V 1.
Graphs – Part III CS 367 – Introduction to Data Structures.
COMP108 Algorithmic Foundations Greedy methods
Introduction to Algorithms
Shortest Paths and Minimum Spanning Trees
Lecture 13 Shortest Path.
Binomial heaps, Fibonacci heaps, and applications
CSE 2331/5331 Topic 9: Basic Graph Alg.
Lecture 22 Minimum Spanning Tree
Fibonacci Heaps Remove arbitrary is useful in (for example) correspondence structures and may also be used to do an increase key in a min structure (remove.
Shortest Path Problems
More Graph Algorithms.
Graph Algorithm.
Enumerating Distances Using Spanners of Bounded Degree
Greedy Algorithms / Dijkstra’s Algorithm Yin Tat Lee
Bart M. P. Jansen June 3rd 2016, Algorithms for Optimization Problems
Randomized Algorithms CS648
SINGLE-SOURCE SHORTEST PATHS
A* Path Finding Ref: A-star tutorial.
CSE 373: Data Structures and Algorithms
Computing Shortest Path amid Pseudodisks
Shortest Path Problems
Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA
Computing the Visibility Polygon of an Island in a Polygonal Domain
Fibonacci Heaps Remove arbitrary is useful in (for example) correspondence structures.
Quickest Visibility Queries in Polygonal Domains
Shortest Paths and Minimum Spanning Trees
Covering Uncertain Points in a Tree
On the Geodesic Centers of Polygonal Domains
Minimizing the Aggregate Movements for Interval Coverage
1.3 Modeling with exponentially many constr.
Slide Courtesy: Uwash, UT
Haitao Wang Utah State University WADS 2017, St. John’s, Canada
CSE 373: Data Structures and Algorithms
An O(n log n)-Time Algorithm for the k-Center Problem in Trees
Range Queries on Uncertain Data
Joseph S.B. Mitchell, Stony Brook University
Aggregate-Max Nearest Neighbor Searching in the Plane
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
CSE 373: Data Structures and Algorithms
Computing Shortest Paths among Curved Obstacles in the Plane
Chapter 24: Single-Source Shortest Paths
Visibility and Ray Shooting Queries in Polygonal Domains
Weighted Graphs & Shortest Paths
Dynamic Graph Algorithms
Shortest Path Problems
Weak Visibility Queries of Line Segments in Simple Polygons
L1 Shortest Path Queries among Polygonal Obstacles in the Plane
CSE 373 Data Structures and Algorithms
Slide Courtesy: Uwash, UT
Chapter 24: Single-Source Shortest Paths
CSE 417: Algorithms and Computational Complexity
Binomial heaps, Fibonacci heaps, and applications
The Greedy Approach Young CS 530 Adv. Algo. Greedy.
Warm Up – Tuesday Find the critical times for each vertex.
Lecture 12 Shortest Path.
Lecture 14 Minimum Spanning Tree (cont’d)
Lecture 10 Graph Algorithms
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
Presentation transcript:

Haitao Wang Utah State University SoCG 2017, Brisbane, Australia Bicriteria Rectilinear Shortest Paths among Rectilinear Obstacles in the Plane Haitao Wang Utah State University SoCG 2017, Brisbane, Australia

The rectilinear minimum-link path problem Input: a rectilinear domain P of n vertices and h holes, and two points s and t Output: a rectilinear minimum-link s-t path t s

The rectilinear shortest path problem Input: a rectilinear domain P of n vertices and h holes, and two points s and t Output: a rectilinear shortest s-t path t s

Bicriteria: a shortest minimum-link path The shortest path among all minimum-link paths t s

Bicriteria: a minimum-link shortest path The minimum-link path among all shortest paths t s

Question: Does there always exists a path that is both a shortest min-link path and a min-link shortest path? Simple rectilinear polygons (no holes): Yes! With holes: No! s t

Three types of bicriteria paths Min-link shortest paths Shortest min-link paths Minimum-cost paths The cost of a path: a non-decreasing function of both the length and the number of edges of the path One-point queries s is given in the input, and t is a query point Two-point queries Both s and t are query points

Previous work: for all three types of bicriteria paths Finding a single path O(n2) time, Yang et al., 1992 O(n log2n) time and O(n log n) space, Yang et al., 1995 O(n log1.5n) time and space, Yang et al., 1995 O(n log1.5n) time and O(n log n) space, Chen et al., 2001 One-point queries, Chen et al., 2001 Preprocessing: O(n log1.5n) time and O(n log n) space Query: O(log n) time Two-point queries, Chen et al., 2001 Preprocessing: O(n2 log2n) time and space Query: O(log2 n) time

A rectilinear domain of n vertices and h holes h could be much smaller than n Complexities better measured by h instead of by n e.g., O(n2) vs. O(n + h2) n = 39 h = 3

Our results: Finding a single path O(n2) time, Yang et al., 1992 O(n log2n) time and O(n log n) space, Yang et al., 1995 O(n log1.5n) time and space, Yang et al., 1995 O(n log1.5n) time and O(n log n) space, Chen et al., 2001 Our results: Find an error in all the previous algorithms Correct the error: Min-link shortest paths: O(n log1.5n) and O(n log n) space Shortest min-link paths and min-cost paths: O(n2 log1.5n) and O(n2 log n) space Further improvement: Min-link shortest paths: O(n + h log1.5h) and O(n + h log h) space Shortest min-link paths and min-cost paths: O(n + h2 log1.5h) and O(n + h2 log h) space

Our results: Queries

A “path-preserving” graph, Clarkson et al. 87’ Cut-lines Steiner points V: the set of all vertices of P; G(V): the graph, O(n log n) nodes and edges t s

Observations on G(V) Why “path-preserving”? A shortest s-t path in G(V) is a shortest s-t path in P, Clarkson et al. 87’ For finding a bicriteria path: G(V) contains a target path from s to t, such that if we follow the path and apply a dragging operation on each edge, then we can obtain a bicriteria path, Yang et al. 96’ t h f d e b c s a

The algorithm, Yang et al., 96’ Run Dijkstra’s algorithm on G(v) from s and apply the dragging operation on each visited edge Maintain at most eight paths at each node For min-link shortest path: use the lexicographical vector (L(π), D(π)) as the key for any path π L(π): the length of π D(π): the number of links of π

The error L(π1) = L(π2), D(π1) = 4, D(π2) = 5 Yang et al: It is not necessary to maintain π2 at p since D(π1) < D(π2) Not correct!! π2 can lead to a better path to t Our correction: If the D values of two paths of the same type differ by one, then both may need to be maintained At most 16 paths need to be maintained at each node (for min-link shortest paths) O(n) paths for other two bicriteria paths t p π1 π2 s

Further improvement Goal: Make complexities depend only on h, in addition to O(n) E.g., O(n log1.5 n)  O(n + h log1.5 h) The main tool of the previous algorithm is G(V) of size O(n log n) Our idea for improvement Use a smaller graph G(B) of size O(h log h) B: a set of O(h) backbone points G(B) is built w.r.t. B

The corridor structure of P The vertical decomposition of P, VD(P) Extend each vertical edge until the boundary of P

The corridor structure of P Consider the dual graph G of the VD(P) Keep removing the degree-one nodes from G Keep contracting the degree-two nodes

The corridor structure of P The remaining graph G’ is called “corridor graph” Each vertex of G’ defines a “junction rectangle” Each edge of G’ defines a “corridor”

The corridor structure of P Each corridor is a simple polygon, and has two doors connecting with its neighboring junction rectangles O(h) corridors

Defining backbone points on corridors An open corridor has 4 backbone points, two on each door A closed corridor has 2 backbone points, one on each door backbone points d2 w2 d2 d1 w1 d1 open closed

The reduced path-preserving graph G(B) G(B) is defined w.r.t. the set B of all backbone points (including s and t), in the same way as G(V) defined w.r.t. V In addition, each closed corridor defines a corridor edge in G(B) which is an edge connecting p and q, with weight equal to the length of a shortest p-to-q path in the corridor Path-preserving: A shortest s-t path in G(B) is a shortest s-t path in P q p

The algorithm Run Dijkstra’s algorithm on G(B) by performing dragging operations on ordinary edges of G(B) The key difference: For each corridor edge, perform a new type of operation: corridor-path generating operation The main challenge of our approach Need to implement it in O(log n) time q p Question: Can we simply connect p to q by an arbitrary bicriteria path in the corridor? NO!! s

The corridor-path generating operations a is to the left of p a is above p q q a a p p s s q q p p a a s s a is below p but not on the door a is below p and is on the door