altitude terrain guarding and guarding uni monotone
play

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:


  1. AGP-TGP-ATGP Terrain Guarding Problem (TGP) Art Gallery Problem (AGP) Given: a terrain T. Given: a polygon P. Find: minimum number of guards located on T. A minimum guard set that covers P. NP-hard, even in monotone polygons NP-hard 8 EuroCG 2018

  2. AGP-TGP-ATGP Altitude Terrain Guarding Problem (ATGP) Given: a terrain T and an altitude line A . A minimum set of guards that see all of T. Terrain Guarding Problem (TGP) Art Gallery Problem (AGP) Given: a terrain T. Given: a polygon P. Find: minimum number of guards located on T. A minimum guard set that covers P. NP-hard, even in monotone polygons NP-hard 8 EuroCG 2018

  3. AGP-TGP-ATGP 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. Terrain Guarding Problem (TGP) Art Gallery Problem (AGP) Given: a terrain T. Given: a polygon P. Find: minimum number of guards located on T. A minimum guard set that covers P. NP-hard, even in monotone polygons NP-hard 8 EuroCG 2018

  4. AGP-TGP-ATGP 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. Our Problems: “Inbetween”?! Terrain Guarding Problem (TGP) Art Gallery Problem (AGP) Given: a terrain T. Given: a polygon P. Find: minimum number of guards located on T. A minimum guard set that covers P. NP-hard, even in monotone polygons NP-hard 8 EuroCG 2018

  5. AGP-TGP-ATGP Both polytime 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. Our Problems: “Inbetween”?! Terrain Guarding Problem (TGP) Art Gallery Problem (AGP) Given: a terrain T. Given: a polygon P. Find: minimum number of guards located on T. A minimum guard set that covers P. NP-hard, even in monotone polygons NP-hard 8 EuroCG 2018

  6. We show: 9 EuroCG 2018

  7. We show: - A polytime algorithm for AGTP and AGP in uni-monotone polygons 9 EuroCG 2018

  8. We show: - A polytime algorithm for AGTP and AGP in uni-monotone polygons - Uni-monotone polygons are perfect - first non-trivial class 9 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 ? 9 EuroCG 2018

  10. 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 ∀ w i ≠ w j ∈ W we have V P (w i ) ∩ V P (w j ) = ∅ . 9 EuroCG 2018

  11. 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 ∀ w i ≠ w j ∈ W we have V P (w i ) ∩ V P (w j ) = ∅ . 9 EuroCG 2018

  12. 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 ∀ w i ≠ w j ∈ W we have V P (w i ) ∩ V P (w j ) = ∅ . A maximum witness set W opt is a witness set of maximum cardinality, |W opt | = max{|W|: witness set W}. 9 EuroCG 2018

  13. 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 ∀ w i ≠ w j ∈ W we have V P (w i ) ∩ V P (w j ) = ∅ . A maximum witness set W opt is a witness set of maximum cardinality, |W opt | = max{|W|: witness set W}. A polygon class P is perfect if 9 EuroCG 2018

  14. 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 ∀ w i ≠ w j ∈ W we have V P (w i ) ∩ V P (w j ) = ∅ . A maximum witness set W opt is a witness set of maximum cardinality, |W opt | = 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 9 EuroCG 2018

  15. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  16. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  17. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  18. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  19. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  20. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  21. Altitude Terrain Guarding Problem Guards to the left “don’t help”: 10 EuroCG 2018

  22. Sweep Algorithm 11 EuroCG 2018

  23. Sweep Algorithm 11 EuroCG 2018

  24. Sweep Algorithm 11 EuroCG 2018

  25. Sweep Algorithm 11 EuroCG 2018

  26. Sweep Algorithm 11 EuroCG 2018

  27. Sweep Algorithm 11 EuroCG 2018

  28. Sweep Algorithm 11 EuroCG 2018

  29. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). 12 EuroCG 2018

  30. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right 12 EuroCG 2018

  31. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . 12 EuroCG 2018

  32. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) 12 EuroCG 2018

  33. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g 12 EuroCG 2018

  34. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e 12 EuroCG 2018

  35. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e 12 EuroCG 2018

  36. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e • Delete p ec and add p e’c to C 12 EuroCG 2018

  37. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e • Delete p ec and add p e’c to C • Delete e from E g and add e’ 12 EuroCG 2018

  38. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e • Delete p ec and add p e’c to C • Delete e from E g and add e’ 12 EuroCG 2018

  39. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e • Delete p ec and add p e’c to C • Delete e from E g and add e’ 12 EuroCG 2018

  40. Sweep Algorithm • Start: empty set of guards G = ∅ ; at leftmost point of A ; all edges in E(T) are completely unseen (E g =E(T)). • Sweep along A from left to right • Place a guard g i whenever we could no longer see all of an “edge” e if we would move more to the right - first point in C . • Compute V T (g i ) • Remove all completely seen edges from E g • For each edge e = {v,w} partially seen by g i : split edge, keep the open interval that is not yet guarded —>new “edge” e’ ⊂ e • Delete p ec and add p e’c to C • Delete e from E g and add e’ 12 EuroCG 2018

  41. Sweep Algorithm 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? 13 EuroCG 2018

  42. Sweep Algorithm 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 13 EuroCG 2018

  43. Sweep Algorithm 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 13 EuroCG 2018

  44. Sweep Algorithm 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 13 EuroCG 2018

  45. Sweep Algorithm 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(n 2 ) preprocessed intervals 13 EuroCG 2018

  46. Sweep Algorithm 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(n 2 ) preprocessed intervals • For each mark point m remember the rightmost of the two ray-vertices v m 13 EuroCG 2018

  47. Sweep Algorithm 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(n 2 ) preprocessed intervals • For each mark point m remember the rightmost of the two ray-vertices v m • When placing guard g splits edge e, and we are left with interval e’ ⊂ e: 13 EuroCG 2018

  48. Sweep Algorithm 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(n 2 ) preprocessed intervals • For each mark point m remember the rightmost of the two ray-vertices v m • When placing guard g splits edge e, and we are left with interval e’ ⊂ e: ‣ Identify mark point, m e’ , to the right of e’ 13 EuroCG 2018

  49. Sweep Algorithm 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(n 2 ) preprocessed intervals • For each mark point m remember the rightmost of the two ray-vertices v m • When placing guard g splits edge e, and we are left with interval e’ ⊂ e: ‣ Identify mark point, m e’ , to the right of e’ ‣ Shoot ray r from right endpoint of e’ through v m e’ 13 EuroCG 2018

  50. Sweep Algorithm 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(n 2 ) preprocessed intervals • For each mark point m remember the rightmost of the two ray-vertices v m • When placing guard g splits edge e, and we are left with interval e’ ⊂ e: ‣ Identify mark point, m e’ , to the right of e’ ‣ Shoot ray r from right endpoint of e’ through v m e’ ‣ Intersection point of r and A is the new closing point 13 EuroCG 2018

  51. Sweep Algorithm Lemma 1: The set G output by the algorithm is feasible. 14 EuroCG 2018

  52. Sweep Algorithm Lemma 1: The set G output by the algorithm is feasible. Theorem 2: The set G output by the algorithm is optimal. 14 EuroCG 2018

  53. Sweep Algorithm 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. 14 EuroCG 2018

  54. Sweep Algorithm 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 S i be the strip of all points with x -coordinates between x(g i − 1 ) + 𝜁 and x(g i ). 14 EuroCG 2018

  55. Sweep Algorithm 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 S i be the strip of all points with x -coordinates between x(g i − 1 ) + 𝜁 and x(g i ). We place a witness w i per guard g i such that V T (w i ) ⊆ S i ∀ i. 14 EuroCG 2018

Recommend


More recommend