• Nenhum resultado encontrado

Metaheurísticas evolutivas para o problema de roteamento de unidades móveis de pistoneio

N/A
N/A
Protected

Academic year: 2017

Share "Metaheurísticas evolutivas para o problema de roteamento de unidades móveis de pistoneio"

Copied!
92
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO

METAHEURÍSTICAS EVOLUTIVAS PARA O PROBLEMA DE ROTEAMENTO DE UNIDADES MÓVEIS DE PISTONEIO

JOÃO PAULO LIMA DO NASCIMENTO

(2)

                     

(3)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO

METAHEURÍSTICAS EVOLUTIVAS PARA O PROBLEMA DE ROTEAMENTO DE UNIDADES MÓVEIS DE PISTONEIO

por

JOÃO PAULO LIMA DO NASCIMENTO

GRADUADO EM CIÊNCIA DA COMPUTAÇÃO, UERN, 2004

DISSERTAÇÃO SUBMETIDA AO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO DA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO

DO GRAU DE

MESTRE EM ENGENHARIA DE PRODUÇÃO

DEZEMBRO, 2010

© 2010 JOÃO PAULO LIMA DO NASCIMENTO TODOS DIREITOS RESERVADOS.

O autor aqui designado concede ao Programa de Pós-Graduação em Engenharia de Produção da Universidade Federal do Rio Grande do Norte permissão para reproduzir, distribuir, comunicar ao público, em papel ou meio eletrônico, esta obra, no todo ou em parte, nos

termos da Lei.

Assinatura do Autor: ___________________________________________ APROVADO POR:

________________________________________________________________ Dario José Aloise (presidente, PEP/UFRN)

________________________________________________________________ Daniel Aloise (examinador, PEP/UFRN)

________________________________________________________________ Caroline Thennecy de Medeiros Rocha (examinador, PEP/UFRN)

(4)
(5)

AGRADECIMENTOS

A Deus por todo fortalecimento espiritual, luz e por todas as permissões concedidas, indispensáveis para a conclusão deste trabalho.

Aos meus familiares e amigos, por toda formação e incansável apoio e motivação para caminhar fortemente pelo desafio da vida.

À UFRN e ao PEP pela formação acadêmica e cidadã.

Ao meu orientador Dario José Aloise, pela força e confiança nos momentos mais difíceis do desenvolvimento deste trabalho.

Ao meu grande amigo Allison Guedes, que me apoiou enquanto estava em missão de estudos no Rio de Janeiro.

À CAPES, por fornecer recursos necessários enquanto atuante no PROCAD-NF, no PEP-UFRJ.

A todos os professores do PEP-UFRJ, especialmente aos professores Samuel Jurkiewicz e Laura Bahiense.

(6)

Resumo da Dissertação apresentada à UFRN/PEP como parte dos requisitos necessários para a obtenção do grau de Mestre em Engenharia de Produção.

METAHEURÍSTICAS EVOLUTIVAS PARA O PROBLEMA DE ROTEAMENTO DE

UNIDADES MÓVEIS DE PISTONEIO

JOÃO PAULO LIMA DO NASCIMENTO

Dezembro/2010

Orientador: Dario José Aloise

Curso: Pós-Graduação em Engenharia de Produção

O presente trabalho apresenta estratégias metaheurísticas baseadas no framework dos Algoritmos Evolutivos (Genéticos e Meméticos) com a adição da técnica Vocabulary Building para a resolução do Problema de Otimização do Emprego de Unidades Móveis de Pistoneio (UMPs). Por se tratar de um problema NP-árduo, uma modelagem matemática é formulada para o problema, permitindo a construção de instâncias testes que são utilizadas para validar as metaheurísticas evolutivas desenvolvidas.

Palavras-Chave: Algoritmos Evolutivos, Vocabulary Building, Roteamento de Veículos,

(7)

Abstract of Master Thesis presented to UFRN/PEP as fulfillment of requirements to the degree of Master of Science in Production Engineering

EVOLUTIONARY METAHEURISTICS APPLIED TO ROUTING PROBLEM OF

UNITS MOBILE RECOVERY OF OIL

December/2010

Thesis Supervisor: Dario José Aloise

Program: Master of Science in Production Engineering

This paper presents metaheuristic strategies based on the framework of evolutionary algorithms (Genetic and Memetic) with the addition of Technical Vocabulary Building for solving the Problem of Optimizing the Use of Multiple Mobile Units Recovery of Oil (MRO units). Because it is an NP-hard problem, a mathematical model is formulated for the problem, allowing the construction of test instances that are used to validate the evolutionary metaheuristics developed.

(8)

SUMÁRIO

Lista de tabelas ... ix

Lista de figuras ... x

Lista de abreviaturas, siglas e símbolos ... xi

Capítulo 1 - Introdução ... 12

1.1 Contextualização do Objeto de Estudo e Justificativa ... 12

1.2 Apresentação do Problema... 12

1.3 Objetivos ... 13

1.3.1 Geral ... 13

1.3.2 Específicos... 13

1.4 Hipóteses ... 14

1.5 Metodologia ... 14

1.6 Estrutura do Trabalho ... 14

Capítulo 2 – O Problema de Roteamento de Unidades Móveis de Pistoneio - PRUMP .... 16

2.1 A Produção de Petróleo na Bacia Potiguar ... 16

2.2 Descrição do Problema ... 20

2.3 Formulação Matemática... 22

2.3.1 Maximização da Produção ... 23

2.3.2 Minimização de Tempos de Percurso ... 26

2.4 Problemas Correlatos ... 27

2.4.1 Problema do Caixeiro Viajante... 27

2.4.2 O Problema da Orientação – PO ... 30

2.4.3 O Problema do Caixeiro Viajante Coletor de Prêmios ... 32

2.4.4 O Problema de Roteamento de Veículos ... 32

2.5 Complexidade... 35

2.6 Trabalhos já Realizados ... 37

Capítulo 3 – Algoritmos Evolutivos e Vocabulary Building ... 38

3.1 Algoritmos Genéticos ... 38

3.1.1 Princípios ... 38

3.1.2 Definições ... 39

3.1.2.1 Cromossomo e Genes ... 39

3.1.2.2 População e Gerações ... 40

3.1.2.3 Seleção ... 41

3.1.2.4 Operadores Genéticos ... 43

3.1.2.4.1 Cruzamento ... 43

3.1.2.4.2 Mutação ... 45

3.1.3 Estrutura ... 47

3.2 Algoritmos Meméticos ... 48

3.3 Vocabulary Building ... 51

Capítulo 4 – Metaheurísticas aplicadas ao PRUMP ... 53

4.1 Algoritmo Genético Puro (AGP) ... 53

4.1.1 Estrutura dos Cromossomos e Genes ... 53

4.1.2 População ... 55

4.1.3 Gerações ... 55

(9)

4.1.5 Seleção ... 57

4.1.6 Operação de Cruzamento ... 58

4.1.7 Operação de Mutação... 59

4.2 Algoritmo Memético (AM) ... 60

4.3 Vocabulary Building (VB) ... 63

Capítulo 5 – Testes Computacionais e Resultados Obtidos ... 68

5.1 Caracterização e Metodologia ... 68

5.2 Testes Preliminares: instâncias de 11 Poços ... 70

5.3 Testes realizados com instâncias de 99 Poços ... 73

Capítulo 6 – Conclusões e Sugestões para Trabalhos Futuros ... 78

6.1 Conclusões ... 78

6.2 Sugestões para Trabalhos Futuros ... 78

Referências Bibliográficas ... 80

(10)

LISTA DE TABELAS

(11)

LISTA DE FIGURAS

Figura 2.1 – Bacia Potiguar ... 17

Figura 2.2 – Unidade Móvel de Pistoneio ... 18

Figura 2.3 – Esquema Gráfico de um Campo Terrestre ... 19

Figura 2.4 – Representação gráfica dos caminhos yijk ... 25

Figura 2.5 – Prova da equação da ordem do caminho yijk... 26

Figura 2.6 – PRV transformado num PCV ampliado ... 35

Figura 2.7 – Classes de Problemas ... 36

Figura 3.1 – Exemplo de Cromossomo para o PCV ... 40

Figura 3.2 – Crossover de um ponto ... 44

Figura 3.3 – Crossover de dois pontos ... 44

Figura 3.4 – Crossover Unifome usando Máscara ... 45

Figura 3.5 – Esquema do Cromossomo de Mutação ... 46

Figura 3.6 – Esquema da Troca de Posição... 46

Figura 3.7 – Inversão de Genes ... 46

Figura 3.8 – Estrutura básica do AG desenvolvido no trabalho ... 48

Figura 3.9 – Operadores de recombinação e mutação agindo como estratégias de diversificação junto a AMs. ... 49

Figura 3.10 – Estrutura Geral de um AM... 51

Figura 4.1 – Exemplo de Cromossomo para 3 UMPs ... 54

Figura 4.2 – Grafo com rotas para 3 UMPs ... 54

Figura 4.3 – Cromossomos com produção e tempos de jornada ... 57

Figura 4.4 – Cruzamento entre Cromossomos ... 58

Figura 4.5 – Mutação ... 60

Figura 4.6 – Processo de Busca Local do AM ... 61

Figura 4.7 – Estrutura de um Vocábulo ... 63

Figura 4.8 – Exemplos de Vocábulos ... 64

Figura 4.9 – Inserção de Vocábulos ... 66

Figura 5.1 – Malha com 11 poços... 72

(12)

LISTA DE ABREVIATURAS, SIGLAS E SÍMBOLOS

AG – Algoritmo Genético AGP – Algoritmo Genético Puro AM – Algoritmo Memético

AM+VB – Algoritmo Memético com Vocabulary Building BSW – Basic Sediment and Water

ETO – Estação de Tratamento de Óleo GLP – Gás Liquefeito de Petróleo

GRASP – Greedy Randomized Adaptive Search Procedures NP – Nondeterministic Polynomial

NPC – NP-Completo

PCV – Problema do Caixeiro Viajante

PCVCP – Problema do caixeiro Viajante Coletor de Prêmios PO – Problema de Orientação

POE-UMP – Problema do Emprego de Unidades Móveis de Pistoneio PRUMP – Problema de Roteamento das Unidades Móveis de Pistoneio PRV – Problema de Roteamento de Veículos

PSRV – Problema de Sequenciamento e Roteamento de Veículos PSV – Problema de Sequenciamento de Veículos

TCPU – Tempo de Processamento Computacional UMP – Unidade Móvel de Pistoneio

(13)

Capítulo 1

[Introdução]

1.1 Contextualização do Objeto de Estudo e Justificativa

Atualmente, é importante para qualquer empresa se manter competitiva no mercado global, a perfeita utilização de seus recursos, investir em pesquisas em seu setor de atuação e evitar gastos desnecessários. Não diferente, a PETROBRAS ao longo de décadas vem investindo em tecnologias de produção e exploração de petróleo no Brasil, otimizando seus recursos para melhor desenvolver seus produtos.

A exploração de petróleo no Brasil acontece tanto em campos terrestres assim como em campos marítimos. Nesse trabalho, é dada ênfase à exploração de petróleo em campos terrestres. Há toda uma logística no transporte de óleo e gás através de uma frota de veículos, desde sua origem nos campos de exploração até o consumidor final que deve ser considerada.

Otimizando-se toda a logística do transporte terrestre condutor do petróleo tem-se ganhos maiores na produção total, uma vez que se economiza com os gastos provenientes do transporte e a obtenção do produto se dá em menos tempo.

1.2 Apresentação do Problema

(14)

poços para pistoneio, e após conclusão de suas respectivas jornadas, retornam ao depósito de origem. O problema consiste em traçar as melhores rotas para cada veículo de forma que seja maximizada toda a produção de petróleo respeitando-se suas jornadas de trabalho. Na literatura, este problema é conhecido por: Problema de Otimização do Emprego de Unidades Móveis de Pistoneio – POE-UMP. Neste trabalho, o problema abordado será denominado por Problema de Roteamento de Unidades Móveis de Pistoneio – PRUMP, pela ênfase à aplicação a mais de uma UMP.

1.3 Objetivos

Os objetivos deste trabalho estão subdivididos em objetivo geral e objetivos específicos.

1.3.1 Geral

O objetivo principal deste trabalho é o desenvolvimento de Algoritmos Evolutivos e técnicas heurísticas aplicadas a uma frota de veículos do PRUMP.

1.3.2 Específicos

Com a implementação dos Algoritmos Evolutivos para o PRUMP com múltiplos veículos, será possível atender os seguintes objetivos específicos:

 Consolidar um método heurístico que solucione o PRUMP com mais de um veículo;

 Aplicar instâncias utilizadas em métodos exatos para comparação;

(15)

1.4 Hipóteses

Acredita-se que através de um método heurístico seja possível aproximar-se em tempo viável das soluções ótimas obtidas através dos métodos exatos que para instâncias muitos maiores leva-se um tempo demasiado.

1.5 Metodologia

O desenvolvimento deste trabalho foi realizado em etapas, as quais são:

 Contextualização do Problema abordado;

 Revisão da literatura acerca do problema de estudo;

 Adaptação de modelos matemáticos propostos para o PRUMP;

 Revisão e contextualização de Algoritmos Evolutivos e outras heurísticas;

Definição de Algoritmos Genético e Memético e a técnica Vocabulary Building para o PRUMP;

 Implementação na linguagem de programação C++ das metaheurísticas propostas;

 Desenvolvimento e comparação de resultados usando instâncias simuladas.

1.6 Estrutura do Trabalho

O presente trabalho se encontra organizado em capítulos:

O capítulo 2 aborda todo o referencial teórico acerca do PRUMP, apresentando sua formulação matemática e definições, comparando com outros problemas correlatos existentes na literatura.

O capítulo 3 discute os conceitos sobre Algoritmos Evolutivos (Genético e Memético) e a técnica Vocabulary Building.

O capítulo 4 apresenta os conceitos e definições da implementação das metaheurísticas utilizadas no trabalho.

(16)

utilizadas em trabalhos anteriores acerca do POE-UMP foram utilizadas para efeitos de comparação com suas soluções obtidas através de métodos exatos.

O capítulo 6 discute as conclusões obtidas e apresenta as sugestões para trabalhos futuros.

Ao final as referências bibliográficas são listadas.

(17)

Capítulo 2

[O Problema de Roteamento de Unidades Móveis de

Pistoneio - PRUMP]

2.1 A Produção de Petróleo na Bacia Potiguar

O petróleo é a principal fonte de energia na atualidade. Composto por hidrocarbonetos faz parte de diversos produtos do nosso dia-a-dia. Além dos combustíveis, ele também está presente em fertilizantes, plásticos, tintas, borracha, entre outros. De origem fóssil, o petróleo levou milhões de anos para se formalizar nas rochas sedimentares. No Brasil, a maior parte das reservas situa-se nos campos marítimos, alcançando profundidades maiores do que as dos demais países produtores (PETROBRAS, 2010).

No Nordeste, precisamente nos estados do Ceará e Rio Grande do Norte, juntos produz-se cerca 103 mil barris de petróleo por dia, sendo 85% dessa produção dos campos terrestres. São quatro milhões de metros cúbicos (m³) por dia, transportados em 556 quilômetros (km) de oleodutos e 542 km de gasoduto e a região também apresenta mais de 500 km de rede elétrica de alta tensão (PETROBRAS, 2010).

No Rio Grande do Norte são fabricados três produtos: gás natural (3,76 milhões de m³/dia), GLP (Gás Liquefeito de Petróleo – 334 toneladas/dia) e óleo diesel (4,5 mil barris/dia – 1 barril equivale a 159 litros). Há 23 plataformas marítimas, 62 campos terrestres, cerca de 5000 poços e 67 estações coletoras (PETROBRAS, 2010).

(18)

realizado através de bombeamento por tubulações marítimas e terrestres, ou transportados por carretas e navios para as refinarias. Nas refinarias, existe um complexo de tubulações, tanques, vasos, torres, compressoras dentre todo um conjunto que fracionam e processam o petróleo em seus derivados, tais como o gás de cozinha, querosene, combustível de automóveis, óleos lubrificantes, material para asfaltos, dentre muitos. E finalmente, a partir das refinarias os derivados do petróleo, são distribuídos aos centros consumidores, tais como mercados e postos de combustíveis.

