Altitude Terrain Guarding and Guarding Uni-Monotone Polygons - - PowerPoint PPT Presentation

altitude terrain guarding and guarding uni monotone
SMART_READER_LITE
LIVE PREVIEW

Altitude Terrain Guarding and Guarding Uni-Monotone Polygons - - PowerPoint PPT Presentation

Altitude Terrain Guarding and Guarding Uni-Monotone Polygons Stephan Friedrichs Valentin Polishchuk Christiane Schmidt image source:


slide-1
SLIDE 1

Stephan Friedrichs Valentin Polishchuk Christiane Schmidt

Altitude Terrain Guarding and Guarding Uni-Monotone Polygons

slide-2
SLIDE 2

EuroCG 2018 2

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png https://www.dronerush.com/best-drones-1977/drone.bmp

slide-3
SLIDE 3

EuroCG 2018 2

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png https://www.dronerush.com/best-drones-1977/drone.bmp

slide-4
SLIDE 4

EuroCG 2018 2

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png https://www.dronerush.com/best-drones-1977/drone.bmp

slide-5
SLIDE 5

EuroCG 2018 2

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png https://www.dronerush.com/best-drones-1977/drone.bmp

slide-6
SLIDE 6

EuroCG 2018 2

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png https://www.dronerush.com/best-drones-1977/drone.bmp

slide-7
SLIDE 7

EuroCG 2018 3

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png

slide-8
SLIDE 8

EuroCG 2018 3

image source: http://2.bp.blogspot.com/-eUnhAo8SfFQ/VDaLij2_csI/AAAAAAAABPM/847rgT6VpQE/s1600/Screen%2BShot%2B2014-05-01%2Bat%2B00.02.54.png

2.5D

slide-9
SLIDE 9

EuroCG 2018 3

2.5D 1.5D

slide-10
SLIDE 10

EuroCG 2018

Altitude Terrain Guarding Problem

4

slide-11
SLIDE 11

EuroCG 2018

Altitude Terrain Guarding Problem

4

slide-12
SLIDE 12

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T

slide-13
SLIDE 13

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

slide-14
SLIDE 14

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn}

slide-15
SLIDE 15

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} Monotonicity

slide-16
SLIDE 16

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} Monotonicity ➡ Points on T are totally ordered wrt to x-coordinate: p<q .

slide-17
SLIDE 17

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} A point p ∈ A sees or covers q ∈ T if and only if pq is nowhere below T (i.e. pq lies on or above T ). p ∈ A q ∈ T

slide-18
SLIDE 18

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} A point p ∈ A sees or covers q ∈ T if and only if pq is nowhere below T (i.e. pq lies on or above T ). p ∈ A q ∈ T q2 ∈ T

slide-19
SLIDE 19

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} A point p ∈ A sees or covers q ∈ T if and only if pq is nowhere below T (i.e. pq lies on or above T ). p ∈ A q ∈ T q2 ∈ T

slide-20
SLIDE 20

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} A point p ∈ A sees or covers q ∈ T if and only if pq is nowhere below T (i.e. pq lies on or above T ). VT(p) is the visibility region of p with VT(p) := {q∈T | p sees q} . p ∈ A q ∈ T

slide-21
SLIDE 21

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} A point p ∈ A sees or covers q ∈ T if and only if pq is nowhere below T (i.e. pq lies on or above T ). VT(p) is the visibility region of p with VT(p) := {q∈T | p sees q} . For G⊆A VT(G) := ∪g∈G VT(g). p ∈ A q ∈ T

slide-22
SLIDE 22

EuroCG 2018

Altitude Terrain Guarding Problem

4

Terrain T Altitude line A

x-monotone chain of line segments in R2 defined by its vertices V(T) = { v1 , . . . , vn} A point p ∈ A sees or covers q ∈ T if and only if pq is nowhere below T (i.e. pq lies on or above T ). VT(p) is the visibility region of p with VT(p) := {q∈T | p sees q} . For G⊆A VT(G) := ∪g∈G VT(g). p ∈ A q ∈ T Altitude Terrain Guarding Problem (ATGP) ATGP(T,A) Given: a terrain T and an altitude line A . A minimum set of guards that see all of T. (Formally: A guard set G⊂A is optimal w.r.t. ATGP(T,A) if G is feasible, that is, T⊆VT(G) , and |G| = OPT(T,A) := min{|C| | C⊂A is feasible w.r.t. ATGP(T,A)} .)

slide-23
SLIDE 23

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon?

slide-24
SLIDE 24

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? monotone polygon

slide-25
SLIDE 25

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? monotone polygon

slide-26
SLIDE 26

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? monotone polygon

slide-27
SLIDE 27

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? uni-monotone polygon

