• Nenhum resultado encontrado

Soluções exatas para o Problema Cromático da Galeria de Arte

N/A
N/A
Protected

Academic year: 2021

Share "Soluções exatas para o Problema Cromático da Galeria de Arte"

Copied!
105
0
0

Texto

(1)

Mauricio Jose de Oliveira Zambon

“Solu¸

oes Exatas para o Problema Crom´

atico da

Galeria de Arte.”

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

Zambon, Mauricio Jose de Oliveira,

Z14s ZamSoluções exatas para o Problema Cromático da Galeria de Arte / Mauricio Jose de Oliveira Zambon. – Campinas, SP : [s.n.], 2014.

ZamOrientador: Pedro Jussieu de Rezende. ZamCoorientador: Cid Carvalho de Souza.

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

Zam1. Geometria computacional. 2. Programação inteira. 3. Coloração de grafos. I. Rezende, Pedro Jussieu de,1955-. II. Souza, Cid Carvalho de,1963-. III.

Universidade Estadual de Campinas. Instituto de Computação. IV. Título.

Informações para Biblioteca Digital

Título em outro idioma: Exact solutions for the Chromatic Art Gallery Problem Palavras-chave em inglês:

Computational geometry Integer programming Graph coloring

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

Pedro Jussieu de Rezende [Orientador] Fábio Luiz Usberti

Cristina Gomes Fernandes Data de defesa: 27-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

Solu¸

oes Exatas para o Problema Crom´

atico da

Galeria de Arte.

Mauricio Jose de Oliveira Zambon

1

27 de novembro de 2014

Banca Examinadora:

• Prof. Dr. Pedro Jussieu de Rezende (Supervisor/Orientador ) • Prof. Dr. Cid Carvalho de Souza (Supervisor/Orientador ) • Prof. Dr. F´abio Luiz Usberti

Instituto de Computa¸c˜ao - UNICAMP • Profa. Dra. Cristina Gomes Fernandes

Instituto de Matem´atica e Estat´ıstica - USP • Prof. Dr. Diego de Freitas Aranha

Instituto de Computa¸c˜ao - UNICAMP (Substitute/Suplente) • Prof. Dr. Daniel Morgato Martin

Centro de Matem´atica, Computa¸c˜ao e Cogni¸c˜ao - UFABC (Substitute/Suplente)

1Financial support: Coordena¸ao de Aperfei¸

coamento de Pessoal de N´ıvel Superior (Capes) #P-26329-2012, Funda¸c˜ao de Amparo `a Pesquisa do Estado de S˜ao Paulo (Fapesp) #2012/24993-6/#2013/25104-3 (Bepe)

(8)
(9)

c

Mauricio Jose de Oliveira Zambon, 2015. Todos os direitos reservados.

(10)
(11)

Abstract

In this dissertation, we present the first algorithmic approach and the first experimental results in the literature for solving the Discrete Chromatic Art Gallery Problem (dcagp). This problem is geometric in nature and consists of a variation of the classic Art Gallery Problem. In the latter, we want to find a minimum cardinality guard set that is able to watch over a given gallery. On the other hand, in the dcagp, the objective is to find a set of watchers that covers the gallery and admits a valid coloring with a minimum number of colors. A coloring is valid if two watchers that observe a same point are assigned different colors.

To solve this problem we apply two approaches: an exact and a heuristic one. Firstly, we present a primal heuristic able to provide good quality upper bounds, and subsequently an integer programming model that yields exact solutions for the dcagp. This method was able to solve all instances from an extensive set of galleries, represented by randomly generated simple polygons, of up to 2500 vertices, in less than one minute. On another set of instances, where the representation includes polygons with holes and fractal von Koch polygons, with up to 800 vertices, this method found proven optimal solutions for 80% of the instances in less than 30 minutes. In the context of these solutions, we discuss the use of lazy constraints and techniques for strengthening the model, besides a brief analysis of the hardness of the instances. Moreover, we report on results obtained through a Lagrangian relaxation, mainly as a means to obtain good upper bounds, as well as from a variation of the relax-and-fix technique. Lastly, we discuss a branch-and-price process for solving the dcagp to exactness.

(12)
(13)

Resumo

Nesta disserta¸c˜ao, apresentamos a primeira abordagem algor´ıtmica e os primeiros resul-tados experimentais da literatura para tratamento do Problema Crom´atico Discreto da Galeria de Arte (dcagp). Trata-se de um problema de natureza geom´etrica que consiste de uma variante do cl´assico Problema da Galeria de Arte. Neste, deseja-se encontrar um conjunto de guardas com cardinalidade m´ınima que consiga vigiar toda uma dada galeria. J´a no dcagp temos por objetivo obter um conjunto de observadores que cubra a galeria e que admita uma colora¸c˜ao v´alida com o menor n´umero de cores. Uma colora¸c˜ao ´e v´alida se dois observadores que veem um mesmo ponto recebem cores distintas.

Abordamos a resolu¸c˜ao deste problema atrav´es de duas abordagens: uma exata e uma heur´ıstica. Inicialmente, apresentamos uma heur´ıstica primal que fornece limitantes superiores de boa qualidade e, em seguida, um modelo de programa¸c˜ao linear inteira para resolu¸c˜ao exata do dcagp. Este m´etodo foi capaz de resolver todas as instˆancias de um extenso conjunto de galerias, representadas por pol´ıgonos simples aleatoriamente gerados, de at´e 2500 v´ertices, em menos de um minuto. J´a num outro conjunto de instˆancias onde a representa¸c˜ao inclui pol´ıgonos com buracos e pol´ıgonos fractais de von Koch com at´e 800 v´ertices, o m´etodo encontrou solu¸c˜oes comprovadamente ´otimas para 80% das instˆancias em menos de 30 minutos. No contexto dessas solu¸c˜oes, discutimos o uso de lazy constraints e de t´ecnicas de fortalecimento do modelo, assim como uma breve an´alise da dificuldade das instˆancias. Reportamos ainda resultados da utiliza¸c˜ao de relaxa¸c˜ao Lagrangiana, para obten¸c˜ao de bons limitantes, principalmente superiores, e tamb´em resultados obtidos por meio de uma varia¸c˜ao da t´ecnica relax-and-fix. Finalmente, discutimos um processo de

branch-and-price para resolu¸c˜ao exata do dcagp.

(14)
(15)

Aos meus pais.

(16)
(17)

Acknowledgements

Firstly, I would like to express my sincerest gratitude to my advisors, Prof. Rezende and Prof. Cid. I would like to thank them for their amazing job, for their advices, both professional and personal, for sharing their experiences, for trusting me and my work, for this incredible time of personal and professional growth, and for the occasional snacks, of course.

Secondly, I would like to thank my friends Alex and Bruno, for the always funny and insightful discussions. My special thanks to Bruno, for putting up with me back in Germany. It was, definitely, a much more enjoyable time because you were there. And my special thanks to Alex, always there, and always ready to help.

I would also like to thank Prof. Dr. S´andor Fekete, Dr. Michael Hemmer and Stephan Friedrichs, from Technische Universit¨at Braunschweig, for the fruitful discussions, and for helping make those months in Germany so pleasant.

I would also like to thank Prof. Dr. Cristina Gomes Fernandes and Prof. Dr. F´abio Luiz Usberti for their thorough revision of this dissertation.

Lastly, I gratefully acknowledge the Coordena¸c˜ao de Aperfei¸coamento de Pessoal de N´ıvel Superior (Capes) and Funda¸c˜ao de Amparo `a Pesquisa do Estado de S˜ao Paulo (Fapesp) for funding my research, which made this work possible.

(18)
(19)

“They did not know it was impossible, so they did it!”

Mark Twain

(20)
(21)

Sum´

ario

Abstract xi Resumo xiii Dedication xv Acknowledgements xvii Epigraph xix 1 Introdu¸c˜ao 1

2 Terminologia e Formaliza¸c˜ao do Problema 5

3 Revis˜ao Bibliogr´afica 11

4 Metodologia 15 4.1 Pr´e-processamento . . . 15 4.2 Solu¸c˜ao Inicial . . . 16 4.3 Modelo Natural . . . 17 4.3.1 Fortalecendo o modelo . . . 19 4.3.2 Lazy Constraints . . . . 23 4.4 Relaxa¸c˜ao Lagrangiana . . . 24 4.4.1 Vis˜ao Geral . . . 24 4.4.2 Aplica¸c˜ao no cagp . . . 25 4.5 Relax-and-fix . . . 27 4.5.1 Custom Relax-and-fix . . . . 28 4.6 Branch-and-price . . . . 28 5 Resultados Computacionais 33 5.1 Instˆancias . . . 33 xxi

(22)
(23)

5.2 Pr´e-processamento . . . 35 5.3 Modelo Natural . . . 40 5.3.1 Pol´ıgonos Sem Buracos . . . 40 5.3.2 Pol´ıgonos Aleat´orios com Buracos e de von Koch . . . 43 5.3.3 Oscila¸c˜oes na resolu¸c˜ao do cplex . . . 48 5.3.4 Gap de Instˆancias n˜ao Resolvidas . . . 50 5.3.5 Restri¸c˜oes de Vizinhan¸ca . . . 50 5.3.6 Outras Considera¸c˜oes . . . 51 5.4 Relaxa¸c˜ao Lagrangiana . . . 54 5.5 Relax-and-fix . . . 56 5.6 Branch-and-price . . . . 57

6 Trabalhos Futuros 59

6.1 Processamento do arranjo e constru¸c˜ao do grafo de conflitos . . . 59 6.2 Altera¸c˜oes na ramifica¸c˜ao do algoritmo de branch-and-price . . . . 66

7 Conclus˜ao 67

Referˆencias Bibliogr´aficas 69

A Interface Gr´afica 71

(24)
(25)

Lista de Tabelas

5.1 Instˆancias resolvidas para pol´ıgonos simples e ortogonais (sem buracos). . . 41 5.2 Instˆancias resolvidas para pol´ıgonos simples com buraco (SS), ortogonais

com buraco (OO) e de von Koch (VK). . . 44 5.3 Tempo gasto pelo resolvedor para as instˆancias SS, OO e VK. . . 45 5.4 Porcentagens do n´umero de testemunhas w utilizadas para concluir a

oti-miza¸c˜ao utilizando lazy constraints. . . . 47 5.5 Comparativo entre os tempos de execu¸c˜ao para o modelo sem e com

res-tri¸c˜oes de vizinhan¸ca. . . 51 5.6 Estat´ısticas obtidas com o uso da Relaxa¸c˜ao Lagrangiana. . . 55 5.7 Porcentagem %sde instˆancias e o tempo ts, em segundos, gasto para

encon-trar uma solu¸c˜ao vi´avel para o dcagp utilizando o m´etodo de relax-and-fix com os valores de ∆t= {0.75, 0.85, 0.99}. . . . 57

5.8 Porcentagem de instˆancias resolvidas e os respectivos tempos m´edios utili-zando branch-and-price. . . . 58

(26)
(27)

Lista de Figuras

1.1 O conjunto de marca¸c˜oes G = {g1, g2, g3, g4, g5, g6} n˜ao garante a cobertura do ambiente e, na configura¸c˜ao acima, o robˆo n˜ao vˆe nenhuma marca¸c˜ao em G. . . . 3 1.2 Marca¸c˜oes de mesma cor induzem instru¸c˜oes amb´ıguas. . . 3 2.1 Visibilidade entre pontos. . . 6 2.2 Pol´ıgono de visibilidade de p. . . . 7 2.3 Pol´ıgono P , com conjuntos de candidatos a guarda G = {g1, . . . , g7}. . . 8 2.4 Arranjo ζ obtido com G = {g1, . . . , g10}. . . 9 2.5 Atomic Visibility Polygons. avps de sombra em cinza e de luz em amarelo. 9 2.6 Grafo GT correspondente `a instˆancia da Figura 2.4. . . 10

