Beruflich Dokumente
Kultur Dokumente
DISSERTAÇÃO
para obtenção do grau de mestre em Informática,
da Universidade de Trás-os-Montes
e Alto Douro
submetido por
Rodrigo David Teixeira Henriques
1 / 119
2 / 119
DECLARAÇÃO
3 / 119
4 / 119
Abstract
Transport planning has always presented itself as a complex problem,
given the number of sites and possible routes, time and trajectory cons-
traints. The complexity of transportation planning is due to the large
number of possible combinations of routes. This problem is similar to the
traveling salesman problem, where several sites must to be visited only
once in the most eficiente way.
In recent years there has been the use of concepts of Artificial Intelli-
gence, namely Evolutionary Computing and Swarm Intelligence in fin-
ding solutions for the trajectory planning. The Ant Colony Optimization,
a branch of Swarm Intelligence, presents itself as an interesting solution
to the problem of transport planning.
This thesis proposes an algorithm capable of solving effectively the
school transport planning problem. Therefore we have developed a
method, based on Ant Colony Optimization strategies, computationally
and structurally efficient.
Based on the paradigm of Ant Colony Optimization, an algorithm
adapted to the problem of transport planning was developed, built to al-
low the inclusion of new and more complex constraints. The result is an
algorithm capable of solving the problem proposed in this dissertation.
The results in the multiple graphs in which the algorithm was tested are
quite satisfactory.
5 / 119
6 / 119
Resumo
O planeamento dos transportes sempre se apresentou como um pro-
blema complexo, tendo em conta o número de locais e rotas possíveis,
condicionantes temporais e dos trajectos. A complexidade do planeamen-
to dos transportes deve-se ao elevado número de combinações possíveis
de trajectos sendo este problema semelhante ao problema do caixeiro via-
jante, ou seja, vários locais que devem ser visitados apenas uma vez da
forma mais eficiente.
Nos últimos anos tem-se verificado o uso de conceitos da Inteligência
Artificial, designadamente a Computação Evolutiva e Inteligência Colec-
tiva na procura de soluções para o planeamento de trajectórias. A Opti-
mização de Colónias de Formigas, um ramo da Inteligência Colectiva,
apresenta-se como uma solução interessante para o problema do plane-
amento de transportes.
Nesta dissertação é proposto um algoritmo capaz de solucionar efi-
cazmente o problema de planeamento de transportes escolares. Para tal
foi construído um método, baseado nas estratégias de Optimização por
Colónias de Formigas, computacionalmente e estruturalmente eficaz.
Baseado no paradigma da Optimização de Colónia de Formigas des-
envolveu-se um algoritmo adaptado ao problema do planeamento de
transportes, construído de modo a permitir a inclusão de novas e mais
complexas restrições. O resultado presente é já um algoritmo capaz de
solucionar o problema proposto nesta dissertação. Os resultados obtidos
são bastante satisfatórios nos mais diversos grafos em que o algoritmo foi
testado.
7 / 119
8 / 119
De!co esta obra à minha namorada e à minha família, que são a minha
9 / 119
10 / 119
Agradecimentos
‹‹Toda a acção humana, quer se torne positiva ou negativa, precisa depender de motivação.››
(Dalai Lama)
Rodrigo Henriques
11 / 119
12 / 119
Índice Geral
Índice Figuras 15
Índice Tabelas 17
Acrónimos 19
1. Introdução 21
2. Planeamento de Transportes
25
2.1. Problema do Planeamento de Veículos com Janelas de Tempo
.........................................32
2.2. Problema do Planeamento de Veículos com Entrega e Recolha
........................................33
2.3. Problema do Planeamento de Veículos com Capacidade
..................................................34
2.4. Problema do Planeamento de Transportes Escolares
........................................................34
2.5. Problema do Caixeiro Viajante
..........................................................................................35
2.5.1. Múltiplos Caixeiros Viajantes
...................................................................................36
2.5.2. Aplicações
.................................................................................................................37
3. Introdução à Optimização
39
3.1. Optimização Contínua e Optimização Discreta
................................................................41
3.2. Optimização Restrita e Não Restrita
.................................................................................42
3.3. Optimização Estocástica e Determinística
.........................................................................43
3.4. Algoritmos de Optimização
................................................................................................43
3.5. Pesquisa Local
.....................................................................................................................44
5. Caso de Estudo
71
5.1. Caracterização do Problema
..............................................................................................72
5.1.1. Restrições do problema
.............................................................................................73
5.2. Abordagem com Algoritmos Genéticos
.............................................................................74
5.2.1. Representação dos dados
..........................................................................................74
5.2.2. População inicial
.......................................................................................................76
5.2.3. Determinar aptidão dos indivíduos
..........................................................................77
5.2.4. Operadores genéticos
................................................................................................77
5.3. Abordagem com Optimização de Colónia de Formigas
....................................................78
13 / 119
5.3.1. Representação dos dados
..........................................................................................78
5.3.2. Posicionamento inicial das formigas
.........................................................................80
5.3.3. Calcular o percurso das formigas
.............................................................................80
5.3.4. Actualizar as feromonas
............................................................................................82
5.3.5. Determinar o custo dos percursos
............................................................................84
5.3.6. Determinar a solução ideal
.......................................................................................85
5.4. Resultados
..........................................................................................................................86
5.4.1. Exemplo 1 - Grafo 5/9
.............................................................................................86
5.4.2. Exemplo 2 - Grafo 10/16
.........................................................................................91
5.4.3. Exemplo 3 - Grafo 20/26
.........................................................................................97
5.4.4. Exemplo 4 - Grafo 36/55
.......................................................................................103
Apêndices
113
A - Distribuição dos locais de recolha/entrega, obtido através do Google Earth
................................115
B - Ligações entre os locais do exemplo 3 e respectivos tempos de ligação
..........................................117
C - Ligações entre os locais do exemplo 4 e respectivos tempos de ligação
.........................................119
14 / 119
Índice Figuras
-------------------------------------------------------------------------------------------------------------------------------
Figura 1 - Representação gráfica de vários tipos de cruzamentos.....................................................56
Figura 2 - Representação gráfica de vários tipos de mutações..........................................................57
Figura 3 - Elementos fundamentais no calculo do deslocamento de uma partícula.........................60
Figura 4 - Comportamento natural das formigas perante um obstáculo..........................................63
Figura 5 - Algoritmo genérico baseado em formigas.........................................................................64
Figura 6 - Representação gráfica da lista ligada vei...........................................................................74
Figura 7 - Representação gráfica da lista ligada loc...........................................................................75
Figura 8 - Representação gráfica da lista ligada pop..........................................................................75
Figura 9 - Melhor rota encontrada pelo algoritmo para o exemplo 1.a............................................88
Figura 10 - Desempenho e custo do exemplo 1.a no decorrer das iterações.....................................89
Figura 11 - Melhor rota encontrada pelo algoritmo para o exemplo 1.b..........................................90
Figura 12 - Desempenho e custo do exemplo 1.b no decorrer das iterações....................................91
Figura 13 - Melhor rota encontrada pelo algoritmo para o exemplo 2.a..........................................94
Figura 14 - Desempenho e custo do exemplo 2.a no decorrer das iterações.....................................95
Figura 15 - Melhor rota encontrada pelo algoritmo para o exemplo 2.b..........................................96
Figura 16 - Desempenho e custo do exemplo 2.b no decorrer das iterações....................................97
Figura 17 - Melhor rota encontrada pelo algoritmo para o exemplo 3.a..........................................99
Figura 18 - Desempenho e custo do exemplo 3.a no decorrer das iterações...................................100
Figura 19 - Melhor rota encontrada pelo algoritmo para o exemplo 3.b........................................102
Figura 20 - Desempenho e custo do exemplo 3.b no decorrer das iterações..................................102
Figura 21 - Melhor rota encontrada pelo algoritmo para o exemplo 4...........................................104
Figura 22 - Desempenho e custo do exemplo 4 no decorrer das iterações.....................................104
-------------------------------------------------------------------------------------------------------------------------------
15 / 119
16 / 119
Índice Tabelas
-------------------------------------------------------------------------------------------------------------------------------
Tabela 1 - Intervalos de tempo e respectivos nós associados.............................................................86
Tabela 2 - Tempos de ligação entre nós............................................................................................86
Tabela 3 - Parâmetros do exemplo 1.a..............................................................................................87
Tabela 4 - Melhor percurso encontrado pelo algoritmo e elementos recolhidos..............................87
Tabela 5 - Custo, folga e tempo de viagem do exemplo 1.a..............................................................88
Tabela 6 - Parâmetros do exemplo 1.b..............................................................................................89
Tabela 7 - Melhor percurso encontrado pelo algoritmo e elementos recolhidos..............................90
Tabela 8 - Custo, folga e tempo de viagem do exemplo 1.b..............................................................91
Tabela 9 - Intervalos de tempo e respectivos nós associados.............................................................92
Tabela 10 - Tempos de ligação entre nós..........................................................................................92
Tabela 11 - Parâmetros do exemplo 2.a............................................................................................93
Tabela 12 - Melhor percurso encontrado pelo algoritmo e elementos recolhidos............................93
Tabela 13 - Custo, folga e tempo de viagem do exemplo 2.a............................................................94
Tabela 14 - Parâmetros do exemplo 2.b............................................................................................95
Tabela 15 - Melhor percurso encontrado pelo algoritmo e elementos recolhidos............................96
Tabela 16 - Custo, folga e tempo de viagem do exemplo 2.b............................................................97
Tabela 17 - Intervalos de tempo e respectivos nós associados...........................................................98
Tabela 18 - Parâmetros do exemplo 3.a............................................................................................99
Tabela 19 - Melhor percurso encontrado pelo algoritmo e elementos recolhidos............................99
Tabela 20 - Custo, folga e tempo de viagem do exemplo 3.a..........................................................100
Tabela 21 - Parâmetros do exemplo 3.b..........................................................................................101
Tabela 22 - Melhor percurso encontrado pelo algoritmo e elementos recolhidos..........................101
Tabela 23 - Custo, folga e tempo de viagem do exemplo 3.b..........................................................101
Tabela 24 - Parâmetros do exemplo 4.............................................................................................103
Tabela 25 - Custo, folga e tempo de viagem do exemplo 4.............................................................103
-------------------------------------------------------------------------------------------------------------------------------
17 / 119
18 / 119
Acrónimos
IA - Inteligência Artificial
CE - Computação Evolutiva
IC - Inteligência Colectiva
AG - Algoritmos Genéticos
19 / 119
20 / 119
I
‹‹Reparta o seu conhecimento. É uma forma de alcançar
a imortalidade.››
Dalai Lama
1.INTRODUÇÃO
Nos últimos anos foi possível assistir a um interesse crescente entre os gestores e os profissi-
onais dos transportes em explorar a viabilidade da aplicação de paradigmas de Inteligência
Artificial (IA) para melhorar a eficiência, segurança e qualidade de serviço em sistemas de
transporte. O valor acrescentado e o impacto da ciência, metodologias e técnicas da IA
nesta área é inegável [1].
1 disciplina científica relacionada com o entendimento das interacções entre seres humanos e outros elementos de
um sistema.
21 / 119
lizados para se certificar de que as máquinas (por exemplo, automóveis) são projectadas
para corresponder a características humanas. De forma semelhante, quando planeamos as
cidades e os serviços prestados aos seus habitantes, é um elemento chave compreender o
comportamento humano e o que move a maioria das decisões no planeamento. Uma vez
que os sistemas de transporte são a espinha dorsal de uma cidade, interconectando as suas
partes vitais, a compreensão aprofundada da natureza humana é essencial para o planea-
mento, projecto e análise operacional de sistemas de transporte [2].
Muitas aplicações dão origem a problemas de optimização irrestritos com múltiplas variá-
veis. Problemas deste tamanho podem ser resolvidos de forma eficiente somente se o arma-
zenamento e custo computacional do algoritmo de optimização forem mantidos a um nível
tolerável. Um conjunto diversificado de métodos de optimização em larga escala foi desen-
volvido para atingir esse objectivo, cada um sendo particularmente eficaz para tipos de de-
terminados problema [3].
22 / 119
Nas últimas décadas temos assistido a uma crescente utilização de pacotes de optimização,
baseados em operações de pesquisa e técnicas de programação, para a gestão efectiva do
fornecimento de bens e serviços em sistemas de distribuição [4].
O quarto capítulo apresenta a IA e dois dos seus ramos: a CE e a IC. São apresentados
também alguns dos algoritmos da CE e da IC, realçando os AG e a OCF. Os AG foram
inicialmente sugerido para solucionar o problema, enquanto a OCF é a base da solução
apresentada.
O sexto capítulo termina esta dissertação, contendo a discussão dos resultados e sugestões
para trabalhos futuros.
24 / 119
2
‹‹Parte da ausência de humanidade do computador deve-
se a que, competentemente programado e trabalhando
bem, é completamente honesto››
Isaac Asimov
2.PLANEAMENTO DE TRANSPORTES
Nas últimas décadas tem-se assistido a uma crescente utilização de pacotes de optimização,
baseados em Operações de Pesquisa e técnicas de Programação para a gestão efectiva do
fornecimento de bens e serviços em sistemas de distribuição. O grande número de aplica-
ções do mundo real, tanto na América do Norte como na Europa, têm demonstrado que a
utilização de procedimentos informatizados para o planeamento do processo de distribui-
ção resulta em economias substanciais (geralmente de 5% a 20%) nos custos de transporte
global. É fácil ver que o impacto destas economias no sistema económico mundial é signifi-
cativa. Na verdade, o processo de transporte envolve todas as fases da produção e sistemas
de distribuição e representa um componente importante (geralmente de 10% para 20%) do
custo final das mercadorias [4].
O PPV remonta ao final dos anos cinquenta do século passado quando Dantzig e Ramser
definiram a formulação matemática de programação e a abordagem algorítmica para re-
solver o problema de fornecimento de gasolina às estações de serviço. Desde então o inte-
resse no PPV evoluiu de um pequeno grupo de matemáticos para o grande número de
pesquisadores e profissionais de diferentes disciplinas [6]. Passaram mais de 40 anos desde
que Dantzig e Ramser [7] introduziram o PPV. No seu estudo, os autores descrevem a apli-
cação do mundo real (referente à entrega de gasolina para postos de gasolina) e propuse-
ram a primeira formulação matemática de programação e uma abordagem algorítmica
para a solução do problema. Alguns anos mais tarde, Clarke e Wright [8] propuseram uma
heurística eficaz que melhorou a abordagem de Dantzig e Ramser. Após estes dois traba-
lhos seminais 2, muitos modelos e algoritmos heurísticos e exactos foram propostos para a
solução óptima e aproximada das diferentes versões do PPV [4].
Existem vários trabalhos sobre o tema do PPV. Um sistema de classificação foi dado por
Desrochers, Lenstra, e Savelsbergh [9]. Nobert e Laporte [10] apresentaram uma extensa
pesquisa, que foi inteiramente dedicada aos métodos exactos para o PPV, fornecendo uma
análise completa e detalhada do estado da arte até o final dos anos 80. Outras pesquisas
abrangendo algoritmos exactos, mas frequentemente dedicadas aos métodos heurísticos,
foram apresentadas por Christofides, Mingozzi, e Toth [11], Magnanti [12], Bodin et al.
[13], Christofides [14], Laporte [15], Fisher [16], Toth e Vigo [17], e Golden et al. [18].
Uma lista bibliográfica foi proposta por Laporte [19], e um extenso levantamento biblio-
gráfico foi apresentado por Laporte e Osman [20]. Um livro sobre o assunto foi editado
por Golden e Assad em 1988 [21]. Modelos e algoritmos para a solução do chamado Pro-
blema do Planeamento de Arcos (variante do problema que surge quando os clientes não
estão localizados nos vértices, mas ao longo dos arcos do grafo) estão descritos no livro edi-
O PPV contribui directamente para reduzir custos na importante área da logística. Logísti-
ca pode ser grosseiramente descrito como a entrega de mercadorias de um lado (fornece-
dor) para outro (os consumidores). Transporte de gestão e mais especificamente de plane-
amento de veículos, tem um considerável impacto económico em todos os sistemas de lo-
gística [6].
A definição do PPV estabelece que m veículos inicialmente localizado num depósito forne-
cem quantidades distintas de produtos para n clientes. Determinar a melhor rota utilizada
por um grupo de veículos que serve um grupo de utilizadores representa um PPV. O objec-
tivo é minimizar o custo do transporte em geral. A solução clássica do PPV é um conjunto
de rotas que começa e termina no depósito e que satisfaça a restrição de que todos os clien-
tes são servidos apenas uma vez (semelhante ao PCV). O custo do transporte pode ser me-
lhorado através da redução da distância total percorrida e reduzindo o número de veículos
necessários [6].
Devido à natureza do problema, não é viável a utilização de métodos exactos para grandes
instâncias do PPV. Portanto, a maioria das abordagens dependem de heurísticas que forne-
cem soluções aproximadas. Alguns métodos específicos foram desenvolvidos para este pro-
blema. Outra opção é aplicar técnicas de optimização padrão, tais como a programação
por restrições, AG e os sistemas de formigas [6].
A maioria dos problemas do mundo real são geralmente muito mais complexos do que o
PPV clássico. Portanto, na prática, o PPV clássico é mais complexo devido às restrições,
tais como a capacidade do veículo ou intervalo de tempo em que cada cliente tem para ser
27 / 119
servido, revelando o Problema de Planeamento de Veículos com Capacidade (PPVC) e o
Problema de Planeamento de Veículos com Janelas de Tempo (PPVJT), respectivamente.
Nos últimos cinquenta anos, muitos problemas do mundo real tem exigido acrescida for-
mulação, o que resultou no Problema de Planeamento de Veículos com Múltiplos Depósi-
tos, Problema de Planeamento de Veículos Periódico, o Problema de Planeamento de Veí-
culos com Entrega Dividida (PPVED), Problema de Planeamento de Veículos Estocástico3,
Problema de Planeamento de Veículos com Recolha e Entrega (PPVRE) e muitos outros
[6].
O PPV apenas pode ser resolvido para instâncias pequenas do problema, sendo um pro-
blema de optimização combinatorial NP-hard4. Embora a abordagem heurística5 não ga-
ranta a optimalidade, na prática produz resultados satisfatórios. Nos últimos vinte anos, a
meta-heurística emergiu como a mais promissora direcção de investigação para a família
PPV [6].
O PPVED é uma variação do clássico PPV, onde cada cliente pode ser servido por mais de
um veículo. Assim, para o PPVED, além das rotas de entrega, o montante a ser entregue a
cada cliente em cada veículo também deve ser determinado. A opção de dividir o pedido
torna possível fornecer o serviço a um cliente cujo pedido excede a capacidade do veículo.
Dividir também pode permitir reduzir os custos. O Problema de Planeamento de Veículos
com Entrega Dividida e Janelas de Tempo é uma extensão do PPVED, acrescentando-lhe
os apoios das janelas de tempo [6].
Segundo Solomon e Desrosiers [26], o PPVJT também é NP-hard, porque é uma extensão
do PPV. Apesar do PPVJT ser uma simplificação do PPV, ainda é NP-hard [22] [27].
4 problemas que não podem ser resolvidos de forma optimizada num tempo de computação limitado polinomial-
mente
5 hipótese que, numa pesquisa, levam a uma descoberta científica; método analítico para a descoberta de verdades
científicas.
28 / 119
Para aplicações do mundo real que resolvem PPV é essencial efectuar uma rápida selecção
de métodos (heurísticas construtivas, operadores de vizinhança e mecanismos de fuga), que
produzam a desejada melhoria da função objectivo. As aplicações comerciais do PPV con-
vergem principalmente para procedimentos auto-adaptativos com a necessária robustez
para resolver o problema com a mínima intervenção humana no ajuste dos algoritmos. Por
outro lado soluções feitas à medida precisam de ferramentas de prototipagem fáceis de
usar, com as medidas de desempenho bem definidas para estimar o número ideal de re-iní-
cios e iterações dos algoritmos implementados [6].
As aplicações típicas do PPV tipo são, por exemplo, recolha de resíduos sólidos, limpeza de
ruas, planeamento de transportes escolares, o transporte de pessoas com deficiência, o pla-
neamento de vendedores e planeamento de unidades de manutenção [4].
A distribuição dos produtos diz respeito ao serviço, num determinado período de tempo,
de um conjunto de clientes através de um conjunto de veículos, que estão localizados num
ou mais depósitos, são operados por um conjunto de tripulações (motoristas) e movem-se
usando uma rede rodoviária adequada. Em particular, a solução do PPV requer a determi-
nação de um conjunto de rotas, cada uma realizada por um único veículo, que começa e
termina no seu próprio depósito, de modo que todos os requisitos dos clientes sejam satis-
feitos, todas as restrições operacionais sejam satisfeitas e os custos de transporte global seja
minimizado [4].
- subconjunto dos veículos disponíveis que podem ser usados para servir o cliente
(por exemplo, devido às limitações de acesso possível ou requisitos de carga e des-
carga).
Às vezes, não é possível satisfazer plenamente o pedido de cada cliente. Nestes casos as
quantidades a serem entregues ou recolhidas podem ser reduzidas ou um subconjunto dos
clientes pode ser deixado sem atendimento. Para lidar com essas situações, diferentes prio-
ridades ou penalizações associadas à falta parcial ou total do serviço podem ser atribuídas
aos clientes [4].
- custos associados com a utilização do veículo (por unidade de distância, por unida-
de de tempo, por rota, etc.)
As rotas devem satisfazer diversas restrições operacionais, que dependem da natureza das
mercadorias transportadas, da qualidade do nível de serviço, das características dos clientes
e dos veículos. Alguns constrangimentos típicos operacionais são [4]:
- ao longo de cada percurso, a actual carga do veículo associado não pode exceder a
capacidade do veículo, os clientes servidos numa rota podem exigir apenas a entre-
ga ou a recolha de bens, ou ambas as possibilidades podem existir,
- os clientes apenas podem ser servidos na respectiva janela de tempo e nos períodos
de trabalho dos condutores associados aos veículos.
Restrições de precedência podem ser impostas sobre a ordem em que os clientes servidos
por uma rota são visitados. Um tipo de restrição de precedência exige que um determinado
cliente seja servido na mesma rota que é servido um determinado subconjunto de outros
clientes e que o cliente deve ser visitado antes (ou depois) dos clientes pertencentes ao sub-
conjunto associado. Este é o caso, por exemplo, dos chamados problemas de entrega e/ou
recolha, onde os percursos podem realizar a recolha e entrega de mercadorias, e os produ-
tos recolhidos dos clientes de recolha devem ser entregues aos clientes de entrega pelo
mesmo veículo. Outro tipo de restrição de precedência impõe que se os clientes de diferen-
tes tipos são servidos na mesma rota sendo a ordem na qual os clientes são visitados fixa
[4].
A avaliação do custo global das rotas e a verificação das restrições operacionais impostas
sobre elas, requer o conhecimento do custo e do tempo de viagem entre cada par de clien-
tes e entre os depósitos e os clientes. Para este fim, o grafo original (que muitas vezes é mui-
to disperso) é geralmente transformado num grafo completo, cujos vértices são os vértices
do grafo correspondente aos clientes e depósitos. Para cada par de vértices i e j do grafo
completo é definido um arco (i, j) cujo custo cij é determinado pelo custo do caminho mais
curto a partir do vértice i e a chegar ao vértice j do grafo. O tempo de viagem tij, associado
a cada arco (i, j) do grafo completo, é calculado como a soma dos tempos de viagem dos
arcos que pertencem ao caminho mais curto de i para j no grafo. Em vez do grafo original,
31 / 119
é considerado o grafo associado completo, que pode ser direccionado ou não direccionado,
dependendo da propriedade do correspondente custo e o tempo de viagem, matrizes assi-
métricas ou simétricas, respectivamente [4].
Vários objectivos, muitas vezes contrastantes, podem ser considerados para o PPV. Objecti-
vos típicos são [4]:
- balanceamento das rotas, quer em termos de tempo de viagem quer em carga dos
veículos;
Um PPV geral pode ser formalmente definido como se segue: dado um número fixo N ou
um número infinito de veículos com capacidade limitada cv (medida em peso ou volume) e
M' pedidos dos clientes, em que cada pedido rqj exige um serviço de entrega para Qj quan-
tidade de produtos/serviços, para diferentes locais. A distância, geralmente medida em mi-
nutos ou horas necessária para a viagem, entre dois possíveis pontos de entrega também é
fornecida, geralmente como uma matriz de distância. Então, nossa tarefa é aperfeiçoar de-
terminados critérios definidos pelo utilizador sujeito às seguintes restrições básicas [6]:
- qualquer pedido rqj do cliente só deve ser servido por um único veículo;
32 / 119
- para cada veículo v, a soma Qv da quantidade de mercadorias a ser entregues pelo
veículo v deve ser menor ou igual a cv.
Além das restrições base acima apresentadas, em muitas aplicações da vida real, como a
entrega de supermercado, cada cliente pode solicitar que os itens sejam entregues num de-
terminado período (janela de tempo). Assim, um PPVJT tem uma restrição adicional, a
janela de tempo a ser aplicada para cada entrega [6]:
- quando uma janela de tempo com o tempo inicial Ej e o tempo final Lj, é especifi-
cada para cada entrega num PPVJT, o tempo de chegada Tvj do veículo v para ser-
vir o pedido rqj do cliente deve encontrar-se dentro do tempo especificado, que é Ej
≤ Tvj ≤ Lj.
Um dos objectivos mais comuns para a minimização de PPVJT é TV*TD, onde TV é o
número de veículos usados, e TD é a distância total percorrida por todos os veículos. Exis-
tem muitas variantes do PPVJT, com objectivos diferentes, como o tempo total de viagem
de todos os veículos ou o tempo total de espera de todos os clientes [6].
Uma vez que o espaço de busca para todas as possíveis rotas (viáveis ou ligeiramente inviá-
veis) no PPVJT pode ser bastante grande, mesmo para casos envolvendo 100 clientes [28]
ou mais [29] e as restrições das janelas de tempo no PPVJT podem ser difíceis de satisfazer.
Acresce ainda o facto da escolha adequada de uma heurística que retorne somente soluções
viáveis pode ser importante para a optimização [6].
Para resolver os PPVJT tem sido propostos uma grande variedade de algoritmos. Métodos
antigos são descritos nos inquéritos [30] e [15]. Os métodos em que se aplicou a aborda-
gem de duas fases para solucionar o PPVJT são os mais bem sucedidos [31]. Durante a
primeira fase o algoritmo heurístico construtivo é usado para gerar uma solução viável ini-
cial. Na segunda fase, uma heurística de melhoramento iterativo é aplicada à solução inici-
al. O “mecanismo de fuga” para escapar do óptimo local é frequentemente implementado
na segunda fase[6].
Na versão básica do PPVRE, cada cliente i está associado a duas quantidades di e pi, repre-
sentando a procura por produtos homogéneos para serem entregues e/ou recolhidos no
33 / 119
cliente i, respectivamente. Às vezes, apenas uma quantidade Di=di-pi é usada para cada cli-
ente i, indicando a diferença líquida entre o fornecimento e a procura (sendo assim possível
valores negativos). Para cada cliente i, Oi indica o vértice que está na origem do pedido de
entrega e Di representa o vértice, que é o destino do pedido de recolha [4].
Supõe-se que, em cada local do cliente a entrega é feita antes da recolha, onde a carga de
um veículo antes de chegar num determinado local é definida pela carga inicial menos to-
dos os pedidos já entregues mais todos os pedidos recolhidos [4].
- a carga do veículo ao longo do circuito deve ser sempre positiva e nunca pode exce-
der a capacidade C do veículo;
- para cada cliente i, o cliente Oi, quando diferente do depósito, deve ser servido no
mesmo circuito, e antes do cliente i,
- para cada cliente i, o cliente Di, quando diferente do depósito, deve ser servido no
mesmo circuito e depois do cliente i.
Na versão básica do PPVC apenas são consideradas as restrições de capacidade dos veícu-
los e o objectivo é minimizar o custo total (ou comprimento) das rotas. O Problema do Pla-
neamento de Veículos com Capacidade e Janelas de Tempo, que é uma generalização do
PPVC, é uma das variantes mais estudadas do PPV. No Problema do Planeamento de Veí-
culos com Capacidade e Janelas de Tempo, os veículos devem respeitar restrições de janelas
de tempo associadas a cada cliente, além das restrições da capacidade [6].
Planeamento de Transportes Escolares é uma aplicação primária do PPV, sendo seu objec-
tivo determinar como transportar os alunos para a escola de uma forma optimizada [32]
[33]. As crianças são atribuídas a paragens de autocarro e uma sequência de paragens in-
34 / 119
dividuais formará uma rota de autocarro. Pela manhã, os autocarros recolhem os alunos
das paragens de autocarro e transportam-nos para a escola, com o processo revertido no
final da tarde[32] [34]. Cada Problema de Planeamento de Transportes Escolares tem ob-
jectivos diferentes e/ou restrições:
- capacidade de autocarro,
No contexto da optimização de trajectórias o PCV tem merecido toda a atenção por inves-
tigadores por constituir um problema raiz na área dos problemas de transporte. Algoritmos
adaptados das soluções encontradas para o problema do PCV tem servido para solucionar
outros tipos de problemas de transportes.
O PCV consiste em encontrar uma rota através de um número de locais definidos, visitan-
do cada local apenas uma vez e retornando ao local de partida, da forma mais eficiente, ou
seja, em menor tempo e com a rota mais pequena. Existem muitos estudos sobre soluções
eficazes para o PCV. No entanto, encontrar a melhor solução de uma tarefa NP-hard requer
enormes recursos e quantidade de tempo de computação [36].
Ao longo dos anos o PCV e suas variantes foram alvo de estudo ao longo do tempo. Bektas
[37] destaca as seguintes possíveis variações do PCV :
35 / 119
- depósito único contra depósitos múltiplos: no caso do depósito único, todos os cai-
xeiros viajantes iniciam e terminam as suas rotas num único ponto. Por outro lado,
se existem vários depósitos com um número de caixeiros viajantes situados em cada
um, os caixeiros viajantes podem regressar ao seu depósito original depois de con-
cluir a sua tarefa ou retornar para qualquer depósito com a restrição de que o nú-
mero inicial de caixeiros viajantes em cada depósito continue o mesmo após as via-
gens. O primeiro é conhecido como o caso destino fixo enquanto o segundo é no-
meado como o caso destino não fixo.
- custos fixos: quando o número de caixeiros viajantes do problema não é fixo, cada
vendedor tem geralmente um custo fixo associado, usado sempre que este caixeiro
viajante é utilizado na solução. Neste caso, a minimização do número de caixeiros
viajantes usados na solução também pode ser motivo de preocupação.
- janelas de tempo: nesta variação, determinados nós precisam ser visitados em perí-
odos específicos, nomeados como janelas de tempo ou intervalos de tempo. Esta é
uma extensão importante do Problema dos Múltiplos Caixeiros Viajantes (PMCV)
e referida como o Problema dos Múltiplos Caixeiros Viajantes com Janelas de
Tempo. O Problema dos Múltiplos Caixeiros Viajantes com Janelas de Tempo tem
aplicações imediatas em problemas de planeamento de trajectos de autocarros esco-
lares, navios e aviões.
- outras restrições especiais: estas restrições podem consistir de limites sobre o núme-
ro de visitas a cada nó por cada caixeiro viajante, o valor máximo ou mínimo de
distância percorrida pelo caixeiro viajante ou outras restrições especiais.
36 / 119
Este facto deve-se à existência de múltiplos veículos para solucionar o grafo aumentando o
número de combinações possíveis.
O PMCV pode ser especificado da seguinte forma: existem m vendedores que devem visi-
tar um conjunto de n cidades, com cada vendedor a iniciar e terminar no mesmo local.
Neste problema, cada cidade deve ser visitada exactamente uma vez por um único vende-
dor [38] e o custo total de todas as rotas deve ser minimizado. O custo pode ser definido
em termos da distância, do tempo, e outros [39].
Extensas bibliografias e pesquisas podem ser encontradas nos livros escritos por Toth e Vi-
go [40] e por Ball, Magnanti, Monma e Nemhauser [41]. Aristidis Likas, Nikos Vlassis,
Jakob J. Verbeek abordaram a divisão das cidades em clusters e a atribuição de cada agru-
pamento a cada vendedor, sugerindo o agrupamento dos pontos de dados usando k-means.
O k-means é um algoritmo para classificar ou agrupar os objectos com base em atributos/
características em k grupos. O k é um número inteiro positivo. O agrupamento é feito atra-
vés da minimização da soma dos quadrados das distâncias entre os dados e o cluster central
correspondente [42]. Vários conceitos de análise de clusters têm sido discutidos em [43].
A. Rizzoli et. al. centraram-se sobre a aplicação da OCF ao PPV e sua aplicação no mun-
do real [44]. Arthur E. Carter e Cliff T. Ragsdale desenvolveram uma nova abordagem
para resolver o PMCV. O método propõe um novo conjunto de cromossomas e operadores
comparando as propriedades teóricas e o desempenho computacional da técnica proposta
[45].
2.5.2. Aplicações
As aplicações do PCV e suas variantes vão muito além do problema de planeamento de
rotas de um caixeiro viajante e estende-se por diversas áreas de conhecimento, incluindo
matemática, ciência da computação, pesquisa operacional, genética, engenharia e electró-
nica [46]. De acordo com Gutin [46] o PCV pode ser utilizado para solucionar, entre ou-
tros, problemas das áreas de planeamento de máquinas, atribuição de frequências, estrutu-
ração de matrizes, redes de telecomunicações e inteligência artificial.
37 / 119
38 / 119
3
‹‹ O conhecimento nos faz responsáveis.››
3.INTRODUÇÃO À OPTIMIZAÇÃO
Com base neste entendimento um algoritmo de optimização pode ser definido como um
conjunto de instruções claras especificando como proceder, a partir de certas condições ini-
ciais, até que alcancemos a meta final imposta inicialmente. Um ponto importante a acres-
centar é que na maioria das vezes o algoritmo não consegue atingir exactamente o objecti-
39 / 119
vo pré-determinado, em vez disso chega a uma aproximação do objectivo. Em aplicações
científicas e de engenharia, há sempre um grau de tolerância e de erros, permitindo-nos
aceitar como certas soluções quasi-óptimas. Isto significa que o objectivo da optimização per-
feita é sempre ideal, porquanto os modelos matemáticos não traduzem na plenitude a na-
tureza das coisas [5].
Em muitas aplicações, não precisamos optimizar uma função objectivo de forma explícita
mas antes encontrar os valores das variáveis de um modelo que satisfaça uma série de res-
trições dadas, expressas através de relações matemáticas. Quando essas relações tomam a
forma de n igualdades não-correlacionadas para igual número de variáveis do problema-
modelo uma solução existe, sendo esta única [3].
Recentemente muitos investigadores têm focado a sua atenção numa nova classe de algo-
ritmos, chamados de meta-heurísticas. Uma meta-heurística é um conjunto de conceitos de
algoritmos que podem ser usados para definir os métodos heurísticos aplicáveis a um vasto
conjunto de problemas diferentes. Em outras palavras, uma meta-heurística pode ser vista
40 / 119
como um método heurístico de uso geral destinado a orientar um problema subjacente
específico para regiões promissoras do espaço de busca contendo soluções de alta qualida-
de. A meta-heurística pode ser aplicada a diferentes problemas de optimização com poucas
modificações para torná-los adaptados a um problema específico. O uso de meta-heurísti-
cas tem aumentado significativamente a capacidade de encontrar soluções de qualidade
elevada em problemas de optimização combinatória, teoricamente difíceis de obter num
tempo razoável [47].
Meta-heurísticas ou métodos gerais de pesquisa local tem merecido uma crescente atenção
pela comunidade científica: as conferências mais importantes de pesquisa operacional têm
uma ou várias sessões inteiramente dedicadas a meta-heurísticas e também existem diversas
revistas científicas inteiramente dedicadas a elas. Na literatura de pesquisa operacional
muitos modelos matemáticos elegantes e métodos de solução têm sido desenvolvidos para
lidar com os problemas do mundo real. Apesar de algumas abordagens específicas de su-
cesso como algoritmos limitados e programas dinâmicos, propostas para resolver os pro-
blemas da optimilidade em problemas combinatórios de alta dimensionalidade apresentam
grande dificuldade na obtenção de soluções óptimas no espaço de solução. A alternativa
está na pesquisa de soluções aproximadas, em tempo e com recursos viáveis [47].
41 / 119
nárias, então, os problemas, são às vezes chamados de problemas de programação inteira
mista [3].
Problemas com a forma geral podem ser classificados segundo a natureza da função objec-
tivo e restrições (linear, não linear), o número de variáveis (grande ou pequeno), o tipo de
funções (diferenciáveis ou não diferenciáveis) e assim por diante. Uma distinção importante
é entre os problemas que têm restrições sobre as variáveis e os que não têm. Problemas de
optimização irrestrita surgem directamente em muitas aplicações práticas. Mesmo para
alguns problemas com os condicionalismos naturais sobre as variáveis, pode ser seguro ig-
norá-las pois elas não afectam a solução e não interferem com os algoritmos. Problemas
sem restrições surgem também como reformulações de problemas de optimização restrita,
em que as restrições são substituídas por termos de penalização adicionados à função ob-
jectivo que têm o efeito de desencorajar violações de restrição [3].
Ao invés de usar apenas uma "melhor estimativa" para as quantidades incertas, é possível
obter mais soluções úteis, incorporando novos conhecimentos sobre essas quantidades no
modelo. Por exemplo, eles podem conhecer uma série de cenários possíveis para a procura
incerta, juntamente com as estimativas das probabilidades de cada cenário. Algoritmos de
optimização estocástica utilizam essas quantificações de incerteza para produzir soluções
que optimizam o desempenho esperado do modelo [3].
Os algoritmos de optimização são processo iterativos. Eles começam com um valor inicial
da variável x e geram uma sequência de estimativas melhoradas, até terminar, possivelmen-
te com uma solução. A estratégia utilizada para passar de uma iteração para a próxima dis-
tingue um algoritmo do outro. A maioria das estratégias faz uso dos valores da função ob-
jectivo f, as funções de restrição de ci, e possivelmente a primeira e segunda derivadas des-
sas funções. Alguns algoritmos acumulam informação recolhida em iterações anteriores,
enquanto outros utilizam apenas as informações obtidas no ponto actual. Independente-
mente das especificidades, bons algoritmos devem possuir as seguintes propriedades [3]:
43 / 119
- robustez - devem executar bem numa variedade de problemas da sua classe, para
todos os valores razoáveis do ponto de partida.
- precisão - devem ser capazes de identificar uma solução com precisão, sem ser ex-
cessivamente sensíveis a erros nos dados ou a erros de aritmética de arredondamen-
to que ocorrem quando o algoritmo é executado num computador.
Esses objectivos podem entrar em conflito. Por exemplo, um método de rápida convergên-
cia para um problema não-linear irrestrito pode exigir muito armazenamento do compu-
tador. Por outro lado, um método robusto também pode ser mais lento. Trocas entre a taxa
de convergência e os requisitos de armazenamento e entre robustez e velocidade, e assim
por diante, são os temas centrais em optimização numérica [3].
A teoria matemática da optimização é usada tanto para caracterizar os pontos ideais como
para fornecer a base para a maioria dos algoritmos. Não é possível ter uma boa compreen-
são de optimização numérica sem uma firme compreensão da teoria de apoio [3].
A ideia básica subjacente de pesquisa local é começar com uma solução candidata de uma
instância de determinado problema, gerada aleatoriamente ou heuristicamente, que pode
ser inviável, sub-óptima ou incompleta e melhorar esta solução iterativamente por meio de
modificações normalmente menores. Os diferentes métodos de pesquisa local variam na
maneira em como as melhorias são alcançadas e, em particular, na forma como as situa-
ções, em que nenhuma melhoria directa é possível, são manipuladas [49].
44 / 119
A maioria dos métodos de pesquisa local usa a aleatoriedade para garantir que o processo
de pesquisa não estagna com soluções candidato insatisfatórias e, portanto, são referidos
como métodos de pesquisa local estocástica. Proeminentes exemplos de métodos de pesqui-
sa local estocástica são: aperfeiçoamentos aleatórios iterativos, Algoritmos Evolutivos, Pes-
quisa Dinâmica Local e, mais recentemente, a OCF. Essas classes de algoritmos de pesquisa
local são também conhecidas como meta-heurísticas [49].
Muitos métodos de pesquisa local estocástica são conceitualmente bastante simples e relati-
vamente fáceis de implementar em comparação com muitas outras técnicas. Ao mesmo
tempo eles apresentam muitas vezes excelente performance. Além disso, os Algoritmos de
Pesquisa Local Estocástica são, muitas vezes, bastante flexíveis na medida em que podem
ser facilmente adaptados às mudanças na especificação de um problema. Isso faz deles uma
escolha muito popular para resolver problemas de aplicações conceitualmente complexas
que às vezes não são totalmente formalizados no início de um projecto. Consequentemen-
te, algoritmos de pesquisa local estocástica estão entre as mais proeminentes e amplamente
utilizadas técnicas de resolução de problemas combinatório na academia e na indústria
[49].
Dado um problema combinatório, a ideia chave por trás de pesquisa local é muito simples:
a partir de uma posição inicial de pesquisa, em cada etapa o processo de pesquisa desloca-se
para uma posição seleccionada a partir da vizinhança (tipicamente baseados numa função
de avaliação heurística). Este processo é iterado até atingir um critério de paragem. Para
evitar a estagnação do processo de pesquisa, quase todos os algoritmos de pesquisa local
utilizam alguma forma de aleatoriedade, normalmente na geração de posições iniciais e em
muitos casos, também nas etapas de pesquisa [49].
45 / 119
46 / 119
4
‹‹A natureza é o único livro que oferece um conteúdo
valioso em todas as suas folhas.››
Goethe
A IA pode ser definida como o ramo da ciência da computação que se preocupa com a au-
tomação de comportamento inteligente [50]. A IA é o campo que estuda a síntese e análise
de agentes computacionais que agem de forma inteligente [51]. Um agente é algo que fun-
ciona num ambiente - que faz alguma coisa. Agentes incluem cães, termóstatos, aviões, se-
res humanos, empresas e países. Interessa o que um agente faz, isto é, como ele age. Um
agente é julgado pelas suas acções. Um agente age inteligentemente quando o que faz é
apropriado para as circunstâncias e seus objectivos, é flexível em ambientes dinâmicos,
aprende com a experiência e faz escolhas adequadas, dadas as suas limitações perceptivas e
computacionais. Um agente não pode normalmente observar o estado do mundo directa-
mente, tem uma memória finita e não tem tempo ilimitado para agir [51].
47 / 119
Um agente computacional é um agente cujas decisões sobre suas acções podem ser expli-
cadas em termos de computação. Ou seja, a decisão pode ser dividida em funcionamento
primitivo que pode ser implementado num dispositivo físico. Este cálculo pode assumir
muitas formas. Nos seres humanos esse cálculo é realizado no cérebro, enquanto que nos
computadores é realizado em hardware [51].
Os algoritmos evolutivos tiveram origem na tentativa de imitar alguns dos processos que
ocorrem na evolução natural. Embora os detalhes da evolução biológica ainda não sejam
totalmente compreendidos, existem alguns pontos fortes apoiados por evidências experi-
mentais [53]:
O Princípio de Darwin "A sobrevivência do mais apto" pode ser usado como ponto de par-
tida na introdução da Computação Evolutiva (CE). O conceito de evolução pode ser apli-
cado a problemas onde as soluções heurísticas não estão presentes ou produzem resultados
insatisfatórios. Como resultado, os algoritmos evolutivos são de interesse recente, em parti-
cular para resolver problemas práticos [53].
A teoria da selecção natural propõe que as plantas e animais que existem hoje são o resul-
tado de milhões de anos de adaptação às exigências do ambiente. Em dado momento, um
número de organismos diferentes podem coexistir e competir pelos mesmos recursos num
ecossistema. Os organismos que são mais capazes de adquirir recursos e procriar com su-
cesso são aqueles cujos descendentes tendem a ser mais numerosos no futuro. Organismos
que, por qualquer razão, são menos capazes tendem a ter poucos ou nenhuns descendentes
no futuro. Os primeiros são considerados mais aptos do que os últimos e as características
distintivas que impulsionaram o primeiro a ser apto são seleccionadas em detrimento das
características deste último. Com o tempo, toda a população do ecossistema evolui de for-
ma a conter os indivíduos que, em média, são mais aptos do que os de gerações anteriores
da população, porque eles apresentam mais dessas características que tendem a promover a
sobrevivência [53].
- Estratégias de Evolução que são orientadas para a modelação dos parâmetros que
controlam as variações da evolução, ou seja, a evolução da evolução;
50 / 119
- Co-evolução onde inicialmente indivíduos com capacidades reduzidas evoluem
através da cooperação ou concorrência uns com os outros, adquirindo as caracterís-
ticas necessárias para sobreviver.
Outros aspectos da evolução natural também foram modelados. Por exemplo, a extinção
em massa e AG Distribuídos (ilhas), onde diferentes populações são mantidas praticamente
isoladas, com a evolução genética a ter lugar em cada população. Além disso, aspectos
como a migração entre as populações são modelados. A modelação do comportamento de
parasitas e vírus também contribuiu para a melhoria das técnicas evolucionárias. Neste
caso, os parasitas ou vírus infectam indivíduos. Aqueles indivíduos que são demasiado fra-
cos morrem. Por outro lado, a imunologia tem sido utilizada para estudar a evolução dos
vírus e como os anticorpos devem evoluir para matar infecções por vírus [52].
- sistemas profissionais,
51 / 119
Muitas actividades envolvem problemas não-estruturados da vida real que são difíceis de
modelar uma vez que exigem vários factores invulgares. Certos problemas de engenharia
são de natureza complexa: problemas de planeamento de horários, PCV, entre outros. Para
todas estas aplicações a CE fornece uma solução quase ideal no final de uma execução de
optimização. Os Algoritmos Evolutivos são flexíveis e relativamente fáceis de cruzar com
heurísticas dependentes do domínio, facto que os torna eficientes [53].
52 / 119
- robusto a mudanças dinâmicas – Os métodos tradicionais de optimização não são
robustos a mudanças dinâmicas no ambiente e requerem um re-início completo
para fornecer uma solução. Ao contrário, a CE pode ser usada para adaptar as so-
luções às novas circunstâncias. A população de soluções geradas fornece uma base
para continuar o melhoramento e em muitos casos, não é necessário reinicializar a
população de forma aleatória. Este método de adaptação em face de um ambiente
dinâmico é uma vantagem fundamental.
a)História
Charles Darwin afirmou a teoria da evolução natural na origem das espécies. Ao longo de
várias gerações, os organismos biológicos evoluem com base no princípio da selecção natu-
ral "sobrevivência do mais apto" para chegar a determinadas tarefas notáveis. São exem-
plos as formas corporais perfeitas do albatroz que traduzem a eficiência, a semelhança en-
tre tubarões e golfinhos e assim por diante, que reflectem as realizações da evolução aleató-
ria sobre a inteligência. Assim, ela funciona tão bem na natureza, tornando-se interessante
simular a evolução natural e desenvolver um método computacional, que sirva para resol-
ver problemas de optimização de busca [53].
53 / 119
Na natureza, um indivíduo da população está em constante concorrência com os outros
pelos recursos, como fontes de alimento, abrigo e assim por diante. Também na mesma
espécie, os indivíduos competem para atrair parceiros para reprodução. Devido a esta se-
lecção, indivíduos com desempenho insatisfatório têm menos hipóteses de sobreviver e os
mais adaptados ou aptos produzem um número relativamente grande de descendentes.
Também pode notar-se que durante a reprodução, uma recombinação das boas caracterís-
ticas de cada antepassado pode produzir descendência cuja aptidão é maior do que a de
um pai. Depois de algumas gerações, as espécies evoluem espontaneamente para tornar-se
mais e mais adaptadas ao seu ambiente [53].
Ao longo dos anos foram desenvolvidos diversos AG contudo, apesar das diferenças entre
eles, todos seguem os mesmos princípios básicos. Seguidamente são apresentados alguns
desses princípios, bem como algumas noções básicas dos mesmos.
(i)Aptidão
O cálculo dos valores de aptidão é conceptualmente simples, embora possa ser muito
complexo de implementar de forma a optimizar a eficiência da pesquisa do AG no
espaço do problema [54]. O aptidão de um indivíduo num AG é o valor de uma fun-
ção objectiva para o seu fenótipo. Para o cálculo da aptidão, o cromossoma tem de
ser primeiro descodificado e avaliado. O aptidão indica, não só se uma solução é boa
ou não, mas também a proximidade desta da solução ideal [53].
(ii)Indivíduos
Um indivíduo é uma solução única. O indivíduo agrupa duas formas de soluções:
(iii)População
A população é uma colecção de indivíduos. A população é composta por uma série
de indivíduos, os parâmetros que definem o fenótipo dos indivíduos e algumas infor-
mações sobre o espaço de busca [53].
(ii)Função de selecção
A selecção de indivíduos para produzir sucessivas gerações tem um papel muito im-
portante nos AG. É efectuada uma selecção probabilística, baseada na aptidão dos
indivíduos, de forma a que os indivíduos mais aptos tenham maior probabilidade de
serem seleccionados. Um indivíduo da população pode ser seleccionado mais que
uma vez, sendo que todos os indivíduos tem hipótese de serem seleccionados como
reprodutores da próxima geração. Existem vários esquemas de selecção: selecção por
roleta e suas extensões, técnicas de dimensionamento, torneio, modelos elitistas e mé-
todos de ranking [55].
55 / 119
(iii)Operadores Genéticos
Os operadores genéticos oferecem os mecanismos básicos de pesquisa dos AG. Os
operadores são usados para criar novas soluções baseadas em soluções existentes na
população. Existem dois tipos básicos de operadores: mutação e cruzamento. O ope-
rador mutação altera um indivíduo de forma a produzir uma nova solução singular.
O operador cruzamento selecciona dois indivíduos, com os quais produz dois novos
indivíduos. A aplicação destes dois tipos básicos de operadores e seus derivados de-
pende da representação utilizada para o cromossoma [55].
1.8 Genetic Operators 27
a) 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 0
0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0
b) 0.2 0.6 1.2 3.0 0.8 2.4 0.6 0.4 0.6 1.0 3.0 0.8 2.2 0.6
0.4 0.4 1.0 3.4 0.6 2.2 0.6 0.2 0.4 1.2 3.4 0.6 2.4 0.6
c) 0.2 0.6 1.2 3.0 0.8 2.4 0.6 0.3 0.5 1.1 3.2 0.7 2.3 0.6
d) A B C D E F G G F C D B A E
E B C D G F A E
ARITHMETIC content at n randomly chosen positions (figure 1.11, b)). Arithmetic crossover
posições escolhidas aleatoriamente das duas sequências genéticas [56], originando
uma nova sequência genética (figura 1, c).
(iv)Inicialização
Os AG necessitam de uma população inicial para a sua execução. O método mais
comum é a geração aleatória de soluções para toda a população. Contudo, como os
AG melhoram as soluções existentes a cada iteração, na população inicial podem ser
inseridas potenciais soluções, sendo os restantes elementos gerados aleatoriamente
[55].
(v)Critério de paragem
O AG, de geração para geração, selecciona e reproduz “pais” até que em critério de
paragem seja atingido. O critério de paragem mais utilizado é a especificação de um
número máximo de gerações. Outro critério de paragem envolve um critério de con-
vergência. De uma forma geral os AG influenciam a população a convergir para uma
solução única. Quando a soma dos desvios entre indivíduos assume valores inferiores
a um limiar, ou valor específico, o algoritmo pode ser terminado. Outro critério de
paragem pode ser a falta de melhoria da melhor solução num determinado número
de gerações. Alternativamente também é possível definir um valor alvo para a medi-
da de avaliação como critério de paragem. Várias estratégias podem ser usadas em
conjunto umas com as outras [55].
(vi)Funções de avaliação
Podem ser usadas várias funções de avaliação nos AG, desde que respeite o requisito
mínimo de que a função seja capaz de mapear a população num conjunto parcial-
mente ordenado. Como referido anteriormente a função avaliação é independente
do AG [55].
Colónias de insectos sociais são capazes de alcançar tarefas muito complexas. Essas tarefas
são alcançadas sem uma inteligência que os rege. Nenhum insecto pode completar a tarefa
sozinho ou coordenar as acções dos seus colegas, mas a partir destes comportamentos dis-
58 / 119
tribuídos, simultâneos pode emergir um resultado colectivo muito complexo [57]. Desi-
gnamos este comportamento por Inteligência Colectiva (IC).
A IC é também uma das principais características dos insectos sociais. Os insectos sociais
(abelhas, vespas, formigas e térmitas) vivem na Terra há milhões de anos. É bem sabido
que são muito bem sucedidos na construção de ninhos e habitações mais complexas com
um contexto social. Eles também são capazes de organizar a produção. Os insectos sociais
movimentam-se, tem uma comunicação e um sistema de alerta, guerras e divisão do traba-
lho. As colónias de insectos sociais são muito flexíveis e podem-se adaptar bem às mudan-
ças do ambiente. Esta flexibilidade permite que a colónia seja robusta e organizada, apesar
das perturbações consideráveis. A comunicação entre os indivíduos de uma colónia de in-
sectos sociais já há muito que é reconhecida. Os exemplos de comportamentos interactivos
como a secreção de feromonas pelas formigas e a realização de actos específicos, induzem
outros insectos a executar as mesmas acções. Estes sistemas de comunicação entre os insec-
tos contribuem para a formação da IC das colónias de insectos sociais [58].
Nas secções seguintes são apresentados alguns dos algoritmos existentes de IC.
59 / 119
de Enxame de Partículas é a sua rápida velocidade de convergência. Este algoritmo tem
sido aplicado com sucesso em muitas áreas [60].
Segundo Mourelle [63], Clerc [62] e Sivanandam [53] a Optimização de Enxame de Par-
tículas pode ser aplicada, entre outras, nas seguintes áreas:
- data mining,
- redes móveis,
Os algoritmos de colónias de formigas são cada vez mais populares, como sejam para re-
solver problemas de optimização combinatória [38].
A OCF é actualmente usada com sucesso como sistema multiagente para resolver proble-
mas de optimização difíceis, como o PCV, a atribuição quadrática, planeamento de veícu-
los, entre outros [64].
Quantas mais formigas percorrerem um determinado percurso, mais a intensidade das fe-
romonas é reforçada, levando a que ainda mais formigas sigam esse percurso. Com o tem-
po, a feromona dos percursos menos percorridos vai-se evaporando pois não é reforçada,
levando a que as formigas acabem por percorrer preferencialmente apenas o melhor per-
62 / 119
curso. Na figura 4 encontra-se representado este comportamento das formigas quando na
presença de um obstáculo.
Portanto, a OCF foi originalmente usada para resolver o problema do caminho mais curto.
Na experiência dos dois caminhos, as formigas que chegam primeiro ao ponto de escolha
entre os caminhos, encontram um percurso sem marcação por feromonas. Nestas circuns-
tâncias metade das formigas escolhe um caminho e a outra metade das formigas escolhem
o outro. No entanto, as formigas que aleatoriamente escolheram o caminho mais curto re-
gressam mais rápido do que aquelas que escolheram o caminho mais longo. Deste modo o
caminho mais curto será reforçado com mais feromonas, antes do percurso mais longo. Isso
faz com que as formigas que chegam a seguir ao ponto de escolha escolham o caminho
mais curto, uma vez que tem uma presença mais forte de feromonas. Assim, o caminho
mais curto rapidamente ganha sucessivamente uma concentração maior de feromonas,
como resultado da nova preferência das formigas seguintes. A convergência ocorre rapi-
damente e em breve muito poucas formigas seguem o caminho mais longo [36]. Essa for-
ma simples de comunicação indirecta entre as formigas funciona como uma espécie de me-
canismo de aprendizagem colectiva [66].
63 / 119
O primeiro passo para essa implementação é investigar diferentes parâmetros que afectam
os resultados da OCF utilizando simulação computadorizada e encontrar uma relação en-
tre as propriedades químicas da feromona, o número de formigas e do desempenho do al-
goritmo (isto é, de que forma a solução obtida se aproxima da solução real) [67].
(i)Sistema de Formigas
Segundo [59] a principal característica do Sistema de Formigas é que, a cada itera-
ção, os valores da feromona são actualizados por todas as m formigas que construí-
ram uma solução na iteração. A feromona τij, associada à aresta que liga as cidades i
e j, é actualizada do seguinte modo:
m
(3) τ ij ← (1 − ρ )iτ ij + ∑ Δτ ijk
k =1
Δτ ijk
onde ρ é a taxa de evaporação, m é o número de formigas, e é a quantidade de
feromona prevista na aresta (i, j) pela formiga k assume os seguintes valores :
64 / 119
⎧⎪ Q , se a formiga k usou a aresta (i, j ) no seu trajecto
(4) Δτ = ⎨ Lk
k
ij
⎪⎩
0 , caso contrário
⎧
β
τ ijα •ηij
, se cij ∈N (S p )
⎪∑ α β
p τ il •ηil
(5) pijk = ⎨ cil ∈N ( S )
⎪0 , caso contrário
onde N(SP) é o conjunto de componentes possível, isto é, os arcos (i,l), onde l é uma
cidade ainda não visitada pela formiga k. Os parâmetros α e β controlam a impor-
tância relativa das feromonas contra as informações heurísticas ηij, que são dadas
por:
1
(6) ηij =
dij
τ max
(7) τ ij ← ⎡⎣(1 − ρ ) • τ ij + Δτ ijbest ⎤⎦τ
min
onde τmax e τmin são, respectivamente, o limite superior e inferior impostos à feromona,
o operador [ x ]b é definido por:
a
65 / 119
⎧
⎪ a , se x > a
⎪⎪
(8) [ x ]ba = ⎨ b , se x > b
⎪
⎪ x , caso contrário
⎪⎩
e Δτ ijbest é:
⎧ 1
⎪ , se (i, j) pertence ao melhor percurso
⎪ Lbest
⎪
(9) Δτ ijbest =⎨
⎪ o , caso contrário
⎪
⎪⎩
onde L é o comprimento do percurso da melhor formiga. Isso pode ser (de acordo
com a decisão de quem desenvolve o algoritmo) ou o melhor caminho encontrado na
corrente iteração (Lib) ou a melhor solução encontrada desde o início do algoritmo
(Lbs), ou uma combinação de ambos.
(10) τ ij = (1 − ϕ ) • τ ij + ϕ • τ 0
⎧
(1 − ρ ) • τ ij + ρ • Δτ ij , se (i, j) pertencer ao melhor percurso
(11) τ ij ← ⎪⎨
⎪ τ ij , caso contrário
⎩
1
(12) Δτ ijbest =
Lbest
onde Lbest pode ser Lib ou Lbs. Outra diferença importante entre o Sistema de Colónia
de Formigas e o Sistema de Formigas reside na regra de decisão utilizada pelas for-
migas durante o processo de construção. No Sistema de Colónia de Formigas, a
chamada regra pseudo-aleatória proporcional é utilizada: a probabilidade de uma
formiga se deslocar de uma cidade i a uma cidade j depende de uma variável aleató-
ria q uniformemente distribuída no intervalo [0, 1], e um parâmetro q0; se q ≤ q0, en-
tão :
⎧
β
τ ijα •ηij
, se cij ∈N (S p )
⎪∑ α β
p τ il •ηil
(14) pijk = ⎨ cil ∈N ( S )
⎪0 , caso contrário
67 / 119
d)Aplicações da Optimização de Colónia de Formigas
Desde sua introdução na década de 1990, os algoritmos OCF tem sido aplicados a muitos
problemas de optimização. Primeiro, problemas clássicos tais como problemas de atribui-
ção, problemas de escalonamento ou planeamento de veículos, foram abordados. Aplica-
ções mais recentes incluem, por exemplo, problemas de colocação de células provenientes
de desenho de circuitos, desenho de redes de comunicação, problemas de bioinformática,
problemas dinâmicos de caminho mais curto decorrentes dos problemas das redes de tele-
comunicações ou problemas em optimização contínua. Nos últimos anos, alguns pesquisa-
dores também se concentraram na aplicação de algoritmos OCF para problemas multiob-
jetivo e não-estáticos [68].
De facto já estão disponíveis, várias aplicações bem sucedidas de OCF para uma ampla
gama de diferentes problemas de optimização discreta. A grande maioria dessas aplicações
são problemas “NP-hard”. O uso de tais algoritmos é muitas vezes inviável na prática, e os
algoritmos OCF podem ser úteis para encontrar rapidamente soluções de alta qualidade.
O número de aplicações bem sucedidas de problemas académicos tem motivado as pessoas
a adoptarem OCF para a solução dos problemas industriais, provando que essa técnica de
inteligência computacional também é útil em aplicações do mundo real [59].
68 / 119
Comum a muitos desses aplicativos está o facto de os algoritmos OCF com melhor
desempenho fazerem uso intensivo da fase de pesquisa local opcional da meta-heurís-
tica OCF. Isso normalmente é muito eficaz, pois, por um lado, as soluções construí-
das pelas formigas podem muitas vezes ser melhoradas através de um algoritmo de
pesquisa local adequado, por outro lado, gerando soluções iniciais que permitam a
convergência dos algoritmos. Por outro lado, resultados experimentais mostram que o
processo probabilístico, adaptativo de geração de soluções da OCF é particularmente
adequado para esta tarefa [59].
Segundo Dorigo [59] os algoritmos de OCF podem ser utilizados para solucionar,
entre outros, os seguintes problemas:
69 / 119
70 / 119
5
‹‹Um bom começo é a metade.››
Aristóteles
5.CASO DE ESTUDO
Neste capítulo são apresentados formalmente o problema a ser resolvido, o algoritmo pro-
posto, bem como alguns exemplos de teste/validação, solucionados pelo mesmo. A solução
apresentada, baseada no algoritmo OCF, satisfaz as exigências primárias do problema,
sendo que poderá ser continuado para a satisfação de mais exigências práticas, como sejam
a utilização de múltiplos veículos. Os resultados dos testes efectuados, tendo em conta a
alta complexidade dos problemas de teste, mostram ser este método capaz de solucionar o
problema, com resultados muito satisfatórios. Neste trabalho, o método proposto é capaz
de indicar uma rota que permita a entrega/recolha dos elementos utilizando um único veí-
culo, de forma óptima.
71 / 119
5.1. Caracterização do Problema
O algoritmo apresentado nesta dissertação surge devido á necessidade, por parte da Asso-
ciação de Assistência de Nossa Senhora das Candeias (AANSC), de efectuar o planeamen-
to dos seus veículos de forma mais eficiente e mais rápida.
A Associação de Assistência Nossa Senhora Das Candeias (AANSC) é uma Instituição Par-
ticular de Solidariedade Social (IPSS) cuja história remonta a 1965. Situada na freguesia de
Canelas, concelho do Peso da Régua iniciou a sua actividade por iniciativa dum punhado
de pessoas boas da terra, através da distribuição de leite da Caritas pelas crianças da Al-
deia, tentando assim minorar o elevado índice de mortalidade infantil da época e a inexis-
tência de abastecimento local de leite. Em 6 de Setembro de 1966 viu aprovados os seus
estatutos, desde aí e até à actualidade passou por várias mudanças, agora esta IPSS possui
entre outros edifícios a casa Sede onde presta assistência às crianças da localidade, possui
um outro edifício que serve de apoio a respostas sociais direccionadas para a Terceira Ida-
de e possui também um parque, o Parque da Porta dos Cavaleiros que enriquece e embele-
za esta instituição.
Actualmente a AANSC possui 20 funcionários, dos quais três quadros superiores a tempo
inteiro visando colmatar as necessidades da população prestando apoio as famílias, através
das seguintes respostas sociais:
- Centro de Convívio,
- Creche,
- Ensino pré-escolar,
- Espaço internet.
Muitas das crianças que frequentam a creche e o ensino pré-escolar da Associação de Assis-
tência Nossa Senhora das Candeias são transportadas num autocarro da instituição. Actu-
almente o planeamento das rotas do transporte destas crianças é efectuado de forma ma-
nual, contudo devido ao elevado número de locais bem como as restrições impostas torna-
se necessário o recurso ao processamento computacional.
72 / 119
Segundo dados fornecidos pela AANSC existem 79 locais de recolha/entrega de crianças
(consultar apêndice A). Os locais encontram-se dispersos por uma vasta área. Dado ainda o
facto de se tratar de transporte de crianças, existe a necessidade destas passarem pouco
tempo em viagem, restrição esta, que dificulta fortemente o planeamento dos transportes.
Para além de aumentar o conforto das crianças, a instituição pretende também reduzir os
custos associados ao transporte.
(i)Intervalos de Tempo
Cada nó possui um intervalo de tempo, no qual é possível entregar/recolher o(s) ele-
mento(s) respectivo(s). Fora desse intervalo tal operação não é possível. Desta forma o
algoritmo deve apenas visitar o nó dentro desse intervalo de tempo.
(ii)Número de Veículos
Existe um número limitado de veículos para solucionar o problema. O algoritmo
deve determinar para cada veículo o melhor percurso, de forma a optimizar a utili-
zação dos mesmos.
(iii)Duração da Viagem
Apesar de não estar estabelecido um limite máximo para a duração da viagem, pre-
tende-se minimizar o tempo da mesma. Daí a necessidade de optimizar a utilização
dos veículos.
(iv)Elementos Recolhidos
Cada nó possui um número variável de elementos a entregar/recolher. Desta forma
o algoritmo deve determinar o percurso de cada veículo tendo em conta a capacida-
de do veículo. Todos os elementos devem ser entregues/recolhidos.
73 / 119
veículos com capacidade máxima, ou mesmo excesso, ao mesmo tempo que existem
veículos vazios.
Inicialmente foi tentado a solução deste problema com recurso aos AG. Procurou-se, assim,
desenvolver um algoritmo baseado em AG capaz de solucionar o problema proposto.
Cada nó da lista vei contém os dados referentes a um veículo. Os dados incluem o modelo,
marca e capacidade do veículo, além do código do mesmo. É utilizado um código para
identificar cada veículo de forma a facilitar as pesquisas, entre outras operações. A figura 6
apresenta uma representação gráfica da lista vei.
A lista ligada loc contém a informação de cada local, incluindo a posição (coordenadas para
a representação gráfica do local), número de elementos a recolher/entregar, designação do
local, código do local e o intervalo de tempo em que é possível recolher os elementos.
74 / 119
Figura 7 - Representação gráfica da lista ligada loc
A figura 7 apresenta uma representação gráfica da lista loc. Na figura é possível observar
que um dos elementos da lista loc é um apontador para uma lista contendo o conjunto de
nós, com os quais o local possui ligação. Além do local esta lista contém também o tempo
de viagem necessário para se deslocar entre os dois locais.
A lista ligada pop é o elemento principal do algoritmo, pois contém as informações referen-
tes à população. Cada nó da população representa uma população, ou seja, um conjunto
de indivíduos. O nó contém o melhor percurso e uma lista ligada (ind) contendo os indiví-
duos, sendo que cada nó da lista ind corresponde a um indivíduo. Cada nó da lista ind con-
tém uma variável apt que indica a aptidão do indivíduo e uma matriz (ms) contendo a pos-
sível solução para o problema. A figura 8 apresenta uma representação gráfica da lista pop.
75 / 119
A matriz ms tem um tamanho 2*nl, onde nl é igual ao número de locais do problema. Na
primeira linha da matriz ms estão os códigos dos locais, ou seja, o percurso percorrido. Na
segunda linha encontra-se o veículo que visitou o local. É associado o local ao veículo que o
visitou pois o planeamento é efectuado para vários veículos.
Cada indivíduo é determinado de forma aleatória, mas tendo em conta as restrições impos-
tas. Desta forma é escolhido, de forma aleatória, um veículo que é adicionado à primeira
coluna da matriz ms juntamente com o código do nó inicial. Seguidamente determina-se
qual o próximo nó a visitar.
Primeiro, de todos os nós possíveis (com ligação ao nó actual), verificam-se aqueles que res-
peitam as restrições impostas, sendo posteriormente escolhido de forma aleatória um deles
e adicionado à coluna seguinte juntamente com o código do veículo. As condições impos-
tas, neste caso, dizem respeito ao intervalo de tempo do nó a visitar. Apenas é possível visi-
tar um nó e recolher o elemento do nó quando este é visitado dentro do intervalo de tempo
respectivo.
Segue-se este processo até que a capacidade do veículo seja atingida. Quando tal acontece,
é determinado o caminho de regresso ao ponto inicial recorrendo ao algoritmo de Dijkstra
[85]. Como ainda existem elementos a recolher, pois apenas um veículo não possui capaci-
dade para recolher todos os elementos, é escolhido aleatoriamente um veículo da lista de
veículos ainda não utilizados.
76 / 119
5.2.3. Determinar aptidão dos indivíduos
Para determinar a qualidade de um percurso é necessário quantificar, de alguma forma, a
performance ou aptidão do percurso. No algoritmo apenas é tido em conta o tempo da vi-
agem com forma de quantificar a aptidão do percurso, logo um percurso que demore me-
nos tempo, é mais apto para solucionar o problema. O tempo de viagem é determinado
somando o tempo que o veículo demora a mover-se de um nó para o seguinte.
Neste ponto foram encontradas várias dificuldades que levaram a que se tenha abandona-
do os AG como base para solucionar o problema.
As dificuldades prendem-se com o facto de ser necessário manter a conectividade dos nós
nos processos de mutação e cruzamento. Normalmente o operador cruzamento efectua o
seguinte processo: tomando dois indivíduos, divide os indivíduos em duas ou mais partes
seguindo-se a permutação parcial dos seguimentos obtidos pela divisão. Desta forma obtém
dois novos indivíduos tendo por base os indivíduos iniciais. Neste caso temos dois proble-
mas:
- após a permutação dos segmentos podemos obter percursos em que não exista liga-
ção entre dois ou mais nós;
- após a permutação dos segmentos podemos obter percursos em que existam nós
repetidos, ou então, que o percurso não contenha todos os nós do problema.
Outro problema advém da associação dos veículos aos nós visitados. Ao efectuar-se o cru-
zamento obtém-se uma matriz em que os veículos surgem de forma intercalada.
A operação de mutação também apresenta alguns problemas (tais como: não existir ligação
entre o nó adicionado e o nó anterior e o posterior do percurso, repetição de nós num per-
77 / 119
curso), contudo estes seriam mais facilmente resolvidos. Um possível operador de mutação
poderia efectuar o seguinte processo: escolher aleatoriamente dois nós do percurso e per-
mutar os dois nós. Neste caso o problema passa, também, por manter a conectividade entre
os nós do percurso. Contudo este problema seria facilmente solúvel através da verificação
da conectividade antes da validação da permuta.
Estes problemas levaram a que a abordagem com AG se torna-se inviável, não pela impos-
sibilidade de solucionar o problema apresentado através dos AG, mas sim pela complexi-
dade da solução.
A colónia de formigas é representada como uma matriz, denominada at, onde cada linha
representa a rota de uma formiga. Esta matriz tem um tamanho de m*n, onde n é o núme-
ro pré-estabelecido de formigas da colónia e m é o número de nós visitados pelas formigas.
Inicialmente a matriz está vazia.
De forma a trabalhar com janelas de tempo foi criada uma matriz, denominada tw, con-
tendo os intervalos de tempo usados. A matriz tw tem um tamanho de l*c, onde c é igual a
2 e l é 2*nc, sendo que nc é o número de nós. Existem 2*nc intervalos de tempo porque cada
nó tem dois intervalos de tempo, um real e um neutro.
78 / 119
As janelas de tempo neutras tem um valor de [Ti Tf], onde Ti é o tempo inicial, e Tf é o
tempo máximo permitido para a solução e não tem associadas a recolha de qualquer pas-
sageiro. Isto significa que os intervalos neutros tem uma janela de tempo tão larga quanto o
tempo de solução. Desta forma é possível visitar um nó, a qualquer momento, através da
sua janela de tempo neutra. As janelas de tempo real têm um valor de [tmin tmax], onde
tmin e tmax representam o intervalo de tempo em que o nó pode ser visitado e o elemento
recolhido. As distâncias entre todos os nós, necessários para o cálculo da rota, estão conti-
dos numa matriz denominada tt. A matriz tt tem um tamanho de nc*nc. Esta matriz indica
o tempo de viagem entre nós.
As ligações entre nós estão representadas numa matriz mh, com um tamanho de nc*nc. Se a
posição mh(i, j) tem um valor 0, isso indica que os nós i e j não tem conexão, enquanto o
valor 1 indica a conexão entre os dois.
No algoritmo apresentado são utilizadas duas feromonas. Os valores das feromonas são
armazenados em duas matrizes. Uma matriz contém os valores correspondentes à feromo-
na de recolha de elementos (ph), enquanto a segunda matriz armazena os valores corres-
pondentes à feromona de regresso directo à origem (phr). Ambas as matrizes possuem um
tamanho de nw*nw, onde nw equivale a 2*nc. Desta forma são armazenados, de forma se-
parada, os valores de ligação entre janelas de tempo neutras e reais. Ambas as matrizes são
inicializadas com um valor muito pequeno (0,0001).
É feita uma distinção entre o tempo de viagem com o motor a trabalhar (tteo) e o tempo
total de viagem (tpv). Tempo total de viagem é o tempo total da solução, enquanto o tempo
de viagem com o motor ligado corresponde ao tempo em que o veículo se encontra em
movimento. Esta distinção ocorre porque é possível que o veículo possa esperar que deter-
minado nó fique disponível. Este tempo de espera é apenas adicionada ao tempo total da
viagem. No entanto, nos testes aqui apresentados, realizados com o método proposto, ape-
nas se faz uso do tempo total da viagem.
79 / 119
5.3.2. Posicionamento inicial das formigas
O primeiro passo do algoritmo é o posicionamento inicial das formigas. Normalmente este
posicionamento é feito ao acaso, no entanto, neste caso especifico todas as formigas são co-
locadas no nó 1. O nó 1 representa o ponto inicial e também o ponto final, que funciona
como depósito dos veículos. Este nó não tem qualquer elemento a recolher, o que significa
que ambas as janelas de tempo são neutras.
onde twi e twj são as janelas de tempo do nó i e j, respectivamente, e tvij é o tempo de via-
gem entre os nós. Verificada a conectividade entre os nós, obtemos um conjunto de possí-
veis nós a serem visitados. O próximo nó a ser visitado é seleccionado tendo em conta,
primeiramente, dois aspectos: se este possui elementos a recolher e a folga do nó. Caso um
nó possua conectividade, o valor obtido corresponde à sua folga (gap):
Desta forma um nó com uma folga mais pequena terá maior probabilidade de ser escolhi-
do. Pretende-se desta forma dar preferência aos nós que possuem um menor “espaço de
manobra”. O mesmo acontece para os nós que possuem elementos a recolher: estes possu-
em maior probabilidade de serem escolhidos que nós sem elementos a recolher.
A próximo nó a ser visitado é escolhido recorrendo a uma selecção similar à selecção por
roleta. Inicialmente é determinado, para cada nó com conectividade ao presente nó, um
valor indicativo da sua preferência, ou seja, um nó com um valor mais elevado tem prefe-
rência em relação a um com um valor mais baixo. Aos nós que não possuem ligação ao
presente nó é atribuído o valor 0, indicando desta forma que não possuem conectividade
80 / 119
com o nó actual. Os valores indicativos de preferência dos nós com conectividade ao nó k
(nó actual) é dada por:
Os valores são armazenados no array temp. Para determinar a os valores indicativos é ne-
cessário calcular a matriz tbeta e os arrays gap e gap2. A matriz tbeta é dada por:
No final deste processo obtemos o array temp com os valores indicativos de preferência para
cada nó com conectividade ao presente nó. Contudo para facilitar a escolha do nó, os valo-
res contidos no array são transformados em probabilidades. Para tal é calculada uma vari-
ável s com a soma de todos os valores:
(21) s = ∑ temp
temp(x)
(22) p[x] =
s
Após a obtenção das probabilidades é calculado um array cs com a soma cumulativa das
probabilidades. É com base no array cs que se determina qual o próximo nó a ser visitado.
Para tal é gerado aleatoriamente um número entre 0 e 1 guardado na variável rn. O pró-
ximo nó a ser visitado será o nó cuja probabilidade acumulada seja superior ao rn. O nó
seleccionado é adicionado ao percurso da formiga e o tempo do percurso é actualizado
81 / 119
somando ao valor actual o tempo de viagem entre o presente nó e o nó seguinte. Caso o nó
seguinte possua elementos a recolher e o intervalo de tempo real seja respeitado, o valor
passará para 0 no array pi, significando que os elementos desse nó foram recolhidos. Caso o
intervalo de tempo real não seja respeitado, apesar de existirem elementos a ser recolhidos,
estes não são recolhidos.
O processo apresentado anteriormente é repetido até não existirem mais elementos a se-
rem recolhidos. Uma vez que todos os elementos recolhidos a formiga precisa retornar ao
nó inicial (nó 1). De forma a optimizar o regresso da formiga à origem, foi introduzida ou-
tra feromona, denominada phr, que contem os valores da feromona de regresso à origem.
Desta forma pretende-se optimizar o processo de retorno à origem, seguindo o trajecto
mais curto. O processo é em tudo similar ao processo referido anteriormente, apenas dife-
rindo na forma como o nó seguinte é escolhido. Os valores indicativos de preferencia dos
nós com conectividade ao presente nó, no processo de regresso à origem, é dado por:
nc
tbr(k,1 : )
(23) tempr = 2
nc
(0,001 + tt(k,1 : ))
2
Este processo é repetido para todas as formigas da colónia. Como resultado obtém-se uma
matriz at contendo os percursos de todas as formigas da colónia na presente iteração.
82 / 119
No algoritmo apresentado, como referido anteriormente, são utilizadas duas feromonas,
uma contendo o valor da feromona de escolha de percurso (ph) e outra de regresso à ori-
gem (phr).
As matriz ph e phr, que contém os valores das feromonas, são inicializadas com um valor
muito reduzido (0,0001) caso exista conexão entre nós, sendo que, caso não haja conexão
entre os nós i e j, então ph[i, j] = 0.
onde dli(i, j) é uma matriz com as folgas entre os intervalos de tempo, pi(j) é o número de
elementos a recolher no nó j e f(k) é o custo total de recolha para a rota da formiga k na ite-
ração anterior.
83 / 119
e− fr (i)
(28) dt =
0,001 + tt(i, j)
onde dli(i, j) é uma matriz com as folgas entre os intervalos de tempo, tt(i,j) é o tempo de vi-
agem do nó i para o nó j e fr(k) é o custo total de retorno para a rota da formiga k na itera-
ção anterior.
Nesta etapa é definido um array f com tamanho nf, em que nf representa o número de for-
migas da colónia e onde f(k) indica o custo do percurso percorrido na iteração pela formiga
k.
A função custo tem em conta três aspectos: tempo de viagem, elementos a recolher e a fol-
ga. O tempo de viagem (tpv) não é mais do que o tempo que o veículo demora a percorrer
o percurso, sendo dado por:
ep −1
(29) tpv = ∑ tv(i,i + 1)
i=1
pr tpv
(31) f [k] = 10 ⋅ + e− s + e− fo lg a +
np 3
O resultado são dois arrays, f e fr, contendo o custo de recolha de elementos e de regresso à
origem respectivamente. Através do custo de cada percurso é possível identificar quais os
percursos cujo custo é menor. No final de cada iteração o percurso com o menor custo é
adicionado a uma matriz designada besttour. No final do processo esta matriz contém os
percursos com menor custo de cada iteração.
A melhor solução para o problema proposto é obtida pela procura na matriz besttour pelo
percurso com o menor custo. Isto significa que de todos os melhores percursos, este é o
mais adequado para resolver o problema apresentado. O resultado do processo é o cami-
nho ideal para a recolha de elementos.
85 / 119
5.4. Resultados
Nesta secção são apresentados diversos exemplos nos quais o algoritmo apresentado foi tes-
tado. Os exemplos apresentam parâmetros variados e uma crescente complexidade na dis-
tribuição dos nós. Pretende-se desta forma demonstrar como os diferentes parâmetros afec-
tam a solução e como o algoritmo é capaz de solucionar grafos com diferentes distribuições
e número de nós.
O exemplo 1 apresenta um grafo com 5 nós e 9 arcos. Neste exemplo procura-se analisar
de que forma a quantidade de formigas e de iterações afectam o resultado do algoritmo.
A tabela 1 apresenta os intervalos de tempo associados aos nós. Apenas é possível recolher
os elementos existentes nos nó quando estes são visitados entre o tmin e o tmax .
nó 1 2 3 4 5
Além dos intervalos reais, representados na tabela 1, existem os intervalos neutros cujo va-
lor é igual para todos os nós. Os intervalos neutros possuem um intervalo de tempo tão
longo quanto o tempo disponível para a solução. Desta forma o tmin assume o valor 0 en-
quanto o tmax assume o valor máximo permitido para a solução.
* 1 2 3 4 5
86 / 119
Na tabela 2 encontra-se representada a matriz de ligações entre intervalos. Nesta matriz é
possível consultar as ligações entre os nós (0 indica que não existe ligação) bem como o
tempo de viagem entre os nós. Os intervalos de tempo bem como os tempos de ligação são
comuns aos exemplos 1.a e 1.b sendo que a única diferença entre os dois exemplos é os pa-
râmetros utilizados.
A tabela 4 apresenta o melhor percurso encontrado pelo algoritmo para este exemplo.
Analisando a tabela 4 e a figura 9 podemos analisar o percurso que o algoritmo obteve
como melhor ou aproximada da melhor possível.
Percurso 1 2 1 5 4 1 3 1
Elementos 0 1 0 1 1 0 1 0
Na figura 9 é apresentada a solução obtida pelo algoritmo proposto bem como a distribui-
ção dos nós. As linhas vermelhas representam o caminho percorrido pelo veículo, enquanto
as linhas azuis representam ligações não utilizadas.
87 / 119
Figura 9 - Melhor rota encontrada pelo algoritmo para o exemplo 1.a
88 / 119
Figura 10 - Desempenho e custo do exemplo 1.a no decorrer das iterações
89 / 119
gas (possíveis soluções por iteração) que o exemplo 1.a, sendo possível desta forma analisar
a influência destes parâmetros no resultado final.
A tabela 7 apresenta o melhor percurso encontrado pelo algoritmo para este exemplo.
Percurso 1 2 1 5 4 5 1 3 1
Elementos 0 1 0 1 1 0 0 1 0
Na figura 11 é apresentada a solução obtida pelo algoritmo proposto bem como a distribu-
ição dos nós. É possível verificar que este exemplo apresenta a mesma distribuição dos nós
que o exemplo 1.a, contudo o resultado obtido é diferente, este facto deve-se à utilização de
diferentes parâmetros.
90 / 119
Tabela 8 - Custo, folga e tempo de viagem do exemplo 1.b
91 / 119
A tabela 9 apresenta os intervalos de tempo associados aos nós. Apenas é possível recolher
os elementos existentes nos nó quando estes são visitados entre o tmin e o tmax .
nó 1 2 3 4 5
nó 6 7 8 9 10
Além dos intervalos reais, representados na tabela 9, existem os intervalos neutros cujo va-
lor é igual para todos os nós. Os intervalos neutros possuem um intervalo de tempo tão
longo quanto o tempo disponível para a solução. Desta forma o tmin assume o valor 0 en-
quanto o tmax assume o valor máximo permitido para a solução.
* 1 2 3 4 5 6 7 8 9 10
8 0 0 0 0,1077 0,2500 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 0,1339
92 / 119
Na tabela 10 encontra-se representada a matriz de ligações entre intervalos. Nesta matriz é
possível consultar as ligações entre os nós (0 indica que não existe ligação) bem como o
tempo de viagem entre os nós. Os intervalos de tempo bem como os tempos de ligação são
comuns aos exemplos 2.a e 2.b sendo que a única diferença entre os dois exemplos é os pa-
râmetros utilizados.
A tabela 12 apresenta o melhor percurso encontrado pelo algoritmo para este exemplo.
Percurso 1 7 3 5 8 4 1 4 1 2 10 9 10 6 10 6 1
Elementos 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0
Na figura 13 é apresentada a solução obtida pelo algoritmo proposto bem como a distribu-
ição dos nós. As linhas vermelhas representam o caminho percorrido pelo veículo, enquan-
to as linhas azuis representam ligações não utilizadas. Não é possível verificar na figura 45
a quantidade de vezes que uma ligação entre dois nós e percorrida, contudo são facilmente
identificadas as ligações que são utilizadas.
93 / 119
Figura 13 - Melhor rota encontrada pelo algoritmo para o exemplo 2.a
94 / 119
Figura 14 - Desempenho e custo do exemplo 2.a no decorrer das iterações
95 / 119
A tabela 15 apresenta o melhor percurso encontrado pelo algoritmo para este exemplo. Na
tabela encontra-se descriminado o percurso completo, bem como os elementos associados
aos nós que foram recolhidos/entregues.
Percurso 1 7 3 5 8 4 8 4 1 2 10 9 10 6 10 2 1
Elementos 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0
Na figura 15 é apresentada a solução obtida pelo algoritmo proposto bem como a distribu-
ição dos nós. Através da figura é possível analisar não só a complexidade do grafo, mas
também as ligações utilizadas pela solução encontrada pelo algoritmo proposto.
96 / 119
Tabela 16 - Custo, folga e tempo de viagem do exemplo 2.b
97 / 119
A tabela 17 apresenta os intervalos de tempo associados aos nós. Apenas é possível recolher
os elementos existentes nos nó quando estes são visitados entre o tmin e o tmax .
nó 1 2 3 4 5
nó 6 7 8 9 10
nó 11 12 13 14 15
nó 16 17 18 19 20
98 / 119
Tabela 18 - Parâmetros do exemplo 3.a
Percurso 1 8 5 15 7 14 4 20 2 10 19 11 6 9 6 17 6
Elementos 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0
Percurso 11 19 10 16 3 18 4 20 13 7 15 12 15 5 8 1
Elementos 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0
100 / 119
Na tabela 21 são apresentados os parâmetros utilizados na execução do algoritmo e na
procura de uma solução. Este exemplo, em relação ao exemplo 3.a, apresenta um valor
inferior no parâmetro wpass.
A tabela 22 apresenta o melhor percurso encontrado pelo algoritmo para este exemplo.
Percurso 1 8 5 15 7 14 4 18 3 16 10 19 11 6 17 6 9
Elementos 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
Percurso 6 11 19 10 2 20 13 7 5 15 12 15 5 8 1
Elementos 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0
Na figura 19 é apresentada a solução obtida pelo algoritmo proposto bem como a distribu-
ição dos nós. A figura 20 apresenta a evolução do desempenho/custo da melhor rota en-
contrada ao longo das iterações.
101 / 119
Figura 19 - Melhor rota encontrada pelo algoritmo para o exemplo 3.b
102 / 119
5.4.4. Exemplo 4 - Grafo 36/55
O exemplo 4 apresenta um grafo com 36 nós e 55 arcos. Este é o exemplo mais complexo
apresentado, à excepção do exemplo AANSC.
Na figura 21 é apresentada a solução obtida pelo algoritmo proposto bem como a distribu-
ição dos nós. A figura 22 apresenta a evolução do desempenho/custo da melhor rota en-
contrada ao longo das iterações.
103 / 119
Figura 21 - Melhor rota encontrada pelo algoritmo para o exemplo 4
Albert Einstein
6.CONSIDERAÇÕES FINAIS
Neste capítulo é apresentada uma análise crítica aos resultados obtidos e o desempenho do
algoritmo proposto, avaliando o cumprimento dos objectivos. No final do capítulo são
apresentadas algumas propostas para trabalhos futuros.
6.1. Conclusões
105 / 119
- identificação dos métodos que melhor se enquadravam na solução do problema em
estudo;
Deste modo, o objectivo inicial de encontrar um método que solucionasse o problema pro-
posto foi alcançado, proporcionado ainda o apresentar de contribuições inovadoras nesta
área de trabalho. A utilização deste tipo de técnicas para problemas de planeamento de
transportes escolares tem sido pouco explorada, pelo que este trabalho deu um contributo,
comprovado, da vantagem do método de optimização de Colónias de formigas, com a sua
adaptação a problemas com restrições de janelas temporais.
O algoritmo proposto é ainda uma base de uma família de algoritmos. Ele apresenta resul-
tados bastante bons em casos com grafos bastante complexos, desde que apenas seja neces-
sário calcular a rota de um veículo. A sua extensão ao problema com a utilização de múlti-
plos veículos é um passo seguinte deste trabalho. Porém, este novo algoritmo funcionará
com a utilização de múltiplas colónias, sendo certo que se mantém a estrutura do algoritmo
proposto.
Até ao momento apenas se detectaram dois pontos fracos, que podem ser facilmente corri-
gidos. Um primeiro resultante da utilização das janelas de tempo, nos casos em que existe
uma ou mais sequências de janelas de tempo com um tempo bastante dispare das restantes.
Este facto implica que o veículo “vagueie” pelo grafo até que seja possível visitar o nó cor-
respondente na ordem determinada. O segundo problema está relacionado com o número
de nós, que implica colónias mais numerosas e tempo computacional maiores. Todavia,
estes pontos fracos não impossibilitam a execução do algoritmo nem a obtenção de uma
solução para o problema.
106 / 119
Ao observarmos a evolução do desempenho/custo dos vários exemplos é fácil concluir que
o algoritmo não procura convergir para uma solução mas, de certa forma, garantir primei-
ramente a variabilidade das rotas. Ou seja, em vez de procurar convergir na perseguição de
uma solução, o algoritmo procura encontrar o máximo de soluções possíveis, determinando
o seu custo e verificando qual delas possui o custo mais baixo. Registe-se o facto de que no
cálculo das rotas tem um peso considerável o valor da feromona.
Fica por apresentar, nesta dissertação, uma comparação entre a solução encontrada pelo
algoritmo e o planeamento manual efectuado pelos responsáveis da Instituição, que utiliza
vários veículos de transporte. Tal fica a dever-se ao facto do algoritmo proposto apenas
efectuar o planeamento de uma veículo, inviabilizando a comparação.
107 / 119
108 / 119
Bibliografia
1. Crawford, B., C. Castro, and E. Monfroy, A Two-Phase Set Partitioning Model for Passenger Transportation, in
Fourth International Conference on Computer Sciences and Convergence Information Technology. 2009.
2. Goulias, K.G., et al., Transportation Systems Planning - Methods and Applications, ed. W.F. CHEN. 2003:
CRC Press LLC.
3. Nocedal, J. and S.J. Wright, Numerical Optimization. Second ed. Operations Research and Financial En-
gineering, ed. T.V. Mikosch, S.I. Resnick, and S.M. Robinson. 2006: Springer.
4. Toth, P. and D. Vigo, The Vehicle Routing Problem. Transportation problems (Programming) 2002: Society
for Industrial and Applied Mathematics.
5. Mikki, S.M. and A.A. Kishk, Particle Swarm Optimization: A Physics-Based Approach. Synthesis Lectures on
Computational Electromagnetics, ed. C.A. Balanis. 2008, Arizona: Morgan & Claypool.
6. Caric, T. and H. Gold, Vehicle Routing Problem. 2008, Zagreb: In-teh.
7. Dantzig, G.B. and J.H. Ramser, The truck dispatching problem. Management Science. 1959.
8. Clarke, G. and J.V. Wright, Scheduling of vehicles from a central depot to a number of delivery points. Operations
Research, 1964. 12.
9. Desrochers, M., J.K. Lenstra, and M.W.P. Savelsbergh, A classification scheme for vehicle routing and schedu-
ling problems. Journal of Operational Research Society, 1990. 46.
10. Laporte, G. and Y. Nobert, Exact algorithms for the vehicle routing problem. Annals of Discrete Mathematics,
1987. 31.
11. Christofides, N., A. Mingozzi, and P. Toth, The vehicle routing problem. Combinatorial Optimization, ed.
N. Christofides, et al. 1979, Chichester, UK: Wiley.
12. Magnanti, T.L., Combinatorial optimization and vehicle fleet planning: Perspectives and prospects. Networks. Vol.
11. 1981.
13. Bodin, L.D., et al., Routing and scheduling of vehicles and crews, the state of the art. Computers and Opera-
tions Research, 1983. 10.
14. Christofides, N., Vehicle routing. The Traveling Salesman Problem, ed. E.L. Lawler, et al. 1985, Chiches-
ter, UK: Wiley.
15. Laporte, G., The Vehicle Routing Problem: An Overview of Exact and Approximative Algorithms. European Jour-
nal of Operational Research, 1992. 59(3).
16. Fisher, M.L., Vehicle Routing. Network Routing, Handbooks in Operations Research and Management
Science ed. M.O. Ball, et al. 1995, North-Holland, Amsterdam.
17. Toth, P. and D. Vigo, Exact Algorithms for vehicle Routing. Fleet Managementand Logistics, ed. T. Craini-
cand and G. Laporte. 1998, Boston,MA: Kluwer.
18. Golden, B.L., et al., Metaheuristics in Vehicle Routing. Fleet Management and Logistics, ed. T.G. Crainic
and G. Laporte. 1998, Boston, MA: Kluwer.
19. Laporte, G., Vehicle routing. Annotated Bibliographies in Combinatorial Optimization, ed. M.D. H'Ami-
co, F. Maffioli, and S. Martello. 1997, Chichester, UK: Wiley.
20. Laporte, G. and I.H. Osman, Routing problems: A bibliography. Annals of Operations Research, 1995. 61.
21. Golden, B.L. and A.A. Assad, Vehicle Routing: Methods and Studies. 1988, North-Holland, Amsterdam.
22. Dror, M. and P. Trudeau, Split Delivery Routing. Naval Research Logistics. Vol. 37. 1990.
23. Lawler, E.L., et al., The Traveling Salesman Problem. 1985, Chichester, UK: Wiley.
24. Golden, B., S. Raghavan, and E. Wasil, The Vehicle Routing Problem: Latest Advances and New Challenges.
Operations Research / Computer Science Interfaces. 2008: Springer.
25. Lenstra, J.K. and A.H.G.R. Kan, Complexity of Vehicle and Scheduling Problems, in Networks. 1981. p. 221-
227.
26. Solomon, M.M. and J. Desrosiers, Time Window Constrained Routing and Scheduling Problem, in Transportation
Science. 1988. p. 1-13.
27. Archetti, C., M. Mansini, and M.G. Speranza, Complexity and Reducibility of the Skip Delivery Problem, in
Transportation Science 2005. p. 182-187.
28. Backer, B.D., et al., Solving Vehicle Routing Problems using Constraint Programming and Meta heuristics, in Journal
of Heuristics. 1997, Kluwer Academic Publisher.
29. Seah, D., Ant Colonoy Optimization On Vehicle Routing Problems. 1999, National University of Singapore:
Singapore.
30. Cordeau, J.-F., et al., The Vehicle Routing Problem with Time Windows. The Vehicle Routing Problem, ed. P.
Toth and D. Vigo. 2002, Philadelphia: SIAM Publishing.
31.
Bräysy, O. and W. Dullaert, A Fast Evolutionary Metaheuristic for the Vehicle Routing Problem with Time Win-
dows. International Journal on Artificial Intelligence Tools, 2003. 12(2).
32. Bodin, L.D., Twenty years of routing and scheduling. Operations Research. 1990.
109 / 119
33. Corberan, A., et al., Heuristic solutions to the problem of routing school buses with multiple objectives. Journal of
the Operational Research Society, 2002. 53.
34. Swersey, A.J. and W. Ballard, Scheduling school buses, in Management Science. 1984.
35. Li, L. and Z. Fu., The school bus routing problem: a case study. Journal of the Operational Research Society,
2002. 53.
36. MasayaYoshikawa, M. Fukui, and H. Terai, A New Pheromone Control Algorithm of Ant Colony Optimization,
in International Conference on Smart Manufacturing Application. 2008: Gyeonggi-do, Korea.
37. Bektas, T., The multiple traveling salesman problem: an overview of formulations and solution procedures. Omega,
2006. 34: p. 209 - 219.
38. Junjie, P. and W. Dingwei. An Ant Colony Optimization Algorithm for Multiple Travelling Salesman Problem. in
First International Conference on Innovative Computing, Information and Control (ICICIC'06). 2006. Beijing.
39. Liu, W., et al., An ant colony optimization algorithm for the Multiple Traveling Salesmen Problem, in 4th IEEE Con-
ference on Industrial Electronics and Applications (ICIEA). 2009: Xi'an
40. Toth, P. and D. Vigo, The Vehicle Routing Problem. Monographs on Discrete Mathematics and Applica-
tions. 2002, Philadelphia.
41. Ball, M.O., et al., Network Routing. Handbooks in Operations Research and Management Science. Vol.
8. 1995, North-Holland, Amsterdam.
42. Nallusamy, R., et al., Optimization of Non-Linear Multiple Traveling Salesman Problem Using K-Means Cluste-
ring, Shrink Wrap Algorithm and Meta-Heuristics. International Journal of Nonlinear Science, 2009. 8.
43. Anderberg, M.R., Cluster analysis for applications. 1973, New York: Academic press.
44. Rizzoli, A.E., et al., Ant Colony Optimization for real world vehicle routing problems. Swarm Intelligence. Vol. 1.
2007, New York: Springer.
45. Carter, A.E. and C.T. Ragsdale, A New Approach in solving Multiple Travelling Salesman Problem using Genetic
Algorithm. European journal of operational research, 2005: p. 246-257
46. Gutin, G. and A.P. Punnen, The Traveling Salesman Problem and Its Variations. Combinatorial Optimizati-
on, ed. D.-Z. Du and P.M. Pardalos. Vol. 12. 2002: Kluwer Academic Publishers.
47. Thangavel, K., et al., Ant Colony Algorithms in Diverse Combinational Optimization Problems -A Survey. Auto-
matic Control and System Engineering, 2006. 6(1).
48. Chaovalitwongse, W., Optimization and Dynamical Approaches in Nonlinear Time Series Analysis with Applica-
tions in Bioengineering. 2003, University of Florida: Florida.
49. Rossi, F., P.v. Beek, and T. Walsh, Handbook of Constraint Programming. Foundations of Artificial Intelli-
gence, ed. J. Hendler, H. Kitano, and B. Nebel. 2006, Amsterdam, The Netherlands: Elsevier.
50. Luger, G.F., Artificial Intelligence - Structures and Strategies for Complex Problem Solving. 5th ed. 2005: Addison-
Wesley.
51. Poole, D.L. and A.K. Mackworth, Artificial Intelligence - Foundations of Computational Agents. 2010: Cam-
bridge University Press.
52. Engelbrecht, A.P., Computational Intelligence - An Introduction. Second Edition ed. 2007: John Wiley &
Sons, Ltd. 597.
53. S. N. Sivanandam and S.N. Deepa, Introduction to Genetic Algorithms. 2008: Springer. 442.
54. Kennedy, J., R.C. Eberhart, and Y. Shi, Swarm Intelligence. Evolutionary Computation, ed. D.B. Fogel.
2001: Morgan Kaufmann Publisher.
55. Houck, C.R., J. Joines, and M.G. Kay, A genetic algorithm for function optimization: A Matlab implementation,
in NCSU-IE TR. 1995.
56. Floreano, D. and C. Mattiussi, Bio-Inspired Artificial Intelligence - Theories, Methods and Technologies. Intelli-
gent Robotics and Autonomous Agents, ed. R.C. Arkin. 2008: The MIT Press.
57. Dorigo, M., et al. Ant Colony Optimization and Swarm Intelligence. in 4th International Workshop, ANTS 2004.
2004. Brussels: Springer.
58. Teodorovic, D.a., Swarm intelligence systems for transportation engineering: Principles and applications. Transpor-
tation Research Part C, 2008.
59. Dorigo, M., M. Birattari, and T.S. tzle, Ant Colony Optimization - Artificial Ants as a Computational Intelligence
Technique, in IEEE Computational Intelligence Magazine. 2006.
60. Zhang, J.-w. and W. Xiong, An Improved Particle Swarm Optimization Algorithm and its Application for Solving
Traveling Salesman Problem, in World Congress on Computer Science and Information Engineering. 2009: Wilshire
Grand Los Angeles, Los Angeles, USA.
61. Mohemmed, A.W., N.C. Sahoo, and T.K. Geok, Solving shortest path problem using particle swarm optimizati-
on, in Applied Soft Computing. 2006, Elsevier.
62.
Clerc, M., L’Optimisation par essaims particulaires. 2005: Lavoisier.
63. Mourelle, N.N.L.d.M., Swarm Intelligent Systems. Computational Intelligence, ed. J. Kacprzyk. Vol. 26.
2006: Springer.
110 / 119
64. Negulescu, S.C., C.V. Kifor, and C. Oprean, Ant Colony Solving Multiple Constraints Problem: Vehicle Route
Allocation. International Journal of Computers, 2008. Communications & Control(4).
65. Zidi, S., S. Maouche, and S. Hammadi. Real-time route planning of the public transportation system. in IEEE
Intelligent Transportation Systems Conference. 2006. Toronto, Canada.
66. Li, Y. and Z. Xul. An ant colony optimization heuristic for solving maximum independent set problems. in Proceedings
of Computational Intelligence and Multimedia Applications. 2003.
67. Gholami, F. and M.J. Mahjoob. An Investigation of Parameters in Ant Colony Optimization for a Path Optimiza-
tion Algorithm. in IEEE International Conference on Mechatronics and Automation. 2007. Harbin, China.
68. Blum, C., Ant Colony Optimization: Introduction and Hybridizations, in Seventh International Conference on Hybrid
Intelligent Systems. 2007: Kaiserslautern - Germany.
69. Dorigo, M., V. Maniezzo, and A. Colorni, Positive feedback as a search strategy, in Dipartimento di Elettronica.
1991, Politecnico di Milano: Italy.
70.
Dorigo, M., V. Maniezzo, and A. Colorni, Ant System: Optimization by a colony of cooperating agents, in IEEE
Transactions on Systems, Man, and Cybernetics—Part B. 1996, IEEE.
71.
̈tzle, T.S. and H.H. Hoos, MAX–MIN Ant System. Future Generation Computer Systems, 2000. 16(8).
72.
̈tzle, T.S. and H.H. Hoos. The MAX–MIN Ant System and local search for the traveling salesman problem. in
IEEE International Conference on Evolutionary Computation (ICEC’97). 1997. Piscataway, NJ: IEEE Press.
73. Gambardella, L.M., E.D. Taillard, and G. Agazzi, MACS-VRPTW: A multiple ant colony system for vehicle
routing problems with time windows. New Ideas in Optimization, ed. D.C.e. al. 1999, London, UK:
McGraw Hill.
74. Reimann, M., K. Doerner, and R.F. Hartl, D-ants: Savings based ants divide and conquer the vehicle routing
problem. Computers & Operations Research, 2004. 31(4).
75. Gambardella, L.M. and M. Dorigo, Ant Colony System hybridized with a new local search for the sequential orde-
ring problem. INFORMS Journal on Computing, 2000. 12(3).
76. Maniezzo, V., Exact and approximate nondeterministic tree-search procedures for the quadratic assignment problem.
INFORMS Journal on Computing, 1999. 11(4).
77.
Socha, K., J. Knowles, and M. Sampels. A MAX –MI N ant system for the university timetabling problem. in
ANTS 2002. 2002. Berlin, Germany: Springer.
78. Socha, K., M. Sampels, and M. Manfrin. Ant algorithms for the university course timetabling problem with regard
to the state-of-the-art. in EvoWorkshops 2003. 2003: Springer.
79. Merkle, D., M. Middendorf, and H. Schmeck, Ant colony optimization for resource-constrained project schedu-
ling. IEEE Transactions on Evolutionary Computation, 2002. 6(4).
80.
Solnon, C. Solving permutation constraint satisfaction problems with artificial ants. in ECAI’2000. 2000. Amster-
dam, The Netherlands: IOS Press.
81. Parpinelli, R.S., H.S. Lopes, and A.A. Freitas, Data mining with an ant colony optimization algorithm. IEEE
Transactions on Evolutionary Computation. Vol. 6. 2002: IEEE.
82. Martens, D., et al. Ant- based approach to the knowledge fusion problem. in ANTS 2006. 2006: Springer.
83. Campos, L.M.d., et al., Ant colony optimization for learning Bayesian networks. International Journal of
Approximate Reasoning, 2002. 31(3).
84. Campos, L.M.d., J.A. Gamez, and J.M. Puerta, Learning Bayesian networks by ant colony optimisation: Sear-
ching in the space of orderings. Mathware and Soft Computing, 2002. 9(2-3).
85. Dijkstra, E.W., A Note on Two Problems in Connexion with Graphs. Numerische Mathematik, 1959. 1: p.
269-271.
111 / 119
112 / 119
Apêndices
113 / 119
114 / 119
A - Distribuição dos locais de recolha/entrega, obtido através do Google
Earth
115 / 119
116 / 119
B - Ligações entre os locais do exemplo 3 e respectivos tempos de ligação
117 / 119
118 / 119
C - Ligações entre os locais do exemplo 4 e respectivos tempos de ligação
119 / 119