You are on page 1of 119

Universidade de Trás-os-Montes e Alto Douro

PLANEAMENTO DE TRANSPORTES ESCOLARES BASEADO EM OPTIMIZAÇÃO DE COLÓNIA DE FORMIGAS

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

Vila Real, 2010

DECLARAÇÃO

Rodrigo David Teixeira Henriques

Endereço electrónico: r.henriques@me.com

Titulo da Dissertação: Planeamento de Transportes Escolares baseado em Optimização de Colónia de Formigas

Ano de Conclusão: 2010

Vila Real, 2010

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 eﬁciente way.

In recent years there has been the use of concepts of Artiﬁcial Intelli- gence, namely Evolutionary Computing and Swarm Intelligence in ﬁn- 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 efﬁcient.

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.

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 eﬁciente.

Nos últimos anos tem-se veriﬁcado o uso de conceitos da Inteligência Artiﬁcial, 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 eﬁ- 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 eﬁcaz.

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.

De!co "ta obra à minha namorada e à minha família, que são a minha

in# iração e razão para continuar nos momentos ma\$ !fíce\$.

‹‹Toda a acção humana, quer se torne positiva ou negativa, precisa depender de motivação.›› (Dalai Lama)

No desenvolvimento de qualquer obra encontramos as mais diversas diﬁculdades. É através

das palavras de incentivo e encorajamento das pessoas que nos são próximas que somos

capazes de continuar. Desta forma gostaria de agradecer aos meus familiares, amigos e em especial à minha namorada pelo incentivo e pela compreensão demonstrado no decorrer

de todo este processo.

Gostaria de agradecer também ao professor António Cunha e ao professor Paulo Salgado

pelo tempo despendido e orientação. Graças à sua colaboração foi possível ultrapassar al-

guns dos obstáculos que surgiram.

Finalmente gostaria de agradecer a todos aqueles que directa ou indirectamente contribuí-

ram para que fosse possível concluir esta obra.

Rodrigo Henriques

Í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

4. Computação Evolutiva e Inteligência Colectiva

4.1. Computação Evolutiva

47

48

 4.1.1. Vantagens e Aplicações da Computação Evolutiva 51 4.1.2. Algoritmos Genéticos 53

4.2. Inteligência Colectiva

58

 4.2.1. Optimização de Enxame de Partículas 59 4.2.2. Optimização de Colónia de Abelhas 61 4.2.3. Optimização Colónia de Formigas 62

5. Caso de Estudo

5.1. Caracterização do Problema

5.1.1. Restrições do problema

5.2. Abordagem com Algoritmos Genéticos

71

72

73

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

5.3.1.

78

5.4.

 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 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

6. Considerações Finais

105

 6.1. Conclusões 105 6.2. Sugestões para Trabalhos Futuros 107

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

Índice Figuras

-------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------

Í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

-------------------------------------------------------------------------------------------------------------------------------

Acrónimos

Nesta dissertação são utilizadas abreviaturas de designações comuns apenas apresentadas aquando da sua primeira utilização:

IA - Inteligência Artiﬁcial

CE - Computação Evolutiva

IC - Inteligência Colectiva

AG - Algoritmos Genéticos

OCF - Optimização de Colónia de Formigas

PPV - Problema de Planeamento de Veículos

PCV - Problema do Caixeiro Viajante

PPVJT - Problema de Planeamento de Veículos com Janelas de Tempo

PPVED - Problema de Planeamento de Veículos com Entrega Dividida

PPVC - Problema de Planeamento de Veículos com Capacidade

PMCV - Problema dos Múltiplos Caixeiros Viajantes

AANSC - Associação de Assistência de Nossa Senhora das Candeias

‹‹Reparta o seu conhecimento. É uma forma de alcançar a imortalidade.››

Dalai Lama

1.INTRODUÇÃO

I

Nos últimos anos foi possível assistir a um interesse crescente entre os gestores e os proﬁssi-

onais dos transportes em explorar a viabilidade da aplicação de paradigmas de Inteligência

Artiﬁcial (IA) para melhorar a eﬁciê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].

A engenharia de transportes e o planeamento de transportes são duas faces da mesma mo-

eda, visando a concepção de uma infra-estrutura eﬁciente e serviços para satisfazer as nos-

comportamento humano. Por exemplo, em ergonomia 1 , modelos de acção-reacção são uti-

1 disciplina cientíﬁca relacionada com o entendimento das interacções entre seres humanos e outros elementos de um sistema.

lizados para se certiﬁcar 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].

O Problema do Planeamento de Transportes é um problema bastante complexo que por

vezes se assemelha ao Problema do Caixeiro Viajante (PCV), ou seja, um caixeiro viajante tem que visitar um determinado número de locais, apenas uma vez, da forma mais eﬁcien-

te. Este parece um problema relativamente simples de resolver, contudo quando lidamos

com um elevado número de locais, o número de combinações possíveis aumenta exponen- cialmente. Quando a estas condicionantes adicionarmos vários caixeiros viajantes, horários

a cumprir, capacidade dos veículos, o problema assume cada vez mais uma complexidade cuja resolução exige o recurso a sistemas computacionais. Com o recurso à utilização de

sistemas computacionais é possível obtermos soluções, contudo o tempo despendido no

processamento dos dados, em muitos dos casos, continua sendo muito elevado. Desta for- ma procuraram-se novas formas de abordar o problema. O recurso à Computação Evolu-

tiva (CE) e à Inteligência Colectiva (IC) apresenta-se como uma possível solução, que será devidamente explorada neste trabalho.

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 eﬁciente somente se o arma- zenamento e custo computacional do algoritmo de optimização forem mantidos a um nível

tolerável. Um conjunto diversiﬁcado de métodos de optimização em larga escala foi desen- volvido para atingir esse objectivo, cada um sendo particularmente eﬁcaz para tipos de de-

A optimização é um processo que já existe à bastante tempo. A natureza optimiza sistemas físicos de forma a tenderem para um estado de energia mínima, as moléculas de um siste-

ma químico isolado reagem umas com as outras até que a energia potencial total de seus eléctrons seja minimizada, raios de luz seguem caminhos que minimizam o tempo de via-

gem [3]. Estes são apenas alguns exemplos de optimização que ocorre na Natureza.

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].

Um algoritmo de optimização pode ser deﬁnido como um conjunto de instruções claras especiﬁcando como proceder, a partir de certas condições iniciais, até que alcancemos a

meta ﬁnal imposta inicialmente. Um ponto importante a acrescentar é que na maioria das

vezes o algoritmo não consegue atingir o objectivo exactamente pré-determinado, em vez disso chega a uma aproximação do objectivo [5].

Nesta dissertação é estudado o problema de organização dos transportes de uma institui- ção, sendo apresentada uma solução computacional cujo objectivo é a optimização do pla-

neamento dos transportes escolares. Tal problema conﬁgura um conjunto alargado e variá-

vel de locais a visitar pelos autocarros escolares visando a recolha de alunos para a institui- ção escolar. No exemplo real estudado existem cerca de setenta e nove locais, pelo que exis-

tem aproximadamente 7,156945 118 combinações possíveis. A recolha dos alunos é efectua- da através da utilização simultânea de vários veículos, podendo, após descarga, serem de

novo utilizados em nova recolha de passageiros. Devido ao elevado número de locais e às

múltiplas possibilidades, torna-se muito difícil efectuar um planeamento óptimo dos trans- portes apenas baseados em conhecimentos empíricos, bem como o cálculo computacional

de todas as possíveis ocorrências, pelo que se pretende desenvolver um algoritmo que efec-

tue esse mesmo planeamento de forma automática e optimizada. O planeamento dos

transportes deve, também, respeitar um conjunto de restrições. Este conjunto de restrições

aumenta ainda mais a complexidade do problema.

Numa primeira abordagem procurou-se solucionar o problema recorrendo a Algoritmos

Genéticos (AG). Obtiveram-se alguns resultados positivos, contudo surgiram alguns pro- blemas que, juntamente com a complexidade do algoritmo, obrigaram a encontrar outra

forma de solucionar o problema, recaindo a escolha na Optimização de Colónia de Formi-

gas (OCF) pelas razões que serão constatadas na apresentação do algoritmo. A OCF apre- senta características diferentes dos AG, contudo a sua implementação é bastante mais sim-

O presente capítulo procura incorporar todo o projecto. A descrição da organização da

dissertação, aqui a ser apresentada, encerram o capítulo inicial.

No segundo capítulo é apresentada uma introdução ao tema do Planeamento de Transpor-

tes, abordando o Problema do Planeamento de Veículos (PPV) bem como apresentadas as noções e características do PCV.

No terceiro capítulo é apresentada uma breve introdução ao tema da Optimização, área onde se insere o problema abordado no Caso de Estudo.

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

No quinto capítulo é apresentado o caso de estudo, bem como as abordagens efectuadas ao

problema proposto. Numa primeira abordagem foi desenvolvida uma solução parcial com

AG, esta representa um investimento de tempo considerável e através da qual se obtiveram conhecimentos para o desenvolvimento da solução ﬁnal. A segunda abordagem, e possível

solução para o problema, tem por base a OCF.

O sexto capítulo termina esta dissertação, contendo a discussão dos resultados e sugestões

para trabalhos futuros.

‹‹Parte da ausência de humanidade do computador deve- se a que, competentemente programado e trabalhando bem, é completamente honesto››

Isaac Asimov

2

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 é signiﬁ-

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

O sucesso da utilização de técnicas de Pesquisa Operacional deve-se ao desenvolvimento de

sistemas informáticos, tanto do ponto de vista do hardware como do software e à crescente

integração dos sistemas de informação nos processos produtivos e comerciais [4]. Outro

factor de sucesso, tão importante quanto os outros, é o desenvolvimento de ferramentas de

modelação e algoritmos eﬁcazes desenvolvidos nos últimos anos. De facto, os modelos pro- postos têm em conta todas as características dos problemas decorrentes da distribuição de

aplicações do mundo real, e os algoritmos correspondentes e suas implementações informá- ticas encontram boas soluções para situações do mundo real em tempos computacionais

aceitáveis [4].

O PPV remonta ao ﬁnal dos anos cinquenta do século passado quando Dantzig e Ramser deﬁniram 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 proﬁssionais 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 eﬁcaz 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 classiﬁcaçã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 ﬁnal dos anos 80. Outras pesquisas abrangendo algoritmos exactos, mas frequentemente dedicadas aos métodos heurísticos,

foram apresentadas por Christoﬁdes, Mingozzi, e Toth [11], Magnanti [12], Bodin et al. [13], Christoﬁdes [14], Laporte [15], Fisher [16], Toth e Vigo [17], e Golden et al. [18].

Uma lista bibliográﬁca foi proposta por Laporte [19], e um extenso levantamento biblio-

gráﬁco 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-

2 foram a origem, a semente.

tado por Dror [22]. O caso particular do PPV que surge quando existe apenas um único

veículo disponível no depósito e sem restrições operacionais adicionais impostas é ampla- mente descrito no clássico livro editado por Lawler et al. em 1985 [23].

O PPV é um dos problemas de optimização combinatória mais estudados e diz respeito ao

planeamento de rotas para serem utilizadas por uma frota de veículos de forma a servirem

um conjunto de clientes. Desde que foi primeiramente proposto por Dantzig e Ramser [7],

centenas de trabalhos têm sido dedicados à busca pela solução exacta e aproximada das muitas variantes do problema, tais como o Problema do Planeamento de Veículos com Ca-

pacidade (PPVC), ou o PPVJT [24].

 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 especiﬁcamente de plane- amento de veículos, tem um considerável impacto económico em todos os sistemas de lo-

gística [6].

A deﬁniçã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íﬁcos 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

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ástico 3 ,

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-hard 4 . Embora a abordagem heurística 5 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

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].

Lenstra Rinnooy e Kan [25] analisaram a complexidade do problema de planeamento e

concluíram que praticamente todos os problemas de planeamento de veículos são NP-hard (entre eles o clássico PPV), uma vez que não são resolvidos em tempo polinomial.

Segundo Solomon e Desrosiers [26], o PPVJT também é NP-hard, porque é uma extensão

do PPV. Apesar do PPVJT ser uma simpliﬁcação do PPV, ainda é NP-hard [22] [27].

3 diz-se que depende das leis do acaso.

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íﬁca; método analítico para a descoberta de verdades cientíﬁcas.

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 deﬁnidas 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 deﬁciê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

A rede rodoviária, utilizada para o transporte de mercadorias, é geralmente descrita através

de um grafo, cujos arcos representam os troços de estrada e cujos vértices correspondem

aos cruzamentos, o depósito e os locais dos clientes. Os arcos podem ser direccionados ou não direccionados, consoante se podem ser percorridos em apenas uma direcção (por

exemplo, devido à presença de ruas de sentido único, típico de redes urbanas ou de auto- estradas) ou em ambas as direcções, respectivamente. A cada arco está associado um custo,

que geralmente representa o seu comprimento e um tempo de viagem (duração), que é

possivelmente dependente do tipo de veículo ou do período durante o qual o arco é percor- rido. As características típicas dos clientes são [4]:

- vértice do gráﬁco da estrada em que o cliente se encontra;

- quantidade de produtos (procura), possivelmente de tipos diferentes, que devem ser

entregues ou recolhidos no cliente;

- períodos do dia (janelas de tempo) durante o qual o cliente pode ser servido (por

exemplo, períodos especíﬁcos durante o qual o cliente está disponível ou o local

pode ser alcançado, devido às limitações de tráfego);

- tempos necessários para entregar ou recolher a mercadoria no local do cliente

(tempo de descarga ou carga, respectivamente), possivelmente dependente do tipo

de veículo,

- 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].

As rotas realizadas para atender os clientes começam e terminam em um ou mais depósi-

tos, localizados nos vértices do grafo. Cada depósito é caracterizada pelo número e tipos de veículos a ele associados e pelo montante global de produtos com os quais podem lidar. Em

algumas aplicações do mundo real, os clientes são divididos à priori entre os depósitos e os veículos têm de regressar ao seu depósito no ﬁnal de cada percurso. Nestes casos, o PPV

global pode ser decomposto em vários problemas independentes, cada um associado a um

depósito diferente [4].

Transporte de mercadorias é efectuado usando uma frota de veículos, cuja composição e

tamanho pode ser ﬁxo ou pode ser deﬁnido de acordo com as exigências dos clientes. As características típicas dos veículos são [4]:

- depósito inicial do veículo e a possibilidade de terminar o serviço num depósito que

não o inicial;

- capacidade do veículo, expressa em termos de peso máximo, volume ou qualquer

outra forma de quantiﬁcação da capacidade que o veículo pode carregar;

- subdivisão do veículo em compartimentos, cada um caracterizado pela sua capaci-

dade de e pelo tipo de bens que pode transportar;

- dispositivos disponíveis para as operações de carga e descarga;

- subconjunto de arcos do grafo que pode ser percorrido pelo veículo;

- 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

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 ﬁxa

[4].

A avaliação do custo global das rotas e a veriﬁcaçã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 ﬁm, 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 é deﬁnido um arco (i, j) cujo custo c ij é 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 t ij , 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,

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]:

- minimização do custo global de transporte, dependente da distância percorrida

global (ou sobre o tempo de viagem global) e os custos ﬁxos associados com os veí-

culos usados (e com os condutores correspondentes);

- minimização do número de veículos (ou condutores) necessários para servir todos os

clientes;

- balanceamento das rotas, quer em termos de tempo de viagem quer em carga dos

veículos;

- minimização das sanções associadas ao serviço parcial dos clientes;

- ou qualquer combinação ponderada desses objectivos.

Em algumas aplicações, cada veículo pode operar mais de uma rota no período de tempo

considerado ou as rotas podem durar mais de um dia. Além disso, por vezes, é necessário considerar versões estocásticas ou dinâmicas tempo-dependentes do problema, ou seja,

problemas para os quais, à priori, há apenas um conhecimento parcial da procura dos clien- tes ou dos custos (e os tempos de viagem) associados com os arcos do grafo [4].

2.1. Problema do Planeamento de Veículos com Janelas de Tempo

Um PPV geral pode ser formalmente deﬁnido como se segue: dado um número ﬁxo N ou

um número inﬁnito de veículos com capacidade limitada cv (medida em peso ou volume) e M' pedidos dos clientes, em que cada pedido rq j exige um serviço de entrega para Q j 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-

- qualquer pedido rq j do cliente só deve ser servido por um único veículo;

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

- quando uma janela de tempo com o tempo inicial E j e o tempo ﬁnal L j , é especiﬁ-

cada para cada entrega num PPVJT, o tempo de chegada T vj do veículo v para ser-

vir o pedido rq j do cliente deve encontrar-se dentro do tempo especiﬁcado, que é E j

T vj L j .

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].

2.2. Problema do Planeamento de Veículos com Entrega e Re- colha

Na versão básica do PPVRE, cada cliente i está associado a duas quantidades d i e p i , repre-

sentando a procura por produtos homogéneos para serem entregues e/ou recolhidos no

cliente i, respectivamente. Às vezes, apenas uma quantidade D i =d i -p i é 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, O i indica o vértice que está na origem do pedido de

entrega e D i 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 é deﬁnida pela carga inicial menos to-

dos os pedidos já entregues mais todos os pedidos recolhidos [4].

O PPVRE consiste em encontrar um conjunto de exactamente K circuitos simples com um

custo mínimo de tal forma que [4]:

- cada circuito visite o vértice depósito,

- 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 O i , quando diferente do depósito, deve ser servido no

mesmo circuito, e antes do cliente i,

- para cada cliente i, o cliente D i , quando diferente do depósito, deve ser servido no

mesmo circuito e depois do cliente i.

2.3. Problema do Planeamento de Veículos com Capacidade

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

2.4. Problema do Planeamento de Transportes Escolares

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-

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 ﬁnal da tarde[32] [34]. Cada Problema de Planeamento de Transportes Escolares tem ob-

jectivos diferentes e/ou restrições:

- número máximo de paragens por autocarro,

- comprimento máximo (ou duração) de cada viagem,

- tempo de permanência no autocarro por parte dos alunos.

O Problema de Planeamento de Transportes Escolares, geralmente, possui os seguintes

objetivos [33] [35]:

- minimização dos custos de transporte,

- minimização do tempo de transporte,

- minimização do tempo que um estudante permanece no autocarro,

- minimização do número de autocarros necessários,

- minimização do tempo de viagem da frota,

- balanceamento da carga do autocarro e comprimentos da rota.

2.5. Problema do Caixeiro Viajante

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 deﬁnidos, visitan- do cada local apenas uma vez e retornando ao local de partida, da forma mais eﬁciente, ou

seja, em menor tempo e com a rota mais pequena. Existem muitos estudos sobre soluções eﬁcazes 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 :

- 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 ﬁxo enquanto o segundo é no- meado como o caso destino não ﬁxo.

- número de vendedores: O número de caixeiros viajantes no problema pode ser de- ﬁnido como variável ou ﬁxo.

- custos ﬁxos: quando o número de caixeiros viajantes do problema não é ﬁxo, cada

vendedor tem geralmente um custo ﬁxo 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íﬁcos, 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.

2.5.1. Múltiplos Caixeiros Viajantes

O PMCV é uma extensão do PCV [38]. Ao contrário do PCV que tem sido amplamente

pesquisado nos últimos anos, o PMCV, não é tão apelativo nem tão intensamente estudado.

Contudo, o PMCV pode ser usado para modelar muitas aplicações do mundo real [39]. O PMCV é ainda mais difícil do que o PCV e com mais complexidade combinatória [39].

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 especiﬁcado 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 deﬁnido

em termos da distância, do tempo, e outros [39].

Extensas bibliograﬁas 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 classiﬁcar 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 artiﬁcial.

‹‹ O conhecimento nos faz responsáveis.››

Ernesto Che Guevara

3

3.INTRODUÇÃO À OPTIMIZAÇÃO

Grosseiramente falando podemos considerar a optimização como uma metodologia que

requer dois elementos fundamentais: (1) a adaptação e a ﬁnalidade. Estritamente falando,

podemos deﬁnir a optimização como: a mudança, modiﬁcação, adaptação sistemática, de um processo que visa (2) alcançar um objectivo pré-determinado. Este efeito pode ser o va-

lor máximo/mínimo de uma função numérica deﬁnida pelo utilizador. Em outras palavras, a optimização deve envolver um elemento teológico de saber o que vamos fazer (maximizar

uma função), mas uma ignorância da forma, o percurso geral conducente à meta. A reso-

lução prática desta situação paradoxal é a essência de toda a área de pesquisa chamada teoria de optimização [5].

Com base neste entendimento um algoritmo de optimização pode ser deﬁnido como um conjunto de instruções claras especiﬁcando como proceder, a partir de certas condições ini-

ciais, até que alcancemos a meta ﬁnal imposta inicialmente. Um ponto importante a acres-

centar é que na maioria das vezes o algoritmo não consegue atingir exactamente o objecti-

vo pré-determinado, em vez disso chega a uma aproximação do objectivo. Em aplicações

cientíﬁcas e de engenharia, há sempre um grau de tolerância e de erros, permitindo-nos aceitar como certas soluções quasi-óptimas. Isto signiﬁca 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].

A optimização é uma ferramenta importante na ciência e na análise de sistemas físicos.

Para fazer uso dessa ferramenta, é preciso primeiro identiﬁcar uma medida quantitativa do desempenho do sistema em estudo, um objectivo. Este objectivo poderá ser o lucro, o tem-

po, a energia potencial, ou qualquer quantidade ou combinação das quantidades que po- dem ser representados por um único número. O objectivo depende de certas características

do sistema, chamadas de variáveis ou incógnitas. O objectivo é encontrar os valores das

variáveis que optimizam o objectivo. Muitas vezes, as variáveis são limitadas, ou restritas,

de alguma forma. Por exemplo as quantidades, como a densidade de eléctrons numa molé-

cula e a taxa de juros de um empréstimo não podem ser negativas [3].

Problemas de optimização combinatória são intrigantes porque são frequentemente fáceis

de declarar, mas muito difíceis de resolver. Muitos dos problemas relacionados com as apli-

cações são do tipo NP-hard, ou seja, acredita-se fortemente que não podem ser resolvidos de forma optimizada num tempo de computação limitado polinomialmente. Desta forma

para resolver casos de grandes instancias muitas vezes tem que se usar métodos aproxima- dos que retornam soluções quasi-óptima num tempo relativamente curto. Algoritmos deste

tipo são vagamente chamados de heurística. Costumam usar conhecimentos de problemas

especíﬁcos para construir as melhores soluções [47].

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 deﬁnir os métodos heurísticos aplicáveis a um vasto

conjunto de problemas diferentes. Em outras palavras, uma meta-heurística pode ser vista

como um método heurístico de uso geral destinado a orientar um problema subjacente

especíﬁco 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

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íﬁca: 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íﬁcas 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íﬁcas 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 diﬁculdade 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].

Apesar de muitos problemas de optimização discreta serem lineares, há também um gran-

de número de problemas práticos que são do tipo não-lineares. Por exemplo, num proble- ma de alocação linear, pode ser necessário levar em consideração os custos não-lineares da

função objectivo, então este problema torna-se um problema de alocação não-linear. Uma

versão conhecida não-linear de um problema de alocação linear é o problema quadrático de alocação [48].

3.1. Optimização Contínua e Optimização Discreta

Em alguns problemas de optimização as variáveis só fazem sentido se assumirem valores

inteiros. Por exemplo, uma variável x i pode representar o número de centrais eléctricas do

tipo I, que devem ser construídas por um fornecedor de electricidade durante os próximos cinco anos, ou poderia indicar se uma fábrica especial, deve ou não ser localizada numa

determinada cidade. Problemas deste tipo são chamados de problemas de programação inteira. Se alguma das variáveis do problema não está restrita a ser inteira ou variáveis bi-

nárias, então, os problemas, são às vezes chamados de problemas de programação inteira

mista [3].

Problemas de programação inteira são um tipo de problema de optimização discreta. Ge-

ralmente, os problemas de optimização discreta podem conter não apenas números inteiros

e variáveis binárias, mas também variáveis objecto mais abstractas, tais como permutações

de um conjunto ordenado. A característica que deﬁne um problema de optimização discre-

ta é que o x desconhecido é tirado de um conjunto ﬁnito (mas muito grande). Em contra- partida o conjunto de soluções viáveis para problemas de optimização contínua geralmente

são inﬁnitos sendo x um número real. Problemas de optimização contínua são normalmen- te mais fáceis de resolver porque as funções tornam possível a utilização de informações

objectivas e de restrições num determinado ponto x para deduzir informações sobre a fun-

ção, o comportamento em todos os pontos perto de x. Em problemas discretos, por contras- te, o comportamento do objectivo e restrições podem alterar-se signiﬁcativamente à medida

que se deslocam de um ponto viável para o outro, mesmo se os dois pontos são próximos, por alguma medida. Os conjuntos de soluções viáveis para problemas de optimização dis-

creta podem ser pensados como possuindo uma forma extrema de não convexidade [3].

3.2. Optimização Restrita e Não Restrita

Problemas com a forma geral podem ser classiﬁcados 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].

Problemas de optimização restrita surgem a partir de modelos em que as restrições desem-

penham um papel essencial, por exemplo, na imposição de restrições orçamentais num problema económico ou restrições na forma de um problema de design. Estas restrições po-

dem ser simples, tais como limites 0 x 1 100, ou desigualdades não-lineares que repre-

sentam relações complexas entre as variáveis. Quando a função objectivo e as restrições são

funções lineares de x, o problema é um problema de programação linear. Problemas deste tipo são provavelmente os mais amplamente formulados e resolvidos de todos os problemas

de optimização, especialmente na gestão ﬁnanceira, económica e aplicações. Problemas de programação não-linear em que pelo menos algumas das restrições ou o objectivo são fun-

ções não-lineares, tendem a surgir naturalmente nas ciências físicas e engenharia, sendo

3.3. Optimização Estocástica e Determinística

Em alguns problemas de optimização, o modelo não pode ser completamente especiﬁcado, pois depende das quantidades que são desconhecidas no momento da formulação. Esta

característica é compartilhada por muitos modelos de planeamento económico e ﬁnancei-

ro, que pode depender, por exemplo, das taxas de juros futuras, a procura futura de um produto, os preços das comodidades futuras, mas a incerteza pode surgir naturalmente em

quase qualquer tipo de aplicaçã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 quantiﬁcações de incerteza para produzir soluções que optimizam o desempenho esperado do modelo [3].

3.4. Algoritmos de Optimização

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 c i , 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-

- robustez - devem executar bem numa variedade de problemas da sua classe, para

todos os valores razoáveis do ponto de partida.

- eﬁciência - não devem necessitar de tempo excessivo do computador ou de arma-

zenamento.

- precisão - devem ser capazes de identiﬁcar uma solução com precisão, sem ser ex-

cessivamente sensíveis a erros nos dados ou a erros de aritmética de arredondamen-

Esses objectivos podem entrar em conﬂito. 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 ﬁrme compreensão da teoria de apoio [3].

3.5. Pesquisa Local

A pesquisa local é um dos paradigmas fundamentais para a resolução de problemas com-

binatórios computacionalmente difíceis. Fornecendo a base para alguns dos mais bem su-

cedidos e versáteis métodos para solucionar problema difíceis encontrados em muitas apli- cações na vida real. Apesar dos avanços impressionantes na sistemática e nos algoritmos de

pesquisa completa, os métodos de pesquisa local em muitos casos, representam o único caminho viável para a resolução desses casos grandes e complexos. Algoritmos de Pesquisa

Local são naturalmente adequados para lidar com os critérios de optimização que surgem

em muitas aplicações práticas [49].

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

modiﬁcaçõ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].

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 ﬂexíveis na medida em que podem

ser facilmente adaptados às mudanças na especiﬁcaçã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].

‹‹A natureza é o único livro que oferece um conteúdo valioso em todas as suas folhas.››

Goethe

4

4.COMPUTAÇÃO EVOLUTIVA E INTELIGÊNCIA COLECTIVA

A IA pode ser deﬁnida 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, é ﬂexível em ambientes dinâmicos,

computacionais. Um agente não pode normalmente observar o estado do mundo directa- mente, tem uma memória ﬁnita e não tem tempo ilimitado para agir [51].

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].

O objectivo cientiﬁco central da IA é compreender os princípios que tornam possível o

comportamento inteligente em sistemas naturais ou artiﬁciais. Isso é feito através da análise dos agentes naturais e artiﬁciais, formulando e testando hipóteses sobre o que é necessário

para a construção de agentes inteligentes, através da concepção, construção e experimenta- ção de sistemas computacionais que executem tarefas que se assumem como necessitando

de inteligência. O objectivo central da engenharia da IA é o desenho e síntese de artefactos

úteis e inteligentes [51].

4.1. Computação Evolutiva

A evolução é um processo de optimização onde o objectivo é melhorar a capacidade de um organismo (ou sistema) para sobreviver em ambientes em mutação dinâmica e competitiva.

Evolução é um conceito que tem sido debatido ao longo dos séculos. Quando se fala em

evolução é importante identiﬁcar a área em que a evolução pode ser deﬁnida, por exemplo, cósmica, química, estelar e planetária, orgânica ou sistema sintético de evolução. Para estas

diferentes áreas a evolução pode ser interpretada de forma diferente [52].

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]:

- a evolução é um processo que opera sobre cromossomas e não sobre os organismos. Os primeiros são ferramentas de codiﬁcação da estrutura orgânica de um ser vivo,

ou seja, uma criatura é "construída" descodiﬁcando um conjunto de cromossomas.

- a selecção natural é o mecanismo que relaciona cromossomas com a eﬁciência da entidade que representam, permitindo assim que o organismo eﬁciente, que está

mais bem adaptado ao ambiente, se reproduza mais frequentemente do que aqueles que não são.

- o processo evolutivo ocorre durante a fase de reprodução. Existe um grande núme-

ro de mecanismos de reprodução na natureza. Os mais comuns são a mutação (que faz com que os cromossomas da prole sejam diferentes daqueles dos pais) e recom-

binação (que combina os cromossomas dos pais para produzir a prole).

Um algoritmo evolutivo é um processo iterativo e estocástico 6 que opera sobre um conjunto

de indivíduos (população). Cada indivíduo representa uma solução potencial para o pro-

blema ser resolvido. Esta solução é obtida por meio de um mecanismo de codiﬁcação/des- codiﬁcação. Inicialmente a população é gerada aleatoriamente (talvez com a ajuda de uma

construção heurística). A cada indivíduo da população é atribuído, por meio de uma fun- ção de aptidão, uma medida da sua capacidade para solucionar o problema em questão.

Este valor é a informação quantitativa que o algoritmo usa para orientar a pesquisa [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-

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].

6 processos que dependem das leis do acaso.

A CE incorpora estes princípios evolutivos em algoritmos que podem ser utilizados para

procurar as melhores soluções para um problema. Num algoritmo de pesquisa estão dispo- níveis uma série de possíveis soluções para um problema e a tarefa é encontrar a melhor

solução possível num determinado período de tempo. Para um espaço de busca com ape- nas um pequeno número de soluções possíveis, todas as soluções podem ser examinadas em

uma quantidade razoável de tempo e uma óptima encontrada. Entretanto, esta pesquisa

exaustiva rapidamente se torna impraticável como o aumento do tamanho do espaço de busca. Algoritmos de pesquisa tradicionais pesquisam o espaço de busca por uma solução,

da cada vez, na esperança de encontrar a solução ideal. O aspecto principal que distingue um algoritmo de pesquisa evolutiva de tais algoritmos tradicionais é que é de base popula-

cional. Através da adaptação de gerações sucessivas de um grande número de indivíduos,

um algoritmo evolutivo realiza uma pesquisa eﬁciente dirigida. Pesquisa evolutiva é geral- mente melhor do que a pesquisa aleatória [53].

A CE começou aplicando ideias da teoria da evolução biológica na computação e continua

com atenção aos novos achados de pesquisas biológicas em busca de inspiração [53].

Segundo Engelbrecht [52] foram desenvolvidas diferentes classes de Algoritmos Evolutivos:

- Algoritmos Genéticos que modelam a evolução genética;

- Programação Genética que é baseada em AG, mas os indivíduos são programas

em evolução (evolução fenotípica);

- 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;

- Evolução Diferencial que é similar aos AG diferindo no mecanismo de reprodução utilizado;

- Evolução Cultural que modela a evolução da cultura de uma população e como a

cultura inﬂuencia a evolução genética e fenotípica dos indivíduos;

- 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].

4.1.1. Vantagens e Aplicações da Computação Evolutiva

As técnicas de CE têm atraído, nas últimas duas décadas, atenção como método de optimi- zação. Do ponto de vista da optimização, a principal vantagem das técnicas de CE é que

não têm muita necessidade de modelar matematicamente o processo a optimizar nem o método de optimização. Tudo o que precisamos é de uma avaliação da função objectivo.

Como resultado, são aplicados a problemas não-lineares, deﬁnidos em espaços de pesquisa

discreta, contínua ou mista, restrita ou irrestrita. As aplicações da CE incluem os seguintes campos [53]:

 - medicina (por exemplo, na detecção de cancro da mama), - engenharia de aplicação (incluindo produção eléctrica, mecânica, civil, aeronáutica e robótica), - problema do caixeiro viajante, - inteligência das máquinas, - sistemas proﬁssionais, - redes de comunicação sem ﬁos, - e assim por diante.

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 ﬁnal de uma execução de optimização. Os Algoritmos Evolutivos são ﬂexíveis e relativamente fáceis de cruzar com

heurísticas dependentes do domínio, facto que os torna eﬁcientes [53].

Segundo Sivanandam [53] a CE apresenta as seguintes vantagens:

- simplicidade conceptual – uma das principais vantagens da CE é que é conceptu-

almente simples. O algoritmo consiste na inicialização, a variação iterativa e selec- ção da função de desempenho. A eﬁcácia de um algoritmo evolutivo depende da

variação e selecção dos operadores aplicados a uma representação escolhida e da

inicialização.

- ampla aplicabilidade – os algoritmos evolutivos podem ser aplicados a todos os pro-

blemas que podem ser formulados como problemas de optimização de função. Para resolver estes problemas exige uma estrutura de dados para representar e avaliar

soluções. Os algoritmos evolutivos são desenvolvidos de modo adaptável. Isso faz

com que a CE possa ser aplicada a grandes áreas.

- capacidade híbrida – os Algoritmos Evolutivos podem ser combinados com outras

técnicas de optimização tradicional. A CE pode ser utilizada para optimizar o de- sempenho das redes neurais, sistemas fuzzy, sistemas de produção, entre outros.

- paralelismo – a evolução é um processo altamente paralelo. Quando o processa-

mento distribuído se tornar mais visível, haverá um aumento do potencial para a aplicação de CE em problemas reais mais complexos. Geralmente as soluções indi-

viduais são avaliados de forma independente das avaliações atribuídas às soluções concorrentes. A avaliação de cada solução pode ser tratada em paralelo e a selecção

requer apenas uma operação em série. Com efeito, o tempo de execução necessári-

os para uma aplicação pode ser inversamente proporcional ao número de processa- dores. Além disso, as máquinas de computação actuais fornecem velocidade com-

putacional suﬁciente para gerar soluções para problemas difíceis, em tempo razoá- vel.

- 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.

4.1.2. Algoritmos Genéticos

A CE surgiu em 1960 por Ingo Rechenberg no trabalho "Estratégias de Evolução". Essa

ideia foi então desenvolvida por outras pesquisas. Os Algoritmos Genéticos (AG) foram in- ventados por John Holland que desenvolveu essa ideia no seu livro "A adaptação em siste-

mas naturais e artiﬁciais" no ano de 1975. Holland propôs os AG como um método heurís-

tico baseado em "A sobrevivência do mais apto". Os AG tornaram-se uma ferramenta útil para a pesquisa e os problemas de optimização [53]. Entre as técnicas evolutivas, os AG são

o grupo mais alargado de métodos que representam a aplicação de ferramentas evolutivas. Eles contam com o uso de uma selecção, cruzamento e os operadores de mutação. A subs-

tituição ocorre geralmente por gerações de novos indivíduos [53].

Intuitivamente um AG prossegue criando sucessivas gerações de indivíduos cada vez mais aptos através da aplicação de operações muito simples. A pesquisa é guiada apenas pelo

valor de aptidão associado a cada indivíduo da população. Esse valor é usado para classiﬁ- car os indivíduos em função da sua aptidão relativa para solucionar o problema [53].

a)História

Charles Darwin aﬁrmou 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 eﬁciência, a semelhança en- tre tubarões e golﬁnhos e assim por diante, que reﬂectem 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].

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

Os AG são actualmente os modelos computacionais evolutivos mais importantes e mais

cem uma base para a compreensão de muitos outros sistemas e fenómenos do mundo [53].

c)Algoritmos Genéticos – Noções Básicas

Evolução através da selecção natural numa população de indivíduos escolhidos aleatoria-

mente pode ser pensada como uma busca através do espaço de valores possíveis de cromos- somas. Nesse sentido, um algoritmo evolutivo é uma pesquisa estocástica de uma solução

óptima para um dado problema [52].

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 eﬁciê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 descodiﬁcado 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:

- o cromossoma - matéria-prima, a informação genética;