2.7 Fam´ılia de pol´ıgonos com χ(P ) = 2, para a qual o n´umero minimo de guardas, k, n˜ao ´e 2-color´ıvel. . . 10 4.1 Subgrafo induzido de GC. . . 20

4.2 Intui¸c˜ao sobre as restri¸c˜oes (4.13). . . 23 5.1 Exemplos, com 100 v´ertices, do primeiro conjunto de instˆancias. . . 34 5.2 Exemplos, com 100 v´ertices, do segundo conjunto de instˆancias. . . 35 5.3 Tempos relativos `as etapas de pr´e-processamento para instˆancias simples

sem buracos. . . 36 5.4 Tempos relativos `as etapas de pr´e-processamento para instˆancias ortogonais

sem buracos. . . 37 5.5 Tempos totais m´edios da fase de pr´e-processamento para as instˆancias sem

buracos. . . 38 5.6 Tempos relativos `as etapas de pr´e-processamento para instˆancias SS. . . 38 5.7 Tempos relativos `as etapas de pr´e-processamento para instˆancias OO. . . 38 5.8 Tempos relativos `as etapas de pr´e-processamento para instˆancias VK. . . 39 5.9 Tempos totais m´edios da fase de pr´e-processamento para as instˆancias SS,

OO e VK. . . 39 xxvii

(28)
(29)

5.10 Porcentagens do tempo total gasto pelo pr´e-processamento e pelo resolve-dor para pol´ıgonos aleat´orios simples sem buracos. . . 41 5.11 Porcentagens do tempo total gasto pelo pr´e-processamento e pelo

resolve-dor para pol´ıgonos aleat´orios ortogonais sem buracos. . . 42 5.12 Instˆancias resolvidas para pol´ıgonos simples com buraco (SS), ortogonais

com buraco (OO) e de von Koch (VK). . . 43 5.13 Porcentagens do tempo total gasto gastos pelo pr´e-processamento e pelo

resolvedor para pol´ıgonos SS. . . 46 5.14 Porcentagens do tempo total gasto pelo pr´e-processamento e pelo

resolve-dor para pol´ıgonos OO. . . 46 5.15 Porcentagens do tempo total gasto pelo pr´e-processamento e pelo

resolve-dor para pol´ıgonos VK. . . 47 5.16 N´umero de instˆancias resolvidas em cada execu¸c˜ao. . . 49 5.17 N´umero acumulado de instˆancias resolvidas por intervalo de tempo para

m´ultiplas execu¸c˜oes. . . 49 5.18 Gap m´ınimo para instˆancias n˜ao resolvidas e o tempo requerido para

ating´ı-los. . . 50 5.19 Propor¸c˜ao |W |/|G| (n´umero de testemunhas (avps de sombra) pela

quan-tidade de candidatos a guarda) e a sua relevˆancia para se determinar a dificuldade de uma instˆancia. . . 52 5.20 Propor¸c˜ao |L|/|G| (n´umero de avps de luz pela quantidade de candidatos a

guarda) e a sua relevˆancia para se determinar a dificuldade de uma instˆancia. 53 5.21 N´umero m´edio de n˜ao zeros na matriz de restri¸c˜oes. Escala logar´ıtmica. . . 54 5.22 Porcentagem de instˆancias para as quais a Relaxa¸c˜ao Lagrangiana

encon-trou um limitante superior melhor ou igual ao melhor limitante superior encontrado pelo modelo natural. . . 56 6.1 Recorte de um arranjo. . . 61 6.2 Exemplo de execu¸c˜ao do algoritmo de varredura do arranjo, para

identi-fica¸c˜ao de faces de sombra. . . 64 6.3 Instˆancias com faces do arranjo n˜ao convexas. . . 65 A.1 Exemplo de um pol´ıgono aberto pela interface . . . 72 A.2 AVPs de luz em amarelo e AVPs de sombra em verde . . . 72 A.3 Solu¸c˜ao ´otima com 3 cores . . . 73 A.4 Grafo GT. Testemunhas em verde e guardas em cinza . . . 73

A.5 Detalhe do gr´afico com informa¸c˜oes da Relaxa¸c˜ao Lagrangiana . . . 74 A.6 Detalhe do gr´afico de tempos das execu¸c˜oes de algoritmos . . . 74 A.7 Parˆametros configur´aveis via interface . . . 75

(30)
(31)

Cap´ıtulo 1

Introdu¸

ao

Robˆos cada vez mais parecem fazer parte do nosso futuro. Obviamente s˜ao muitas as poss´ıveis aplica¸c˜oes de tais entidades, principalmente no que se refere a atividades peri-gosas para seres humanos. Considere ent˜ao uma aplica¸c˜ao em que um robˆo simples, i.e., sem uma inteligˆencia artificial complexa, est´a posicionado em um ambiente mapeado, e deseja-se guiar o mesmo utilizando para tanto marca¸c˜oes no ambiente. Considere que tais marca¸c˜oes s˜ao distingu´ıveis por alguma caracter´ıstica percept´ıvel pelo robˆo, como cor ou frequˆencia de transmiss˜ao. Por simplicidade, iremos considerar que as marca¸c˜oes s˜ao di-ferenci´aveis por suas cores. Com o uso destas marca¸c˜oes ´e poss´ıvel fornecer comandos ao robˆo como “se mova na dire¸c˜ao da marca¸c˜ao vermelha” ou “realize um movimento circular ao redor da posi¸c˜ao da marca¸c˜ao azul”. Para que este sistema funcione ´e preciso posicionar tais marca¸c˜oes de forma que, independentemente de onde o robˆo esteja neste ambiente, ele sempre veja ou receba um sinal de ao menos uma marca¸c˜ao (Figura 1.1) e que todas as marca¸c˜oes sejam distingu´ıveis de forma a evitar instru¸c˜oes amb´ıguas (Figura 1.2). Ob-viamente, um posicionamento que necessite de um menor n´umero de diferentes marca¸c˜oes (cores) ´e prefer´ıvel a um outro que necessite um sistema de identifica¸c˜ao mais complexo, por raz˜ao de eficiˆencia e simplicidade do sistema de reconhecimento de cores e consequen-temente da redu¸c˜ao do custo do robˆo.

Uma analogia com o conhecido Problema da Galeria de Arte (agp) ´e inevit´avel. No agp, dado um ambiente como o descrito acima, estamos interessados em encontrar um conjunto m´ınimo de guardas/cˆameras, tal que todo ponto neste ambiente seja visto por ao menos um guarda neste conjunto. Dizemos ent˜ao que tal conjunto cobre este ambiente, ou ainda que estes guardas formam uma cobertura deste ambiente. J´a na vers˜ao descrita acima, n˜ao estamos interessados em minimizar a cardinalidade do conjunto de guardas, ou seja, de marca¸c˜oes, mas sim o n´umero de cores requeridos para colorir uma cobertura deste ambiente. A esta varia¸c˜ao se deu o nome de Problema Crom´atico da Galeria de Arte, em inglˆes, Chromatic Art Gallery Problem (cagp). Nesta disserta¸c˜ao, utilizaremos

(32)

2 Cap´ıtulo 1. Introdu¸c˜ao

os termos marca¸c˜oes e guardas indistintamente. Discutimos aqui uma variante do cagp em que um conjunto de potenciais localiza¸c˜oes para os guardas tamb´em ´e fornecido na entrada, o qual chamaremos de candidatos a guarda, e que deve garantir a cobertura do ambiente. Nosso trabalho, portanto, ´e refinar este conjunto de candidatos e escolher um subconjunto destes guardas que possam ser coloridos com um n´umero m´ınimo de cores, entre todas as coberturas compostas por guardas deste conjunto de candidatos. A esta variante damos o nome de Problema Crom´atico Discreto da Galeria de Arte, em inglˆes

Discrete Chromatic Art Gallery Problem (dcagp).

Sendo um problema relativamente novo, proposto em 2010 [9], poucos s˜ao os trabalhos publicados acerca do cagp. Enquanto alguns resultados te´oricos j´a existem, a menos de nossa publica¸c˜ao [20], n˜ao h´a outros resultados pr´aticos na literatura. Ao longo desta disserta¸c˜ao discutiremos t´ecnicas e seus resultados na solu¸c˜ao do dcagp que foram objeto de estudo do presente projeto de Mestrado.

Este trabalho ´e organizado da seguinte forma. O Cap´ıtulo 2 apresenta a terminologia espec´ıfica que ser´a usada nas se¸c˜oes posteriores. No Cap´ıtulo 3 descrevemos os principais trabalhos que influenciaram este projeto, refor¸cando que este ´e o primeiro trabalho com resultados pr´aticos acerca do dcagp. Nas se¸c˜oes do Cap´ıtulo 4 apresentamos os m´etodos utilizados para atingir os resultados apresentados no Cap´ıtulo 5. Esse cap´ıtulo detalha o pr´e-processamento necess´ario para a discretiza¸c˜ao do problema e uma heur´ıstica primal que ´e utilizada em diversas ocasi˜oes nos m´etodos que se seguem. Em seguida, discutimos um modelo de programa¸c˜ao inteira para o dcagp, seguido de um algoritmo de relaxa¸c˜ao lagrangiana e uma vers˜ao customizada da t´ecnica de relax-and-fix. Nesse mesmo cap´ıtulo, tamb´em delineamos um algoritmo de gera¸c˜ao de colunas associado a um processo de

branch-and-price. Por fim, apresentamos ideias para trabalhos futuros no Cap´ıtulo 6, o

que inclui o detalhamento de um algoritmo para aperfei¸coamento do pr´e-processamento, e conclu´ımos com o Cap´ıtulo 7, onde fazemos algumas considera¸c˜oes finais.

(33)

3 g1 g2 g3 g4 g5 g6

!

Figura 1.1: O conjunto de marca¸c˜oes G = {g1, g2, g3, g4, g5, g6} n˜ao garante a cobertura do ambiente e, na configura¸c˜ao acima, o robˆo n˜ao vˆe nenhuma marca¸c˜ao em G.

g1 g2

g3

g4

g5 g6

?

(34)
(35)

Cap´ıtulo 2

Terminologia e Formaliza¸

ao do

Problema

Neste cap´ıtulo, apresentamos a terminologia utilizada ao longo desta disserta¸c˜ao. Tamb´em recomendamos a leitura de [15] para conhecimentos b´asicos de Geometria Computacional, e dos cap´ıtulos iniciais de [18] para uma introdu¸c˜ao a Programa¸c˜ao Linear e a Programa¸c˜ao Linear Inteira.

Considerando nossa motiva¸c˜ao inicial, se faz necess´ario detalhar o ambiente que ser´a percorrido pelo robˆo. No contexto do cagp, podemos pensar numa representa¸c˜ao dada pela planta baixa do ambiente que tamb´em chamaremos de galeria, e simboliz´a-la por um pol´ıgono simples, i.e., um pol´ıgono sem arestas intersectantes. Em situa¸c˜oes mais complexas, em que queremos representar ´areas internas ao per´ımetro desta galeria, mas que pertencem ao exterior da constru¸c˜ao, como por exemplo o fosso de um elevador, podemos fazer uso de buracos no interior desse pol´ıgono. Nessa representa¸c˜ao, iremos considerar que um pol´ıgono simples P tem o seu bordo ∂P descrito pela sequˆencia anti-hor´aria de seus v´ertices, ou seja, o lado esquerdo da cadeia poligonal corresponder´a ao interior do pol´ıgono. Para pol´ıgonos com buracos, adicionalmente aos v´ertices da cadeia externa, esta descri¸c˜ao conter´a uma lista de v´ertices para cada buraco em P .

Neste pol´ıgono (ou galeria) dizemos que dois pontos p e q se veem se o segmento pq n˜ao intercepta o exterior de P (Figura 2.1). Estendendo este conceito, definimos o pol´ıgono de visibilidade de um ponto p, V(p), como o conjunto dos pontos de P vis´ıveis a partir de p, ou seja V(p) = {q ∈ P : pq ⊂ P } (Figura 2.2). Seja Γ um conjunto finito de pontos em P cuja uni˜ao dos respectivos pol´ıgonos de visibilidade seja igual a P , ou seja, [

γ∈Γ

V(γ) = P . Neste caso, dizemos que Γ cobre P . Considerando agora apenas pontos em Γ, dizemos que dois pontos (γ1, γ2) ∈ Γ s˜ao ditos conflitantes se V(γ1) ∩ V(γ2) 6= ∅, ou seja, se ambos os pol´ıgonos de visibilidade compartilham ao menos um ponto. Chamaremos os pontos

(36)

6 Cap´ıtulo 2. Terminologia e Formaliza¸c˜ao do Problema

de Γ de guardas. Denotaremos por C(Γ) o n´umero m´ınimo de cores suficiente para colorir os guardas, em Γ de modo que nenhum par de guardas conflitantes recebam a mesma cor. Na defini¸c˜ao abaixo, G representa um conjunto de candidatos a guarda (veja Figura 2.3), do qual queremos escolher um subconjunto Γ que minimiza o n´umero de cores utilizadas. Com isto, o Problema Crom´atico Discreto da Galeria de Arte, dcagp, pode ser descrito por:

Dados um pol´ıgono simples P , possivelmente com buracos, e um conjunto G ⊂ P finito de pontos, determine:

χG(P ) = min Γ⊆G{C(Γ) : Γ cobre P }. p q (a) pq ⊂ P p q (b) pq 6⊂ P

Figura 2.1: Visibilidade entre pontos.

Considere um arranjo ζ composto pelas arestas de P juntamente com as arestas dos pol´ıgonos de visibilidade de G (Figura 2.4). Este arranjo divide o interior de P em regi˜oes fechadas, que chamaremos de faces internas ou avps, Atomic Visibility Polygons (Figura 2.5). ´E f´acil observar que qualquer guarda g ∈ G capaz de enxergar um ponto no interior de um avp f tamb´em enxerga toda essa face uma vez que, se isto n˜ao fossealido, para algum par de face f e guarda g, haveria uma aresta de V(g) dividindo f , o que contradiz o fato de f ser uma face. Considere agora uma face f deste arranjo, e S(f ) o conjunto de guardas de G que cobrem f . Podemos definir uma ordem parcial dos avps neste arranjo de forma que para duas faces f1e f2, f1 ≺ f2sse S(f1) ⊂ S(f2). Desta ordem parcial, estamos interessados nos elementos minimais, ou seja, nas faces cujo conjunto de

(37)

7

p

Figura 2.2: Pol´ıgono de visibilidade de p.

guardas que as cobrem ´e um m´ınimo local. Chamaremos tais faces de avps de Sombra. Podemos observar que cobrindo este m´ınimos locais garantimos a cobertura do restante das faces, uma vez que qualquer guarda que cobre tal face, cobrir´a tamb´em as faces mais altas na ordem parcial. Como explicado acima, a cobertura de um ponto interior a um avp resulta na cobertura da face toda (veja [7] para uma prova formal). Sendo assim, podemos extrair um ponto interior a cada avp de sombra, de forma a represent´a-la, j´a que uma cobertura destes pontos implica na cobertura dos respectivos avps e, portanto, na cobertura de P . Chamaremos estes pontos internos de testemunhas, e denotaremos por W o conjunto de todas elas. As faces representadas por m´aximos locais na ordem parcial ≺ s˜ao chamadas de avps de Luz. Na Figura 2.5, os avps em cinza s˜ao faces de sombra (das quais s˜ao extra´ıdas as testemunhas), enquanto os avps em amarelo s˜ao faces de luz.

O dcagp tamb´em pode ser visto como um problema em grafos. Seja GC = (G, EG) um

grafo cujos v´ertices correspondem aos candidatos a guarda de G, sendo que (g1, g2) ∈ EG

sse V(g1) ∩ V(g2) 6= ∅. Chamaremos GC de Grafo de Conflito (tamb´em conhecido como

2-link-visibility graph, veja [9]), pois representa a rela¸c˜ao entre guardas que n˜ao podem receber a mesma cor. Seja agora GW = (G ∪ W, EW) o grafo bipartido cujo conjunto

de v´ertices ´e a uni˜ao dos candidatos a guarda em G e das testemunhas em W , tal que (g, w) ∈ EW sse w ∈ V(g). Assim, o dcagp pode ser definido sobre o grafo GT = GC∪GW

(Figura 2.6), como o problema de determina¸c˜ao de uma dominˆancia D ⊆ G dos v´ertices em W que requer o menor n´umero de cores entre todas as dominˆancias de W em G.

A fim de caracterizar uma importante dissimilaridade entre o agp e o cagp, a Fi-gura 2.7 retrata uma classe de pol´ıgonos caracterizados pela presen¸ca de “bicos”. ´E f´acil

(38)

8 Cap´ıtulo 2. Terminologia e Formaliza¸c˜ao do Problema g1 g2 g3 g4 g5 g6 g7

Figura 2.3: Pol´ıgono P , com conjuntos de candidatos a guarda G = {g1, . . . , g7}.

observar a necessidade de um guarda diferente para cobrir cada bico deste pol´ıgono, e se tais guardas cobrirem tamb´em os corredores correspondentes, fica claro que o n´umero m´ınimo de guardas para cobrir um pol´ıgono de k bicos ´e k, ou seja, a solu¸c˜ao ´otima Γ1 do agp para tal pol´ıgono tem tamanho k. Se tentarmos colorir os guardas desta solu¸c˜ao ´

otima do agp precisaremos de k cores, uma vez que todos os guardas conflitam na parte inferior do pol´ıgono. Mas, se deslocarmos os guardas que cobrem cada bico e corredor para cobrirem somente os bicos, eliminamos os conflitos na parte central, e necessitaremos de apenas um guarda adicional para cobrir o restante do pol´ıgono. Ou seja, para um pol´ıgono com k bicos, ser˜ao suficientes k + 1 guardas e apenas duas cores. Para um pol´ıgono desta fam´ılia com n v´ertices temos que o n´umero de bicos correspondente ´e n/4 e, portanto, para este mesmo pol´ıgono o n´umero de cores necess´arias para colorir uma solu¸c˜ao ´otima do agp ´e n/4. Sabendo que uma solu¸c˜ao ´otima Γ2 para o cagp para qualquer pol´ıgono desta fam´ılia sempre requer exatamente duas cores, temos que a rela¸c˜ao entre o n´umero de cores de uma solu¸c˜ao ´otima do agp e do cagp pode ser t˜ao alta quanto n/8.

(39)

9 g1 g2 g3 g4 g5 g6 g7 g8 g9 g10

Figura 2.4: Arranjo ζ obtido com G = {g1, . . . , g10}.

g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 w1 w2 w3 w4

(40)

10 Cap´ıtulo 2. Terminologia e Formaliza¸c˜ao do Problema g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 w1 w2 w3 w4

Figura 2.6: Grafo GT correspondente `a instˆancia da Figura 2.4.

1 2 . . . k − 1 k Pol´ıgono P , G = ∂P 1 2 . . . k − 1 k |Γ1| = k, C(Γ1) = k 1 2 . . . k − 1 k |Γ2| = k + 1, C(Γ2) = 2 Figura 2.7: Fam´ılia de pol´ıgonos com χ(P ) = 2, para a qual o n´umero minimo de guardas,

(41)

Cap´ıtulo 3

Revis˜

ao Bibliogr´

afica

Neste cap´ıtulo, citamos os trabalhos relevantes para a elabora¸c˜ao e conclus˜ao deste pro-jeto. Como dito anteriormente, como o cagp ´e um problema relativamente novo, a literatura ´e bastante escassa, sendo este o primeiro trabalho que fornece um tratamento algor´ıtmico para este problema. Inclu´ımos tamb´em algumas referˆencias de interesse acerca do agp.

Bose et al. [3] apresenta uma forma de se decompor um pol´ıgono com o objetivo de responder rapidamente a diversos tipos de buscas. Esta decomposi¸c˜ao se baseia no ar-ranjo formado pelas arestas dos pol´ıgonos de visibilidade dos v´ertices do pol´ıgono, e as consequentes regi˜oes convexas que se formam no interior do pol´ıgono, que os autores cha-mam de regi˜oes de visibilidade. Assim, ap´os um pr´e-processamento de tempo O(n3log n) e espa¸co O(n3), sendo n o n´umero de v´ertices do pol´ıgono, ´e poss´ıvel recuperar o n´umero de v´ertices vis´ıveis a partir de um ponto p, no interior ou exterior do pol´ıgono, em O(log n) e recuperar o pol´ıgono de visibilidade de tamanho k ou o conjunto dos k v´ertices vis´ıveis a partir de p em O(log n+k). Os autores ainda provam que h´a O(n3) regi˜oes de visibilidade, sendo que O(n2) s˜ao m´ınimos locais com respeito ao conjunto de v´ertices que as cobrem, regi˜oes estas chamadas pelo autor de sinks (denominadas de avps de sombra no Cap´ıtulo 2).

