Um algoritmo eficiente para o problema do posicionamento natural de antenas

Texto

(1)

Bruno Espinosa Crepaldi

“Um Algoritmo Eficiente para o Problema do

Posicionamento Natural de Antenas”

CAMPINAS

2014

(2)
(3)
(4)

Ficha catalográfica

Universidade Estadual de Campinas

Biblioteca do Instituto de Matemática, Estatística e Computação Científica Ana Regina Machado - CRB 8/5467

Crepaldi, Bruno Espinosa,

C863a CreUm algoritmo eficiente para o problema do posicionamento natural de antenas / Bruno Espinosa Crepaldi. – Campinas, SP : [s.n.], 2014.

CreOrientador: Cid Carvalho de Souza. CreCoorientador: Pedro Jussieu de Rezende.

CreDissertação (mestrado) – Universidade Estadual de Campinas, Instituto de Computação.

Cre1. Geometria computacional. 2. Otimização combinatória. 3. Programação linear. 4. Algoritmos. I. Souza, Cid Carvalho de,1963-. II. Rezende, Pedro Jussieu de,1955-. III. Universidade Estadual de Campinas. Instituto de Computação. IV. Título.

Informações para Biblioteca Digital

Título em outro idioma: An efficient algorithm for the natural wireless localization problem Palavras-chave em inglês:

Computational geometry Combinatorial optimization Linear programming Algorithms

Área de concentração: Ciência da Computação Titulação: Mestre em Ciência da Computação Banca examinadora:

Cid Carvalho de Souza [Orientador] Carlile Campos Lavor

Zanoni Dias

Data de defesa: 17-11-2014

Programa de Pós-Graduação: Ciência da Computação

Powered by TCPDF (www.tcpdf.org)

(5)
(6)
(7)

Instituto de Computa¸c˜ao Universidade Estadual de Campinas

Um Algoritmo Eficiente para o Problema do

Posicionamento Natural de Antenas

Bruno Espinosa Crepaldi

1 17 de novembro de 2014

Banca Examinadora:

• Prof. Dr. Cid Carvalho de Souza (Supervisor/Orientador ) • Prof. Dr. Zanoni Dias

Instituto de Computa¸c˜ao - UNICAMP • Prof. Dr. Carlile Lavor

Instituto de Matem´atica, Estat´ıstica e Computa¸c˜ao Cient´ıfica - UNICAMP • Prof. Dr. Arnaldo Moura

Instituto de Computa¸c˜ao - UNICAMP (Substitute/Suplente) • Prof. Dr. Antˆonio Moretti

Faculdade de Ciˆencias Aplicadas - UNICAMP (Substitute/Suplente)

1Financial support: CNPq (grant 139119/2012-4) and FAPESP (grants 2012/17608-9 and

(8)
(9)

Abstract

Considered a variation of the art gallery problem, the wireless localization problem deals with the placement of the smallest number of broadcasting antennas required to determine if someone is inside or outside the gallery. Each antenna propagates a unique key within a certain antenna-specific angle of broadcast, so that the set of keys received at any given point is sufficient to determine whether that point is inside or outside the polygon that represents the gallery. To ascertain this localization property, a Boolean formula must be produced along with the placement of the antennas.

We say that the antennas are in natural position if they are located at the vertices or the edges of the polygon and transmitting their signals in the angle formed by the sides of the polygon at the point where the antenna is positioned. The natural wireless localization problem is NP-hard. In this dissertation, we present an exact algorithm to solve it. To this end, we propose an initial integer linear programming model for the problem that, after being computed by a commercial solver, proved to be capable of finding optimal solutions for instances corresponding to polygons with tens of vertices. Then, through studies of geometric properties, several improvements are introduced in the mathematical model and also in the way of computing it. As a result of this research, we develop an iterative algorithm based on integer linear programming with which we can solve the problem for considerably larger instances. The efficiency of our algorithm is certified by experimental results comprising the solutions of 720 instances, including polygon with holes with up to 1000 vertices, in less than six minutes on a standard desktop computer.

(10)
(11)

Resumo

Considerado uma varia¸c˜ao do problema da galeria de arte, o problema do posicionamento de antenas trata do posicionamento do menor n´umero de antenas requerido para deter-minar se uma pessoa est´a dentro ou fora da galeria. Uma antena propaga uma chave ´

unica dentro de um ˆangulo espec´ıfico de transmiss˜ao, de modo que o conjunto de chaves recebidas em um dado ponto do plano seja suficiente para decidir se ele pertence ou n˜ao ao pol´ıgono que representa a galeria. Para verificar esta propriedade de localiza¸c˜ao, uma f´ormula Booleana deve ser produzida junto com o posicionamento de antenas.

Dizemos que as antenas est˜ao em posi¸c˜ao natural se elas est˜ao localizadas nos v´ertices ou nas arestas do pol´ıgono e transmitindo sinal no ˆangulo formado pelos lados deste ´

ultimo no ponto onde a antena est´a posicionada. O problema do posicionamento natural de antenas ´e NP-dif´ıcil. Nesta disserta¸c˜ao, apresentamos um algoritmo exato para re-solvˆe-lo. Para tanto, propomos um modelo inicial de programa¸c˜ao linear inteira para o problema que, ao ser computado por um resolvedor comercial, se mostrou capaz de encon-trar solu¸c˜oes ´otimas de instˆancias correspondentes a pol´ıgonos com algumas dezenas de v´ertices. Em seguida, atrav´es de estudos de propriedades geom´etricas, s˜ao introduzidas v´arias melhorias no modelo matem´atico e tamb´em no forma de comput´a-lo. Como con-sequˆencia desta pesquisa, desenvolvemos um algoritmo iterativo baseado em programa¸c˜ao linear inteira com o qual conseguimos solucionar o problema para instˆancias consideravel-mente maiores. A eficiˆencia do nosso algoritmo ´e certificada por resultados experimentais que compreendem as solu¸c˜oes ´otimas de 720 instˆancias de at´e 1000 v´ertices, incluindo pol´ıgono com buracos, as quais foram calculadas em menos de seis minutos em um com-putador desktop padr˜ao.

(12)
(13)

Agradecimentos

Primeiramente gostaria de agradecer aos meu orientadores Professores Cid C. de Souza e Pedro J. de Rezende, pelas discuss˜oes, sugest˜oes e dicas que tiveram um papel fundamental durante todo o mestrado. Obrigado por todo tempo dedicado e por li¸c˜oes que levarei por toda a vida.

Agrade¸co a todo o grupo de pesquisa da TUBS que me ajudou durante o est´agio de pesquisa na Alemanha. Agrade¸co ao Professor S´andor Fekete, que supervisionou meu est´agio, e ao Michael Hemmer e Stephan Friedrichs, pelas ideias e discuss˜oes.

Um agradecimento especial para minha fam´ılia, que sempre me apoiou e contribuiu de forma indireta e incondicional com este trabalho.

N˜ao poderia esquecer de dizer obrigado a meus amigos que me acompanharam durante toda a gradua¸c˜ao e o mestrado. Obrigado pelas conversas, discuss˜oes e risadas.

Finalmente, agrade¸co `a Unicamp e `as entidades de fomento FAPESP e CNPq pelo suporte financeiro de meus estudos.

(14)
(15)

Sum´

ario

Abstract ix Resumo xi Agradecimentos xiii 1 Introdu¸c˜ao 1 1.1 Defini¸c˜ao do Problema . . . 3 1.2 Variantes do Problema . . . 4 1.3 Posicionamento Natural . . . 6 1.3.1 Discretiza¸c˜ao do Problema . . . 6 1.3.2 Limitante Inferior . . . 8

2 M´etodo Exato para Solu¸c˜ao do Problema 10 2.1 Modelo 1 . . . 10

2.2 Corretude do Modelo 1 . . . 12

2.3 Simplifica¸c˜ao do Modelo . . . 13

2.4 Avalia¸c˜ao do Modelo Simplificado . . . 15

3 Faces de Sombra e Luz 17 3.1 Defini¸c˜ao de Faces de Sombra e Luz . . . 17

3.2 Modelo 2 . . . 21

3.3 Algoritmo para Encontrar Faces de Sombra e Luz . . . 22

3.4 Avalia¸c˜ao Experimental . . . 23

4 Resolu¸c˜ao Iterativa do Modelo 2 29 4.1 Algoritmo Iterativo . . . 29

(16)
(17)

5 Resolu¸c˜ao Iterativa Eficiente 35

5.1 An´alise da Resolu¸c˜ao Iterativa . . . 35

5.2 Novo Algoritmo Iterativo . . . 37

5.3 Avalia¸c˜ao Experimental . . . 39

5.4 Pol´ıgonos com Buracos . . . 43

6 Conclus˜ao e Trabalhos Futuros 48

Referˆencias Bibliogr´aficas 50

A Gerador de Instˆancias 53

(18)
(19)

Lista de Tabelas

2.1 N´umero m´edio de faces em pol´ıgonos simples. . . 15 2.2 N´umero m´edio de vari´aveis e restri¸c˜oes nos modelos. . . 16 3.1 N´umero m´edio de faces de sombra e luz em pol´ıgonos simples. . . 26 4.1 Valor ´otimo, n´umero de itera¸c˜oes, tamanho do modelo e tempo m´edio para

pol´ıgonos simples. . . 32 5.1 N´umero total de restri¸c˜oes (4.1) e quantidade absoluta e percentual das

que s˜ao dominantes diretamente. . . 37 5.2 Distribui¸c˜ao m´edia das restri¸c˜oes para as instˆancias de 100 v´ertices. . . 38 5.3 Solu¸c˜ao ´otima, n´umero de itera¸c˜oes, tamanho do modelo e tempo m´edio

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

(20)
(21)

Lista de Figuras

1.1 Exemplo com antenas em a, b, c e d e f´ormula Booleana a · b + a · c · d. . . . 2 1.2 Exemplo de posicionamento geral (a), em v´ertice (b) e natural em v´ertice

e aresta (c). . . 4 1.3 Exemplo de pol´ıgono em que nenhuma antena em posi¸c˜ao natural em

ertice cobre p mas n˜ao q (a) e poss´ıvel solu¸c˜ao utilizando guarda natural em aresta (b). . . 6 1.4 Retas r1, r2 e r3 (a) que induzem a subdivis˜ao planar (b), contendo sete

faces. . . 7 1.5 Parte da subdivis˜ao planar induzida por antenas em posi¸c˜ao natural. . . . 7 1.6 Pontos p e q tais que, utilizando antenas em posi¸c˜ao natural, apenas aqueles

na aresta (u, v) s˜ao capazes de transmitir para p mas n˜ao q. . . . 9 2.1 Pol´ıgono cuja cl´ausula satisfeita pela face f pode ser a · c · d(a) ou a · b · c · d(b). 13 3.1 Exemplo de prologamento de aresta re que ´e luz em rela¸c˜ao `a face f e

sombra em rela¸c˜ao a h. . . . 17 3.2 Exemplo onde o prolongamento de aresta r2 ´e luz em rela¸c˜ao a f e sombra

em rela¸c˜ao a h (a) e exemplo de segmento s1 que n˜ao ´e nem de sombra ou

luz por ser do bordo do pol´ıgono (b). . . 18 3.3 Exemplo de pol´ıgono onde f ´e uma face de luz, k ´e de sombra e h ´e de

penumbra. . . 19 3.4 Pol´ıgono com O(n) v´ertices numa grade 2n × n com Θ(n2) faces internas

de sombra e externas de luz. . . 21 3.5 Cadeia monotˆonica de luz inferior (a) e superior (b) que definem a face de

luz f . . . . 22 3.6 Exemplo das primeiras itera¸c˜oes da varredura para encontrar faces de

som-bra e luz. . . 24 3.7 Exemplo da varredura para encontrar faces de sombra e luz. . . 25 3.8 N´umero m´edio de faces de sombra e luz em pol´ıgonos simples. . . 27

(22)
(23)

3.9 Tempo para computar as faces de sombra e luz atrav´es do arranjo e pelo algoritmo de varredura. . . 28 4.1 Tempo m´edio do algoritmo de varredura em compara¸c˜ao `a resolu¸c˜ao

itera-tiva do modelo. . . 31 4.2 Quantidade de itera¸c˜oes necess´arias para resolver o modelo. . . 33 4.3 Raz˜ao entre n´umero de guardas em pol´ıgonos simples e a quantidade de

v´ertices. . . 34 5.1 Qualquer guarda natural que cubra a face f mas n˜ao a h, tamb´em n˜ao

cobrir´a a face k. . . . 36 5.2 Quantidade m´edia de restri¸c˜oes dos algoritmos iterativos. . . 40 5.3 Quantidade m´edia de itera¸c˜oes dos algoritmos iterativos. . . 41 5.4 Melhoria m´edia do tempo do algoritmo iterativo com a adi¸c˜ao das restri¸c˜oes

no conjunto inicial. . . 42 5.5 Crescimento da mem´oria utilizada, tempo total e n´umero total de restri¸c˜oes

para pol´ıgonos simples. . . 43 5.6 N´umero m´edio de guardas para pol´ıgonos simples e pol´ıgonos com buracos. 45 5.7 N´umero m´edio de itera¸c˜oes para pol´ıgonos simples e pol´ıgonos com buracos. 46 5.8 Tempo m´edio do algoritmo iterativo para pol´ıgonos simples e pol´ıgonos

com buracos. . . 47 A.1 Pol´ıgono simples com 50 v´ertices. . . 54 A.2 Pol´ıgono simples com 500 v´ertices. . . 54 A.3 Pol´ıgono com 500 v´ertices e 50 buracos. . . 55 B.1 Interface exibindo um pol´ıgono simples de 25 v´ertices gerado atrav´es dela. . 57 B.2 Altera¸c˜ao da instˆancia: adi¸c˜ao manual de um buraco de 3 v´ertices. . . 57 B.3 Interface exibindo parte da subdivis˜ao planar e faces se sombra interna

(roxo escuro) e luz externa (amarela). . . 58 B.4 Interface exibindo o posicionamento dos guardas de uma solu¸c˜ao ´otima. . . 58

(24)
(25)

Cap´ıtulo 1

Introdu¸

ao

Problemas de Galeria de Arte comp˜oem um tema de pesquisa de longa data em Geometria Computacional. Desde sua proposi¸c˜ao inicial em 1973 [20], que perguntava pelo “n´umero de guardas necess´arios e suficientes para vigiar uma galeria de arte com n paredes”, o problema cl´assico e diversas variantes foram estudadas. Por exemplo, ao inv´es dos guardas tradicionais, cujo ˆangulo de vis˜ao ´e de 360o, se considerarmos um ˆangulo de

visibilidade limitado, como os proporcionados por cˆameras de seguran¸ca, teremos variantes que utilizam angle guards ou floodlights [3].

A literatura sobre problemas envolvendo galerias de arte ´e vasta [20, 21], desde pro-blemas de otimiza¸c˜ao como minimiza¸c˜ao dos guardas [17, 11, 10, 2] ou maximiza¸c˜ao da borda vigiada [18] a tipos especiais de guardas, como guardas m´oveis [19].

Novas variantes do problema surgiram ap´os a introdu¸c˜ao de um novo conceito de visibilidade, em que os guardas s˜ao capazes de ver atrav´es das paredes da galeria [16]. A motiva¸c˜ao para esta formula¸c˜ao se originou a partir de aplica¸c˜oes para redes sem-fio, onde os sinais das antenas n˜ao s˜ao bloqueados pelas paredes. Chamaremos essa variante de Problema do Posicionamento de Antenas (WLP, Wireless Localization Problem).

Para ilustrar o WLP, considere o seguinte exemplo, que capta a essˆencia do pro-blema [4]. O propriet´ario de um cybercaf´e gostaria de fornecer internet sem-fio aos seus

clientes, mas evitando que aqueles que est˜ao fora de sua loja possam acessar sua infra-estrutura de rede. Para conseguir isso, antenas podem ser instaladas, cada uma das quais transmitindo uma chave ´unica (secreta) num ˆangulo arbitr´ario fixo. O objetivo ´e instalar essas antenas e ajustar seus ˆangulos de transmiss˜ao de tal forma que os clientes dentro da ´

area do cybercaf´e possam ser distinguidos daqueles fora da loja simplesmente pedindo para

nomearem quais as chaves que s˜ao recebidas no local onde se encontram. Para verificar sua localiza¸c˜ao, um cliente faz uso de uma f´ormula Booleana cujas vari´aveis correspon-dem `as chaves transmitidas, cada uma delas tendo, respectivamente, o valor verdadeiro ou falso dependendo se, no ponto onde se encontra, o cliente recebe ou n˜ao aquela chave.

(26)

2 a b c d a b c d a b c d a b. a c d. .

Figura 1.1: Exemplo com antenas em a, b, c e d e f´ormula Booleana a · b + a · c · d.

Uma vez que a instala¸c˜ao e manuten¸c˜ao das antenas tˆem um custo, um problema de oti-miza¸c˜ao natural, ´e o de encontrar uma solu¸c˜ao com o n´umero m´ınimo de tais dispositivos. Um exemplo do problema pode ser visto na Figura 1.1, onde uma solu¸c˜ao ´otima para o problema ´e instalar antenas nos v´ertices a, b, c e d, com ˆangulo de transmiss˜ao idˆentico ao ˆangulo interno nesses v´ertices, e f´ormula Booleana a · b + a · c · d. Note-se que f´ormula anterior encontra-se na forma normal disjuntiva, ou seja, ela ´e formada por um conjunto de cl´ausulas ligadas pelo operador l´ogico “ou” (+), sendo que as cl´ausulas caracterizam-se por grupos de vari´aveis (ou suas nega¸c˜oes) ligadas pelo operador l´ogico “e” (·).

As semelhan¸cas entre este problema e o da galeria de arte s˜ao evidentes. Por exemplo, a regi˜ao de interesse ´e uma loja (cybercaf´e) ao inv´es da galeria, e os guardas deste ´ultimo s˜ao antenas no primeiro. Apesar das no¸c˜oes de visibilidade serem diferentes, seguindo a literatura do problema, vamos utilizar o termo guarda e antena indistintamente neste trabalho.

Uma forma alternativa de visualizar o problema ´e observar que a ´area de transmiss˜ao de uma antena ´e um cone ilimitado no plano, onde o problema ´e definir o pol´ıgono correspondente `a ´area da loja por meio de uni˜oes e intersec¸c˜oes desses cones. Dessa forma, a f´ormula Booleana que deve ser encontrada pode ser vista como as uni˜oes e intersec¸c˜oes necess´arias, onde cada vari´avel representa um cone. Uma aplica¸c˜ao para o problema vem diretamente desta vis˜ao geom´etrica, que ´e sua utiliza¸c˜ao em Geometria S´olida Construtiva (CSG, Constructive Solid Geometry) [14], uma t´ecnica utilizada na ´

area de modelagem de s´olidos. Dado um objeto f´ısico no plano ou no espa¸co, h´a v´arias maneiras de model´a-lo matematicamente como um subconjunto do plano ou espa¸co. O objeto a ser descrito ´e chamado s´olido e uma forma t´ıpica de model´a-lo ´e descrevˆe-lo explicitamente como uma combina¸c˜ao de objetos s´olidos primitivos, mais f´aceis de lidar que o objeto original. Tal descri¸c˜ao, como uma f´ormula Booleana de objetos primitivos, ´e chamada de representa¸c˜ao CSG. O que se entende por um s´olido primitivo depende do contexto. Por exemplo, se quis´essemos descrever poliedros ortogonais, ´e razo´avel pensar nas primitivas como caixas retangulares. A representa¸c˜ao CSG de pol´ıgonos simples

(27)

1.1. Defini¸c˜ao do Problema 3

pode ser vista como uma f´ormula Booleana de meios-planos, ou no nosso caso, cones do plano. A decomposi¸c˜ao de s´olidos em primitivas mais simples ´e utilizada, por exemplo, no campo de processamento de imagens, como na detec¸c˜ao de an´eis em formato de estrela (star-shaped annuli) [9].

Este documento est´a dividido em seis cap´ıtulos e cont´em dois apˆendices. No pre-sente cap´ıtulo introduzimos o problema e tamb´em alguns fundamentos e resultados que utilizaremos mais adiante no texto. No Cap´ıtulo 2, propomos um modelo matem´atico para o problema e efetuamos uma avalia¸c˜ao experimental do mesmo ao ser computado por um moderno resolvedor comercial de programa¸c˜ao linear inteira. Esta avalia¸c˜ao, as-sim como as que faremos nos cap´ıtulos seguintes, tem o intuito n˜ao apenas de mostrar os resultados alcan¸cados mas, tamb´em, de apontar as limita¸c˜oes pr´aticas do algoritmo, levando-nos a sugerir as altera¸c˜oes discutidas nos pr´oximos cap´ıtulos. Deste modo, no Cap´ıtulo 3, atrav´es de propriedades geom´etricas, definimos faces de sombra e luz, capazes de reduzir a quantidade de regi˜oes internas e externas que precisamos verificar ao resolver o problema. Tal redu¸c˜ao traduz-se diretamente em um modelo matem´atico mais com-pacto e, portanto, mais f´acil de ser calculado na pr´atica. Os Cap´ıtulos 4 e 5 apresentam, respectivamente, um algoritmo iterativo para resolver o modelo e uma vers˜ao ainda mais eficiente do mesmo, desenvolvida a partir da an´alise dos resultados experimentais obtidos at´e ent˜ao. Finalmente, no Cap´ıtulo 6 conclu´ımos a disserta¸c˜ao resumindo as principais contribui¸c˜oes do trabalho. Os Apˆendices A e B destinam-se a descrever, respectivamente, o procedimento empregado na gera¸c˜ao de instˆancias do problema e a ferramenta gr´afica de an´alise desenvolvida durante este trabalho.

Antes de continuarmos, cabe observar que neste documento o termo “eficiente” ´e usado com o intuito de caracterizar o desempenho dos algoritmos testados na pr´atica. Portanto, n˜ao deve ser confundido com o seu significado usual na teoria da computa¸c˜ao que refere-se `

a complexidade polinomial de tempo.

1.1

Defini¸

ao do Problema

Formulado como uma variante do Problema da Galeria de Arte onde os guardas veem atrav´es das bordas da galeria, o WLP foi introduzido por Eppstein, Goodrich e Sitchi-nava [16] em 2007, onde foi inicialmente chamado de “sculpture garden problem”. Ao contr´ario do problema da galeria, neste problema n˜ao estamos interessados em encontrar um conjunto de guardas capaz de observar todo o pol´ıgono, mas num conjunto de guardas capaz de descrevˆe-lo.

Partindo-se da ideia de antenas de transmiss˜ao sem-fio, um guarda pode ser visto como uma esta¸c˜ao, posicionada numa dada localiza¸c˜ao, que transmite um sinal num ˆangulo e dire¸c˜ao predefinidos. A regi˜ao coberta por um guarda localizado no ponto p ´e o cone

(28)

1.2. Variantes do Problema 4

(a) (b) (c)

Figura 1.2: Exemplo de posicionamento geral (a), em v´ertice (b) e natural em v´ertice e aresta (c).

com ´apice em p definido por dois raios emanando deste ponto. Estes dois raios definem o ˆangulo e a dire¸c˜ao de transmiss˜ao. Assim, de uma maneira mais formal, a regi˜ao de transmiss˜ao de um guarda ´e um cone ilimitado no plano definido pela intersec¸c˜ao ou uni˜ao de no m´aximo dois meios-planos.

Podemos associar a um guarda g uma vari´avel Booleana que, para cada ponto p no plano, tem um valor verdadeiro se e somente se p est´a contido no cone de transmiss˜ao de g. Ent˜ao, dado um pol´ıgono P e um conjunto de guardas G, deseja-se saber se existe uma f´ormula Booleana B, na forma normal disjuntiva, com estas vari´aveis, que ´e satisfeita exclusivamente pelos pontos de P . Em caso afirmativo, diz-se que G ´e capaz de descrever

P . Por simplicidade, no restante do texto, assume-se que as f´ormulas Booleanas est˜ao sempre na forma normal disjuntiva.

No contexto do WLP, ´e dado um pol´ıgono P e um conjunto de candidatos a guarda

G capaz de descrever P . Quando um custo unit´ario ´e atribu´ıdo a cada guarda de G, o problema de otimiza¸c˜ao procura um subconjunto de G que descreve P de menor custo.

Problema do Posicionamento de Antenas Entrada: pol´ıgono P e conjunto de guardas G.

Sa´ıda: menor S ⊂ G capaz de descrever P e uma f´ormula Booleana B que

comprove tal descri¸c˜ao.

1.2

Variantes do Problema

Variantes do WLP podem ser formuladas dependendo de como definimos as poss´ıveis localiza¸c˜oes para os candidatos a guarda. Normalmente, o conjunto de candidatos a guardas consiste em um conjunto finito de posi¸c˜oes, ˆangulos e dire¸c˜oes predefinidos. As localiza¸c˜oes mais comuns s˜ao v´ertices e arestas do pol´ıgono. Exemplos comuns podem ser vistos na Figura 1.2

(29)

1.2. Variantes do Problema 5

No caso mais geral, os guardas podem ser posicionados em qualquer ponto do plano e transmitir em qualquer ˆangulo e dire¸c˜ao. Um guarda com estas caracter´ısticas ´e chamado de guarda-geral. Em [16] ´e demonstrado que qualquer pol´ıgono simples com n v´ertices pode ser descrito utilizando-se n − 2 guardas gerais. Este limitante foi melhorado para b(4n − 2)/5c em [7]. Se o pol´ıgono n˜ao possuir arestas colineares, pelo menos dn/2e guardas s˜ao necess´arios [16]. Em [7] ´e apresentada uma classe de pol´ıgonos onde pelo menos d(3n − 4)/5e guardas gerais s˜ao necess´arios.

Uma forma mais restrita e natural de posicionamento dos guardas utiliza apenas guar-das nos v´ertices do pol´ıgono, com qualquer ˆangulo e dire¸c˜ao de transmiss˜ao. Um guarda que satisfaz estas condi¸c˜oes ´e chamado de guarda-v´ertice. Em [16] ´e demonstrado que

n − 2 guardas-v´ertices s˜ao sempre suficientes para pol´ıgonos simples, ou, mais precisa-mente, que n + 2(h − 1) guardas-v´ertices s˜ao sempre suficientes, onde h ´e a quantidade de buracos. Em [13] ´e apresentada uma classe de pol´ıgonos para os quais pelo menos b2n/3c guardas em v´ertices s˜ao necess´arios. O melhor limitante superior conhecido, utilizando guardas em v´ertice, para pol´ıgonos simples ´e de b(8n − 6)/9c[8].

O posicionamento mais natural para guardas s˜ao em v´ertices e arestas do pol´ıgono. Um guarda ´e dito natural em v´ertice se ele est´a posicionado num v´ertice do pol´ıgono com ˆangulo de transmiss˜ao idˆentico ao ˆangulo interno naquele ponto. Apenas utilizando guardas naturais em v´ertices o problema pode n˜ao ter solu¸c˜ao [16] (veja Figura 1.3). Um guarda localizado em qualquer ponto de uma aresta e com ˆangulo de transmiss˜ao de 180o,

voltado para o interior do pol´ıgono, ´e chamado de guarda natural em aresta. Note que o ponto em que este tipo de guarda est´a posicionado ´e irrelevante, uma vez que o meio-plano que recebe seu sinal ´e o mesmo para qualquer ponto da aresta em que ele esteja. Utilizando guardas naturais em v´ertices e arestas, o problema sempre possui uma solu¸c˜ao vi´avel [15]. Para pol´ıgonos simples com n v´ertices, n − 2 guardas naturais s˜ao sempre suficientes [15] e algumas vezes necess´arios [7].

Quando apenas guardas em posi¸c˜ao natural s˜ao utilizados, temos o Problema do Po-sicionamento Natural de Antenas (NWLP, Natural Wireless Localization Problem). Em [6] ´e demonstrado que o NWLP ´e NP-dif´ıcil. Em [7] ´e apresentada uma prova alternativa de NP-dificuldade que pode ser estendida para guardas em v´ertices e guardas gerais. Em [5] ´e provado que para pol´ıgonos ortogonais, o problema ´e polinomial.

Por ser a variante do problema mais restrita e mais estudada na literatura, focamos nossos estudos no NWLP. Anteriormente ao nosso trabalho, n˜ao havia na literatura sobre o problema propostas de algoritmos de qualquer natureza (exato ou heur´ıstico) para resolvˆe-lo. Assim como era de se esperar, t˜ao pouco existiam instˆancias de dom´ınio p´ublico para serem testadas experimentalmente.

(30)

1.3. Posicionamento Natural 6 q p q p (a) (b)

Figura 1.3: Exemplo de pol´ıgono em que nenhuma antena em posi¸c˜ao natural em v´ertice cobre p mas n˜ao q (a) e poss´ıvel solu¸c˜ao utilizando guarda natural em aresta (b).

1.3

Posicionamento Natural

Observando o NWLP como um problema cont´ınuo, para qualquer ponto no plano, a f´ormula Booleana resultante deve identificar corretamente se o mesmo est´a dentro ou fora do pol´ıgono. Nesta se¸c˜ao, apresentaremos uma discretiza¸c˜ao do problema, que utiliza-remos no restante do texto, onde mostrautiliza-remos que basta um conjunto finito de pontos no plano para assegurar a validade da f´ormula. Al´em disso, demonstraremos o limitante inferior de dn/2e [13] para pol´ıgonos sem arestas colineares, que, como mostraremos nos pr´oximos cap´ıtulos, mostrou-se um limitante muito pr´oximo das solu¸c˜oes ´otimas.

1.3.1

Discretiza¸

ao do Problema

Antes de descrevermos a discretiza¸c˜ao, definiremos uma subdivis˜ao planar para o

pro-blema.

Um conjunto de retas R no plano define uma subdivis˜ao planar na qual as faces s˜ao as regi˜oes convexas maximais de R2− R. Um exemplo de subdivis˜ao planar induzida por retas pode ser visto na Figura 1.4.

Considerando o posicionamento natural, os raios que definem o cone de transmiss˜ao de todos os guardas definem um arranjo no plano, conforme a Figura 1.5. Note que este arranjo coincide com o obtido a partir do prolongamento das arestas do pol´ıgono. Para discretizar o NWLP, utilizaremos a subdivis˜ao planar induzida por tais retas. Dessa forma, para um pol´ıgono P de n arestas, a subdivis˜ao planar ter´a O(n2) faces. A partir deste ponto, utilizaremos o termo face para nos referirmos a uma face desta subdivis˜ao planar.

(31)

1.3. Posicionamento Natural 7 f1 f2 f3 f4 f5 f6 f 7 r1 r2 r3 (a) (b)

Figura 1.4: Retas r1, r2 e r3 (a) que induzem a subdivis˜ao planar (b), contendo sete faces.

(32)

1.3. Posicionamento Natural 8

Denotaremos por Sub(G) a subdivis˜ao planar induzida pelos cones de transmiss˜ao de todos as antenas de G. Um ponto no interior de uma face f de Sub(G) recebe o sinal de uma antena g ∈ G se e somente se todos os pontos de f recebem o sinal de g.

Demonstra¸c˜ao. Dado uma antena g ∈ G, seja p um ponto no interior de uma face f de Sub(G) tal que p receba o sinal de g. Suponha, por contradi¸c˜ao, que exista um ponto q em f que n˜ao receba o sinal de g. Ent˜ao, um dos raios que definem o cone de transmiss˜ao de g separa os pontos p e q. Por´em, a existˆencia de tal raio contradiz o fato de que f ´e uma face de Sub(G). A rec´ıproca ´e imediata.

Considerando que a f´ormula Booleana procurada deve ser satisfeita por todos os pontos internos ao pol´ıgono, mas n˜ao pelos externos, o Lema 1 estabelece que basta verificar esta propriedade num ´unico ponto de cada face da subdivis˜ao planar e, portanto, em O(n2)

pontos. Obtemos assim uma discretiza¸c˜ao do problema.

1.3.2

Limitante Inferior

Demonstraremos agora o limitante inferior de dn/2e guardas para pol´ıgonos de n lados sem arestas colineares, que, experimentalmente, mostrou-se um limitante muito pr´oximo da solu¸c˜ao ´otima das instˆancias testadas, como veremos no Cap´ıtulo 4.

Lema 2. Para toda aresta (u, v) de um pol´ıgono P , qualquer solu¸c˜ao vi´avel para P inclui

um guarda cujo cone de transmiss˜ao cont´em a aresta (u, v) em sua borda.

Demonstra¸c˜ao. Sejam p e q pontos interno e externo a P , respectivamente. A f´ormula Booleana de qualquer solu¸c˜ao vi´avel cont´em pelo menos uma cl´ausula que ´e satisfeita por

p mas n˜ao por q. Logo, todos o guardas associados a tal cl´ausula transmitem seu sinal para p e, pelo menos um deles, n˜ao transmite para q. Podemos escolher pontos p e q, interno e externo a P , t˜ao pr´oximos da aresta (u, v) quanto quisermos, de tal forma que, apenas um guarda cuja borda de seu cone de transmiss˜ao contenha a aresta (u, v) seja capaz de transmitir para p mas n˜ao para q. Um exemplo pode ser visto na Figura 1.6.

Teorema 1. Para todo pol´ıgono P , de n v´ertices, sem arestas colineares, qualquer solu¸c˜ao

vi´avel possui pelo menos dn/2e guardas.

Demonstra¸c˜ao. Pelo Lema 2, em qualquer solu¸c˜ao vi´avel, para toda aresta de P , existe pelo menos um guarda cujo cone de transmiss˜ao possui aquela aresta em sua borda. Como n˜ao h´a arestas colineares em P , um guarda pode conter, no m´aximo, duas arestas na borda de seu cone de transmiss˜ao, uma em cada um dos raios que definem o cone. Logo, como

(33)

1.3. Posicionamento Natural 9

p q u

v

Figura 1.6: Pontos p e q tais que, utilizando antenas em posi¸c˜ao natural, apenas aqueles na aresta (u, v) s˜ao capazes de transmitir para p mas n˜ao q.

(34)

Cap´ıtulo 2

etodo Exato para Solu¸

ao do

Problema

Neste cap´ıtulo, descreveremos um modelo de programa¸c˜ao linear inteira (PLI) que desen-volvemos para o NWLP. Este modelo ´e o ponto de partida que nos permitiu elaborar um algoritmo eficiente para resolver o problema. Assim, saindo de uma vers˜ao inicial, mos-traremos os aprimoramentos que foram sendo introduzidos afim de torn´a-lo mais eficiente computacionalmente.

2.1

Modelo 1

Lembramos que, no NWLP, dado um pol´ıgono P e um conjunto de guardas G, devemos encontrar o menor subconjunto de G capaz de descrever P . Ou seja, devemos encontrar

G⊂ G, de tamanho m´ınimo, e uma f´ormula Booleana B utilizando os guardas de G∗, de tal forma que B retorne verdadeiro para todos os pontos internos a P e falso para os pontos externos. Na Se¸c˜ao 1.3, demonstramos que ´e poss´ıvel discretizar o problema, de modo que, ao inv´es de considerarmos todos os pontos do plano, basta considerarmos um ponto de cada face da subdivis˜ao planar.

Seja FP o conjunto das faces internas a P . Como B deve retornar verdadeiro para

todas as faces em FP, temos que, para toda face f ∈ FP, deve haver pelo menos uma

cl´ausula de B que ´e satisfeita por f . Como, al´em de escolher quais guardas utilizar, temos que encontrar uma f´ormula Booleana v´alida, criaremos um modelo PLI que minimize a quantidade de guardas utilizados e encontre uma cl´ausula Bf para cada f ∈ FP, tal

que f satisfa¸ca Bf e contenha apenas vari´aveis referentes aos guardas utilizados. Estas

cl´ausulas, satisfeitas pelas faces internas, n˜ao devem ser satisfeitas pelas faces externas a

P . Assim, se unirmos todas as cl´ausulas Bf, para todo f ∈ FP, atrav´es do operador OU,

teremos uma f´ormula Booleana B v´alida. 10

(35)

2.1. Modelo 1 11

Observe que, buscando Bf para cada f ∈ FP, pode ser que haja uma cl´ausula obtida

para uma face que tamb´em seja satisfeita por outra. No contexto deste trabalho, isso n˜ao ser´a considerado uma dificuldade, pois todas as faces internas continuam podendo ser satisfeitas, e, se desejada, a elimina¸c˜ao de cl´ausulas repetidas ou desnecess´arias pode ser feita em um p´os-processamento. Conv´em enfatizar que o nosso objetivo ´e minimizar o n´umero de guardas utilizados e n˜ao o comprimento da f´ormula Booleana.

Feitas estas observa¸c˜oes, passamos `a descri¸c˜ao de um modelo PLI para o NWLP. Seguindo a nomenclatura utilizada anteriormente, denotaremos por G o conjunto dos candidatos a guardas, no nosso caso, guardas em posi¸c˜ao natural de v´ertice ou de aresta. Considerando a subdivis˜ao planar induzida pelo prolongamento das arestas do pol´ıgono P , denotaremos por FP e FP, respectivamente, os conjuntos das faces de internas e externas

ao pol´ıgono na subdivis˜ao. Ademais, denotaremos por Cf o conjunto de guardas cujo

sinal ´e recebido na face f e por Nf h o conjunto de guardas cujo sinal ´e recebido na face

f mas n˜ao na face h.

Para cada candidato a guarda g pertencente a G, associaremos uma vari´avel bin´aria

xg, que ter´a valor 1 caso o guarda g seja utilizado e 0 caso contr´ario. Para toda face f

pertencente a FP e para cada candidato a guarda g pertencente a Cf, associaremos uma

vari´avel bin´aria ygf, que valer´a 1 se e somente se a vari´avel Booleana correspondente ao

guarda g estiver em Bf. Temos ent˜ao o modelo PLI:

minX g∈G xg, s.a. X g∈Cf ygf ≥ 1, ∀f ∈ FP, (2.1) X g∈Nf h ygf ≥ 1, ∀f ∈ FP, ∀h ∈ FP, (2.2) xg ≥ ygf, ∀g ∈ Cf, ∀f ∈ FP, (2.3) xg ∈ {0, 1}, ygf ∈ {0, 1}, ∀g ∈ G, ∀f ∈ FP.

A f´ormula Booleana B pode ser obtida atrav´es das vari´aveis ygf, onde teremos uma

cl´ausula associada a cada f ∈ FP, e a vari´avel Booleana correspondente ao guarda g far´a

parte da cl´ausula associada a uma face f se e somente se ygf = 1.

A fun¸c˜ao objetivo minimiza a quantidade de guardas utilizados. A restri¸c˜ao (2.1) tem por finalidade exigir que pontos interiores ao pol´ıgono sejam satisfeitos pela f´ormula Booleana B resultante, enquanto a restri¸c˜ao (2.2) exige que pontos exteriores ao pol´ıgono n˜ao sejam satisfeitos pela mesma f´ormula. A restri¸c˜ao (2.3) impede que uma vari´avel

(36)

2.2. Corretude do Modelo 1 12

Booleana associada a um guarda possa fazer parte de uma cl´ausula caso o guarda em quest˜ao n˜ao seja utilizado.

2.2

Corretude do Modelo 1

Proposi¸c˜ao 1. A f´ormula Booleana B ´e satisfeita por todas as faces internas ao pol´ıgono

se, e somente se, as restri¸c˜oes (2.1) do modelo proposto s˜ao satisfeitas.

Demonstra¸c˜ao. As restri¸c˜oes (2.1) garantem que, para cada face interna, pelo menos um guarda que transmita sinal para esta face seja utilizado na cl´ausula associada `a face em quest˜ao.

Se a f´ormula Booleana B ´e satisfeita por uma face interna f , deve haver pelo menos uma cl´ausula Bf em B que seja satisfeita por f . Como uma cl´ausula satisfeita por f s´o

pode conter vari´aveis Booleanas referentes a guardas que cobrem f , e esta cl´ausula possui pelo menos uma vari´avel, a restri¸c˜ao (2.1) associada a f ´e satisfeita. Como isso ´e verdade para toda face f ∈ FP, se B ´e satisfeita por toda face f ∈ FP, ent˜ao todas as restri¸c˜oes

(2.1) do modelo proposto s˜ao satisfeitas.

Reciprocamente, para cada face interna f ao pol´ıgono, existe uma cl´ausula Booleana

Bf associada a ela, em B, onde a vari´avel Booleana correspondente a um guarda g far´a

parte da cl´ausula associada a f se e somente se ygf = 1. Ou seja, se a restri¸c˜ao (2.1) de f

for satisfeita, na cl´ausula Bf de B todas as vari´aveis Booleanas representam guardas que

cobrem f . Logo, f satisfaz a cl´ausula Bf. Dessa forma, se todas as restri¸c˜oes (2.1) do

modelo proposto s˜ao satisfeitas, a f´ormula Booleana ´e satisfeita por todas as faces internas ao pol´ıgono. 

Proposi¸c˜ao 2. A f´ormula Booleana B n˜ao ´e satisfeita por qualquer face externa ao

pol´ıgono se, e somente se, as restri¸c˜oes (2.2) do modelo proposto s˜ao satisfeitas.

Demonstra¸c˜ao. As restri¸c˜oes (2.2) garantem que, para cada face externa, todas as cl´ausulas da f´ormula Booleana contenham pelo menos uma vari´avel associada a um guarda que n˜ao cobre a face em quest˜ao.

Se a f´ormula Booleana B n˜ao ´e satisfeita por uma face externa h, nenhuma cl´ausula em B ´e satisfeita por h. Como uma cl´ausula que n˜ao ´e satisfeita por h cont´em pelo menos uma vari´avel referente a um guarda que n˜ao cobre h, as restri¸c˜oes (2.2) referentes a face

h s˜ao satisfeitas. Como isso ´e verdade para toda face h ∈ FP, se B n˜ao ´e satisfeita por qualquer face h ∈ FP, ent˜ao todas as restri¸c˜oes (2.2) do modelo proposto s˜ao satisfeitas.

Reciprocamente, para cada face interna f ao pol´ıgono, existe uma cl´ausula Booleana

Bf associada a ela, onde a vari´avel Booleana correspondente a um guarda g far´a parte de

(37)

2.3. Simplifica¸c˜ao do Modelo 13 f a b c d f a b c d f a b c d

(a)

(b)

Figura 2.1: Pol´ıgono cuja cl´ausula satisfeita pela face f pode ser a · c · d(a) ou a · b · c · d(b).

s˜ao satisfeitas, a cl´ausula Bf referente a qualquer face interna f conter´a uma vari´avel

associada a um guarda g tal que ygf = 1 e g n˜ao cobre h. Logo, se todas as restri¸c˜oes

(2.2) do modelo proposto s˜ao satisfeitas, a f´ormula Booleana n˜ao ´e satisfeita por qualquer face externa ao pol´ıgono.

Proposi¸c˜ao 3. O modelo proposto minimiza a quantidade de guardas utilizados e a

f´ormula obtida ´e v´alida para o problema.

Demonstra¸c˜ao. Pelas proposi¸c˜oes anteriores, as restri¸c˜oes (2.1)-(2.2) do modelo PLI ga-rantem que a f´ormula Booleana, criada a partir das vari´aveis ygf, ´e vi´avel para o problema.

Para a solu¸c˜ao ser v´alida, basta ent˜ao que todas as vari´aveis presentes nesta f´ormula Bo-oleana tenham seus respectivos guardas utilizados na solu¸c˜ao. A restri¸c˜ao (2.3) garante esta propriedade. Como a fun¸c˜ao objetivo do modelo minimiza a quantidade de guardas utilizados, a afirma¸c˜ao ´e verdadeira.

2.3

Simplifica¸

ao do Modelo

Uma das t´ecnicas usuais para aumentar a eficiˆencia computacional de um modelo PLI en-volve torn´a-lo mais compacto, reduzindo o n´umero de restri¸c˜oes e vari´aveis na formula¸c˜ao. O modelo PLI, da forma como foi constru´ıdo, permite que um guarda que seja utilizado na solu¸c˜ao n˜ao precise ser utilizado numa dada cl´ausula da f´ormula Booleana, mesmo que ele cubra a face referente aquela cl´ausula, como pode ser visto na Figura 2.1. Essa forma de constru¸c˜ao do modelo possibilita que, com certas altera¸c˜oes, possamos, se o desej´assemos, reduzir o tamanho da f´ormula Booleana resultante.

Como nosso objetivo ´e minimizar apenas a quantidade de guardas utilizados, podemos tornar o modelo mais eficiente compactando-o atrav´es da remo¸c˜ao das vari´aveis ygf. Se

(38)

2.3. Simplifica¸c˜ao do Modelo 14

obrigarmos que todos os guardas que forem utilizados estejam em todas satisfeitas por faces internas que este guarda cobre, podemos alterar as restri¸c˜oes (2.3) para ygf = xg.

Neste caso, podemos eliminar as restri¸c˜oes (2.3) e substituir as vari´aveis ygf por xg,

obtendo o modelo a seguir.

min X g∈G xg, s.a. X g∈Cf xg ≥ 1, ∀f ∈ FP, (2.4) X g∈Nf h xg ≥ 1, ∀f ∈ FP, ∀h ∈ FP, (2.5) xg ∈ {0, 1}, ∀g ∈ G.

Outra redu¸c˜ao no modelo pode ser obtida removendo-se as restri¸c˜oes (2.4). Perceba que modelamos o problema a partir do conceito de que a f´ormula Booleana deve ser satisfeita pelas faces internas e n˜ao podem ser satisfeita por qualquer face externa. Por´em, as restri¸c˜oes que foram utilizadas para isso s˜ao, em parte, redundantes. Considerando que sempre h´a pelo menos uma face externa h ao pol´ıgono, para toda face interna f , existe uma restri¸c˜ao (2.5) que garante que, na solu¸c˜ao, pelo menos um guarda que cobre f n˜ao cobre h. Logo, ao satisfazer as restri¸c˜oes (2.5), estamos garantindo que, para cada face interna, sempre h´a pelo menos um guarda que a cobre na solu¸c˜ao. Portanto, as restri¸c˜oes (2.4) ficam obrigatoriamente satisfeitas, tonando-as redundantes. O modelo compacto, sem as restri¸c˜oes (2.4), pode ser visto abaixo.

min X g∈G xg, s.a. X g∈Nf h xg ≥ 1, ∀f ∈ FP, ∀h ∈ FP, (2.6) xg ∈ {0, 1}, ∀g ∈ G.

Analisando este modelo, que ´e composto de um ´unico conjunto de restri¸c˜oes, pode-mos observar que o NWLP se torna um problema de separabilidade. Para resolvˆe-lo e encontrar a f´ormula Booleana, precisamos que, para toda face interna f e externa h, haja algum guarda que os separe, ou seja, que cubra f mas n˜ao h. Esta id´eia de separabilidade ´e importante pois, como veremos nos algoritmos desenvolvidos nos pr´oximos cap´ıtulos, encontrar boas restri¸c˜oes de separabilidade entre faces internas e externas pode melhorar significativamente a obten¸c˜ao de uma solu¸c˜ao.

(39)

2.4. Avalia¸c˜ao do Modelo Simplificado 15

2.4

Avalia¸

ao do Modelo Simplificado

A fim de avaliar a quantidade de faces na discretiza¸c˜ao do problema e o tamanho dos modelos PLI criados, um conjunto de instˆancias composto por pol´ıgonos simples foi ge-rado. Os n´umeros de v´ertices destes pol´ıgonos foram escolhidos no intervalo [20, 100], em incrementos de 20. Para cada tamanho, 30 pol´ıgonos simples foram gerados, totalizando 150 instˆancias. Mais detalhes sobre a gera¸c˜ao de pol´ıgonos simples podem ser encontrados no Apˆendice A.

Os programas utilizados foram codificados em C++ e compilados com GNU g++ 4.7, utilizando a biblioteca CGAL 4.2 (Computational Geometry Algorithms Library). O re-solvedor utilizado para computar os modelos foi o IBM ILOG CPLEX 12.2. Quanto ao hardware, usou-se um desktop com AMD Phenom II X6 1055T @ 2.80GHz e 12GB RAM. A quantidade m´edia de faces na subdivis˜ao planar pode ser vista na Tabela 2.1. Em m´edia, 73% ± 4% das faces s˜ao externas ao pol´ıgono.

Como pode ser visto na Tabela 2.2, a remo¸c˜ao das variaveis ygf diminui a quantidade

total de vari´aveis no modelo em 99% ± 1%. Embora a redu¸c˜ao do n´umero de vari´aveis seja significativa, a quantidade de restri¸c˜oes no modelo, que diminui em 10% ± 5% do modelo inicial para o compacto, ainda ´e grande para ser tratada de forma eficiente nos resolvedores comerciais. Nos testes realizados, para as instˆancias com 60 v´ertices ou mais, o CPLEX n˜ao conseguiu resolver nenhuma instˆancia dentro do tempo limite de 20 minutos. Nas instˆancias onde o ´otimo foi provado, em m´edia, 92% ± 6% das restri¸c˜oes s˜ao removidas no pr´e-preprocessamento do pr´oprio resolvedor. Isto indica que a maioria das restri¸c˜oes podem ser obtidas pela combina¸c˜ao linear de outras restri¸c˜oes e, portanto, n˜ao precisariam estar no modelo. Logo, uma forma eficiente de encontrar tais restri¸c˜oes, e reduzir a quantidade de restri¸c˜oes redundantes, ´e essencial para resolver instˆancias de maior porte. Nos pr´oximos cap´ıtulos descreveremos os avan¸cos realizados nessa dire¸c˜ao.

Total Faces Faces

V´ertices de Faces Internas Externas

20 210,0 39,1 170,9

40 820,0 205,4 614,6

60 1.830,0 518,3 1.312,7

80 3.240,0 902,2 2.337,8

100 5.050,0 1.576,5 3.473,5

(40)

2.4. Avalia¸c˜ao do Modelo Simplificado 16

Modelo Inicial Modelo Compacto V´ertices Vari´aveis Restri¸c˜oes Vari´aveis Restri¸c˜oes

20 1.600 8.307,2 40 6.708,3

40 16.560 143.170,8 80 126.464,7

60 62.280 742.812,4 120 680.134,3

80 144.640 2.256.597,2 160 2.111.214,2 100 315.400 5.793.376,8 200 5.476.600,3 Tabela 2.2: N´umero m´edio de vari´aveis e restri¸c˜oes nos modelos.

(41)

Cap´ıtulo 3

Faces de Sombra e Luz

Neste cap´ıtulo, descreveremos uma forma de compactar o modelo PLI apresentado no Cap´ıtulo 2, reduzindo a quantidade de faces a serem consideradas na discretiza¸c˜ao do problema. Demonstraremos que n˜ao precisamos verificar todas as faces internas e externas ao pol´ıgono para garantir que satisfazem ou n˜ao a f´ormula Booleana, mas apenas um subconjunto delas.

3.1

Defini¸

ao de Faces de Sombra e Luz

Seja re a reta obtida pelo prolongamento da aresta e de um pol´ıgono P e seja f uma face

da subdivis˜ao planar, interna ou externa a P . Sabemos que re separa o plano R2 em dois

semi-planos. Se a face f est´a contida no semi-plano que ´e coberto por um guarda em e, em posi¸c˜ao natural de aresta, dizemos que re ´e um prolongamento de aresta de luz em

rela¸c˜ao `a face f . Caso contr´ario, re ´e um prolongamento de aresta de sombra em rela¸c˜ao

`

a face f . Um exemplo dessa defini¸c˜ao pode ser visto na Figura 3.1.

f h

re

Figura 3.1: Exemplo de prologamento de aresta re que ´e luz em rela¸c˜ao `a face f e sombra

(42)

3.1. Defini¸c˜ao de Faces de Sombra e Luz 18 f h r2 r1 f h s2 s1

(a)

(b)

Figura 3.2: Exemplo onde o prolongamento de aresta r2 ´e luz em rela¸c˜ao a f e sombra

em rela¸c˜ao a h (a) e exemplo de segmento s1 que n˜ao ´e nem de sombra ou luz por ser do

bordo do pol´ıgono (b).

Agora considere sef o segmento de re que est´a adjacente a face f mas que n˜ao separa

o interior do exterior de P , ou seja, sef n˜ao est´a contido no bordo de P . Dizemos que sef

´e um segmento de luz se re for um prolongamento de aresta de luz em rela¸c˜ao a f . Caso

contr´ario sef ´e um segmento de sombra em rela¸c˜ao a f . Um exemplo pode ser visto na

Figura 3.2, onde o segmento s2 de r2 ´e um segmento de luz em rela¸c˜ao a face f e sombra

em rela¸c˜ao a face h. Caso o segmento esteja contido no bordo do pol´ıgono, ele n˜ao ´e considerado nem um segmento de luz nem de um segmento de sombra, como o segmento

s1 da Figura 3.2(b).

Cada face f , interna ou externa ao pol´ıgono P , pode ser classificada em uma das seguintes categorias, adaptando-se conceitos definidos em [10], para o Problema da Galeria de Arte:

1. Face de luz: para toda aresta e ∈ P tal que sef existe, se sef for um segmento de

luz, dizemos que f ´e uma face de luz.

2. Face de sombra: para toda aresta e ∈ P tal que sef existe, se sef n˜ao for um

segmento de luz, dizemos que f ´e uma face de sombra.

3. Face de penumbra: se f n˜ao for nem de luz, nem de sombra, ent˜ao f ´e uma face de penumbra.

Um exemplo de faces de luz e sombra pode ser visto na Figura 3.3, onde f ´e uma face de luz, uma vez que todos os segmentos em seu bordo s˜ao luz em rela¸c˜ao a f , e k ´e uma face de sombra, uma vez que o ´unico segmento em sua fronteira que n˜ao faz parte do bordo do pol´ıgono ´e sombra em rela¸c˜ao a k. A face h, por possuir tanto segmento de luz e como de sombra em rela¸c˜ao a si, ´e considerada face de penumbra.

(43)

3.1. Defini¸c˜ao de Faces de Sombra e Luz 19

f h

k

Figura 3.3: Exemplo de pol´ıgono onde f ´e uma face de luz, k ´e de sombra e h ´e de penumbra.

Se P for convexo, h´a uma ´unica face interna f , definida pelas arestas de P . Note que, como n˜ao existe segmento sef para nenhuma aresta e, pela defini¸c˜ao, f ´e uma face de

sombra.

Lema 3. Se n˜ao houver arestas colineares no pol´ıgono, para toda face f e h, adjacentes

entre si, se re for o prologamento de aresta que separa f de h, se re for luz em rela¸c˜ao a

f , ent˜ao qualquer cl´ausula satisfeita por h tamb´em ´e satisfeita por f . Prova.

Se re separar f de h, ou seja, cada face est´a em um semi-plano distinto na subdivis˜ao

planar definida por re, como n˜ao h´a arestas colineares no pol´ıgono, como f e h s˜ao

adjacentes, este ´e o ´unico prolongamento de aresta que as separam. Assim, como re ´e luz

em rela¸c˜ao a f e sombra em rela¸c˜ao a h, um guarda em posi¸c˜ao natural de v´ertice ou aresta definido por e pode estar numa cl´ausula satisfeita por f mas n˜ao numa satisfeita por h.

Para todos os demais prologamentos de arestas, ou seja, para todo re0 tal que re0 n˜ao

separa f de h, f e h estar˜ao no mesmo semi-plano na subdivis˜ao planar definida por re0.

Assim, um guarda em posi¸c˜ao natural de v´ertice ou aresta definido por e0 pode estar na cl´ausula referente a h se, e somente se, tamb´em puder estar na cl´ausula referente a f .

Pelos itens acima, podemos concluir que o conjunto de guardas que pode estar na cl´ausula referente a h est´a contido no conjunto de guardas que pode estar na cl´ausula referente a f . Logo, qualquer cl´ausula satisfeita por h tamb´em ´e satisfeita por f . 

Lema 4. Se todas as faces de sombra internas satisfazem uma f´ormula Booleana, ent˜ao

todas as faces internas satisfazem.

Prova. Por contradi¸c˜ao, seja B uma f´ormula Booleana que ´e satisfeita por todas as faces de sombra internas e seja S o conjunto de faces internas que n˜ao satisfazem B.

(44)

3.1. Defini¸c˜ao de Faces de Sombra e Luz 20

Tome por R um subconjunto conexo maximal de S. Dizemos que um segmento sef est´a

na fronteira de R se a face f ∈ R for adjacente a uma face h /∈ R, tal que o prolongamento da aresta re separa f de h.

Suponha que exista um segmento sef de luz na fronteira de R, para alguma face f ∈ R.

Como sef ´e de luz, ent˜ao re ´e um prolongamento de aresta de luz em rela¸c˜ao a f e sombra

em rela¸c˜ao a h. Assim, pelo Lema 3, temos que qualquer cl´ausula satisfeita por h tamb´em ´e satisfeita por f . Como h /∈ R, e R ´e maximal, ent˜ao h /∈ S e, portanto, satisfaz alguma cl´ausula de B, de forma que f tamb´em satisfaz, contradizendo que f ∈ S. Portanto, sef

´e de sombra se estiver na fronteira de R.

Se |R| = 1, como R ´e composto por uma ´unica face, e todo segmento sef em sua

fronteira ´e de sombra, essa ´unica face ´e de sombra, contradizendo que B ´e satisfeito por todas as faces de sombra.

Se |R| > 1, ent˜ao existe um prolongamento de aresta re, que separa R em duas partes

disjuntas: R0 e R00. Vamos considerar, sem perda de generalidade, que sef seja de sombra

e seh seja de luz para toda face f ∈ R0 adjacente a uma face h ∈ R00. Logo, R0 tamb´em

n˜ao possui segmento de luz em sua fronteira. Podemos concluir de forma indutiva que, repetindo o particionamento de R sucessivamente em R0, teremos como base uma ´unica face de sombra, que pertence a R e, portanto, contradiz que B ´e satisfeito por todas as faces de sombra. 

Lema 5. Se nenhuma face de luz externa satisfaz uma f´ormula Booleana, ent˜ao nenhuma

face externa a satisfaz.

Prova. Analogamente ao o Lema 4, se f e h s˜ao faces externas adjacentes entre si, separadas por um prolongamento de arestas de luz em rela¸c˜ao a f e de sombra em rela¸c˜ao a h, pelo Lema 3, qualquer cl´ausula satisfeita por h tamb´em ´e satisfeita por f . Pela contra-positiva, qualquer cl´ausula que n˜ao ´e satisfeita por f tamb´em n˜ao ´e satisfeita por

h.

Considere que nenhuma face de luz externa satisfaz uma f´ormula Booleana B. Por contradi¸c˜ao, suponha que exista um conjunto S de faces externas que satisfazem B. Tome por R um subconjunto conexo maximal de S. Por racioc´ınio an´alogo `a prova do Lema 4, nenhum segmento sef na fronteira de R ´e de sombra, e quando |R| = 1 ou |R| > 1,

chega-se a uma contradi¸c˜ao quanto a n˜ao satisfa¸c˜ao de uma face de luz em rela¸c˜ao a B. 

A partir dos Lemas 4 e 5 temos o seguinte teorema.

Teorema 2. Uma f´ormula Booleana B ´e v´alida para o NWLP se, e somente se, B ´e

satisfeita por todas as faces de sombra internas e por nenhuma face de luz externa.

Apesar dos resultados experimentais, como veremos adiante, mostrarem que ´e vanta-joso considerar apenas as faces de luz e sombra, n˜ao h´a um ganho assint´otico no n´umero

(45)

3.2. Modelo 2 21

Figura 3.4: Pol´ıgono com O(n) v´ertices numa grade 2n × n com Θ(n2) faces internas de sombra e externas de luz.

de faces a serem consideradas, como pode ser visto na Figura 3.4. Nessa, figura vˆe-se um exemplo de um pol´ıgono com O(n) v´ertices numa grade 2n × n com Θ(n2) faces internas de sombra e Θ(n2) faces externas de luz.

3.2

Modelo 2

Pelo Teorema 2, podemos compactar o modelo PLI, uma vez que n˜ao precisamos verificar todas as faces internas e externas ao pol´ıgono para garantir que satisfazem ou n˜ao a f´ormula Booleana. Dessa forma, sendo S o conjunto de todas as faces internas de sombra e L o conjunto de todas as faces externas de luz, podemos trocar os conjuntos FP e FP

por S e L, respectivamente. O novo modelo pode ser visto a seguir.

min X g∈G xg, X g∈Nf h xg ≥ 1, ∀f ∈ S, ∀h ∈ L, (3.1) xg ∈ {0, 1}, ∀g ∈ G.

(46)

3.3. Algoritmo para Encontrar Faces de Sombra e Luz 22

f f

(a)

(b)

Figura 3.5: Cadeia monotˆonica de luz inferior (a) e superior (b) que definem a face de luz

f .

3.3

Algoritmo para Encontrar Faces de Sombra e Luz

Para construir o novo modelo, precisamos de uma forma eficiente de encontrar as faces de sombra e de luz. Uma maneira simples de encontr´a-las ´e computar toda a subdivis˜ao planar e verificar cada uma das arestas de todas as faces para determinar se s˜ao de sombra ou luz. Por´em, esta alternativa implica em gerar e manter ao longo do algoritmo toda a estrutura de dados correspondente `a subdivis˜ao planar que cont´em mais informa¸c˜oes do que precisamos, uma vez que estamos interessados somente nas faces de sombra e luz.

Dessa forma, em conjunto com o pesquisador Michael Hemmer, da Technische Univer-sit¨at Braunschweig (TUB), na Alemanha, desenvolvemos um procedimento de varredura, baseado no algoritmo de Bentley-Ottmann[1], para encontrar as faces de sombra e luz. No algoritmo de Bentley-Ottmann, dado um conjunto de segmentos no plano busca-se todos os pontos de intersec¸c˜ao entre eles. O procedimento ´e feito atrav´es de uma varredura do plano ao longo do eixo das abscissas, onde os extremos e cada ponto de intersec¸c˜ao entre dois segmentos ´e um evento. O algoritmo de Bentley-Ottmann, para n segmen-tos no plano, possui complexidade de tempo O((n + k) log n) e espa¸co O(n), onde k ´e a quantidade de intersec¸c˜oes entre os segmentos.

Uma face de sombra ou luz que n˜ao seja ilimitada, pode ser caracterizada por duas cadeias poligonais monotˆonicas que come¸cam e terminam nos mesmos pontos. Definimos que uma cadeia monotˆonica ´e de luz em rela¸c˜ao a uma face f se todos os segmentos que a comp˜oem, que n˜ao s˜ao do bordo do pol´ıgono, s˜ao segmentos de luz em rela¸c˜ao a f . De forma an´aloga, podemos definir cadeias monotˆonicas de sombra. Assim, ´e poss´ıvel descobrir se uma face ´e de sombra ou luz atrav´es das duas cadeias poligonais monotˆonicas que a definem. Um exemplo pode ser visto na Figura 3.5.

Como nossa subdivis˜ao planar possui faces ilimitadas, considere um retˆangulo envol-vente que cont´em todos os v´ertices da subdivis˜ao planar, de forma que todas as faces que antes eram ilimitadas, agora terminam em segmentos desse retˆangulo. Um exemplo pode

(47)

3.4. Avalia¸c˜ao Experimental 23

ser visto nas figuras 3.6(a) e 3.6(b).

Para encontrar as faces de sombra e luz do problema original, basta focarmos apenas nas faces que s˜ao limitadas e desconsiderarmos os segmentos desse retˆangulo envolvente, assim como fazemos com os do bordo do pol´ıgono na hora de decidir se uma cadeia poligonal ´e de sombra ou luz. Dessa forma, como todas faces s˜ao limitadas, as cadeias poligonais que as definem come¸cam e terminam nos mesmos pontos, possibilitando que verifiquemos facilmente se s˜ao de sombra ou luz atrav´es de um algoritmo de varredura.

Em nossa adapta¸c˜ao daquele algoritmo, em cada ponto de evento, atrav´es dos seg-mentos que se interceptaram para form´a-lo, atualizam-se as cadeias poligonais em rela¸c˜ao aos dois lados de ambos os segmentos e verifica-se se a face cuja varredura foi completada ´e luz externa ou sombra interna, salvando as informa¸c˜oes necess´arias da face caso o seja. As Figuras 3.6 e 3.7 exemplificam o algoritmo, utilizando a nota¸c˜ao “L” para uma cadeia que ´e de luz at´e o momento, “S” para sombra, “S&L” para uma cadeia que possui tanto segmentos de luz como sombra (a face ser´a de penumbra) e “SkL” para uma cadeia que, at´e o momento, pode definir uma face de luz ou sombra (possui apenas segmentos do bordo do pol´ıgono ou do retˆangulo envolvente).

O algoritmo possui a mesma complexidade de tempo do algoritmo de Bentley-Ottmann, uma vez que a cada evento apenas verifica e atualiza as informa¸c˜ao dos segmentos que o originaram. Quanto ao espa¸co, em rela¸c˜ao ao algoritmo original, al´em de guardar uma informa¸c˜ao extra em cada um dos n segmento, que v˜ao sendo atualizadas ao longo do algoritmo, guardamos as informa¸c˜oes das faces de sombra e luz encontradas. Logo, temos uma complexidade de tempo O((n + k) log n) e espa¸co O(n + m), onde k ´e quantidade de intersec¸c˜oes e m ´e quantidade de faces de sombra internas e luz externas.

3.4

Avalia¸

ao Experimental

Para classificar as faces entre sombra e luz, al´em do conjunto de instˆancias utilizado na se¸c˜ao 2.4, que consistia de 150 instˆancias com n´umero de v´ertices no intervalo [20, 100], em incrementos de 20, mais instˆancias foram geradas. O novo conjunto consiste de instˆancias com n´umero de v´ertices no intervalo [200, 1000], em incrementos de 100. Para cada tamanho, 30 pol´ıgonos simples foram gerados, totalizando 270 novas instˆancias, que foram adicionadas ao conjunto anterior. Mais detalhes sobre a gera¸c˜ao de pol´ıgonos simples podem ser encontrados no Apˆendice A.

Como nos testes anteriores, os programas utilizados foram codificados em C++ e com-pilados com GNU g++ 4.7, utilizando a biblioteca CGAL 4.2 (Computational Geometry

Algorithms Library). Os modelos foram resolvidos utilizando-se o IBM ILOG CPLEX 12.2.

Quanto ao hardware, um desktop com AMD Phenom II X6 1055T @ 2.80GHz e 12GB RAM foi utilizado.

(48)

3.4. Avalia¸c˜ao Experimental 24

(a) Subdivis˜ao planar. (b) Retˆangulo envolvente e pontos de evento.

S|L S|L

(c) Evento 1: cria¸c˜ao de cadeias que podem ser sombra ou luz a direita do ponto de evento.

L S|L

S

(d) Evento 2: extens˜ao da cadeia vinda da es-querda, que passa a ser luz.

S L S|L (e) Evento 3. S|L (f) Evento 4.

Figura 3.6: Exemplo das primeiras itera¸c˜oes da varredura para encontrar faces de sombra e luz.

(49)

3.4. Avalia¸c˜ao Experimental 25 L L S&L S&L f

(a) Evento 5: varredura da face f conclu´ıda, ambas as cadeias eram de sombra, portanto f ´e face de sombra. L S S|L (b) Evento 6. L S|L S|L L (c) Evento 7. S|L S&L L h

(d) Evento 8: varredura da face h conclu´ıda, ambas as cadeias eram de luz, portanto h ´e face de luz.

(e) Evento 23: fim do algoritmo. (f) Subdivis˜ao planar com as faces de sombra inter-nas e luz exterinter-nas ao pol´ıgono.

(50)

3.4. Avalia¸c˜ao Experimental 26

A quantidade m´edia de faces de sombra e luz pode ser vista na Tabela 3.1 e Figura 3.8. Em m´edia, 11% ± 3% das faces internas s˜ao de sombra e 9% ± 1% das faces externas s˜ao de luz. Apesar do percentual menor, como 72% ± 3% das faces s˜ao externas, o n´umero de faces de luz externas ´e 218% ± 27% maior que o n´umero de faces de sombra internas. Como o novo modelo possui uma restri¸c˜ao (3.1) para cada par de faces de sombra interna e luz externa, a redu¸c˜ao do n´umero de faces a serem consideradas diminuiu a quantidade de restri¸c˜oes para 1, 1% ± 0, 5% do n´umero total de restri¸c˜oes do modelo compacto, descrito na Se¸c˜ao 2.3. Se considerarmos apenas as instˆancias de tamanho superior a 100 v´ertices, o novo modelo possui 0, 77% ± 0, 08% do total de restri¸c˜oes do modelo compacto.

Total de Faces Internas Faces Externas V´ertices Faces Total Sombra (%) Total Luz (%)

20 210 39 8 20,51 171 22 12,87 40 820 206 39 18,93 614 69 11,24 60 1830 518 59 11,39 1312 143 10,90 80 3240 903 119 13,18 2337 236 10,10 100 5050 1576 191 12,12 3474 312 8,98 200 20100 5541 604 10,90 14559 1267 8,70 300 45150 12565 1277 10,16 32585 2762 8,48 400 80200 22549 2191 9,72 57651 4828 8,37 500 125250 35124 3335 9,49 90126 7386 8,20 600 180300 51967 4814 9,26 128333 10477 8,16 700 245350 68784 6311 9,18 176566 14279 8,09 800 320400 89881 7953 8,85 230519 18557 8,05 900 405450 125472 10415 8,30 279978 23175 8,28 1000 500500 154998 12491 8,06 345502 28631 8,29 Tabela 3.1: N´umero m´edio de faces de sombra e luz em pol´ıgonos simples.

Para computar as faces de sombra e luz, dois algoritmos foram implementados. O primeiro consiste em utilizar as fun¸c˜oes de arranjo do CGAL para encontrar todas as faces da subdivis˜ao planar e ent˜ao verificar o bordo de cada uma para determinar se s˜ao de sombra interna ou luz externa. O segundo algoritmo ´e o de varredura descrito na se¸c˜ao anterior. Em m´edia, o algoritmo de varredura foi 27% ± 8% mais r´apido do que o que utiliza o arranjo. Os resultados podem ser vistos na Figura 3.9. As instˆancias inferiores a 100 v´ertices n˜ao foram adicionadas ao gr´afico por levarem menos de 1s em ambos algoritmos. Nenhuma das instˆancias levou mais de dois minutos para ser computada por qualquer dos algoritmos.

(51)

3.4. Avalia¸c˜ao Experimental 27 0 50 100 150 200 250 300 350 400 20 40 60 80 100 200 300 400 500 600 700 800 900 1000 Faces M ilh ar es Vértices

Internas Sombra Internas Externas Luz Externas

Figura 3.8: N´umero m´edio de faces de sombra e luz em pol´ıgonos simples.

limite de 20 minutos, o novo modelo, ao reduzir o n´umero de restri¸c˜oes para 1, 1% ± 0, 5% conseguiu resolver todas as instˆancias do conjunto inicial, de at´e 100 v´ertices. Por´em, para todas as instˆancias de 200 v´ertices ou mais, o tempo limite de 20 minutos foi atingido. Apesar da redu¸c˜ao significativa do n´umero de restri¸c˜oes, instˆancias de 200 v´ertices, por exemplo, possuem em m´edia mais de 700.000 restri¸c˜oes, que ´e um n´umero consideravel-mente elevado para o resolvedor.

A partir do modelo reduzido, nas pr´oximas se¸c˜oes descreveremos os experimentos realizados que permitiram resolver instˆancias de centenas de v´ertices.

(52)

3.4. Avalia¸c˜ao Experimental 28 0 20 40 60 80 100 120 140 100 200 300 400 500 600 700 800 900 1000 Temp o (s) Vértices Arranjo Varredura

Figura 3.9: Tempo para computar as faces de sombra e luz atrav´es do arranjo e pelo algoritmo de varredura.

(53)

Cap´ıtulo 4

Resolu¸

ao Iterativa do Modelo 2

Neste cap´ıtulo, aprimoraremos ainda mais o modelo de programa¸c˜ao linear inteira pro-posto no Cap´ıtulo 2 e refinado atrav´es do uso de faces de sombra e luz apresentado no cap´ıtulo anterior. Al´em disso, apresentaremos uma forma mais efetiva de resolver o modelo a fim de obtermos um algoritmo mais eficiente, capaz de resolver instˆancias de tamanho consideravelmente maior.

4.1

Algoritmo Iterativo

No modelo proposto, para cada face f de sombra interna e h de luz externa, a solu¸c˜ao precisa conter pelo menos um guarda que separa f de h, ou seja, que cobre f mas n˜ao

h. Pela geometria do problema, tal guarda provavelmente ´e capaz de separar h de outras faces de sombra internas. Como o principal limitante para resolver instˆancias grandes ´e a quantidade de restri¸c˜oes no modelo, mostraremos uma forma iterativa de resolvˆe-lo que tenta aproveitar esse aspecto geom´etrico.

Pelo Lema 2, apresentado na Se¸c˜ao 1.3.2, para toda aresta e de um pol´ıgono P , qualquer solu¸c˜ao vi´avel para P inclui um guarda cujo cone de transmiss˜ao cont´em a aresta

e em sua borda. A partir desse lema, podemos adicionar um novo conjunto de restri¸c˜oes no modelo, como pode ser visto a seguir. Para descrever esta formula¸c˜ao, denota-se por

E o conjunto de arestas do pol´ıgono e por Ge o conjunto de guardas que possui a aresta

(54)

4.1. Algoritmo Iterativo 30 min X g∈G xg, X g∈Nf h xg ≥ 1, ∀f ∈ S, ∀h ∈ L, (4.1) X g∈Ge xg ≥ 1, ∀e ∈ E, (4.2) xg ∈ {0, 1}, ∀g ∈ G.

Vamos olhar para o crescimento do n´umero de restri¸c˜oes no modelo acima comparado ao tamanho da instˆancia, ou seja, `a quantidade de arestas no pol´ıgono. Quanto `as res-tri¸c˜oes rec´em adicionadas, para um pol´ıgono de n arestas, temos apenas n restri¸c˜oes (4.2), uma para cada aresta. No entanto, como h´a uma restri¸c˜ao (4.1) para cada par de faces de sombra interna e luz externa, e pode haver O(n2) dessas faces, temos O(n4) dessas

restri¸c˜oes.

Experimentalmente, observamos que se as restri¸c˜oes (4.2) s˜ao satisfeitas, automatica-mente a maioria das restri¸c˜oes (4.1) tamb´em o s˜ao. Atrav´es desta observa¸c˜ao, idealizamos o seguinte algoritmo iterativo para resolver o modelo:

1. Carregue o modelo sem as restri¸c˜oes (4.1). 2. Resolva o modelo.

3. Se a solu¸c˜ao for vi´avel para o problema original: pare o algoritmo, retornando a solu¸c˜ao ´otima corrente.

4. Adicione as restri¸c˜oes (4.1) violadas na solu¸c˜ao corrente. 5. V´a para o passo 2.

Lema 6. O algoritmo iterativo para e sua solu¸c˜ao ´e ´otima.

Demonstra¸c˜ao. A cada itera¸c˜ao, se o algoritmo n˜ao parou, alguma restri¸c˜ao do modelo original foi violada e adicionada ao modelo. Como o n´umero de restri¸c˜oes ´e finito, no pior caso, quando todas as restri¸c˜oes forem adicionadas, a solu¸c˜ao ser´a vi´avel e o algoritmo terminar´a.

No Passo 3, se uma solu¸c˜ao ´e vi´avel, ou seja, n˜ao viola nenhuma das restri¸c˜oes do modelo original, ela ´e ´otima, uma vez que adicionar as restri¸c˜oes (4.1) que faltam ao modelo n˜ao pode diminuir a quantidade de guardas utilizados.

Imagem

Referências