• Nenhum resultado encontrado

Algoritmo treansgenético na solução do problema do Caixeiro Viajante

N/A
N/A
Protected

Academic year: 2017

Share "Algoritmo treansgenético na solução do problema do Caixeiro Viajante"

Copied!
169
0
0

Texto

(1)

CENTRO DE CIÊNCIAS EXATAS E DA TERRA

DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA

PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO

ALGORITMO TRANSGENÉTICO NA SOLUÇÃO DO

PROBLEMA DO CAIXEIRO COMPRADOR

Ligia Bariani Bagi

Natal/RN

(2)

CENTRO DE CIÊNCIAS EXATAS E DA TERRA

DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA

PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO

ALGORITMO TRANSGENÉTICO NA SOLUÇÃO DO

PROBLEMA DO CAIXEIRO COMPRADOR

Ligia Bariani Bagi

Dissertação de mestrado apresentada à Universidade Federal do Rio Grande do Norte, para obtenção do título de Mestre em Sistemas e Computação. Área de concentração: Algoritmos Experimentais, sob orientação do Prof. Dr. Marco César Goldbar e co-orientação da Profa. Dra. Elizabeth Ferreira Gouvêa Goldbarg.

Natal/RN

(3)

Ligia Bariani Bagi

Dissertação de mestrado apresentada à Universidade Federal do Rio Grande do Norte, para obtenção do título de Mestre em Sistemas e Computação. Área de concentração: Algoritmos Experimentais, sob orientação do Prof. Dr. Marco César Goldbarg e co-orientação da Profa. Dra. Elizabeth Ferreira Gouvêa Goldbarg.

BANCA EXAMINADORA

_______________________________________ Prof. Dr. Marco Cesar Goldbarg Orientador

_______________________________________ Profa. Dra. Elizabeth Ferreira Gouvêa Goldbarg Co-orientadora

_______________________________________ Profa. Dra. Neida Maria Patias Volpi Examinadora

_______________________________________ Prof. Dr. Celso Carnieri

Examinador

(4)

ninguém pensou.

(5)

Preciso começar agradecendo a Deus por todas as bênçãos que recebo. Sem minha forte crença em um poder superior, eu não poderia chegar onde cheguei hoje.

Gostaria de agradecer de coração a todas as pessoas que me apoiaram nos esforços para desenvolver este trabalho.

Em especial à minha família, por ter me provido de um inacreditável ambiente de apoio, de amor e de encorajamento além de ter me agüentado nos momentos de desânimo. Pai, Mãe, Olívia e Natalia, serei eternamente grata a vocês.

Ao meu namorado Fernando Henrique Chelli, por ter me dado força, carinho e por ter me compreendido em todos os níveis deste trabalho. Além da enorme paciência ao me ouvir falar diariamente sobre o mesmo.

Ao meu orientador Marco César Goldbarg, por acreditar nas minhas habilidades, por trabalhar duro e rapidamente em meu favor. Um agradecimento não menos especial à co-orientadora Elizabeth Ferreira Gouvêa Goldbarg, por participar do trabalho com grande empenho.

À minha grande amiga e um pouco irmã também, Cristine Cunha Schmidt, sem o apoio dela eu provavelmente teria abandonado antes mesmo de começar. E a todos os meu amigos do PPgSC pelos momentos de descontração.

A Jorge Riera-Ledesma pelo fornecimento detalhado dos resultados e por sempre responder rapidamente os e-mails.

(6)

O Problema do Caixeiro Comprador é uma variante do Problema do Caixeiro Viajante, onde existe um conjunto de mercados e um conjunto de produtos. Cada produto está disponível em um subconjunto de mercados e o preço da unidade varia de acordo com o mercado. O objetivo é comprar todos os produtos, partindo e retornando para o depósito, de maneira que a soma do custo da rota e dos produtos seja mínimo. Um Algoritmo Transgenético, algoritmo evolucionário com base na endosimbiose, é utilizado para resolver a versão Capacitada e Não Capacitada desse problema. A evolução no algoritmo transgenético é simulada com a interação e troca de informações entre população de indivíduos de diferentes espécies. Os resultados computacionais mostram que a abordagem é satisfatória para o PCC , tanto na qualidade da solução, quanto no tempo de execução. Dezessete e nove novas melhores soluções são encontradas para o PCC Capacitado e para o PCC Não Capacitado, respectivamente.

(7)

The Traveling Purchaser Problem is a variant of the Traveling Salesman Problem, where there is a set of markets and a set of products. Each product is available on a subset of markets and its unit cost depends on the market where it is available. The objective is to buy all the products, departing and returning to a domicile, at the least possible cost defined as the summation of the weights of the edges in the tour and the cost paid to acquire the products. A Transgenetic Algorithm, an evolutionary algorithm with basis on endosymbiosis, is applied to the Capacited and Uncapacited versions of this problem. Evolution in Transgenetic Algorithms is simulated with the interaction and information sharing between populations of individuals from distinct species. The computational results show that this is a very effective approach for the TPP regarding solution quality and runtime. Seventeen and nine new best results are presented for instances of the capacited and uncapacited versions, respectively.

(8)

Figura 1 - Exemplo do PCC não capacitado ... 16

Figura 2 - Variáveis aplicada a uma instancia do problema ... 19

Figura 3 - Escalonamento de tarefas ... 20

Figura 4 - Problema de Armazenamento ... 22

Figura 5 - Grafo representando o roteamento... 23

Figura 6 - Projeto de Redes Tipo Anel ... 24

Figura 7 - Pseudocódigo l−ConsecutiveExchange... 36

Figura 8 - Mapa da viagem de Darwin a bordo do Beagle ... 47

Figura 9 - Células Procarióticas e Células Eucarióticas ... 51

Figura 10 - Formação da mitocôndria ... 52

Figura 11 - Pseudo-código do Algoritmo VEGA ... 56

Figura 12 - Tipos de vetores Transgenéticos ... 59

Figura 13 - Regras Transgenéticas no Processo de Evolução ... 61

Figura 14 - Meta-Algoritmo Transgenético ... 62

Figura 15 - Pseudo-código do Algoritmo Transgenético do tipo ProtoG ... 62

Figura 16 - Critério de Realimentação... 63

Figura 17 - Componentes do Banco de Informações Ambientais (BIA) ... 64

Figura 18 - A Origem da Informação dos Vetores ... 65

Figura 19 - (a) Grafo completo de uma instância PCC (b) Ciclo Hamiltoniano 66 Figura 20 - Possíveis cadeias de informação... 66

Figura 21 - Grafo Exemplo ... 67

Figura 22 - Cadeias de Informação Derivadas da AGM... 67

Figura 23 - Cadeias de Informação Derivadas de Caminhos mais Curtos... 67

Figura 24 - Cadeia de Informações Derivadas de Agrupamentos... 68

Figura 25 - Deslocamento simples (Shift) ... 68

Figura 26 - Deslocamento Múltiplo... 69

Figura 27 - Vizinhança Restrita ... 69

Figura 28 - a) Custo das arestas de uma instância PCCC e b) Uma solução e a representação do cromossomo ... 72

(9)
(10)

Tabela 1 - Procedimentos que definem vetores transgenéticos... 60

Tabela 2 - Aplicações da Transgenética Computacional ... 70

Tabela 3 - Demanda, quantidade e custo dos 4 produtos da instância PCC ... 71

Tabela 4 - Desempenho dos Vetores Transgenéticos ... 81

Tabela 5 - Desempenho em Função do Número de Plasmídios... 82

Tabela 6 - Solução Ótimas em Função do Número de Plasmídeos... 83

Tabela 7 - Desempenho em relação η =40, β=4 e TamanhoPopulação... 84

Tabela 8 - Desempenho em relação η =50, β=5 e TamanhoPopulação... 84

Tabela 9 - Desempenho em relação η =60, β=6 e TamanhoPopulação... 85

Tabela 10 - Transgenético x RL-SG... 88

Tabela 11 - Novas Melhores Soluções para 17 instâncias do TPPLib ... 89

Tabela 12 - Custo dos produtos em uma instância PCCNC. ... 90

Tabela 13 - Desempenho dos Vetores Transgenéticos para o PCCNC... 94

Tabela 14 - Desempenho em relação η =40, β=4 e TamanhoPopulação... 95

Tabela 15 - Desempenho em relação η =50, β=5 e TamanhoPopulação... 95

Tabela 16 - Desempenho em relação η =60, β=6 e TamanhoPopulação... 96

Tabela 17 - Transgenético X RL-SG X DMD-ATA... 96

Tabela 18 - RL-SG X DMD-ATA X AT para instâncias do PCCNC com até 300 mercados e ótimo não conhecido... 98

