Return to project main page

AGPPROJ: The Art Gallery Problem With Point Guards, by D. C. Tozoni, P. J. de Rezende and C. C. de Souza

Citing this page:

    Use the BibTeX entry:

    @Misc{art-gallery-unicamp-page,
     author = {Davi C. Tozoni and Pedro J. de Rezende and Cid C. de Souza},
     title = {The {Art Gallery Problem} Project},
     year = {2013},
     note = {\sl{www.ic.unicamp.br/$\sim$cid/Problem-instances/Art-Gallery/AGPPG}}
    }


Abstract

The aim of this research group is to develop a new method for solving the Art Gallery Problem With Point-Guards. The AGP is a well known NP-hard problem and, for this reason, its solutions are usually heuristics based, which do not guarantee optimal solutions. Some nice outcomes were already obtained by the researcher group, including some theoretical results and the development and implementation of a new technique that is capable of solving to optimality the vast majority of benchmark instances in literature.


Work Description

The Art Gallery Problem was initially proposed by Victor Klee in 1973 as the question of determining the minimum number of guards sufficient to watch over an entire art gallery, represented by a n-wall simple polygon. The Problem's input consists of a simple polygon, representing the outline of an art gallery, and one seeks to find a smallest set of points where guards (or cameras) should be placed so that the entire polygon is visually covered.

The first AGP problem studied by the research group at Unicamp was the Art Gallery Problem with Vertex Guards (AGPVG), whose goal is to minimize the number of vertex guards required to watch an art gallery whose boundary is an n-vertex polygon P. Unlike other previous publications, the objective was to construct an exact algorithm for AGPVG and, as a consequence, a fast algorithm with proven convergence was developed and tested.

Then, in 2011, the research group began working on the Art Gallery Problem with Point Guards (AGPPG or simply AGP), which is the most general version of the AGP, where the guards can be placed anywhere in the interior of the input polygon (including also the boundary). The idea obtained used in the resolution of AGPVG was adapted and incremented to construct a new method, which is able to find exact solutions for the AGP With Point-Guards. Currently, an algorithm has already been implemented and tested and has shown great results in comparison with other state of art techniques.

The picture on the left displays a summary of our technique and the animation on the right side shows and execution example of our current method for solving the AGP With Point Guards. More information about our techniques and also about AGP can be found in [1] and [2].
The research group that is working on the Art Gallery Problem with Points Guards is presented below:
  • Davi Colli Tozoni
  • Pedro Jussieu de Rezende
  • Cid Carvalho de Souza


Implementation

After designing the algorithm, a software was implemented to allow computational testing. The program was developed in C++ coding language and using the library CGAL (Computational Geometry Algorithms Library) for dealing with geometric tasks, such as: visibility operations, arrangements constructions, partitioning of polygons and other geometric tasks. Furthermore, the ILP Solvers XPRESS Optimization Suite and GLPK (GNU Linear Programming Kit) were also employed to solve ILP models of the Set Cover Problem, which is used in our method as a representation of a discretized version of AGP.

Our code that implements the idea presented in [3] is available and can be downloaded at the link below:


Instances AGP2013a

Instances with holes created for testing our algorithm. Four generators (g1, g2, gB and gD) were developed to obtain a total of 450 polygons, with sizes between 100 and 500 vertices. The instances can be downloaded below:

Polygons without holes were also used during our experiments. Some of these were also created by the research group at Unicamp while solving AGPFC and can be found here.


File Format of Instances

Each file consists of one line divided in four parts. The first part is an integer value that represents the number of vertices of the boundary.
The second part is a counterclockwise sequence of the vertices of the boundary. Each vertex is represented by its x and y coordinates each of which is written as the quotient of two integers int/int.

After all the information about the boundary has been placed, the number of holes is presented, followed by a sequence of the representation of each hole, with the same format used for the boundary.


References




Contacts

  • Davi Colli Tozoni:    
  • Pedro Jussieu de Rezende:     homepage    
  • Cid Carvalho de Souza:     homepage    

Research supported by: