63
1 Translational Polygon Covering using Intersection Graphs Prof. Karen Daniels Rajasekhar Inkulu 13 August, 2001

1 Translational Polygon Covering using Intersection Graphs Prof. Karen Daniels Rajasekhar Inkulu 13 August, 2001

  • 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

5

BACKGROUND

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

QQ

tPP

QQ

QQ

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

10

NP-COMPLETENESS

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

12

INCREMENTALLY CONSTRAINED ALGORITHM

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

23

INTERSECTION GRAPH HEURISTICS

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

27

IMPLEMENTATION AND RESULTS

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

32

Results

Represents Table 1 or 2 – Row No. 2 Represents Table 1 or 2 – Row No. 6

33

Results (cont)

Represents Table 1 or 2 – Row No. 11 Represents Table 1 or 2 – Row No. 8

34

Results (cont)

Represents Table 1 or 2 – Row No. 12 Represents Table 2 – Row No. 13

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

37

SUMMARY & FUTURE WORK

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

41

BACKUP SLIDES

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

63

Implementation hierarchy (cont)CustomThread

NTThread SolarisThread

CustomThreadSemaphore

NTThreadSemaphore SolarisThreadSemaphore

CustomProcess

NTProcess SolarisProcess

CustomProcessSemaphore

NTProcessSemaphoreSolarisProcessSemaphore

CustomProcessSharedMem SolarisSharedMem