(11)

1. INTRODUÇÃO ...13

1.1 Organização do Trabalho... 14

2. O PROBLEMA DO CAIXEIRO COMPRADOR...15

2.1 Definição Geral ... 15

2.2 Modelagem Matemática do PCC... 17

2.3 Aplicações ... 19

2.4 Problemas Relacionados ... 24

3. REVISÃO DA LITERATURA ...28

3.1 Algoritmos de Ramesh (1981)... 29

3.2 Algoritmo de Singh & van Oudheusden (1997) ... 30

3.3 Algoritmo Branch-and-cut de Laporte et al (2003)... 31

3.4 Generalized Saving Heuristic de Golden et al (1981) e Variações ... 31

3.5 Commodity Adding Heuristic de Pearn e Chien (1998) e Variações... 32

3.6 Metaheurística de Voß Baseada em Busca Tabu e Simulated Anneling (1996) ... 34

3.7 Pré-Processamento e Intensificação de Teeninga & Volgenant (2004) ... 34

3.8 Busca Local de Riera-Ledesma e Salazar-Gonzáles (2005) ... 35

3.9 Metaheurística de Bountoux e Feillet Baseada em Colônia de Formigas (2006)... 37

4. TRANSGENÉTICA COMPUTACIONAL...42

4.1 Revendo o Evolucionismo... 42

4.1.1 A teoria de Lamarck... 43

4.1.2 A Teoria de Darwin ... 46

4.1.3 O neodarwinismo... 49

4.1.4 A Teoria da endosimbiose e a transferência horizontal ... 50

4.2 Estado da Arte dos Algoritmos Baseados em Simbiose e Correlatos... 55

4.3 O Algoritmo Transgenético... 57

4.3.1 Vetores transgenéticos... 59

4.3.2 Regras de administração... 60

4.3.3 Meta-algoritmo transgenético ... 62

4.3.4 Obtenção do banco de informações ambientais ... 64

4.3.5 Exemplo de obtenção de cadeias de informação ... 65

4.3.6 Exemplos de métodos de infiltração de informações... 68

4.3.7 Aplicações da metáfora ... 69

5. ALGORITMO TRANSGENÉTICO PARA O PCCC ...71

5.1 Experimentos Computacionais... 78

5.1.1 Desempenho dos vetores transgenéticos ... 80

5.1.2 Análise de sensibilidade de k, η, β, tamanhopopulação e regra de parada ... 81

5.1.3 Desempenho comparativo do algoritmo... 87

6. ALGORITMO TRANSGENÉTICO PARA O PCCNC...90

6.1 Experimentos Computacionais... 92

6.1.1 Desempenho dos vetores transgenéticos ... 93

(12)

7.1 Trabalhos Futuros... 101

(13)

1. INTRODUÇÃO

Os algoritmos transgenéticos (ATs) pertencem à classe dos algoritmos evolucionários e apóiam sua metáfora na endosimbiose e propriedades do fluxo intracelular (Goldbarg & Goldbarg, 2002a). A endosimbiose é uma teoria evolucionária que baseia sua formulação na união de indivíduos de natureza distinta – de diferentes espécies – para a constituição de saltos adaptativos ou a formação de espécies híbridas ou novas (Morowitz, 1992). A endosimbiose enfatiza a possibilidade de inter-relações genéticas e funcionais entre diferentes indivíduos.

Os algoritmos transgenéticos, adaptando os conceitos da endosimbiose e de outras características do fluxo intracelular ao contexto computacional, propõem a execução da evolução através de um processo de troca de informações realizado entre populações de espécies diferentes – via de regra uma população de cromossomos e populações de vetores transgenéticos. Os vetores transgenéticos, mimetizando atuadores microbiais e celulares, operacionalizam a obtenção e compartilhamento de informações genéticas.

Essas informações são obtidas ao longo do processo evolucionário ou de fontes externas. As informações são compostas e transportadas pelos vetores transgenéticos com base no paradigma do “Quorum Sensing” que propõe a possibilidade de direcionamento e orquestração dos vetores do contexto microbial e celular (Waters & Bassler, 2005). Os algoritmos transgenéticos são apresentados no capítulo 4.

(14)

o número de produtos for igual ao número de mercados e cada mercado possuir somente um produto.

O problema foi descrito pela primeira vez por Burstall (1971) e possuía estrutura similar ao PCC mas, somente em 1981 Ramesh descreveu o problema na sua forma atual. Na abordagem exata destacam-se as abordagens branch-and-bound de Sing & van Oudheusden (1977) e branch-and-cut de Laporte et al.(2005). Uma revisão completa da literatura é apresentada no capítulo 3.

1.1 Organização do Trabalho

O capítulo 2 descreve o Problema do Caixeiro Comprador com definições e aplicações do mundo real, assim como os problemas relacionados. O capítulo 3 realiza uma revisão na literatura, descrevendo os algoritmos mais conhecidos da literatura utilizados para resolver o PCC.

O capítulo 4 faz uma introdução sobre as teorias da evolução, descrevendo as teorias de Lamarck, Darwin, a Abordagem Endosimbiótica e a Transferência Horizontal, juntamente com a descrição dos algoritmos transgenéticos.

O capítulo 5 descreve um algoritmo transgenético para o Problema do Caixeiro Comprador Capacitado e o capítulo 6 um algoritmo transgenético para o Problema do Caixeiro Comprador Não Capacitado. Em cada um dos capítulos é descrito o experimento computacional para cada conjunto de instâncias.

(15)

2. O PROBLEMA DO CAIXEIRO COMPRADOR

Este tópico providencia uma introdução ao Problema do Caixeiro Comprador (PCC) também conhecido na literatura como Traveling Purchaser Problem (TPP). O objetivo é definir o problema. Adicionalmente serão apresentadas aplicações potenciais do problema em situações reais, corroborando a importância do tema abordado. Finalmente alguns problemas correlacionados são descritos.

2.1 Definição Geral

Esta dissertação concentra-se na generalização do conhecido Problema do Caixeiro Viajante (PCV), denominado Traveling Purchaser Problem (TPP) ou Problema do Caixeiro Comprador (PCC). O problema foi introduzido por Ramesh (1981) e é definido como a seguir.

Considera-se um conjunto de produtos que deverão ser adquiridos e um conjunto de mercados oferecendo certa quantidade de cada produto. São requeridas quantidades diferentes de cada produto. O preço da unidade do produto é conhecido e varia de acordo com o mercado. É conhecido também o custo da viagem entre cada par de mercados.

A solução do PCC consiste em selecionar um subconjunto de mercados e rota tal que a demanda requerida de produtos seja satisfeita e o custo total minimizado. O custo total é dado pela somatória do custo da rota e do custo dos produtos.

A rota deve iniciar e terminar em um mercado específico, neste trabalho denominado “depósito”. O PCC assume que:

a) Cada produto está disponível em pelo menos um mercado; b) Nenhum produto está disponível no depósito;

c) A demanda requerida pode ser comprada.

(16)

sua quantidade será suficiente para satisfazer à demanda. Nesse caso a demanda é de uma unidade por produto.

A figura 1 exibe um exemplo numérico do PCC não capacitado com seis mercados e um depósito.

1 5

3 2

2

6 4

11 22

9 9

2 7

1 2 1 66 55 8 44 33 10 10 3 3 3 3 5 5 p4 p3 p2 p1 10 10 3 3 3 3 5 5 p4 p3 p2 p1 6 6 7 7 4 4 1 1 p4 p3 p2 p1 6 6 7 7 4 4 1 1 p4 p3 p2 p1 1 1 -p4 p3 p2 p1 1 1 -p4 p3 p2 p1 8 8 1 1 -8 8 p4 p3 p2 p1 8 8 1 1 -8 8 p4 p3 p2 p1 -1 1 2 2 9 9 p4 p3 p2 p1 -1 1 2 2 9 9 p4 p3 p2 p1 8 8 2 2 5 5 1 1 p4 p3 p2 p1 8 8 2 2 5 5 1 1 p4 p3 p2 p1 00 1 1 1 3 2 11 22 1 66 55 44 33 10 10 3 3 3 3 5 5 p4 p3 p2 p1 10 10 3 3 3 3 5 5 p4 p3 p2 p1 6 6 7 7 4 4 1 1 p4 p3 p2 p1 6 6 7 7 4 4 1 1 p4 p3 p2 p1 1 1 -p4 p3 p2 p1 1 1 -p4 p3 p2 p1 8 8 1 1 -8 8 p4 p3 p2 p1 8 8 1 1 -8 8 p4 p3 p2 p1 -2 2 2 2 9 9 p4 p3 p2 p1 -2 2 2 2 9 9 p4 p3 p2 p1 8 8 2 2 5 5 1 1 p4 p3 p2 p1 8 8 2 2 5 5 1 1 p4 p3 p2 p1 00 1 1

