• Nenhum resultado encontrado

0,5 1,0 1,5 2,0 2,5 0 500 1.000 1.500 2.000 2.500 3.000 3.500 4.000 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 Vértices

Memória Tempo Total Restrições Totais

Figura 5.5: Crescimento da mem´oria utilizada, tempo total e n´umero total de restri¸c˜oes para pol´ıgonos simples.

para ambas as medidas. Como pode ser observado no gr´afico, a mem´oria e tempo total crescem proporcionalmente com o aumento da quantidade de restri¸c˜oes. Em m´edia, de um grupo de instˆancias para o seguinte, com 100 v´ertices a mais, a mem´oria total utilizada tem um incremento de 29, 2%±7, 3% e o tempo de 39, 1%±12, 2%, enquanto a quantidade de restri¸c˜oes sobe 39, 6% ± 8, 4%.

5.4

Pol´ıgonos com Buracos

Uma evolu¸c˜ao comum de problemas envolvendo variantes da galeria de arte ´e considerar instˆancias formadas por pol´ıgonos com buracos. Um pol´ıgono simples com buracos pode ser representado como um pol´ıgono simples com um ou mais buracos poligonais em seu interior, sendo que estes ´ultimos n˜ao apresentam sobreposi¸c˜ao entre si. A ´area interna de

5.4. Pol´ıgonos com Buracos 44

cada buraco ´e considerada externa ao pol´ıgono. Dessa forma, na discretiza¸c˜ao do NWLP, para separar as faces de sombra internas das faces de luz externas, ´e necess´ario considerar tamb´em as faces de luz externas ao pol´ıgonos que s˜ao internas aos buracos. Note-se que, agora, al´em do bordo externo, guardas em posi¸c˜ao natural podem estar em v´ertices e arestas dos buracos.

Para testar nosso algoritmo para pol´ıgonos com buracos, um novo conjunto de instˆancias foi gerado e adicionado ao nosso benchmark. O intervalo [100, 1000], em incrementos de 100, foi utilizado para o n´umero total de v´ertices. Para uma instˆancia com n v´ertices,

n/4 deles foram utilizados no bordo externo e 3n/4 deles distribu´ıdos entre n/10 buracos.

Para cada tamanho de pol´ıgono, 30 instˆancias foram geradas, totalizando 300 pol´ıgonos simples com buracos. Para mais informa¸c˜oes sobre a gera¸c˜ao de pol´ıgonos consulte o Apˆendice A. Utilizaremos na an´alise abaixo “pol´ıgonos simples” para nos referirmos as instˆancias anteriores, sem buracos, e “pol´ıgono com buracos” para as novas instˆancias.

O novo algoritmo iterativo, por apresentar melhores resultados para as instˆancias maiores, foi o empregado nos testes com os pol´ıgonos com buracos. Os resultados podem ser vistos na Tabela 5.4.

Solu¸c˜ao Restri¸c˜oes Tempodo Algoritmo (s)

V´ertices Otima´ Itera¸c˜oes Total Ultima Itera¸c˜´ ao Varredura Iterativo

100 55,0 3,8 70.776 273,8 0,7 0,2 200 109,9 3,3 832.358 452,5 2,6 0,8 300 163,1 3,8 3.704.446 569,1 6,7 10,3 400 218,2 4,3 10.662.670 823,9 10,0 38,6 500 271,5 5,1 25.238.050 1249,7 17,9 83,4 600 324,7 4,4 50.231.944 1166,6 18,2 155,3 700 379,7 4,2 90.808.280 1086,4 44,1 228,2 800 434,8 4,7 152.186.543 1297,7 46,3 245,7 900 487,8 4,0 236.694.975 1803,4 68,3 283,1 1000 538,0 3,9 359.570.838 1898,1 70,3 288,2

Tabela 5.4: Solu¸c˜ao, n´umero de itera¸c˜oes, tamanho do modelo e tempo m´edio para pol´ıgonos simples com buracos.

Em m´edia, os pol´ıgonos com buracos precisaram de 4, 4% ± 0, 7% mais guardas do que os pol´ıgonos simples. A compara¸c˜ao entre as quantidades ´otimas de guardas nos dois casos pode ser visualizada na Figura 5.6.

Em m´edia, os pol´ıgonos com buracos necessitaram 4, 2% ± 11, 0% mais itera¸c˜oes para serem resolvidos do que os pol´ıgonos simples, requerendo, em m´edia, 4, 1 ± 0, 5 itera¸c˜oes. A compara¸c˜ao entre o n´umero de itera¸c˜oes executadas para os dois conjuntos de instˆancias pode ser vista na Figura 5.7.

5.4. Pol´ıgonos com Buracos 45 0 100 200 300 400 500 600 100 200 300 400 500 600 700 800 900 1000 Gua rdas Vértices

Polígonos Simples Plígono com Buraco

5.4. Pol´ıgonos com Buracos 46 0 1 2 3 4 5 6 100 200 300 400 500 600 700 800 900 1000 It er ões Vértices

Polígonos Simples Polígono com Buraco

Figura 5.7: N´umero m´edio de itera¸c˜oes para pol´ıgonos simples e pol´ıgonos com buracos.

Em rela¸c˜ao ao tamanho do modelo, os pol´ıgonos com buracos possuem um total de restri¸c˜oes 3, 7%±6, 0% maior do que os pol´ıgonos simples, e, na ´ultima itera¸c˜ao, resultaram num modelo 4, 9% ± 7, 3% maior.

O aumento na quantidade de restri¸c˜oes e n´umero de itera¸c˜oes, em compara¸c˜ao aos pol´ıgonos simples, fizeram com que os pol´ıgonos com buracos precisassem, em m´edia, de 46, 8% ± 25, 2% mais tempo para terem seus ´otimos comprovados. A compara¸c˜ao entre o tempo dos dois conjuntos de instˆancias pode ser vista na Figura 5.8.

Apesar do maior tempo de c´alculo, todas as instˆancias envolvendo pol´ıgonos com bu- racos foram solucionadas dentro do limite m´aximo de vinte minutos e nenhuma instˆancia precisou mais do que seis minutos para ser resolvida.

5.4. Pol´ıgonos com Buracos 47 0 50 100 150 200 250 300 350 100 200 300 400 500 600 700 800 900 1000 Temp o (s) Vértices

Polígonos Simples Polígono com Buraco

Figura 5.8: Tempo m´edio do algoritmo iterativo para pol´ıgonos simples e pol´ıgonos com buracos.

Cap´ıtulo 6

Conclus˜ao e Trabalhos Futuros

At´e onde sabemos, n˜ao h´a resultados anteriores ao trabalho feito nesta disserta¸c˜ao repor- tando solu¸c˜oes pr´aticas para o problema de posicionamento natural de antenas. Al´em da prova de NP-completude [6], apenas alguns resultados te´oricos sobre limitantes inferiores e superiores haviam sido publicados at´e agora [4, 13, 7].

Neste trabalho, apresentamos uma discretiza¸c˜ao para o problema e um modelo de programa¸c˜ao linear inteira para resolvˆe-lo de forma exata. Atrav´es deste modelo inicial, fomos capazes de resolver instˆancias de at´e 60 v´ertices ao restringirmos o tempo m´aximo de computa¸c˜ao a 20 minutos.

Posteriormente, estudando as propriedades das faces de sombra e luz, pudemos reduzir a quantidade de restri¸c˜oes do modelo em 98, 9%±0, 5%. Com este decr´escimo no tamanho da formula¸c˜ao, respeitando o mesmo limite de tempo, conseguimos solucionar instˆancias de at´e 100 v´ertices.

Neste ponto, pareceu-nos que hav´ıamos esgotado a possiblidade de melhorar o desem- penho computacional do algoritmo caso n˜ao houvesse uma quebra de paradigma. Como resultado desta observa¸c˜ao, propusemos um algoritmo iterativo em que v´arios modelos menores eram resolvidos a cada passo, at´e que, na ´ultima itera¸c˜ao, fosse poss´ıvel con- cluir que a solu¸c˜ao do modelo menor e a do original eram coincidentes. Com isso, foram resolvidas instˆancias de 1.000 v´ertices em menos de 10 minutos, utilizando, em m´edia, apenas 1, 9% ± 5, 8% das restri¸c˜oes na ´ultima itera¸c˜ao, j´a considerado o modelo reduzido decorrente do uso das propriedades das faces de sombra e luz.

Finalmente, a inicializa¸c˜ao do algoritmo iterativo com um subconjunto adequado das restri¸c˜oes, permitiu resolver todas as instˆancias de 1.000 v´ertices em menos de seis mi- nutos, incluindo pol´ıgonos com buracos. Este ganho foi alcan¸cado mediante um estudo cuidadoso em que procuramos identificar as rela¸c˜oes de dominˆancia entre as desigualdades do modelo de programa¸c˜ao linear inteira.

Ao final deste trabalho, atrav´es de uma abordagem n˜ao-trivial do problema em que

49

utilizamos t´ecnicas que possibilitaram ir al´em da resolu¸c˜ao ingˆenua do modelo PLI, fomos capazes de resolver, na otimalidade, instˆancias de tamanho significativo.

Heur´ısticas, outros modelos PLI ou mesmo solu¸c˜oes diferentes podem ser comparadas aos resultados apresentados na disserta¸c˜ao acessando-se o benchmark dispon´ıvel publi- camente em [12]. Acreditamos que o conhecimento e estudo de um grande n´umero de instˆancias com solu¸c˜oes ´otimas comprovadas podem levar ao desenvolvimento de novos resultados para o problema. Al´em disso, extens˜oes das abordagens mostradas neste tra- balho para guardas em posi¸c˜oes mais gerais, como v´ertices da subdivis˜ao planar, valem a pena ser investigadas.

A pesquisa desenvolvida nesta disserta¸c˜ao deu origem ao trabalho “An Efficient Exact

Algorithm for the Natural Wireless Localization Problem” que foi aceito e apresentado no CCCG 2013 – The 25th Canadian Conference on Computational Geometry, uma das mais

importantes conferˆencias na ´area de Geometria Computacional. Ap´os a participa¸c˜ao no evento, fomos convidados a submeter uma vers˜ao completa do artigo para uma edi¸c˜ao especial do peri´odico CGTA – Computational Geometry: Theory and Applications, a qual foi aceita para publica¸c˜ao.

Referˆencias Bibliogr´aficas

[1] J. Bentley and T. Ottmann. Algorithms for reporting and counting geometric inter- sections. Computers, IEEE Transactions on, Volume C-28(9):pages 643–647, 1979. [2] D. Borrmann, P. J. de Rezende, C. C. de Souza, S. P. Fekete, S. Friedrichs, A. Kr¨oller,

A. N¨uchter, C. Schmidt, and D. C. Tozoni. Point guards and point clouds: Solving general art gallery problems. In Proceedings of the Twenty-ninth Annual Symposium

on Computational Geometry, pages 347–348, New York, 2013. ACM.

[3] P. Bose, L. Guibas, A. Lubiw, M. Overmars, D. Souvaine, and J. Urrutia. The flo- odlight problem. International Journal of Computational Geometry & Applications, 7(01n02):153–163, 1997.

[4] T. Christ and M. Hoffmann. Wireless localization with vertex guards is NP-hard. In 21st Canadian Conference on Computational Geometry, pages 149–152, Toronto, 2009.

[5] T. Christ and M. Hoffmann. Wireless localization within orthogonal polyhedra. In

23rd Canadian Conference on Computational Geometry, pages 467–472, Vancouver,

2011.

[6] T. Christ, M. Hoffmann, and Y. Okamoto. Natural wireless localization is NP-hard. In Abstracts 25th European Workshop on Computational Geometry, pages 175–178, Bruxelles, 2009.

[7] T. Christ, M. Hoffmann, Y. Okamoto, and T. Uno. Improved bounds for wireless localization. In Algorithm Theory - SWAT 2008, volume 5124 of Lecture Notes in

Computer Science, pages 77–89, G¨oteborg, 2008. Springer Berlin Heidelberg.

[8] T. Christ and A. Mishra. Wireless localization with vertex guards. In Abstracts 27th

European Workshop on Computational Geometry, Morschach, 2011.

REFER ˆENCIAS BIBLIOGR ´AFICAS 51

[9] J. Chun, M. Korman, M. N¨ollenburg, and T. Tokuyama. Consistent digital rays. In

Twenty-fourth Annual Symposium on Computational Geometry, pages 355–364, New

York, 2008.

