Escolar Documentos
Profissional Documentos
Cultura Documentos
Pesquisa Operacional
por
Pesquisa Operacional
por
iii
SUMÁRIO
LISTA DE ABREVIATURAS..................................................................vi
LISTA DE FIGURAS...............................................................................vii
LISTA DE TABELAS .............................................................................viii
LISTA DE EQUAÇÕES ...........................................................................ix
RESUMO..................................................................................................... x
ABSTRACT................................................................................................xi
1 INTRODUÇÃO ...................................................................................... 1
1.1 PROBLEMATIZAÇÃO ..................................................................................... 2
1.1.1 Formulação do Problema ................................................................................. 2
1.1.2 Solução Proposta ............................................................................................... 3
1.2 OBJETIVOS ........................................................................................................ 3
1.2.1 Objetivo Geral ................................................................................................... 3
1.2.2 Objetivos Específicos ........................................................................................ 3
1.3 METODOLOGIA................................................................................................ 4
1.4 ESTRUTURA DO TRABALHO ....................................................................... 5
2 FUNDAMENTAÇÃO TEÓRICA ........................................................ 6
2.1 MODELOS PARA LOCALIZAÇÃO DE FACILIDADES............................ 6
2.1.1 Introdução.......................................................................................................... 6
2.1.2 Definição do problema de p-medianas............................................................ 9
2.2 MÉTODOS EXATOS E ESTOCÁTICOS PARA LOCALIZAÇÃO DE
FACILIDADES ......................................................................................................... 13
2.2.1 Introdução........................................................................................................ 13
2.2.2 Algoritmo de Teitz e Bart............................................................................... 13
2.2.3 Algoritmo Simulated Annealing...................................................................... 14
2.2.4 Algoritmo Genético......................................................................................... 18
2.2.5 Algoritmo Busca Tabu.................................................................................... 26
2.2.6 Algoritmo baseado em colônia de formigas.................................................. 28
3 DESENVOLVIMENTO ...................................................................... 33
3.1 PLANEJAMENTO............................................................................................ 33
3.1.1 Metodologia ..................................................................................................... 33
3.1.2 Problema utilizado nos testes......................................................................... 33
3.1.3 Modelagem dos algoritmos............................................................................. 34
3.2 ENSAIOS NUMÉRICOS.................................................................................. 39
3.2.1 Ensaios realizados com o algoritmo genético ............................................... 40
3.2.2 Ensaios realizados com o algoritmo simulated annealing........................... 44
3.2.3 Ensaios realizados com o algoritmo baseado em colônia de formigas....... 46
3.2.4 Comparativo de resultados ............................................................................ 49
iv
4 CONCLUSÕES .................................................................................... 51
4.1 TRABALHOS FUTUROS................................................................................ 52
REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 53
GLOSSÁRIO............................................................................................. 56
A ENSAIOS NUMÉRICOS .................................................................... 58
A.1.1. Ensaios algoritmo genético............................................................................. 58
A.1.2. Ensaios algoritmo baseado em colônia de formigas .................................... 59
A.1.3. Ensaios Simulated Annealing ......................................................................... 61
v
LISTA DE ABREVIATURAS
viii
LISTA DE EQUAÇÕES
Equação 1 ...........................................................................................................................................10
Equação 2 ...........................................................................................................................................10
Equação 3 ...........................................................................................................................................10
Equação 4 ...........................................................................................................................................10
Equação 5 ...........................................................................................................................................31
Equação 6 ...........................................................................................................................................31
RESUMO
RIBEIRO, Diego Fernando. Metaheurísticas aplicadas ao problema das p-medianas. São José,
2007. 53f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de
Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, São José, 2007.
O estudo de métodos capazes de resolver problemas considerados de difícil solução tem tido
atenção especial nas últimas décadas. O motivo é que este tipo de problema geralmente está contido
em nosso dia a dia, estando presente em vários setores tais como: transportes, logística, localização
de facilidades, escalonamento de recursos, minimização de desperdiço de matéria-prima entre
outros. As metaheurísticas ou heurísticas modernas são métodos flexíveis que foram ainda pouco
explorados até o momento e têm demonstrado bons resultados aplicados a problemas
combinatórios. Estes métodos podem ser adaptados a diversos tipos de problemas. O que se busca
no momento é torná-los mais robustos com, a finalidade de escapar de mínimos locais. Novas
metaheurísticas tem surgido, buscando tomar proveito das características positivas de cada método,
possibilitando assim um melhor desempenho em relação aos métodos anteriores. O presente estudo
busca avaliar e identificar as melhores soluções para a resolução de problemas de p-medianas, que é
um tipo de problema de localização o qual busca distribuir da melhor forma possível facilidades em
uma determinada área. O trabalho apresentado mostra alguns algoritmos, apresentando a estrutura
de cada um. Para a avaliação e quantificação da melhor solução serão apresentados testes
computacionais a fim de demonstrar as vantagens e desvantagens de cada algoritmo. As
metaheurísticas abordadas neste trabalho foram: Simulated Annealing; algoritmos Genéticos, e
algoritmos baseados em colônia de formigas.
Os resultados obtidos mostram que o algoritmo genético é o melhor apropriado para a resolução do
problema escolhido para o testes sendo que o mesmo demonstra grande vantagem em relação ao
algoritmo Simulated Annealing e o algoritmo baseado em colônia de formigas. Em seguida o
algoritmo de formigas se mostrou superior ao Simulated Annealing convergindo para uma solução
melhor de forma mais rápida.
Palavras-chave: Problemas de localização. Problema de p-medianas, Metaheurísticas.
ABSTRACT
The study of methods adept to solve strenuous solution problems has had special attention in the
last decades. The reason is that this type of problem is in our day to day basis in different sectors
such as: transportation, logistics, facility localization, scheduling of resources, minimization of raw
material waste and others. The modern metaheurístics and heuristics are flexible methods that have
been little explored and have shown positive results when applied to combined results. These
methods can been adapted to a variety of problems. The objective now is to make these methods
more robust and able to escape from the smallest places. New metaheuristics have appeared taking
advantage of the positive characteristics from each method, allowing then a better progress in
relation to the previous methods. The current project tries to evaluate and identify superior
solutions to solve p-medium problems, which is a type of localization problem that intends to find
the best way to distribute facilities in a particular area. The project shown, presents some
algorithms, presenting the structure of each one. In order to evaluate and classify the best solution,
it will be presented computerized tests that will demonstrate the advantages and disadvantages of
each algorithm. The metaheuristics approached in this project were: Simulated Annealing, Genetics
Algorithms and Algorithms based on Ant’s Colonies.
The results show that genetic algorithm is best suited to the resolution of the issue chosen for the
tests is that it shows great advantage in relation to the algorithm Simulated Annealing and
algorithm based on on Ant’s Colonies. The algorithm of ants are shown above the Simulated
Annealing converging towards a better solution more quickly.
Keywords: Localization problems. P-median Problems. Metaheurístics.
1 INTRODUÇÃO
Com a manufatura, houve a ampliação do consumo, fato que levou o produtor a aumentar
sua produção. A matéria prima era distribuída aos artesãos que trabalhavam em casa. Como o custo
de operação deste sistema tornava-se alto devido ao custo de transporte e logística na distribuição e
coleta dos produtos, surgiram fábricas com trabalhadores assalariados, com o objetivo de centralizar
a produção. Com esta medida obteve-se o aumento da produtividade, pois cada trabalhador
realizava uma etapa da produção e tornava-se especialista em sua tarefa.
Observou-se que cada fábrica poderia suprir uma demanda limitada, e que a localização
desta fábrica deveria atender a todos os pontos de demanda da melhor maneira, respeitando sua
capacidade.
Desde então iniciou a busca de locais adequados para servirem de postos de fabricação e
distribuição, buscando um melhor agrupamento dos pontos de demanda atendidos pelas unidades de
produção e distribuição.
Tais problemas podem ser observados no dia a dia, por exemplo: a escolha adequada da
localização de torres de transmissão de sinais de telecomunicação, as quais devem atender a um
número máximo e determinado de usuários, e possibilitar a cobertura de sinal a uma região
específica; a distribuição de produtos perecíveis, os quais devem ser entregues ao consumidor em,
tempo hábil levando em conta os custos operacionais; a localização de unidades de saúde de forma
a atender um número específico de usuários e que a localização seja a melhor possível de acordo
com a população da região a ser atendida; a localização de cooperativas rurais de coleta de leite,
grãos entre outros para que seja possível atender aos produtores de forma eficaz e viável.
Estes problemas são importantes de serem solucionados por serem amplamente encontrados
em diversos sistemas de produção e serviços e terem impacto decisivo na tomada de decisões em
vários setores da economia.
Segundo Smiderle, Piva e Tibes (2005), problemas de localização são tratados na literatura
como problemas de p-medianas.
1.1 PROBLEMATIZAÇÃO
2
1.1.2 Solução Proposta
As metaheurísticas utilizadas neste trabalho são técnicas utilizadas para encontrar uma boa
solução, eventualmente a ótima. Partem de uma solução inicial, têm critérios de parada, e são de uso
geral, podendo ser modeladas de acordo com o problema a ser resolvido, obtendo assim um melhor
desempenho de cada técnica.
Corrêa (2000), salienta que uma heurística conhecida para este tipo de problema é o
algoritmo de Teitz e Bart (1968), o qual é fácil de ser implementado, porém apresenta resultados
aceitáveis apenas quando aplicados a problemas pequenos. Pode-se citar também a Busca tabu
(GLOVER, 1986), e Colônia de Formigas (DORIGO, MANIEZZO & COLORNI, 1991).
1.2 OBJETIVOS
3
• Analisar os resultados obtidos; e
1.3 Metodologia
Para a escolha do problema a ser tratado, foi levado em consideração o tamanho do
problema, para que os testes a serem realizados possam realmente mostrar a diferença entre os
algoritmos escolhidos, pois se os testes forem realizados em problemas pequenos talvez não exista
diferença significativa entre as metaheurísticas.
A seleção dos algoritmos foi feita levando em consideração os mais utilizados para a
resolução de problemas de localização, exceto o algoritmo de formigas que não se tem muitas
aplicações a p-medianas, mas percebeu-se que o mesmo pode ser adaptado para o contexto do
problema.
A modelagem dos algoritmos selecionados foi realizada adaptando cada um, escolhido, de
forma que os mesmos não fossem alterados, e o problema pudesse ser resolvido usando os conceitos
do algoritmo. Foi definido como cada operador será usado para a resolução do problema.
A implementação dos algoritmos foi realizada na segunda parte deste trabalho definida
como TCC II, nesta parte do trabalho foram implementados os algoritmos modelados na etapa
anterior. Foi utilizada para a programação dos algoritmos a linguagem C++, sendo que o objetivo
não é a construção de um software e sim a comparação dos resultados obtidos com os experimentos
realizados.
4
1.4 Estrutura do trabalho
5
2 FUNDAMENTAÇÃO TEÓRICA
2.1.1 Introdução
Problemas de localização estão presentes no cotidiano das pessoas de diversas maneiras,
sejam na localização de escolas, supermercados, postos de saúde, e possuem várias aplicações seja
na distribuição de energia elétrica, na distribuição de antenas de telecomunicações, distribuição e
transporte de produtos entre outros. Estes problemas tratam da configuração da localização de
facilidades de forma a atender a demanda da população.
Segundo Souza (1996), no modelo Minsun, também conhecido como p-mediana, o número
de facilidades (p) é um dado exógeno, ou seja, pré-estabelecido, procurando-se distribuí-las de
modo que o maior número de pessoas tenha acesso às facilidades, dentro de uma distância máxima
estabelecida, com o menor custo do incidente possível (este custo pode ser: tempo de viagem,
tempo resposta, prejuízos decorrentes de um incêndio, etc.) ou, em outras palavras, procura-se
minimizar a soma dos custos de transportes associados com p facilidades.
No Minmax o objetivo não é minimizar o custo total, mas sim minimizar o máximo custo
(por exemplo, a máxima distância) que algum ponto de demanda pode incorrer.
Pode-se levar em consideração a capacidade de atendimento da facilidade. Isto caracteriza
um problema de localização capacitado. Neste tipo de problema é fornecido um conjunto de objetos
como entrada e estes com diferentes pesos, e deseja-se dividir este conjunto de objetos em p
agrupamentos, a intenção é que o peso total dos objetos em cada agrupamento seja menor ou igual a
um dado valor e ainda minimizar a dispersão total dos objetos em relação a uma mediana definida
como centro do agrupamento (LORENA et al., 2002).
7
Quando não são consideradas as restrições de atendimento, o problema passa a ser do tipo
não capacitado, pois admite-se que cada ponto pode atender um número ilimitado de postos de
demanda. A Figura 2 mostra a localização de três medianas as quais são Rádios FM. Usando
distâncias euclidianas em um problema não capacitado, neste caso o número de clientes a ser
atendido por cada rádio não é relevante pois o sinal vai abrangir uma área máxima não importando
o número de ouvintes.
8
2.1.2 Definição do problema de p-medianas
O problema de p-medianas consiste em determinar p instalações (facilidades) que deverão
atender a um conjunto existente de demanda. A solução ideal (ótima) do problema é encontrar a
menor soma de todas as distâncias entre as p-instalações e as demandas.
Hakimi (1964 apud ROSA, 1996) considerou duas categorias de problemas de localização
que fazem parte de um problema de encontrar uma localização ótima para uma facilidade numa
rede que envolve a seleção de uma localização central.
9
Segundo Rosa (1996), estas categorias de problemas são do tipo de problema de localização
"Minmax" e " Minsun". Conforme descrito anteriormente o primeiro problema destes dois consiste
em determinar um vértice u de um dado conjunto de vértices V(G) de um grafo G (finito, conexo,
não-orientado) de maneira que minimize a soma das máximas distâncias de u até todos os vértices
deste grafo, isto é, que minimize a função Minmax dada por:
D (u ) = {d (u , v); v ∈ V (G )} . Equação 2
De acordo com Lobo (2003), para trabalhar com medianas em geral considera-se um grafo
não direcionado G(N,A) com n nós. Toma-se um inteiro p e escolhe-se um conjunto de p pontos do
grafo, indicado por Xp. Indica-se por d(Xp, j) a distância mínima entre qualquer elemento de Xp e o
nó j do grafo G. Ou seja,
d ( X p , j ) = Minxi ∈X p {d ( xi , j )} Equação 3
Xp ∈ G tem-se:
J ( X *p ) ≤ J ( X p ) Equação 4
10
onde,
n Equação 5
J ( X p ) = ∑ h j d ( X p , j)
j =1
11
mas não se pode afirmar que é a melhor solução devido a particularidades da empresa que não
foram consideradas em seu trabalho. Em seu trabalho ele afirma que se a solução proposta for
adotada, haverá importante redução no tempo da entrega, possibilitando o aumentando no período
de redação do jornal, fator de real significação para uma empresa desta natureza, pois permitira a
ampliação de sua competitividade com os outros meios de divulgação.
Rosário (2002), descreve em seu trabalho uma metodologia para a distribuição espacial de
unidades de saúde 24 horas no município de Curitiba PR. Com o objetivo de apresentar uma
sistemática para indicar em que regiões devem ser localizadas as unidades de saúde 24 horas com o
intuito de minimização de distâncias observando os aspectos mais relevantes obtendo assim maior
proximidade entre os usuários e as unidades de saúde, possibilitando assim maior satisfação aos que
mais precisam dos serviços.
12
2.2 MÉTODOS EXATOS E ESTOCÁTICOS PARA LOCALIZAÇÃO DE
FACILIDADES
2.2.1 Introdução
Métodos estocásticos são métodos probabilísticos o que não garante que a solução
encontrada seja a solução ótima do problema, ao contrário dos métodos determinísticos que
baseados nas características do problema são capazes de determinar a melhor solução. Métodos
estocásticos são caracterizados por explorarem aleatoriamente uma vizinhança em busca de uma
solução melhor do problema. (BEZ, 2005).
Embora não possa ser garantida a melhor solução estes métodos em geral tendem a
aproximar-se da solução ótima, produzindo resultados aceitáveis (dependendo do problema em
questão). Estes métodos têm sido muito utilizados em problemas considerados de difícil solução, os
quais geralmente demandam processamento exaustivo e o tempo para determinar a solução ideal é
inviável. Os métodos estocásticos produzem soluções aceitáveis com um tempo de processamento
baixo se comparados com os métodos determinísticos em geral.
Por essas características eles tem sido muito utilizados para a resolução de problemas reais,
entre eles o problemas das p-medianas. Nesta classe de métodos podem-se citar entre os mais
utilizados os seguintes: Simulated Annealing (KIRKPATRICK; GELLAT; VECCHI, 1983), Tabu
Search (GLOVER, 1986; GLOVER; LAGUNA, 1995, 1997), Ant Colony Optimization -
Otimização de Colônia de Formigas (DORIGO, MANIEZZO & COLORNI, 1996), GRASP - Greedy
Randomized Adaptive Procedure (FEO e RESENDE, 1995). e os métodos evolucionários
(HOLLAND, 1975).
A seguir serão apresentados algoritmos utilizados para a resolução dete tipo de problema.
13
De acordo com Corrêa (2000), considerando-se todos os vértices de um grafo como
potenciais medianas o algoritmo de Teitz e Bart para o problema das p-medianas pode ser explicado
como segue:
De acordo com Smiderle, Piva e Tibes (2005), o algoritmo de Teitz e Bart segue os
seguintes passos:
∆ ij = σ (V p ) − σ (V p ∪ {vi } − {v j }), ∀v j ∈V p .
Faça ∆ ij _ max = máximo [∆ ] para todo
ij
∆ ij calculado anteriormente. Se ∆ ij _ max > 0 então:
Quando um material sólido é aquecido a uma temperatura elevada chegando ao seu ponto de
fusão e sendo resfriado gradualmente leva o material a estados mínimos de energia. Este é o
principio básico do tratamento térmico que alguns materiais para alterar suas propriedades ou
conferir-lhes determinadas características são submetidos.
14
Segundo Spectru (2007), os principais objetivos do tratamento térmico são:
• Aumento ou diminuição da dureza;
• Aumento da resistência mecânica;
• Melhora da resistência ao desgaste;
• Melhora das propriedades de corte;
• Melhora da resistência a corrosão; e
• Melhora da resistência ao calor.
15
Figura 6. Estado ordenado das moléculas consecutivo a um resfriamento lento.
Fonte: Noronha, Aloise e Silva (2001)
Porém se houver uma queda brusca da temperatura os átomos chegarão a um estado mínimo
muito rapidamente e estes estarão ainda muito desordenados.
Por ser um método estocástico o algoritmo realiza uma busca aleatória porém direcionada de
acordo com o fator de esfriamento e a taxa de aceitação utilizada.(RICH &KNIGHT ,1994).
16
A Figura 7 apresenta o algoritmo de metrópolis.
De acordo com Noronha, Aloise e Silva (2001), este algoritmo se decompõe em duas
grandes buscas sobrepostas. A busca externa controla o término do processo e é baseado na noção
de estado resfriado. A busca interna contém o processo de otimização. Para uma temperatura fixada,
explora-se a vizinhança aceitando ou não os movimentos são apresentados. Ao fim de L iterações
diminui-se a temperatura.
17
a temperatura abaixa, mais as degradações serão penalizadas em função de lucro dos
movimentos melhores, o método vai então convergir para o ótimo local mais próximo”.
Noronha, Aloise e Silva (2001).
Quando se chega a uma solução aceitável e as chances de encontrar soluções melhores são
pequenas aceita-se que o sistema esta resfriado, este critério pode ser estabelecido com um número
estabelecido de iterações do algoritmo, a uma temperatura sem encontrar uma solução melhor.
A alteração da temperatura pode ser realizada de diversas formas, uma delas é aceitar uma
temperatura fixa, este método é chamado de recozimento a temperatura fixa. O resultado pode ser
muito bom dependendo do problema em questão mas as chances de entrar em um local e não
conseguir sair do mesmo são grandes.
18
Por vezes, alguns indivíduos apresentam uma nova característica, indivíduos mutantes, que
os distingue do restante de sua espécie. Caso esta nova característica apresente
vantagens competitivas em relação aos demais membros da população, este indivíduo
possui uma probabilidade maior de sobrevivência. Dessa maneira, ele se torna apto a
reproduzir e, assim, perpetuar suas características. (BEZ, 2005).
A idéia inicial de utilizar a teoria de Darwin para a resolução de problemas foi introduzida
por Holland (1975). E em 1989 Goldberg baseado no trabalho Holland publicou Genetic Algorithms
in Search, Optimization and Machine Learning que em seus estudos perceberam que a descoberta
de Darwin poderia ser utilizada para resolução de diversos problemas.
Segundo Bez (2005), o princípio básico de um algoritmo genético é manter uma população
de indivíduos que evolui e se modifica por meio de recombinações desses indivíduos e de mutações,
aplicadas a certa parcela dessa população, ocasionadas por pequenas alterações do meio.
Como, de acordo com a teoria Darwiniana, os indivíduos mais aptos sobrevivem, utiliza-se
uma função de aptidão ou avaliação responsável pela classificação dos indivíduos pelo grau de sua
aptidão.
19
A estrutura de um algoritmo genético pode ser vista na Figura 8.
20
Operadores genéticos
Os operadores genéticos são os elementos que determinam a evolução dos indivíduos a cada
geração, são parâmetros que dependendo do seu valor podem melhorar os indivíduos subseqüentes,
transformando assim a população através de sucessivas gerações. Eles são necessários para que a
população se diversifique e mantenha características adquiridas por gerações anteriores.
Seleção
A seleção é o mecanismo responsável pela escolha dos indivíduos que irão compor uma
nova geração, pois quando ocorre o cruzamento a população aumenta, e é necessário que seja feita a
escolha de quais indivíduos são mais aptos a permanecerem na população. (COSTA FILHO, 1998).
A seleção é feita levando em consideração a aptidão de cada indivíduo, quanto mais apto ele
for as chances dele continuar na população são maiores. Uma maneira de realizar a seleção é
ordenar todos os indivíduos em ordem decrescente de acordo com a sua aptidão gerando assim uma
lista, conseqüentemente os indivíduos melhores adaptados estarão todos no final da fila, basta
retirar da lista a partir do inicio da mesma a quantidade de elementos necessária para que a
população volte ao tamanho desejado, este método é também conhecido como método elitista.
Outro método também utilizado é o chamado método da roleta, que consiste em colocar os
indivíduos na roleta atribuindo a cada um uma parte proporcional a sua aptidão. (BEZ, 2005).
21
A Figura 9 mostra um exemplo de roleta onde cada parte representa um individuo, as partes
maiores representa os indivíduos mais bem adaptados.
Após a atribuição a roleta é girada, e a fatia onde a agulha parar estará associada a um
individuo e este permanecerá na população. Este método também garante que os indivíduos mais
aptos terão uma chance maior de permanecerem na população. A roleta e acionada quantas vezes
for necessário para atingir o numero desejado de indivíduos na população.
Cruzamento
O cruzamento ou reprodução é a geração de novos indivíduos, para que o cruzamento ocorra
é necessário dois cromossomos os quais darão origem a mais dois cromossomos que terão
características semelhantes aos cromossomos pais. O cruzamento é necessário para que as
características sejam repassadas. O parâmetro de cruzamentos é também conhecido como crossover
por ser um operador predominante ele deve ser maior que a taxa de mutação que é um operador
secundário. (CAZANGI, 2004).
22
As Figuras 10, 11 e 12 mostram como pode ser realizado o cruzamento.
23
Durante o cruzamento pode ocorrer inconsistências, isso é mais comum quando o algoritmo
genético é representado de forma não binária, pois na hora do cruzamento existe por exemplo um
gene que irá se repetir conforme é mostrado na Figura 13 .
Mutação
O operador de mutação é responsável pela diversificação da população, quanto maior o fator
de mutação mais a população sofrerá mutações e se diversificará fato o qual pode ser positivo,
gerando indivíduos melhores adaptados ou negativo piorando se esses indivíduos tiverem a chance
de se reproduzirem. A mutação geralmente é feita de forma aleatória trocando a ordem de
formação do cromossomo. Com essas alterações genéticas é possível assegura-se que a
probabilidade de sair de mínimos locais é grande pois modifica-se levemente a direção da busca
com as mutações. O operador de mutação geralmente é pequeno pois é um operador genético
secundário. (COSTA FILHO, 1998).
24
A Figura 14 ilustra a mutação de um individuo que neste caso tem seu gene número três
alterado.
A Figura 15 mostra como é definido cada população a cada ciclo de reprodução. Onde SP1,
SP2 e SP3 são indivíduos da população.
Parâmetros Genéticos
Os algoritmos genéticos possuem parâmetros que podem ser ajustados de acordo com a
implementação dos mesmos, os parâmetros que podem ser alterados são a taxa de mutação dos
indivíduos, a taxa de cruzamento da população, e o tamanho da população. O tamanho da população
25
está diretamente ligado ao espaço de busca, quanto menor a população menor será o número de
cruzamentos, e poderá ocorrer a convergência prematura chegando a pontos mínimos com poucas
chances de sair dos mesmos. Usando uma população grande a área de cobertura será maior e as
chances de o algoritmo cair em pontos mínimos e não conseguir sair é menor, porém quanto maior a
população maior será o esforço computacional.
De acordo com Viana (1998 apud GOMES, 2003), este método apresenta as seguintes
características: i - uso de uma estrutura de dados (lista) para “guardar” o histórico da evolução do
processo de busca; iii - uso de um mecanismo de controle para fazer um balanceamento entre a
aceitação, ou não, de uma nova configuração, com base nas informações registradas na “lista tabu”
referentes às restrições e aspirações desejadas e iii - incorporação de procedimentos que alternam as
estratégias de diversificação e intensificação.
De acordo com Araujo (2004), duas regras podem ser definidas como critério de parada para
Pesquisa Tabu: (i) é definido um número máximo de iterações (nbmax) que serão realizadas sem
que ocorra melhora no melhor resultado obtido; (ii) em muitos casos o mínimo global f* é
26
conhecido e a pesquisa pode ser interrompida quando este mínimo for alcançado. Porém, em muitos
casos, o ótimo global não é conhecido. A seguir é na Figura 16 é mostrado o algoritmo geral da
Pesquisa Tabu.
Inicialização
S=solução inicial em x
Niter=0;
Melhiter=0;
Melhsol = s;
Enquanto (f(s) > fmin) e (niter-melhiter < nbmax) faça
niter = niter+1;
Gerar um conjunto V* de soluções si em N(s) que não
seja tabu T ou f(si) < A(f(s));
Escolher a melhor solução s* em V*;
Se f(s*) <f(melhsol) então
melhsol = s*;
melhiter = niter;
fim se;
fim enquanto;
Segundo Noronha, Aloise e Silva, (2001) a busca Tabu apresenta bons resultados e é fácil
de ser implementada. No entanto é sensível a dois problemas:
De acordo com (Braga et al. 1994 apud GOMES, 2003), é necessário que a Lista Tabu tenha
um comprimento definido, pois poderá haver momentos em que seja necessário voltar para alguma
solução, e a partir dela, buscar outras soluções. O tamanho da vizinhança é outro parâmetro
importante para o uso da Busca Tabu. A escolha do tamanho da vizinhança regula o tempo de
execução do algoritmo. Uma má escolha desse parâmetro pode comprometer a execução do
algoritmo; assim este valor deve ser ajustado, juntamente com o número máximo de iterações, para
se obter bons resultados num tempo aceitável. No caso onde a vizinhança é muito rica, ou seja, para
cada solução, o número de vizinhos é muito grande. Podemos reduzi-los sorteando os elementos a
serem avaliados.
27
“Os métodos de Pesquisa Tabu aparecem como os mais versáteis métodos de pesquisa
local, pois eles se prestam naturalmente as extensões mais diversas. Entretanto, se
desejamos implantar sobre um método Tabu todos os mecanismos de extensão que nós
vimos, choca-se a um problema de coerência na definição do método.Historicamente, é esta
última razão que motiva a pesquisa da formulação genérica e unificada dos métodos de
melhoramento interativo”. Noronha, Aloise e Silva (2001).
Araujo (2004), utilizou Busca Tabu a fim de resolver problemas de p-medianas aplicados a
problemas de corte para projetar um conjunto de Peças em um objeto (Placa), determinando um
Plano de Corte Guilhotina Bidimensional, direcionado a peças regulares com restrições quanto ao
número tipo de peças. O problema estudado por Araujo consiste em descobrir o melhor arranjo de
um conjunto de peças de dimensões diversas que precisa ser projetado em um objeto com
dimensões maiores, com o objetivo de minimizar a perda de matéria prima. Existem diversas
aplicações para o problema estudado como por exemplo aplicações na indústria moveleira, têxtil,
metal mecânica setores da economia em que o arranjo das peças a serem produzidas é um fator
importante para a economia de matéria prima influenciando na competitividade da empresa no
mercado. Diminuindo o custo da produção a empresa pode ter um preço mais competitivo e
aumentar seu lucro.
A organização da vida das formigas em sociedades somente foi possível com a utilização
dos feromônios, possibilitando o reconhecimento individual e a cooperação na execução das
múltiplas atividades da colônia. (VILELA & DELLA LUCIA, 1987).
28
feromônio responsável pela formação das trilhas e pelo recrutamento de companheiras para os
locais de forrageamento é produzido pelas glândulas de veneno e é depositado sobre as superfícies
(VILELA & DELLA LUCIA, 1987).
No início as formigas saem todas para destinos aleatórios vão a busca de comida e
percorrem praticamente todo o território ao seu redor quando cada formiga sai à procura de
alimento ela deixa pelo caminho o feromônio que é uma substância natural exalada pelas formigas,
a formiga sai de seu ninho vai até a fonte de alimento e retorna.
Conseqüentemente os caminhos mais curtos terão uma quantidade maior de feromônio, com
isso a probabilidade de outras formigas irem pelo mesmo caminho é maior. A Figura 17 ilustra o
funcionamento da busca de comida na natureza.
Figura 17. Diferentes caminhos escolhidos pelas formigas, durante um determinado intervalo de
tempo.
Fonte: Silva et al. (2005).
29
Quando saem em busca de comida elas escolhem a próxima região a ser visitada de forma
probabilística, entre as regiões que não foram visitadas. A probabilidade de a formiga escolher uma
nó para chegar até a região escolhida é diretamente proporcional a atração que o mesmo exerce
através da quantidade de feromônio que possui. As formigas compartilham uma tabela que contém
todas as regiões já visitadas e a cada região visitada ela acrescenta nesta tabela a região. Ao
retornarem á colônia as formigas põem um rastro de feromônio em todos os nós utilizados. Isso
pode ser feito à medida que a formiga se locomove também para que se assemelhe mais com a
colônia natural. A Figura 18 apresenta o algoritmo em pseudocódigo para esta metaheurística.
A atualização do feromônio pode ser feita de duas maneiras; a cada arco visitado a formiga
atualiza a quantidade de feromônio no mesmo, que representa de forma mais adequada o que ocorre
na natureza, ou pode-se fazer a atualização global que ocorre quando a formiga chega ao final da
sua rota e atualiza todos os arcos que utilizou.
30
formigas e para todos os arcos, já no caso de acréscimo variável além do acréscimo constante, as
formigas depositam uma quantidade de feromônio que depende da qualidade do caminho
percorrido, pois quanto menor o caminho maior será a quantidade de feromônio depositada. A
escolha do próximo nó a ser visitado, se baseia em uma probabilidade que utiliza o feromônio como
parâmetro conforme a Equação 5:
[ ] [ ]
τ ij α ⋅ η ij β
se j ∈ J k (i )
pijk = ∑ [τ iu ] ⋅ [η iu ]
α β
Equação 5
u∈J k
0 caso contrário
onde:
pijk = probabilidade da formiga k, que se encontra em i, escolher o nó j como próximo nó a
ser visitado;
τ ij = quantidade de feromônio existente no arco (i,j). Inicialmente, adota-se um mesmo valor
τ0 para todos os arcos da rede;
ηij = função heurística que representa a atratividade do arco (i,j), dada por 1/dij ;
J k (i ) = conjunto de pontos ainda não visitados pela formiga k;
Βeta e Alfa = parâmetro que controla a importância relativa ao feromônio e a função que representa
a atratividade.
1
L se a k ésima formiga usa o
Equação 6
k
∆τ ij =
k
arco (i, j) no seu caminho.
0 caso contrário.
31
Evaporação
32
3 DESENVOLVIMENTO
3.1 Planejamento
3.1.1 Metodologia
Para o desenvolvimento deste TCC, foram cumpridos os seguintes objetivos:
A seguir é apresentado como foi tratado o problema, a modelagem dos algoritmos os ensaios
numéricos, bem como a análise dos resultados obtidos.
100 10
409154 435528 720 50
409151 435683 720 4
409277 435420 720 33
409260 435538 720 15
33
Onde 100 representa o número de pontos de demandas, 10 representa o número de medianas
a serem inseridas. Todos os vertices podem ser usados como demandas ou medianas. Os outros
dados são as coordenadas x e y a capacidade máxima de atendimento daquele ponto e a demanda de
atendimento do ponto.
Neste trabalho não será proposto à resolução de nenhum problema em específico, os dados
serão utilizados apenas para testes não levando em consideração a natureza dos mesmos. O
problema completo pode ser visto no Anexo I.
Para todos os algoritmos, será considerado que se tem um conjunto o qual contém todos os
vértices candidatos a medianas, e tem-se também um conjunto com todas as demandas, e as
informações que são as coordenadas cartesianas de cada vértice e de cada demanda para que as
distâncias possam ser calculadas. Neste caso a distância a ser utilizada nos testes será a distância
euclidiana entre os pontos de demanda e as facilidades, ou seja, a distância em linha reta entre
demanda e facilidade que será calculada quando for necessário utilizá-la.
Cada vértice candidato à mediana deverá ter também a capacidade de atendimento que a
facilidade poderá atender, pois o problema será do tipo capacitado.
34
cromossomos representa uma solução para o problema onde cada gene representa uma mediana. A
ordem dos genes não será levada em consideração, pois não vai alterar o resultado.
O fitness (função que quantifica a qualidade da solução) de cada cromossomo, se deu pelo
valor da soma das distâncias euclidianas de cada mediana (gene) as suas demandas.
A taxa de mutação dos indivíduos também foi definida nos testes e os indivíduos que
sofreram mutação foram escolhidos de forma aleatória, porém todos tiveram a mesma probabilidade
de sofrer mutação.
Caso a mesma mediana apareça duas vezes no mesmo cromossomo então foi realizado o um
processo de tratamento de inconsistências conforme descrito na sub-seção 2.2.4. Neste caso foi
definido outra possível mediana.
A condição de término foi um número máximo de iterações do algoritmo, que foi passada
como parâmetro. Onde cada iteração será caracterizada por:
1. Escolha da população;
35
4. Aplicação do cruzamento entre os indivíduos; e
6. Seleção da população.
Para aplicar o simulated annealing foi definido inicialmente o parâmetro de controle, que se
chama temperatura, em seguida foi escolhido aleatoriamente, uma solução inicial do problema, que
foi um conjunto com as medianas escolhidas. Calculou-se então a menor soma das distâncias de
todos os pontos (demandas) a essas medianas, e este é o valor da solução inicial.
Após ter-se definido uma solução inicial foram geradas aleatoriamente novas soluções e
calculado da mesma forma o valor destas novas soluções. Em seguida é efetuada a redução da
temperatura, utilizando de um valor fixo de redução, (redução linear) onde foi escolhido e testado
juntamente com os testes numéricos. Após ter fixado uma nova temperatura são realizados
movimentos (trocas de medianas), e é calculada a variação de energia ∆Ε proporcionada pelo
movimento realizado. A energia foi entendida como a distância média, da soma das distâncias das
medianas até suas demandas.
36
Quando a energia decresce, significa que a solução encontrada com o deslocamento é
melhor que a solução até então encontrada e deve ser incorporada ao sistema. Porém se o valor
aumentar esta solução será aceita levando em consideração uma estratégia de aceitação
probabilística, isso é importante para que o algoritmo evite ficar preso em mínimos locais. A
estratégia de aceitação levou em consideração o aumento e diminuição da temperatura, pois a
medida que a temperatura aumentar, a probabilidade de aceitar um movimento também aumenta
pois as moléculas estarão em movimento. A medida que a temperatura diminuir a probabilidade de
aceitar uma configuração é diminuída.
Este sistema se repete em todas as temperaturas, até que o sistema se encontre em um estado
que não seja mais possível realizar movimentos que melhorem a solução ou o numero máximo de
iterações seja alcançado.
A colônia de formigas foi utilizada de forma adaptada para o contexto do problema, pois nos
trabalhos estudados pouco se falava sobre a aplicação deste método para a resolução de problemas
de p-medianas. O mesmo foi escolhido para ser implementado e testado por ser uma metaheuristica
pouco conhecida e que tem demonstrado ótimos resultados na resolução de problemas
combinatórios.
37
Inicialmente foi escolhida aleatoriamente uma solução inicial para o problema que contém
os vértices onde se instalaram as facilidades. Os demais vértices que podem ser medianas tiveram
uma quantidade de ferômonio igual para todos. O valor exato foi definido em uma unidade, com
isso é garantido que na primeira iteração todos os vértices terão a mesma chance de serem
escolhidos.
O feromônio neste caso deixa de ser uma indicação do melhor caminho e passará a indicar
quais os melhores vértices a serem escolhidos para se tornarem medianas. Cada formiga então
efetua uma escolha, vai escolher uma solução para o problema, e a escolha de cinqüenta por cento
dos vértices candidatos a mediana para a solução foi realizada observando a probabilidade deste ser
escolhido de acordo com a quantidade de ferômonio existente no vértice, pois quanto mais
ferômonio o vértice possuir maior será a chance do mesmo ser escolhido para se tornar parte da
solução.
Após todas as formigas terem escolhido suas medianas, então foi realizado o cálculo para
ver quanto boa é cada solução encontrada. Com base nestas soluções a quantidade de ferômonio foi
depositada de acordo com a qualidade da solução, neste caso o ferômonio foi atualizado após o
ciclo completo de todas as formigas.
Após o ferômonio ser atualizado nos nós utilizados pelas formigas então foi realizada a
evaporação do ferômonio, a taxa de evaporação também foi ajustada e definida durante os testes.
Com isso é finalizada uma iteração. O processo iterativo é interrompido quando for atingido
o número máximo de iterações que é definido como parâmetro na inicialização do algoritmo.
38
void Formigas::Run(std::vector<Vertice*> &vVertices)
{
int i,j;
Formiga *f;
string duracao;
valorMelhorSolucao= 9999999999999999;
duracao=TimeToStr(Date().CurrentTime()).c_str();
for (i= 1; i<= nIteracoes; i++){
calculaFatia(vVertices);
for (j= 0; j<= lFormigas.NrElementos(); j++){
lFormigas.Enesimo(j,&f);
f->ExecutaBusca(vVertices,fatia);
}
for (j= 0; j<= lFormigas.NrElementos(); j++){
lFormigas.Enesimo(j,&f);
f->AtualizaFeromonio(vVertices);
if (f->GetFitnnes()< valorMelhorSolucao)
valorMelhorSolucao= f->GetFitness();
}
evaporarFeromonio(vVertices);
}
duracao= TimeToStr(Date().CurrentTime() - StrToTime(duracao.c_str())).c_str();
char tempo[20];
strcpy(tempo,duracao.c_str());
salvaMelhorSolucao(tempo);
}
Os testes foram realizados em massa, ou seja, foi definida uma configuração inicial para
cada algoritmo e foram realizados testes em massa com cada método, cem testes com cada
configuração para cada um foi gravado de forma automática o resultado em um arquivo para análise
posterior. Após os testes com uma determinada configuração os parâmetros foram ajustados
buscando encontrar melhores resultados, nem sempre isso foi possível, pois se percebeu que
encontrar uma configuração ideal para cada problema é uma tarefa difícil, pois pequenas alterações
em alguns parâmetros refletem em resultados ligeiramente diferentes. O grande desafio foi
identificar até que ponto cada parâmetro poderia ser ajustado.
Foi possível extrair um valor médio para a solução, o desvio padrão entre os testes, e
também o melhor resultado obtido dos cem testes realizados.
39
O número total de testes que estão documentados é de treze mil e novecentos. Sendo que
ainda antes do inicio dos mesmos foram realizados inúmeros testes a fim de validar os algoritmos e
encontrar uma configuração inicial para cada método.
A seguir serão apresentados os ensaios numéricos sendo os dados referentes aos gráficos
encontra-se no Apêndice A. Será apresentado como cada método foi testado, ajustado e os
resultados obtidos.
Para o ajuste da taxa de cruzamentos foram realizados mil e quinhentos testes sendo que o
tamanho da população foi fixado e definido em testes preliminares e fixado em 164 indivíduos e o
número de mutações foi fixado em 1 mutação por geração a quantidade de iterações também foi
definida inicialmente com cem gerações. Pode-se observar que com uma taxa de cruzamento
pequena os resultados não eram adequados, porém a medida que se aproximou do de 105 (64%) os
resultados foram melhorando e a medida que se afastou deste valor o algoritmo tendeu a ficar mais
aleatório não convergindo para uma solução boa. O resultado do ajuste da taxa de cruzamento pode
ser visto na Figura 22.
40
Ajuste da quantidade de cruzamentos por
Valor da função geração
23000
22000
21000
20000
19000
18000
20 30 40 50 60 70 80 90 100 103 105 107 110 120 130
Cruzamentos
Após a definição da taxa de cruzamento foi realizado a ajuste da taxa de mutação onde
foram fixados os seguintes parâmetros: cem gerações, população de cento e sessenta e quatro
indivíduos, taxa de cruzamento fixa em aproximadamente sessenta e quatro por cento da
população. A Figura 23 mostra o ajuste da taxa de mutação onde é possível observar que a
quantidade de mutações ideal foi de sete mutações que equivale a aproximadamente quatro por
cento da população. É possível observar que taxas de mutação muito pequenas não ajudam o
algoritmo a sair de mínimos locai e que taxas de mutação elevadas tornam o algoritmo muito
aleatório dificultando a convergência do mesmo.
41
Valor da função
Ajuste da quantidade de mutações por
geração
20000
19900
19800
19700
19600
19500
19400
2 3 4 5 6 7 8 9 10
A quantidade de gerações equivale ao número de iterações que o algoritmo terá e foi testada
e ajustada com a seguinte configuração: população de cento e sessenta e quatro indivíduos, taxa de
cruzamento fixa em aproximadamente sessenta e quatro por cento da população, e taxa de mutação
fixa em aproximadamente quatro por cento da população. Na Figura 24 pode-se observar que
quanto maior o número de gerações melhores são os resultados, pois os indivíduos da população
tornam-se melhores adaptados ao meio refletindo em soluções melhores.
42
Após definidos todos os parâmetros então foi ajustado o tamanho da geração sendo que a
taxa de cruzamentos, taxa de mutação e número de gerações já foi definido. A Figura 25 mostra
como quanto maior a população melhores são os resultados obtidos pois o espaço analisado é maior,
o número de cruzamentos, mutações cresce proporcionalmente de acordo com a população trazendo
assim resultados melhores.
Valor da função
Ajuste da população
20000
19500
19000
18500
18000
17500
17000
16500
16000
População
50 100 200 300 400 500 1000
A convergência do algoritmo pode ser observada na Figura 26, onde é possível verificar os
resultados obtidos nas gerações apresentadas.
Convergência do algoritmo
Valor da função
23000
22000
21000
20000
19000
18000
17000
16000
1 5 22 42 65 84 123 143 600 1000 Iteração
43
3.2.2 Ensaios realizados com o algoritmo simulated annealing
No algoritmo simulated annealing foi necessário o ajuste de três parâmetros: A temperatura
inicial e o decréscimo da temperatura a cada iteração e o número de iterações. Este algoritmo
mostrou-se bastante instável para o problema em questão, não convergindo para soluções boas. Isso
pode ter ocorrido pelo fato de o mesmo ser muito aleatório e o conjunto de possíveis soluções para
o problema ser extremamente grande. Os dados utilizados para a construção dos gráficos estão
disponibilizados no apêndice A. 1.3 bem como os tempos gastos na execução de cada configuração.
A Figura 27 mostra como foi difícil realizar o ajuste da temperatura num total de mil e
novecentos testes.
Valor da função
Ajuste da temperatura inicial
Resultados
28000
26000
24000
22000
20000
18000
16000
0º
5º
°
0°
0°
0°
00
00
54
57
50
70
85
12
15
44
Valor da função Ajuste do decréscimo de temperatura
28000 Resultados
27000
26000
25000
24000
23000
22000
21000
20000
5º
0°
5°
0°
8°
0°
5°
0.
2.
3.
5.
5.
6.
6.
Figura 28 Ajuste do decréscimo de temperatura.
Após definidos os parâmetros utilizados então foram realizados testes para ajustar o
número de iterações que os resultados estabilizam, foram feitos testes de dez a cem mil
iterações a Figura 29 mostra o resultado dos testes onde pode-se perceber que os melhores
resultados são obtidos quando o número de iterações é superior a cinqüenta mil iterações.
00
00
00
00
0
0
10
20
40
00
00
00
10
20
30
50
00
10
25
50
10
20
50
10
45
A Figura 30 mostra com o algoritmo converge para a melhor solução.
23000
22000
21000
20000
19000
18000
1 797 6483 26859 99673 100000 Iteração
46
Valor da função Ajuste da quantidade de formigas
20400
20200
20000
19800
19600
19400
19200
10 15 20 25 30 35 40 45 50 60 70 100 120
Valor da função
Ajuste do decréscimo de ferômonio
20600
20400
20200
20000
19800
19600
19400
19200
19000
1
9
02
03
04
05
07
09
5
0
0
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0
0
0.
0.
0.
0.
0.
0.
47
que o número de iterações aumenta pois a cada iteração, as formigas realizam uma nova busca a
procura de uma solução. A Figura 33 mostra como o número de iterações influencia no resultado
final.
23000
22000
21000
20000
19000
18000
17000
10 20 30 40 50 60 70 80 90 100 150 300 600 1000
48
3.2.4 Comparativo de resultados
Após a realização de cem testes com a melhor configuração encontrada em cada algoritmo
foi também feita a média dos testes onde se pode constatar que o algoritmo genético encontrou a
melhor solução, a qual é a menor soma das distancias entre as medianas e suas demandas. A Figura
35 mostra estes resultados. Os dados utilizados para a construção dos gráficos podem ser vistos no
apêndice A.
Analisando o desvio padrão dos testes realizados com a melhor configuração de cada
algoritmo constatou-se que o algoritmo baseado em colônia de formigas demonstrou maior
estabilidade apresentando um desvio médio de duzentos e sete unidades de medida. A Figura 35
mostra o comparativo entre os métodos.
O melhor resultado dos cem testes realizados com a melhor configuração de cada algoritmo
também foi armazenado e se pode perceber que o algoritmo genético também apresentou o melhor
49
resultado para o problema seguido do algoritmo baseado em colônia de formigas, conforme pode
ser observado na Figura 36.
19000
18000
17000
16000
15000
Simulated Formigas Genético
Os resultados obtidos neste estudo mostram que o três algoritmos abortados não podem ser
comparados em relação ao número de iterações, pois a complexidade algoritma de cada método é
diferente, a estrutura do algoritmo genético por exemplo é mais complexa que a estrutura do
algoritmo baseado em colônia de formigas que possui uma estrutura mais complexa que o algoritmo
simulated annealing.
Também percebeu-se que para este tipo de problema a melhor forma de analisar e comparar
um algoritmo é analisando os reais resultados que os mesmos oferecem, pois um problema de
localização não é um tipo de problema que necessita de uma resposta imediata.
E o melhor algoritmo realmente será o que trará o melhor resultado, pois o tempo de
processamento não é fator decisivo na escolha do método, pois quanto melhor a solução encontrada
melhor será a economia de recursos, tempo entre outros.
50
4 CONCLUSÕES
O objetivo deste trabalho foi de abordar apenas três métodos, porém em trabalhos mais
especificos pode-se detalhar e abortar uma única metaheuristica o que possibilitaria um
entendimento melhor da mesma, mas como a intensão é a comparação de três metaheuristicas foi
necessário descrever todas as metaheuristicas a serem utilizadas.
A grande bateria de testes realizados com os três métodos foi a parte do trabalho que mais
demorou para ser finalizada, pois para qualquer alteração em uma configuração de um algoritmo
foram realizados cem testes a fim de validar o resultado obtido, como cada algoritmo tem vários
parâmetros a serem ajustados e a medida que se aumentavam alguns parâmetros também o tempo
de processamento aumentava.
Os resultados obtidos nos testes mostram que o algoritmo genético tem grande vantagem em
relação os outros métodos estudados, trazendo as menores distâncias entre as medianas e suas
demandas. O algoritmo baseado em colônia de formigas também obteve bons resultados pois
poucos trabalhos até então aplicam este método a p-medianas, pode-se observar que o método pode
ser aplicado ao problema de p-medianas sem problemas.
52
REFERÊNCIAS BIBLIOGRÁFICAS
CAZANGI, R.R. Uma proposta evolutiva para controle inteligente em navegação autônoma de
robôs. 2004. 151f. Dissertação (Mestrado em engenharia elétrica) – Universidade Estadual de
Campinas – Campinas 2004.
DORIGO, M.; MANIEZZO, V.; COLORNI, A. The Ant System: Optimization by a colony of
cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics Part B:
Cybernetics, 26(1):29–41, 1996.
DUCATI, E.A. Busca tabu aplicada ao problema de localização de facilidades com restrições
de capacidade. 2003. 71f. Dissertação (Mestrado em engenharia elétrica) - Universidade Estadual
de Campinas – Campinas, 2003.
FEO, T.A. e RESENDE, M. G. C. (1995) Greedy randomized adaptive search procedures. Journal
of GlobalOptimization, 6, 109-133.
GAREY, M.R.; JOHNSON, D.S. Computers and intractability: a guide to the theory of
NPcompleteness, W. H. Freeman and Co., San Francisco, 1979.
GLOVER, F. Future paths for integer programming and links to artificial intelligence.Comp.
Operations Research, v.13, p.533-549, 1986.
GLOVER, F.; LAGUNA, M. Tabu search. Boston: Kluwer Academic Publishers, 1997. 408p.
GLOVER, F.; LAGUNA, M. Tabu search. In: COLIN, R. R. Modern heuristic techniques for
combinatorial problems. New York: McGraw-Hill, 1995. p.70-150.
HOBSBAWM, E.J. A Era das Revoluções: Europa: 1789-1848. Trad. Port. Rio de Janeiro: Paz e
Terra, 1982.
KIRKPATRICK, S.; GELLAT JR., C.D.; VECCHI, M.P. Optimization by simulated annealing.
Science, v.220, n.4598, p.671-680, maio/1983.
54
METROPOLIS, W.; ROSENBLUTH, A.; ROSENBLUTH, M.; TELLER, A.; TELLER,
E.Equation of state calculations by fast computing machines. Journal of chemical physics. v. 21,
n. 6, p. 1087-1092, Jun. 1953.
RICH, Elaine; KNIGHT, Kevin Inteligência Artificial. Makron Books. 2ª. Edição. São Paulo,
1994. 722p.
SILVA, E. O. A.; BENTES, C.; BAHIENSE, L.; CASTRO, C. S. Uma Abordagem Paralela
Baseada em Colônia de Formigas para o Problema do Caixeiro Viajante. Caderno do IME Vol.
18 : Julho de 2005.
SMIDERLE A., PIVA A.R., TIBES E. Estudo de caso da distribuição geográfica das unidades
farmacêuticas do município de Pato Branco. 2005. Artigo XXV Encontro Nac. de Eng. de
Produção – Porto Alegre, RS, Brasil, 29 out a 01 de Nov de 2005.
TEITZ, M. B.; BART, P. Heuristics methods for estimating the generalized vertex median of a
weighted graph. Operations Research, v.16, p.955-961. 1968
55
GLOSSÁRIO
Distância euclidiana
Distância em linha reta Distância em linha reta
Grafo conexo ) UmUm grafo G(V,A) é dito ser conexo se há pelo menos uma cadeia
ligando cada par de vértices deste grafo G.
Grafo não Orientado Não existe orientação no grafo ou seja qualquer ligação é permitida
entre os vértices.
Heurisken Encontrar
57
A ENSAIOS NUMÉRICOS
Nas tabelas que contém os resultados dos ensaios numéricos, cada linha da tabela representa
uma configuração diferente do algoritmo, e para cada linha foram realizados cem testes.
Os tempos contidos nas tabelas foram contabilizados utilizando um computador com CPU
AMD athlon 1.19 Mhz com 720 Mb de memória RAM.
58
80 05 seg. 164 7 105 21216.8212 1370.9739 18224.3507
100 14 seg. 164 7 105 19629.9574 935.1174 17925.3972
150 19 seg. 164 7 105 20064.2675 1115.9105 17859.0013
200 22 seg. 164 7 105 19671.1177 938.0492 17898.3636
300 28 seg. 164 7 105 18973.2860 852.1851 17406.5484
500 80 seg. 164 7 105 18393.3572 505.1404 17240.9331
Ajuste da população
750 123 seg. 164 7 105 18073.7102 487.3739 16807.3589
1000 157 seg. 164 7 105 18211.7142 508.8953 17270.9677
100 5 seg. 50 2 32 19438.3353 802.0742 17624.5961
100 23 seg. 100 4 64 18121.9081 418.0721 17164.4059
100 45 seg. 200 8 128 17915.2938 402.9325 17106.1404
100 78 seg. 300 12 192 17680.8547 385.8191 16837.2113
100 103 seg. 400 16 256 17609.3072 380.9521 16943.4384
100 120 seg. 500 20 320 17619.3913 351.8316 16793.0419
100 185 seg. 1000 40 640 17405.0410 269.0747 16776.1689
59
200 09 seg. 120 0.01 20421.0777 575.1043 19022.9609
200 09 seg. 120 0.02 20227.5787 575.1332 18562.5762
200 09 seg. 120 0.03 19937.1588 618.7731 18899.8281
200 09 seg. 120 0.04 20111.3207 575.8106 18984.1191
200 09 seg. 120 0.05 19636.1951 612.1550 18296.4844
200 09 seg. 120 0.06 19742.4078 417.4454 18850.2461
200 09 seg. 120 0.07 19801.2142 419.3741 18839.3301
200 09 seg. 120 0.08 19792.7342 448.0632 18166.1875
200 09 seg. 120 0.09 19856.6911 520.6373 18454.9883
200 09 seg. 120 0.1 19868.6582 499.9751 18650.9141
200 09 seg. 120 0.5 20000.5461 421.1158 18629.9297
Ajuste do número de iterações
10 01 seg. 120 0.005 22240.7508 2200.168 17776.1699
20 01 seg. 120 0.005 21654.6631 1058.040 19536.1699
30 02 seg. 120 0.005 20744.4151 1011.501 18985.8965
40 02 seg. 120 0.005 20909.0768 924.9336 18541.6621
50 02 seg. 120 0.005 20704.4288 903.3046 18349.4102
60 02 seg. 120 0.005 20621.7936 824.3889 18631.5723
70 03 seg. 120 0.005 20609.8833 873.4453 18591.5391
80 03 seg. 120 0.005 20751.1275 709.1773 19196.8477
90 03 seg. 120 0.005 20727.2917 651.1356 18719.4180
100 04 seg. 120 0.005 20787.3798 749.3440 18417.7617
150 07 seg. 120 0.005 19967.1996 532.1497 18919.9688
300 12 seg. 120 0.005 19233.6042 434.4622 18420.6719
600 50 seg. 120 0.005 18893.5689 462.4419 18345.3398
1000 184 seg. 120 0.005 18874.8951 207.6702 18069.7012
60
A.1.3. Ensaios Simulated Annealing
Tabela 3. Ensaios Simulated Annealing
61
01 seg. 200 1200° 6.2° 23688.7464 2876.7417 21571.9473
01 seg. 200 1200° 6.5° 26572.2528 2179.3412 24456.6777
Ajuste do número de iterações
01 seg. 10 1200° 5.8° 23951.8111 1711.14299 21283.2910
01 seg. 20 1200° 5.8° 23491.4889 301.25388 23173.7480
01 seg. 40 1200° 5.8° 27689.4667 8729.7592 21275.771
01 seg. 100 1200° 5.8° 26223.3092 1706.2199 24514.1973
01 seg. 200 1200° 5.8° 21762.3928 2008.2425 20940.8770
01 seg. 300 1200° 5.8° 22312.3332 1093.4948 20414.1328
01 seg. 500 1200° 5.8° 21169.0770 350.93580 21061.6230
02 seg. 1000 1200° 5.8° 24815.1882 3053.5965 20294.7090
4 seg. 2500 1200° 5.8° 24834.3158 2172.9371 21826.0996
11 seg. 5000 1200° 5.8° 23160.0990 2248.4803 20313.6895
21 seg 10000 1200° 5.8° 21236.6997 1219.1719 19500.4727
42 seg. 20000 1200° 5.8° 20419.3480 731.5850 19506.9277
83 seg 50000 1200° 5.8° 19675.4514 615.7628 18690.0801
184 seg. 100000 1200° 5.8° 19496.3630 381.5908 19078.4824
62
ANEXOS
63
I PROBLEMA
No problema utilizado nos testes cem representa o número de pontos de demandas, dez
representa o número de medianas a serem inseridas. Todos os pontos podem ser usados como
demandas ou medianas. Os outros dados são as coordenadas x e y a capacidade máxima de
atendimento daquele ponto e a demanda de atendimento do ponto.
100 10
409154 435528 720 50
409151 435683 720 4
409277 435420 720 33
409260 435538 720 15
409240 435695 720 1
409213 435897 720 5
409199 435982 720 87
409178 436078 720 91
409174 436171 720 45
409147 436256 720 1
409469 435389 720 41
409378 435463 720 23
409378 435563 720 26
409351 435734 720 301
409328 435891 720 53
409275 435982 720 1
409289 436065 720 80
409272 436188 720 118
409208 436263 720 1
409754 435326 720 1
409609 435201 720 15
409565 435307 720 12
409577 435510 720 60
409515 435614 720 35
409478 435707 720 138
409442 435810 720 1
409442 435913 720 173
409408 436075 720 61
409344 436201 720 1
409398 436213 720 21
409638 435143 720 8
409683 435349 720 18
409670 435514 720 35
409620 435615 720 17
409688 435618 720 22
409624 435752 720 60
409570 435942 720 65
409541 436090 720 54
409512 436236 720 39
409216 435826 720 1
64
409158 435820 720 1
408777 434870 720 5
408731 434657 720 115
408808 434639 720 30
408840 435022 720 98
408932 434976 720 61
408897 434650 720 79
409050 434674 720 8
409033 434769 720 193
408906 434723 720 4
409262 434873 720 654
409090 434982 720 63
409020 435056 720 22
409262 435017 720 283
409210 435093 720 150
409109 435153 720 153
409192 435244 720 20
409298 435127 720 10
409302 435225 720 13
409264 435295 720 3
409372 434355 720 19
409426 434622 720 444
409452 434831 720 54
409553 435074 720 25
409434 435030 720 21
409479 434592 720 13
409517 434818 720 19
409539 434954 720 26
409038 435235 720 90
409167 435416 720 105
408778 434739 720 73
409411 434362 720 3
409822 435466 720 1
409811 435545 720 46
409765 435617 720 28
409812 435857 720 160
409792 435978 720 1
409837 436155 720 65
409711 436281 720 152
409969 435509 720 1
409944 435714 720 61
410041 435866 720 102
409946 436015 720 49
410015 436193 720 43
410067 435592 720 1
410073 436039 720 48
410113 436329 720 27
410204 436314 720 6
409645 436119 720 49
65
410120 436189 720 27
409875 435755 720 19
410180 436398 720 33
410244 436276 720 1
410224 436222 720 1
410435 436784 720 37
409573 436533 720 49
409575 436677 720 54
409553 436813 720 30
409546 436882 720 12
409701 436391 720 34
66