(a) Instância PCCNC (b) Solução

FIGURA 1 - Exemplo do PCC não capacitado

A figura 1(a) exibe uma instância do PCC. As matrizes próximas aos vértices representam o custo dos quatro produtos em cada mercado. O mercado três, por exemplo, possui disponibilidade para vender apenas o produto quatro ao custo de uma unidade. A figura1(b) mostra uma solução proposta. Observe-se que, ao se dispor de uma seqüência de mercados visitados, o custo de aquisição dos produtos é fixado pela lógica de comprar o produto no mercado que o fornece com menor valor. No caso da figura 1(b) o custo total da solução é igual a 14.

O PCC, como descrito acima, é NP-Dificil em relação a um de seus casos especiais onde o número de mercados é igual ao número de produtos e cada mercado possui somente um produto, reduzindo-se, assim, ao PCV. (Sing & Oudheusden, 1997).

(17)

parte do tempo requerido pela tarefa. Dependendo da configuração, é conhecido o tempo para executar uma tarefa.

As tarefas podem ser executadas em diferentes configurações e uma configuração pode ser usada em diferentes tarefas. É também conhecido o tempo de troca de uma configuração para outra. A máquina inicialmente se encontra em seu estado inicial, ao qual deverá retornar quando todas as tarefas tiverem sido executadas.

O PCC consiste em selecionar uma seqüência de configurações para executar totalmente as tarefas minimizando o tempo de troca de estado e o tempo de processamento.

2.2 Modelagem Matemática do PCC

É dado um conjunto de mercados M={v1,...,vm}, um depósito v0 e um conjunto de produtos K = {p1,..,pn} . Seja G = (V, E) um grafo não direcionado onde

M v

V ={ 0}∪ é o conjunto de vértices e E={[vi,vj]: vi,vj Є V, i < j} é o conjunto de arestas, representando todos os possíveis pares de nós com conexão direta. Assume-se que o grafo é completo.

Cada produto pk está disponível no subconjunto MkMde mercados. Será

denotado por dk o número de unidades do produto pk que deverá ser comprado, por

qki o número de unidades do produto pk que está disponível no mercado vi. Assume-se que 0<qkidk e

∈ ≥

k j v

k kj

M d

q para todo pkЄ K.

É dado por bki o preço do produto pk no mercado vi e será denotado por cij o custo da viagem entre vi e vj, ou seja, o valor da aresta [vi, vj,] Є E. Uma solução viável do PCC consiste em determinar um ciclo em G saindo do depósito v0 e passando por um conjunto de mercados Vσ V e por um conjunto de arestas Eσ

E tal que:

a) O depósito é visitado, ou seja, v0Є Vσ;

b) Para cada mercado v Є Vσ o grau do vértice é exatamente 2.

(18)

K p M V d q k k σ i v k

ki ∀ ∈

∩ ∈

O conjunto de todas as soluções viáveis será denotado por Ω, e o custo da rota σ será dado por:

Eσ v v ij j i c = σ) CustoRota( ] , [

O custo de compra de um produto pk na rota σ é dado pela equação (2.3), onde zki representa a quantidade do produto pk comprado no mercado vi

∩ ∈ ∈ ∩ ≤ k σ i

v vi σ k

ki ki k ki ki ki M

V V M

q z , d = z : b z = k) ,