- o fenótipo - expressão do cromossoma, em termos do modelo.

Um cromossoma está subdividido em genes. Um gene é a representação de um único factor de controle. Cada factor no conjunto solução corresponde ao gene no cromos-

soma. Um cromossoma deve de alguma forma conter informações sobre a solução que ele representa. A função morfogênese associa cada genótipo com o seu tipo de

fenótipo. Signiﬁca simplesmente que cada cromossoma tem de deﬁnir uma solução

única, mas isso não signiﬁca que cada solução é codiﬁcada por exactamente um cro- mossoma [53].

(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 deﬁnem o fenótipo dos indivíduos e algumas infor-

mações sobre o espaço de busca [53].

A utilização dos AG depende da deﬁnição de seis importantes questões: representação dos cromossomas, função de selecção, iniciação, operadores genéticos responsáveis pela função

de reprodução, critério de paragem e a função de avaliação [55].

(i)Representação dos cromossomas

Um cromossoma representa um indivíduo da população, sendo que uma população é

um conjunto ﬁnito de indivíduos. O esquema de representação determina como o

alfabeto. Um alfabeto pode ser constituído por dígitos binários (0 e 1), números, sím-

bolos (a,b,c,d,

),

matrizes, entre outros [55].

(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].

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].
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
0.4
0.4 1.0 3.4 0.6 2.2 0.6
e)
d)
A
B
C D E
F G
G
F
C D B
A E
E
B C D
G F A E

Figura 1 - Representação gráﬁca de vários tipo de cruzamento [56].

Cruzamento de um ponto pode ser aplicado a representações discretas e de valores

reais. É constituído por uma selecção aleatória de um ponto de cruzamento em cada um dos dois arrays e pela troca do material genético dos dois indivíduos em torno

deste ponto (ﬁgura 1, a). Cruzamento multi-ponto consiste em seleccionar aleatoria- mente múltiplos (n) pontos de cruzamento nos dois arrays e trocar o material genético

dos dois indivíduos entre os pontos [56].

Para representações de valores reais pode-se também escolher entre o cruzamento uniforme e o aritmético. Cruzamento uniforme consiste em trocar o conteúdo gené-

tico de n posições das duas sequências genéticas escolhidas ao acaso (ﬁgura 1, b). Cruzamento aritmético, por sua vez, cria um único genótipo, tomando a média das n

posições escolhidas aleatoriamente das duas sequências genéticas [56], originando

uma nova sequência genética (ﬁgura 1, c).

Quando o genótipo representa uma sequência, o operador cruzamento deve respei-

tar mais restrições. Por exemplo, no caso do PCV deseja-se alterar a ordem pela qual cada cidade é visitada, garantindo que todas as cidades são visitadas e que nenhuma

que correspondem a todas as cidades e não deve conter múltiplas instâncias do mes- mo símbolo. O operador cruzamento cria um genótipo, contendo uma parte selecci-

onada aleatoriamente de um array e preencher os espaços restantes com os locais res- tantes organizados na ordem que aparece na outra sequência (ﬁgura 1, d). Para re-

presentações baseadas em árvores, o cruzamento selecciona aleatoriamente um nó

em cada um dos pais e troca a duas sub-árvores correspondentes (ﬁgura 1, e) [56].

Figura 2 - Representação gráﬁca de vários tipos de mutações [56].

Na representação binária a mutação consiste em alternar os valores de bits seleccio-

Gaussiana N (m, σ ), onde m é a média e σ é a variância, a ﬁm de produzir algumas

grandes mutações (ﬁgura 2, b). Nas representações que descrevem sequências, como no exemplo do PCV, a mutação consiste em trocar o conteúdo de duas posições esco-

lhidas aleatoriamente no genótipo do indivíduo (ﬁgura 2, c). Neste último caso, a probabilidade de mutação refere-se a indivíduos e não a posições no genótipo. Nas

representações baseadas em árvores, a mutação consiste em alterar o conteúdo de um

nó seleccionado com outro elemento do mesmo conjunto (ﬁgura 2, d). Se o nó selec-

cionado é um terminal, ele será substituído por um outro elemento escolhido aleato-

riamente a partir do terminal. Se o nó é uma função, ele será substituído por um ou- tro elemento escolhido aleatoriamente a partir do subconjunto de funções pertencen-

te ao conjunto de funções que tem o mesmo número de terminais [56].

(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 especiﬁcaçã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 inﬂuenciam 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íﬁco, 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 deﬁnir 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].

4.2. Inteligência Colectiva

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-

tribuídos, simultâneos pode emergir um resultado colectivo muito complexo [57]. Desi-

gnamos este comportamento por Inteligência Colectiva (IC).

A IC é uma das principais características de muitas espécies na natureza. Rebanhos de

animais terrestres, cardumes de peixes e bandos de aves são criados como resultado de ne- cessidades biológicas para permanecer juntos. Foi observado que, desta forma, os animais

podem às vezes confundir potenciais predadores (o predador poderia, por exemplo, con-

fundir o cardume de peixes como sendo um único animal maior). Ao mesmo tempo, os in- divíduos quando inseridos no grupo tem mais hipóteses de sobreviver, uma vez que os pre-

dadores, geralmente, atacam um único indivíduo [58].

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 ﬂexíveis e podem-se adaptar bem às mudan-

ças do ambiente. Esta ﬂexibilidade 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íﬁcos, 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].

A IC é uma abordagem relativamente nova para a resolução de problemas que se inspira

no comportamento social de insectos e outros animais. Em particular, as formigas têm ins-

pirado uma série de métodos e técnicas entre as quais a mais estudada e a mais bem suce- dida é a técnica de optimização de uso geral conhecida como OCF [59].

Nas secções seguintes são apresentados alguns dos algoritmos existentes de IC.

4.2.1. Optimização de Enxame de Partículas

Optimização de Enxame de Partículas é um algoritmo de optimização baseado na popula- ção, podendo ser usado para resolver muitos problemas de optimização complexos, que são

não-lineares, não-diferenciáveis e multimodais. O valor mais proeminente da Optimização

de Enxame de Partículas é a sua rápida velocidade de convergência. Este algoritmo tem

sido aplicado com sucesso em muitas áreas [60].

O algoritmo de Optimização de Enxame Partículas começa com uma população de partí-

culas cujas posições representam as possíveis soluções para o problema estudado, e as velo- cidades são inicializadas aleatoriamente no espaço de busca. A pesquisa de melhor posição

(solução) é realizada através da actualização das velocidades das partículas e posições, em

cula é actualizada tendo em conta a posição de duas posições mais aptas. A primeira é a melhor posição (solução) que a partícula percorreu até agora, esse valor é chamado pBest.

Outro valor é a melhor posição (solução) que qualquer vizinho de uma partícula percorreu

até agora. Este valor é o melhor da vizinhança e é chamado nBest. Quando uma partícula engloba toda a população da sua vizinhança, o melhor da vizinhança torna-se o melhor

global e é assim chamado gBest [61].

Figura 3 - Elementos fundamentais no calculo do deslocamento de uma partícula [62]

A ﬁgura 3 apresenta os elementos fundamentais para calcular o deslocamento de uma par-

tícula no espaço de busca. É através dos valores obtidos que a partícula se desloca no espa-

ço em direcção a uma possível solução para o problema.

No modelo básico do algoritmo de Optimização de Enxame de Partículas, um enxame de

partículas m movendo-se num espaço de busca de valores reais de dimensão D, a i-ésima

partícula é um vector de dimensão D, denominado X i = (X i1 , X i2 ,…, X ID ), i = 1,2,… m. A

velocidade da i-ésima partícula é o vector de dimensão D, denominado V i = (V I1 , V I2 ,…,

V ID ). Denotar a melhor posição da i-ésima partícula como Pbesti= (p i1 , p i2 , …, p iD ), e a me-

lhor posição da colónia Pbestg= (p g1 , p g2 , …, p gD ). Cada partícula da população modiﬁca a

sua posição e velocidade de acordo com as seguintes fórmulas [60]:

(1)

(2)

v id t + 1 =

w v id + c 1 r 1 ( p id x id ) + c 2 r 2 ( p gd x id )

t

t

t

+ 1 = x id

t

x id

t

t + 1

+ v id

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:

- agendamento de tarefas em redes computacionais,

- data mining,

- problema do caixeiro viajante,

- formação de redes neurais,

- problemas de planeamento de veículos,

- redes móveis,

- agendamento de processos Batch,

- problemas de optimização multi-objectivo,

- processamento de imagem e problemas de reconhecimento de padrões.

4.2.2. Optimização de Colónia de Abelhas

A Optimização de Colónia de Abelhas foi introduzida muito recentemente como uma nova

direcção no campo da IC. Tem sido aplicada ao Problema Caixeiro Viajante, bem como

ao encaminhamento e atribuição de comprimentos de onda em redes ópticas. As abelhas

artiﬁciais representam agentes, que através da colaboração são capazes de resolver proble-

mas complexos de optimização combinatória. Cada abelha artiﬁcial está localizada na sec-

ção de início do processo de pesquisa e, a partir daí faz uma série de movimentos locais,

criando assim uma solução parcial. As abelhas vão adicionando componentes à solução parcial e comunicam directamente para gerar soluções viáveis. A melhor solução descober-

ta na iteração inicial (primeira) é guardada e o processo de construção incremental de solu-

ções pelas abelhas continua através de iterações subsequentes até atingir um critério de pa-

ragem [58].

4.2.3. Optimização Colónia de Formigas

Os comportamentos complexos que surgem a partir de colónias de formigas têm intrigado

os seres humanos, tendo sido realizados muitos estudos sobre as colónias de formigas que

visam uma melhor compreensão desses comportamentos colectivos. Os comportamentos colectivos que foram estudados incluem a busca de alimento, divisão do trabalho, organi-

zação do cemitério, cuidados com a prole e construção de ninhos [52].

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].

A OCF baseia-se no comportamento das formigas durante a procura de alimentos. Tem

dois conceitos que consistem na selecção probabilística de formigas artiﬁciais e a evapora-

ção de feromonas. A OCF foi aplicada, originalmente, para resolver problemas do caminho mais curto num gráﬁco. As formigas são conhecidas por se deslocarem, primeiramente, ao

acaso. Assim, por exemplo, dada a escolha entre dois percursos, as formigas vão escolher

pelas formigas, que funcionam como sinal para que outras formigas as sigam [36].

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-

curso. Na ﬁgura 4 encontra-se representado este comportamento das formigas quando na

presença de um obstáculo.

Figura 4 - Comportamento natural das formigas perante um obstáculo [65]

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].

 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].

Figura 5 - Algoritmo Genérico Baseado em Formigas [79]

Na ﬁgura 5 é apresentado o funcionamento genérico de um algoritmo baseado em formi-

gas. Basicamente existem dois passos num algoritmo baseado em formigas: Inicialização e Iteração. A Inicialização atribui o valor inicial da feromona às ligações. Neste passo todas

as ligações possuem um valor igual. No segundo passo, Iteração, é determinada para cada

formiga a respectiva rota e actualizada a feromona de acordo com o percurso escolhido.

Este processo é executado até ter sido atingido um dos critérios de paragem.

a)Principais Algoritmos de Optimização de Colónia de Formigas

Nesta secção são apresentados alguns dos algoritmos OCF existentes. Apesar de origina- rem do mesmo conceito, cada um possui características próprias.

(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:

(3)

τ ij (1 ρ )iτ ij +

m

k

Δτ ij

k = 1

onde ρ é a taxa de evaporação, m é o número de formigas, e Δτ ij k é a quantidade de

feromona prevista na aresta (i, j) pela formiga k assume os seguintes valores :

(4)

Δτ ij

k =

⎧ ⎪ ,

Q

L

0

k

se a

formiga k

, caso contrário

usou a aresta ( i , j ) no seu trajecto

onde Q é uma constante e L k é o comprimento do percurso construído pela formiga k.

Na construção de uma solução as formigas seleccionam a cidade seguinte através de

um mecanismo estocástico. Quando a formiga k está na cidade i e construiu até ago-

ra a solução parcial S p , a probabilidade de ir para a cidade j é dada por:

(5)

p ij k =

⎪ ∑

β

τ ij α η ij

c il N ( S p )

β

τ il α η il

,

se c ij N ( S p )

contrário

0 , caso

onde N(S P ) é 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:

(6)

η ij = 1

d

ij

onde d ij é a distância entre as cidades i e j.

(ii)Sistema de Formigas Max-Min

Segundo [59] os elementos que caracterizam o Sistema de Formigas Max-Min são

que apenas a melhor formiga actualiza o rasto de feromonas e que o valor da fero-

mona é delimitado. A actualização da feromona é aplicada da seguinte forma:

(7)

τ ij (1 ρ ) τ ij + Δτ ij

⎡ ⎣

best

τ max

τ min

onde τ max e τ min são, respectivamente, o limite superior e inferior impostos à feromona,

o operador [ x ] b a é deﬁnido por:

(8)

(9)

e Δτ ij best é:

Δτ ij

best =

1

o

L

best

[ x ] b a =

a

b

,

,

se

se

x > a

x > b

x , caso contrário

, se (i , j ) pertence ao melhor

, caso

contrário

percurso

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 (L ib ) ou a melhor solução encontrada desde o início do algoritmo

(L bs ), ou uma combinação de ambos.

(iii)Sistema de Colónia de Formigas

Segundo [59] a contribuição mais interessante do Sistema de Colónia de Formigas é

a introdução de uma actualização de feromona local, além da actualização da fero-

mona realizada ao ﬁnal do processo de construção (chamada de actualização de fe-

romona “ofﬂine”). A actualização da feromona local é realizada por todas as formi-

gas após cada etapa de construção. Cada formiga apenas o aplica à ultima aresta visi-

(10)

τ ij = (1 ϕ ) τ ij + ϕ τ 0

onde φ é o coeﬁciente de enfraquecimento da feromona, e τ 0 é o valor inicial da fe-

romona. O principal objectivo da actualização local é a diversiﬁcação da pesquisa

realizada pelas formigas seguintes durante a iteração: diminuindo a concentração de

feromona nos arcos já visitadas, desta forma incentivando outras formigas para esco-

lher outros arcos e, portanto, para produzir soluções diferentes. Isso torna menos

provável que várias formigas produzem soluções idênticas durante uma iteração.

A actualização ” ofﬂine” da feromona, à semelhança do Sistema de Formigas Max-

Min, é aplicada no ﬁnal de cada iteração por uma única formiga, que pode ser o me-

lhor percurso da iteração ou o melhor percurso encontrado até ao momento. No en-

tanto, a fórmula de actualização é ligeiramente diferente:

(11) τ ij

⎧ ⎪ (1 ρ ) τ ij + ρ Δτ ij , se (i , j ) pertencer

⎩ ⎪ τ ij

, caso

contrário

Como no Sistema de Formigas Max-Min:

(12)

Δτ ij

best =

1

L best

ao melhor percurso

onde L best pode ser L ib ou L bs . 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

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 q 0 ; se q q 0 , en-

tão :

(13)

j = arg max c il N ( S p )

{

τ

β

il η il

}

caso contrário é utilizada a mesma equação que é utilizada no Sistema de Formigas,

ou seja, a equação:

(14)

p ij k =

⎪ ∑

β

τ ij α η ij

c il N ( S p )

β

τ il α η il

, se c ij N ( S p )

contrário

0 , caso

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].

