View
221
Download
0
Embed Size (px)
Citation preview
1
Translational Polygon Coveringusing Intersection Graphs
Prof. Karen Daniels
Rajasekhar Inkulu13 August, 2001
2
Dynamic Covering Motivation
sensor coverage
clustering
shape recognition channel assignment
production allocation
facility location
layout
3
Translational 2D Polygon Covering
Q3Q1 Q2
Sample P and Q
P1
P2
Translated Q Covers P
P1
Q1
Q2
Q3
P2
• Input: – Covering polygons Q = {Q1, Q2 , ... , Qm}
– Target polygons (or point-sets) P = {P1, P2 , ... , Pn}
• Output: a solution
– Translations = { 1, 2 , ... , m} such that mj
j jQP
1
)(
4
Overview
• Background
• NP-Completeness
• Incrementally Constrained Algorithm
• Intersection Graph Heuristics
• Implementation and Results
• Summary & Future Work
6
COVERING
PROBLEMS
covering
P: finite point sets
geometric covering
2D translational covering
non-geometric covering
P: shapes
decomposition:
Decomposition with covering )()( iijj QoverlapmayQ
partition:
)()( iijj QoverlapcannotQ
VERTEX-COVER, SET-COVER, EDGE-COVER, VLSI logic minimization, facility location
covering
Polynomial-time algorithms for triangulation and some tilings
Q: convex Q: nonconvex
BOX-COVER-Thin coverings of the plane with congruent convex shapes-Translational covering of a convex set by a sequence of convex shapes
-NP-hard/complete polygon problems-polynomial-time results for restricted orthogonal polygon covering and horizontally convex polygons-approximation algorithms for boundary, corner covers of orthogonal polygons
. . . .
. . . . . .
mj
j jQP
1
)(
mj
j jQP
1
)(
Q: identical
. . . 1D interval covered by annuli
7
Minkowski Sum
•Minkowski Sum[Mink03] of two point sets P and Q is
PpQq
QpqPQqPpqpQP
)()(,|
p
q
p+q
QPq4
q1
q2
p5 p3
p1p2
p4
q3
p2+q1
p3+q3
p5+q4
QP
8
Minkowski Sum and Translational Intersection
•If is a vector representing a translation applied to Q and –Q is a rotation
of Q by then, Q
PQQ )( )( QPQ if and only if
qt
tp
-Q-Q
tPP
P-Q
9
Minkowski Sum and Containment
•If is a translation of Q with respect to P and –Q is a rotation of Q by
then,
Q
PQQ )( )( QPQ if and only if
PQ
A
B
11
NP-Completeness
•Theorem: 2D translational polygon covering is NP-Complete. either P is a collection of point sets or P is a collection of polygonsBelongs to NP: Given the problem instance and the solution, one can verify solution
correctness in polynomial time
NP-Hard Proof: specialized to General instance [Fowler81]’s box-cover
Proof:
Q1
Q2
Q3
P . .
. Q3
Q1
Q2
P
. . . .
. . . . . .
Q1
Q2
Q3
Q4
P
. . . .
. . . . . .
Q1
Q2 Q3
Q4
P
13
Assignment View of Covering
Q covers P using:- 4 convex pieces of Q- 11 points of P- 16 assignments/ constraints:- Q1 must cover points 1,2,3,4,5 of P- Q’2 must cover points 2,6,7,8 of P- Q’3 must cover points 5,4,9,10 of P- Q’’3 must cover points 4,10,11 of P
Q1Q’2
Q’3
Q”3
1
2
34
98
65
7
1110
P
Q1 Q’2
1
2
3
4
5
6
7
Q covers P using:- 2 convex pieces of Q- 7 points of P- 8 assignments/ constraints:- Q1 must cover points 1,5,6,7 of P- Q’2 must cover points 2,3,4,7 of P
14
Convexity
Impact of Q Convexity
1
2
4
35
6
{1}
{1}
{1, 2}
{2}
{2}
{2} potentially uncovered
covered by Q2
covered by Q1
Q2
Q1
P
Adding a Constraint
{1, 2}
{1}
{1, 2}covered by Q2
covered by Q1
1
P
{2}
{2}
{2}
15
Convexity Lemma• Covering Assignment: Given two collections of polygons Q = {Q1, Q2 , ... , Qm }
and P = {P1, P2 , ... , Pn }, let be the set of all points in P. Then an assignment f
is a mapping: and a covering assignment is an assignment of to Q such that:
)(
21 )(}0{)(,},,,{pfQ
jjm
j
Qpandpfpthatsuch
{1, 2}
{1}
{1, 2}
{2}
{2}
{2} covered by Q2 covered by Q1
1
2
4
35
6P
Partial assignment and partial covering assignment are defined similarly using a subset of in the definition
above.
•Convexity Lemma: If Qj is convex and if f is a partial covering assignment, then
Proof: The assignment f is a partial covering assignment; this implies that j is a
translation of Qj such that the points of f -1(Qj) are covered by j (Qj ). Translate Qj by j.
Now, since Qj is convex, for every subset of points inside Qj the convex hull of those
points is also inside Qj. From this the lemma follows immediately.
)())(( 1jjj QQfCH
Qf 2:
16
Incremental/Constrained Approach
•Assignment Extension: Let f1 and f2 be partial assignments whose subsets of are 1
and 2, respectively. f1 is a sub assignment of f2 and f2 is an extension of f1 if and only if:
If and or and then f2 is a single
extension of f1 .
An extension either expands the subset of P used in an assignment or expands a subset of Q used in an assignment.
||1|| 12 |)(||)(|12
12
pp
pfpf |)(|1|)(|12
12
pp
pfpf|||| 12
)()(, 21121 pfpfpand
5
1
2 {1}
3
6
{1}
{1, 2}
{2}
{2}
{2}potentially uncovered
covered by Q1
4
Covered by Q2
{1,2}
{1}
{1, 2}
{2}
{2}
{2}covered by Q2
covered by Q1
1
2
4
35
6covered by Q1
Covered by Q2
17
Explicit Assignment Extension and Subdivision
{1}
{1}
{1, 2}
{2}
{2}
{2}covered by Q2
covered by Q1
1
2
4
35
6
7{1, 2}
5
1
2 {1}
3
6
{1}
{1, 2}
{2}
{2}
{2}potentially uncovered
covered by Q1
4
Covered by Q2
5
1
2 {1}
3
6
{1}
{1, 2}
{2}
{2}
{2}potentially uncovered
covered by Q1
4
Covered by Q2
{1,2}
{1}
{1, 2}
{2}
{2}
{2}covered by Q2
covered by Q1
1
2
4
35
6covered by Q1
Covered by Q2
18
Implicit Assignment Extension
. . . . . . .
1 {1,4}
5 {1,3}
4 {1,3}
3 {1}
2 {1,5}
{1}{1}
Follows from convexity lemma
19
Constraints Selection
Q covers P1 using following constraints:-4 convex pieces of Q-11 points of P-16 constraints:-Q1 must cover points 1,2,3,4,5 of P-Q’2 must cover points 2,6,7,8 of P-Q’3 must cover points 5,4,9,10 of P-Q’’3 must cover points 4,10,11 of P
Q1
Q’2
Q’3
Q”3
1
2
3
49
8
65
7
11
10
P1
Q1 Q’21
2
3
4
5
6
7
Q covers P1 using following constraints:-2 convex pieces of Q-7 points of P-8 constraints:-Q1 must cover points 1,5,6,7 of P-Q’2 must cover points 2,3,4,7 of P
20
Vertex assignment inheritance
Follows from convexity lemma
3 {1}
4 {2}
6 {1}
2 {2}
1 {1}
5 {2}
{1,2}
{1,2}
Q1 Q2
P
21
Pseudocode and Analysis
The worst case upper bound on the running time for finite is O((2m-1)N (MN)2 log MN) ) The worst case upper bound on the running time for polygonal is O((2m-1) N(2-) (MN)2 log MN) )
where m: number of Qs M: total number of vertices in Q N: number of points used from P
: area tolerance
FIND_COVER() for each candidate vertex assignment c if c with current constraints is feasible if obtained a cover select a feasible placement of Q polygons and return else inherit vertex assignments find all uncovered regions Ui in P
if any Ui is below area tolerance
remove c from candidate vertex assignment list else for each Ui
select two vertices v1 and v2 of Ui whose vertex covers differ
subdivide the edge joining v1 and v2 by introducing new vertex
v for all possible vertex assignments of v FIND_COVER()
22
Non-convex polygons Non-convex Qs:
Non-convex Ps:
Avoid infeasible vertex assignments by not decomposing P into convex pieces
Q3
Q1
Q2
P
Qs are decomposed into convex pieces
Q1
Q2
Q3
CH(P)
P
24
Intersection Graph based Heuristics
•Observations used in generating assignments corresponding to intersection graphs: If S1 and S2 are intersection sets for two adjacent nodes in a connected component of an
intersection graph, then If an intersection graph does not contain an intersection set = {Qj} for some , then removing
Qj from each intersection set in which it appears yields an intersection graph with the same . If
for each Sk, then replacing each Sk with {Qj} yields an intersection graph with the same .
|)(\| 211 SSS 1|)(\| 212 SSSmj 1
kj SQ }{
• Each region, represented by a node in the intersection graph, is covered by some subset of Qs, which is the intersection set for that region.
• An intersection graph on P, Q, and is an undirected graph that contains one node for each region of R and an edge connecting each pair of nodes whose regions share an edge (this definition is used by [Fowler’81])
• Every cover has an intersection graph.
Q1
Q3
Q2
{3}
{2,3}{2}
{1,2}
{1}
{1,3}
{1,2,3}
P
25
Linear Intersection Graphs• An acyclic, connected component of an intersection graph is a linear component if and only if the maximum degree of any node is 2. An intersection graph consisting
only of linear components is a linear intersection graph.
13 1
7
12
6
5
4
3
2
11
10
9
8
7
12 13
6
5
4
3
21
11
10
9
8
12 13
6
5
4
3
21
11
10
9
8 7
12 13
6
5
4
3
21
11
10
9
8 7
P
PP
P
26
Star Intersection Graphs
• A star intersection graph G is an intersection graph in which each single degree node is connected to the same subgraph G’ of G.
G’
13 {3} 1 {1}12 {3}
6 {1}
5 {3}
4 {2}
3 {2}
2 {1}
11 {2}
10 {2}
9 {3}
8 {1}7 {3}
P
28
Current Implementation
•Approximate Algorithm •Linear and Star intersection graphs topologies are used as heuristics•Polygonal P•CH(P) and CH(Q)s are used •C++•CGAL & LEDA libraries•Rational kernel of LEDA library is used to avoid numerical round off errors
29
Simultaneous Assignment Space Exploration Experiment
Experiment:• Explore assignment space at various intervals simultaneously using a parallel algorithm.
• Performance improvement comes due to the fact that the independent program instances are working in different areas of the assignment space. • This is equivalent to interval based assignment space exploration in sequential algorithm, where interval is equal to the number of program instances in parallel algorithm.
Observation: Randomly generate interval and use it in determining in what order to explore the lexicographic assignment space in sequential algorithm.
1,2,3,….,x,x+1,x+2,…,2x,2x+1,2x+2…
30
Results using brute-force techniqueArea tolerance: 0.01
Index # of Qjs # of vertices
of P
Convexity of P
# of vertices of
CH(P)
# of assignments
tried
# of new points added
Cover exists?
1 1 6 cvx 6 1 0 no
2 1 6 cvx 6 1 0 yes
3 2 5 cvx 5 107 1 yes
4 2 5 cvx 5 729 0 no
5 2 6 cvx 6 349 0 yes
6 2 6 cvx 6 497 9 yes
7 2 7 non-cvx 6 1334 0 yes
8 2 12 non-cvx 4 238 2 yes
9 2 5 cvx 5 174 0 yes
10 2 5 cvx 5 140 6 yes
11 2 6 cvx 6 349 0 yes
12 3 6 cvx 6 33714 5 yes
Table 1
31
Intersection Graphs vs. Brute Force Technique
Area tolerance: 0.01
Note: In the X+Y+ notation, X is the number of assignments explored using linear intersection graphs. Y is the number of assignments explored using star intersection graphs. A second ‘+’ indicates that no cover was found using the heuristics.
Index m N P convexity
# of Assignments with heuristics
# of Assignments without heuristics
Cover exists?
1 1 6 cvx 1+1+ 1 no
2 1 6 cvx 1 1 yes
3 2 6 cvx 60+65 728 yes
4 2 5 cvx 60+82+ 729 no
5 2 5 cvx 11 174 yes
6 2 6 cvx 40+118+ 497 yes
7 2 7 non-cvx 30 1334 yes
8 2 12 non-cvx 17+55 238 yes
9 2 5 cvx 40+60+ 140 yes
10 4 6 cvx 24 - yes
11 2 6 cvx 3 349 yes
12 3 6 cvx 107 33714 yes
13 6 12 cvx 15197 - yes
Table 2
35
Results using multi-threading on NT
#Q
Is cover exists?
Is P convex?
Assignments tried in thread0
Assignments tried in thread1
Assignments tried in thread2
Assignments tried in thread3
Assignments tried in thread4
Total assignment
s tried using
multiple threads
Total assignments tried using
one thread
Time in multiple threads
implementation
(in sec)
Time in one
thread implementation (in sec)
2 no yes 145 146 146 160 159 757 757 125 87
2 no no 145 146 146 146 195 779 779 137 95
2 yes no 28 17 29 30 12 117 108 23 14
2 yes yes 23 24 27 28 25 128 220 21 23
2 yes yes 48 49 42 49 43 232 140 33 15
2 yes yes 12 14 12 9 6 54 155 9 16
2 yes yes 139 135 101 130 132 638 405 94 12
3 yes yes 28 29 25 24 24 131 317 31 49
3 yes yes 1218 1202 1088 1088 1281 5878 25626 860 2634
AreaToleranceRatio: 0.01; System Info: NT Pentium II 266MHz/128MB RAM system ; ApproachUsed: BruteForceTechnique; NumberOfThreads: 5
36
#Q
Is cover exists?
Is P convex?
Assignments tried in process0
Assignments tried in process1
Assignments tried in process2
Assignments tried in process3
Assignments tried in
process4
Total assignments tried using
multiple processes
Total assignments tried using
one process
Time in multiple processes
implementation
(in sec)
Time in one
process implementation (in
sec)
2 no yes 145 146 146 146 145 729 729 15 30
2 no no 145 146 146 146 195 779 779 19 36
2 yes no 22 18 21 35 11 108 108 3 5
2 yes yes 42 29 32 28 25 157 220 3 9
2 yes yes 48 49 42 45 41 226 140 4 5
2 yes yes 17 21 23 9 6 77 155 1 6
2 yes yes 145 71 101 60 73 451 405 9 16
2 yes yes 35 31 25 21 24 136 317 5 19
3 yes yes 1125 1202 1149 1111 1195 5783 25626 111 946
3 yes yes 1220 1257 1147 1402 1146 6172 37442 132 1012
Results using multi-processing on Solaris
AreaToleranceRatio: 0.01; System Info: SunOS – dual processor system; ApproachUsed: BruteForceTechnique; NumberOfProcesses: 5
38
Summary
• Proved that 2D translational polygonal covering is NP-complete• Presented an algorithm for 2D translational cvx/noncvx polygonal covering• Explored assignment space using intersection graphs based heuristics as preprocessing technique• Presented Future Work - Exploring some more preprocessing techniques - Covering using Linear Programming - Incremental Qs placement - Mathematical programming model - Finding clustering specific covering algorithms
39
Future Work
• Exploring assignment space using more intersection graph topologies• Applying linear programming techniques to minimize the overlap among Qs so that Qs can cover maximum possible area of P• Incremental Qs placement such that every Q’s degrees of freedom is completely removed while placing it on P• Using APSP of dual graph to tessellated P polygon as preprocessing technique in determining whether a cover can exist or not• Mathematical programming model for translational covering problem• Finding more about approximation algorithm in the context of approximate algorithm and applying the same to our algorithm• Using generating functions in answering cover exists or not decision problem • Finding some specific covering algorithms for clustering problems in visualizations• Finding rotational covering algorithms• Finding covering algorithms in higher dimensions (??)
40
For More Information…
Daniels, K.M., Inkulu, R., “An Incremental Algorithm for Translational Polygon Covering” Technical Report 2001-001, Dept. of Computer Science, University of Massachusetts Lowell, April, 2001
http:// www.cs.uml.edu/~kdaniels
42
Proposed Research: Objective
• Practical solutions to dynamic hard core covering problems
– dynamic instance = sequence of static instances
– hard : even static problem is computationally intractable– core : useful in multiple applications– covering ~ assignment ~ allocation– Practical : solve static instancei quickly if it is “easy”
• combinatorially “small” or• clearly infeasible (for decision problem) or• clearly feasible (for decision problem) or• a “small” change from instancei-1
static instancestatic instance00 static instancestatic instance11 static instancestatic instanceii......
43
State-of-the-Art: Dynamic Algorithms & Data
Structures• Polynomial-time problems:
– Data structures supporting fast updates• Self-adjusting (e.g. splay trees) [Sleator, CMU]• Kinetic Data Structures [Guibas, Stanford]
• Hard problems:– Polynomial-time approximation schemes for optimization problems : “Greedy” can be
sensitive to small changes [Gao, et al.]– Meta-heuristics: no theoretical guarantee– Practical algorithms for small and/or easy instances:
• Containment decision problem: [Daniels, Milenkovic]– successful building block for layout problems– leverages strong combinatorial optimization techniques
– Distributed heuristics• Primarily for dynamic network routing or channel assignment• [Wu et al.] connected dominating sets for network routing
– no theoretical guarantee; some empirical support– Randomized, distributed:
• [Gao, et al.] discrete mobile centers (clustering)– theoretical framework; assumes knowledge of change trajectories
static
44
Proposed Research: General Algorithmic Approach
• A solution is stable if a “small” change in the instance causes a “small” change in the solution.
• For a dynamic covering problem:– Characterize expected types of input changes– Identify type(s) of changes to focus on– Define stability with respect to these types of changes
• Develop a stability measure– Identify solution search space patterns
• Group together solutions whose static instances are “similar”• Construct a combinatorially small description of a group
– Develop strong:• Global search techniques for quickly finding group• Group-focused pruning techniques• Local search techniques to move to nearby solution
45
Proposed Research Example 1: Translational 2D Covering [continued]
• Focus of input changes: positions of points of P• Stability:
– Covering ~ assignment– Solution is “stable” if same assignment corresponds to multiple
“similar” instances • “Similar”: geometric distance between new and old P
• Combinatorially small description of a group– “Size” of assignment = number of “constraints”– For a small number of “stable” points of P
• Preliminary work uses convex hull of P• Global search:
– Convexity covering property to establish global feasibility from local feasibility
– Intersection graph heuristics to guide search• Pruning:
– Superset of any infeasible assignment is infeasible
46
Research Environment: Algorithms Lab
TelecommunicationsTelecommunications Data Mining & Data Mining & VisualizationVisualization
ManufacturingManufacturing
Design Analyze
Apply
PhD researchPhD research
Undergraduate & Masters researchUndergraduate & Masters research
47
Survey of My Previous Computational Geometry Research
Supporting Manufacturing Applications
Ordered Ordered ContainmentContainment
Geometric RestrictionGeometric Restriction
Distance-Based Distance-Based SubdivisionSubdivision
Maximum Maximum RectangleRectangle
Limited GapsLimited Gaps
Minimal Minimal EnclosureEnclosure
Column-Based LayoutColumn-Based LayoutTwo-Phase LayoutTwo-Phase Layout
Lattice Lattice PackingPacking
ContainmentContainment
Maximal CoverMaximal Cover
48
Bibliography
Literature Surveyed to make sure this work had not been done already: [Keil86] Keil, M. “Minimally covering a horizontally convex orthogonal polygon.” In Proceedings of the 2nd Annual ACM Symposium on Computational Geometry, p. 43-51, Yorktown Heights, New York, June, 1986. [Motwani90] Motwani, R., Raghunathan, A. and Saran, H. “Covering Orthogonal Polygons with Star Polygons: The Perfect Graph Approach.” Journal of Computer and System Sciences, vol. 40, p. 19-48, 1990. [Reckhow87] Reckhow. R. and Culberson, J. “Covering a Simple Orthogonal Polygon with a Minimum Number of Orthogonally Covex Polygons”, Proceedings of the 3rd ACM Symposium on Computational Geometry p. 268-277, 1987. [Sampath92] Sampath Kannan and Danny Soroker. “Tiling Polygons with Parallelograms.” Discrete & Computational Geometry, 7:175-188, 1992. [Berman92] Berman, P. And DasGupta, B. “Approximating the Rectilinear Polygon Cover Problems (Extended Abstract),” In Proceedings of the 4th Canadian Conference on Computational Geometry, Newfoundland, August, 1992. [Hochbaum87] Hochbaum, D. and Maass, Wolfgang. “Fast Approximation Algorithms for Nonconvex Covering Problem.” Journal of Algorithms, vol. 8, p. 305-323, 1987.
49
Bibliography (cont)Literature surveyed to obtain basic tools to solve the problem: [Culberson88] Culberson, J. and Reckhow, R. Covering Polygons is Hard. In Proceedings of 29th IEEE Conference on Foundations of Computer Science, 1988. [Coudert95] Coudert, O., Madre, J. “New Ideas for Solving Covering Problems.” In Proceedings of 32nd ACM/IEE Design Automation Conference, 1995. [Chazelle83] B.Chazelle, The polygon containment problem. In Preparata, editor, Advances in computing research, vol. 1: Computational Geometry, pages 1-33, JAI press, Inc., Greenwich, Connecticut, 1983. [Avnaim87] F.Avnaim and J.Boissonnat Simultaneous containment of several polygons. In Proceedings of the 3rd ACM symposium on Computational Geometry, pages: 242-250, 1987. [Daniels97] Daniels, K.M., and Milenkovic, V.J., Multiple Translational Containment. Part I: An Approximate Algorithm. In Algorithmica special issue on Computational Geometry in Manufacturing , vol. 19, 1997, p. 148-182. [Toth97] Toth, G. F. “Packing and Covering.” In Handbook of Discrete and Computational Geometry, Goodman, J. and O’Rourke, J. (editors). CRC Press, New York, 1997. [Schattschneider97] Schattschneider, D. And Senechal, M. “Tilings.” In Handbook of Discrete and Computational Geometry, Goodman, J. and O’Rourke, J. (editors). CRC Press, New York, 1997. [Grunbaum89] Grunbaum B., Shephard, G. Tilings and Patterns: An Introduction. W.H. Freeman and Company, New York, 1989. [Fowler81] Fowler, R., Paterson, M., and Tanimoto, L., “Optimal Packing and Covering in the Plane are NP-Complete”, Information Processing Letters, 12(3):133-137, June, 1981. [Li94] Li, Z. Compaction Algorithms for Nonconvex Polygons and Their Applications. PhD thesis, Harvard University Division of Applied Sciences, 1994. [Mink03] Minkowski, H. “Volumen und Oberflache.” Mathematische Annalen, 57:447-495, 1903. [Milenkovic99] Milenkovic, V.J. and Daniels, K.M., Translational Polygon Containment and Minimal Enclosure using Mathematical Programming. International Transactions in Operational Research special issue with papers from IFORS '96, 6:525-554, 1999.
50
Applications
•Clustering problems in visualizations•Finding clusters in publish/subscribe middleware•Dynamic channel assignment in mobile communications•Query optimization in spatial databases•Layout and packing problems in manufacturing
51
Minkowski Sum degenerate case
3 {1}
4 {1}
6 {1}
2 {2}
1 {1}
5 {2}
Q1
Q2
Q1
• This is needed to deal with degenerate case which arises when P is a line i.e., degenerate polygon.
52
Finding Maximum
QL
Objective: Given a 2D convex polygon Q and a slope m, find a line L of the form y=mx+b
that maximizes : || QL
Known as a stabbing problem in the computational geometry literature.
53
Finding Maximum (cont)
• Lemma1: Maximum of a convex polygon occurs only at its vertices.
• Lemma2: The length subtended by line L whose slope is zero and passing through vertex (a,b) of a given polygon Q is (b-c-ma)/m, where y=mx+c is an edge of polygon which intersects L at the other end.
(a, b)
y= mx+c
54
Finding Maximum (cont)
• Lemma3: is unimodal across the convex polygon.
H
A
J
L
Max
B
C
I
• Corollary: The geometric binary search can be used to find maximum among ’s at vertices of Q
• Theorem: Finding Maximum can be solved with O(n) preprocessing time (for rotational transform of coordinate axes) and O(lg n) query time.
55
Exploring assignment space using more intersection graph topologies
Hub and spokes intersection graph
We constrain each Qi such that it intersects other Qs and P as needed
by the given intersection graph using translational geometric restriction technique [Daniels97].
P
Q1
Q2
• Generating random triangulations of randomly generated polygons and observe their intersection graph topologies
Example:
56
Applying linear programming techniques to minimize overlap among Qs so that Qs can
cover maximum possible area of P
Q1
P
Q2
Q1
Q2
P
57
Incremental Qs placement such that every Q’s degrees of freedom is completely
removed while placing it on P
P
Q2
It works since we seek only one cover Example of using necessary but not sufficient condition as part of pruning
Q1
58
Using APSP of dual graph to tessellated P polygon as preprocessing technique in
determining whether a cover can exist or not
Determine a random tessellation of P Find dual graph based on adjacency of regions Find furthest regions using APSP of dual graph Join these furthest regions and make sure this line can be covered using given Q polygons
P
59
Finding some specific covering algorithms for clustering problems in visualizations
Given a collection of shapes and clusters of points representing a problem, cover those points with the shapes and find clusters among them. Dynamic algorithm to find whether a new point fed into the system belongs to which existing cluster
. . . . . .. . . . . . . .
Clustering Polygon1Clustering Polygon2
60
Finding rotational covering algorithms
Q1
P
Q2
Q2
P
Q1
Observe that the translational cover is not possible with the given Q polygons.
61
CGAL vs LEDA• CGAL – Computational Geometry Algorithms Library• LEDA – Library of Efficient Data Types and Algorithms
CGAL’s distinctive features: Geometry kernel can be instantiated with any number type Geometric algorithms are decoupled from the geometry kernel Large variety of geometric data structures and algorithms Open architecture makes it easy to import modules from other libraries
However, the development of CGAL will not make LEDA geometry obsolete. These libraries can be used side by side and both systems offer functionality which the other system does not have.
62
Implementation hierarchyCustomGenPolygon
QPolygon
PointAssignment
assignment
PPolygon
QPolygonList
PointAssignmentList
AllObjects
leda_list< leda_list<LEDA_POINT> >
PatchList
leda_window(LEDA) MyWindowStream
LexicGen
generatePermutationWithRuns()generatePermutationWithoutRuns()generateCombinations()arrangeObjects()rankPermutation()inversePermutation()rankCombination()inverseRankCombination()
FloatKernel RationalKernel
CGAL::Segment_2<Coordi> AlphaSement_2
CGAL::Point_2<Coordi_P> AlphaPoint_2
CGAL::Polygon_2<Traits_P,Container_P> AlphaPolygon_2<P_traits, Point_cont, Point, R> CartesianAlphaPolygon
getMaxAlpha()
LEDA::LEDA_POINT
leda_list<LEDA_POINT>
LEDA::GEN_POLYGONKernel