Um poço de petróleo é resultante da perfuração vertical realizada com propósitos de extração e medem de cinco a sete polegadas na Bacia Potiguar (região que compreende campos de poços para extração situados no Rio Grande do Norte e Ceará, ver Figura 2.1). Um poço contém elementos pressurizados tais como óleo, água (geralmente salobra) e gás natural. Desses, apenas o óleo e o gás são comercializáveis. A água também é extraída para que o poço possa ser realimentado de maneira mais eficiente. A pressão exercida sobre estes fluídos de um poço implicam em sua capacidade de surgência.

Figura 2.1 – Bacia Potiguar.

Fonte: (Aloise et al., 2009).

(19)

equipamentos que são capazes de fazer o bombeamento do óleo até a superfície (elevação artificial), são classificados como não surgentes (BARROS, 2001 apud NEVES, 2000). Os métodos de elevação artificial são métodos de bombeio em que se adiciona pressão ao fluido para que ele possa vencer as perdas de cargas. São empregados diversos tipos de processos mecânicos para fazer com que o petróleo tenha condições de chegar à superfície, cada um se diferenciando de acordo com suas particularidades.

A quantidade de petróleo é finita. Devido a esse fator, a produção num dado poço irá diminuir até chegar ao seu fim e o poço abandonado (fechado), devido a manutenção dos equipamentos para bombeio. não serão mais justificáveis (economicamente inviáveis). No decorrer do tempo, a constante produção faz com que poços surgentes se tornem não surgentes (bombeáveis), e estes por sua vez, se tornam pistoneáveis, com baixa produção de petróleo, pois não necessitam mais de um equipamento permanente para bombeamento. Os poços pistoneáveis são explotados por veículos equipados com acessórios para elevação de fluídos, denominado Unidade Móvel de Pistoneio (UMP).

As UMPs são utilizadas para explotação em poços com baixa produção de petróleo devido ao seu baixo custo em comparação ao uso de equipamentos fixos. Portanto, seu custo é compensado pela produção sobre os vários poços percorridos em sua jornada de trabalho. Ao chegar num determinado poço, é montado todo o equipamento necessário para a explotação do petróleo. É introduzido um copo de pistoneio suspenso por um cabo de aço e, assim, viabiliza-se a retirada do fluido por levantamento em ações repetidas até que se chegue ao limite de capacidade do poço, ou seja, num nível bastante baixo. Esvaziado um poço, o conjunto é desconectado e então se desloca para outro mais adiante (Figura 2.2).

Figura 2.2 – Unidade Móvel de Pistoneio.

(20)

Diariamente, é definido para cada UMP um trajeto contendo poços para pistoneio. Estes poços situam-se numa região denominado Campo de Produção. Os vários poços espalhados por um campo terrestre são, via de regra, todos acessíveis através de estradas, de modo que é aceitável considerar que de um poço qualquer se chega a qualquer outro pelas estradas, formando um conjunto conexo. Na Figura 2.3, é ilustrado um exemplo do esquema de um campo terrestre. Neste esquema, os círculos são poços de petróleo, enquanto o quadrado simboliza a ETO ( Estação de Tratamento de Óleo ). As linhas correspondem aos trechos de estradas que interligam os nós ( poços ou ETO ) entre si. A ETO é o local para onde converge toda a produção desse campo.

Figura 2.3 – Esquema Gráfico de um Campo Terrestre.

Fonte: (Barros, 2001).

A UMP se destina a operar exclusivamente nos poços disponíveis para pistoneio, admitindo-se a possibilidade de que os demais poços possam servir como pontos de passagem ou nós de transbordo, já que podem estar no caminho entre dois ou mais poços de interesse. Embora um único poço disponível para pistoneio possa representar uma pequena quantidade mensal de óleo produzido, quando esse valor é comparado com o universo do campo, o somatório do que se pode produzir quando são considerados todos os poços pistoneáveis pode ser significativo, justificando-se o uso da UMP. Além disso, a tendência natural de esgotamento de uma jazida sugere que o amadurecimento dos poços

Poços não disp. p/ Pistoneio

ETO

(21)

encaminha-os à condição futura de poços pistoneáveis, aumentando-lhes a importância. Na Bacia Potiguar, os poços pistoneáveis representam 4 % do total (BARROS, 2001).

2.2 Descrição do Problema

As UMPs têm que extrair óleo dos poços pistoneáveis. Portanto, devem atender a um ou mais poços durante um dia de operação. O mais importante não é passar por muitos poços, mas operar sobre um conjunto deles que proporcione um bom retorno em termos de total de óleo produzido. Idealmente, o objetivo deve ser o de buscar produzir o máximo possível de óleo a cada dia de trabalho. Isso caracteriza o problema como sendo de otimização.

Porém, toda essa operação de pistoneio se encontra sujeita a um conjunto definido de restrições que implicam na delimitação direta ou indiretamente da produção total num campo de produção. Portanto, há um número finito de combinações possíveis baseado na decisão de qual trajeto deve ser percorrido para se ter uma maior produção, respeitando-se as restrições existentes. Trata-se, portanto de um problema de otimização sujeito a restrições. No presente trabalho, o problema é conhecido por Problema de Roteamento de Unidades Móveis de Pistoneio (PRUMP).

Para um melhor entendimento do problema, as principais restrições são discutidas nos tópicos seguintes:

A quantidade de UMPs: neste trabalho, é definido um número m que se refere à

quantidade disponível de UMPs para pistoneio para um determinado campo de produção. Quanto mais unidades disponíveis, maior será a produção obtida dentro de uma jornada de trabalho. A inclusão de novas UMPs ao problema implica um aumento no consumo de combustível utilizado pelas mesmas, mas que é diluído devido a uma maior produção, sendo, portanto desconsiderado neste trabalho. Alguns trabalhos anteriores consideraram apenas uma única UMP para pistoneio. Para mais detalhes acerca desses trabalhos, consultar Aloise et al. (2009).

Quantidade de Depósitos: um campo de produção terrestre pode conter uma ou

(22)

central com função de ETO. As UMPs iniciam nesse depósito, dirigem-se aos poços designados e depois retornam ao depósito de origem, onde deixam todo fluido extraído.

A capacidade de transporte de uma UMP: uma UMP possui um pequeno tanque

que suporta até 5 m3 de óleo. Entretanto, para que se possa lhe dar maior eficiência, utiliza-se um caminhão-tanque de apoio, cuja função é a de remover da UMP os fluidos já pistoneados e transportá-los para a ETO, de modo a garantir que o tanque da UMP nunca estará cheio, ou seja, capacidade ilimitada. Essa é a forma considerada neste trabalho para efeitos de simplificação do modelo.

Jornada diária de uma UMP: cada UMP deve seguir o percurso fechado que lhe é

destinado, respeitando o tempo total de sua jornada de trabalho. Então cada UMP k possui uma jornada de trabalho (Lk). Nos campos da Bacia Potiguar, para efeitos

deste trabalho, as jornadas diárias são de 8 ou 16 horas (Lk = 480 minutos ou 960

minutos, respectivamente). Durante o percurso de uma UMP k, depois de concluído o pistoneio de um poço i, passa-se a outro poço j. Não se pode pistonear mais poços ultrapassando o limite Lk. Uma rota a ser cumprida em certo dia, em princípio, não

conterá todos os poços. Os poços que não forem explotados num dia qualquer poderão ser objeto de atuação das UMPs nos dias subseqüentes, dependendo do grau de atratividade que apresentem.

O tempo do trajeto de uma UMP k de um poço i para um poço j (tij): o tempo

que a UMP k gasta para se deslocar entre os poços ou entre um poço e a ETO deve ser considerado para compor o tempo total da rota a ser cumprida e este, por sua vez, é limitado pela jornada diária Lk. Por transportar equipamentos, uma UMP é

um veículo pesado, e mesmo em estradas de asfalto, sua velocidade média registrada foi de 12 km/h (200m/min). Portanto, admitindo-se uma velocidade média, é possível montar uma matriz de distâncias e convertê-las em medidas de tempo, ou seja, tempo de deslocamento de uma UMP entre cada poço ou de um poço para a ETO, definida no modelo como tij.

Tempo de atuação de uma UMP k num poço i: a ação de uma UMP k sobre um

(23)

dessas três etapas, que será definido como t’i (tempo total de atuação de uma UMP k num poço i).

Fator BSW de um poço: o óleo extraído de um poço não está sozinho. Na

verdade, ele faz parte de uma mistura composta de água (salobra) e outros sedimentos. Logo, o fator BSW (Basic Sediment and Water) indica a taxa de água e sedimentos composta do volume extraído. Essa taxa varia de 0 a 100%, quanto mais próxima de 100% mais impuro estaria o óleo. É considerado um fator médio nos trabalhos acerca do POE-UMP. Neste trabalho, adotou-se uma simplificação utilizada em Aloise et al. (2009) em que pi = vi * (1 - BSWi), onde pi se refere ao

total de produção de óleo puro obtida no poço i equivalente ao produto do volume estimado vi pela taxa BSW do poço i.

Os caminhos existentes entre os poços (estradas), os poços e o depósito (ETO) são modelados como um grafo onde os vértices são os poços, sendo o depósito o vértice inicial de índice zero (p0), e os caminhos existentes entre cada vértice são os arcos. A

seguir um resumo das definições apresentadas anteriormente é apresentado. Dados de entrada:

m –número de UMP’s; n – número total de poços; pi produção de óleo no poço i;

t’i tempo de operação (montagem, explotação e desmontagem) no poço i; Lk– jornada de trabalho definida para uma UMP k;

tij tempo de trajeto entre os poços i e j.

2.3 Formulação Matemática

(24)

Variáveis de decisão:

=

2.3.1 Maximização da Produção

Seja

P – produção diária total a ser obtida (m³),

é definido a seguir o seguinte modelo matemático para a maximização de óleo: Maximização da produção para m UMPs:

sujeito a:

(25)

A função objetivo (2.1) maximiza a produção de óleo obtida pelas m UMPs num campo de produção com n poços em um único dia. O total produzido P é apresentando na unidade de medida de volumes (m³).

Toda a produção diária está sujeita a um conjunto de restrições. A restrição (2.2) limita o tempo total de produção das UMPs (tempo de operação mais tempo de trajeto entre os poços) a uma jornada diária atribuída a cada UMP k. As restrições (2.3) e (2.4) condicionam o números de entrada e saída de arcos de um poço. Caso ele seja pistoneado por uma UMP k (xik = 1), haverá apenas um arco entrando e outro saindo

para este poço. Caso contrário, não haverá qualquer arco entrando ou saindo desse poço. As restrições (2.5) e (2.6) limitam a apenas um arco entrando e saindo do depósito (ETO). As restrições (2.7) configuram apenas uma UMP para cada poço. As restrições (2.8) e (2.9), em atuação conjunta com as restrições de (2.3) a (2.7), ajudam a descartar possíveis subciclos ou sub-rotas inválidas. E as restrições (2.10) configuram como variáveis binárias xik e rijk, e as variáveis inteiras yijk como não-negativa.

As variáveis yijk representam o caminho a ser percorrido a partir de i para j, por uma

UMP k numa solução, sabendo que yijk não pode ser negativa ( ). Por exemplo,

seja uma solução para duas UMPs, em que y011 = 1, y121 = 2, y201 = 3, y032 = 1, y342 = 2 e

y402 = 3. De acordo com esses valores, a UMP1, a partir do depósito, visita o poço 1, e

(26)

Figura 2.4 Representação gráfica dos caminhos yijk.

Fonte: Autor.

Em (2.9), representa o valor limite de poços presentes numa sub-rota, sem que a soma dos tempos t’i não ultrapassem Lk, para uma UMP k. O valor de é obtido

colocando-se em ordem crescente os valores t’i de cada poço i, até ter-se . Por exemplo, sejam os tempos de operação t’1 = 120, t’2 = 50, t’3 = 40 e t’4 = 60, para uma jornada Lk = 240. Somando-se em ordem crescente, temos um limite = 3, pois se

pode ter até 3 poços, sem ultrapassar a jornada Lk = 240: t’3 + t’2 + t’4 = 150 < Lk. Ao

acrescentar o tempo do quarto poço (t’1) à soma (t’3 + t’2 + t’4), o valor final seria igual a 290, que ultrapassa o valor Lk = 240, portanto, não sendo permitido um valor para

. Em outras palavras, para este exemplo, pode-se visitar até 3 poços, sem ultrapassar o limite da jornada Lk. O valor máximo para uma variável yijk será + 1, se a

rota rijk for escolhida (rjik = 1).

Em (2.8) são definidas as ordens de percurso yijk para uma UMP k. Se um poço xi é

pistoneado por uma UMP k (xik = 1), então a diferença entre as somas dos valores dos

percursos yijk que saem do poço i ( ) com os que entram no mesmo poço i

( ), ambas as somas com i≠j, é igual ao valor xik. Por exemplo, seja o percurso

(27)

tem-se y201 y121 = x21. Substituindo pelos valores da ordem do caminho, tem-se, para i = 1

e i = 2 respectivamente: 2 – 1 = 1 e 3 – 2 = 1, satisfazendo o conjunto de equações (2.8). Esta prova é ilustrada na Figura 2.5.

Figura 2.5 – Prova da equação da ordem do caminho yijk.

Fonte: Autor.

2.3.2 Minimização de Tempos de Percurso

Em Aloise, Santos e Duhamel (2009) foi proposta para o POE-UMP uma formulação matemática multi-objetivo para uma única UMP em duas fases. Na primeira, o modelo matemático descreve a fase de maximização da produção de petróleo e, na segunda, o modelo descreve a fase de minimização de tempos de percurso das rotas, considerando a produção ótima obtida na primeira fase.

Com base nesses modelos matemáticos, é proposta a formulação matemática para minimização dos tempos de percurso para o PRUMP:

Seja

T – a soma dos tempos mínimos de percurso (minutos),

(28)

Minimização dos tempos de percurso:

sujeito a:

Em (2.11) o objetivo é minimizar os tempos de percurso pelas m UMP(s). Para este objetivo, as restrições de (2.3) a (2.10) também são consideradas e a restrição (2.12) garante que a produção obtida P seja igual à produção ótima P* da fase anterior, a de maximização da produção de óleo.

2.4 Problemas Correlatos

Na literatura são encontrados outros problemas semelhantes ao PRUMP. Estes problemas serão discutidos em cada um dos subitens seguintes.

2.4.1 Problema do Caixeiro Viajante

O PRUMP possui semelhanças com o Problema do caixeiro Viajante (PCV) descrito na literatura. Semelhanças essas que contribuem para a compreensão do problema proposto. O PCV enuncia que dado um conjunto de cidades interligadas por ruas, estradas, canais, etc., de maneira que nenhuma esteja isolada das demais, um viajante partindo de uma dessas cidades deve percorrer por todas sem repetir qualquer cidade, voltando à cidade de partida. Esse caminho deve ser feito com o menor custo possível, admitindo-se que as ligações entre as cidades tenham custos. Esse problema é modelado como um grafo orientado, onde as cidades seriam os nós e as suas ligações seriam os arcos. A solução para o problema é um ciclo hamiltoniano de menor custo possível.

(29)

problemas matemáticos ainda estavam surgindo (FLOOD, 1956). Somente no final da década de 1940 que J. B. Robinson implementou o PCV computacionalmente em programação linear (APPLEGATE et al., 2007). Mas a primeira formulação matemática foi apresentada somente em 1954 por Dantzig, Fulkerson e Johnson (LAPORTE, 1997):

Sujeito a:

A função objetivo (2.13) visa a minimização dos custos (cij) das rotas envolvidas (xij) na solução ótima do PCV. A restrição (2.14) garante que há apenas uma entrada para a cidade j. A restrição (2.15) garante que há apenas uma saída partindo de uma cidade i. A restrição (2.16) configura a variável xij como binária. E por fim o conjunto de restrições em (2.17) define um vetor x que possui todo o percurso ao longo da rota partindo de um nó inicial até ele mesmo, assegurando que cada nó seja visitado e sem sub-rotas.

Uma formulação matemática em representação matricial foi proposta por Hung e Wang (2003):

Sujeito a:

(30)

Em (2.18) cT = (c11, c12, c13, ..., c1n, cn1, cn2, cn3, ..., cnn) é um vetor de coeficientes de custos. O vetor decisão é x = (x11, x12, x13, ..., x1n, xn1, xn2, xn3, ..., xnn). O vetor b possui 2n elementos iguais a 1. E a matriz tem a seguinte forma geral:

onde I é uma matriz identidade nxn e Bi, para i = 1, 2, ..., n, são nxn matrizes de zeros,

exceto a i-ésima linha que possui 1 em todas as posições. Em (2.21) é definido um conjunto de restrições para a formação correta de um ciclo hamiltoniano, assim como descrito em (2.17).

A estrutura do PCV se assemelha com o PRUMP. Os poços são as cidades e os caminhos entre os poços são as ligações existentes entre as cidades. A UMP é o viajante, que deve partir de um ponto inicial (depósito ou ETO) e traçar um caminho entre os poços e depois retornar ao ponto de partida. Em ambos, sub-rotas não são aceitas como solução válida. Mas há uma diferença quanto ao número de cidades visitadas. No PCV o viajante deve passar por todas as cidades sem repeti-las e retornar ao seu ponto de origem, sem nenhuma restrição de tempo. Em contrapartida uma UMP não precisa obrigatoriamente passar por todos os poços, pois a mesma não pode ultrapassar um tempo estabelecido, ou seja, sua jornada de trabalho Lk.

No caso do PCV, a única solução é uma rota completa, que envolva todas as cidades. Já no PRUMP, devido a não exigência de ter que percorrer todos os poços, aquela que inicia e retorna ao depósito é aceita como solução. Essa situação ocorre com freqüência, uma vez que fica inviável visitar todos os poços disponíveis para pistoneio devido ao limite da jornada de trabalho para cada UMP.

(31)

Semelhanças e diferenças entre o PCV e o PRUMP

Item PCV PRUMP

Estrutura Geral nós: cidades; arestas: caminhos

N cidades interligadas

nós: poços; arestas: caminhos

N poços pistoneáveis interligados

Cidades (poços) a visitar Visita todas, começa e termina na mesma cidade

Não precisa ser todos os poços,

mas um sub-conjunto que comece

e termine na ETO

Custos Há custos somente nas arestas Além de haver custo nas arestas

(caminhos), há nos poços (tempo

de operação)

Sub-rotas Não aceita sub-rotas como solução Qualquer sub-rota que atenda a

restrição da jornada Lk e que

contenha a ETO

Prêmios --- Produção de óleo em cada poço

Função Objetivo Minimizar os custos Maximizar a produção de óleo

Tabela 2.1 – Semelhanças e diferenças entre o PCV e o PRUMP Fonte: Adaptado de (Barros, 2001).

2.4.2 Problema de Orientação - PO

Definido um conjunto de pontos com valores associados, dos quais inclui o ponto inicial e final, o objetivo consiste em percorrer um caminho por esses pontos a fim de maximizar a pontuação total, restringida por um limite de tempo TMAX (equivalente à

distância máxima). Nem todos os pontos são percorridos devido a essa restrição. O Problema de Orientação (PO) é equivalente ao PCV com relaxação de tempo, porém no PCV todos os pontos são visitados.

É denotado um conjunto V de pontos valorados e um conjunto E de arestas que interligam os pontos, constituindo um grafo completo G = {V, E}. Cada ponto i possui uma pontuação Si ≥ 0, com exceção dos pontos inicial e final. A distância entre os pontos i e j é

denotado por dij, possuindo um custo não negativo. Considerando estas definições, uma

formulação matemática para o PO é apresentada a seguir (TASGETIREN, 2002):

(32)

Sujeito a:

O PO possui aplicações em roteamento de veículos e na programação de tarefas, discutidos por Golden, Assad e Dahl (1984). Golden, Levy e Vohra (1987), além de demonstrarem que o PO é NP-Difícil, também aplicaram o PO um problema de roteirização de veículos no qual veículos equipados com tanques para transporte de óleo são encaminhados para estações de serviços em diferentes locais. A pontuação total do percurso é maximizada, minimizando-se a distância percorrida, respeitando-se a restrição para o limite de tempo Tmax. Alguns problemas de programação de tarefas utilizando PO

foram modelados por Balas (1989). Problemas estes que utilizam várias combinações de aplicação de produtos para o planejamento da produção, maximizando o lucro e sem violar as restrições de tempo e produção. Keller (1989) aprimorou o seu problema de venda

(33)

2.4.3 O Problema do Caixeiro Viajante Coletor de Prêmios

Conhecido por Prize Collecting Traveling Salesman Problem, o Problema do Caixeiro Viajante Coletor de Prêmios (PCVCP) trata-se do problema que dado um conjunto com N cidades, um viajante ganha um prêmio wk para cada cidade k visitada e

paga uma penalidade pl para cada cidade l não visitada. Em seu percurso o viajante deve

obter uma premiação mínima wo minimizando os custos cij entre as cidades. Balas (1989)

formulou o PCVCP como um grafo dirigido completo G’ = (N, A):

Sujeito a:

onde G’(y, x) é um subgrafo de G’ que representa um caminho dirigido fechado, sendo x e y nós e arcos, respectivamente.

O PCVCP possui aplicações em problemas de formação de lâminas de aço nas indústrias siderúrgicas, escalonamento e sequenciamento de tarefas, roteamento de veículos, dentre outros. Possui complexidade da classe NP-Difícil, tendo em média três vezes mais instâncias possíveis que o PCV para um mesmo número de vértices.

2.4.4 O Problema de Roteamento de Veículos

(34)

consiste no atendimento a um conjunto de cidades i (i=1, 2, 3, ..., n), com demandas qi e

uma frota M de veículos inicialmente situados num depósito, que devem percorrer estas cidades atendendo suas respectivas demandas respeitando-se suas capacidades Q, minimizando os custos (cij) com as rotas escolhidas entre as cidades i e j. Ao final todos os

veículos devem retornar ao depósito origem.

Matematicamente o PRV é modelado como um grafo não-dirigido G=(V, A), onde V = {v0, v1, ..., vn} são os vértices que correspondem às cidades, sendo v0 o depósito, e A =

{(vi, vj): vi, vj V, i < j} as arestas que representam as rotas entre as cidades. Cada vértice

do grafo possui um valor qi que corresponde à demanda numa cidade i. Os custos entre as

cidades i e j são representados por cij. Há uma frota com M veículos possuindo capacidade

(35)

A função objetivo (2.34) é minimizar os custos com as rotas escolhidas de cada veículo k. O conjunto de restrições (2.35) e (2.36) limitam a apenas um veículo a visitar uma mesma cidade. As restrições (2.37) impedem a estagnação dos veículos, dando vazão ao fluxo na rede. Em (2.38) um veículo k irá somente percorrer uma rota. O limite das cargas dos veículos é controlado através das restrições (2.39). Em (2.40) o custo da rota percorrida por cada veículo k é limitado. As variáveis de decisão são definidas em (2.41). E por fim em (2.42) o conjunto de restrições evita a formação de ciclos sem o depósito v0,

sendo S o conjunto de todos os subciclos contendo v0.

Esta formulação matemática define o PRV básico, em que os veículos devem apenas minimizar os custos dos percursos entre as cidades visitadas. Mas na literatura há outros tipos de PRV, dentre os quais se destacam: o Problema de Sequenciamento de Veículos (PSV) em que é importante a sequência das cidades a serem atendidas; e o Problema de Sequenciamento e Roteamento de Veículos (PSRV) em que além de uma precedência entre as cidades a serem atendidas, são definidas janelas de tempo para cada cidade (PIMENTA, 2001).

Além dos PSV e PSRV, outros tipos de PRV podem se diferenciar por terem frotas homogêneas ou heterogêneas, múltiplos depósitos ou apenas um, se uma mesma cidade pode ou não ser atendida por mais de um veículo, dentre outros tipos de restrições que tornam o problema mais complexo de ser resolvido.

O PRV pode ainda ser visto como um PCV com os pontos de partida replicados, ou seja, onde as origens de cada veículo são replicadas de forma que o fechamento das rotas se transforme num PCV ampliado, como ilustrado na Figura 2.6.

No exemplo da Figura 2.6 uma instância exemplo para o PRV contendo três rotas e um depósito e comum foi transformada numa instância ampliada para o PCV.

(36)

Figura 2.6 – PRV transformado num PCV ampliado.

Fonte: Autor.

2.5 Complexidade

Os problemas apresentados no subitem 2.4 são de otimização combinatória, ou seja, dentre um conjunto de soluções possíveis, procura-se encontrar a solução ótima atendendo a todos os critérios envolvidos. Por outro lado, os problemas de decisão admitem como solução uma resposta SIM ou uma resposta NÃO. Para cada problema de otimização existe um problema de decisão equivalente e para encontrá-lo deve-se impor um limite sobre o valor a ser otimizado. Por exemplo, dado um problema de otimização em que se deve encontrar num grafo não-orientado uma clique de tamanho máximo, o seu problema de decisão equivalente seria nesse mesmo grafo saber se existe (SIM ou NÃO) uma clique de tamanho maior ou igual a K.

Os problemas de decisão são resolvidos através de um algoritmo, que ao tratar uma instância do problema, retorna um valor positivo (SIM) ou negativo (NÃO) como resposta ao problema. Se o consumo de tempo deste algoritmo for limitado por uma função polinomial relativo ao tamanho da instância, este algoritmo é dito polinomial e é considerado rápido. Caso contrário, é considerado não-polinomial e lento.

(37)

polinomial não consegue resolver são considerados não-polinomiais e intratáveis. Muitos dos problemas de decisão atuais ainda não se encontram definidos em P ou fora de P.

Outra classe de problemas de decisão é a NP – Nondeterministic Polynomial – que correspondem ao conjunto de problemas com verificadores polinomiais. Um verificador polinomial é um algoritmo que testa um certificado (solução com valor positivo) em tempo polinomial. Em outras palavras, problemas NP são verificáveis polinomialmente. Todo problema P de decisão encontra-se em NP.

Os problemas mais difíceis em NP são denominados por NPC (NP-Completo). Esta classe de problema foi demonstrada por Stephen Cook e Leonid Levin, independentemente, no ano de 1970. Se qualquer problema NPC puder ser resolvido em tempo polinomial, então qualquer problema em NPC possui solução polinomial. Daí se

encontra em aberto a questão de “P = NP?” que é um dos desafios do milênio que vale um

milhão de dólares (CLAY MATHEMATICS INSTITUTE, 2010). A Figura 2.7 resume as classes de problemas discutidas:

Figura 2.7 – Classes de Problemas.

Fonte: Autor.

(38)

mais que o seu caso particular, o PRUMP possui complexidade NP-Difícil, sendo um dos problemas mais difíceis da classe NP. Pois o mesmo pode ser reduzido em tempo polinomial num POE-UMP, caso observado quando se tem apenas uma UMP no roteamento.

2.6 Trabalhos já Realizados

Os primeiros trabalhos acerca do POE-UMP surgiram no ano 2000, através dos trabalhos de Aloise et al. (2000a), Aloise et al. (2000b), Aloise et al. (2000c), Aloise et al. (2000d) e Neves (2000).

Até o ano de 2002, tem-se aplicado ao POE-UMP as metaheurísticas AG, Greedy Randomized Adaptive Search Procedures (GRASP) e Colônia de Formigas, como pode ser

verificado em Neves (2000), Barros (2001), Santos et al. (2001) e Aloise et al. (2002). Recentemente, o PRUMP foi modelado como um problema de otimização combinatória multiobjetivo (EHRGOTT, 2005; COLLETE; SIARRY, 2003), ou seja, em que mais de um objetivo (ou critério) devem ser satisfeitos para o problema. Em Santos, Duhamel e Aloise (2008) e Aloise, Santos e Duhamel (2009) pode-se verificar que além do objetivo de maximizar a produção total de petróleo, um segundo objetivo é a minimização do tempo total da jornada de trabalho de cada UMP.

(39)

Capítulo 3

[Algoritmos Evolutivos e Vocabulary Building]

3.1 Algoritmos Genéticos

3.1.1 Princípios

O homem vem se inspirando na natureza para buscar soluções para alguns problemas em seu cotidiano. Exemplos são algumas invenções tais como o avião (pássaros), o submarino (peixes), as redes neurais (cérebro humano), dentre outros. Nesse contexto, surgiu por volta do século XIX o princípio da Seleção Natural, do naturalista britânico Charles Robert Darwin, onde na natureza os seres vivos mais adaptados ao ambiente têm mais chances de sobrevivência frente aos demais. A medicina e ciências afins vêm mapeando toda a informação genética humana, relacionando deste modo cada gene de cada cromossomo às características que eles representam nos indivíduos (hereditárias, físicas ou funcionais). O projeto Genoma é um bom exemplo de investimento na pesquisa genética. Criado em 1990, tem por objetivo o mapeamento do genoma humano, o que contribuirá para o entendimento acerca de diversas doenças e sua possível cura (GENOMA, 2005).

(40)

recombinação e mutação. Após a última geração apenas os indivíduos mais “adaptados”

sobrevivem (LEMONGE, 1999).

3.1.2 Definições

Como discutido anteriormente, os Algoritmos Genéticos (AG) são inspirados na teoria evolucionista de Darwin. A solução de um problema resolvido por um AG é desenvolvida ao longo de um número pré-determinado de gerações. Ao final da execução de um AG, espera-se que se tenha chegado a uma solução ótima ou próxima o bastante. Inicialmente tem-se um conjunto de soluções (cromossomos) que constituem uma população. As soluções de uma população são utilizadas para gerar uma nova população, que se espera que seja melhor que a anterior. O processo de geração de uma solução melhor, mais adaptada, se dá através de algumas operações, implementadas de acordo com a estrutura de problema abordado. Essas operações são as que modificam a estrutura dos cromossomos (mutação e cruzamento ou recombinação), criando melhores cromossomos. A seguir são apresentadas as definições dos elementos presentes nos AGs.

3.1.2.1 Cromossomos e Genes

Os cromossomos consistem, em cadeias de caracteres, representando alguma informação relativa às variáveis do problema. Cada cromossomo representa deste modo uma solução do problema. Sua estrutura está relacionada diretamente com a estrutura do problema em si. A unidade básica de um cromossomo é um gene, que pode ser binário ou multivalorado. No primeiro caso, o cromossomo possui uma codificação binária {0, 1} e seu número de representações diferentes é da ordem de 2n, sendo n o seu tamanho. Um cromossomo multivalorado possui um número maior de representação por gene, possuindo uma faixa de representação da ordem de Mn, onde M se refere ao tamanho do alfabeto (número de representações por gene) e n o tamanho do cromossomo.

(41)

de cromossomo para o problema do caixeiro viajante, cada gene poderia indicar uma cidade a ser visitada, de acordo com a ordem definida. A Figura 3.1 ilustra uma representação de cromossomo para o PCV e uma rota definida de acordo com a ordem dos genes.

Figura 3.1 – Exemplo de Cromossomo para o PCV.

Fonte: Autor.

3.1.2.2 População e Gerações

Uma população consiste num conjunto de cromossomos. Cada cromossomo representa uma solução, logo temos um conjunto de soluções, cada uma com um valor. No início da execução de um AG, é configurada uma população inicial, que na maioria das vezes é formada seguindo um critério aleatório. Porém algumas vezes uma solução heurística é utilizada para gerar uma população inicial, tal como um critério de escolha guloso, com soluções mais interessantes (GOLDBERG, 1989).

(42)

O tamanho de uma população (número de indivíduos) afeta o desempenho global e a eficiência do AG. Se criada uma população pequena, haverá pouca cobertura no espaço de busca das soluções. Porém se criada uma população maior, previne a convergência prematura para ótimos locais, entretanto, demanda um tempo maior de processamento.

3.1.2.3 Seleção

São responsáveis pela preservação dos melhores indivíduos nas gerações seguintes, baseando-se no princípio da “sobrevivência dos mais fortes”. Em contrapartida os indivíduos com menor aptidão são descartados.

Computacionalmente, os indivíduos são diretamente selecionados da população aos pares para a reprodução, sendo seus herdeiros implantados na próxima geração. Inúmeros esquemas de seleção já foram propostos e implementados na prática dos AGs, alguns não sendo biologicamente plausíveis (BLICKLE e THIELE, 1995). Na seqüência, alguns dos mais empregados na literatura são discutidos:

 Método da Roleta: uma probabilidade de seleção é calculada de acordo com a aptidão de cada indivíduo. Uma forma de quantificar a probabilidade pi do i-ésimo

indivíduo xi da população vir a ser selecionado para reprodução é o cálculo

proporcional ao seu valor da função de aptidão: fi = f (xi). Uma das formas para se

efetuar este cálculo seria (HOLLAND, 1975):

onde fi é assumida positiva e n o tamanho da população. Então cada indivíduo da

(43)

uma estagnação do algoritmo, isto é, uma baixa pressão de seleção entre aptidões parecidas.

Método do Torneio: são escolhidos aleatoriamente x indivíduos da população, dos quais é selecionado aquele com o maior valor da função de aptidão. Esse processo é repetido tantas vezes quanto for o número de indivíduos da população intermediária a ser gerada. Sua escolha aleatória não provê uma convergência prematura da solução, inibindo também a estagnação do método.

 Método do Ranking: os indivíduos da população são ordenados de acordo com seus valores da função de adaptação. Esta ordenação é chamada de ranking. A cada indivíduo é associado um peso, proporcional à sua posição no ranking. Assim, o indivíduo mais adaptado terá mais chance de ser escolhido para a próxima população, pois a ele será atribuído o maior peso. Analogamente, o indivíduo menos adaptado terá a menor chance de escolha.

Amostragem Universal Estocástica (Stochastic Universal Sampling): semelhante ao método da roleta, mas difere na quantidade de indivíduos selecionados. Neste método, um conjunto contendo k indivíduos (k>2) é escolhido dentre todos os indivíduos de uma população. Indivíduos com maior aptidão possuem mais chances de serem escolhidos, sendo possível na escolha haver várias repetições de si mesmos.

(44)

 Randômico: esta técnica seleciona aleatoriamente um dos pais da população para reprodução. Por não avaliar a função de aptidão dos cromossomos, garante uma grande diversificação. Porém, há a desvantagem de se extrair cromossomos com baixa aptidão para a reprodução.

3.1.2.4 Operadores Genéticos

Os métodos de seleção discutidos anteriormente têm a finalidade de escolher os indivíduos que irão passar por uma operação genética que irá gerar novos indivíduos na população seguinte, mantendo as melhores características da população anterior. Os operadores genéticos são responsáveis pela diversificação da população possibilitando a inserção de indivíduos melhores que sua geração anterior. A cada geração, é esperado que os novos indivíduos tenham funções de aptidão bem próximas da solução ótima para o problema.

A seguir, são discutidos os operadores genéticos: Cruzamento (Crossover) e Mutação:

3.1.2.4.1 Cruzamento

Este operador tem por finalidade cruzar dois ou mais indivíduos pais e criar novos indivíduos (filhos) com a herança genética de seus pais. Também é conhecido como Recombinação ou Crossover (SIVANANDAM e DEEPA, 2008) e funciona definindo pontos de cortes para troca de informações genéticas (genes) entre os cromossomos pais. Existem várias definições de onde e como devem ser inseridos os pontos de corte. A seguir são discutidos os mais empregados:

(45)

Figura 3.2 Crossover de um ponto

Fonte: (SIVANANDAM e DEEPA, 2008).

 Dois-pontos: agora dois pontos de corte são definidos e conseqüentemente haverá três regiões de genes em cada cromossomo pai. A adição de pontos de cortes pode reduzir o desempenho do AG. Mas, em contrapartida, o espaço de busca é explorado profundamente (SIVANANDAM e DEEPA, 2008). A Figura 3.3 demonstra o uso do crossover com dois pontos de corte. Nesta figura, foram escolhidas as regiões centrais de cada cromossomo pai a serem trocadas, mas sem problema algum poder-se-ia trocar as regiões das duas extremidades, caso fosse esse o critério adotado:

Figura 3.3 Crossover de dois pontos

(46)

Multi-pontos: são definidos n pontos de cortes dividindo os cromossomos pais em n+1 regiões. Fica a critério do programador do AG definir se haverá trocas a partir

da primeira ou segunda região, ou se será feito de modo aleatório.

 Uniforme: nenhum ponto de corte é definido. É criada uma máscara do tamanho dos cromossomos pais que contém uma codificação binária que indica quais genes copiar de cada pai para formar um filho. Então para cada bit 1 na máscara, será copiado o gene do pai 1 na posição correspondente, caso contrário será copiado o gene do pai 2. A Figura 3.4 ilustra o uso da máscara binária.

Outras maneiras de inserção de pontos de corte podem ser encontradas em Sivanandam e Deepa (2008).

Figura 3.4 Crossover Unifome usando Máscara

Fonte: (Sivanandam e Deepa, 2008).

3.1.2.4.2 Mutação