Chwa et al. [5] definem um conceito de testemunhas similar ao usado neste traba-lho: um conjunto de pontos pertencentes ao pol´ıgono que uma vez cobertos garantem a cobertura de todo o pol´ıgono. No entanto, no trabalho citado, tais testemunhas s˜ao independentes de um conjunto inicial de candidatos a guarda e inerentes `a geometria do pol´ıgono. Infelizmente, nem todo pol´ıgono admite um conjunto finito destas testemunhas. Os autores demonstram que se existir tal conjunto, um conjunto minimal destas teste-munhas n˜ao pode conter nenhum ponto no interior do pol´ıgono, e haver´a no m´aximo um ponto por aresta. A partir desta observa¸c˜ao, os autores definem como sendo testemunh´avel

um pol´ıgono que possui um conjunto finito de testemunhas, e apresentam um algoritmo 11

(42)

12 Cap´ıtulo 3. Revis˜ao Bibliogr´afica

de complexidade O(n2log n) para reportar tal conjunto, ou concluir que n˜ao existe um tal conjunto. Trataremos aqui de pol´ıgonos testemunh´aveis e n˜ao testemunh´aveis.

Couto et al. [7], descrevem um m´etodo de solu¸c˜ao exata para o agp a partir de candidatos a guarda. Nesta discretiza¸c˜ao ´e escolhido um conjunto inicial de testemunhas (cuja cobertura n˜ao necessariamente garante a cobertura de todo o pol´ıgono), e resolve-se um problema de cobertura de conjuntos (as testemunhas). Se com os guardas escolhidos nesta solu¸c˜ao n˜ao for poss´ıvel cobrir todo o pol´ıgono, novas testemunhas s˜ao acrescentadas nas ´areas n˜ao cobertas e o algoritmo itera resolvendo um novo modelo de cobertura. Prova-se, ent˜ao, que este processo converge em um n´umero polinomial de itera¸c˜oes. Para a escolha de testemunhas iniciais, os autores realizaram testes com diversas estrat´egias, escolhendo apenas v´ertices convexos, subconjuntos dos avps de sombra, entre outros.

Em Tozoni [16], o autor descreve um m´etodo iterativo para resolu¸c˜ao exata do agp,

i.e., da vers˜ao continua do problema, onde guardas podem ser posicionados em qualquer ponto do interior ou do bordo do pol´ıgono. Este m´etodo baseia-se na otimiza¸c˜ao iterativa de dois problemas: um para encontrar limitantes inferiores e outro para limitantes supe-riores. O m´etodo itera at´e que os ambos os limitantes sejam iguais e o valor encontrado, portanto, seja ´otimo.

O trabalho [9] ´e considerado o primeiro a formalizar o cagp. Nesse relat´orio t´ecnico, Erickson e LaValle, al´em de definir o problema, demonstram que para qualquer pol´ıgono espiral PS, χ(PS) ≤ 2, e que para qualquer pol´ıgono escada PT, χ(PT) ≤ 3. Em [11], os

mesmos autores estendem [9] e mostram como construir pol´ıgonos de diversas classes que requerem pelo menos k cores: para todo k1 ≥ 3 existe um pol´ıgono Pk1 com 4k1v´ertices tal

que χ(Pk1) ≥ k1, para todo k2 ≥ 3 existe um pol´ıgono estritamente monotˆonico Pk2 com

3k2

2 v´ertices tal que χ(Pk2) ≥ k2, e para todo k3 ≥ 3, ´ımpar, existe um pol´ıgono ortogonal

monotˆonico Pk3 com 4k

2

3 + 10k3 + 10 v´ertices tal que χ(Pk3) ≥ k3. Em [10], Erickson

e LaValle tentaram provar que grafos de conflito s˜ao todos cordais, mas posteriormente apresentaram evidˆencia da falsidade deste fato atrav´es de uma errata. No mesmo trabalho, provam corretamente que, dado k e um conjunto G de candidatos a guarda, decidir se existe G0 ⊆ G tal que χ(G0

) ≤ k ∈ N ´e NP-completo e, portanto, dcagp tamb´em o ´e. Em [4] B¨artschi e Suri consideram uma variante do agp, o Problema Crom´atico da Galeria de Arte Sem Conflitos, em inglˆes Conflict-Free Chromatic Art Gallery Problem. Nesta variante, a restri¸c˜ao de colora¸c˜ao ´e relaxada: n˜ao ´e mais necess´ario que todos os guardas vis´ıveis a partir de um ponto do pol´ıgono sejam diferenci´aveis, basta que apenas um seja distingu´ıvel entre aqueles vis´ıveis. Para esta variante os autores provam que o limitante superior para o n´umero de cores diminui consideravelmente daqueles fornecidos para o cagp: para pol´ıgonos simples de n v´ertices, o limitante diminui de Ω(n) para

O(log2n) cores, enquanto para pol´ıgono ortogonais o limitante diminui de Ω(n) para O(log n) cores.

(43)

13

Recentemente, Fekete et al. [12] provaram que ´e NP-dif´ıcil determinar o n´umero crom´atico de um pol´ıgono simples P . Ou seja, considerando os infinitos pontos de P como poss´ıveis posi¸c˜oes de guardas, ´e dif´ıcil encontrar qual o n´umero m´ınimo de cores suficientes para colorir um conjunto de guardas que cobrem P . Nesse trabalho, os auto-res tamb´em mostram que ´e NP-completo decidir se ´e poss´ıvel colorir um pol´ıgono com buracos com k cores, para k ≥ 2 fixo.

(44)
(45)

Cap´ıtulo 4

Metodologia

Neste cap´ıtulo, discutimos os processos algor´ıtmicos utilizados na resolu¸c˜ao do dcagp. Come¸camos detalhando o pr´e-processamento, requerido pelos m´etodos seguintes, e res-pons´avel por discretizar a instˆancia de entrada. Na se¸c˜ao seguinte, descrevemos uma heur´ıstica capaz de gerar bons limitantes superiores. Nas se¸c˜oes posteriores, discutimos m´etodos baseados em programa¸c˜ao linear para a resolu¸c˜ao do problema come¸cando por um modelo de programa¸c˜ao inteira, que obteve os melhores resultados entre todas as t´ecnicas testadas, um algoritmo de relaxa¸c˜ao lagrangiana, uma vers˜ao alternativa de um algoritmo de relax-and-fix, finalizando com uma vers˜ao simples de um algoritmo de branch-and-price para o dcagp.

4.1

Pr´

e-processamento

Para que os m´etodos descritos neste cap´ıtulo pudessem ser desenvolvidos e testados, se fez necess´ario um pr´e-processamento da entrada de forma a discretiz´a-la. Como podemos perceber pelo Cap´ıtulo 2, a visibilidade dos candidatos a guarda ´e essencial para a defini¸c˜ao do problema. Assim, o pr´e-processamento se inicia com o c´alculo dos pol´ıgonos de visibilidade para todo guarda g ∈ G. Para tanto, utilizamos a biblioteca <CGAL/Triangular expansion visibility 2 .h>, que integrar´a uma vers˜ao futura do cgal, fornecida pelo Dr. Michael Hemmer, da Technische Universit¨at Braunschweig, du-rante o per´ıodo de est´agio deste mestrando naquela universidade. Uma vez que possu´ımos todos os pol´ıgonos de visibilidade dos guardas em G, podemos iniciar a constru¸c˜ao do ar-ranjo. Este arranjo ´e modelado pela biblioteca <CGAL/Arrangement 2.h>, juntamente com a biblioteca <CGAL/Arr extended dcel.h> para a modelagem da Doubly Connected

Edge List, DCEL, e da biblioteca <CGAL/Arr observer.h> para a manipula¸c˜ao de even-tos. Durante a constru¸c˜ao, as informa¸c˜oes de luz/sombra s˜ao armazenadas nas arestas do pr´oprio arranjo, tendo como base a orienta¸c˜ao dos segmentos dos pol´ıgonos de visibilidade,

(46)

16 Cap´ıtulo 4. Metodologia

i.e., o lado correspondente ao interior do respectivo pol´ıgono de visibilidade ´e aquele de luz, ou de sombra, caso contr´ario . Ao terminar o procedimento, a fim de extrair apenas as faces que estamos interessados, i.e., as de luz e sombra, basta percorrer as arestas de uma dada face e verificar se todas s˜ao de luz ou sombra. Uma vez identificadas estas faces, computamos apenas um ponto interno de cada face com o prop´osito de represent´a-las. Nesta altura do pr´e-processamento, j´a temos os pol´ıgonos de visibilidade dos guardas em

G bem como um ponto para cada face de luz e sombra. Basta agora determinar quais

guardas enxergam quais faces.

O ´ultimo passo do pr´e-processamento diz respeito `a constru¸c˜ao do grafo de conflitos. Contudo, a verifica¸c˜ao de intersec¸c˜ao entre pol´ıgonos realizada pelo cgal n˜ao considera o bordo do pol´ıgono, o que resulta em um grafo incompleto, uma vez que intersec¸c˜oes que correspondem a apenas um v´ertice ou uma aresta n˜ao seriam computadas. Assim, por simplicidade, ´e feita uma compara¸c˜ao aresta a aresta entre os pol´ıgonos de visibilidade a fim de se determinar a existˆencia ou n˜ao de conflitos. Para aumentar a eficiˆencia deste processo, primeiramente s˜ao verificados se os retˆangulos envolventes dos dois pol´ıgonos s˜ao disjuntos. Al´em disso, utilizamos as informa¸c˜oes pr´e-computadas de visibilidade das faces de luz e sombra para verificar poss´ıveis faces em comum, e uma vez que utilizamos

bitsets para armazenar quais guardas veem quais faces, esta verifica¸c˜ao pode ser feita em tempo linear. Uma alternativa mais elegante, que une as constru¸c˜oes do arranjo e do grafo de conflitos ´e descrita na Se¸c˜ao 6.1. Infelizmente, n˜ao foi poss´ıvel testar a fundo tal op¸c˜ao devido a um bug [19] no cgal encontrado durante testes preliminares.

4.2

Solu¸

ao Inicial

Nas pr´oximas se¸c˜oes deste cap´ıtulo, muitas vezes se far´a necess´ario o conhecimento de uma solu¸c˜ao primal durante a execu¸c˜ao de outros algoritmos. Esta informa¸c˜ao ´e ´util n˜ao apenas como uma solu¸c˜ao inicial para o resolvedor de programa¸c˜ao inteira, mas tamb´em na constru¸c˜ao do pr´oprio modelo de Programa¸c˜ao Linear Inteira (PLI), influenciando o n´umero de vari´aveis e restri¸c˜oes que o comp˜oem. Com este objetivo, desenvolvemos a Heur´ıstica 1, discutido a seguir.

O algoritmo se baseia em escolhas gulosas para construir conjuntos independentes de guardas, ou seja, sem conflitos de visibilidade, onde cada conjunto dever´a receber uma cor diferente. Portanto minimizar o n´umero destes conjuntos implica em minimizar a quantidade de cores. O algoritmo come¸ca considerando todas as testemunhas como n˜ao cobertas (Linha 3). A partir da´ı, d´a-se in´ıcio a um processo iterativo, atrav´es da atribui¸c˜ao de pesos aos guardas, que denotam o n´umero de testemunhas n˜ao cobertas vistas por eles (Linha 6). Com estes pesos, um programa linear inteiro, cujo objetivo ´e encontrar um conjunto independente de guardas com a maior soma de pesos poss´ıvel, ´e resolvido. Com

(47)

4.3. Modelo Natural 17

Heur´ıstica 1 Solu¸c˜ao Inicial

1: function GreedyDCAGP(G, W , GW)

2: S ← ∅ . Solu¸c˜ao (vetor de conjuntos independentes).

3: U ← W . Testemunhas ainda n˜ao cobertas.

4: repeat

5: for all g ∈ G do

6: wg ← {w ∈ V(g) e w ∈ U }

7: x ← solu¸c˜ao do modelo (4.1)–(4.3)

8: T ← ∅ . Novo conjunto independente de guardas.

9: for all g ∈ G do 10: if xg = 1 then 11: T ← T ∪ {g} 12: U ← U \ {w ∈ V(g)} 13: S ← S ∪ T 14: until U = ∅ 15: return S 16: end function

isto, garantimos que o conjunto encontrado cobre o maior n´umero poss´ıvel de novas tes-temunhas naquela itera¸c˜ao, uma vez que, por constru¸c˜ao, nenhuma testemunha ´e coberta duas vezes. Com este novo conjunto atualizamos as testemunhas cobertas (Linha 12) e a solu¸c˜ao (Linha 13). O algoritmo continua enquanto houver testemunhas n˜ao cobertas.

Observe que o problema de encontrar um conjunto independente de peso m´aximo ´e NP-dif´ıcil [13]. Uma forma de resolvˆe-lo exatamente ´e atrav´es da solu¸c˜ao da formula¸c˜ao PLI abaixo. z = max X g∈G wgxg s. a (4.1) xu+ xv ≤ 1 ∀ (u, v) ∈ EG (4.2) xg ∈ B ∀ g ∈ G. (4.3)

Apesar da escolha de um novo conjunto independente na Linha 7 poder ser computada atrav´es de outro m´etodo, como uma heur´ıstica, em todas as instˆancias testadas a resolu¸c˜ao do modelo (4.1) − (4.3) se mostrou extremamente r´apida e eficiente. Por isso, em nossos experimentos optamos por usar um resolvedor PLI para executar tal tarefa.

4.3

Modelo Natural

Para a resolu¸c˜ao exata do dcagp iremos empregar t´ecnicas de Programa¸c˜ao Linear In-teira (PLI). Programa¸c˜ao Inteira ´e amplamente usada para a resolu¸c˜ao dos mais diversos

(48)

18 Cap´ıtulo 4. Metodologia

problemas, principalmente aqueles da classe NP-dif´ıcil. Nesta se¸c˜aom iremos descrever um modelo de PLI para o problema, o qual chamaremos de Modelo Natural. Adicionalmente, descrevemos t´ecnicas que ir˜ao ajudar na resolu¸c˜ao do modelo pelo resolvedor, como o uso de lazy constraints.