preco(σ min{ }

E o custo total da compra dos produtos é dado pela equação (2.4).

∈ = K pk k preco preco(

σ

) (

σ

, )

Dessa forma, o valor f(σ) = CustoRota(σ) + preço(σ) é chamado de custo total da solução σ. O PCC busca pela solução viável com o menor valor de f, ou seja:

min f(σ): σЄΩ

Para o PCC não capacitado, dk = 1 e qki = 1 para todo pkЄ K e viЄ Mk. Nesse caso, o preço do produto pode ser especificado pela equação (2.6).

ki M V v b k preco k ∩ ∈ = σ

σ

, ) min (

A figura 2 ilustra as variáveis presentes na modelagem matemática aplicada a uma instância do problema.

(19)

FIGURA 2 - Variáveis aplicadas a uma instância do problema

2.3 Aplicações

A estrutura do Problema do Caixeiro Comprador é aplicada a muitos problemas reais. Serão discutidas aqui algumas das aplicações potenciais como Job Scheduling ou Escalonamento de Tarefas (Burstall,1966) e (Buzacott, 1971), Warehousing ou Problema de Armazenamento (Daniels et al, 1998) e (Kim et al,

2002), Routing ou Roteamento (Solomon & Desrosiers, 1988) e Ring Network Design ou Projeto de Redes do tipo Anel (Fink et al, 1998).

2.3.1 Escalonamento de tarefas

O PCC pode ser encontrado no contexto de escalonamento de tarefas, considerando que exista um conjunto de n tarefas para serem executadas e uma máquina de múltiplos propósitos, isto é, uma máquina que pode assumir m

(20)

configuração da máquina pode executar apenas parte do tempo requerido pela tarefa. Dependendo da configuração, é conhecido o tempo para executar uma tarefa. As tarefas podem ser executadas em diferentes configurações e uma configuração pode ser usada em diferentes tarefas. É também conhecido o tempo de troca de uma configuração para outra. A máquina está em seu estado inicial, ao qual deve retornar quando todas as tarefas tiverem sido executadas. O PCC consiste em selecionar uma seqüência de configurações para executar totalmente as tarefas, minimizando o tempo de troca de estado e o tempo de processamento (Burstall, 1966) e (Buzacott & Dutta, 1971).

A figura 3 exemplifica o processo de escalonamento de tarefas. Os quadrados representam o tempo de processamento de cada tarefa e os retângulos os estados da máquina.

FIGURA 3 - Escalonamento de tarefas

O problema é aplicado em diversas situações. Por exemplo, em certas fábricas, um produto final é criado a partir da execução de pequenas tarefas. Essas tarefas possuem regras de precedência entre si e particularidades que exigem um ou outro estado da máquina para a sua execução. Com isso, dado um conjunto de itens a produzir, deseja-se descobrir, para cada estado da máquina da fábrica, a ordem em que as tarefas devem ser processadas de forma a minimizar o tempo de produção.

(21)

quantidade de operários envolvidos e/ou com o número de horas-extras que o empresário terá que pagar. Por exemplo, numa companhia aérea, é preciso decidir quais viagens serão destinadas a quais pilotos, e ainda, obedecer regras do tipo: um piloto não pode trabalhar mais de 8 horas seguidas sem descansar; a cada três dias seguidos de trabalho, todo piloto deve ter um dia de descanso, etc. Esse tipo problema pode ser encontrado em muitas empresas que operam 24 horas por dia, como por exemplo: centrais telefônicas, hospitais, transportes coletivos, entre outras.

2.3.2 Problema de armazenamento

Um dos problemas mais comuns associado com o problema de armazenamento é o problema ordem-compra, também conhecido na literatura como

order-picking. Uma ordem consiste em um subconjunto de itens armazenados em um armazém. Ao receber a ordem o armazém despacha um veículo para comprar os itens da ordem e transportá-los de volta para a área do transporte. O objetivo é minimizar a distância percorrida pelo veículo.

Quando apenas um item está armazenado em um único armazém, o problema de ordem-compra é reconhecido como uma variante do PCV. Entretanto, quando um item é armazenado em mais de um armazém, o problema tem a estrutura de um PCC não capacitado. Quando é requerida mais de uma unidade de cada item e o item estiver localizado em diferentes localizações do armazém e, em alguns casos, não é possível satisfazer a demanda visitando uma única posição, temos o caso do PCC geral (Daniels et al, 1998) e (Kim et al, 2002).

(22)

FIGURA 4 - Problema de Armazenamento

2.3.3 Roteamento

Uma das aplicações de roteamento que se encaixa na estrutura do PCC é o problema do ônibus escolar. Um ônibus escolar precisa passar por vários lugares para reunir as crianças para levá-las à escola. É conhecida a distância da casa da criança até o ponto mais próximo e também a distância para dirigir de um ponto ao outro. O objetivo é encontrar um caminho que minimize o custo da viagem e a distância percorrida pelas crianças de suas casas até o ponto mais próximo.

Existem diversos outros tipos de roteamento, por exemplo, dado um conjunto de fregueses que precisam receber mercadorias, a fábrica tem que decidir a quantidade de carga a ser colocada em cada caminhão e quais caminhões irão atender quais clientes. Além disso, é preciso otimizar as rotas dos veículos e, em alguns casos, levar em consideração a eventual necessidade de reabastecimento da carga por parte de alguns caminhões. Por exemplo, os clientes podem ser bares e a fábrica pode ser uma fábrica de bebida. Aplicações: entrega de correspondência, empresas atacadistas, coleta de lixo urbano, entre outros.

(23)

FIGURA 5 - Grafo representando o roteamento

Relacionado ao problema de roteamento está o shortest covering path

(SCPP), introduzido por Current et al (1984), que é uma síntese do set covering location problem e do shortest path problem. O SCPP determina o menor caminho entre dois nós dados em um grafo, de tal modo que todos os nós da demanda sejam cobertos. Um nó da demanda é considerado coberto se estiver diretamente no menor trajeto ou se estiver dentro de uma distância máxima pré-determinada de um nó no trajeto.

O SCPP pode ser visto como um caso especial do PCC e possui diversas aplicações. O projeto de linhas de metrô é uma das aplicações de interesse particular. As estações poderiam ficar situadas em alguns dos centros da população e as áreas vizinhas seriam cobertas por essa estação. Esse mesmo princípio pode ser aplicado ao desenvolvimento de redes de irrigação em uma dada região (Solomon & Desrosiers, 1988).

2.3.4 Projeto de redes do tipo anel

Recentemente, o projeto de infra-estrutura de informações e de comunicações tem sido o desafio principal para as companhias em grandes cidades onde a rede da área metropolitana é de grande interesse.

(24)

ganhando certo rendimento. Além disso, pode haver rendimentos para cada vértice incluído na rede. Por outro lado, o custo das ligações tornam-se altos para as ligações diretas. O objetivo básico é maximizar a soma de todos os rendimentos menos do custo de construção.

Modificações em GNDP aparecem no problema de conectar clientes LAN usando a topologia anel. Além dos m vértices dados no problema básico, existem alguns vértices secundários que devem ser conectados ao anel. Conseqüentemente, os custos adicionais devem entrar nas contas. Esse problema é relatado como um PCC. Nesse caso, os produtos correspondem aos vértices secundários e os mercados aos vértices básicos do GNDP (Fink et al, 1998). A figura 6 exemplifica essa variação do problema: os vértices preenchidos em preto representam os vértices principais e os demais vértices, os secundários.

FIGURA 6 - Projeto de Redes Tipo Anel

2.4 Problemas Relacionados

(25)

2.4.1 O problema do caixeiro comprador bi-objetivo

O Problema do Caixeiro Comprador Bi-objetivo (2PCC) foi descrito por Riera-Ledesma & Salazar-González (2005b) e, assim como no caso do Problema do Caixeiro Comprador, consiste em determinar uma rota através de um subconjunto de mercados a fim de coletar um conjunto de produtos, minimizando o custo da viagem e o preço dos produtos simultaneamente. A compra mais conveniente do produto nos mercados visitados é computada facilmente, uma vez que a rota tenha sido determinada. Conseqüentemente, esse problema contém um conjunto finito de soluções (uma para cada rota) e o problema pertence ao campo da otimização combinatória bi-objetivo.

O 2PCC possui a mesma formulação do PCC citada anteriormente no presente capítulo, no entanto, tenta determinar uma solução possível σ minimizando ambos, CustoRota(σ) e Preço(σ). Dessa definição infere-se que há um conjunto finito de soluções praticáveis no espaço de decisão, caracterizado excepcionalmente por um ciclo σ que define a rota de compra.

Uma vez conhecida a rota, a demanda dk do produto pk deve ser comprada. O preço dos produtos pode ser facilmente computado, levando em consideração bki e

qki, as unidades mais baratas de cada produto são compradas até que a demanda esteja satisfeita.

A maioria dos estudos do PCC são restritos ao caso onde as duas funções objetivo eram substituídas por uma única função objetivo composta, obtida adicionando o custo da viagem e o custo de compra. Esse problema combinatório de apenas um objetivo é denotado por 1PCC

2.4.2 O problema do caixeiro comprador com janela de tempo

(26)

O PCC-JT considera um grafo não-direcionado G=(V

{ }

v0 ,E) com m

mercados. O vértice v0 é o vértice inicial, também chamado de depósito. Para cada aresta eEé associado um custo ce>0. Além disso, para cada vértice viV , um

tempo de processamentopi ≥0, um tempo de liberação ri ≥0e um tempo diri são

dados. O tempo de liberação ri denota o mais cedo possível (e o tempo di o mais tarde possível) para começar a visitar o vértice viV . Para o depósito assume-se

que r0=d0=0. O tempo de processamento pi representa o tempo transcorrido entre a chegada e a partida do vértice vi. O intervalo [ri,di] é chamado janela de tempo de vi. O tamanho da janela é dado por di - ri. A janela de tempo para o vértice vi é chamada

ativa se ri>0 ou di<. Uma janela de tempo [0,) é chamada relaxada.

O problema consiste em encontrar um subconjunto de vértices (começando no depósito v0 no tempo 0 e terminando também em v0) onde a demanda dos produtos seja comprada com custo total minimizado. Para todos os vértices pertencentes à solução, o tempo de chegada ti deve estar dentro da janela de tempo

[ri,di]. É também assumido que pode-se chegar a um vértice viV antes de ri e

esperar até que o vértice seja liberado no tempo ri.

2.4.3 O problema do caixeiro comprador múltiplo

O Problema do Caixeiro Comprador Múltiplo (M-PCC) é uma variante do Problema do Caixeiro Comprador (PCC), na qual existe mais de um comprador. Cada qual deverá realizar uma compra diferenciada.

(27)

2.4.4 O problema do caixeiro comprador estocástico

A programação estocástica lida com a classe de modelos de otimização e algoritmos em que algumas informações estão sujeitas a incertezas. Tais modelos são apropriados quando as informações1 são descritas ao longo do tempo e as decisões precisam ser tomadas antes que os fenômenos ocorram em sua totalidade.

No Problema do Caixeiro Comprador Estocástico (PCCE), a característica estocástica é encontrada na quantidade de produtos disponíveis nos mercados. Ao sair do depósito, o comprador espera encontrar a quantidade qki do produto pk no mercado vi; no entanto, essa quantidade pode sofrer alterações no decorrer do tempo, dado que algum cliente, desconhecido no cenário do PCCE, pode ter realizado uma compra anteriormente, característica comum na realidade dos mercados.

Da mesma maneira que o PCC, o objetivo do PCCE é selecionar um subconjunto de mercados e rotas, tal que a compra de todos o produtos seja realizada de maneira a minimizar, tanto o custo da viagem, quanto o custo dos produtos.

2.4.5 O problema do caixeiro comprador on-line

Outra variação do Problema do Caixeiro Comprador é denominada Problema do Caixeiro Comprador On-Line (PCC On-Line), no qual o preço dos produtos modifica-se com o decorrer do tempo.

Dessa maneira, ao iniciar a rota, o comprador conhece um preço para cada produto em cada mercado, porém esse preço pode aumentar ou diminuir de acordo com fatores externos não conhecidos. Essa característica enquadra-se como estocástica, conforme mencionado anteriormente.

(28)

3. REVISÃO DA LITERATURA

Em 1966, Burstall descreveu um problema real com estrutura similar ao PCC em uma firma de produção de tubos, no entanto seu modelo foi descrito como um problema de scheduling. A solução apresentada por Burstall foi heurística e baseada no trabalho de Lomnicki (1966). Posteriormente, Buzacott & Dutta (1971) desenvolveram um procedimento exato para a solução do modelo de Burstall via programação dinâmica. O primeiro trabalho da literatura abordando o PCC em sua forma atual deve-se a Ramesh (1981).

Os primeiros algoritmos da literatura trabalham apenas com o PCC não capacitado. Isso se deve ao fato de que Ramesh, quando propôs o problema, deixou-o implicitamente descrito como não capacitado. Apenas em 2003 Laporte et al desenvolveram um algoritmo para as versões capacitada e não capacitada.

Este capítulo tem por objetivo apresentar os algoritmos mais conhecidos na literatura para a solução do PCC. Serão citados algoritmos exatos e algoritmos heurísticos.

Os algoritmos exatos sempre encontram a solução ótima para o problema (se ela existir). Essa solução deve satisfazer, de forma ótima, a função objetivo correspondente ao problema em questão, respeitando todas as restrições que se aplicam à resolução do mesmo. Entre os métodos exatos são encontrados o

branch-and-bound, a programação dinâmica, os métodos baseados em relaxação

lagrangeana, e os métodos baseados em programação linear e inteira, como branch-and-cut, branch-and-price, e branch-and-cut- and-price.

Os algoritmos heurísticos procuram encontrar boas soluções em um tempo computacional razoável. Os algoritmos heurísticos muitas vezes são incapazes de quantificar o afastamento da solução alcançada da solução ótima do problema.

Modernamente as estratégias heurísticas foram reunidas dentro de grandes temas ou metáforas que inspiram o desenvolvimento de algoritmos. Essas novas e amplas estratégias de desenvolvimento de procedimentos heurísticos recebem o nome de “Metaheurísticas”.

(29)

Randomized Adaptive Search Procedure (GRASP) (Feo & Resende, 1995), Colônia de Formigas (Dorigo & Di Caro, 1999) e Nuvem de Partículas (Kennedy & Eberhart, 1995). Alguns dos mais eficientes algoritmos de solução do PCC, como será comprovado na presente revisão, são derivados de abordagens metaheurísticas.

3.1 Algoritmos de Ramesh (1981)

Ramesh, ao propor o problema em 1981, desenvolveu um algoritmo exato baseado em um procedimento de busca lexicográfica para resolver o problema otimamente. Nessa abordagem, uma tabela com um alfabeto representando todas as possíveis seqüências de mercados é inicialmente criada. A estratégia de busca é análoga à busca por uma palavra específica de um dicionário, o algoritmo procura por cada possível palavra (uma seqüência de mercados) de acordo com a tabela do alfabeto e compara se a seqüência corrente de mercados constitui uma solução praticável. Algumas técnicas de limite inferior são usadas para acelerar o processo de busca.

Infelizmente esse algoritmo é computacionalmente ineficiente; apenas problemas de pequeno ou moderado porte podem ser resolvidos otimamente. Baseado nesse procedimento de busca, Ramesh também desenvolveu um algoritmo heurístico para resolver o problema aproximadamente. O algoritmo executa o processo de busca até uma solução praticável ser encontrada. Para melhorar a solução Ramesh também considera uma modificação que requer que, não apenas um, mas todos os mercados sejam examinados, ou até que o limite de uma solução parcial exceda a melhor solução corrente. A experiência computacional apresentada neste artigo inclui instâncias com 12 mercados e 10 produtos e instâncias de 8 mercados e 22 produtos.

(30)

de blocos seja rejeitada. O segundo algoritmo começa com o vizinho mais próximo de v0 , e executa o procedimento de busca lexicográfica até que um bloco de palavras seja rejeitado. O algoritmo então move-se para o segundo vizinho mais próximo de v0 e continua a busca por soluções melhores até que um bloco de palavras seja rejeitado. Esse procedimento é repetido até que todos os m-1 vizinhos sejam examinados.

3.2 Algoritmo de Singh & van Oudheusden (1997)

Singh & van Oudheusden (1997) desenvolvem um algoritmo branch-and-bound para o PCC baseados na idéia de quebrar o conjunto de todos os possíveis caminhos em subconjuntos cada vez menores e, então, calcular para cada um deles os limites inferiores, incluindo a soma da viagem e a soma da compra dos produtos. O limite inferior é calculado resolvendo uma relaxação do problema baseada na formulação via Uncapacitated Facility Location Problem (UFLP).

O programa desenvolvido é chamado de TRAPUR e é utilizado em instâncias simétricas e assimétricas. Para casos assimétricos, o custo das arestas foi gerado aleatoriamente em uma distribuição uniforme no intervalo [15, 30]. O preço de compra também foi gerado aleatoriamente em uma distribuição uniforme no intervalo [a, a+10], onde a é um inteiro cujo valor não influencia na solução ótima. Foi gerado um total de 65 problemas com custos assimétricos de 10 a 25 mercados e 10 a 100 produtos.

(31)

3.3 Algoritmo Branch-and-cut de Laporte et al (2003)

Laporte et al (2003) apresentaram um algoritmo exato, baseados na técnica

Branch-and-Cut, sendo aplicado, tanto ao PCC não capacitado, quanto ao PCC capacitado.

Sua busca inicia-se com a aplicação da heurística Marketing Adding Heuristic (MAH). Essa heurística consiste em adicionar à rota, em cada interação, um mercado que ofereça um produto que não foi satisfatoriamente atendido no ciclo atual. É feita uma seleção dos mercados que oferecem aqueles produtos pelo menor preço e é inserido na rota o mercado cujo produto apresenta o maior preço entre os menores. Essa inserção é feita procurando-se no ciclo dois vizinhos, de forma que a inserção do novo mercado entre eles seja mínima.

Essa solução guia a seleção das variáveis incluídas num primeiro problema de programação linear (Linear Programming - LP). Resolve-se esse LP e adicionam-se desigualdades de acordo com as regras branch-and-cut. A solução final, obtida pela busca utilizando o LP, é utilizada como base para um algoritmo denominado LP based Market Adding Heuristic – LPMAH, que consiste em aplicar o MAH iniciando o processo com as arestas associadas às variáveis com maior valor na solução LP. Com essa técnica é possível determinar o valor ótimo para instâncias com até 200 mercados e 200 produtos.

3.4 Generalized Saving Heuristic de Golden et al (1981) e Variações

Na abordagem heurística, um dos primeiros trabalhos deve-se a Golden et al.

(32)

Ong (1982), que propôs a Tour Reduction Heuristic (TRH). A heurística começa com um subconjunto de mercados oferecendo os n produtos e, iterativamente, retira os mercados que oferecem maior custo até que nenhuma melhoria adicional possa ser obtida. Pearn & Chien (1998) sugeriram aprimoramentos aos trabalhos anteriores de Golden et al. (1981) e Ong (1982). Dois deles foram relacionados ao Generalized Saving Heuristic. O primeiro, denominado Parameter Selection Generalized Saving Heuristic, emprega uma função ponderada em que o valor da economia de um dado mercado é multiplicado por um parâmetro de ponderação. Depois de ponderado o valor é adicionado ao custo da economia da viagem. A segunda versão chamada Tie Selection Generalized Saving Heuristic difere da heurística original ao substituir o critério da seleção do mercado que oferece o menor preço do produto pelo critério do mercado mais próximo aos mercados do ciclo corrente.

3.5 Commodity Adding Heuristic de Pearn e Chien (1998) e Variações

Pearn & Chien (1998) propõem ainda a heurística Commodity Adding Heuristic (CAH) que, implicitamente, assume que todos os produtos estão presentes em todos os mercados. O procedimento considera o primeiro produto da lista e constrói a solução de menor custo para esse produto. Em cada passo da iteração é inserido, da mesma maneira, o próximo produto na solução, preservando o menor custo. Em algum momento será necessário adicionar novos mercados à solução; em outros, esses mercados já estarão inclusos.

(33)

adicionar mercados para cada produto na ordem da lista, de forma a satisfazer a demanda desses produtos ou diminuir o custo total da solução.

Na fase de intensificação, o algoritmo utiliza quatro procedimentos. O primeiro é conhecido como remoção de mercados, onde cada mercado pertencente à solução é considerado para remoção. Caso a remoção resulte numa solução viável e com custo total menor que a solução atual, essa será realizada. O segundo procedimento é a adição de mercados, onde cada mercado não visitado é considerado. Nesse procedimento, tenta-se inserir os mercados um a um, de forma que o custo de inserção seja minimizado. Após a inserção, reorganizam-se as compras de produtos com a nova oferta e é efetuado o processo de remoção dos mercados, onde nenhuma compra é efetuada. A nova solução será utilizada caso haja redução do custo total.

O terceiro procedimento da fase de intensificação realiza a troca de mercados. Cada mercado da solução é iterativamente removido e testa-se a inserção dos mercados não visitados, um a um, exatamente como no procedimento anterior. Se a troca resultar numa solução viável e com o menor custo total, será mantida. Finalmente, no quarto procedimento é utilizada uma heurística PCV com o intuito de minimizar o custo total da rota.

Na primeira variação do algoritmo, o CAH1, são geradas 10 soluções iniciais pela fase construtiva e a fase de intensificação é aplicada apenas na melhor delas. Já na segunda variação, o CAH2, ambas as fases de construção e intensificação utilizam 10 soluções partindo de ordenamentos diferentes da fase construtiva. Após a fase de intensificação, a melhor solução é retida.

(34)

utilizando-se o critério de inutilizando-serção com menor custo, até que a solução utilizando-se torne viável. No artigo é demonstrado os resultados computacionais para as classes de instâncias usadas por Laporte et al (2003). É feita, também, uma comparação entre as heurísticas desenvolvidas por Boctor et al (2003), juntamente com a Marketing Adding Heuristics proposta em Laporte et al (2003).

3.6 Metaheurística de Voß Baseada em Busca Tabu e Simulated Anneling (1996)

Voß (1996) apresentou uma metaheurística baseada em Busca Tabu e Simulated Annealing para o PCC. No trabalho de Voß são apresentadas duas estratégias dinâmicas: a reverse elimination method e a cancellation sequence

method, para o controle da lista tabu. Dois procedimentos heurísticos, ADD-procedure e DROP-procedure, também foram construídos para gerar a solução inicial. O ADD-procedure é um procedimento iterativo que constrói um possível caminho adicionando novos mercados de acordo com um critério de economia. Assim que um ciclo aceitável for criado, os mercados restantes serão adicionados até que nenhuma melhoria na função objetivo seja possível. O procedimento DROP-procedure é inverso ao do ADD-procedure. Inicia-se com uma solução viável que contenha todos os mercados. O procedimento remove, em cada passo, o mercado que irá gerar a melhor redução na função objetivo. Se não existir nenhuma redução possível, o procedimento termina com uma solução praticável. Esse último procedimento é também descrito por Ong (1982), entretanto foi chamado de Tour Reduction Heuristic (TRH).

3.7 Pré-Processamento e Intensificação de Teeninga & Volgenant (2004)

Em 2004, Teeninga e Volgenant introduziram procedimentos de pré-processamento e intensificação que, quando aplicado às heurísticas já conhecidas

(35)

Reduction Heuristic (TRH), apresentaram melhoria na qualidade das soluções. O procedimento de pré-processamento, de maneira geral, tenta identificar quais mercados podem ser ótimos e quais não podem. Essa informação é utilizada nas rotinas de inicialização dos outros algoritmos. Já o procedimento de intensificação baseia-se na idéia de que a remoção de um mercado apenas da solução pode não trazer redução no custo total, mas a remoção de k mercados consecutivos pode trazer uma redução significativa. Analogamente, a redução de k mercados e a sua re-introdução na solução também pode gerar uma redução no custo total. A variação proposta desse procedimento faz a execução sucessiva da remoção de k mercados e apenas os re-introduzem caso essa adição traga a redução no custo total da solução, utilizando valores de k, começando de 1 e aumentando até algum valor máximo. No seu artigo é relatado que tal procedimento, apesar de aumentar o tempo de máquina utilizado, melhora a qualidade da solução final.

3.8 Busca Local de Riera-Ledesma e Salazar-Gonzáles (2005)

Riera-Ledesma e Salazar-Gonzales (2005a) apresentaram uma aproximação heurística para a solução do PCC capacitado e não capacitado. Uma solução inicial contendo todos os mercados é construída com o algoritmo do vizinho mais próximo para o PCV. Esse ciclo é otimizado pelo algoritmo de Lin-Kernighan. Inicia-se, então, uma busca local baseada em duas famílias de vizinhança e uma estratégia de diversificação chamada shaking.

O primeiro procedimento executa um esquema iterativo que troca l vértices consecutivos em um ciclo praticável por um conjunto de vértices que não estão nesse ciclo. O valor de l é reduzido assim que um ótimo local for encontrado. Esse procedimento é chamado l−ConsecutiveExchange. O segundo insere tantos vértices quanto possível sempre que uma inserção implica em uma redução no valor objetivo. Esse procedimento é chamado Insertion.

(36)

denominado RestoreFeasibility, tenta restaurar a praticabilidade se esta for perdida no estágio precedente.

Esse conjunto de movimentações define um número alto de vizinhança. Por esse motivo, a fim de selecionar um vizinho bom, a enumeração completa da vizinhança é evitada e o seguinte procedimento heurístico é executado. Dada uma solução inicial σ , um valor inicial de l é escolhido de acordo com um procedimento. Um mecanismo iterativo para remover cada seqüência de l consecutivos mercados é executado pelo procedimento l−ConsecutiveDrop. Todavia, se na modificação do ciclo o mesmo tornar–se impraticável, o procedimento RestoreFeasibility é chamado. Se for melhor que a precedente, a solução σ é atualizada. Entretanto, se nenhuma melhoria for conseguida ou se a restauração da praticabilidade falhar, o valor de l é diminuído em uma unidade. Esse procedimento continua iterativamente até l=0. A figura 7 mostra o pseudocódigo do procedimento descrito.

FIGURA 7 - Pseudocódigo l−ConsecutiveExchange

O procedimento Insertion realiza inserções de mercados ao ciclo corrente praticável σ, tal que a inserção implique na redução do custo total de σ.

O procedimento shaking diversifica a solução quando uma melhoria não é mais encontrada no passo de busca local.

Um experimento computacional compara o desempenho da heurística proposta com os algoritmos de Boctor et al (2003).

Input: um ciclo praticável σ e 1≤l<|Vσ |

Output: um ciclo praticável σ

Enquanto l≥1

σ’ := l-ConsecutiveDrop(σ,l) se σnão é praticável

σ’ := RestoreFeasibility(σ’;)

se f(σ() f(σ( ou σ não é praticável l := l – 1

senão σ:=σ

(37)

3.9 Metaheurística de Bountoux e Feillet Baseada em Colônia de Formigas (2006)

Bountoux & Feillet (2006) desenvolveram um algoritmo baseado na otimização por colônia de formigas. Esse método de otimização inspira-se nas formigas reais, quando elas procuram alimento exploram inicialmente a área que cerca o ninho de maneira aleatória. Em pouco tempo as formigas encontram o caminho para o alimento, dependendo da quantidade e da qualidade, as formigas carregam para o ninho. Durante a viagem de retorno, a formiga deposita no chão uma substancia química, o feromônio. A quantidade de feromônio depende da qualidade e da quantidade de comida, o que guiará outras formigas na busca pela comida. A comunicação indireta entre formigas via feromônio permite que elas encontrem os menores caminhos (Dorigo et al, 1996).

O algoritmo proposto por Bountoux & Feillet (2006) foi denominado Dynamic Multi-Dimensional Anamorphic Traveling Ant (DMD-ATA), trata-se de uma melhoria para o algoritmo original de colônia de formigas especializado na solução do Problema do Caixeiro Comprador Não Capacitado.

No DMD-ATA, uma formiga artificial é um agente que se move de um mercado para outro em um grafo PCC. Formigas artificiais preferem mercados que estão conectados por arestas que possuem maior quantidade de feromônio e que são mais promissores de acordo com uma heurística. Após coletar todos os produtos, a formiga não retorna para o depósito imediatamente, ela tem a possibilidade de visitar mais mercados com uma probabilidade sendo diminuída. Ao terminar o percurso, as formigas deixam nos arcos pertencentes ao percurso uma quantidade de feromônio que é proporcional à qualidade da solução. Além disso, se alguma formiga encontrar uma melhoria sobre a melhor solução encontrada, a nova solução é armazenada. A deterioração do feromônio é executada introduzindo um coeficiente de evaporação: em cada iteração, o feromônio de cada arco é reduzido de 0.1%.

(38)

3.9.1 Viagem das formigas

Inicialmente, em um algoritmo de colônia de formigas, toda vez que uma formiga retorna ao depósito, uma formiga nova sai do depósito. O componente principal da viagem das formigas consiste no fato das formigas trabalharem em paralelo. A idéia é ter um conjunto de formigas, buscando em paralelo por soluções PCC e cooperando através do feromônio. Informalmente, cada formiga constrói uma solução PCC de maneira iterativa: adiciona cidades novas a uma solução parcial explorando a informação ganha na experiência passada e uma heurística. A experiência passada é dada pela quantidade de feromônio depositado pelas formigas nas arestas das solução PCC.

Quando uma formiga alcança o depósito, uma quantidade de feromônio será depositada nas arestas que foram visitadas pela formiga. Esta quantidade depende da qualidade da solução encontrada pela formiga. Isto permite evitar o depósito de feromônio em arestas que pertencem à rotas ruins. No inicio da solução, a quantidade de feromônio é idêntica em todas as aresta. Quando uma formiga retorna ao depósito, começa uma nova rota. As rotas têm comprimentos diferentes e por esse motivo as formigas não estão sincronizadas. Esse tratamento permite um melhor controle das formigas e atualizações mais realísticas de feromônio.

3.9.2 Anamorphic

O componente Anamorphic corresponde ao uso de diferentes tipos de formiga. Cada formiga é definida por um conjunto de parâmetros:

a) Independência (d): esse parâmetro indica a habilidade de uma formiga seguir seu próprio caminho, o que significa ser menos guiada pelo feromônio.

b) Afinidade (a): esse parâmetro indica a atração da formiga para o feromônio. c) Laziness (s): esse argumento designa se a formiga prefere reduzir a distância

(39)

d) Avidity (v): esse parâmetro especifica se a formiga prefere reduzir o custo dos produtos, mesmo que distâncias extras sejam necessárias.