(i)Aplicações em Problemas NP-hard

A abordagem usual para mostrar a utilidade de uma nova técnica de meta-heurística

é aplicá-la a um número de diferentes problemas e comparar seu desempenho com o

de técnicas já disponíveis. No caso da OCF, este tipo de investigação consistiu inici- almente em testar os algoritmos no PCV. Posteriormente, outros problemas NP-hard

numa das seguintes categorias: problemas de encaminhamento (por exemplo, na dis- tribuição de mercadorias, problemas de atribuição, onde um conjunto de itens (objec-

tos, actividades, etc.) tem de ser atribuídos a um determinado número de recursos (locais, agentes, etc.), sujeita a algumas restrições), problemas de planeamento, que

em sentido mais amplo, estão preocupados com a alocação de recursos escassos para

tarefas ao longo do tempo, e problemas subconjunto, onde a solução de um problema

é considerado pela selecção de um subconjunto de itens disponíveis. Além disso, a

OCF foi aplicada com sucesso a outros problemas emergentes em domínios como a aprendizagem máquina e bioinformática [59].

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 eﬁcaz, 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

Segundo Dorigo [59] os algoritmos de OCF podem ser utilizados para solucionar, entre outros, os seguintes problemas:

- Problema do Caixeiro Viajante [69] [70] [71] [72],

- planeamento de transportes [73] [74],

- ordenação sequencial [75],

- planeamento de horários [77] [78],

- planeamento de projetos [79],

- cumprimento de restrições [80],

- regras de classiﬁcação [81] [82],

- redes bayesianas [83] [84].

O resultado global que emerge destas aplicações é que, para muitos problemas, os

algoritmos de OCF produzem resultados que são muito próximos aos dos algoritmos

de melhor desempenho, sendo que em alguns problemas são os melhores. Estes últi-

mos incluem o problema ordenação sequencial, algumas variantes de problemas de planeamento de veículos, problemas de classiﬁcação, e outros [59].

‹‹Um bom começo é a metade.››

Aristóteles

5.CASO DE ESTUDO

5

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.

Nas secções seguintes são apresentados, respectivamente, o problema, a abordagem pro- posta para o mesmo, uma descrição detalhada do algoritmo proposto, os testes realizados e

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 eﬁciente 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:

- Serviço de Apoio ao Domiciliário,

- 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.

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 diﬁculta fortemente o planeamento dos transportes. Para além de aumentar o conforto das crianças, a instituição pretende também reduzir os

5.1.1. Restrições do problema

O problema abordado possui algumas restrições que devem ser contempladas pelo algo- ritmo. As restrições são: intervalos de tempo, número de veículos, duração da viagem, ele-

mentos recolhidos e capacidade dos veículos.

(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.

Os veículos disponíveis possuem capacidades variadas, pelo que o algoritmo deve de- terminar o percurso de cada veículo de acordo com a capacidade deste. Deve tam-

bém efectuar uma distribuição equilibrada dos mesmos, ou seja, não devem existir

veículos com capacidade máxima, ou mesmo excesso, ao mesmo tempo que existem

veículos vazios.

5.2. Abordagem com Algoritmos Genéticos

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.

Seguindo os princípios básicos dos AG desenvolveu-se um algoritmo com o objectivo refe-

Nesta secção é apresentado o algoritmo desenvolvido recorrendo aos AG.

O primeiro passo no desenvolvimento do algoritmo baseado em AG é deﬁnir como se re-

presentam os dados. No algoritmo optou-se por representar os dados utilizando listas liga-

das. Desta forma foram criadas três listas ligadas, uma com os dados dos veículos (vei), a segunda com os dados dos locais (loc) e a terceira com a população (pop).

Figura 6 - Representação gráﬁca da lista ligada vei

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 identiﬁcar cada veículo de forma a facilitar as pesquisas, entre outras operações. A ﬁgura 6

apresenta uma representação gráﬁca da lista vei.

a representação gráﬁca 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.

Figura 7 - Representação gráﬁca da lista ligada loc

A ﬁgura 7 apresenta uma representação gráﬁca da lista loc. Na ﬁgura é 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.

Figura 8 - Representação gráﬁca da população, ou seja, a lista ligada pop

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 ﬁgura 8 apresenta uma representação gráﬁca da lista pop.

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.

5.2.2. População inicial

Os AG são baseados na população, em que cada indivíduo da população é uma potencial

solução para o problema. Inicialmente a população é determinada de forma aleatória. No

problema abordado nesta dissertação segue-se o mesmo princípio.

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), veriﬁcam-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

Para determinarmos o percurso do novo veículo segue-se o processo referido anteriormen-

te. Este processo de “encher” veículos termina quando não existirem mais elementos a re- colher. No ﬁnal do processo obtemos um indivíduo, ou seja, uma potencial solução para o

problema. São determinados tantos indivíduos quanto os deﬁnidos no inicio do algoritmo.

5.2.3.

Determinar aptidão dos indivíduos

Para determinar a qualidade de um percurso é necessário quantiﬁcar, de alguma forma, a

performance ou aptidão do percurso. No algoritmo apenas é tido em conta o tempo da vi- agem com forma de quantiﬁcar 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.

Após determinar a aptidão de todos os indivíduos da população é seleccionado e armaze-

nado o indivíduo com o menor tempo, ou seja, maior aptidão para solucionar o problema.

Um elemento essencial para um AG eﬁciente é a deﬁnição dos operadores genéticos: mu-

tação e cruzamento (crossover). O operador mutação altera um indivíduo de forma a produ- zir uma nova solução singular. O operador cruzamento selecciona dois indivíduos, com os

quais produz dois novos indivíduos.

Neste ponto foram encontradas várias diﬁculdades que levaram a que se tenha abandona- do os AG como base para solucionar o problema.

As diﬁculdades 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-

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 veriﬁcaçã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-

5.3. Abordagem com Optimização de Colónia de Formigas

Nesta secção é descrito o funcionamento do algoritmo desenvolvido, explicando como este

encontra uma solução óptima. No desenvolvimento do algoritmo seguiram-se alguns con-

ceitos básicos da OCF, no entanto foram efectuadas algumas alterações para optimizar a performance do algoritmo relativamente ao problema a abordar. Desta forma, em vez de

determinar o caminho mais curto entre os diversos nós, o algoritmo procura relacionar os intervalos de tempo dos diversos nós de forma a encontrar o melhor percurso.

Quando se discute problemas de planeamento de transportes, normalmente associamos a

distâncias métricas contudo, devido à existência de intervalos de tempo, a abordagem será efectuada tendo em conta distâncias temporais. Desta forma, o melhor caminho, não será

deﬁnido pela distancia percorrida, mas sim pelo tempo que demora a ser percorrido. A compatibilidade dos intervalos de recolha com o tempo de passagem dos autocarros nas

paragens é outro dos problemas considerados na obtenção de soluções.

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.

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 signiﬁca 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.

Este tem um tamanho de l, onde l é 2*nc, pela mesma razão que a matriz tw. A posição k

da matriz contém o número de elementos a recolher no nó k. Assim, da posição 1 à posição

nc deste vector não há elementos a recolher, pois corresponde às janelas de tempo neutras.

Da posição nc até 2*nc o valor corresponde ao número de elementos a recolher.

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