Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA

Slides:



Advertisements
Similar presentations
Great Theoretical Ideas in Computer Science for Some.
Advertisements

Triangle partition problem Jian Li Sep,2005.  Proposed by Redstar in Algorithm board in Fudan BBS.  Motivated by some network design strategy.
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Chapter 12 and Chapter 3 Geometry Terms.
3. Delaunay triangulation
Chapter 9 Graph algorithms. Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Randomized Planning for Short Inspection Paths Tim Danner Lydia E. Kavraki Department of Computer Science Rice University.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Abner And Shae. Complementary angles: Two angles whose measures have a sum of 90 degrees. Supplementary Angles: Two angles whose measures have a sum of.
Comment reconstruire le graphe de visibilité d’un polygone? (Reconstructing visibility graphs of polygons) Jérémie Chalopin, Shantanu Das LIF, Aix-Marseille.
Lecture 25 NP Class. P = ? NP = ? PSPACE They are central problems in computational complexity.
4.5 – Prove Triangles Congruent by ASA and AAS In a polygon, the side connecting the vertices of two angles is the included side. Given two angle measures.
Great Theoretical Ideas in Computer Science for Some.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 9 Line Arrangements.
Hamiltonian Graphs Graphs Hubert Chan (Chapter 9.5)
3. Polygon Triangulation
Lecture 2-2 NP Class.
Advanced Algorithms Analysis and Design
Computing Connected Components on Parallel Computers
Hamiltonian Graphs Graphs Hubert Chan (Chapter 9.5)
Haim Kaplan and Uri Zwick
Shortest Path Problems
Localizing the Delaunay Triangulation and its Parallel Implementation
The Art Gallery Problem
The Art Gallery Problem
Geometry.
Graph Operations And Representation
Computing Shortest Path amid Pseudodisks
Representing a Functional Curve by Curves with Fewer Peaks
Computing Maximum Non-Crossing Matching in Convex Bipartite Graphs
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Shortest Path Problems
Efficient Algorithms for the Weighted k-Center Problem on a Real Line
Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA
Dynamic Data Structures for Simplicial Thickness Queries
Locating an Obnoxious Line among Planar Objects
Computing the Visibility Polygon of an Island in a Polygonal Domain
Lecture 13 Algorithm Analysis
On the Geodesic Centers of Polygonal Domains
Approximating Points by A Piecewise Linear Function: I
Proving simple Geometric Properties by using coordinates of shapes
Haitao Wang Utah State University WADS 2017, St. John’s, Canada
Tohoku University.
Lecture 13 Algorithm Analysis
Processing an Offline Insertion-Query Sequence with Applications
Optimal Point Movement for Covering Circular Regions
Range Queries on Uncertain Data
Joseph S.B. Mitchell, Stony Brook University
Danny Z. Chen1, Yan Gu2, Jian Li2, and Haitao Wang1
Aggregate-Max Nearest Neighbor Searching in the Plane
Haitao Wang Utah State University SoCG 2017, Brisbane, Australia
Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA
Computing Shortest Paths among Curved Obstacles in the Plane
Visibility and Ray Shooting Queries in Polygonal Domains
Outlier Respecting Points Approximation
Patterns and Combinatorics
Approximating Points by A Piecewise Linear Function: II
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
Discrete Mathematics for Computer Science
Overlay of Two Subdivisions
Lecture 28 Approximation of Set Cover
Chapter 9 Graph algorithms
The two number lines are called the axes.
Complexity Theory: Foundations
Lecture 23 NP-Hard Problems
Presentation transcript:

Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA An Improved Algorithm for Reconstructing a Simple Polygon from the Visibility Angles Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA

Visibility Angles Consider a simple polygon P: For vertex v, four visibility angles around v a3 a2 a4 a1 v

The Visibility Graph of P Connect all pairs of visible vertices

Visibility Angles for Every Vertex

What is the Problem? The cyclically ordered vertex list is given v6 v4 The vertex list: v1, v2, v3, v4, v5, v6, v7

What is the Problem? All visibility angles are given v6 v4 v7 v5 v2 v1

What is the Problem? Input: Goal: A cyclically ordered vertex list of P Visibility angles around every vertex of P Goal: Reconstruct the simple polygon P (up to similarity)

Previous Work and Our Result Disser, Mihalak, and Widmayer [SWAT 2010]: The polygon P can be uniquely determined, up to similarity. An O(n3log n) time algorithm for reconstructing P is given. Our result: An O(n2) time algorithm for reconstructing P Worst case optimal Based on new geometric observations

What is the Difficulty for the Reconstruction? Every vertex v sees some vertices, but cannot identify them, i.e., their vertex labels are not known to v. v6 v4 v7 v5 v2 v1 v3

The Reconstruction Algorithm Construct the visibility graph G The key part Reconstructing P from G Generally, a long-standing open problem (in PSPACE), but easy in our setting (O(n2) time) with angle data information the ordered vertex list of P

Constructing the Visibility Graph G For every two vertices vi and vj, determine whether they are visible to each other An observation: vi is visible to vj if and only if there exists a vertex v in the red part such that Δvivjv does not intersect P\{vi,vj,v} vj vj v v vi vi

An Observation (cont.) vi’: The last visible vertex to vj in the blue part counterclockwise vj’: The first visible vertex to vi in the blue part counterclockwise vj vi vj v vj’ triangle witness vi’ vj’ v vi’ vi vi is visible to vj if and only if the sum of the three angles is 180 degree

A Preliminary Algorithm For every pair of vertices vi and vj, to determine whether they are visible to each other: Check every vertex to see whether there exists a triangle witness Running time: There are O(n2) pairs of vertices O(n) time is needed for each pair O(n3) time is needed

A New Observation Do not check every vertex in the red part It is sufficient to check one particular vertex (to see whether it is a triangle witness) Specifically, check the last visible vertex to vi counterclockwise in the red part

A New Observation (cont.) vj v vi vi is visible to vj if and only if v is a triangle witness

The Proof Goal: vi is visible to vj if and only if v is a triangle witness If v is a triangle witness, then vi is visible to vj by the previous observation If vi is visible to vj, then v is a triangle witness The key is to prove v is also visible to vj vj v vi

The Proof Goal: vi is visible to vj if and only if v is a triangle witness If v is a triangle witness, then vi is visible to vj by the previous observation If vi is visible to vj, then v is a triangle witness The key is to prove v is also visible to vj vj v vi

The Algorithm Implementation There are n/2 iterations In the k-th iteration (k=1…n/2), we check for each i=1…n whether vi is visible to vi+k It takes O(1) time to check the visibility of every pair of vertices By using some arrays and auxiliary variables Overall running time: O(n2)

Preprocess The visibility array for v: A[1,2,3,4]={a1,a2,a3,a4} Preprocessing: Given any i and j with i≤j, the value A[i,j] = A[i]+A[i+1]+…+A[j] can be computed in O(1) time, a3 a2 a4 a1 v

An implementation detail vj’: The first visible vertex to vi in the blue part counterclockwise Determine the angle x between viv and vivj’ Suppose v is the t-th visible vertex of vi along the red part Suppose b is the number of visibility vertices of vi that have been identified so far (in the red part) Both t and b are already known The angle x is A[t,b+1], where A is the visibility array for vi vj vi vj v vj’ y y vj’ v x x vi

Conclusions Given the visibility angles around every vertex of a simple polygon P and its cyclically ordered vertex list, we give an algorithm for reconstructing P in O(n2) time

Thank you Questions?