Cada formiga é definida inicialmente com valores aleatórios para os parâmetros d, a, s e v. Esses parâmetros são utilizados para calcular a probabilidade de alcançar um mercado vi através do mercado vj.

3.9.3 Multi-dimensional

Um inconveniente bem conhecido para algoritmos de colônia de formigas (Dorigo et al, 1996) é o risco do feromônio concentrar-se em algumas arestas raras, proibindo arestas que poderiam pertencer à solução ótima ou próxima da ótima. Para evitar esse inconveniente Bountoux & Feillet (2006) adicionaram uma característica multi-dimensional: trinta níveis de feromônios são espalhados em paralelo e cada formiga é então influenciada por um único nível de feromônio, aquele no qual deixa o seu feromônio. O número de formigas por nível é constante durante todo o processo, no entanto existe um fator dinâmico que influencia a quantidade de níveis e permite fundir alguns níveis.

3.9.4 Dinâmico

A fim de usar eficientemente componentes precedentes, algumas características dinâmicas serão incluídas. Primeiramente, as características da população de formigas têm a possibilidade de evoluir durante todo o algoritmo. Quando o custo de uma formiga ultrapassar o valor da melhor solução encontrada multiplicado por um coeficiente dado, a formiga é cortada, tendo alcançado, ou não, o depósito.

