Computation and Complexity of Visibility in Geometric Environments
Total Page:16
File Type:pdf, Size:1020Kb
Computation and complexity of visibility in geometric environments Computation and complexity of visibility in geometric environments Berekenen en complexiteit van zichtbaarheid in geometrische omgevingen (met een samenvatting in het Nederlands) Proefschrift ter verkrijging van de graad van doctor aan de Universiteit Utrecht op gezag van de rector magnificus, prof.dr. J.C. Stoof, ingevolge het besluit van het college voor promoties in het openbaar te verdedigen op woensdag 9 april 2008 des middags te 12.45 uur door Esther Jantje Moet geboren op 28 februari 1980 te Dirksland Promotor: Prof.dr. M. H. Overmars Co-promotor: Dr. M. J. van Kreveld Contents iii Contents 1 Introduction 1 1.1 Motivation . .2 1.1.1 Visibility in robotics . .2 1.1.2 Visibility in GIS . .3 1.1.3 Visibility in computer graphics . .4 1.2 Visibility problems in computational geometry . .5 1.2.1 Modeling the world . .6 1.2.2 Modeling visibility . .7 1.3 Types of problems . .9 1.3.1 Guarding problems . 10 1.3.2 Computing what is visible . 11 1.3.3 Analytical data structures . 12 1.4 Contributions of this thesis . 13 2 Guarding art galleries by guarding witnesses 15 2.1 Introduction . 16 2.2 Preliminaries . 17 2.3 Examples . 21 2.4 Finite witness sets . 23 2.5 Minimum size witness sets . 28 2.5.1 Reflex-reflex and convex-reflex edges . 28 2.5.2 Convex-convex edges . 29 2.5.3 Placement of witnesses . 29 2.5.4 Size of a minimum size witness set . 30 2.6 Algorithms . 31 2.6.1 Visibility kernel arrangement . 31 2.6.2 Algorithms . 33 2.7 Concluding remarks . 35 3 Region intervisibility in terrains 37 3.1 Introduction . 38 3.2 Preliminaries . 39 3.3 Complete intervisibility . 40 iv Contents 3.3.1 Geometric properties . 40 3.3.2 Algorithm . 42 3.3.3 Running time analysis . 44 3.3.4 3sum-hardness . 45 3.4 Semi-complete intervisibility . 47 3.4.1 Aspect graph approach . 48 3.4.2 Using the edge visibility map . 49 3.5 Partial intervisibility . 50 3.6 Concluding remarks . 51 4 Visibility maps of segments and triangles in 3D 53 4.1 Introduction . 54 4.2 Preliminaries . 56 4.3 The strong visibility map of an edge . 58 4.4 The weak visibility map of an edge . 63 4.4.1 Lower bounds . 63 4.4.2 Upper bounds . 64 4.4.3 Algorithm . 66 4.5 The triangle visibility map . 68 4.5.1 The strong visibility map of a triangle . 68 4.5.2 The weak visibility map of a triangle . 69 4.5.3 Algorithm . 71 4.6 Concluding remarks . 72 5 On realistic terrains 73 5.1 Introduction . 74 5.2 Input model . 76 5.2.1 No subset of assumptions is sufficient . 79 5.2.2 Auxiliary results . 82 5.2.3 Dihedral angles . 84 5.3 The visibility map . 86 5.3.1 Upper bounds . 86 5.3.2 Lower bounds . 88 5.4 The shortest path map and the Voronoi diagram . 90 5.4.1 Bisectors . 90 5.4.2 Shortest path maps . 92 5.4.3 Voronoi diagram . 97 5.5 Concluding remarks . 99 6 Experimental verification of a realistic input model for terrains 101 6.1 Introduction . 102 6.2 Experimental setup . 103 6.2.1 DEM data . 103 6.2.2 TIN generation . 104 6.3 The model . 108 Contents v 6.4 Evaluation of the model parameters . 108 6.4.1 Aspect ratio . 108 6.4.2 Fatness . 109 6.4.3 Edge length ratio . 111 6.4.4 Dihedral angle . 112 6.4.5 Computation . 113 6.4.6 Results . 114 6.5 Conclusions . 117 Screenshots of the terrains . 118 7 Conclusions 127 Acknowledgements 132 Bibliography 133 Samenvatting 147 Index 146 Curriculum vitae 151 vi Contents 1 Chapter 1 Introduction For many research fields, it is clear what you study and why. In medicine, we want to make people as healthy as possible. In biology and physics, we try to understand the physical world around us. In history, we study the past to learn from our mistakes for the future. But for many people, it is not very clear what a computer scientist actually does. One way to describe our daily job is that we try to describe the world around us mathematically, and then solve problems from this real world with the aid of a computer. Problems that are studied by computer scientists usually originate in other areas of research or in applications in business or industry. These problems come to the attention of computer scientists because other people encountered these problems in real life, and were not able to solve them with the techniques that they had at their disposal, or not within a reasonable time frame, or not without a computer. To be able to perform a (theoretical) computer science study, it is necessary to ab- stract from the applications and concentrate on the fundamental mathematical problems that lie underneath. In this thesis, we study visibility problems, which are geometric in nature. This leads us to the field of computational geometry (CG). The main topic of this thesis is visibility amidst objects in two and three dimensional environments. Studying fundamental and theoretical problems does not mean we can forget about the motivation behind what we do. Even the reason for studying a particular funda- mental problem can still come from a real-world application. When we study abstract problems, whose solutions sometimes are merely of theoretical interest, it is important to keep in mind exactly why we study these problems. Therefore, we give an extensive overview of applications and application areas in which visibility plays a role. This motivation covers a large part of this first chapter. After that, we discuss visibility research in computational geometry: previous research and the topics of this thesis, and the relation between these two. 2 Introduction 1.1 Motivation There are three application areas that are viewed as the main sources of the need to study visibility: robotics, GIS, and computer graphics. We discuss these fields in more detail below. This overview is not intended to be complete; in the first place it tries to give a glimpse of the many appearances of visibility. 1.1.1 Visibility in robotics Robot motion planning and robotic surveillance raised numerous different visibility chal- lenges which, once described geometrically, posed many interesting theoretical problems. The very first visibility problem was actually motivated by security issues: where do you need to place cameras, and how many of them, in order to guard your valuables? More details on this so-called Art Gallery Problem are given in Section 1.3.1. The best-known use of visibility in robotics is the use of the visibility graph in exact robot motion planning [117, 120, 146]. The visibility graph is a graph in which each vertex represents a (point) location, and if two locations can see each other, then an edge is drawn between them. Such an edge corresponds to a straight visible path from one location to the other. This path is in fact the shortest path between these two locations. In a simple version of the exact robot motion planning problem, an environment with obstacles and the source and target position for a point robot are given. The algorithm computes the visibility graph of the vertices of the obstacles, then finds a visible visibility graph vertex for both the source and the target position, finds the shortest path in the visibility graph between these two vertices, and then combines all the information to obtain a collision-free path. With the output-sensitive visibility graph construction algorithm by Ghosh and Mount [90], it is possible to find a collision- free path in O(n log n + K) time, where n is the total number of vertices of the objects, and K is the number of edges in the visibility graph. Another important topic in robotics is the exploration of, and navigation in, (par- tially) unknown environments, see [52, 187] and several chapters in [33, 48, 189] for an overview of problems and techniques. Obviously, visibility plays an important role herein, since we must see something to be able to explore it. By examining the view for a robot at different times and positions, the environment becomes known little by little. Exploring such an unknown environment often yields a (2- or 3-D) model that can be used later for other purposes, and this technique is therefore also called map or model building [8, 127, 199]. A strongly related topic is that of visibility-based lo- calization: given the view around a robot, determine where it is located in a known environment [116, 188, 198]. Often, these two problems are tackled at the same time, which is studied in the important subfield in robotics called SLAM: Simultaneous Lo- calization and Mapping [126, 177, 187, 189]. Yet another related topic is motion planning with visibility constraints [118, 184]. Such problems are usually set in dynamic environments. This problem has many vari- ants, but the common characteristic is that both motion and visibility constraints need to be satisfied, and often another criterion, such as path length, can be optimized. This visibility-constrained motion planning has applications in, among others, pursuit- 1.1 Motivation 3 evation problems [85, 95, 144, 167], in which one wants to find and track a (hiding) target and first achieve and then maintain visibility. Many of these problems also have applications in games, in both serious and recreational gaming. Visibility is often modeled theoretically by the existence of a simple line-of-sight.