[10] M. C. Couto, C. C. de Souza, and P. J. de Rezende. Experimental evaluation of an exact algorithm for the orthogonal art gallery problem. In Proceedings of the 7th

International Conference on Experimental Algorithms, pages 101–113, 2008.

[11] M. C. Couto, C. C. de Souza, and P. J. de Rezende. An exact algorithm for minimizing vertex guards on art galleries. International Transactions in Operational Research, 18:425–448, 2011.

[12] B. E. Crepaldi, P. J. de Rezende, and C. C. de Souza. The Wireless Localization project, 2013. www.ic.unicamp.br/∼cid/Problem-instances/Wireless-Localization. [13] M. Damian, R. Y. Flatland, J. O’Rourke, and S. Ramaswami. A new lower bound

on guard placement for wireless localization. 17th Fall Workshop on Computational

Geometry, 2007.

[14] T. K. Dey. Triangulation and CSG representation of polyhedra with arbitrary genus. In Seventh Annual Symposium on Computational Geometry, pages 364–371, 1991. [15] D. Dobkin, L. Guibas, J. Hershberger, and J. Snoeyink. An efficient algorithm for

finding the CSG representation of a simple polygon. Algorithmica, 10(1):1–23, 1993. [16] D. Eppstein, M. T. Goodrich, and N. Sitchinava. Guard placement for efficient point- in-polygon proofs. In Twenty-third Annual Symposium on Computational Geometry, pages 27–36, 2007.

[17] D. T. Lee and A. K. Lin. Computational complexity of art gallery problems. In

IEEE Transactions on Information Theory, pages 276–282, 1986.

[18] E. Markou, S. Zachos, and C. Fragoudakis. Maximizing the guarded boundary of an art gallery is apx-complete. In Computational Geometry: Theory and Applications, volume 38, pages 24–35, 2003.

[19] J. O’Rourke. Galleries need fewer mobile guards: A variation on chv´atal’s theorem. In Geometriae Dedicata, volume 14, pages 273–283. Kluwer Academic Publishers, 1983.

[20] J. O’Rourke. Art gallery theorems and algorithms. Oxford University Press, Inc., New York, 1987.

REFER ˆENCIAS BIBLIOGR ´AFICAS 52

[21] J. Urrutia. Art gallery and illumination problems. In Handbook of Computational

Geometry, pages 973–1027. North-Holland, 2000.

[22] J. van Leeuwen and A. Schoone. Untangling a Traveling Salesman Tour in the Plane. Rijksuniversiteit. Vakgroep Informatica, 1980.

Apˆendice A

Gerador de Instˆancias

As avalia¸c˜oes experimentais apresentadas neste trabalho utilizaram dois conjuntos de instˆancias, formados por pol´ıgonos simples, respectivamente, sem buracos e com buracos (poligonais). Nesta se¸c˜ao, descreveremos a forma como essas instˆancias foram geradas.

Todos os pol´ıgonos simples, incluindo os buracos, foram aleatoriamente gerados utili- zando fun¸c˜oes do CGAL 4.2 (Computational Geometry Algorithms Library).

Para entender este processo, imagine um conjunto de pontos aleatoriamente gera- dos e uniformemente distribu´ıdos num dado retˆangulo. A fun¸c˜ao random polygon 2 do CGAL gera um pol´ıgono (n˜ao necessariamente simples) cujos v´ertices s˜ao uma permuta¸c˜ao aleat´oria destes pontos e aplica o m´etodo de elimina¸c˜ao de intersec¸c˜ao entre arestas base- ado no 2-opt moves (veja [22]). Este processo foi o utilizado para gerar todos os pol´ıgonos simples de nosso benchmark. O n´umero de v´ertices destas instˆancias foram escolhidas nos intervalos: [20, 100] em incrementos de 20, e (100, 1000] em incrementos de 100. Um total de 420 instˆancias foram geradas (30 de cada tamanho) desta maneira. Exemplos de pol´ıgonos simples gerados podem ser vistos nas Figuras A.1 e A.2.

Para o segundo conjunto de instˆancias, o processo funciona da seguinte forma: ap´os criar um pol´ıgono simples P , para ser o bordo externo, considere que queremos adicionar no seu interior h buracos que totalizem v v´ertices. Ap´os gerar uma parti¸c˜ao uniforme de v em h partes, iterativamente formamos h buracos do seguinte modo. A cada itera¸c˜ao, sele- cionamos aleatoriamente um ponto no interior do pol´ıgono e criamos, centrado no mesmo, um quadrado, com lados paralelos aos eixos, inteiramente contido em P . Este quadrado ´e ent˜ao esticado, em cada uma das quatro dire¸c˜oes ortogonais, escolhidas numa ordem aleat´oria, em λD, onde λ ´e um fator escolhido aleatoriamente no intervalo [0.25, 0.75] e D ´e o m´aximo que podemos estic´a-lo na dada dire¸c˜ao sem que ultrapasse o bordo externo. Um buraco, da mesma forma que um pol´ıgono simples, ´e ent˜ao criado dentro do retˆangulo obtido no passo anterior, com um n´umero de v´ertices escolhido dentre uma das partes, ainda n˜ao utilizada, da parti¸c˜ao de v mencionada anteriormente. Os valores do intervalo

54

Figura A.1: Pol´ıgono simples com 50 v´ertices.

55

Figura A.3: Pol´ıgono com 500 v´ertices e 50 buracos.

[100, 1000], em incrementos de 100, foram usados para corresponder ao n´umero total de v´ertices dos pol´ıgonos com buracos. Para uma instˆancia com n v´ertices, n/4 deles foram dispostos no bordo externo e 3n/4 deles distribu´ıdos entre n/10 buracos. Para cada ta- manho de pol´ıgono, 30 instˆancias foram geradas, totalizando 300 pol´ıgonos com buracos. Um exemplo de pol´ıgono com buracos gerado pode ser visto na Figura A.3.

Apˆendice B

Ferramenta Gr´afica de An´alise

Quando estudamos um problema geom´etrico, a visualiza¸c˜ao das instˆancias e principal- mente de suas solu¸c˜oes tem uma grande importˆancia no entendimento das propriedades particulares do problema. Com base nisso, desenvolvemos uma ferramenta de cria¸c˜ao e visualiza¸c˜ao de instˆancias e de solu¸c˜oes. A seguir, descreveremos as principais carac- ter´ısticas deste visualizador.

Todo programa foi codificado em C++, atrav´es do framework Qt4 para desenvolver a interface gr´afica e utilizando a biblioteca CGAL 4.2 (Computational Geometry Algorithms

Library). O resolvedor empregado no c´alculo dos modelos de programa¸c˜ao linear inteira foi o IBM ILOG CPLEX 12.2.

Utilizando a gera¸c˜ao de instˆancias descritas no Apˆendice A, a partir de um n´umero dado de v´ertices que tenha sido fixado, a ferramenta permite gerar instˆancias aleat´orias de pol´ıgonos simples com ou sem buracos. Al´em disso, as instˆancias tamb´em podem ser desenhadas manualmente atrav´es da interface, incluindo os casos em que haja adi¸c˜ao de buracos.

Carregada uma instˆancia de entrada, ´e poss´ıvel visualizar a sua subdivis˜ao planar e identificar suas faces de sombra e luz. Atrav´es da solu¸c˜ao da instˆancia, os guardas utilizados na solu¸c˜ao ´otima, incluindo seus ˆangulos de transmiss˜ao, tamb´em podem ser exibidos.

Uma outra funcionalidade que auxilia no entendimento do problema permite exibir os pares de faces cuja restri¸c˜ao foi utilizada na ´ultima itera¸c˜ao do algoritmo iterativo, descrito no Cap´ıtulo 4, ou os pares de faces cuja restri¸c˜ao ´e dominante, descrito no Cap´ıtulo 5. A an´alise destas informa¸c˜oes pode, por exemplo, ajudar na busca por propriedades geom´etricas que levem `a caracteriza¸c˜ao de quais desigualdades s˜ao mais relevantes para a obten¸c˜ao de uma solu¸c˜ao ´otima.

Algumas imagens da ferramenta de visualiza¸c˜ao podem ser vistas nas Figuras B.1, B.2, B.3 e B.4.

57

Figura B.1: Interface exibindo um pol´ıgono simples de 25 v´ertices gerado atrav´es dela.

58

Figura B.3: Interface exibindo parte da subdivis˜ao planar e faces se sombra interna (roxo escuro) e luz externa (amarela).

Documentos relacionados