Após a operação de cruzamento, discutida no subitem anterior, ocorre a operação de mutação sobre alguns indivíduos selecionados aleatoriamente da população. Esta operação é importante para a diversificação genética da população, alterando arbitrariamente um ou mais genes de um cromossomo escolhido. Dessa forma, mantém-se a probabilidade de se chegar a qualquer ponto do espaço de busca, evitando estagnar em possíveis ótimos locais. Este operador é aplicado aos indivíduos com uma probabilidade dada pela taxa de mutação Pm. Geralmente, utiliza-se um valor baixo para Pm (assim como

(47)

Porém, há outras maneiras de se definir a taxa de mutação de um cromossomo e o modo como é feito, dentre os quais alguns são discutidos a seguir:

Definindo-se um cromossomo de mutação: um cromossomo de mutação (mutation chromosome) é gerado aleatoriamente. Trata-se de um cromossomo com

codificação binária, contendo zeros (0) e uns (1). Em cada ocorrência de um bit 1, a posição correspondente no cromossomo pai é trocada pelo bit inverso. A Figura 3.5 demonstra esse esquema:

Figura 3.5 – Esquema do Cromossomo de Mutação

Fonte: (SIVANANDAM e DEEPA, 2008).

 Troca de posição: dois genes são escolhidos aleatoriamente num cromossomo e são trocados de posição. Ou seja, como visto na Figura 3.6 os genes da segunda e sexta posição, sentido esquerda para a direita, são trocados de lugar:

Figura 3.6 – Esquema da Troca de Posição

Fonte: (SIVANANDAM e DEEPA, 2008).

 Inversão: uma posição aleatória no cromossomo é determinada e os genes próximos são invertidos. Na Figura 3.7 são escolhidos para inversão os dois últimos genes:

Figura 3.7 – Inversão de Genes

Fonte: (SIVANANDAM e DEEPA, 2008).

(48)

que seja possível ganhar a cada geração soluções melhores cada vez mais próximas de uma solução ótima.

3.1.3 Estrutura

Por se tratar de um algoritmo, um AG possui uma execução sequencial e finita (CORMEM ET AL, 2002). Dessa forma, inicialmente um AG armazena dados de entrada, processa estes dados durante certo tempo e gera uma saída com resultados. Na literatura são encontradas diversas estruturas de AGs, mas todas seguem uma base genérica como apresentada na Figura 3.8.

Inicialmente, um AG cria aleatoriamente ou através de algum método de construção guloso, uma população p com base nos dados de entrada (parâmetros do problema). O passo seguinte é o cálculo da função de aptidão (Fa) de cada indivíduo da população

inicialmente criada. O valor de Fa é comparado ao valor objetivo (SO), caso este seja

conhecido, e se forem iguais, o algoritmo encerra, atingindo seu objetivo. Caso contrário, o algoritmo prossegue para um processo de evolução que consiste em várias etapas, encerrando quando se chega ao objetivo ou um número máximo de gerações (LGmax) é

atingido. Durante cada etapa do processo evolutivo, operações genéticas (seleção, cruzamento e mutação) são realizadas nos cromossomos da população, e ao final é esperada uma nova população com maior valor Fa que a anterior, definindo assim a

(49)

Figura 3.8 – Estrutura básica do AG desenvolvido no trabalho.

Fonte: Autor.

3.2 Algoritmos Meméticos

Os Algoritmos Meméticos (AM) pertencem à classe dos algoritmos evolutivos que além de possuírem os métodos de seleção e operadores genéticos tais como crossover e mutação encontrados no AGs, trabalham com o conceito de evolução cultural onde os próprios indivíduos, denominados de agentes, trocam informações culturais entre si adquiridas ao longo de sua existência (MOSCATO e NORMAN, 1992). Os AMs são amplamente estudados e possuem grande aplicabilidade a vários problemas de otimização encontrados na literatura, segundo Moscato e Cotta (2003).

A primeira vez que o termo “Algoritmo Memético” foi utilizado na literatura consta

do ano de 1989 por Moscato, num trabalho com o título “On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts: Towards Memetic Algorithms

(50)

que transcorra uma geração. Entende-se dessa forma que os agentes estão recebendo/transmitindo informações culturais entre si que são adaptadas da melhor maneira possível para cada indivíduo.

A principal diferença entre genes e memes está no processo de transmissão aos seus descendentes. Os genes, no processo de evolução, são transmitidos de forma que os descendentes gerados herdem características e habilidades presentes em seus progenitores. Já quando o meme é transmitido, ele será adaptado pela entidade que o recebe, com base no seu conhecimento e para melhor atender às suas necessidades. Com isso, a informação memética é transmitida de modo mais rápido e flexível que a genética.

O mecanismo que permite a transmissão da informação memética é a introdução de um (ou mais) operador (es) de busca local. A idéia principal de um AM é explorar a vizinhança das soluções obtidas por um AG e caminhar em busca do ótimo local (para cada solução) antes de retornar para o AG e continuar o processo.

De acordo com Merz e Freisleben (1999), num AM os operadores de recombinação (crossover) e mutação agem como estratégias de diversificação. Os indivíduos da população podem estar localizados numa região do espaço de busca contendo um ótimo

local, conhecida por “base de atração do ótimo local”. Utilizando a informação contida na

população, novos pontos de partida podem ser descobertos após a busca local. Os operadores de recombinação e mutação podem gerar indivíduos da população localizados em bases de atração de ótimos locais ainda não explorados, de modo que um novo pico deva ser alcançado, no caso da maximização (Figura 3.9), ou um vale deva ser explorado, no caso da minimização.

Figura 3.9 – Operadores de recombinação e mutação agindo como estratégias de diversificação junto a AMs.

(51)

A busca local começa com um indivíduo e tenta continuamente encontrar melhores elementos dentre os vizinhos, sendo S todo o espaço de busca. Em outras palavras, a finalidade será remeter esse indivíduo para um local onde a função de fitness tenha um valor melhor que o atual. Essa busca deverá ser realizada até que uma condição de parada seja satisfeita, sendo que essa condição deve ser atendida sempre que o processo de busca não tenha mais a capacidade de melhorar a solução atual. Em Concilio (2000), é apresentado um pseudocódigo genérico representativo de uma busca local:

Em Moscato (1999), encontra-se a seguinte definição formal para a busca local: seja um domínio computacional de entrada , tendo um conjunto de respostas correspondentes. Faz-se necessário a garantia de um subconjunto que esteja contido em que identifica as soluções válidas de . Um algoritmo soluciona se para a sua entrada apresentar como saída qualquer , caso contrário ele apresenta que não existe solução . A otimização combinatória trata-se de um tipo especial de problema de busca em que cada tem um conjunto de cardinalidade finita e cada solução possui um valor de fitness . A busca nesse tipo de problema será responsável por encontrar uma solução válida que maximize o fitness . Na Figura 3.10, é apresentado um fluxograma definindo de forma geral uma estrutura para AMs:

Procedimento busca local início

repita

final verdade

para i 1 até número de indivíduos faça início

elemento indivíduo(i)

aplicar busca local (elemento)

se fitness é melhor então final falso fim

até final

(52)

Figura 3.10 – Estrutura Geral de um AM.

Fonte: (NETO, 2009).

3.3 Vocabulary Building

A Vocabulary Building (VB) trata-se de uma técnica de otimização e foi idealizada por Glover (1992), dentro do contexto de Path Relinking. Em Glover e Laguna (1993), essa técnica foi implementada dentro da metaheurística Busca Tabu. Na década de 90, Rochat e Taillard (1995) e Kelly e Xu (1995) possuem trabalhos com aplicações com VB em PRV. A partir de 1997 surgem várias outras publicações acerca da VB: Glover e Laguna (1998); Scholl, Klein e Domschke (1998); Glover (1999); Glover, Laguna e Marti (2000); Glover (2003).

(53)

Durante o processamento dos algoritmos evolutivos, populações contendo um conjunto de indivíduos representam as soluções correntes numa determinada geração. Cada solução apresenta um valor de fitness que a classifica diante das outras como sendo melhor ou pior. Nas melhores soluções, pode haver a existência de estruturas parciais comuns que as tornam boas soluções para o problema. Em busca dessas boas estruturas parciais pode-se chegar a um vocábulo que está presente na maioria das melhores soluções. Define-se por vocábulo um elemento importante para a obtenção de soluções de boa qualidade. Sua estrutura depende do problema a qual está inserido, por exemplo, se o problema a ser tratado for o PRV, um vocábulo seria um conjunto de arestas com custo mínimo. A partir desses vocábulos, é possível chegar a combinações mais complexas e úteis. Está técnica também requer uma estrutura para armazenar os vocábulos identificados como úteis. Esse

conjunto de vocábulos recebe o nome de “Pool ou Coleção de vocábulos” que funciona

como uma espécie de memória adaptativa, ou seja, sofre modificações no decorrer da busca (GUEDES; ALOISE, 2006). Pois a cada momento, soluções parciais distintas podem ser de diferente atratividade. Por esta razão, é interessante que o Pool mantenha somente as que forem mais promissoras dentro do processo de busca.

(54)

Capítulo 4

[Metaheurísticas aplicadas ao PRUMP]

O presente capítulo trata do desenvolvimento e definições dos Algoritmos Evolutivos e Vocabulary Building para o Problema de Roteamento de Unidades Móveis de Pistoneio – PRUMP com uma frota com m veículos.

4.1 Algoritmo Genético Puro (AGP)

4.1.1 Estrutura dos Cromossomos e Genes

(55)

Figura 4.1 – Exemplo de Cromossomo para 3 UMPs.

Fonte: Autor.

Figura 4.2 – Grafo com rotas para 3 UMPs.

Fonte: Autor.

Na Figura 4.1, o cromossomo contém três rotas. Na primeira linha, a rota definida para a UMP 1 é 9-7-1-8 e 10. Na segunda linha, a rota definida para a UMP 2 é 5-6 e 11. E por fim, na terceira linha, a rota definida para a UMP 3 é 2-4-15-13 e 12. As respectivas rotas foram traçadas num grafo como demonstrado na Figura 4.2. De acordo com essa figura, observa-se que os poços 3 e 14 não são visitados. Pois devido às restrições de jornada de trabalho Lk, de cada UMP k, e também à produção pi, em cada poço, alguns

poços podem não ser visitados.

Imagem

Figura 2.1  – Bacia Potiguar.
Figura 2.3  – Esquema Gráfico de um Campo Terrestre.
Figura 2.4  – Representação gráfica dos caminhos yijk .  Fonte: Autor.
Tabela 2.1  – Semelhanças e diferenças entre o PCV e o PRUMP
+7

Referências

Documentos relacionados

6.2 - Procedida à análise das Propostas, a Comissão de Seleção fará o julgamento das mesmas e comunicará o resultado aos proponentes através do Portal do Fornecedor, para que

Não tentarei sintetizar a interpretação de Armindo de Sousa sobre o parlamento medieval, dado que as suas propostas mais fraturantes foram já evidenciadas, de forma incisiva, por

é bastante restrita, visto que tanto suas duas entradas, quanto as galerias e condutos que interligam os pequenos salões são bastante estreitos, e a umidade na maioria dos salões

Apesar da longa distância dos grandes centros urbanos do país, Bonito destaca- se, regionalmente, como uma área promissora dentro do Estado de Mato Grosso do Sul. Bonito,

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...