O coeficiente é dado por: 1.5+(númerodeprodutos+númerodemercados)/100.

(40)

reinicializa sua rota do depósito. Uma reserva inicial de dez pontos é dada a cada formiga. Quando uma formiga consume todos os seus pontos, será cortada definitivamente e uma formiga nova será adicionada.

Essa formiga nova é definida como um clone da formiga que encontra a melhor solução, com algumas variações em seus parâmetros para evitar a convergência prematura para um conjunto de formigas idênticas. Finalmente, a reserva dos pontos é ajustada para cinqüenta quando uma formiga ocasiona uma melhoria acrescendo a melhor solução existente. Dessa maneira, as melhores formigas são promovidas, enquanto aquelas formigas que visitam partes do espaço que não são interessantes, são eliminadas.

Uma melhoria sobre a característica multi-dimensional é dada pelo número variável de níveis de feromônio. Toda vez que uma formiga é cortada, o nível onde ela se encontra é sujeito a um ponto de penalidade. A reserva do ponto será ajustada a seu valor inicial, cem, quando uma formiga desse nível conseguir uma melhoria em cima da melhor solução encontrada. Quando um nível do feromônio esgotar sua reserva, o nível será excluído. Isso permite concentrar-se nos níveis mais promissores. Entretanto, a fim de preservar a diversidade, a exclusão para quando restam apenas dez níveis. Em vez de serem suprimidos, os níveis são fundidos com o nível onde se localiza a melhor solução encontrada. Observa-se que, quando um nível é suprimido, as formigas que estavam nesse nível serão suprimidas também.