O nome modelo natural deriva da forma como as vari´aveis da formula¸c˜ao foram esco-lhidas, associadas `as decis˜oes que levam a uma transcri¸c˜ao direta da solu¸c˜ao do problema. No caso de problemas de colora¸c˜ao em grafos, essa escolha se reflete nas restri¸c˜oes de colora¸c˜ao uma vez que, em uma modelagem b´asica, para cada par de v´ertices adjacentes (u, v), uma desigualdade do tipo xuk + xvk ≤ 1 impede que ambos os v´ertices recebam

a mesma cor k, sendo que k varia entre 1 e K, um limitante superior do n´umero de cores necess´arias. Este tipo de modelo para problemas de colora¸c˜ao tem duas grandes desvantagens:

1. O n´umero de restri¸c˜oes pode ser muito grande, uma vez que depende de K, onde

K ∈ O(|G|);

2. Este modelo apresenta fortes problemas de simetria. Por exemplo, dada uma solu¸c˜ao do problema linear que utiliza cores (nesta ordem) 1, 2 e 3, e k = 5, podemos cons-truir uma solu¸c˜ao de mesmo custo simplesmente renomeando estas cores para 3, 1 e 2, ou 1, 5 e 2. Esta caracter´ıstica, em geral, leva o resolvedor a encontrar solu¸c˜oes teoricamente iguais, que diferem apenas na atribui¸c˜ao de cores aos guardas, e im-pedem que o resolvedor conclua a otimalidade de uma solu¸c˜ao com maior rapidez. Al´em disso, a simetria ´e agravada quanto maior for o valor de K.

Apesar das dificuldades acima, o cagp consegue amenizar drasticamente a desvanta-gem 1 devido `a pr´opria natureza do problema que, em geral, requer pouqu´ıssimas cores e, ´e claro, `a nossa Heur´ıstica 1, que obt´em solu¸c˜oes vi´aveis (limitantes primais) de alta qualidade. J´a com rela¸c˜ao a desvantagem 2, al´em de poder ser amenizada pela obten¸c˜ao de valores menores de K, ainda existem diversas formas de reduzir a simetria atrav´es de restri¸c˜oes que limitam as escolhas de cores.

(49)

4.3. Modelo Natural 19

A seguir apresentamos o modelo natural para o cagp:

z = min X κ∈K s. a (4.4) X g∈G|w∈V(g) X κ∈K xgκ≥ 1 ∀ w ∈ W (4.5) xuκ+ xvκ− cκ ≤ 0 ∀ (u, v) ∈ EG, κ ∈ {1, . . . , K} (4.6) X κ∈K xgκ≤ 1 ∀ g ∈ G (4.7) cκ− cκ+1≥ 0 ∀ κ ∈ {1, . . . , K − 1} (4.8) X g∈G xgκ− X g∈G xgκ+1 ≥ 0 ∀ κ ∈ {1, . . . , K − 1} (4.9) ∈ B ∀ κ ∈ {1, . . . , K} (4.10) xgκ∈ B ∀ g ∈ G, κ ∈ {1, . . . , K} (4.11)

No modelo acima, as vari´aveis bin´arias cκrepresentam as poss´ıveis cores que os guardas

podem receber, enquanto as vari´aveis bin´arias xgκindicam se o guarda g com a cor κ ser´a

usado. A fun¸c˜ao objetivo (4.4) minimiza o n´umero de cores utilizadas. As restri¸c˜oes (4.5) garantem que todas as testemunhas ser˜ao cobertas, e, consequentemente, todo o pol´ıgono. As restri¸c˜oes (4.6) por sua vez asseguram que dois guardas adjacentes no grafo de conflitos n˜ao recebam a mesma cor, ao mesmo tempo garantindo que se um deles for usado, a respectiva cor tamb´em ser´a. As restri¸c˜oes (4.7) impedem que um mesmo guarda possa ser colorido com mais de uma cor. ´E f´acil ver que se estas restri¸c˜oes forem removidas do modelo o valor ´otimo n˜ao se altera. Contudo, na pr´atica, observou-se que a sua manuten¸c˜ao diminui consideravelmente o tempo de computa¸c˜ao. As restri¸c˜oes (4.8) e (4.9) tentam reduzir a simetria intr´ınseca do problema. Enquanto (4.8) for¸ca que a cor κ + 1 s´o possa ser usada se a cor κ tamb´em o foi, as restri¸c˜oes em (4.9) for¸cam que o conjunto de guardas de cor κ tenha cardinalidade maior ou igual ao conjunto de cor

κ + 1.

4.3.1

Fortalecendo o modelo

Enquanto o modelo acima pode ser usado sem nenhuma altera¸c˜ao, ele pode ser fortale-cido, o que significa aproxim´a-lo mais da envolt´oria convexa dos pontos que representam solu¸c˜oes desse problema. Nesta se¸c˜ao, descrevemos uma forma de fortalecer o modelo (4.4)–(4.11).

A Figura 4.1 representa um subgrafo induzido de um grafo GC qualquer. De acordo

(50)

20 Cap´ıtulo 4. Metodologia

a este subgrafo corresponderiam a:

x1κ+ x2κ− cκ ≤ 0, x1κ+ x3κ− cκ ≤ 0, x2κ+ x3κ− cκ ≤ 0. g1 g2 g3

Figura 4.1: Subgrafo induzido de GC.

Estas trˆes restri¸c˜oes impedem que algum par de v´ertices em {g1, g2, g3} receba a mesma cor κ. N˜ao ´e dif´ıcil enxergar que, sendo as vari´aveis bin´arias, o mesmo efeito poderia ser obtido atrav´es da restri¸c˜ao abaixo:

x1κ+ x2κ+ x3κ− cκ ≤ 0.

´

E f´acil perceber que esta ´unica restri¸c˜ao ´e mais forte do que a uni˜ao das trˆes restri¸c˜oes anteriores (coeficientes menores). Obviamente esta ideia pode ser estendida para outras cliques, i.e, subgrafos induzidos completos. Assim, podemos substituir as restri¸c˜oes do tipo (4.6) por um conjunto de restri¸c˜oes do tipo clique, como aquela vista acima. Para tanto, devemos encontrar cliques que cubram todas as arestas de GC, isto ´e, todos os

poss´ıveis conflitos entre guardas, formando o que se costuma chamar de cobertura de

arestas por cliques, ou em inglˆes, clique edge cover. Seja ent˜ao H uma cobertura de arestas por cliques. Podemos agora substituir as restri¸c˜oes (4.6) pelas restri¸c˜oes (4.12):

X

g∈η

xgκ ≤ cκ ∀ η ∈ H, κ ∈ {1, . . . , K} (4.12)

Apesar de n˜ao podermos considerar formalmente como um fortalecimento, em vez de fazer uso de apenas uma cobertura por cliques, podemos fazer uso de K coberturas diferentes, uma para cada poss´ıvel cor do modelo. Intuitivamente, podemos pensar nessa modifica¸c˜ao como uma forma adicional de diminuir a simetria do modelo. Para esta tarefa empregamos o Algoritmo 2 que tenta construir coberturas diferentes. Neste algoritmo

N (v) e δ(v) representam, respectivamente, a vizinhan¸ca e o grau do v´ertice v.

O algoritmo come¸ca por construir um emparelhamento de tamanho K selecionando

K arestas com soma dos graus dos vizinhos dos seus extremos m´ınima (Linha 3). Estas

(51)

4.3. Modelo Natural 21

Algoritmo 2 Gera¸c˜ao de K Coberturas de Arestas por Cliques

1: function kCEC(GC, K)

2: Ψ ← ∅ . Conjunto que conter´a as K coberturas.

3: Construa um emparelhamento M , composto pelas K arestas com m´ınimo

X t∈N (u) δ(t) + X z∈N (v) δ(z), onde (u, v) ∈ EG 4: for all i ∈ {1, . . . , K} do

5: η ← Build Clique(M[i]) . M [i]: i-´esima aresta em M .

6: G0 ← GC\{e ∈ η} . Remove as arestas cobertas por η.

7: H ← η . Inicializa a i-´esima cobertura.

8: repeat 9: µ ← e ∈ G0 tal que X t∈NG0(e.u) δ(t) + X z∈NG0(e.v) δ(z) ´e m´ınimo. 10: η ← Build Clique(µ)

11: G0 ← G0\{e ∈ η} . Remove as arestas cobertas de G0. 12: H ← H ∪ {η}

13: until todas as arestas estarem cobertas

14: Ψ ← Ψ ∪ {H}

15: return Ψ 16: end function

17: function Build Clique(e) . Rotina gulosa para constru¸c˜ao de cliques.

18: η ← {e.u, e.v} . η: v´ertices da clique.

19: C ← N (e.u) ∩ N (e.v) . C: v´ertices candidatos a estender a clique.

20: repeat

21: n ← γ ∈ C, onde γ adiciona mais arestas n˜ao cobertas `a clique que qualquer outro v´ertices em C

22: C ← C ∩ N (n) . Atualiza o conjunto de v´ertices candidatos.

23: η ← η ∪ {n} . Adiciona n `a clique atual.

24: until C = ∅ ou n˜ao existe v´ertice com arestas adjacentes n˜ao cobertas

25: return η 26: end function

(52)

22 Cap´ıtulo 4. Metodologia

criamos cada clique de forma gulosa, utilizando a fun¸c˜ao Build Clique (Linha 17). Esta fun¸c˜ao recebe como parˆametro apenas uma aresta cujos v´ertices ser˜ao os primeiros a compor a clique em constru¸c˜ao (Linha 18). Com estes dois v´ertices refinamos os poss´ıveis candidatos que podem se juntar `a clique. A partir destes vizinhos comuns selecionamos aquele que mais contribui com arestas novas para a cobertura e o adicionamos ao conjunto de v´ertices, ao mesmo tempo que filtramos os poss´ıveis candidatos a compor a clique e repetimos o processo. Estas itera¸c˜oes se repetem at´e quando n˜ao houver mais vizinhos em comum entre os v´ertices na clique, ou se n˜ao houver arestas ainda n˜ao cobertas por outras cliques da cobertura (Linha 24). Voltando ao algoritmo principal, uma vez que a primeira clique ´e constru´ıda, o grafo ´e atualizado removendo-se as arestas j´a cobertas. O algoritmo continua selecionando uma nova aresta para construir a pr´oxima clique, segundo a mesma regra utilizada para selecionar as arestas do emparelhamento, e este processo se repete at´e que todas as arestas do grafo estejam cobertas (Linha 14).

Para pol´ıgonos n˜ao triviais, i.e., que n˜ao requerem apenas uma cor e, portanto, apenas um guarda, podemos fortalecer o modelo ainda mais. Observe a Figura 4.2, e considere novamente a motiva¸c˜ao para este problema citada anteriormente (guiar um robˆo dentro de um ambiente previamente marcado). Nesta figura, temos apenas as marca¸c˜oes g1 e

g2 para guiar o robˆo. As regi˜oes em cinza demarcam os pol´ıgonos de visibilidade de g1 e

g2. Considere agora o trajeto realizado pelo robˆo com in´ıcio em p1 e t´ermino em p2. Ao atingir p2, no bordo do pol´ıgono de visibilidade de g2, n˜ao h´a nenhuma outra marca¸c˜ao vis´ıvel a partir de p2. Fica claro que precisamos de outra marca¸c˜ao para conseguir mover o robˆo al´em de p2, e esta marca¸c˜ao necessariamente ir´a conflitar com g2. Generalizando esta observa¸c˜ao vemos que, ao se escolher um guarda para fazer parte da solu¸c˜ao, obriga-toriamente devemos escolher pelo menos um dos seus vizinhos para tamb´em fazer parte desta solu¸c˜ao. A partir dessa observa¸c˜ao podemos construir o conjunto de restri¸c˜oes dada por: X κ∈{1,...,K} xgκ≤ X v∈N (g) X κ∈{1,...,K} xvκ ∀g ∈ G. (4.13)

(53)

4.3. Modelo Natural 23