slide-28
SLIDE 28

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? uni-monotone polygon

H

slide-29
SLIDE 29

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? uni-monotone polygon

H

LC(P)

slide-30
SLIDE 30

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? uni-monotone polygon

H

p ∈ P LC(P)

slide-31
SLIDE 31

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? uni-monotone polygon

H

p ∈ P VP(p) - visibility polygon LC(P)

slide-32
SLIDE 32

EuroCG 2018

AGP in uni-monotone polygons

5

uni-monotone polygon? uni-monotone polygon

H

p ∈ P VP(p) - visibility polygon Formally: Art Gallery Problem (AGP) AGP(G,W) Given: a polygon P and sets of guard candidates and points to cover G,W⊆P. A minimum guard set C⊆G that covers W (that is, W⊆VP(C)). We want to solve AGP(P,P). LC(P)

slide-33
SLIDE 33

EuroCG 2018

AGP in uni-monotone polygons

6

If we want to solve the AGP for a uni-monotone polygon, w.l.o.g. we can restrict our guards to be located on H.

slide-34
SLIDE 34

EuroCG 2018

AGP in uni-monotone polygons

6

If we want to solve the AGP for a uni-monotone polygon, w.l.o.g. we can restrict our guards to be located on H. Proof: Consider any optimal guard set G, let g∈G be a guard not located on H

slide-35
SLIDE 35

EuroCG 2018

AGP in uni-monotone polygons

6

If we want to solve the AGP for a uni-monotone polygon, w.l.o.g. we can restrict our guards to be located on H. Proof: Consider any optimal guard set G, let g∈G be a guard not located on H

slide-36
SLIDE 36

EuroCG 2018

AGP in uni-monotone polygons

6

If we want to solve the AGP for a uni-monotone polygon, w.l.o.g. we can restrict our guards to be located on H. Proof: Consider any optimal guard set G, let g∈G be a guard not located on H

slide-37
SLIDE 37

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G).

slide-38
SLIDE 38

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G). Proof: Assume p∈P, p∉LC(P), p∉VP(G)

slide-39
SLIDE 39

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G). Proof: Assume p∈P, p∉LC(P), p∉VP(G)

slide-40
SLIDE 40

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G). Proof: Assume p∈P, p∉LC(P), p∉VP(G)

slide-41
SLIDE 41

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G). Proof: Assume p∈P, p∉LC(P), p∉VP(G)

slide-42
SLIDE 42

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G). Proof: Assume p∈P, p∉LC(P), p∉VP(G)

slide-43
SLIDE 43

EuroCG 2018

AGP in uni-monotone polygons

7

Let P be a uni-monotone polygon, let G be a guard set with g∈H ∀g∈G that covers LC(P), that is, LC(P)⊂VP(G) . Then G covers all of P, that is, P⊆VP(G). Proof: Assume p∈P, p∉LC(P), p∉VP(G) ➜ATGP and AGP for uni-monotone polygons equivalent

slide-44
SLIDE 44

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

slide-45
SLIDE 45

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

NP-hard

slide-46
SLIDE 46

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

NP-hard NP-hard, even in monotone polygons

slide-47
SLIDE 47

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

NP-hard NP-hard, even in monotone polygons

Altitude Terrain Guarding Problem (ATGP) Given: a terrain T and an altitude line A . A minimum set of guards that see all of T.

slide-48
SLIDE 48

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

NP-hard NP-hard, even in monotone polygons

Altitude Terrain Guarding Problem (ATGP) Given: a terrain T and an altitude line A . A minimum set of guards that see all of T. Art Gallery Problem (AGP) in Uni-Monotone Polygons Given: a uni-monotone polygon P. A minimum guard set that covers P.

slide-49
SLIDE 49

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

NP-hard NP-hard, even in monotone polygons

Our Problems: “Inbetween”?!

Altitude Terrain Guarding Problem (ATGP) Given: a terrain T and an altitude line A . A minimum set of guards that see all of T. Art Gallery Problem (AGP) in Uni-Monotone Polygons Given: a uni-monotone polygon P. A minimum guard set that covers P.

slide-50
SLIDE 50

EuroCG 2018

AGP-TGP-ATGP

8

Terrain Guarding Problem (TGP) Given: a terrain T. Find: minimum number of guards located on T. Art Gallery Problem (AGP) Given: a polygon P. A minimum guard set that covers P.

NP-hard NP-hard, even in monotone polygons Both polytime

Our Problems: “Inbetween”?!

Altitude Terrain Guarding Problem (ATGP) Given: a terrain T and an altitude line A . A minimum set of guards that see all of T. Art Gallery Problem (AGP) in Uni-Monotone Polygons Given: a uni-monotone polygon P. A minimum guard set that covers P.