3.9.5 Intensificação com busca local

Para conseguir melhor performance são utilizados procedimentos de busca local. Essa busca local é uma combinação dos procedimentos de inserção de exclusão de mercados. O procedimento de inserção tenta inserir mercados até que nenhuma melhoria seja conseguida. O procedimento de exclusão do mercado é excluído da solução, diminuindo o custo da viagem e aumentando o valor dos produtos.

(41)

excluído a cada chamada do procedimento. Riera-Ledesma & Salazar-González estenderam essa idéia para k-mercados, onde k mercados consecutivos são excluídos.Em seu procedimento Dropstar, Bountoux & Feillet (2006) se propõem a determinar um conjunto de mercados ótimos, consecutivos ou não, que não devem ser excluídos. Dessa maneira, o procedimento Dropstar gera sub-cadeias ótimas. Essa expansão aumenta consideravelmente o tamanho da vizinhança, uma vez que pode ser difícil obter-se uma sub-cadeia ótima.

Bountoux & Feillet (2006) geram sub-cadeias ótimas através de programação dinâmica recursiva, baseada no grafo obtido na rota original. O grafo é construído da seguinte forma: um vértice é adicionado a cada mercado presente na rota; dois vértices são adicionados, duplicando o depósito para início e fim da rota. Arestas são então adicionadas entre cada mercado e mercados localizados próximo na rota. O procedimento consiste em encontrar o menor caminho em um grafo entre as duas cópias do depósito, com a restrição de que todos os produtos sejam comprados.

(42)

4. TRANSGENÉTICA COMPUTACIONAL

A Transgenética Computacional (TC) é uma técnica incluída no amplo contexto dos algoritmos evolucionários que apóia sua metáfora na endosimbiose e em propriedades do fluxo intracelular, desenvolvida por Goldbarg e Goldbarg (2002a). A endosimbiose é uma teoria evolucionária que baseia sua formulação na união de indivíduos de naturezas distintas – diferentes espécies – para a constituição de saltos adaptativos ou a formação de espécies híbridas ou novas.

Os algoritmos transgenéticos, adaptando os conceitos da endosimbiose e de outras características do fluxo intracelular ao contexto computacional, propõem a execução da evolução através de um processo de troca de informações realizado entre populações de espécies diferentes – via de regra uma população de cromossomos e populações de vetores transgenéticos.

Neste capítulo serão abordadas algumas teorias evolucionistas, a fim de fornecer uma base para a apresentação dos algoritmos transgenéticos.

4.1 Revendo o Evolucionismo

Na terra existe uma infinidade de seres que se agitam, que voam pelos ares, que deslizam sob as águas. Ou, ainda, outros que permanecem imóveis a não ser que o vento os agite, são os vegetais, cheios de variedades e colorido.

O mundo vivo tem estado sempre presente ante os homens e parece lógico pensar que esses tenham refletido sobre a sua procedência, a causa porque apresenta tal diversidade e, ao mesmo tempo, qual a razão para tão grande número de semelhanças. Atualmente, a essas perguntas existem várias tentativas de resposta, de acordo com as chamadas teorias evolucionistas.

(43)

tempo bastante prolongados, foram se transformando. É esse fato que constitui o principio do chamado transformismo, oposto a um modo de pensar que afirmava que as plantas e os animais permaneceram sempre iguais, sem variações, desde a sua criação, mantendo as suas formas fixas, ao se dá o nome de fixismo.

Dá-se o nome de teorias evolucionistas às varias construções científicas que pretendem explicar o modo como se verificam as transformações nos seres vivos e quais são as causas que as produzem. Qualquer uma dessas teorias implica na aceitação de que a continuidade dos caracteres morfológicos se une a uma tendência para a modificação de algumas estruturas e para o aparecimento de outras novas.

Atualmente, as teorias evolucionistas estão amplamente distribuídas através de livros, revistas e até filmes. É fácil para qualquer pessoa que assim o deseje, ter acesso ao conhecimento do evolucionismo e pode fazê-lo através de diversas publicações, geralmente rotuladas de divulgação científica. Isso pode levar à crença de que tais teorias, algumas delas pelo menos, estão totalmente demonstradas, sem possibilidade de refutação. Essa impressão é totalmente falsa. Não existe, atualmente, nenhuma teoria capaz de explicar a evolução de modo absolutamente satisfatório, e, em especial, quais seriam as causas que a motivam.

Pode causar estranheza o fato de que, após cerca de duzentos anos de estudos sobre essa matéria, ainda não se dispor de teorias que permitam resolver, de modo categórico, as incógnitas existentes acerca da origem e da evolução dos seres vivos. Mas é o que acontece, e ninguém pode assegurar que chegará um dia em que a Ciência será capaz de resolver os enigmas que se encontram agora propostos.

4.1.1 A teoria de Lamarck

(44)

absolutamente em nada ao jovem Lamarck. Por essa razão, ao morrer-lhe o pai, quando contava com dezessete anos de idade, Lamarck abandona o seminário e vai em busca de aventuras, alistando-se no exército. Naquele momento a França encontrava-se empenhada na Guerra dos Sete Anos e, nela, Lamarck viu a oportunidade de participar, intervindo numa ação em que se portou valorosamente, pelo que foi recompensado com a promoção a Tenente. Não obstante, percebe que o seu futuro na carreira das armas é muito duvidoso e, por isso, decide abandoná-la, dirigindo-se a Paris com uns poucos francos no bolso.

Na capital francesa levou uma vida em que se misturavam a boêmia e o estudo, e também as dificuldades econômicas.