g1

g2

p2

p1

Figura 4.2: Intui¸c˜ao sobre as restri¸c˜oes (4.13).

4.3.2

Lazy Constraints

De acordo com [3], o n´umero de testemunhas pode ser t˜ao grande quanto Θ(n2) para um pol´ıgono com n v´ertices, o que implica no mesmo limitante para o n´umero de res-tri¸c˜oes (4.5) no modelo natural. Pensando em minimizar o impacto deste n´umero de restri¸c˜oes no modelo, utilizamos as chamadas lazy constraints. Esta op¸c˜ao, presente na maioria dos resolvedores do estado-da-arte, permite que marquemos um conjunto de res-tri¸c˜oes do nosso modelo como sendo lazy, de forma que o resolvedor n˜ao as incluir´a no modelo inicialmente, mas verificar´a se h´a viola¸c˜ao de alguma delas quando uma solu¸c˜ao inteira for encontrada. Ao contr´ario de t´ecnicas cl´assicas de planos de corte, em geral restri¸c˜oes marcadas como lazy n˜ao podem ser derivadas de outras restri¸c˜oes do modelo,

i.e., a presen¸ca ou ausˆencia de tais restri¸c˜oes pode mudar significativamente tanto o pro-cesso de otimiza¸c˜ao do resolvedor quanto a pr´opria solu¸c˜ao. Tendo isso em mente, os resolvedores devem garantir a verifica¸c˜ao de poss´ıveis viola¸c˜oes destas restri¸c˜oes antes de declarar uma solu¸c˜ao como sendo ´otima, mais uma vez diferentemente de cortes cl´assicos, onde n˜ao h´a quaisquer garantias de que o resolvedor ir´a considerar tais restri¸c˜oes. Para o modelo natural, a formula¸c˜ao inicial cont´em apenas as restri¸c˜oes (4.5) referentes `as |G| testemunhas enxergadas pelo menor conjunto de guardas. Em nossos testes, como ser´a mostrado na se¸c˜ao de resultados, menos de 40% das testemunhas foi necess´aria para finalizar o processo de otimiza¸c˜ao de instˆancias dif´ıceis. Apesar disso, n˜ao foi poss´ıvel constatar a vantagem do uso de lazy constraints nos casos em que se pode carregar e resolver todo o modelo em mem´oria.

(54)

24 Cap´ıtulo 4. Metodologia

4.4

Relaxa¸

ao Lagrangiana

Relaxa¸c˜ao Lagrangiana ´e uma t´ecnica muito conhecida e utilizada para se obter bons limitantes, e at´e mesmo solu¸c˜oes ´otimas em modelos de dif´ıcil resolu¸c˜ao. A t´ecnica se beneficia de uma caracter´ıstica presente em v´arios modelos: a existˆencia de um conjunto de restri¸c˜oes que tornam o problema dif´ıcil de resolver. Para contornar tais restri¸c˜oes, estas s˜ao removidas da formula¸c˜ao e levadas para a fun¸c˜ao objetivo multiplicadas por uma penaliza¸c˜ao que torna menos atraentes as solu¸c˜oes que n˜ao as satisfa¸cam. Diz-se que essas restri¸c˜oes foram dualizadas.

4.4.1

Vis˜

ao Geral

Nesta subse¸c˜ao, faz-se um breve resumo da t´ecnica de Relaxa¸c˜ao Lagrangiana. Para um tratamento formal do assunto, recomenda-se a leitura de [1].

Considere o seguinte problema gen´erico de minimiza¸c˜ao, escrito na forma matricial: min cx

s. a Ax ≥ b, Bx ≥ d,

x ∈ B ∀ x ∈ X.

(4.14)

Vamos considerar que Bx ≥ d, onde B tem dimens˜oes m e n, s˜ao as restri¸c˜oes com-plicadoras deste modelo. Ou seja, sup˜oe-se que o problema sem estas restri¸c˜oes possa ser resolvido de forma bastante eficiente, pelo menos na pr´atica. Para levarmos estas restri¸c˜oes complicadoras para a fun¸c˜ao objetivo devemos introduzir os chamados multi-plicadores de Lagrange λ como mostrado abaixo:

min cx + λ(d − Bx)

s. a Ax ≥ b

x ∈ B ∀ x ∈ X.

(4.15)

Pode-se mostrar que, para todo λ ≥ 0, o valor ´otimo do problema (4.15), denominado de primal Lagrangiano, fornece um limitante inferior para o problema original. Obvia-mente, queremos o limitante mais pr´oximo poss´ıvel do valor ´otimo do problema inteiro, o que implica em resolver o problema abaixo, chamado dual Lagrangiano:

max λ≥0          min cx + λ(d − Bx) s. a Ax ≥ b x ∈ B ∀ x ∈ X          (4.16)

(55)

4.4. Relaxa¸c˜ao Lagrangiana 25

Para esta tarefa ´e comum empregar-se o m´etodo do subgradiente, que iterativamente

atualiza os multiplicadores at´e que um determinado crit´erio de convergˆencia seja atingido. O m´etodo ´e composto das seguintes etapas:

1. Seja π um parˆametro tal que 0 < π ≤ 2, e zU B o valor do melhor limitante superior

conhecido at´e o momento (inicializado atrav´es de alguma heur´ıstica, por exemplo). Tamb´em ´e necess´ario iniciar os multiplicadores λ, tipicamente com 0;

2. Resolva o problema primal Lagrangiano com os multiplicadores atuais. Seja X a solu¸c˜ao encontrada, com valor zLB;

3. O subgradiente Gi para as restri¸c˜oes relaxadas ´e definido como:

Gi = din

X

j=1

bijXj ∀i ∈ {1, . . . , m}. (4.17)

4. Com os dados acima, podemos definir o tamanho do passo que iremos dar para atualizar os multiplicadores:

T = π(zPU Bm− zLB)

i=1G2i

. (4.18)

5. Finalmente, atualizamos os multiplicadores e reiniciamos o processo na etapa 2:

λi = max(0, λi+ T Gi) ∀i ∈ {1, . . . , m}. (4.19)

6. O algoritmo em geral termina quando π atinge um valor muito pequeno, ou ´e claro se zLB = zU B.

Al´em de um limitante inferior, podem ser desenvolvidas as chamadas heur´ısticas

La-grangianas, que se aproveitam dos resultados parciais de cada itera¸c˜ao do algoritmo acima a fim de tentar melhorar o limitante superior, e em geral s˜ao desenvolvidas especificamente para cada problema. No algoritmo acima, um limitante primal melhor, i.e., zU B menor,

ajuda a calcular um passo T mais justo, levando em geral a uma convergˆencia mais r´apida do algoritmo.

4.4.2

Aplica¸

ao no cagp

Considere o modelo natural descrito na se¸c˜ao anterior. Neste modelo, temos dois con-juntos de restri¸c˜oes dif´ıceis: as restri¸c˜oes de cobertura das testemunhas e as referentes `as cliques maximais. Com isso, foram testados dois modelos de relaxa¸c˜ao lagrangiana, cada

(56)

26 Cap´ıtulo 4. Metodologia

um dualizando um destes conjuntos de restri¸c˜oes complicadoras. Enquanto dualizar as restri¸c˜oes de cobertura demonstrou ser uma boa escolha, dualizar as restri¸c˜oes de cliques maximais n˜ao resultou em nenhuma melhora vis´ıvel, provavelmente pela grande quanti-dade de multiplicadores a serem calibrados durante a otimiza¸c˜ao. Assim, reportamos a seguir apenas o primeiro caso.

Para o modelo (4.20)–(4.26), e considerando os passos descritos na subse¸c˜ao anterior, algumas especializa¸c˜oes foram implementadas para o tratamento do dcagp:

• Enquanto o limitante inferior crescer de forma cont´ınua, π ´e reiniciado em 0.5 a cada itera¸c˜ao;

• Seja zM ax o valor do melhor limitante at´e o momento. O valor de π ´e iniciado em

0.5, e decresce em 50% ap´os 30 itera¸c˜oes em que zM ax n˜ao melhore;

• Se zLB parar de crescer, π ´e reiniciado em 0.0625;

• zU B ´e iniciado com o valor da solu¸c˜ao retornada pelo Heur´ıstica 1;

• O algoritmo termina se π ≤ 0.005 ou zU B = zLB.

As escolhas acima foram feitas ap´os testes preliminares, em que permit´ıamos que o algoritmo executasse por longos per´ıodos. Percebemos que n˜ao havia melhoras aparentes mesmo ap´os horas de processamento, e que quando havia melhora no limitante retornado pelo Heur´ıstica 1, isso ocorria em geral dentro das primeiras 100 itera¸c˜oes do algoritmo. Assim, os parˆametros escolhidos acima tˆem por objetivo que a otimiza¸c˜ao seja relativa-mente r´apida, na tentativa de se obter um melhor limitante superior rapidamente.

Dualizando as restri¸c˜oes de cobertura

Para a elabora¸c˜ao da Relaxa¸c˜ao Lagrangiana, utilizamos como base o modelo {(4.4) − −(4.11)}, incluindo a substitui¸c˜ao pelas restri¸c˜oes (4.12), descrita na se¸c˜ao anterior. As-sim, dualizando as restri¸c˜oes de cobertura de testemunhas (4.5), obtemos o problema primal Lagrangiano dado por:

(57)

4.5. Relax-and-fix 27 z = min X κ∈{1,...,K} − X w∈W λw(1 − X g∈G|w∈V(g) X κ∈{1,...,K} xgκ) s. a (4.20) X g∈η xgκ≤ cκ ∀ η ∈ H, κ ∈ {1, . . . , K} (4.21) X κ∈K xgκ≤ 1 ∀ g ∈ G (4.22) cκ− cκ+1≥ 0 ∀ κ ∈ {1, . . . , K − 1} (4.23) X g∈G xgκ− X g∈G xgκ+1≥ 0 ∀ κ ∈ {1, . . . , K − 1} (4.24) xgκ ∈ B ∀ g ∈ G, κ ∈ {1, . . . , K} (4.25) ∈ B ∀ κ ∈ {1, . . . , K} (4.26)