slide-51
SLIDE 51

EuroCG 2018 9

We show:

slide-52
SLIDE 52

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
slide-53
SLIDE 53

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class
slide-54
SLIDE 54

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class

perfect ?

slide-55
SLIDE 55

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class

perfect ?

A set W⊂P (W⊂T ) is a witness set if ∀wi≠wj ∈W we have VP(wi)∩VP(wj) = ∅.

slide-56
SLIDE 56

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class

perfect ?

A set W⊂P (W⊂T ) is a witness set if ∀wi≠wj ∈W we have VP(wi)∩VP(wj) = ∅.

slide-57
SLIDE 57

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class

perfect ?

A set W⊂P (W⊂T ) is a witness set if ∀wi≠wj ∈W we have VP(wi)∩VP(wj) = ∅. A maximum witness set Wopt is a witness set of maximum cardinality, |Wopt| = max{|W|: witness set W}.

slide-58
SLIDE 58

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class

perfect ?

A set W⊂P (W⊂T ) is a witness set if ∀wi≠wj ∈W we have VP(wi)∩VP(wj) = ∅. A maximum witness set Wopt is a witness set of maximum cardinality, |Wopt| = max{|W|: witness set W}. A polygon class P is perfect if

slide-59
SLIDE 59

EuroCG 2018 9

We show:

  • A polytime algorithm for AGTP and AGP in uni-monotone polygons
  • Uni-monotone polygons are perfect - first non-trivial class

perfect ?

A set W⊂P (W⊂T ) is a witness set if ∀wi≠wj ∈W we have VP(wi)∩VP(wj) = ∅. A maximum witness set Wopt is a witness set of maximum cardinality, |Wopt| = max{|W|: witness set W}. A polygon class P is perfect if cardinality of an optimum guard set = cardinality of a maximum witness set ∀P∈P

slide-60
SLIDE 60

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-61
SLIDE 61

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-62
SLIDE 62

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-63
SLIDE 63

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-64
SLIDE 64

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-65
SLIDE 65

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-66
SLIDE 66

EuroCG 2018

Altitude Terrain Guarding Problem

10

Guards to the left “don’t help”:

slide-67
SLIDE 67

EuroCG 2018

Sweep Algorithm

11

slide-68
SLIDE 68

EuroCG 2018

Sweep Algorithm

11

slide-69
SLIDE 69

EuroCG 2018

Sweep Algorithm

11

slide-70
SLIDE 70

EuroCG 2018

Sweep Algorithm

11

slide-71
SLIDE 71

EuroCG 2018

Sweep Algorithm

11

slide-72
SLIDE 72

EuroCG 2018

Sweep Algorithm

11

slide-73
SLIDE 73

EuroCG 2018

Sweep Algorithm

11

slide-74
SLIDE 74

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

slide-75
SLIDE 75

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
slide-76
SLIDE 76

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
slide-77
SLIDE 77

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
slide-78
SLIDE 78

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
slide-79
SLIDE 79

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

slide-80
SLIDE 80

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

slide-81
SLIDE 81

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

  • Delete pec and add pe’c to C
slide-82
SLIDE 82

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

  • Delete pec and add pe’c to C
  • Delete e from Eg and add e’
slide-83
SLIDE 83

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

  • Delete pec and add pe’c to C
  • Delete e from Eg and add e’
slide-84
SLIDE 84

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

  • Delete pec and add pe’c to C
  • Delete e from Eg and add e’
slide-85
SLIDE 85

EuroCG 2018

Sweep Algorithm

12

  • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen

(Eg=E(T)).

  • Sweep along A from left to right
  • Place a guard gi whenever we could no longer see all of an “edge” e if we would move more to the right
  • first point in C.
  • Compute VT(gi)
  • Remove all completely seen edges from Eg
  • For each edge e = {v,w} partially seen by gi: split edge, keep the open interval that is not yet guarded

—>new “edge” e’⊂e

  • Delete pec and add pe’c to C
  • Delete e from Eg and add e’
slide-86
SLIDE 86

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

slide-87
SLIDE 87

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
slide-88
SLIDE 88

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
slide-89
SLIDE 89

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
slide-90
SLIDE 90

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
  • O(n2) preprocessed intervals
slide-91
SLIDE 91

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
  • O(n2) preprocessed intervals
  • For each mark point m remember the rightmost of the two ray-vertices vm
slide-92
SLIDE 92

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
  • O(n2) preprocessed intervals
  • For each mark point m remember the rightmost of the two ray-vertices vm
  • When placing guard g splits edge e, and we are left with interval e’⊂e:
slide-93
SLIDE 93

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
  • O(n2) preprocessed intervals
  • For each mark point m remember the rightmost of the two ray-vertices vm
  • When placing guard g splits edge e, and we are left with interval e’⊂e:
  • Identify mark point, me’, to the right of e’
slide-94
SLIDE 94

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
  • O(n2) preprocessed intervals
  • For each mark point m remember the rightmost of the two ray-vertices vm
  • When placing guard g splits edge e, and we are left with interval e’⊂e:
  • Identify mark point, me’, to the right of e’
  • Shoot ray r from right endpoint of e’ through vme’
slide-95
SLIDE 95

EuroCG 2018

Sweep Algorithm

13

How do we preprocess our terrain to easily identify the point on A that we need to add to C when we split an edge?

  • Sweep rightmost to leftmost vertex
  • For each vertex we shoot ray through all vertices to its left
  • Where rays hit terrain: mark points
  • O(n2) preprocessed intervals
  • For each mark point m remember the rightmost of the two ray-vertices vm
  • When placing guard g splits edge e, and we are left with interval e’⊂e:
  • Identify mark point, me’, to the right of e’
  • Shoot ray r from right endpoint of e’ through vme’
  • Intersection point of r and A is the new closing point
slide-96
SLIDE 96

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible.

slide-97
SLIDE 97

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal.

slide-98
SLIDE 98

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. Proof idea: If we can find a witness set with |W|=|G|, G is optimal.

slide-99
SLIDE 99

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. Proof idea: If we can find a witness set with |W|=|G|, G is optimal. Let Si be the strip of all points with x -coordinates between x(gi−1) + 𝜁 and x(gi).

slide-100
SLIDE 100

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. Proof idea: If we can find a witness set with |W|=|G|, G is optimal. Let Si be the strip of all points with x -coordinates between x(gi−1) + 𝜁 and x(gi). We place a witness wi per guard gi such that VT(wi)⊆Si ∀i.

slide-101
SLIDE 101

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. Proof idea: If we can find a witness set with |W|=|G|, G is optimal. Let Si be the strip of all points with x -coordinates between x(gi−1) + 𝜁 and x(gi). We place a witness wi per guard gi such that VT(wi)⊆Si ∀i.

e’=[vj, q) for some point q∈ej, q≠vj+1 we place witness at q𝜁, a point 𝜁 to the left of q on T

slide-102
SLIDE 102

EuroCG 2018

Sweep Algorithm

14

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. Proof idea: If we can find a witness set with |W|=|G|, G is optimal. Let Si be the strip of all points with x -coordinates between x(gi−1) + 𝜁 and x(gi). We place a witness wi per guard gi such that VT(wi)⊆Si ∀i.

e’=[vj, q) for some point q∈ej, q≠vj+1 we place witness at q𝜁, a point 𝜁 to the left of q on T

Theorem 3: Uni-monotone polygons are perfect.

slide-103
SLIDE 103

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
slide-104
SLIDE 104

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
slide-105
SLIDE 105

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
slide-106
SLIDE 106

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
  • Whenever we insert a guard
slide-107
SLIDE 107

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
  • Whenever we insert a guard
  • Shoot O(n) rays
slide-108
SLIDE 108

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
  • Whenever we insert a guard
  • Shoot O(n) rays
  • For each of intersection points re: shoot ray through vme’
slide-109
SLIDE 109

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
  • Whenever we insert a guard
  • Shoot O(n) rays
  • For each of intersection points re: shoot ray through vme’

➡ O(n2 log n) - not optimized

slide-110
SLIDE 110

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
  • Whenever we insert a guard
  • Shoot O(n) rays
  • For each of intersection points re: shoot ray through vme’

➡ O(n2 log n) - not optimized O(n)

slide-111
SLIDE 111

EuroCG 2018

Runtime

15

  • Preprocessing: mark points O(n2)
  • Accordingly: mark points from left for opening points (using left vertex of an edge to shoot the ray)
  • and for soft opening points (using right vertex of an edge to shoot the ray)
  • Whenever we insert a guard
  • Shoot O(n) rays
  • For each of intersection points re: shoot ray through vme’

➡ O(n2 log n) - not optimized O(n)

slide-112
SLIDE 112

EuroCG 2018 16

Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. Proof idea: If we can find a witness set with |W|=|G|, G is optimal. Let Si be the strip of all points with x -coordinates between x(gi−1) + 𝜁 and x(gi). We place a witness wi per guard gi such that VT(wi)⊆Si ∀i.

e’=[vj, q) for some point q∈ej, q≠vj+1 we place witness at q𝜁, a point 𝜁 to the left of q on T

Theorem 3: Uni-monotone polygons are perfect.

Thanks.