A certa altura travou conhecimento com o Conde de Buffon, um cientista muito afamado, que lhe consegue um emprego no jardim botânico, que era, então, conhecido pelo nome de “Jardim Real”. O salário que recebia era bastante escasso, mas, mesmo assim, dedicou-se com interesse e entusiasmo à investigação.

A especialidade cultivada por Lamarck era a Botânica, sobre a qual ele, anteriormente, já havia publicado um livro com o título de “Flora Francesa”. Não obstante, o destino tinha-lhe reservado uma mudança na sua orientação, possivelmente causadora da sua descoberta da teoria sobre a evolução

Quando se encontrava no Jardim Real, ocorreu a Revolução Francesa, que pouca, ou nenhuma, influência teve na vida de Lamarck, a não ser num certo aspecto: o novo regime reorganizou as tarefas científicas do estudo da Zoologia, do qual se incumbia Lamarck juntamente com outro investigador de nome Geoffroy Saint-Hillaire.

Ambos decidiram, de comum acordo, dividir o reino animal em dois grandes grupos: vertebrados e invertebrados, cabendo, a Lamarck, o segundo.

Tal fato constituiu para Lamarck uma mudança radical. Havia se dedicado, anteriormente à Botânica e agora tinha de enfrentar um mundo que lhe era quase que totalmente desconhecido, além do quê, os invertebrados abarcam aproximadamente noventa por cento das espécies animais e, para o seu estudo, só se dispunha de uma classificação realizada por Lineu, que reunia toda a fauna invertebrada somente em dois grupos: insetos e vermes.

(45)

presença ou ausência dessas partes, assim como à sua maior ou menor perfeição. Tudo isso constituiu em amplo trabalho no qual aplicou vários anos de estudos e pesquisas. O resultado foi um sistema classificador que apresentou num livro ao qual deu o título de “Système nes animaux sans vertébres”. Acerca da qualidade desse trabalho, basta dizer que é a base da classificação que, atualmente, e com pequenas variações, continua a ser utilizada .

Esse estudo, realizado sobre os animais, leva-o a refletir sobre a progressiva diferenciação que se verifica à medida que se sobe pela árvore da vida, desde os seres mais simples até aos mais complexos. Perante ele surge uma escala de complexidade crescente, como se os seres fossem adquirindo, progressivamente, novas estruturas aperfeiçoadas.

O resultado dos seus estudos consubstanciou-se na publicação de um outro livro, intitulado “Recherches sur I'organisation des corps vivants”, em que expôs suas teorias acerca da evolução animal. Foi Lamarck quem, pela primeira vez, expôs de modo sistemático uma teoria acerca da evolução dos seres vivos. Ao elaborar a sua classificação zoológica, chegou à dedução de que existe uma escala de crescente complexidade nos animais, que considera dever ser atribuída à transformação que vão experimentando com o fim de cumprir melhor as funções que lhes permitem sobreviver. Os órgãos e sistemas animais nasceram pela necessidade de desempenhar certas funções, o que é expresso, abreviadamente, quando se diz que a função cria o órgão. E, as condições do meio ambiente e o uso são que aperfeiçoam esses órgãos enquanto o seu não uso produz a atrofia e, finalmente, o desaparecimento.

São vários os exemplos que Lamarck cita em apoio à sua teoria. Um deles refere-se ao sentido de visão da toupeira que pouco lhe é útil já que vive debaixo da terra; por isso, é um animal quase cego. Outro exemplo clássico é o das girafas: trata-se de uma espécie animal muito conhecida, devido, em especial, ao comprimento do pescoço. A girafa alimenta-se de folhas das árvores e isso a obriga a esticar o pescoço para alcançar a folhagem que está mais alta, ocasionando o crescimento, em comprimento das vértebras cervicais.

(46)

evolução dos vegetais. Por outro lado, podiam aduzir-se múltiplos casos que a desmentiam, como, por exemplo, a prática da circuncisão entre os judeus e outros semitas, era realizada há séculos e que não motivou nenhuma modificação permanente ainda que eles, compreensivelmente, assim o desejassem.

No tempo de Lamarck não se conheciam as leis da hereditariedade que excluem a transmissibilidade hereditária dos caracteres adquiridos e a influência do uso, desuso ou atrofia dos órgãos no seu desenvolvimento. Os avanços da Genética, que começa a ser conhecida no início do nosso século, fariam com que as teses lamarckistas fossem abandonadas definitivamente.

Já no fim da sua vida, Lamarck começou a ressentir-se da falta de visão em conseqüência dos vários dias de trabalho ao microscópio, até que ficou completamente cego. Suas teorias também não foram demasiado apreciadas no seu tempo, pois não era considerado um autêntico cientista, mas sim um excêntrico. Devido a esse fato a sua fama não foi grande, sendo o seu nome conhecido mundialmente, mas somente depois da sua morte, quando as teorias darwinistas começaram a entrar no seu apogeu. Em 1829, Lamarck morreu em Paris.

4.1.2 A Teoria de Darwin

Charles Darwin, nasceu em 1809. O pai era um médico, com boa posição, que desejava que o filho seguisse os passos da sua profissão; por esse motivo, ao chegar à idade universitária, Charles foi enviado para a Universidade de Edimburgo, onde permaneceu durante pouco tempo, não porque não gostasse dos estudos, mas porque os mesmos o aborreciam. As suas inclinações iam para a caça e para as coleções de conchas, pássaros, rãs e pequenos animais marinhos. O pai acabou por resignar-se e o filho abandonou os estudos de medicina, pensando em se tornar sacerdote. O caso é que Charles Darwin também não tinha inclinação para a vida religiosa, mas resignava-se, pensando que, sendo eclesiástico, poderia dispor de tempo suficiente para dedicar-se aos seus hobbies favoritos.

(47)

oportunidade de fazer uma longa viagem numa expedição científica. Tratava-se do bergantim de dez toneladas, o Beagle, com o qual seriam realizadas várias comprovações de certas medidas cronométricas, para o que teria que navegar até à Terra do Fogo e à Patagônia, e dar a volta ao mundo. O convite feito a Charles Darwin foi para fazer parte do grupo científico, como naturalista.

Inicialmente o pai opôs-se, mas acabou por dar a sua autorização e Darwin embarcou no Beagle, que largou do porto de Davenport, em 1831, para realizar uma viagem que iria durar cinco anos. Durante todo esse tempo, Darwin dedicou-se a colecionar um grande número de exemplares da fauna de variadíssimos lugares do mundo. Ao mesmo tempo, anotou minuciosamente as suas observações, obtendo uma abundante coleção de dados zoológicos, desconhecidos até então.

A figura 8 mostra a rota percorrida por Darwin.

FIGURA 8 - Mapa da viagem de Darwin a bordo do Beagle

Ao regressar, Darwin dedicou-se ao estudo e à classificação de todo o material recolhido durante a viagem. Durante a expedição observou uma série de aspectos singulares que o fizeram intuir o que, mais tarde, haveria de constituir a sua teoria sobre a evolução. Mas, prudentemente, decidiu não extrair conclusões definitivas antes de estudar de um modo mais consciencioso todos os elementos de que dispunha. E, nesse trabalho, levou vinte anos.

Imagem

FIGURA 2 - Variáveis aplicadas a uma instância do problema
FIGURA 4 - Problema de Armazenamento
FIGURA 7 - Pseudocódigo  l−ConsecutiveExchange
FIGURA 9 - Células Procarióticas e Células Eucarióticas
+7

Referências

Documentos relacionados

A relevância do presente trabalho está no fato de estudar uma das políticas públicas mais duradouras do país e que ao longo dos anos se solidificou como

Tal como previsto, foi feita uma Consulta a todos os Colaboradores do Grupo 8 tendo sido incluída a componente da Responsabilidade Social. Desta Consulta resultaram

§ 2º Nos casos em que houver necessidade de assinatura do instrumento de contrato, e o proponente homologado não estiver inscrito no SICAF, o seu cadastramento deverá ser feito

é um espaço integrado à rede municipal de ensino, através dos serviços de suporte pedagógico, de ações e formações no campo da Educação Inclusiva, visando: a Socializar

Como parte do aldeído formado era transformado nos correspondentes ácido benzóico e álcool benzílico com conse­ quente queda no rendimento da reaçao, decidiu-se

Sendo assim, o Grupo A foi composto com as crianças que realizaram procedimento cirúrgico para tratamento de catarata até 06 meses de idade consideradas, em nosso estudo, de

foram realizadas: Centro Cirúrgico, Unidade de Tratamento In -. tensivo e Berçário, mostrando, de certa forma, pacientes

Pois a piscina privativa está presente em cada um dos 39 banga- lôs Super Luxo do Nannai, permitindo total privacidade para casais, famílias ou grupos de amigos... Apartamentos Luxo