Ap´os resolver o modelo acima, fica claro que as escolhas dos guardas respeitam as imposi¸c˜oes feitas pelo grafo de conflitos, mas n˜ao garante que todas as testemunhas foram cobertas. Assim, a heur´ıstica Lagrangiana para este modelo fixa os guardas `as cores nos casos em que xgκ = 1, e resolve o modelo natural completo com estas vari´aveis fixadas.

Obviamente, n˜ao precisamos saber se existe uma solu¸c˜ao que utiliza K cores, uma vez que j´a temos uma solu¸c˜ao com esta cardinalidade fornecida pela Heur´ıstica 1. Assim, a heur´ıstica Lagrangiana al´em de resolver um modelo com muitas vari´aveis fixadas, tamb´em tenta encontrar apenas solu¸c˜oes com cardinalidade K − 1 ou menor, fatores estes que ajudam a acelerar de forma impactante a resolu¸c˜ao do modelo de programa¸c˜ao inteira.

4.5

Relax-and-fix

A dificuldade da resolu¸c˜ao de problemas de programa¸c˜ao inteira reside no dom´ınio discreto das vari´aveis. Tendo isto em mente, o primeiro passo de t´ecnicas de relax-and-fix ´e relaxar o dom´ınio de um subconjunto das vari´aveis inteiras. Ap´os esta relaxa¸c˜ao, as vari´aveis neste subconjunto s˜ao iterativamente trazidas de volta ao dom´ınio inteiro, sendo algumas delas fixadas a cada itera¸c˜ao. Esta fixa¸c˜ao ´e feita baseando-se na resolu¸c˜ao no modelo misto. Enquanto testes realizados mostraram a inefic´acia desta t´ecnica na resolu¸c˜ao do dcagp, apoiando-se na ideia descrita acima desenvolvemos uma vers˜ao especializada de

relax-and-fix, apresentada a seguir, que apresentou resultados interessantes na resolu¸c˜ao desse problema.

(58)

28 Cap´ıtulo 4. Metodologia

4.5.1

Custom Relax-and-fix

O Algoritmo 3 descreve a especializa¸c˜ao citada acima. Neste algoritmo, em vez de relaxar um subconjunto de vari´aveis e depois trazˆe-las novamente para o dom´ınio inteiro, relaxa-mos as vari´aveis x, que permanecer˜ao relaxadas at´e o fim do algoritmo. O algoritmo itera fixando as vari´aveis x, agora cont´ınuas, em 1. Para que uma vari´avel seja fixada, primeira-mente o modelo relaxado ´e resolvido (Linha 3). Caso o modelo tenha se tornado invi´avel devido `as fixa¸c˜oes feitas previamente, o algoritmo termina sem uma solu¸c˜ao (Linha 4). Se o modelo continuar vi´avel, extra´ımos o maior valor xmax atribu´ıdo a uma das vari´aveis x que ainda n˜ao foi fixada (Linha 5), e estabelecemos um limiar t, que corresponde a ∆t do

valor de xmax, onde ∆t´e um parˆametro entre 0 e 1 (Linha 6). Baseado em t, selecionamos

para fixar em 1 todas as vari´aveis x cujo valor seja igual ou exceda esse limiar e repetimos o processo at´e que n˜ao seja necess´ario fixar nenhuma vari´avel.

Algoritmo 3 CustomRelaxAndFix

1: function CustomRnF(GC, K)

2: repeat

3: Resolva o modelo (4.4) − (4.10), i.e., o modelo natural sem as restri¸c˜oes

de integralidade das vari´aveis x (4.11).

4: Se o modelo acima for invi´avel, termine o algoritmo.

5: xmax ← valor da maior vari´avel x ainda n˜ao fixada.

6: t ← xmax× ∆t.

7: for all i ∈ {1, . . . , |G|} do

8: for all κ ∈ {1, . . . , K} do

9: if xiκ≥ t e gi n˜ao conflita com nenhum guarda j´a fixado

com a cor κ then

10: Fixe xiκ em 1.

11: until n˜ao seja poss´ıvel fixar nenhuma vari´avel.

12: end function

Uma das vantagens da variante acima, com rela¸c˜ao `a t´ecnica cl´assica de

relax-and-fix, ´e que n˜ao mudamos o dom´ınio de nenhuma vari´avel durante o algoritmo , i.e., do dom´ınio cont´ınuo para o discreto. Como veremos no Cap´ıtulo 5, a escolha do parˆametro ∆t tamb´em ´e essencial para a obten¸c˜ao de bons resultados.

4.6

Branch-and-price

ecnicas de branch-and-price s˜ao empregadas em modelos que possuem um grande n´umero de vari´aveis. Tais t´ecnicas correspondem a uma hibridiza¸c˜ao dos m´etodos de

(59)

4.6. Branch-and-price 29

resolu¸c˜ao iterativa de dois problemas: um problema mestre, modelado como um PLI, e um subproblema. Este ´ultimo, tamb´em chamado de pricing problem, ´e respons´avel pela escolha de novas colunas a serem adicionadas a uma vers˜ao restrita do problema mestre,

i.e., com um n´umero reduzido de colunas. Nota-se que a op¸c˜ao por trabalhar com uma vers˜ao restrita do problema mestre justifica-se pelo seu elevado n´umero de colunas que torna quase imposs´ıvel resolvˆe-lo diretamente.

Assim, supondo um problema de minimiza¸c˜ao, o algoritmo, ap´os a resolu¸c˜ao da re-laxa¸c˜ao linear de uma vers˜ao restrita do problema mestre, tenta encontrar nova(s) co-luna(s) de custo reduzido negativo resolvendo o subproblema, seja de forma exata ou heur´ıstica. Nota-se que, deste modo, a fun¸c˜ao de custo do subproblema depende das vari´aveis duais ´otimas da relaxa¸c˜ao linear do problema mestre restrito. Ent˜ao, se colunas com custo reduzido negativo forem encontradas, a relaxa¸c˜ao linear ainda n˜ao foi resolvida at´e a otimalidade. Portanto, elas s˜ao adicionadas ao problema restrito, que ´e resolvido novamente. Este processo se repete enquanto for poss´ıvel encontrar colunas com custo reduzido negativo. Quando n˜ao existir nenhuma outra coluna com tal caracter´ıstica, se a solu¸c˜ao da ´ultima relaxa¸c˜ao linear do problema restrito for inteira, o algoritmo termina, e a solu¸c˜ao encontrada ´e ´otima. Caso contr´ario, ´e necess´ario fazer branch e reiniciar o processo acima em outro n´o da ´arvore.

Para o dcagp, iremos considerar o modelo abaixo baseado naquele apresentado em [14]. Nele, evitam-se os conflitos entre os candidatos a guarda agrupando-os em conjuntos inde-pendentes, i.e., guardas pertencentes a um mesmo conjunto independente podem receber uma mesma cor. Sejam Υ o conjunto de todos os conjuntos independentes maximais em

GC, yυ, ∀υ ∈ Υ, a vari´avel bin´aria correspondente ao conjunto independente υ, e xg a

vari´avel bin´aria correspondente ao guarda g. O problema mestre ´e descrito a seguir:

z = minX υ∈Υ s. a (4.27) X g∈G|w∈V(g) xg, ≥ 1 ∀ w ∈ W, (4.28) X υ∈Υ|g∈Υ yυ− xg ≥ 0, ∀ g ∈ G, (4.29) xg ∈ B, ∀ g ∈ G, (4.30) ∈ B, ∀ υ ∈ Υ. (4.31)

No modelo (4.27)–(4.31), cada conjunto independente da solu¸c˜ao estar´a associado a uma cor diferente. Isso significa que, ao minimizar o n´umero de cores na fun¸c˜ao obje-tivo (4.27), estamos minimizando o n´umero de cores atribu´ıdas aos guardas, como reque-rido no dcagp. As restri¸c˜oes (4.28) garantem que todas as testemunhas, e portanto todo o pol´ıgono, est˜ao cobertas. Por sua vez, as restri¸c˜oes (4.29) garantem que se um guarda

Referências

Documentos relacionados

Generalizar o algoritmo para bases de enumera¸c˜ao b &gt; 1, observando que a resposta produzida pelo algoritmo independe da base de enumera¸c˜ao escolhida!. Dica: E poss´ıvel

1 o /03/11 Raz˜ ao de ser da disciplina; objetivos e metodologia; apresenta¸c˜ao breve dos conte´ udos de cada unidade do curso; os crit´erios de avalia¸c˜ao.. Os n´ umeros

A teoria do propaga- dor semicl´ assico K + sc nesta representa¸c˜ ao j´ a existe a bastante tempo [10, 35, 36], por´ em somente ap´ os a dedu¸c˜ ao do retro-propagador K − sc

O sistema desenvolvido neste trabalho consiste em uma plataforma eletrˆ onica integrada com sensores de temperatura cutˆ anea e sensores ambientais (temperatura e luminosidade

Para avaliar a busca, inicialmente ´e usada a mesma f´ormula para eficiˆencia energ´etica do caso homogˆeneo, que ´e simplesmente a raz˜ao entre os alvos encontrados e a

Suponha que a quantidade semanal demandada dos pneus radiais Super Titan esteja relacionada com seu pre¸ co unit´ ario pela equa¸c˜

A amplitude representa a dispers˜ ao entre o menor e o maior valor de um conjunto de dados, entretanto, na presen¸ ca de um outlier, este valor acaba

O coeficiente de correla¸c˜ ao linear varia entre −1 e +1: r = −1 corresponde ao caso de correla¸ c˜ ao linear negativa perfeita e r = +1 corresponde ao de correla¸c˜ ao