resumo - Centro de Ciências Exatas e da Terra
Transcrição
resumo - Centro de Ciências Exatas e da Terra
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA - DIMAp PROGRAMA DE MESTRADO EM SISTEMAS E COMPUTAÇÃO DISSERTAÇÃO DE MESTRADO ALGORITMOS EVOLUCIONÁRIOS NA SOLUÇÃO DO PROBLEMA DA PROGRAMAÇÃO DE SONDAS DE PRODUÇÃO MÁRCIA BORCHARDT Natal Junho - 2002 Márcia Borchardt ALGORITMOS EVOLUCIONÁRIOS NA SOLUÇÃO DO PROBLEMA DA PROGRAMAÇÃO DE SONDAS DE PRODUÇÃO Dissertação apresentada como requisito parcial à obtenção do grau de Mestre, pelo curso de Pós-Graduação em Sistemas e Computação, da Universidade Federal do Rio Grande do Norte Área de concentração: Sistemas de Alto Desempenho Orientador: Prof. Dr. Marco César Goldbarg Universidade Federal do Rio Grande do Norte Natal 2002 TERMO DE APROVAÇÃO MÁRCIA BORCHARDT ALGORITMOS EVOLUCIONÁRIOS NA SOLUÇÃO DO PROBLEMA DA PROGRAMAÇÃO DE SONDAS DE PRODUÇÃO Dissertação aprovada como requisito parcial para obtenção do grau de Mestre no Curso de Pós-Graduação em Sistemas e Computação da Universidade Federal do Rio Grande do Norte, pela seguinte banca examinadora: _____________________________ Prof. Dr. Marco César Goldbarg - Orientador Departamento de Informática e Matemática Aplicada, UFRN _____________________________ Profª Drª Elizabeth Ferreira Gouvêa Departamento de Informática e Matemática Aplicada, UFRN _____________________________ Prof. Dr. Henrique Pacca L. Luna Departamento de Ciência da Computação, UFMG Natal, 28 de junho de 2002 ii À Vasco Velleda meu eterno amor iii AGRADECIMENTOS Em especial ao meu noivo Vasco Velleda pelo amor inabalável nos momentos de ausência; por todo apoio e incentivo para a realização deste trabalho. Aos meus pais, Harald e Nelci, pelo apoio, dedicação e preocupação que sempre tiveram em todos os momentos de minha vida, e a toda minha família. Ao PRH-ANP 22/00 – Programa de Recursos Humanos da Agência Nacional de Petróleo (ANP) para o setor petróleo e gás – cujo apoio financeiro tornou possível à realização do curso de pós-graduação. Ao professor Marco César Goldbarg pela orientação para a realização deste trabalho. Aos membros da banca, professores Henrique Pacca L. Luna e Elizabeth Ferreira Gouvêa, por avaliarem o trabalho. iv SUMÁRIO RESUMO.......................................................................................................................vii ABSTRACT..................................................................................................................viii 1 INTRODUÇÃO....................................................................................................... 1 2 PROBLEMAS DE SEQUENCIAMENTO........................................................... 6 2.1 2.2 2.3 2.4 3 Introdução ......................................................................................................... 6 Definição e Caracterização ............................................................................... 7 Complexidade ................................................................................................. 10 Métodos de solução ........................................................................................ 11 SONDAS DE PRODUÇÃO.................................................................................. 17 3.1 Atividade de sondagem................................................................................... 17 3.1.1 Breve visão elucidativa sobre completação e workover......................... 18 3.2 A importância do problema ............................................................................ 20 3.3 Formulação e modelagem matemática do problema ...................................... 22 4 ALGORITMOS GENÉTICOS............................................................................ 32 4.1 Histórico.......................................................................................................... 32 4.2 Definição......................................................................................................... 34 4.3 Terminologia................................................................................................... 35 4.4 Aplicação ........................................................................................................ 37 4.5 Algoritmo Genético híbrido - memético......................................................... 38 4.6 Algoritmo Genético híbrido (memético) utilizado neste trabalho .................. 41 4.6.1 Representação Genética.......................................................................... 45 4.6.2 Operadores Genéticos ............................................................................. 46 4.6.3 Definição de vizinhança de busca........................................................... 50 5 TRANSGENÉTICA COMPUTACIONAL........................................................ 52 5.1 Evolução cultural e biológica ......................................................................... 52 5.2 O paradigma intracelular e extracelular.......................................................... 54 5.3 O processo evolucionário da Transgenética Computacional.......................... 56 5.4 Agentes Transgenéticos .................................................................................. 59 5.5 Algoritmos Transgenéticos ............................................................................. 61 5.6 Pseudocódigo do algoritmo ProtoG_PSPT..................................................... 61 5.6.1 Construção do BM e da população inicial .............................................. 63 5.6.2 Processo evolucionário ........................................................................... 64 v 6 RESULTADOS COMPUTACIONAIS............................................................... 68 6.1 6.2 6.3 Instâncias ........................................................................................................ 68 Desempenho dos algoritmos........................................................................... 69 Comparação de tempo de processamento....................................................... 73 7 CONCLUSÕES..................................................................................................... 76 8 REFERÊNCIAS BIBLIOGRÁFICAS................................................................ 77 vi RESUMO O problema que envolve a programação do atendimento da frota de sondas de produção de poços de petróleo, embora de difícil resolução, é de extrema importância econômica, técnica e ambiental. Uma formulação matemática deste problema é apresentada, onde uma abordagem algorítmica de solução é desenvolvida. O problema abordado pode ser considerado como um problema de sequenciamento em máquinas paralelas que é uma classe importante dos problemas de otimização combinatória. O objetivo da presente pesquisa é desenvolver uma abordagem algorítmica para resolvê-lo, utilizando os fundamentos do algoritmo transgenético Proto-Gene da metaheurística Transgenética Computacional. Em paralelo, é implementado um Algoritmo Genético híbrido – memético – que objetiva fornecer elementos para a comparação de desempenho entre as abordagens de solução. Instâncias são geradas para a realização dos testes computacionais para análise do desempenho das abordagens acima citadas. Palavras-chave: Transgenética Computacional, Algoritmo Genético Híbrido, Sondas de Produção de poços de petróleo, Algoritmo Proto-Gene, problemas de sequenciamento. vii ABSTRACT The problem that involves the programming of the attendance of the fleet of workover rigs of oil wells, even so of difficult resolution, is of extreme economic importance, enviroment and technique. A mathematical formulation of this problem is presented, where an algorithmic boarding of solution is developed. The boarded problem can be considered as a schedule problem in parallel machines that are an important classroom of the combinatoiral optimization problems. The objective of the present research is to develop an algorithmic boarding to decide it, using the beddings of the Proto-Gene algorithm of the Computational Transgenetics metaheuristics. In parallel, it’s implemented a hybrid Genetic Algorithm – memétic – that objective to supply elements the comparison of performance it enters the solution boardings. Instances are generated for the accomplishment of the computational tests for analysis of the performance of the boardings above cited. Keywords: Computational Transgenetics, Hybrid Genetic Algorithm, workover rigs of oil wells, Proto-Gene Algorithm, schedule problem. viii 1 INTRODUÇÃO Modelos são artifícios utilizados para representar uma situação real. O uso de modelos ocorre devido à necessidade de uma melhor compreensão da realidade. O poder de representatividade é a característica do modelo que o torna desejável (Goldbarg e Luna, 2000). O elemento modelo é perceptível nas mais diferentes áreas: no telejornalismo através da simulação ou da recriação gráfica; engenharia civil com o uso de maquetes, o uso de gráficos na economia, na otimização combinatória com o uso dos modelos matemáticos. O uso de modelos matemáticos fornece uma melhor compreensão da essência dos problemas de otimização, pois eles representam os objetivos que se pretende alcançar com a resolução do problema, as restrições (limitações) e as relações de interdependência existentes entre todos os componentes do problema (Jordan, 2001). Um modelo matemático de um problema de otimização é representado por um sistema de equações (inequações) que descrevem a essência do problema. Este modelo determina um número n de decisões a serem tomadas, denominadas variáveis de decisão (x1, x2, ... , xn) inter-relacionadas por uma função matemática que representa a medida da vantagem (desvantagem) associada à tomada de decisão. Esta função é denominada função objetivo. Qualquer restrição associada às variáveis de decisão pode ser representada por equações (inequações) matemáticas, sendo denominadas restrições do modelo. Também são definidos os parâmetros do modelo que são as constantes da função objetivo e das restrições. Na formulação de um modelo matemático, deve haver a preocupação com a criação de um modelo que corresponda à realidade, de tal forma que a solução obtida através do modelo possa realmente ser aplicada. Muitas vezes a criação de um modelo não é necessária, visto que o problema pode ser representado por modelos já desenvolvidos. Neste caso formular matematicamente o problema nada mais é do que convertê-lo para algum modelo específico. Para o problema da programação das sondas de produção (PPSP), ainda não se criou uma formulação matemática, sendo um dos objetivos deste trabalho. Além da formulação matemática, é apresentado um estudo algorítmico para o PPSP. O PPSP foi classificado como sendo um problema de sequenciamento (schedule problem) em máquinas paralelas e conforme Husbands e Mill (1994) é NP-árduo. Com o desenvolvimento da Teoria da Complexidade Computacional (Campello e Maculan, 1994), os problemas passaram a serem classificados de acordo com a complexidade de seus algoritmos e aqueles denominados intratáveis são alvo de interesse de muitos pesquisadores, inclusive os da área de Otimização Combinatória, pois muitos problemas desta área pertencem a esta classe. Diga-se, dentro do atual contexto, um dos campos de conhecimento mais férteis, onde surge a cada dia novos problemas desafiando o pesquisador a descortinar esses novos horizontes em busca de métodos que conduzam a obter um melhor resultado. Os problemas ditos intratáveis, a que se refere o parágrafo acima, são aqueles em que não existe algoritmo de complexidade polinomial que o resolva. Enquanto que para os problemas tratáveis tal algoritmo existe. Por outro lado, para verificar que um problema é intratável, há necessidade de se provar que todo possível algoritmo que o resolva não possui complexidade polinomial. Por exemplo, para o Problema do Caixeiro Viajante (PCV) (Buriol et al, 1999) cujo objetivo é fazer um percurso que visite todas as cidades passando uma vez por cada uma e retornando ao ponto inicial de partida, os algoritmos conhecidos até agora são todos exponenciais. Contudo, não é conhecida prova de que seja impossível a formulação de algoritmo polinomial para o problema (Szwacfiter, 1988). Um problema tratável pode ser resolvido para entradas e saídas de tamanho razoável. Enquanto que, um algoritmo de complexidade não polinomial, de algum problema intratável, poderia em certos casos levar séculos para computar dados de entrada e saída de tamanhos reduzidos, tornando-o inviável (Rogia, 1998). O PCV é um exemplo clássico de problema de otimização combinatória que não apresenta, até o presente momento, algoritmo de complexidade polinomial. Um PCV com 20 cidades, sendo que o número de soluções viáveis é n! (n = número de cidades) tem aproximadamente 2*1018 configurações a serem examinadas. Assumindo que 109 percursos por segundo pudessem ser enumerados, um computador possivelmente levará 78 anos para estabelecer o tour ótimo através da enumeração completa, e se n crescer em 1 unidade o tempo passa a ser em torno de 1642 anos. Esse aumento significativo do tempo quando a instância acresce em apenas uma unidade é chamado de explosão computacional (Campello e Maculan, 1994). 2 Através do PCV e de outros problemas clássicos citados na literatura, como por exemplo o Problema da Coloração de Grafos (Papadimitriou e Steiglitz, 1982), do Quadrático de Alocação (Gouvêa, 2001), percebe-se que o uso da enumeração completa é totalmente inviável devido à explosão computacional gerada. Isto vale também para problemas do mundo real que são um desafio e que tem peculiaridades inerentes a cada um. Desta forma, a real necessidade é criar estratégias de propósito geral que podem negociar com estas peculiaridades, explorando aspectos gerais dos problemas (Moscato, 1989). As heurísticas, surgiram como métodos de solução mais abrangentes para os problemas clássicos e do mundo real considerados intratáveis, as quais tornaram-se uma importante área de pesquisa e aplicações. Pois, a existência de uma solução ótima, não é o principal foco de atenção, pelo contrário, é abandonado pelo método. Parece contraditório utilizar um algoritmo heurístico para solucionar a classe dos problemas intratáveis, visto que o ideal da solução ótima é abandonado, porém, os algoritmos heurísticos buscam o equilíbrio entre o desempenho computacional e a qualidade da solução. Goldbarg e Luna (2000) definem uma heurística como sendo uma técnica que busca alcançar uma boa solução utilizando um esforço computacional considerado razoável. Várias estratégias vieram somar-se às heurísticas gerando técnicas denominadas de metaheurísticas. Não existe, segundo Gouvêa (2001), uma formalização literária para o termo metaheurística, embora torna-se cada vez mais aceito no que se refere a uma grande estratégia para o desenho de algoritmos heurísticos. As pesquisas da grande parte das metaheurísticas têm se caracterizado pela busca de modelos inspirados na natureza. Por exemplo, a fisiologia do sistema nervoso central e o processo de evolução das espécies, forneceram inspiração para o desenvolvimento de novas metaheurísticas chamadas de redes neurais artificiais (Haykin, 1999) e Algoritmos Genéticos (Whitley, 1993), respectivamente. Devido ao fato do PPSP ser um problema generalizado de scheduling, um conhecido problema NP-árduo, o uso da abordagem heurística se faz necessário. São utilizadas duas heurísticas para a resolução deste problema: o algoritmo transgenético Proto-Gene (ProtoG) da metaheurística Transgenética Computacional e o Algoritmo Genético híbrido (AGh) – memético – que objetiva fornecer elementos para a comparação de desempenho entre as abordagens de solução 3 A proposta do presente trabalho é apresentar algoritmos evolucionários para solucionar o PPSP. Também são visados outros objetivos mais específicos, entre eles: 1. Definir o problema: de acordo com Goldbarg e Luna (2000), a definição do problema é uma das fases mais importantes do processo e compreende a clara percepção do desafio colocado; 2. Fazer a coleta e análise de requisitos que englobam o problema para formular o modelo matemático; 3. Formular o modelo matemático do problema através das variáveis de decisão, função(s) objetivo(s), restrições; 4. Construir um Gerador aleatório de Instâncias para obter instâncias utilizadas como dados de entrada para os algoritmos evolucionários implementados; 5. Implementar um algoritmo ProtoG para solucionar o problema; 6. Implementar um AGh para solucionar o problema a fim de criar uma base de comparação de desempenho computacional; 7. Comparar a qualidade das soluções obtidas pelo ProtoG e AGh e avaliar os seus desempenhos. O texto está estruturado em 7 capítulos. O Capítulo 2 trata da classe dos problemas de sequenciamento. São apresentados os principais elementos que caracterizam um problema de sequenciamento: a configuração da(s) máquina(s), das tarefas e a função objetivo. Este capítulo faz uma descrição geral do funcionamento dos principais métodos de solução empregados nesta classe de problemas: Branch e Bound, Busca Tabu, Simulated Annealing, Algoritmos Genéticos e Algoritmos Genéticos híbridos; suas vantagens e desvantagens. O Capítulo 3 apresenta o PPSP. São abordados tópicos referentes à importância do problema e à descrição da atividade de sondagem. Este capítulo apresenta uma descrição formal do problema, a partir da qual um modelo matemático é apresentado. O capítulo 4 destina-se à descrição dos Algoritmos Genéticos, enfocando suas características, terminologia e funcionamento. Os AGh também são descritos neste capítulo e considerações a respeito da busca local por eles utilizada são feitas. Um pseudocódigo do AGh implementando para solucionar o problema da programação das sondas é apresentado com a descrição da representação genética, operadores genéticos e a busca local. 4 A metaheurística Transgenética Computacional (TC) é apresentada no capítulo 5, com a descrição do funcionamento do processo evolucionário que utiliza a informação para guiar a busca da melhor solução. Aspectos referentes aos paradigmas do fluxo intracelular, extracelular, evolução cultural e biológica são descritos, visto que esta metaheurística utiliza os fundamentos dos paradigmas para desenvolver seus algoritmos. São apresentadas as características do algoritmo transgenético ProtoG e a descrição do pseudocódigo utilizado na implementação para solucionar o PPSP. No capítulo 6 são apresentados os resultados computacionais obtidos, incluindo a comparação e análise dos resultados dos algoritmos evolucionários implementados. Finalmente, o capítulo 7, traz as conclusões finais e as sugestões para trabalhos futuros. 5 2 PROBLEMAS DE SEQUENCIAMENTO Neste capítulo são apresentados os problemas de sequenciamento e os métodos mais empregados para solucionar estes problemas. Na seção 2.1 é feita uma breve descrição do escalonamento das atividades nas empresas, demonstrando a importância prática destes problemas e a necessidade de soluções de boa qualidade. Na seção 2.2, são definidos os problemas de sequenciamento e apresentadas as características dos seus elementos (tarefas, máquinas e outros parâmetros). A dificuldade de resolução dos problemas de sequenciamento é apresentada na seção 2.3. Os métodos de solução mais utilizados são descritos na seção 2.4 juntamente com as suas vantagens e desvantagens. 2.1 Introdução Sequenciamento ou escalonamento são formas de tomada de decisão que possuem um papel crucial nas empresas. No atual ambiente competitivo, o efetivo escalonamento se tornou uma necessidade para a sobrevivência no mercado. Companhias devem esforçar-se ao máximo para cumprir as datas firmadas, o fracasso deste comprometimento pode resultar em uma perda significativa da imagem da empresa perante os clientes. Em sistemas produtivos, o escalonamento das atividades ou scheduling é uma das atividades que compõem o planejamento da produção, onde são levados em consideração uma série de elementos que disputam vários recursos por um período de tempo, recursos esses que possuem capacidade limitada (Cury, 1999). Os elementos a serem processados são chamados de ordens de fabricação ou jobs e são compostos de partes elementares chamadas de atividades ou operações. Os principais objetivos no escalonamento das atividades podem ser: o atendimento de prazos, datas de entrega, na minimização do tempo de fluxo dos estoques intermediários, na maximização da utilização da capacidade disponível, dentre outros. Em sistemas produtivos, as ordens de produção são envidas para a linha de produção com as respectivas datas de entrega e planos de processo (inclui informação das seqüências de produção, que máquinas utilizar, tempos de processamento, etc.). Essas ordens têm de ser processadas nas seqüências previstas. O processamento das ordens muitas vezes atrasa devido a ocorrência de problemas inesperados como a falha em alguma 6 das máquinas, o que pode por em causa o cumprimento dos programas. Outros problemas como tempos de processamento maiores do que o previsto podem produzir atrasos. Se os materiais necessários não estiverem disponíveis no momento previsto atrasos podem ocorrer, causando prejuízo à empresa. Devido à importância econômica que os problemas de sequenciamento práticos apresentam, a comunidade acadêmica e científica tem mostrado interesse por esses problemas. Esta classe de problemas, embora de relativa simplicidade em termos de visualização do que é requerido, apresenta extrema dificuldade em termos de encontrar a solução ótima para os problemas mais comuns. Os problemas de sequenciamento, na esmagadora maioria, são, por natureza, muito complexos e com resolução muito difícil, em termos da solução ótima exata (Carvalho, 2000). 2.2 Definição e Caracterização De uma maneira bem geral, pode-se definir um problema de sequenciamento como sendo aquele em que se tem um conjunto de tarefas que serão executadas em processadores obedecendo a certas restrições com o objetivo de otimizar algum critério. Os principais elementos que caracterizam um problema de sequenciamento determinístico são a configuração da(s) máquina(s), das tarefas e a função objetivo (Mendes, 1999). A configuração das máquinas serve para classificar o problema como sendo de máquina simples ou múltiplas máquinas. Quando se têm múltiplas máquinas elas podem ser: idênticas - todas as máquinas têm a mesma velocidade e o tempo de processamento de uma tarefa é idêntico para qualquer máquina; uniformes – as máquinas têm diferentes velocidades e o tempo de processamento da tarefa pode diferir devido ao fator velocidade; não relacionadas – o tempo de processamento da tarefa na máquina é um valor arbitrário e não tem uma característica especial. Em relação à configuração das tarefas, elas podem estar relacionadas com várias operações ou não. De acordo com Williamsom et al.(1997), na classe de problemas shop scheduling cada tarefa consiste de várias operações. Os problemas desta classe podem ser do tipo open shop, job shop e flow shop. Em um open shop, as operações de cada tarefa podem ser processadas em qualquer ordem. No job shop, as operações de cada tarefa precisam ser processadas em uma ordem específica para a tarefa. O flow shop é um job shop onde as máquinas são numeradas em ordem crescente. Para cada tarefa considerada, a 7 operação k é realizada em uma máquina de numeração mais alta que a operação j, se j precede k. Quase todos os problemas práticos de sequenciamento podem ser descritos em termos do problema de job-shop scheduling, o mais difícil e abrangente de todos os problemas de sequenciamento (Husbands e Mill, 1994). Conforme Husbands e Mill (1994) e Vaessens et al. (1994), uma definição formal para um problema de job shop pode ser a seguinte: dado um conjunto J de n tarefas, um conjunto M de m máquinas e um conjunto O de k operações. Para cada operação p ε O há uma tarefa jp ε J para a qual a operação pertence e uma máquina mp ε M na qual ela será processada num tempo tp ε N. Há também uma relação de ordem (→) em O que decompõem o conjunto em um fluxo parcial de ordem das tarefas. Se x → y (a operação x é processa antes de y), então jx = jy, e não tem uma operação z, diferente de x e y, tal que x → z ou z → y. Usando como função objetivo minimizar o makespan, isto é, o tempo decorrido para terminar o processamento de todas as tarefas, o problema é encontrar o tempo de inicio sp para cada operação p ε O tal que: Minimizar: Maxp ε O (sp + tp) Sujeito a: tp ≥ 0, ∀p ε O sx - sy ≥ ty, se y → x, x, y ε O (si - sj ≥ tj) ⋁ (sj - si ≥ ti), se mi = mj, i,j ε O Esta é uma definição de um problema de job-shop scheduling determinístico, onde todos os tempos de processamento são conhecidos e não há restrições de quando as tarefas poderão ser executadas. Há outras formulações para problemas de sequenciamento (Chen e Powell, 1998). Um problema pode ser dinâmico com a inclusão de novas tarefas, problemas nas máquinas ou mudança de prioridade das tarefas podem ocorrer, entre outros. Os problemas de sequenciamento estão relacionados com parâmetros, dente eles: deadlines (prazo de entrega da tarefa), release date (tempo de liberação da tarefa para ser processada) – ambas são consideradas restrições – , tempo de preparação da máquina dependente da seqüência das tarefas, due date (prazo de entrega), tails (período de tempo que a tarefa, após ser processada em alguma máquina, precisa para ser completada - por exemplo: transporte até o cliente), relação de precedência entre tarefas e valores atribuídos às tarefas. 8 Na literatura, há distinção entre deadlines e due date pelo fato que deadlines não pode ser violado (Sourd e Nuijten, 2001). Due data geralmente está associado com o critério de otimizar o número de tarefas atrasadas enquanto que deadlines é uma restrição imposta às tarefas. Uma tarefa pode estar associada com due date e deadline, tal que ela pode ser terminada após a due date e antes do deadline. Quando no problema, as tarefas estão associadas com deadlines e due date, o critério de otimização é minimizar os tempos das tarefas atrasadas. Quando deadlines e tails fazem parte de um problema, o critério de otimização é minimizar o tempo de término da última tarefa. Sourd e Nuijten (2001) e Lancia (2000) demonstram que, se um problema de sequenciamento, ao invés de estar relacionado com tails, está com due date são equivalentes. As funções objetivos podem ser: a minimização do makespan (tempo de finalização da última tarefa), número de tarefas atrasadas, tempo de atraso máximo da seqüência, atraso médio ou ainda, uma combinação de funções objetivos, dando origem a um problema multi-critério (Mendes,1999). O trabalho de Rogia (1998) combina duas funções objetivos para um problema de sequenciamento cíclico de tarefas em processadores paralelos idênticos. Uma delas é minimizar o tempo de finalização dos processadores e a outra é fazer com que estes tempos sejam os mais próximos possíveis, a fim de deixar os processadores menos ociosos. Atualmente pode-se encontrar na literatura um grande número de problemas de sequenciamento que diferem um do outro devido à combinação do tipo de máquina, as características das tarefas e a função objetivo (Mendes, 1999; França et al., 1999; Chen e Powell, 1998; Sourd e Nuijten, 2001; Epstein et al., 2001; Cury, 1999). O problema de programar o atendimento da frota de sondas de produção (PPSP), apesar de ter sido considerado como sendo da categoria dos problemas de sequenciamento, apresenta características que o difere dos problemas típicos desta categoria. A primeira diferença é a caracterização do PPSP, onde as sondas (máquinas) se deslocam até os poços (tarefas), o que nos problemas de sequenciamento acontece ao contrário. Outra diferença é o critério de otimalidade, que nos problemas clássicos onde as tarefas estão associadas a release date e due date o objetivo é minimizar o número de 9 tarefas atrasadas. Como os poços não estão relacionados com due date não faz sentido minimizar o número de poços atrasados. Embora o PPSP relacione os poços com release date, pois cada poço tem uma data a partir da qual ele poderá sofrer a sondagem, o critério de otimização não pode ser minimizar o makespan. Não faz sentido otimizar o makespan porque já existe um horizonte de tempo definido que pode ser considerado como um deadline idêntico para todos os poços e não é objetivo minimizá-lo. Como os poços estão relacionados com um valor de produção que é um fator extremamente importante a ser considerado na resolução do problema. Qualquer que seja o critério de otimização adotado para o problema, deve considerar este fator de produção. 2.3 Complexidade Os problemas de sequenciamento são uma classe importante dos problemas de otimização combinatória e em geral são NP-difíceis (Husbands e Mill, 1994) portanto não há algoritmo que os resolva em um período de tempo que seja uma função polinomial do número de variáveis de entrada (Papadimitriou e Steiglitz, 1982). Logo, encontrar uma solução que tenha a melhor seqüência de poços para cada sonda da frota é uma tarefa muito difícil. O caso mais simples de problema de sequenciamento é aquele que considera apenas uma máquina onde as operações estão relacionadas com tempo de processamento e data de entrega, com o objetivo de minimizar o atraso total. Conforme Mendes (1999), este problema pertence à classe dos NP-Completo. O problema de sequenciamento torna-se mais complexo quando envolve mais de uma máquina, sendo que o número de soluções possíveis é (n!)m (Jain e Meeran, 1999). O Quadro 1 mostra a variação do número de soluções possíveis à medida que varia o número de máquinas e/ou de tarefas. 10 número de tarefas - n número de máquinas – m número de soluções 5 1 120 5 3 1,7 milhões 6 3 373 milhões 10 10 3,96*1065 Quadro 1 – Relação entre o tamanho do problema e esforço computacional Como pode ser observado, o número de soluções aumenta extraordinariamente mesmo para um pequeno aumento no número de tarefas e/ou de máquinas, impossibilitando a enumeração completa de todas as soluções para encontrar a solução ótima. Isto demonstra que há necessidade de métodos que encontrem soluções de boa qualidade, inclusive a ótima, desconsiderando a enumeração completa. 2.4 Métodos de solução O atual estado da arte sugere fortemente que a abordagem exata encontrará limitações dificilmente superáveis pela tecnologia computacional atual para o tratamento dos problemas NP-árduos cujas instâncias (dados específicos que constituem uma entrada para o problema) sejam complexas ou de grande porte. Apesar da dificuldade dos métodos exatos devido à natureza exponencial, uma estratégia enumerativa denominada de Branch and Bound (BB) (Chen e Powell, 1998; Cury, 1999) tem sido utilizada para resolver problemas de sequenciamento. O método baseia-se na idéia de desenvolver uma enumeração inteligente dos pontos candidatos à solução ótima inteira de um problema (Goldbarg e Luna, 2000). O método BB busca por uma solução ótima através do exame de somente uma pequena parte do número total de possíveis soluções. Ele trabalha quebrando o espaço de soluções viáveis em subproblemas menores até que uma solução ótima seja alcançada. Na técnica BB, uma árvore construída dinamicamente representa o espaço de soluções onde ocorre a busca da melhor solução. Para construir a árvore, é necessário desenvolver duas tarefas (Papadimitriou e Steiglitz., 1982): branching (ramificação)– um conjunto de soluções é representado por nodos, podendo ser particionado em conjuntos mutuamente exclusivos. Cada subconjunto no particionamento é representado por um filho do nodo original; lower bounding (limitação inferior) – um algoritmo está disponível para 11 avaliar e calcular o limite inferior para alguma solução no subconjunto. Esta técnica é baseada em procedimentos e regras para permitir que grande parte da árvore seja removida da busca e os grupos de pesquisa tem dado ênfase na construção de melhores estratégias de branching e bounding e a geração de regras mais poderosas para remover grande parte dos nodos da árvore no estágio de busca. O trabalho de Lancia (2000) constrói, através de uma heurística, uma solução e aplica a técnica de BB para resolver um problema de sequenciamento de tarefas com tempo de liberação e tails em duas máquinas paralelas não relacionadas para minimizar o makespan. Conforme o autor, a regra de branching pode tornar-se extremamente ineficiente se o número de máquinas for maior do que dois. Já o trabalho de Cury (1999) associa lógica difusa com BB para problemas flow-shop. De acordo com Jain e Meeran (1999), o método BB é capaz de produzir soluções de qualidade, porém para instâncias de grande porte, a árvore gerada fica muito grande e overflow da memória pode ocorrer. A abundância de variáveis inteiras e o número de restrições na formulação, bem como a natureza exponencial do algoritmo branch and bound, tem impedido o desenvolvimento de procedimentos para problemas de grande porte (Ichihara, 1998) Devido às limitações gerais das técnicas de enumeração exata, os métodos aproximativos tornaram-se uma alternativa viável para solucionar os problemas de sequenciamento (Jain e Meeran, 1999). Uma regra de prioridade – pdrs (do inglês: priority dispatch rules) é método aproximativo que estabelece prioridades para todas as operações e vai escolhendo as operações de mais alta prioridade para determinar as seqüências do processamento nas máquinas (Jones e Rabelo, 1998). A determinação da prioridade pode estar relacionada com atributos das tarefas, atributos das máquinas, ou também relacionada com o tempo atual. As regras de prioridade podem ser estáticas ou dinâmicas (Carvalho, 2000). As regras de prioridade estáticas são aquelas cujo valor da prioridade é independente do instante de tempo atual, por exemplo, a regra SPT (Shortest Processing Time), em que a tarefa com menor tempo de processamento é a que tem maior prioridade, é uma regra estática pois o tempo de processamento não varia com o tempo. As regras dinâmicas são regras cujo valor de prioridade varia com o tempo. A regra denominada de “Folga para processamento” que controla o tempo que ainda há para processamento até data de entrega. O valor desta regra varia continuamente com o tempo, por isso é uma regra dinâmica. 12 Outra forma de classificação tem a ver com o tipo de informação em que se baseia a regra: as regras locais apenas consideram a informação relativa à fila de espera das tarefas enquanto que, as regras globais consideram as informações de todo o sistema produtivo. Muitas regras de prioridade podem ser encontradas na literatura e com o intuito de dar alguns exemplos do funcionamento são descritas algumas delas, citadas em Carvalho (2000): ¾ RANDOM (Random): as tarefas são seqüenciadas para serem executadas nas máquinas num processo aleatório. Não há objetivo nenhum em otimizar qualquer medida de desempenho; ¾ EDD (Earliest Due Date): as tarefas são ordenadas numa fila em ordem não decrescente de data de entrega. As tarefas são selecionadas segundo a ordenação da fila, onde a tarefas com a data de entrega menor tem maior prioridade. Esta regra tende a minimizar o atraso máximo entre as tarefas da fila de espera; ¾ SPT (Shortest Processing Time): quando uma máquina fica livre, de todas as tarefas da fila de espera, é selecionada para processamento aquela com menor tempo de processamento nessa máquina. Em problemas com uma máquina, esta regra garante o menor tempo de percurso médio; ¾ FCFS (First Come First Served): quando uma máquina fica livre, de todas as tarefas da fila de espera, é selecionada para processamento aquela que mais cedo chegou à fila. Esta regra garante que nenhuma tarefa fique eternamente na fila de espera. As pdrs são muito simples de serem implementadas e tem baixo custo computacional, contudo o sucesso na solução de um problema vai depender da natureza das regras utilizadas e a qualidade da solução cai quando o tamanho do problema aumenta (Jain e Meeram, 1999). O problema de escolher a melhor regra como uma medida de desempenho é uma área ativa de pesquisa (Jones e Rabelo, 1998). Assim como os métodos aproximativos, as heurísticas tornaram-se uma alternativa viável para solucionar os problemas de sequenciamento. A heurística Simulated Anneling (SA) (Cunha, 1999) desenvolve seus algoritmos baseada na metáfora do resfriamento gradual, ou recozimento, processo esse que, nos metais, leva a formação de configurações cristalográficas mais estáveis, ou seja, com mais baixo nível de energia retida, decorrendo das propriedades físicas dos metais. 13 O algoritmo cria um espaço de soluções de um problema matemático como um substrato de cristalização de partículas materiais. Na medida em que a temperatura do material que está sendo tratado termicamente vai diminuindo, as partículas vão se agregando em configurações coerentes com a energia correspondente à temperatura do material. Com um decréscimo lento de temperatura, os átomos podem se acomodar de forma ótima, o que minimiza a energia retida dentro da configuração da estrutura molecular do material. Com um decréscimo rápido algumas configurações são cristalizadas em posição de maior energia, sem terem tempo de se estruturarem em um nível inferior de energia. De acordo com Jain e Meeran (1999), SA é incapaz de alcançar de modo rápido soluções de boa qualidade para os problemas job-shop scheduling. Por isso a heurística tem sido utilizada com outros métodos para melhorar os resultados e reduzir o tempo computacional. Yamada e Nakano (1996) utiliza SA combinada com busca local determinística para problemas job-shop, obtendo soluções iguais e até superiores nos testes realizados para problemas encontrados na literatura, porém foi necessário bastante tempo computacional. A Busca Tabu também tem sido utilizada na resolução de problemas de sequenciamento (Rogia, 1998). Ela é uma metaheurística que explora o espaço de soluções mantendo um histórico do processo de busca para evitar possíveis retornos a soluções já visitadas. Este histórico é chamado de lista tabu. A busca é restringida por uma estratégia de proibição, cuja função é controlar e atualizar a lista tabu, com o objetivo de evitar que seqüências de soluções sejam repetidas, até um número pré-determinado de interações, e com isto induzir a exploração de novas regiões (Glover, 1997). A Busca Tabu é uma abordagem inteligente para guiar o processo de busca (Jain e Meeran, 1999), porém o sucesso da busca vai depender dos parâmetros utilizados para intensificar a busca em novas configurações ou diversificar a busca em regiões que não foram exploradas no espaço de soluções. O tamanho da lista tabu também é um parâmetro que influencia para guiar o processo de busca. Outra heurística utilizada para resolver problemas de sequenciamento são os Algoritmos Genéticos (AG’s) (Whitley, 1993) que é uma técnica, baseada numa população, que busca ao longo de várias gerações indivíduos mais aptos. Estes indivíduos são levados ao longo de várias gerações, evoluindo de acordo com os princípios de seleção natural e sobrevivência dos mais aptos. 14 O princípio básico de um AG consiste em selecionar bons indivíduos – soluções do problema – para reprodução e cruzá-los com o propósito de obter soluções melhores que os pais. Os novos indivíduos gerados tendem a ocupar o lugar dos indivíduos menos adaptados da população, melhorando a adaptabilidade da população como um todo. Os novos indivíduos podem também sofrer mutação que introduz e mantém a diversidade genética da população. Os operadores genéticos interferem no sucesso dos AG’s e simples operadores de cruzamento podem gerar novos indivíduos inviáveis (Husbands e Mill, 1994), principalmente quando há relação de precedência entre tarefas. A geração de indivíduos inviáveis causa perda de eficiência desses algoritmos. Os trabalhos iniciais para os problemas de sequenciamento usando os AG’s eram muito específicos, portanto não podiam ser utilizados em outros problemas de sequenciamento. Apesar de terem alcançado sucesso, eles não foram difundidos por apresentarem características específicas. Em Husbands e Mill (1994), há uma descrição geral destes trabalhos e também de trabalhos recentes para os problemas job-shop scheduling com uma análise da qualidade da solução alcançada e do esforço computacional. Os AG’s convencionais são muito pobres (Jain e Meeran, 1999) e o seu uso pode estar associado com técnicas de busca local. Formando assim os Algoritmos Genéticos híbridos (AGh), os chamados Algoritmos Meméticos (Moscato, 1989; Mendes, 1999; Buriol et al., 1999), que repontam resultados significativamente superiores, superando várias deficiências dos AG clássicos (Radcliffe e Surry, 1994). A qualidade da solução obtida através do uso da busca local associada ao AG vai depender dos parâmetros utilizados para se fazer a busca e de acordo com Johnson et al. (1989)1, citado por Jain e Meeran (1999), esta técnica é mais uma arte assim como as escolhas dos parâmetros não pode ser de modo trivial. Visando comparar a proposta do presente trabalho com a melhor disponibilidade no contexto evolucionário, será usado um AGh (memético) na resolução do PPSP. No capítulo 4 é feita uma apresentação mais detalhada dos AGh. 1 JOHNSON, D. S., C. R., M’GEOCH, L. A., SCHEVON, C., 1989, “Optimization by Simuletead Annealing: An experimental evaluation; Part I, graph partitionin”, Operations Research 376, Nov-Dec, 865-892. 15 A metaheurística Transgenética Computacional (TC) para problemas de sequenciamento está sendo utilizada pela primeira vez. Em outros problemas de otimização como: o problema quadrático de alocação (Gouvêa, 2001; Gouvêa e Goldbarg, 2001), coloração em grafos (Gouvêa, 2001; Goldbarg et al., 2001a), problema de roteamento de veículos (Goldbarg et al., 2001b) ela tem demonstrado eficácia para encontrar soluções de boa qualidade. O capítulo 5 descreve detalhadamente a TC. Os trabalhos de Jain e Meeran (1999), Jones e Rabelo (1998) apresentam uma descrição dos métodos utilizados desde o surgimento dos problemas de sequenciamento até os dias atuais. A busca por novos métodos de solução e o aprimoramento dos métodos existentes é uma constante para estes problemas. Isto se deve porque problemas de sequenciamento práticos são numerosos e variados e apresentam duas importantes características (Husbands e Mill, 1994): são de difícil resolução e soluções de boa qualidade trazem benefícios reais. 16 3 SONDAS DE PRODUÇÃO Este capítulo apresenta o problema que consiste na programação da frota de sondas de produção de poços de petróleo (PPSP). As seções 3.1 e 3.1.1 resumem o emprego das sondas e as operações realizadas pelas mesmas em poços terrestres de produção, respectivamente. A seção 3.2 apresenta a importância do problema sob o ponto de vista econômico, técnico e ambiental. Uma descrição formal do problema é descrita na seção 3.3 juntamente com a formulação matemática proposta. Tendo em vista que o problema já foi abordado, a seção 3.3 também descreve o modelo de solução proposto por Paiva et al. (2000), apresentando as diferenças entre as abordagens. 3.1 Atividade de sondagem O petróleo é usado desde os primórdios da civilização, porém a perfuração do primeiro poço petrolífero ocorreu nos Estados Unidos e seu autor foi Edwin L. Drake que após meses no trabalho de perfuração, encontra o petróleo em 27/08/1859. No Brasil, a primeira sondagem ocorreu entre os anos de 1892 e 1896, no entanto o primeiro poço viável comercialmente foi descoberto em 1941 na Bacia do Recôncavo Baiano e, desde então, os investimentos e as novas buscas por jazidas de petróleo no país não pararam de crescer. Até o final da década de 70, o foco dos investimentos foi o desenvolvimento do segmento de refino e transporte. Com o segmento do abastecimento implantado e em resposta aos seguidos ‘choques do petróleo’ da década de 70, começaram a ser empreendidos maiores esforços na exploração de petróleo e gás, especialmente na área offshore. Atualmente, se os novos campos brasileiros que estão sendo desbravados se revelarem produtivos, a produção petróleo/gás vai aumentar de 1,3 milhões de barris dias para 2,1 milhões em 2005, um crescimento de 61% (Caixeta, 2001). Este aumento, se ocorrer, é muito significativo para o país, pois uma súbita alta no preço do petróleo deixaria de ser uma ameaça para a economia. Desde o momento em que o petróleo foi descoberto comercialmente, muitas áreas da ciência aplicam pesquisa e estudo no setor petrolífero. Se no princípio Drake enfrentou diversas dificuldades técnicas para encontrar o petróleo, hoje a perfuração de poços sucede o estudo da Geologia e da Geofísica que investigam a localização das jazidas; esta fase é denominada de exploração. Após a atividade de exploração, inicia a de 17 perfuração que comprova a existência do petróleo e avalia a condição ou não de ser comercialmente viável. Caso seja, tem-se um campo de petróleo e começa a fase de produção na qual atuam as sondas de produção. As sondas de produção são equipamentos com características físicas e complexidade tecnológica muito diversas que realizam operações de completação e workover. Estas operações são de extrema importância, pois permitem condicionar os poços para a produção ou até mesmo melhorá-la e são descritas, a seguir, de forma breve e sucinta. a) b) Figura 1 − Sonda de Produção a) Terrestre b) Marítima 3.1.1 Breve visão elucidativa sobre completação e workover Não menos importante que a descoberta do poço, são as operações de completação e workover. Estas atividades demandam um esforço tecnológico e de mão de obra especializada, que a cada dia vem se tornando mais exigente, tendo em vista o mundo atual e sua dependência do petróleo/gás, o petróleo/gás e o custo que demanda a sua produção que sendo quase que em sua totalidade, avaliado em dólar, em um mundo a cada dia mais globalizado, sofre ou se beneficia com a ciranda do mercado financeiro. Ao término da perfuração de um poço, é necessário deixá-lo em condições de operar, de forma segura e econômica, durante toda a sua vida produtiva. Ao conjunto de operações destinadas a equipar o poço para produzir óleo ou gás (ou ainda injetar fluidos nos reservatórios) denomina-se completação e nesta são envolvidas técnicas de isolamento 18 das zonas produtoras e testes de vazão e pressão do poço, condicionando-o e equipando-o de forma a deixá-lo em condições adequadas de produtividade. Quanto aos aspectos técnico e operacional, deve-se buscar otimizar a vazão de produção e tornar a completação a mais permanente possível, ou seja, aquela que minimize a necessidade de intervenções futuras para a manutenção do poço (Thomas, 2001). Considerando que a completação influencia em toda a vida produtiva do poço e envolve altos custos, faz-se necessário um planejamento criterioso das operações e uma análise econômica cuidadosa para evitar perdas dos investimentos. Primeiramente são instalados na superfície os equipamentos que garantem a segurança necessária para acessar o interior do poço e para a execução das fases seguintes. Em seguida, procede a fase de condicionamento do revestimento de produção e a substituição do fluido que se encontra no interior do poço por um fluido de completação. Após o condicionamento do revestimento de produção, é necessário avaliar a qualidade da cimentação. A cimentação tem a função primordial de promover vedação hidráulica entre os diversos intervalos permeáveis, ou até mesmo dentro de um mesmo intervalo, impedindo a migração de fluidos por trás do revestimento, bem como propiciar suporte mecânico ao revestimento. Caso seja comprovada deficiência na vedação hidráulica, correções são feitas. Defeitos na vedação hidráulica podem gerar diversos problemas, tais como: produção de fluidos indesejáveis devido à proximidade dos contatos óleo/água ou gás/óleo, prejuízo no controle dos reservatórios e operações de estimulação mal sucedidas, com possibilidade até mesmo de perda do poço. A operação seguinte é o canhoneio: um canhão especial desce pelo interior do revestimento e, acionado da superfície, provoca perfurações no aço e no cimento, abrindo furos nas zonas portadoras de óleo ou gás e permitindo o escoamento desses fluidos para o interior do poço. Após se ter o acesso as zonas produtoras, é instalada a coluna de produção. A coluna de produção tem por finalidades básicas conduzir os fluidos até a superfície, protegendo o revestimento contra fluidos agressivos e pressões elevadas; permitir a instalação de equipamentos para a elevação artificial e possibilitar a circulação de fluidos para o amortecimento do poço em intervenções futuras. Dependendo do potencial produtor do reservatório, vinculado às propriedades petrofísicas da rocha e das propriedades dos fluidos do reservatório, há necessidade da utilização de técnicas de 19 estimulação química (acidificação), mecânica (fraturamento hidráulico) ou químicomecânica, para aumentar a produtividade do poço. Após a fase completação, inicia-se a de produção onde o óleo/gás pode vir à superfície espontaneamente, impelido pela pressão interna dos gases. Nesses casos, temos os chamados poços surgentes e instala-se um conjunto de válvulas conhecido como árvorede-natal para controlar a produção. Quando isso não ocorre, é preciso usar equipamentos para promover a elevação artificial dos fluidos. O bombeio mecânico é feito por meio do cavalo-de-pau, montado na cabeça do poço, que aciona uma bomba colocada no seu interior. Existem ainda os bombeios hidráulicos, centrífugos e a injeção de gás, com o mesmo objetivo. Ao longo da vida produtiva do poço, é necessário realizar operações que visam manter a produtividade do poço ou até mesmo melhorá-la, sendo denominadas de workover. Uma série possível destas operações podem ser realizadas por cabo. Também há necessidade de intervenção com as sondas de produção para realizar certas operações quando não se pode utilizar cabo. As sondas de produção realizam intervenções para: restaurar danos mecânicos devido a falhas na coluna de produção ou revestimento; limpar o revestimento do poço; estimular a produção através de alguma técnica específica; reduzir a produção excessiva de água ou gás; alterar a forma pela qual o óleo vem até a superfície quando a pressão interna fica reduzida ou substituir a que está com defeito. As intervenções de workover costumam ser classificadas como: avaliação, recompletação, restauração, estimulação e mudança do método de elevação e abandono do poço (Thomas, 2001). 3.2 A importância do problema O PPSP é definido em um campo de petróleo, onde se tem uma frota de sondas que estão disponíveis para realizar intervenção num conjunto de poços que diminuíram a produção ou que não estão produzindo. No entanto, a frota não consegue atender a demanda dos poços, logo há poços que ficam aguardando por sondas. Para atender à demanda dos poços, há uma frota de sondas disponíveis para o uso que são de domínio da empresa ou que foram contratadas, por um período de tempo maior, através de uma perspectiva orçamentária baseada num plano de metas; também há possibilidade de alocação de novas sondas para atender à demanda, porém a relação entre o 20 custo do aluguel (custo) e o ganho na produção (benefício) deve ser muito bem analisada, pois pode haver um aumento significativo na produção entretanto, este ganho pode não compensar o custo do aluguel das sondas. Sendo que o custo diário das sondas varia muito, ao longo do tempo, em função das condições de mercado ditadas principalmente pelo preço do barril de petróleo e também em função do seu tipo ou categoria. O PPSP é extremamente importante, não só pelo fator econômico mas também técnico e ambiental. Do ponto de vista econômico, o problema está fortemente ligado à produção de petróleo e produzir petróleo, num mundo globalizado, significa produção de capital e divisas. Além do mais, o poder de atratividade exercido pelo ouro negro estimula a aplicação de outros investimentos paralelos. O petróleo também tem um papel importante na economia mundial, por vezes até chamado de ouro negro, pois o seu valor monetário é elevado. Isto se deve ao fato da imensa utilização do mesmo pois, além de produzir combustível e energia, serve como matéria-prima para centenas de produtos, entre eles: plásticos, borrachas sintéticas, tintas, corantes, detergentes, cosméticos, etc. Apesar de toda a tecnologia empregada na intervenção dos poços, se faz necessário analisar o grau dos riscos envolvidos para que não ocorram acidentes ambientais através de vazamentos de poços, perdas ou até mesmo explosões. É aí, que o fator ambiental deve ser considerado no problema proposto, pois o mesmo, em muitas vezes, é responsável por uma visão negativa da imagem da empresa envolvida na exploração petrolífera. Principalmente, quando ocorrem falhas técnicas, sendo a de maior contundência vazamentos/derrames e, uma visão positiva da imagem da empresa, quando associada a projetos de preservação e exploração ética e tecnicamente correta desse valioso bem natural. O fator ambiental será considerado no PPSP através do percentual de atratividade de cada poço que representa possíveis riscos envolvidos na atividade de sondagem. Outros fatores de riscos presentes na atividade de sondagem são a possível perda de um poço devido a danos na estrutura interna provocadas pelo tempo, pelo desgaste ou por outros fatores que causam destruição. E estes fatores de riscos são considerados na solução do problema e são de extrema importância na tomada de decisão. Por exemplo, um poço com elevado risco e um potencial de produção baixo pode ter menos prioridade no atendimento pela sonda e até ser considerada inviável a sua permanência ou, no caso de ser um poço altamente produtivo, fazer uma nova perfuração 21 para se ter acesso ao reservatório. A tomada de decisão não faz parte deste trabalho, porém os riscos associados aos poços irão influenciar no planejamento da programação que será um fator de influência para o tomador de decisão. O PPSP será abordado de modo off-line, portanto as demandas dos poços são conhecidas dentro de um intervalo de tempo e neste intervalo, os poços estão agendados para receber a intervenção podendo ou não ser realizada na data marcada. O objetivo principal na resolução do problema é programar o atendimento da frota de sondas obtendo, desta maneira, o maior retorno de óleo produzido no horizonte de tempo. Além de otimizar a produção e o rendimento através da programação do atendimento da frota de sondas, direcionar a programação de modo a evitar acidentes ambientais, considerando os riscos envolvidos na atividade de sondagem. Fator que será considerado através da “atratividade” do poço. Através da otimização, empregar de modo seguro e planejado a tecnologia de produção que, embora à primeira vista pareça ter um custo elevado, compensa através dos ganhos obtidos com este valioso bem natural – o petróleo. 3.3 Formulação e modelagem matemática do problema O problema proposto neste trabalho consiste em programar o atendimento da frota de sondas aos poços de petróleo no horizonte de tempo determinado. Conforme Paiva et al. (2000), usualmente a programação do atendimento das sondas é definida em reuniões de técnicos e a tomada de decisão é baseada em opiniões e cálculos superficiais. Maiores informações e dados reais do problema não foram fornecidos pelas pessoas responsáveis pelo gerenciamento da atividade de sondagem. No horizonte de tempo, as demandas dos poços que necessitam sofrer sondagem são conhecidas e cada poço está relacionado a uma data que indica o momento a partir do qual a sonda poderá intervir no poço. Por serem conhecidas as demandas dos poços, existe uma possibilidade real de modelá-lo como um problema de decisão off-line. Para cada poço i ∈ P (i = 1, ..., n, onde n é o número de poços) está associado um Qi que representa a unidade de tempo a partir da qual a sonda poderá intervir no poço i, Vi que são as unidades de volume por unidade de tempo que se espera produzir após a intervenção, um Di representando o tempo utilizado para a intervenção em cada poço i e um percentual Ai que representa a atratividade do poço i. 22 A atratividade representa os riscos associados ao poço e varia entre [0,1 e 0,9]. Quanto mais próximo de 0,1 mais baixa a atratividade, ou seja, possivelmente representa uma situação onde há riscos; quanto mais próxima de 0,9 mais alta a atratividade supostamente correspondendo a menores riscos. A atratividade é considerada como um fator de correção associado a cada poço (penalidade), reduzindo a produção nominal esperada para o poço em questão. Um limite máximo de 90% para esse parâmetro foi fixado em função de dados de campo. A atratividade é considerada associada à produção de cada poço. A atratividade é um percentual que não determina qual será a produção do poço após a intervenção mas, por indicar riscos, é um parâmetro de muito peso, assim como o valor da produção, que influencia na programação do atendimento das sondas. Um poço com uma elevada produtividade e risco pode ter menos prioridade no atendimento do que um poço com um pequeno volume de produção e risco. Apesar das sondas serem idênticas em relação à velocidade da sondagem dos poços, elas diferem em relação aos custos que vai depender da origem da sonda. Uma sonda pode ser contratada por um período de tempo maior, através de uma perspectiva orçamentária baseada num plano de metas, ou ser de domínio da empresa e para estes casos os custos das sondas são de manutenção, uso, etc. Há possibilidade também de se ter sondas alugadas por um tempo menor sendo que o seu custo é mais elevado. O custo da sonda disponível é em função da sua utilização, enquanto que o custo da sonda alugada está na função tempo de permanência na empresa, o que independe de seu uso ou não. A opção pelo aluguel da sonda deve ser muito bem estudada e, quando se fizer necessária, seu uso deve ser maximizado, principalmente através da utilização racional de cada sonda. Cada sonda j ∈ M (j = 1, ..., m, onde m é o número de sondas) está associada um custo cj (unidades de volume de petróleo por unidade de tempo). De um modo bem geral, o PPSP consiste em alocar uma frota M de sondas a um conjunto P de poços de modo não preemptivo (isto é, uma vez que uma sonda esteja alocada para um poço, ela deverá permanecer no mesmo até o término da intervenção, sem interrupções), objetivando maximizar o retorno da produção no intervalo entre o momento em que o poço aguarda pela sonda e o término do horizonte de tempo. Paiva et al. (2000) apresenta o estudo de uma metodologia para otimizar o itinerário das sondas e o objetivo é encontrar as rotas de menor custo total para uma lista de n poços que estão aguardando pelas sondas. No custo total são incluídas as perdas de 23 cada poço Ri = FiQsi, (Fi é o fator de perda, Qsi é o valor da produção em m3/dia), multiplicado pelo tempo em que o poço permanece fechado (tsi); Li = Ritsi, onde tsi = ts(i-1) + di-1,i / Vwr + twi; ts(i-1) é o tempo que o poço anterior a i permanece fechado; di-1,i / Vwr é o tempo que a sonda leva para se deslocar de um poço até o outro (di-1,i – distância entre o poço i-1 e o poço i, Vwr – velocidade de deslocamento da sonda) e twi é o tempo da sondagem do poço i. O custo total também inclui o custo da sonda utilizada na intervenção do poço i que é: Ctad – custo de montagem, transporte e operação, somado ao custo da rota Ct = cddi-1,i, onde cd é o custo em função do deslocamento, somada ao custo de operação no poço i Cop = cttwi, onde ct é o custo de operação e twi é o tempo de intervenção no poço i. Logo Ci = Ctad + cddi-1, i + cttwi. A função objetivo proposta por Paiva et al. (2000) é: n min w = ∑ (Li + Ci ) i =1 O trabalho de Paiva et al. (2000) também discorre sobre quais são realmente as perdas que ocorrem devido ao fechamento de poços que estão aguardando intervenção. A perda real de um poço é menor do que a perda aparente – volume produzido desde o fechamento do poço multiplicado pelo tempo sem produzir – e a diferença entre a perda real e a aparente ocorre porque o poço ao sofrer uma interrupção volta com uma produção suplementar causada pela pressão no interior do reservatório devido ao fechamento do poço. Quando o fechamento de um poço interfere significativamente na produção de um poço que está produzindo no mesmo reservatório, pode haver um aumento significativo na produção do poço em operação, compensando em partes as perdas do poço fechado. A perda do poço depende do nível de produção antes do fechamento, do tempo que o poço permanece fechado, da configuração do reservatório e outras condições, logo a perda é representada como um fator de perda. Cada poço da lista está associado a um fator de perda, a um volume de petróleo produzido por unidade de tempo e ao tempo de intervenção da sonda. Não existe horizonte de tempo para a programação do atendimento das sonda e os poços não estão associados a uma data de atendimento, a partir da qual a sonda poderá intervir. O presente trabalho não considera o PPSP como um problema de roteamento como proposto por Paiva et al. (2000), porque os custos associados aos deslocamentos 24 serão considerados não significativos quando comparados com os custos decorrentes da intervenção e paralisação dos poços. Os tempos de deslocamentos entre poços são muito inferiores aos tempos necessários à montagem e desmontagem das sondas, bem como à duração da intervenção. O tempo de preparo das sondas está incluso no tempo necessário para realizar a intervenção de cada poço. O problema proposto neste trabalho foi classificado como sendo da categoria dos problemas de schedule (sequenciamento) com tempo de liberação das tarefas em máquinas paralelas idênticas, onde as máquinas são as sondas e as tarefas são os poços. Usando a notação padrão para problemas de sequenciamento (Chen e Powell, 1998; Lancia, 2000), o PPSP é um problema da classe P|ri, vi|Cmax onde |P| representa a característica de processadores paralelos idênticos (todos têm a mesma velocidade e o tempo de processamento de uma tarefa é identifico para diferentes máquinas); |ri ,vi| ri representa o tempo de liberação da tarefa e vi o valor agregado a tarefa – unidades de volume produzida por unidades de tempo ; |Cmax| é o critério de otimalidade. Em geral, problemas em máquinas paralelas requerem ao menos dois tipos de tomada de decisão: a designação e a seqüência (Lancia, 2000). Então, para cada poço i s s s (i = 1, ..., n) está relacionado um par ( xik , tik ), onde xik indica a sonda k que intervirá no s s-ésimo atendimento do poço i (isto é xik = 1 se a sonda k intervir no s-ésimo atendimento s do poço i, 0 em caso contrário); tik o tempo de início da sondagem no poço i pela sonda k no s-ésimo atendimento. A formulação matemática para o PPSP é a seguinte: 1º Definição das variáveis de decisão ¾ variável de decisão binária,∀i ∈P, k∈M, s∈N: 1 se o poço i sofre sondagem no s - ésimo atendiment o da sonda k xiks = 0 em caso contrário Onde: N é o conjunto (1, ..., p, onde p é o número máximo de possíveis atendimentos de uma sonda k) máximo de s-ésimos atendimentos da sonda K ¾ variável que indica o tempo de início da sondagem, ∀i∈P, k∈M, s∈N: tiks = o tempo de início da sondagem no poço i no s-ésimo atendimento da sonda k 25 2º Definição da função objetivo A função objetivo é maximizar o retorno da produção de cada poço que está agendado para receber intervenção considerando o custo da sonda utilizada. A produção ponderada de cada poço i {i = 1, ..., n} vai depender do tempo restante (TPi) entre o término da sondagem e o horizonte de tempo multiplicado pelo volume de produção do poço i (Vi – volume produzido por unidade de tempo) e pela atratividade Ai do poço i. Portanto a produção ponderada do poço i é: PRi = TPi*Vi*Ai. O TPi são as unidades de tempo restantes entre o término da sondagem ( t iks + Di , onde Di é a duração da intervenção) e o horizonte de tempo (tempo). A Figura 2 ilustra o TPi de dois poços 1 e 2, ambos sendo atendidos pela mesma sonda k. t 12,k ( ) TP1 = tempo − t12,k + D1 + 1 t12,k D1 1 2 3 4 5 7 6 8 9 ( D2 10 11 12 ) TP2 = tempo − t 12,k + D2 + 1 tempo = 12 Figura 2 – Tempo restante entre o término da sondagem e o horizonte de tempo Fazendo a substituição de TPi, a produção de ponderada do poço i (PRi) fica sendo: ( ( ) ) PRiks = Vi * Ai tempo − t iks + Di + 1 ∀i , k , s (1) Os custos das intervenções nos poços devem ser considerados. O cálculo do custo da intervenção do poço vai depender do tipo de sonda utilizada: alugada ou disponível. No caso da sonda ser disponível, o seu custo é em função da sua utilização, ou seja, do tempo de duração da intervenção do poço. Assim, o custo da intervenção do poço i será expresso da seguinte maneira: CS iks = c k*Di , ∀i , k , s (2) Onde: ck - custo unitário de operação da sonda k; Di - duração da intervenção no poço i. 26 Caso seja utilizada uma sonda alugada, há custos na intervenção dos poços e do aluguel. O custo de uma sonda alugada difere da sonda disponível, pois independe do seu uso e depende do tempo de permanência na empresa. O tempo de permanência de uma sonda alugada na empresa será considerado como sendo o intervalo de tempo entre o início de sua primeira intervenção e o término do seu último atendimento. Ao calcular o custo da intervenção de um poço i pela sonda k do tipo alugada, deve ser considerado o custo da intervenção no poço i mais o custo do aluguel e o custo do tempo de ociosidade da sonda em relação ao poço j (j precede i no atendimento pela sonda k). A equação a seguir representa este custo, onde o primeiro termo refere-se ao custo da intervenção do poço i pela sonda k no s-ésimo atendimento e o custo do aluguel da sonda; o segundo termo refere-se ao custo do tempo de ociosidade da sonda. ) ( ( CS iks = Di * (ck + cak ) + x sjk−1*cak* t iks − t sjk−1 + D j , se k for alugada ∀i, k , s (3) Onde: cak = custo do aluguel da sonda k Caso o poço i seja o primeiro poço a ser atendido pela sonda k do tipo alugada – neste caso s = 1 e não há ociosidade de tempo da sonda, sendo considerado somente o custo relacionado à duração da intervenção. Finalmente, a função objetivo será maximizar o volume de petróleo retornado de cada poço considerando o custo da sonda envolvida na intervenção: n Max ∑ ∑ ∑ xiks (PRiks − CS iks ) m p i =1 k =1 s =1 Onde : ( ( ) ) PRiks = Vi * Ai tempo − t iks + Di + 1 CS iks ∀i , k , s (1) (2) c k*Di , se k for disponível ∀i, k , s = s −1 s s −1 Di ∗ (ca k + c k ) + x jk * ca k * t ik − t jk + D j , se k for alugada ∀i, k , s (3) ( ( 27 )) 3º Definição das restrições ¾ Garantir que cada poço seja atendido uma única vez e que todos os poços sofram intervenção p m ∑ ∑ xiks =1 ∀i (4) s =1 k =1 ¾ Representar a disponibilidade das sondas m n ∑ ∑ x1ik ≤m (5) k =1 i =1 ¾ Dois poços não podem ser executados simultaneamente em uma mesma sonda. Para garantir esta restrição, nos baseamos na restrição apresentada em Papadimitriou e Steiglitz (1982) onde duas tarefas não podem ser executadas simultaneamente no mesmo processador. Quando dois poços sofrem sondagem pela l = 1 e o poço Pj é executado antes do poço Pi, nós temos que mesma sonda então x sjk = xik l t sjk + D j ≤ t ik . Para garantir isto, faremos T = ∑ Di e δji será uma variável inteira não i∈ P l ; 0 em caso contrário. negativa igual a 1 se t sjk ≤ t ik A restrição abaixo garante que dois poços não podem ser executados simultaneamente em uma mesma sonda: ) ( l l t sjk + D j − tik ≤ T 1 − δ ji + 2 − xik − x sjk , i ≠ j,∀i,j,k , s,l (6) l A inequação acima é restrita somente se δji = 1 e x sjk = xik = 1 ; nesse caso o poço j sofre intervenção antes do que poço i pela mesma sonda k, garantindo que l t sjk + D j ≤ t ik (Papadimitriou e Steiglitz, 1982). ¾ O horizonte de tempo de planejamento para a programação do atendimento dos poços pelas sondas não poderá ser ultrapassado n ∑ i =1 ( ) x iks t iks + D i ≤ tempo ∀ k,s 28 (7) ¾ A data de liberação do poço não poderá ser violada, logo a sonda somente poderá intervir no poço Pi a partir do momento na qual ele fica liberado para sofrer a sondagem t iks ≥ Qi ∀i,k,s (8) ¾ não negatividade: representar a integridade das variáveis t iks ≥ 1 ∀i, k , s (9) s xik ∈ {0 ,1} ∀i, k , s (10) 29 O problema formulado como um problema da Programação Linear Mista é o seguinte: PPSP : ∑ ∑ ∑ xiks (PRiks − CS iks ) n Max p m i =1 k =1 s =1 Sujeito à : p m ∑ ∑ xiks =1 ∀i (4) s =1 k =1 m n ∑ ∑ x1ik ≤m k =1 i =1 (5) ) ( l l ≤ T 1 − δ ji + 2 − xik − x sjk , i ≠ j,∀i,j, k , s,l t sjk + D j − t ik ∑ xiks (tiks + D j ) ≤ tempo n ∀k , s (6) (7) i =1 t iks ≥ Qi ∀i, k , s (8) s ∈ {0 ,1} xik ∀i,k, s (9) ∀i,k, s (10) t iks ≥ 1 ( ( ) ) PRiks = Vi*Ai tempo − t iks + Di + 1 ∀i, k, s (1) (2) c k*Di , se k for disponível ∀i,k , s CS iks = s −1 s s −1 Di ∗ (c k + ca k ) + x jk *ca k* t ik − t jk + D j , se k for alugada ∀i,k , s (3) ( ( )) n T = ∑ Di i =1 Onde: s xik : variável binária igual a 1 quando o poço j sofre sondagem pela sonda k no s-ésimo atendimento; 0 em caso contrário. t iks : tempo de início da sondagem no poço i no s-ésimo atendimento da sonda k. PRiks : produção de retorno do poço i no s-ésimo atendimento da sonda k; 30 CS iks : custo da sondagem do poço i no s-ésimo atendimento da sonda k; Di : duração da intervenção no poço i; Qi : unidade de tempo a partir da qual o poço i fica liberado para sofrer intervenção; Vi : unidades de volume de petróleo produzido por unidade de tempo no poço i; Ai : atratividade do poço i {0,1, ...., 0,9}; ck : custo de operação (em unidade de volume de petróleo por unidade de tempo) da sonda k; cak : custo (em unidade de volume de petróleo por unidade de tempo) do aluguel da sonda k; 31 4 ALGORITMOS GENÉTICOS Como os Algoritmos Genéticos híbridos (AGh) associam busca local ao Algoritmo Genético (AG) clássico, primeiramente serão apresentadas as características referentes a este último algoritmo. Um breve histórico da teria da evolução é apresentado na seção 4.1, visto que os AG’s desenvolvem seus algoritmos inspirados na evolução biológica. Em seguida, na seção 4.2, são descritas as características e o funcionamento dos AG’s. A terminologia empregada consta na seção 4.3. Na seção 4.4, é descrita a aplicação desses algoritmos. Finalmente, a seção 4.5 trata dos AGh, enfatizando a busca local e os dois modos (evolução lamarckiana e efeito baldwin) como ela pode ser incorporada nestes algoritmos. Um pseudocódigo do AGh implementado neste trabalho é descrito na seção 4.6 com itens especificando a representação genética, os operadores genéticos e a busca local. 4.1 Histórico As idéias de Darwin sobre adaptação, seleção natural, sobrevivência dos mais aptos, evolução e origem das espécies não são originais. Tudo isso, já havia sido levantado por outros pesquisadores e naturalistas que o antecederam. No entanto, percebe-se que a maioria dos antecessores de Darwin apenas levantou questões, dúvidas e até mesmo conceitos sobre os fatos observados na natureza, sem porém, tentar ou conseguir explicar o porquê deles existirem. Somente dois naturalistas conseguiram formular teorias para tentar explicá-los de uma forma global, amarrando os diversos conceitos isolados já levantados em suas épocas: Lamarck e Darwin. Lamarck, no entanto, trilhou um caminho errado ao concluir que, na lei do desenvolvimento progressivo, as modificações adquiridas seriam passadas para as gerações seguintes. A forma pela qual operavam essas modificações, ele atribuiu grande importância à ação direta das condições de vida, ao fator uso e desuso, ou seja, aos efeitos do hábito. Para Lamarck, os animais mudavam sob pressão ambiental e essas mudanças eram transferidas para os seus filhos. A transferência das características adquiridas era, para ele, o principal mecanismo de evolução. Embora a comprovação de que Lamarck estava errado a respeito do fenômeno da evolução, foi uma idéia revolucionária que afetou todo o pensamento científico subseqüente, em particular Charles Darwin (Capra, 2001). 32 Darwin, após o regresso de sua viagem ao redor do mundo, apresenta em 1958 sua teoria da evolução através da variação casual e seleção natural. No ano seguinte, com o livro intitulado On the Origem of Species by Means of Natural Selection, Darwin relata suas análises e conclusões finais sobre o assunto. Conforme Capra (2001), a visão que Darwin tinha sobre hereditariedade causava uma falha séria na sua teoria, pois acreditava-se na época que as características biológicas herdadas por um indivíduo eram uma mistura das de seus pais, com ambos os pais contribuindo com cerca de 50 por cento de suas características para seu filho. Isto implica que a prole de um pai seria capaz de transferir somente 25 por cento dessas características para a geração seguinte. Dessa forma, a nova característica se diluiria rapidamente, com pouca chance de se estabelecer por meio da seleção natural. Gregor Mendel solucionou o problema de Darwin ao deduzir que havia unidades de hereditariedade as quais não se misturavam no processo da reprodução, mas eram transmitidas de geração em geração sem mudar de identidade. A moderna teoria da evolução – neodarwinismo - combina as idéias de Darwin sobre mudanças evolutivas com a descoberta de Mendel. Na teoria neodarwinista, toda variação evolutiva resulta de mutação aleatória seguida por seleção natural. A teoria da evolução e a computação são contemporâneas, nasceram praticamente na mesma época: Charles Babbage, um dos fundadores da computação e amigo pessoal de Darwin, criou sua máquina analítica em 1883 (Smiderle, 2001). Ambos, nem imaginavam que as duas áreas pudessem estar atualmente fortemente ligadas através da Computação Evolucionária (CE), que é a área da Ciência da Computação que desenvolve técnicas inspiradas na analogia dos princípios da evolução biológica para solucionar problemas considerados intratáveis. Um dos trabalhos iniciais pertencentes a CE foram os Algoritmos Genéticos (AG’s). John Holland foi quem começou seriamente a desenvolver as primeiras pesquisas neste trabalho e foi gradualmente refinando suas idéias. Em 1975 publicou o seu livro “Adaptation in Natural and Artificial Systems”, hoje considerado a Bíblia dos AG’s. Nos anos 80, Davi Goldberg, aluno de Holland, consegue o primeiro sucesso em aplicação industrial desses algoritmos. Desde então, estes algoritmos vêm sendo aplicados com sucesso nos mais diversos problemas de otimização e aprendizado de máquinas. 33 4.2 Definição Os Algoritmos Genéticos (AG’s) referem-se a um método de busca inspirado nos princípios de seleção e evolução natural. Sua denominação originou-se da analogia entre a representação de uma estrutura complexa através de um vetor de componentes e a idéia da estrutura genética de um cromossomo. Basicamente, o ponto de referência é gerar, a partir de uma população de cromossomos, novos cromossomos com propriedades genéticas superiores às de seus antecedentes. Os cromossomos estão associados a soluções de um problema onde, a partir de um conjunto de soluções atuais, são geradas novas soluções superiores às antecedentes, sob algum critério pré-estabelecido. Durante o curso da evolução, as populações naturais evoluem conforme os princípios de seleção natural e sobrevivência da adaptação. Ou seja, indivíduos que se adaptam melhor ao ambiente, possuem maiores chances de sobreviver e reproduzir, enquanto que os indivíduos menos aptos tendem a serem eliminados. Isto significa que os genes dos indivíduos altamente aptos influenciarão um número crescente de indivíduos a cada geração, e a sua espécie evolui para se tornar cada vez mais adaptada ao seu ambiente. Um AG simula o processo de evolução, partindo de uma população inicial de indivíduos e aplicando operadores genéticos em cada geração para buscar uma população mais evoluída. Cada indivíduo da população é codificado em um cromossomo, o qual representa uma solução possível para um determinado problema, enquanto a adaptação do indivíduo é avaliada através de uma função de aptidão. Aos indivíduos mais adaptados (melhores soluções) são dadas maiores chances de se reproduzirem, fazendo com que os seus genes passem para a nova geração, simulando desta forma a seleção natural proposta por Darwin em que os indivíduos mais aptos têm maiores chances de sobreviverem e passarem as suas características para sua prole, que melhor adaptada, ao longo dos anos se tornará maioria na população. A descendência ou nova população, pode substituir toda a população atual ou substituir apenas os indivíduos de menor ajuste. O processo evolutivo dos AG’s representa a busca por indivíduos mais adaptados, ou seja, a busca por soluções de melhor qualidade. O ciclo de seleção, geração e avaliação é repetido até que uma solução satisfatória seja encontrada ou até um número determinado de interações. Na Figura 3 está representado genericamente este ciclo. 34 Meta-Algoritmo Genético Início Gerar uma população inicial Avaliar a fitness dos indivíduos da população Repetir Início Selecionar um conjunto de pais na população Cruzar os pais de modo que se reproduzam Avaliar a fitness dos filhos gerados Substituir os filhos julgados inadequados Fim Até critério de parada ser atendido Fim Figura 3 - Meta-Algoritmo Genético Fonte – Goldbarg e Luna, 2000. p. 420 Os AG’s possuem as seguintes características gerais: ¾ operam em um conjunto de pontos e não a partir de pontos isolados, caracterizando-os como um algoritmo populacional que utiliza um conjunto de indivíduos para vasculhar o espaço de soluções. É um processo estruturalmente paralelo (Mendes, 1999), com troca de informações entre as soluções. A propriedade do paralelismo intrínseco, através da qual os AG’s não melhoram apenas única solução, mas permitem a simultaneidade da avaliação das soluções; ¾ operam em um conjunto de soluções codificadas (cromossomos) e não diretamente no espaço de busca (Goldbarg e Luna, 2000). Por trabalharem sobre a codificação do problema, permitem resolver muitos problemas de otimização diferentes (Ichihara, 1998); ¾ necessitam como informação somente o valor da fitness; ¾ são probabilísticos. 4.3 Terminologia A terminologia empregada nos AG’s consiste basicamente de analogias extraídas da biologia. Os termos que seguem são intensamente usados por esses algoritmos: - cromossomo: representa um indivíduo na população ou uma estrutura de solução candidata para o problema; - população: conjunto de indivíduos (isto é conjunto de soluções do problema); 35 - gene: divisão conceitual ou bloco funcional de um cromossomo, capaz de codificar uma característica (uma variável do problema); - alelo: característica ou valor numérico que representa um gene (os possíveis valores de uma variável do problema). Como exemplo, um cromossomo que utiliza codificação binária, possui em cada posição (locus) dois possíveis alelos: 0 e 1; - fitness: medida de aptidão de um indivíduo. A fitness normalmente está associada ao valor da função objetivo para uma dada solução; - genótipo: representa a estrutura do cromossomo codificado; - fenótipo: representa a estrutura do cromossomo decodificado. - cruzamento (crossover): operador genético que permite a obtenção de indivíduos a partir da troca de partes entre dois cromossomos; - mutação: operador genético que permite mudança ou troca de um ou mais alelos de um cromossomo. Na Figura 4, são dados alguns exemplos dos termos acima descritos através de uma solução viável S = (1, 2, 3, 4, 5, 1) para o problema do caixeiro viajante com 5 cidades. Esta solução é representada por um cromossomo na forma binária p = (001;010;011;100;101), onde fica implícito que após a cidade 5 retorna-se à cidade origem 1. fenótipo 1 fitness = à distância percorrida pelo caixeiro viajante 5 Genótipo= (001,010,011,100,101) 2 4 Cromossomo = (001010011100101) 3 gene Figura 4 - Exemplo de alguns termos empregados pelos AG’s 36 4.4 Aplicação De acordo com Ichihara (1998), não existe um consenso rigoroso sobre o campo de aplicabilidade dos AG’s e o seu uso é interessante para um determinado problema se: ¾ o espaço a ser pesquisado for grande, ou seja, com um grande número de soluções possíveis, é impossível pesquisá-lo exaustivamente até que seja encontrado um ponto ótimo global; ¾ o espaço é formado por uma simples colina lisa, um algoritmo gradiente-ascendente é mais eficiente que um algoritmo genético; ¾ o espaço de pesquisa não for bem entendido, em caso contrário, os métodos de pesquisa que usam heurísticas de domínio específico podem ser utilizadas com a mesma desenvoltura de um algoritmo genético; ¾ o usuário deve ficar satisfeito com uma boa solução e ser beneficiado pela rapidez com que esta solução é encontrada, já que os AG’s podem ou não encontrar um ótimo global. Há uma vasta aplicação dos AG’s e AGh, tanto para problemas clássicos da literatura: coloração em grafos (Fleurent e Ferland, 1994), caixeiro viajante (Zuben, 2000; Potvin, 1996; Buriol et al., 1999), problemas de sequenciamento (Husbands e Mill, 1994; Mendes, 1999; Shi, 1997; Yamada e Nakano, 1996), como para problemas de ordem prática. Santos e Cunha (2000) usam AG’s associada `a realidade virtual para determinar a posição da cabine de controle em plataformas de perfuração de poços de petróleo. Kornosinski et al. (1998) apresentam algumas considerações teóricas sobre os uso dos AG’s como um instrumento de apoio no processo de aprendizagem, onde estes algoritmos seriam utilizados como uma ferramenta para compreensão da modelagem de problemas. O sistema baseado em AG’s funcionaria como um instrumento de aprendizagem, a partir do qual um estudante modela um problema e avalia a qualidade da solução gerada pelo sistema. Se a solução gerada não for satisfatória, cabe ao estudante analisar a modelagem fornecida do problema ao sistema. Ichihara (1998) propõem um método de solução híbrido baseado em regras de prioridade e AG para o problema da programação de projetos com restrição de recursos na construção de edifícios dotados de múltiplos pavimentos-tipo. O modelo se propõe a 37 minimizar os desvios mensais entre os recursos monetários disponíveis e as despesas, bem como promover a continuidade do trabalho nas atividades repetitivas. Rebello e Hamacher (2000) propõem uma metodologia para resolver o problema que envolve o recolhimento da correspondência de 39 agências de correios do Rio de Janeiro para a agência central. Foi implementado um AG composto de duas fases que se alternam: a primeira fase (AG de zoneamento) busca separar as agências em grupos; na segunda fase (AG de roteamento) são geradas rotas de distância mínima entre as agências que estão em um determinado grupo. Smiderle (2001) também apresenta um AG de duas fases para determinação do caminho mais curto no trabalho de leitura dos medidores de contas de água. Na primeira fase dá-se à formação dos subgrupos de atendimento para cada leiturista, na fase seguinte determina-se o roteamento em cada subgrupo. Guyaguler e Home (2000) desenvolveram um AGh para determinar a localização dos poços de petróleo num reservatório. 4.5 Algoritmo Genético híbrido - memético O Algoritmo Genético híbrido (AGh) combina busca local com o mais tradicional algoritmo genético (Whitley et al., 1994). A busca local é utilizada para tentar melhorar uma população inicial ou os novos descendentes gerados através dos operadores genéticos. Uma busca local possibilita que a partir de uma solução se chegue a outras soluções de qualidade superior ou inferior. Rotinas de busca local se baseiam em uma definição de vizinhança que estabelece uma relação entre soluções. Pode-se definir a vizinhança de uma solução como o conjunto de soluções que podem ser geradas executando-se qualquer movimento ou conjunto de movimentos possíveis, permitidos pela política da própria vizinhança. A busca local pode ser vista como um tipo de aprendizagem que ocorre durante o tempo de vida de um indivíduo (Gouvêa, 2001). A forma de busca local utilizada comumente em AGh é equivalente à idéia de evolução de Lamarck, isto é, um aprendizado que modifica o código genético do indivíduo. Outro caminho onde aprendizado e evolução interagem, é permitir que o aprendizado mude o valor da fitness, o que representa um aprendizado conhecido como efeito Baldwin, aprendizado este que não afeta o código genético. 38 Para Lamarck, os órgãos que desenvolvem intensa atividade crescem e se tornam mais eficazes e, aqueles pouco utilizados se atrofiam e degeneram (lei do uso e desuso). Estas alterações poderiam ser transmitidas aos descendentes (herança de caracteres adquiridos), portanto para ele existia um mapeamento de condições ambientais e fenótipos que determinam o genótipo, o que é biologicamente impossível. Apesar da teoria evolucionista que Lamarck propôs estivesse errada, é possível para um indivíduo aprender para facilitar a evolução. As idéias de que o aprendizado poderia auxiliar a evolução surgiram em 1896 e foram propostas por James Mark Baldwin. Estas idéias, subseqüentemente conhecidas como efeito Baldwin, foram consideradas como um "novo fator" da teoria evolutiva. Baldwin considerava que a aprendizagem individual pode explicar fenômenos evolucionários que parecem requerer herança lamarckista. Ele explica que a aprendizagem inicialmente facilita a evolução de comportamentos complexos, posteriormente, os comportamentos aprendidos são substituídos pelo comportamento instintivo. Assim, comportamentos aprendidos poderiam ser comportamentos instintivos em gerações subseqüentes, sem apelar à herança lamarckista (Turney, 1996). Portanto, o efeito Baldwin não requer o mapeamento de fenótipo e ambiente em genótipo, como requer a teoria de Lamarck, o que biologicamente não é aceitável. Através da Figura 5 é ilustrado o conceito de busca local implementada nos AGh, demonstrando como o aprendizado, tanto lamarckiano como baldwiniano, atua em conjunto com os AG’s. O eixo horizontal representa o espaço de soluções de um problema de otimização qualquer, onde três soluções estão representadas através dos indivíduos “a”, “b” e “c”, sendo que a fitnes de cada indivíduo f(a), f(b) e f(c), respectivamente, medida no eixo vertical. 39 fitnes f(a) f(b) f(c) f(b’) f(a’) a a’ c b b’ Espaço de soluções Figura 5 - Ilustração do conceito de busca local no espaço de soluções Baseado no valor de fitnes de cada indivíduo, após a ordenação em ordem decrescente de adaptação, teríamos o indivíduo “c” como sendo o mais adaptado, seguido por “b” e “a”. Com a aplicação do aprendizado, dependendo da busca local implementada em cada um dos três indivíduo, “a“ passaria a ser o mais adaptado seguido por “b“ e “c”. No aprendizado lamarckiano, as características adquiridas são herdadas pelo código genético. Portanto, a aplicação do aprendizado substtitui o genótipo do indivíduo “a” por “a’“ e “b” por “b’“, com os novos valores de fitnes f(a’) e f(b’), respectivamente. A aplicação do aprendizado lamarckiano, fez com que o genótipo dos indíviduos “a” e “b” se perdesse. Já no aprendizado baldwiniano, o indivíduo é avaliado em sua vizinhança, porém as informações obtidas não são atribuídas ao seu código genético, somente o valor de sua fitnes é alterado. Portanto o aprendizado não afeta o código genético do indivíduo. Assim, indivíduo “a” com o valor de fitnes f(a) seria atualizado para f(a’). O mesmo aconteceria para “b” com o valor de sua fitness alterado para f(b’). O indivíduo “c” permanece inalterado pois é um mínimo local. O efeito Baldwin é puramente darwiniano: as características adquiridas não são herdadas pelo indivíduo e sim, a capacidade de adquirir estas caracterísiticas (Turney, 1996). Em geral, os AGh possuem um melhor desempenho que os algoritmos genéticos clássicos (Gouvêa, 2001) porém a implementação do aprendizado implica em custos (Mayley, 1996; Turney, 1996). Conforme Whitley et al. (1994), ambas as estratégias de aprendizado para os testes realizados são mais eficientes que o AG convencional, sendo que o aprendizado 40 balwiniamo, para alguns casos, foi mais eficiente convergindo para um ótimo global quando o aprendizado lamarckiano convergia para um ótimo local. Porém, a estratégia baldwiniana foi mais lenta que a lamarckiana. 4.6 Algoritmo Genético híbrido (memético) utilizado neste trabalho Para uma melhor compreensão da estrutura do AGh implementado neste trabalho, é apresentado um pseudocódigo com explicações detalhadas do funcionamento do mesmo. A representação genética, os operadores genéticos e a busca local utilizada são descritos na seqüência. Procedure AGh begin Inicia população_principal usando Carrega_pop_inicial Avalia_fitnes (população_principal) Repeat /*laço de evolução da população*/ i:=1; while i< #descendentes do seleciona dois pais (Dpais) da população_principal novo_individuo:= recombinação(Dpais) if novo_individuo=viável then avalia_fitness (novo_individuo) adiciona (novo_individuo) na população_intermediária i:=i + 1; for i:=0 to #mutação do seleciona individuo da população_intermediária individuo_aux:= individuo mutação(individuo_aux) if individuo_aux = viável then avalia_fitness (individuo_aux) adiciona (individuo_aux) na população_intermediária forEach individuo i ε população_intermediária do Busca_local(i) População_principal:= Seleciona (população_principal, população_intermediária) until (condição de parada = TRUE) end; Como pode ser observado, o algoritmo possui cinco partes principais: o inicio, dois laços – recombinação e mutação -, o aprendizado (busca local) e a parte de atualização. 41 1. Inicialização Inicia população_principal usando Carrega_pop_inicial Avalia_fitness (população_principal) Uma população é o conjunto de indivíduos, isto é, o conjunto de soluções do problema. O passo inicial do algoritmo é obter uma população inicial que pode ser obtida de vários modos: aleatoriamente, através de heurísticas, etc. A população inicial neste trabalho foi obtida de modo totalmente aleatório, sendo que os seus indivíduos são sempre viáveis. Um indivíduo representa uma solução do PPSP e a viabilidade do mesmo garante que cada poço está relacionado a uma sonda e que o horizonte de tempo da programação das sondas não é ultrapassado. Na seção 4.6.1 há uma descrição mais detalhada do indivíduo e da sua representação genética. Pelo fato de trabalhar com uma população viável e a dificuldade de obtê-la de modo aleatório, a mesma foi gerada quando da criação das instâncias utilizadas para a realização dos testes computacionais. Deste modo uma instância, além de conter as informações referentes aos poços, as sondas, contém também a população inicial. Após carregar a população principal inicial através da função Carrega_pop_inicial, é feita a avaliação da fitnes – função avalia_fitness – de todos os indivíduos. A fitness é a medida de aptidão do indivíduo, ela quantifica a qualidade do indivíduo. Para tanto ela deve guardar uma relação estreita com a função objetivo para uma dada solução do problema sendo que, em muitas vezes, é a própria. No PPSP, a fitness do indivíduo é o valor da função objetivo apresentado na formulação. 2. Laço de recombinação i:=1; while i< #descendentes do seleciona dois pais (Dpais) da população_principal novo_individuo:= recombina (Dpais) if novo_individuo=viável then avalia_fitness (novo_individuo) adiciona (novo_individuo) na população_intermediária i:=i + 1; Depois de definido o número de descendentes gerados (20% do número de indivíduos da população principal), dá-se inicio o laço de recombinação, onde dois pais da população são escolhidos. Esses pais irão gerar um único descendente através da função 42 recombina (Dpais). Se o filho gerado é viável, é feita a avaliação da sua fitness e adicionado na população intermediária separada da principal de forma que os filhos não participem na recombinação na mesma geração em que foram gerados. Se o filho gerado for inviável, ele é desprezado. A escolha dos pais para a geração de descendentes é através do método da roleta ponderada (Roulette Whel). Este método permite que indivíduos com maior adaptabilidade tenham maiores probabilidades de serem escolhidos para gerar um novo indivíduo, sem eliminar a possibilidade de indivíduos poucos adaptados serem selecionados. Na seleção pelo método da roleta ponderada, o intervalo [0,1] é divido entre os indivíduos da população de modo que, indivíduos com maior valor adaptabilidade tenham fatias proporcionalmente maiores. Baseado no valor de fitness de cada indivíduo, calculase a porcentagem que o indivíduo contribui para a adaptabilidade total da população. A Figura 6 representa o funcionamento da escolha pelo método da roleta para um problema de maximização. Se o número 0,222 for sorteado, o indivíduo 2 é escolhido para gerar um novo indivíduo. Percebe-se claramente, pelo gráfico de setores, que os indivíduos com maior adaptabilidade tem maior probabilidade de serem sorteados. 0 Indivíduo Aptidão 1 8 2 9 3 14 4 4 5 20 percentual 0,146 0,163 0,255 0,073 0,363 adaptabilidade total = 55 0,146 1 5 0,647 2 4 3 0,319 0,574 Figura 6 - Exemplo de funcionamento do método de seleção usando roleta Para manter a diversidade e evitar a rápida convergência, foi criado um mecanismo que atua em conjunto com o método da roleta. A adoção do mecanismo impõe que no início do laço de recombinação todos os indivíduos da população principal podem ser escolhidos para gerar descendentes. À medida que são selecionados e gerarem um filho viável, ficam excluídos de serem selecionados novamente neste laço. Esta exclusão se 43 aplica a todos os indivíduos da população com exceção do melhor. Foram realizados testes onde não foi adotado este mecanismo e os resultados demonstraram uma rápida convergência dos indivíduos da população, causando perdas na qualidade das soluções obtidas. Mendes (1999) adotou o mesmo mecanismo, o que levou a melhores resultados em relação ao método original da roleta. 3. Laço de mutação for i:=0 to #mutação do seleciona individuo da população_intermediária individuo_aux:= individuo mutação(individuo_aux) if individuo_aux = viável then avalia_fitness (individuo_aux) adiciona (individuo_aux) na população_intermediária Do mesmo modo que laço de recombinação, o laço de mutação inicia depois de definido o número de indivíduos da população intermediária que sofrerão mutação (0,1%). Feito isso, um indivíduo é selecionado aleatoriamente e sofre mutação. A viabilidade do indivíduo mutante é verificada, em caso positivo, sua fitness é avaliada e o novo indivíduo é adicionado à população intermediária. Caso a mutação provoque inviabilidade, o individuo mutante é desprezado, permanecendo no seu estado original. 4. Aprendizado forEach individuo i ε população_intermediária do Busca_local(i) Nesta etapa é feita uma tentativa para melhorar os filhos obtidos através do cruzamento dos pais. Uma busca local na vizinhança é aplicada sobre cada indivíduo da população intermediária. Os métodos de busca em vizinhança, também são comumente utilizados como uma base para algoritmos e soluções heurísticas de problemas de otimização combinatória, ou para melhorar uma solução que tenha sido gerada por uma outra heurística (Papadimitriou e Steiglitz, 1982). 5. Atualização População_principal:= Seleciona (população_principal, população_intermediária) 44 Nesta etapa é feita a atualização da população, onde os indivíduos antigos são substituídos por novos, sendo que o tamanho da população permanece constante. A atualização da população é um processo totalmente determinístico. Primeiramente, a população principal e a população intermediária são ordenadas em ordem não-decrescente do valor de fitness. Os novos indivíduos mais adaptados irão substituir os indivíduos menos adaptados da população principal. Outra precaução é evitar indivíduos clonados na população principal. Essa condição exige que um novo indivíduo para ser inserido na população principal seja único, proibindo a presença de soluções duplicadas. Desta forma, mantendo a diversidade da população. Nesta etapa, é verificado se foi gerada uma solução melhor que a melhor solução corrente (melhor solução até o momento). Caso tenha surgido uma solução melhor que a corrente, é realizada uma busca local nesta solução. 4.6.1 Representação Genética Na Biologia, cromossomos são extensas cadeias de compostos químicos que contém a descrição genética dos seres vivos. No contexto dos AG’s, um cromossomo é uma solução candidata, ou seja, um ponto no espaço de busca; cada cromossomo codifica uma solução do problema e seu valor contribui para o cálculo da função objetivo da solução que ele representa. Uma das formas de representação dos AG’s é a representação binária (zero - um). A motivação para o uso de codificação binária vem do teorema dos esquemas (schemata theory), utilizada com relativo sucesso para explicar por que os algoritmos genéticos funcionam (Altenberg, 1994). Outra forma de representação utilizada é por números reais e inteiros, sendo esta uma forma mais simples de representação (Bramlette, 1991). Conforme Michalewicz (1996), para problemas com parâmetros reais, AG’S com representação inteira ou em ponto flutuante freqüentemente apresentam desempenho superior à codificação binária. Michalewicz (1996) argumenta que a representação binária apresenta desempenho pobre quando aplicada a problemas numéricos com alta dimensionalidade e onde alta precisão é requerida Embora o teorema da representação por inteiros ou reais não foi desenvolvido, diversos pesquisadores têm mostrado que estas representações otimizam da mesma maneira que o AG de codificação binária (Antonisse, 1989; Eshelman e Schaffer, 1992). 45 Além de um tipo adequado de representação genética utilizado, se faz necessário o uso de operadores genéticos eficientes para não gerar com freqüência soluções inviáveis, mantendo desta forma o desempenho dos AG’s. Independente do tipo de representação genética utilizada, sempre se deve verificar se ela está corretamente associada com as soluções do problema analisado, ou seja, que toda solução tenha um cromossomo associado e que todo cromossomo gerado esteja associado a uma solução válida do problema em questão. Desta forma, uma representação genética deve ser capaz de representar todas as possíveis soluções de um problema. A representação escolhida para uma solução do PPSP é um cromossomo cujos alelos assumem dois valores: um caractere do tipo ‘S’ ou ‘P’ para indicar se trata de sonda ou poço, respectivamente; um valor inteiro e distinto no intervalo [1,m] se estiver associado com ‘S’ ou no intervalo [1,n] se estiver associado a ‘P’. Desta forma, um exemplo de cromossomo válido para um problema com 8 poços e 3 sondas seria <S1 P1 P2 S3 P4 P5 P6 S2 P3 P7 P8>. A sonda 1 irá atender a seqüência de poços 1 e 2; a sonda 3 os poços 4, 5 e 6 e finalmente a sonda 2 os poços 3, 7 e 8. Cada sonda irá intervir seguindo a ordem da seqüência dos poços que a sucedem, podendo também não estar relacionada com poços e ser considerada uma sonda sem serviço. No cromossomo <S1 S2 P1 P2 P3 S3> as sondas 1 e 3 não realizam sondagem e são consideradas sem serviço. Cada poço precisa estar relacionado a uma sonda e sofrerá intervenção pela sonda mais próxima que o antecede. Sendo assim, o cromossomo <P1 P2 S1 P4 S2 P3> não é válido pois os poços 1 e 2 não estão relacionados com sondas. Todo poço precisa estar relacionado a uma sonda, porém nem toda sonda precisa estar atribuída a um poço. 4.6.2 Operadores Genéticos Os operadores genéticos são instrumentos de variação dos AG’s. Analisando sob o prisma do problema, são operadores cuja função é criar novos pontos de busca no espaço de solução, com base nos indivíduos da população atual. 4.6.2.1 Cruzamento O cruzamento (crossover) é um operador genético que produz novos indivíduos contendo informações a partir da combinação dos cromossomos dos pais. Existem os mais variados tipos de operadores de cruzamento na literatura (Mendes, 1999) e essa variedade 46 ocorre devido a necessidade de se ter operadores eficientes que não gerem descendentes inviáveis e que apresentem um bom desempenho. Para o problema proposto neste trabalho, inicialmente foram desenvolvidos dois operadores de crossover: o OX (Goldbarg e Luna, 2000) e o LOX (Ichihara, 1998). 4.6.2.1.1 Operador OX O operador OX (operador order crossover) constrói um cromossomo filho herdando uma seqüência parcial de um dos pais e mantendo a ordem relativa do outro. O procedimento inicia com a escolha de dois pais. Um fragmento de um deles é escolhido aleatoriamente e copiado para o filho, mantendo as mesmas posições do pai origem. As posições não preenchidas do cromossomo filho, agora serão completadas com a do outro pai, iniciando-se a partir do segundo ponto de corte e ignorando as informações que o filho já possui. O exemplo a seguir ilustra a idéia do procedimento: Pai A: S1 P2 P3 S2 P5 P6 P4 P1 Pai B: S2 P1 P3 P6 S1 P5 P2 P4 Filho: __ __ S2 P5 P6 __ __ (Pai A) 1ª etapa __ __ S2 P5 P6 P2 __ __ S2 P5 P6 P2 P1 __ __ S2 P5 P6 P2 P1 P3 __ S2 P5 P6 P2 P1 P3 S1 S2 P5 P6 P2 2ª etapa – filho completo S1 P1 P3 S2 P5 P6 P2 3ª etapa - filho viável _ P4 P4 P4 P4 P4 No exemplo acima, o fragmento S2 P5 P6 foi selecionado do pai A e copiado na mesma posição no filho. As posições não completadas foram preenchidas seguindo a seqüência do pai B a partir do segundo ponto de corte, desprezando as informações que o cromossomo filho já contém. No decorrer dos testes computacionais, este operador mostrou ineficiência para tamanhos de cromossomos maiores que 50, gerando um número muito grande de descendentes inviáveis que violavam o horizonte de tempo. Por causar perdas do desempenho computacional, optou-se por não fazer uso deste operador. 4.6.2.1.2 Operador LOX – operador escolhido O Cruzamento de Ordem Linear (LOX), uma variante do operador OX, foi elaborado por Faulkenauer, para satisfazer a todos os requisitos que o problema de job- shop scheduling exige (Ichihara, 1998), isto é, manter a relação de precedência das 47 operações para cada tarefa. Desta forma, se uma dada operação é realizada antes de outra em ambos os pais, provavelmente esta relação se manterá no filho. Para PPSP, não existe relação de precedência entre os poços, porém a seqüência de poços atendidos por uma sonda não poderá violar o horizonte de tempo. O operador LOX, por ter a característica marcante de manter a posição relativa dos poços, reduz a possibilidade de gerar novos indivíduos que violem a restrição do tempo de programação, logo reduzindo o esforço computacional na geração dos indivíduos da população intermediária. Após a escolha de dois pais A e B, dois pontos de corte são escolhidos ao acaso. O novo indivíduo vai receber todas as informações do pai A marcando com um asterisco as posições na qual ele possui em comum entre os pontos de cruzamento com o fragmento do pai B. os asteriscos são substituídos pelos genes mais próximos, mantendo a ordem de seqüência e forçando os asteriscos a ocuparem a região entre os pontos de corte. O fragmento do pai B é copiado para a região do novo indivíduo que contém os asteriscos. O exemplo a seguir ilustra a idéia do procedimento: Pai A: S1 P2 P3 S2 P5 P6 P4 P1 Pai B: S2 P1 P3 P6 S1 P5 P2 P4 Filho: S1 P2 P3 S2 P5 P6 P4 P1 (Pai A) Filho: * P2 P3 S2 *_ *_ P4 P1 1ª etapa – marcar posições com asterisco P2 * P3 S2 * * P4 P1 P2 P3 * S2 * * P4 P1 P2 P3 S2 * * * P4 P1 P2 P3 S2 * * * P4 P1 2ª etapa – agrupar posições dos asteriscos P2 P3 S2 P6 S1 P5 P4 P1 3ª etapa – indexar fragmento do pai B O novo indivíduo é inviável, pois apresenta uma informação do tipo poço no primeiro gene do cromossomo. Como mencionado anteriormente, haverá deslocamento no sentido da esquerda para a direita para que a primeira posição refira-se a sonda. Indivíduo viável: <S2 P2 P3 P6 S1 P5 P4 P1>. 4.6.2.2 Ajuste nos parâmetros de cruzamento Antes de fixar o número de descendentes, foram realizados testes para a determinação da taxa de cruzamento. Para a realização destes testes foram escolhidas 48 aleatoriamente algumas instâncias e os resultados indicam, como pode ser observado nos valor da solução Graficos 1, 2, 3, 4 e 5, que os melhores resultados obtidos foram com uma taxa de 20%. 175600 10% 175300 20% 175000 30% 174700 valor da solução Gráfico 1 - Relação entre a taxa de cruzamento e o valor da solução para a instância D4 168800 10% 168200 20% 167600 30% 167000 valor da solução Gráfico 2 - Relação entre a taxa de cruzamento e o valor da solução para a instância D9 647650 647350 10% 647050 20% 646750 30% 646450 valor da solução Gráfico 3 - Relação entre a taxa de cruzamento e o valor da solução para a instância C1 652950 10% 652800 20% 652650 30% 652500 valor da solução Gráfico 4 - Relação entre a taxa de cruzamento e o valor da solução para a instância C4 1314950 10% 1313750 1312550 20% 1311350 30% 1310150 Gráfico 5 - Relação entre a taxa de cruzamento e o valor da solução para a instância B1 49 4.6.2.3 Mutação A mutação é um operador genético que permite a produção de um novo indivíduo através da manipulação direta do seu cromossomo, causando a diversidade na população. Ela é considerada como um mecanismo secundário nas operações dos AG, consistindo na mudança aleatória de um ou mais genes de um cromossomo e, conseqüentemente, produzindo albinos (Chan e Tansri, 1994). Albinos são indivíduos com algumas propriedades de cromossomos completamente diferentes da maioria dos indivíduos da população. A mutação tem a função de criar uma política de prevenção que diminua as probabilidades das soluções serem apanhadas em um ótimo local. A taxa de mutação é normalmente fixada em um nível muito baixo, tal como nas populações naturais. O operador de mutação adotado é a mutação baseada na ordem que consiste na seleção aleatória de duas posições e a troca de seus conteúdos. O exemplo a seguir ilustra o procedimento deste operador. cromossomo original cromossomo após a mutação S1 P2 P3 S2 P5 P6 P4 P1 posição1 S1 P2 P6 S2 P5 P3 P4 P1 posição2 4.6.3 Definição de vizinhança de busca A busca local implementada neste trabalho é a all-pairs. Ela consiste em fazer uma varredura seqüencial avaliando a troca de posições de todos os pares de informações de uma dada solução. Trocas que melhorem o valor da fitness são confirmadas. Trocas que piorem são ignoradas. Se todas as possíveis trocas forem avaliadas e nenhuma melhorou a solução, o processo para. Se houve melhora, o processo é reiniciado com a solução atualizada. O algoritmo de busca local all-pairs é descrito a seguir: 1º passo: obter uma solução inicial; 2º passo: fazer uma varredura seqüencial, avaliando todas as possíveis trocas de pares de informações da solução inicial. Confirmar trocas que melhorem o valor da solução e ignorar as que piorem; 50 3º passo: se no passo anterior houve alguma troca que melhorou o valor da solução, realiza-o novamente com a solução atualizada. Em caso contrário pare, pois a solução é um mínimo local. Seja a sequência < a b c d e >. Inicialmente troca-se às posições (a,b), gerando a solução < b a c d e f >. Se a troca for vantajosa, confirma-se a mudança e continua-se o processo. Caso contrário a troca é desfeita. Seguindo a seqüência troca-se (a,c), (a,d), até o par (a,e). O processo é reiniciado agora a partir da segunda posição: (b,c), (b,d) até (b,e). O processo termina na troca das posições (d,e). Ao terminar uma passagem completa, verifica-se alguma mudança foi vantajosa. Em caso positivo é realizada uma nova passagem, pois a solução não é necessariamente um mínimo local. Se nenhuma troca foi confirmada em uma passagem completa então a solução é um mínimo local e o processo pára. A troca all-pairs é de ordem O(n2), o que significa que o número de trocas cresce de forma quadrática com o tamanho do cromossomo. Assim, devido ao tempo necessário para se varrer toda a vizinhança, foi estabelecida à realização de apenas a troca da segunda posição com todas as demais. Assim, na seqüência < a b c d e >, são feitas todas as trocas vantajosas: (b,c), (b,d),(b,e). Os passos seguintes, que seriam a troca da terceira posição com todas as demais e assim por diante, não são realizados. A troca parte da segunda posição porque a primeira deve sempre se referir a uma sonda. No caso da busca local na melhor solução, as trocas são feitas partindo-se da terceira posição com todas as demais, da quarta com todas as demais e assim por diante até a quinta posição. 51 5 TRANSGENÉTICA COMPUTACIONAL A Transgenética Computacional (TC) é uma metaheurística que pertence à área da Computação Evolucionária (CE) e os algoritmos desenvolvidos baseados nesta metaheurística são denominados de algoritmos transgenéticos. O processo evolucionário da TC está inspirado na evolução biológica, com uso dos paradigmas do fluxo extracelular e intracelular, e na evolução cultural dos memes. A seção 5.1 contém uma breve descrição da relação entre a evolução cultural e biológica e como elas estão contextualizadas nos algoritmos transgenéticos. O paradigma do fluxo extracelular e intracelular é descrito da seção 5.2. Na seção 5.3 será apresentado o processo evolucionário da abordagem TC com subitens que descrevem os agentes e os algoritmos transgenéticos. Um pseudocódigo do algoritmo transgenético ProtoG utilizado para solucionar o PPSP é apresentado na seção 5.4. 5.1 Evolução cultural e biológica Um dos maiores bens que o ser humano pode adquirir durante a vida é a cultura, um precioso legado e um recurso renovável dos mais importantes. Nela estão contidas as crenças, a linguagem, costumes, cerimônias, tradições, a arte e a intelectualidade, dentre outros. Do homem e da sua convivência observadora e transformadora resulta a evolução cultural, é dele que nasce e se desenvolve esse mecanismo evolutivo que é muito diferente da lenta evolução biológica. Salzano (1993) afirma que, em geral, não há dúvida de que existe uma harmonia entre a seleção natural e a seleção cultural. Isto, no entanto, nem sempre é verdadeiro. Existem exemplos de características culturais que são claramente prejudiciais do ponto de vista biológico, mas que persistem pela sua valorização cultural – a prática de circuncisão feminina, ainda muito prevalente em sociedades islâmicas, é claramente maléfica à saúde das mulheres e pode afetar a probabilidade do nascimento de crianças normais, por problemas relacionados ao parto. Em analogia com a unidade da herança biológica (o gene), Dawkins sugeriu que se denomine a unidade cultural de meme. Exemplos de memes são estilos musicais, idéias, frases de efeito, modas, meios de construir navios e fabricar potes. Assim como genes propagam a si mesmo no pool genético indo de corpo em corpo por esperma ou 52 ovos, memes propagam a si mesmos no pool memético indo de cérebro em cérebro pelo processo que chamamos "imitação" (Salzano, 1993). Muitos biólogos e sociólogos aceitam que as formas mais complexas do comportamento humano são herdadas por pura transmissão cultural, aceitando que a mente e a cultura humana estão livres dos genes de modo que a evolução cultural independe da biológica (Lacadena, 2001). No entanto, Wilson (1999), considera que esta percepção está errada - "A cultura é criada pela mente coletiva, e cada mente por sua vez é produto do cérebro humano geneticamente estruturado. Genes e cultura estão, portanto, inseparavelmente ligados, mas a ligação é flexível". Os comportamentos humanos também evoluíram com a finalidade de garantir a sobrevivência. Estes comportamentos, acredita Wilson (1999), são governados pelo que ele chama de regras epigenéticas, redes neurais com bases genéticas que predispõem o cérebro a favor de determinados tipos de ação. No caso do tabu universal contra o incesto, Wilson (1999) sugere que existe uma regra epigenética que torna as pessoas instintivamente avessas a se casar com aqueles que conheceram intimamente na infância. O uso do paradigma da evolução cultural, assim como o da evolução natural, está presente no contexto computacional. Os Algoritmos Meméticos (Moscato, 1989; Mendes, 1999) se mostram abertos a inclusão de procedimentos evolucionários não estritamente associados a reprodução sexual. A este tipo de procedimentos (Moscato, 1989) denomina “aprendizagem lamarckiana”. Normalmente nos Algoritmos Meméticos, a aprendizagem lamarckiana é expressa por procedimentos de busca local sobre os cromossomos, visando melhorar artificialmente a sua fitness. Assim, eles simulam a co-evolução genética e cultural dos seres humanos, onde indivíduos geneticamente pouco favorecidos ao nascerem, mas devido às condições em que vivem, por trocas de informações com outras pessoas, etc, podem se tornar mais adaptados. A TC também utiliza o paradigma da evolução cultural. Com o uso do paradigma epigenético e dos memes para melhorar a adaptabilidade dos indivíduos da população mas de um modo diferente dos Algoritmos Meméticos. Na TC os memes estão associados a informações que podem ser obtidas fora do fluxo extracelular. Os memes da TC são considerados como uma proposta de organização do cromossomo sendo introduzidos no processo evolucionário através dos agentes transgenéticos (Gouvêa, 2001). 53 Na TC, o paradigma memético é utilizado para criar um planejamento de informações através das regras epigenéticas e expressar estas regras nos cromossomos através dos agentes do fluxo intracelular no decorrer do processo evolucionário. As regras epigenéticas, no contexto da TC, especificam a criação planejada de uma base de informação que pode até mesmo não estar codificada no formato genético. No problema da Coloração em Grafos (Papadimitriou e Steiglitz, 1982) as cores designadas aos vértices adjacentes precisam ser diferentes. Deste modo, as cores designadas para os vértices da clique precisam ser todas distintas. Uma regra epigenética é: designar cores distintas para os vértices de uma clique. Sendo assim, um meme pode estar relacionado a uma clique de cores e representa o fato de que todos os vértices de cada uma das cliques desse grafo devem ser coloridos com cores diferentes. Um meme é mais que simplesmente uma lista ou seqüência de vértices – supostamente um conjunto de genes – e representa o fato de que todos os vértices de cada uma das cliques desse grafo devem ser coloridos com cores diferentes. 5.2 O paradigma intracelular e extracelular O principal mecanismo que leva à mudança na freqüência genética, portanto, à evolução, é a seleção natural. Se, numa população composta por duas ou mais formas, uma delas apresentar uma característica hereditária que seja vantajosa para um determinado ambiente, a seleção vai favorecer esta forma, que irá sobreviver e proliferar com mais sucesso, deixando um número maior de prole em relação as demais, ao longo das gerações. Assim, esta forma poderá superar as demais a ponto de alterar a constituição genética da população como um todo. Para a evolução por seleção natural atuar deve haver variação genética dentro da população, variação esta que é decorrente principalmente de recombinações e mutações. A reprodução sexuada é responsável pela variação decorrente da recombinação. A escolha dos parceiros para o acasalamento ocorre no paradigma extracelular no nível de fenótipo, onde ambos irão contribuir com células reprodutivas que irão gerar um novo ser vivo. As células reprodutivas contêm as informações genéticas dos pais que irão determinar as características do novo ser vivo. Na reprodução sexuada há um fluxo de informações entre células sendo denominado de fluxo extracelular. 54 A variação causada pela mutação ocorre devido a um erro na auto replicação do DNA (ácido desoxirribonucléico), quando as duas cadeias da dupla hélice do DNA se separam e cada uma delas serve como um molde para a construção de uma nova célula. A freqüência de mutações é de cerca de um para várias centenas de milhões de células em cada geração. Essa freqüência não tem muita influência na evolução da grande diversidade das espécies. Ao contrário das bactérias, a mutação é um dos caminhos da evolução. Devido a enorme taxa de reprodução, uma única bactéria mutante bem sucedida pode espalhar-se rapidamente pelo seu meio ambiente (Capra, 2001). Outro mecanismo de evolução utilizado pelas bactérias é o intercâmbio de genes que não está ligado à reprodução sexual, logo as bactérias podem utilizar o fluxo extracelular deforma planejada para trocarem informações entre si. A variação causada pela mutação ocorre no interior da célula, no fluxo intracelular. O fluxo intracelular engloba as informações que conseguem atravessar a barreira celular e aquelas que são originadas em seu interior. O paradigma intracelular, assim como o extracelular, é responsável pela evolução biológica. Além da mutação, outras alterações podem ocorrer no fluxo intracelular. A incorporação nas eucarióticas (células que apresentam núcleo) das organelas cloroplastos e mitocôndrias aconteceram no fluxo intracelular (Salzano, 1993). Steele et al.2, citado por Korthof (2001), acreditam que nos mamíferos existem mecanismos que permitem incorporar no DNA a capacidade imunológica adquirida em vida e que essa capacidade imunológica pode assim ser transmitida às gerações futuras. O paradigma da evolução biológica vem sendo utilizado no contexto computacional. Os AG’s ao utilizarem a reprodução sexual estão fazendo uso do fluxo extracelular, mas eles também utilizam o fluxo intracelular quando realizam mutações. Os AG’s são desenvolvidos inspirados na seleção natural. No entanto, no contexto biológico o número de mutações ocorre com pouca freqüência nos organismos que utilizam reprodução sexual. Ao permitir o uso irrestrito do acúmulo de mutações, o processo evolucionário computacional acaba artificialmente enriquecido perdendo, todavia, o contato com a realidade da sua metáfora biológica inspiradora. A TC, além do paradigma do fluxo extracelular, utiliza o fluxo intracelular quando insere informações nos cromossomos da população durante o processo 2 STEELE, E. J., LINDLEY, R. A., BLANDEN, R. V., 1998, Lamarck's Signature. How Retrogenes Are Changing Darwin's, Natural Selection Paradigm, Perseus Books. 55 evolucionário através de agentes inspirados em mecanismos desenvolvidos pela Engenharia Genética para manipular o DNA. 5.3 O processo evolucionário da Transgenética Computacional A TC é uma metaheurística pertencente à área da Computação Evolucionária que utiliza a informação para guiar uma população de cromossomos durante o processo evolucionário. Assim como nos AG’s, os cromossomos estão associados a soluções de um problema onde, partindo de um conjunto de soluções iniciais, são obtidas novas soluções com o uso da informação para guiar a busca por melhores soluções. As informações utilizadas no processo evolucionário são denominadas de memes. Os memes permitem intensificar e diversificar os cromossomos da população. O sucesso pela busca de uma solução de boa qualidade vai depender das informações carregadas pelos agentes, logo a busca por memes de boa qualidade é uma constante do processo de evolução cultural. Os memes irão modificar diretamente os genes que compõem os cromossomos e são uma proposta para construir blocos de genes (blocos de montagem) (Gouvêa e Goldbarg, 2001). Para inserir os memes nos cromossomos durante o processo evolucionário, a TC usa mecanismos inspirados na Engenharia Genética. A metáfora que integra técnicas de EG no processo evolucionário é denominada de transgenética (Gouvêa, 2001). A EG é uma ciência que modifica os seres vivos pela manipulação direta do DNA, através da inserção ou deleção de fragmentos específicos. Sua aplicação pode ser na produção de vacinas, proteínas por microorganismos, alimentos, transplantes, terapia gênica, transgênicos. No contexto da TC, a inspiração na metáfora da EG permite que, através do uso de agentes transgenéticos, informações sejam inseridas no processo evolucionário. A transcrição da informação nos cromossomos promove, no processo evolucionário, a intensificação e a diversificação da população. Os agentes podem também fortalecer cromossomos mais fracos simulando desta forma o mecanismo de terapia gênica da EG. A terapia gênica é a manipulação de genes do indivíduo para corrigir defeitos genéticos, ela pode ser do tipo: correção - quando ocorre a inserção de um gene funcional no local de um não funcional; complementação - quando é feita a introdução de uma cópia normal sem modificação do original; adição - com o acréscimo de um gene ausente no genoma. 56 A inspiração na metáfora da EG resulta na introdução de informações exógenas no processo evolucionário que podem intensificar ou diversificar a população, e fortalecer os cromossomos mais fracos (Gouvêa, 2001). O processo evolucionário da TC pode ser observado na Figura 7, evidenciando o funcionamento básico dos algoritmos transgenéticos. A partir das regras epigenéticas é gerado um Banco de Memes que por sua vez contribuem para a formação dos agentes inspirados na EG. Estes agentes atuam no cromossomo que determinam o fenótipo. A partir dos cromossomos manipulados, novas informações são adquiridas e irão alimentar o Banco de Memes. Co-evolução gene-cultura produz Regras epigenéticas e outras pressões evolucionárias influenciam geram Banco de Memes dá suporte Fenótipo Agentes da EG atuam sobre Cromossomos constroem Figura 7 - Fluxograma do Ciclo Evolucionário da Transgenética Computacional Fonte - (Gouvêa, 2001. p. 52) Fica evidente que a evolução da população influencia na evolução dos memes, caracterizando desta forma a co-evolução gene X cultura presente na TC. Portanto, além do uso de informações exógenas, são usadas informações endógenas inerentes ao processo evolucionário. O uso de informações endógenas demonstra o caráter co-evolucionário da metaheurística TC, pois a evolução da população implica na evolução dos memes que dão suporte para a geração dos agentes, que por sua vez atuam no processo evolucionário. Logo, população e memes co-evoluem. As informações que são usadas pelos algoritmos transgenéticos são obtidas de duas maneiras: fora e durante o processo evolucionário. As informações obtidas fora do processo evolucionário são denominadas informações exógenas e podem ser originárias de heurísticas, conhecimento prévio do problema, etc,. O algoritmo transgenético para o Problema do Caixeiro Viajante pode obter informações exógenas de estruturas como a árvore geradora mínima ou de procedimentos como a heurística de Christofides (Papadimitriou e Steiglitz, 1982), entre outras. No decorrer do processo evolucionário, informações de boa qualidade que surgirem também podem ser utilizadas. 57 Há um fluxo contínuo de informações no processo evolucionário. A Figura 8 representa este fluxo. Primeiramente são obtidas informações exógenas que irão formar os memes. De posse dos memes, as regras meméticas determinam como serão construídos os agentes de manipulação que irão transportar estes memes. Os agentes formados irão atuar sobre os cromossomos e o modo de atuação vai depender das regras transgenéticas especificadas. A atuação dos agentes sobre os cromossomos vai resultar na manipulação destes e a partir desta atuação informações endógenas poderão ser obtidas. Engenharia Genética Memética Contexto do Fenótipo Informações Endógenas Memes 1. Busca Local 2. Heurística Informações Exógenas Contexto do Genótipo Cromossomo normal Agentes de Manipulação Informações Cromossomo manipulado Codificadas Regras Meméticas para a formação de agentes Regras Transgenéticas de manipulação Figura 8 – O fluxo de informação na TC Fonte – Gouvêa (2001) p. 53 O processo evolucionário dos algoritmos transgenéticos utiliza a informação transportada pelos agentes logo, se faz necessário manter um fluxo contínuo de informações ao longo do desenvolvimento do algoritmo de solução. No entanto, a população no decorrer do processo evolucionário pode ficar imune à atuação dos agentes. A imunidade da população ocorre quando o agente não consegue transcrever suas informações nos cromossomos. O fracasso da atuação dos agentes se deve a dois motivos: (a) os memes transportados já foram incorporados `a população; (b) a atuação dos agentes não melhora o valor da fitness nos cromossomos devido à baixa qualidade dos memes. Para garantir a qualidade das informações transportadas e o sucesso na transcrição dessas informações, os agentes deverão ser redesenhados durante o processo evolucionário. Este constante redesenho simula o que ocorre, por exemplo, no processo imunológico da biologia, onde os agentes de defesa do organismo naturalmente buscam um aumento no seu poder de resposta. A característica fundamental do sistema imunológico é a sua capacidade de distinguir, englobar, na tentativa de eliminar partes de um corpo estranho, como bactérias, 58 vírus, etc. O ferimento com uma pequena farpa de madeira faz o sistema imunológico ativar as células brancas fagocitárias conhecidas como macrófagos. Estas células buscam englobar e destruir possíveis invasores, produzindo proteínas que ativam outras partes do sistema imunológico, alertando outros fagócitos. Outro componente do sistema imunológico, presente apenas nos vertebrados, é a imunidade adquirida que é formada por células brancas especializadas, chamadas linfócitos B e T , que se tornam ativos e se multiplicam ao encontrarem moléculas específicas de organismos estranhos chamadas antígenos. A principal característica da imunidade adquirida que é a memória imunológica, surge de mecanismos baseados em DNA que permitem aos linfócitos reconhecer uma grande diversidade de antígenos. Essencialmente, cada encontro com um organismo invasor estampa uma "fotocópia" genética dentro das células B e T. Numa segunda vez que estas células encontrarem com o mesmo invasor, usarão a "fotocópia" genética, o que lhes proporcionará um reconhecimento mais rápido e mais eficiente do organismo invasor. Este fenômeno é o que torna possível a imunização. O uso do paradigma imunológico pela TC corresponde a obter informações do processo evolucionário e utilizar essas informações para redesenhar agentes de manipulação mais eficientes ao longo das iterações do algoritmo de busca (Gouvêa, 2001). Modificações no método de atuação dos agentes, alterações no tamanho da cadeia de memes dos agentes, substituição dos agentes são algumas possibilidades para se efetuar o redesenho dos agentes e enfrentar o desafio de continuar a transcrição em uma população que se torne cada vez mais resistente ao ataque dos agentes. 5.4 Agentes Transgenéticos Os agentes transgenéticos são os mecanismos para a manipulação dos cromossomos. Um agente é composto de um ou mais memes acompanhado por um método de atuação. A formação do agente vai depender das regras meméticas que definem a sua formação. Os agentes transportam informações (memes) e manipulam o cromossomo de acordo com um método de atuação que é definido pelas regras transgenéticas. Esse método de atuação vai das circunstâncias relativas ao processo evolucionário e ao tipo de agente empregado (Gouvêa, 2001). No contexto biológico, os agentes utilizados pela EG servem para manipular o código do DNA. O uso de agentes na EG serve para quebrar a cadeia de DNA em determinados lugares, inserir segmentos de outros organismos e costurar novamente a 59 cadeia. No contexto evolucionário, os agentes são utilizados para infiltrar informações nos cromossomos durante o processo da busca por soluções de boa qualidade, intensificando e diversificando a população. O agente transgenético denominado vírus tem a capacidade de manipular o cromossomo, alterando sua fitness devido a manipulação. Os memes carregados por este agente, quando transcritos, permanecem invioláveis no cromossomo por um período de tempo chamado tempo de vida do vírus. O agente vírus é composto por um string de informações, a contaminação e um método de descontaminação. A contaminação consiste de três estágios: 1. ataque: um cromossomo para ser manipulado pelo agente vírus deve ser sensível ao ataque. A sensibilidade do cromossomo pode ser determinada de duas maneiras: (a) a manipulação causada pelo vírus melhora a fitness do cromossomo; (b) em caso contrário, é feita analise se o decréscimo da fitness atende a um esquema imune prédefinido. Um esquema imune pré-definido pode ser, por exemplo, um decréscimo de 2% no valor da fitness do cromossomo; 2. transcrição: após ser verificada a sensibilidade do cromossomo, as informações transportadas pelo vírus serão transferidas para o cromossomo de acordo com o operador de transcrição; 3. duração: após a transcrição das informações, elas permanecem invioláveis num período específico de gerações. Este período de inviolabilidade é determinado tempo de vida do vírus. Quando termina o tempo de vida, o cromossomo fica livre das restrições impostas pelo ataque viral. Gouvêa (2001) apresenta vários tipos de vírus: vírus esquema, vírus de corte, vírus 51, vírus de retorno, vírus natural, vírus molde. Outro agente transgenético é a Partícula Genética Móvel (PGM), o principal agente usado pelo algoritmo ProtoG. A PGM transporta memes que são fragmentos de cromossomo. Estes fragmentos serão engolidos pelo cromossomo atacado caso seja verificada a sensibilidade ao ataque. Um cromossomo é sensível ao ataque da PGM somente se melhorar o valor de sua fitness. Os memes transcritos para o cromossomo não permanecem invioláveis, portanto a duração da inviolabilidade é zero. 60 Uma PGM é um agente composto por uma cadeia de informação (meme) e um método de contaminação. A (PGM) é um caso especial de vírus esquema sem apresentar descontaminação pois suas informações não permanecem invioláveis. O uso do agente PGM acarreta em dois estágios: 1. ataque: neste estágio se verifica a sensibilidade do cromossomo as informações transportadas pelo agente; 2. transcrição: no segundo estágio, caso resulte em uma resposta verdadeira o estágio anterior, é feita a transcrição das informações resultando em um cromossomo manipulado. 5.5 Algoritmos Transgenéticos Os algoritmos transgenéticos são classificados em dois grupos: os que utilizam o fluxo intracelular e o extracelular (operadores de cruzamento e mutação típicos dos AG’s) e aqueles que utilizam apenas o fluxo intracelular. Além do fluxo extracelular e intracelular, os algoritmos transgenéticos desfrutam dos paradigmas da EG, da memética e imunológico. No Quadro 2 estão especificadas as categorias de algoritmos transgenéticos, onde as áreas em destaque indicam o uso do paradigma pelo algoritmo. ALGORITMOS TRANSGENÉTICOS Extra Extra Intracelular Extra Intracelular Imunológicos com Intracelulares Imunológicos Times de Agentes (ATEIs) (ATEI-Is) (ATEI-Its) PARADIGMAS 5.6 Proto-Gene (ProtoG) Engenharia Genética Evolução Darwiniana Memética Processo Imunológico Quadro 2- Algoritmos Transgenéticos de acordo com os paradigmas utilizados Pseudocódigo do algoritmo ProtoG_PSPT O algoritmo ProtoG não utiliza operadores de cruzamento ou mutação típicos dos AG. Abandonando, desta forma,o uso do paradigma do fluxo extracelular uma das vias da evolução biológica dos seres de reprodução sexuada. O processo evolucionário do ProtoG está inspirado no paradigma procariótico. Nas espécies com células procarióticas 61 (bactérias) a evolução ocorre através de troca de genes entre si sem utilizar a via de reprodução sexuada. O comércio global de genes das bactérias, conhecido como recombinação de DNA (Capra, 2001), mostra o porquê da rápida velocidade em que se espalha a resistência às drogas pela comunidade das bactérias. O ProtoG está inspirado no paradigma procariótico quando abandona a via de reprodução sexuada e utiliza troca informações no processo evolucionário. São basicamente duas as fases do algoritmo. A primeira consiste em adquirir informações (memes) planejadas que irão compor o BM. A partir daí, na segunda fase, são construídos os agentes transgenéticos que irão atacar os cromossomos da população. O BM poderá também ser realimentado no decorrer do processo evolucionário com informações de boa qualidade, como um agente ou com cromossomo campeão ainda não considerado. A realimentação do BM caracteriza o uso do paradigma imunológico pelo algoritmo. O paradigma epignético também está presente no algoritmo quando dá formação do BM através do uso das regras epigenéticas. A exemplo do AGh, é apresentado um pseudocódigo do algoritmo ProtoG implementado para solucionar o PPSP. Procedure ProtoG Início GerarBanco_de_memes Inicia_pop população_principal usando Carrega_pop_inicial Avalia_fitnes (população_principal) Repetir /*laço de evolução da população*/ Escolhe meme Carregar agente de manipulação Se agente vírus então Para i:=1 até (0.025*tamanho_da_população) faça Início indivíduo_aux := manipula (indivíduo[i]) avalia_fitness (indivíduo_aux) Se cromossomo sensível então indivíduo[i]:=indivíduo_aux Fim Se agente PGM então Para i:=1 até #tamanho da população faça Início indivíduo_aux := manipula (indivíduo[i]) avalia_fitness (indivíduo_aux) Se adaptabilidade indivíduo_aux > adaptabilidade indivíduo[i] então indivíduo[i]:=indivíduo_aux Fim Atualizar melhor_solução Realimentar Banco de Memes Até (condição de parada) Fim 62 5.6.1 Construção do BM e da população inicial Gerar Banco_de_memes Inicializa_pop população_principal usando Carrega_pop_inicial Avalia_fitnes(população_principal) O primeiro passo é a construção do Banco de Memes (BM) contendo soluções do problema. Para gerar o BM, foi utilizado um método ‘guloso’ e construtivo baseado no EDD (do inglês: Earliest Due Date). Este método, na sua forma original, é utilizado para problemas de sequenciamento que envolvem data de entrega das tarefas. O método EDD considera apenas as datas de entrega das tarefas, ordenando as tarefas segundo uma seqüência não-decrescente das mesmas (Mendes, 1999). No caso do atendimento dos poços, não há data de entrega e sim, data de liberação para a sondagem. Os poços também têm diferentes tempos de intervenção e volumes de produção que devem ser considerados no sequenciamento de atendimento. Desta forma, a regra foi modificada de modo que os poços serão ordenados numa seqüência não-decrescente segundo a data de liberação. Em seguida, serão designados para as sondas considerando os atributos (duração da intervenção, atratividade, volume de produção) que lhes conferem. A regra modificada foi denominada de ERR. A seguir uma descrição passo a passo da regra: 1º passo (inicialização): criar um vetor A que contenha os poços numa seqüência não decrescente segundo a data de liberação; 2º passo (interações): seguindo a seqüência do vetor A, verificar dentre todas as sondas e escolher aquela que o poço retorna o maior volume de petróleo produzido, considerando os poços que já foram alocados. Este passo se repete até que todos os poços sejam alocados; 3º passo (busca local): após a determinação das seqüências de poços que serão atendidos pelas sondas, é realizado uma busca local. A busca local consiste na all-pairs, a mesma utilizada pelo AGh. O primeiro passo resume em ordenar os poços, de modo a determinar a ordem em que eles serão escolhidos para o atendimento das sondas. O segundo passo é a escolha da sonda que fará a intervenção. Num primeiro instante as sondas não estão relacionadas 63 com poços. O primeiro poço a ser atendido vai considerar apenas os custo das sondas. Os poços seguintes vão considerar os custos das sondas e a seqüência dos poços que já foram atribuídos as sondas para o cálculo parcial do maior retorno de petróleo produzido. Um poço sempre será inserido após o último poço da seqüência da sonda, de modo que a escolha da sonda será a que produzir o maior retorno parcial da produção. O último passo consiste em realizar uma busca local na solução gerada pelo 2º passo. Além da solução ERR, o BM contém uma lista de poços ordenada numa seqüência não-decrescente segundo a de liberação da sondagem. Da lista serão extraídas partículas formadas por poços que sejam próximos considerando a data de liberação e o tempo da intervenção. Seja a partícula formada pela seguinte seqüência de poços {3, 4,5} então, a data de liberação para a sondagem do poço 3 somada ao tempo de intervenção tem valor próximo à data de liberação do poço 4; o mesmo acontece entre o poço 4 e 5. Durante o processo evolucionário, o BM será realimentado com os dois melhores cromossomos da população. Depois de formado o BM, uma população é iniciada e a fitness de cada indivíduo é avaliada. A população inicial é obtida de modo totalmente aleatório, sendo a mesma utilizada pelo AGh, pois ela está armazenada na instância junto com as informações relativas aos poços. 5.6.2 Processo evolucionário O processo evolucionário consiste basicamente em carregar um agente transgenético com memes e atacar os cromossomos da população até a condição de parada ser atendida. O laço de repetição para quando forem realizadas 100000 interações ou se a melhor solução não melhorar passado um intervalo de 5000 interações. No início de cada volta do laço, ocorre a competição entre os memes para constituir os agentes. Como o BM é composto por informações que provem de quatro procedimentos diferentes (solução ERR, poços ordenados, 1ª e 2ª melhores soluções) a cada nova interação, quando for utilizado um meme de intensificação, uma das quatro soluções será escolhida para compor um bloco de montagem. A escolha não será aleatória, seguirá uma ordem. O tamanho do bloco de montagem não foi constante. A cada nova interação foi sorteado aleatoriamente o tamanho do bloco, sendo que foi especificado um valor máximo de 10% do comprimento do cromossomo. 64 Para promover a diversificação, foram gerados blocos de montagem de modo aleatório utilizados pelos agentes vírus para atacar os cromossomos. Para o bloco de montagem originário da diversificação, o tamanho máximo foi de 10% do comprimento do cromossomo. A relação entre os memes de intensificação e diversificação foi de 1:1, respectivamente. Os agentes de manipulação – agente transgenético – usados foram a Partícula Genética Móvel (PGM) e o vírus com tempo de vida igual a zero. Foram desenvolvidos dois ataques: um para o agente do tipo vírus e o outro para a PGM. Para o agente do tipo vírus, o ataque é o seguinte: Se agente vírus então Para i:=1 até (0.025*tamanho_da_população) faça Início j:= sorteia (indivíduo da população) indivíduo_aux := manipula (indivíduo[j]) avalia_fitnes(indivíduo_aux) Se cromossomo sensível então indivíduo[j]:=indivíduo_aux Fim A princípio todos os indivíduos da população eram atacados pelo vírus, porém os resultados obtidos não foram satisfatórios. Passou-se estão a atacar 2,5% dos indivíduos da população. Os indivíduos são sorteados num processo aleatório e são atacados pelo vírus. Aqueles que forem sensíveis ao ataque são manipulados e recebem as informações contidas no agente transgenético. O cromossomo é sensível nos seguintes casos: (a) o valor da fitness melhorar; (b) se o valor da fitness piorar, deverá atender ao critério da fórmula de propagação de memes. Neste trabalho, a fórmula que segue representa uma regra estocástica de sensibilidade dos cromossomos (Gouvêa, 2001): 1 P= Val_ant − Val_dep , Val_ant β∗ e onde Val_ant e Val_dep são os valores da fitness do indivíduo antes e depois da contaminação, respectivamente; β é um parâmetro de ajuste. O valor de P foi comparado com um valor sorteado (Vsort) no intervalo (0, 1). Se P > Vsort então o cromossomo é sensível ao ataque e será manipulado, em caso contrário o cromossomo permanece no seu estado original. Para determinar o valor do parâmetro β foram escolhidas 6 instâncias e, para cada uma delas, foram realizados quatro testes com β = 5 e quatro testes com β = 9. 65 Conforme a Tabela 1, observa-se que os resultados obtidos para β = 9 foram melhores e este foi o valor assumido não realização dos testes para as 34 instâncias. TABELA 1 Resultados obtidos para diferentes valores de Beta Beta 5 9 Instância melhor melhor Média média solução solução D4 175652 175530 175684 175653,5 D9 169032 168980 169086 169050 C1 648251 648247,8 648255 648248 C4 654756 654732,5 654864 654779 B1 1316674 1315344 1317014 1316660 B3 1215018 1214732 1215822 1214822 A forma de transcrição das informações do vírus pode ser observada no exemplo da Figura 9. Uma posição do cromossomo é sorteada aleatoriamente. As posições do cromossomo que contém informações em comum com a partícula são marcadas como posições livres. Em seguida, as posições livres se deslocam de modo a se agruparem no lugar onde serão transcritas as informações da partícula. cromossomo S1 P3 P2 P1 P2 P4 P5 vírus S2 P4 P3 Marcar posições S1 P1 # P5 S2 # # Posições livres = # Deslocar posições S1 # # # P1 P5 S2 Transcrição S1 P3 P2 P4 P1 P5 S2 Figura 9 - Forma de transcrição do vírus Para o agente PGM, o ataque é o seguinte: Se agente PGM então Para i:=1 até #tamanho da população faça Início indivíduo_aux := manipula (indivíduo[i]) avalia_fitness (indivíduo_aux) Se adaptabilidade indivíduo_aux > adaptabilidade indivíduo[i] então indivíduo[i]:=indivíduo_aux Fim 66 Para PGM todos os cromossomos da população são atacados e o cromossomo é contaminado somente se melhorar o valor de fitness. A forma de ataque da PGM com memes de intensificação pode ser observado na Figura 10. P3 cromossomo S1 P1 P2 P5 S2 P4 P2 P4 PGM P3 Marcar posições S1 P1 # P5 S2 # P3 Posições livres = # Deslocar posições S1 P1 P5 S2 P3 # # Transcrição S1 P1 P5 S2 P3 P2 P4 Figura 10 – Forma de transcrição da PGM Á adoção de duas formas de transcrição foi para manter o desempenho computacional. Visto que, quando utilizada a forma de ataque descrito na Figura 9 para PGM, muitos cromossomos da população não podiam ser contaminados pois se tornavam inviáveis, caindo o desempenho computacional. Os indivíduos se tornavam inviáveis porque ultrapassavam o horizonte de tempo para a programação das sondas. No final de cada volta do laço de repetição, ocorre a atualização da melhor solução. Foram implementadas duas versões para a atualização da melhor solução. Na primeira versão, caso tenha um indivíduo da população com um valor de fitness melhor do que a melhor solução, então a melhor solução é atualizada. Na segunda versão, foi realizado uma busca local no melhor indivíduo da população com valor de fitness superior a fitness da melhor solução. Depois de realizada a busca local, a melhor solução é atualizada. O BM é realimentado ao final de cada volta do laço, com os dois melhores e diferentes indivíduos da população ainda não considerados. Deste modo, fica estabelecido o uso de informações endógenas durante o processo evolucionário. 67 6 RESULTADOS COMPUTACIONAIS Neste capítulo são apresentados os resultados computacionais obtidos na realização dos testes realizados para um grupo de 34 instâncias. É feita a avaliação do desempenho para cada versão do algoritmo ProtoG (uma utilizando busca local e a outra não) comparando-a com o AGh. Os resultados obtidos pelo método guloso e construtivo ERR utilizado para compor o BM das duas o ProtoG também são apresentados. 6.1 Instâncias Para a realização dos testes computacionais foram criadas aleatoriamente 34 instâncias. As 34 instâncias estão divididas em três grupos. No Quadro 3 estão especificadas os parâmetros das 34 instâncias, onde estão definidos o número de poços, o número de sondas alugadas e disponíveis, o horizonte de tempo que define o intervalo – ∆tempo – em que são geradas as datas de liberação dos poços para a sondagem; o intervalo de duração que define o intervalo – ∆intervalo – em que são geradas as durações da intervenção de cada poço. G R U P O Nº p o ç o s I N S T Â N C I A B1 B B 400 2 B3 B4 C1 C C 200 2 C3 C4 D1 D D 100 2 D3 D4 Sondas Disponíveis Sondas Alugadas I N S T Â N C I A 10 10 10 10 8 8 8 8 8 8 8 8 2 4 6 8 2 4 6 8 2 4 6 8 B5 B6 B7 B8 C5 C6 C7 C8 D5 D6 D7 D8 Horizonte de tempo 360 Intervalo de duração 3a5 Sondas alugadas I N S T Â N C I A Sondas disponíveis Sondas alugadas 2 4 6 8 2 4 6 8 2 4 6 8 B9 B10 B11 B12 C9 C10 C11 C12 D10 D11 D12 D13 11 11 11 11 7 7 7 7 7 7 7 7 1 3 5 7 1 3 5 7 1 3 5 7 Horizonte de tempo 240 Intervalo de duração 3a7 Sondas disponíveis 12 12 12 12 10 10 10 10 10 10 10 10 Horizonte de tempo 270 Intervalo de duração 3 a 10 Quadro 3 – Especificação das instâncias através de seus parâmetros 68 Para cada instância foram sorteados os atributos dos poços da respectiva instância. São quatro os atributos: o volume de petróleo produzido por unidade de tempo, uma data de liberação pertencente no intervalo ∆tempo, a atratividade do poço pertencente ao intervalo (0.1, 0.9) e o tempo de duração da sondagem compreendido no intervalo ∆intervalo. Quando se trata de proporções, não foram definidas unidades específicas de medidas. Além dos atributos referentes aos poços, o tempo de planejamento, o número de sondas alugadas e disponíveis, a instância contém a população inicial utilizada pelos algoritmos ProtoG e AGh. 6.2 Desempenho dos algoritmos Foram implementadas duas versões para o algoritmo ProtoG: uma sem busca local e a outra com busca local. A busca local usada foi a all-pairs a mesma do AGh. Para a realização dos testes computacionais, os algoritmos foram rodados quatro vezes para cada instância. Desta forma, para cada instância foram obtidos 12 valores de soluções provenientes do algoritmo ProtoG com e sem busca local e do AGh. Entre as 12 soluções obtidas para cada instância, foi extraída a melhor solução que está descrita na coluna valor da solução da Tabela 2. As outras colunas da Tabela 2 relativas aos algoritmos mostram a diferença de percentual da melhor solução obtida em relação a melhor solução dentre as 12 soluções geradas para cada instância. TABELA 2 Comparação de resultados (Continua) instância D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 valor da solução 253161 251636 202315 175684 165521 159303 136741 133955 169086 179432 184646 181846 ProtoG sem busca local 0 0,00119 0 0,0295 0,0537 0 0 0 0,0248 0 0,0005 0,0032 ProtoG com busca local 0 0 0 0 0,0061 0 0 0 0 0 0 0 69 AGh método ERR 0 0 0 0,09107 0 0 0 0 0,06564 0 0 0,001649 0,02844 0 0,01087 0,39275 0,05679 0,00062 0,03071 0 0,68012 0 0,09260 0,0032 TABELA 2 Comparação de resultados (Conclusão) instância C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 B1 B2 B3 B4 B5 B6 B7 B8 B11 B12 valor da solução 648255 559495 592329 654864 394887 436790 416498 397294 451869 487653 477072 380867 1317014 1255661 1215822 1126218 962880 799406 808085 883077 889170 857382 ProtoG sem busca local 0,00740 0,00327 0,07411 0,06138 0,04102 0,25092 0,09507 0,06695 0,30628 0,04839 0,34648 0,26203 0,47448 0,83589 0,54898 0,37594 0,04704 0,37040 0,59770 0,62304 1,50882 0,29683 ProtoG com busca local 0 0 0 0 0 0 0 0 0,3864 0 0 0 0 0 0 0 1,6709 1,67225 0 0,05278 2,27044 2,26609 AGh método ERR 0,078518 0,001966 0,235342 0,295939 0,205881 0,32693 0,24561 0,46262 0 0,10212 0,01194 0,18930 0,08352 0,27245 0,10782 0,27969 0 0 0,16088 0 0 0 0,01727 0,06988 0,11986 0,13254 1,27884 1,71959 1,07659 0,32872 0,65638 0,10191 2,22293 1,24111 0,699 2,20537 2,07407 1,64195 0,1592 0,37728 0,84075 0,75180 0,3408 0,47388 Os valores de afastamento médio da melhor solução encontrada para os algoritmos ProtoG com busca local, ProtoG sem busca local, AGh e o método guloso e construtivo ERR são, respectivamente: 0,28, 0,21 0,094 e 0,58. Estes valores estão representados no Gráfico 6. 0,6 0,5 0,4 0,3 0,2 0,1 0 ProtoG AGh com busca local ERR ProtoG sem busca local Gráfico 6 – Afastamentos médios das melhores soluções 70 Observando a Tabela 2, verifica-se que os percentuais de distância para as instâncias B5, B6, B11 e B12 arrastam para cima o valor do afastamento médio das melhores soluções do algoritmo ProtoG com busca local. Desconsiderando o percentual de distância das quatro instâncias, os valores de afastamento médio da melhor solução encontrada para os algoritmos ProtoG com busca local, ProtoG sem busca local, AGh e o método guloso e construtivo ERR são, respectivamente: 0,014, 0,17, 0,1 e 0,61. Eles estão representados no Gráfico 7. 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 AGh ProtoG com busca local ERR ProtoG sem busca local Gráfico 7 – Afastamentos médios das melhores soluções O afastamento médio do algoritmo ProtoG com busca local, considerando todas as instâncias, é de 0,28. Com este valor, ele fica com o terceiro melhor afastamento médio, como mostra o Gráfico 6. Excluindo as instâncias B5, B6, B11 e B12, o mesmo algoritmo fica com o melhor afastamento médio, como mostra o Gráfico 7. No Gráfico 8 são mostrados os desempenhos dos algoritmos em relação à obtenção de soluções com valor igual a melhor solução, isto é, com o percentual de distância igual a 0%. Observando o Gráfico 8, verifica-se que o algoritmo ProtoG com busca local encontrou a melhor solução um número maior de vezes que o AGh, apesar de ter ficado com o valor de afastamento médio superior ao AGh. O mesmo acontece com o algoritmo Protog com busca local em relação ao algoritmo ProtoG sem busca local. 35 30 25 20 15 10 5 0 AGh ProtoG com busca local ERR ProtoG sem busca local Gráfico 8 – Percentual de soluções com afastamento 0% 71 Nos Gráficos 9, 10 e 11 estão representados as comparações de desempenho relativo, segundo o critério da qualidade de solução, entre o algoritmo ProtoG com busca local e cada um dos demais algoritmos. A barra da esquerda representa o número de instâncias em que os algoritmos obtiveram iguais resultados. A barra central e a barra da direita representam o número de instâncias em que o algoritmo comparado e o ProtoG com busca local obtiveram melhor performance, respectivamente. 20 15 10 5 0 Empate ProtoG com busca local AGh Gráfico 9 – Comparação de desempenho ProtoG com busca local x AGh 30 25 20 15 10 5 0 Empate ProtoG com busca local ERR Gráfico 10 – Comparação de desempenho ProtoG com busca local x ERR 20 15 10 5 0 Empate ProtoG com busca local ProtoG sem busca local Gráfico 11 – Comparação de desempenho ProtoG com busca local x ProtoG sem busca local 72 Nos Gráficos 12 e 13 estão representados as comparações de desempenho relativo, segundo o critério da qualidade de solução, entre o algoritmo ProtoG sem busca local e cada um dos demais algoritmos. A barra da esquerda representa o número de instâncias em que os algoritmos obtiveram iguais resultados. A barra central e a barra da direita representam o número de instâncias em que o algoritmo comparado e o ProtoG sem busca local obtiveram melhor performance, respectivamente. 20 15 10 5 0 Empate ProtoG sem busca local AGh Gráfico 12 – Comparação de desempenho ProtoG sem busca local x AGh 20 15 10 5 0 Empate ProtoG sem busca local ERR Gráfico 13 – Comparação de desempenho ProtoG sem busca local x ERR 6.3 Comparação de tempo de processamento As instâncias foram divididas em três grupos para serem feitas as análises dos tempos de processamento gastos pelos algoritmos ProtoG com busca local e o AGh. O primeiro grupo foi formado pelas instâncias em que os dois algoritmos obtiveram empate, isto é, o percentual de distância da melhor solução igual a 0% para ambos os algoritmos. Estas instâncias estão descritas na coluna instância da Tabela 3. As colunas AGh e ProtoG com busca local da Tabela 3 estão divididas em duas: distância que contém o percentual de distância e tempo que contém o tempo gasto para encontrar a 73 melhor solução. Observando a Tabela 3, verifica-se que para apenas uma instância o algoritmo ProtoG com busca local gastou mais tempo em relação ao AGh. TABELA 3 Tempo de processamento para as instâncias que os Algoritmos ProtoG e AGh obtiveram percentual de distância igual a 0% AGh ProtoG com busca local melhor distância distância solução tempo (seg.) tempo (seg.) instância % % D1 253161 0 399 0 269 D2 251636 0 429 0 268 D3 202315 0 579 0 250 D6 159303 0 450 0 267 D7 136741 0 752 0 243 D8 133955 0 292 0 241 D10 179432 0 180 0 273 D11 184646 0 1026 0 710 O segundo grupo foi formado pelas instâncias em que algoritmo ProtoG com busca local obteve soluções de melhor qualidade do que AGh. As instâncias estão descritas na coluna instância da Tabela 4. As colunas AGh e ProtoG com busca local da Tabela 4 estão divididas em duas: distância que contém o percentual de distância da melhor solução e tempo que contém o tempo gasto pelo algoritmo para encontrar a sua melhor solução. Observando a Tabela 4, verifica-se que para cinco instâncias, o algoritmo ProtoG com busca local utilizou menos tempo que o AGh. Nas instâncias restantes, o ProtoG com busca local obteve melhor solução e gastou mais tempo que o AGh. Para estas instâncias, foi dado o mesmo tempo utilizado pelo ProtoG ao AGh. O AGh utilizando o mesmo tempo gasto pelo ProtoG com busca local conseguiu, entre as 19 instâncias, reduzir o percentual de distância de duas instãncias: C5 e C10 ficaram com um percentual de distância de 0,1073% e 0,0785%, respectivamente. O terceiro grupo foi formado pelas instâncias em que AGh obteve soluções de melhor qualidade do que ProtG. Estas instâncias estão descritas na coluna instância da Tabela 5. As colunas AGh e ProtoG com busca local da Tabela 5 estão divididas em duas: distância que contém o percentual de distância da melhor solução e tempo que contém o tempo gasto pelo algoritmo encontrar a sua melhor solução. Observando a Tabela 5, verifica-se que para duas instâncias, o AGh utilizou mesmo tempo que o algoritmo ProtoG com busca local. Nas outras cinco instâncias, o AGh obteve melhor solução e gastou mais tempo que o ProtoG com busca local. Para estas 74 cinco instâncias, foi dado o mesmo tempo utilizado pelo AGh ao ProtoG, sendo que três instâncias reduziram o percentual de afastamento: B11 ficou com um percentual de distância de 0,16%, B12 com 1,15% e B5 com 1,2%. TABELA 4 Tempo de processamento para as instâncias em que o Algoritmo ProtoG obteve percentual de distância igual a 0% AGh ProtoG com busca local melhor distância tempo distância tempo solução instância % (seg.) % (seg.) D4 175684 0,09107 547 0 1052 D9 169086 0,06564 2758 0 646 D12 181846 0,001649 470 0 220 C1 648255 0,078518 6942 0 1405 C2 559495 0,001966 6198 0 1508 C3 592329 0,235342 2545 0 4959 C4 654769 0,295939 3174 0 1050 C5 394887 0,205881 729 0 1944 C6 436790 0,32693 1657 0 3360 C7 416498 0,24561 1644 0 1740 C8 397294 0,46262 1340 0 1740 C10 487653 0,10212 472 0 1440 C11 477072 0,01194 1802 0 5482 C12 380867 0,18930 940 0 1936 B1 1317014 0,08352 3549 0 3911 B2 1255661 0,27245 7143 0 9494 B3 1215329 0,10782 4297 0 6420 B4 1126218 0,27969 7194 0 7251 B7 808085 0,16088 3165 0 7951 TABELA 5 Tempo de processamento para as instâncias em que o AGh obteve percentual de distância igual a 0% AGh ProtoG com busca local melhor distância tempo distância tempo instância solução % (seg.) % (seg.) D5 165521 0 0,0006 834 616 C9 451869 0 0,3863 6086 1478 B5 962880 0 5679 1,6709 1241 B6 799406 0 5254 1,6722 1980 B8 883077 0 7149 0,0527 6100 B11 889170 0 7197 2,2704 1587 B12 857382 0 7136 2,2660 2285 75 7 CONCLUSÕES A implementação de dois operadores, sendo que um deles foi descartado por gerar um número muito grande de indivíduos inviáveis, mostra a importância que a escolha de operadores de cruzamento tem no desempenho dos AGh. O ProtoG com busca local apesar de não usar operadores de cruzamento e mutação, fornece melhores resultados qualitativos para o PPSP do que o AGh. O ProtoG com busca local também fornece melhores resultados qualitativos que o ProtoG sem busca local. O uso da busca local forneceu bons resultados para o algoritmo ProtoG. Observa-se que a comparação qualitativa foi realizada com o mesmo tempo de processamento para ambos os algoritmos. No caso de empate, as rodadas do ProtoG com busca local utilizaram, em sua maioria, o menor tempo. Outro aspecto importante a ser considerado é a regra de parada para o ProtoG. Um número de interações sem melhorar a melhor solução corrente não se mostrou uma boa condição de parada, pois se observou que quatro instâncias ficaram com valor de solução inferior a solução fornecida pelo método guloso e construtivo ERR utilizado para compor o BM. Além disso o tempo de parada na condição anterior foi muito pequeno. A condição de parada deve considerar as informações contidas no BM e analisar se o BM fornece possibilidade de proporcionar melhoria nos cromossomos da população. Além de um número específico de interações e um número de interações sem melhorar a melhor solução corrente, uma outra condição de parada poderia ser adotada. Esta condição poderia ser, no mínimo: o melhor indivíduo da população tem um valor de fitness melhor do que valor de uma solução do BM e o número de interações já foi atendido. Em relação ao tempo, a disponibilidade de mais tempo para o ProtoG com busca local proporcionou melhoraria da solução. Trabalhos futuros podem incluir a extensão do que foi implementado nesta tese. Entre eles, o uso de partículas com tamanhos inferiores a 10% do tamanho do cromossomo, agentes do tipo vírus com tempo de vida diferente de zero. 76 8 REFERÊNCIAS BIBLIOGRÁFICAS ALBERS, Susanne, 1997, “Competitive Online Algorithms”, OPTIMA - Mathematical Programming Society Newsletter, v. 54, 1-8. ANTONISSE, J., 1989, “A new interpretation of schema notation that overturns the binary encoding constraint”, In: Proceedings of the Third International Conference on Genetic Algorithms, Schaffer, J.D. (Ed.), Mateo, CA, 1989, 86-91. Available from < www.cba.ufl.edu/dis/papers > ALTENBERG, Lee, 1994, “The Schema Theorem and Price’s Theorem”, In: Foundations of Genetic Algorithms, Whitley, D., Vose, A. (Eds), v.3, San Mateo, CA: Morgan Kaufman, 23-49. BÄCK, T.; SCHEWEFEL, Hans-Paul, 1999, Evolutionary Computation: An Overview, In: IEEE International Conference On Evolutionary Computation, Nagoya – Japan. BRAMLETTE, M.F, 1991, "Initialization, Mutation, and Selection Methods in Genetic Algorithms for Function Optimization", In: Proceedings of the Fourth International Conference on Genetic Algorithms, Belew, R.K., Booker L.B. (Eds.), San Mateo, CA: Morgan Kaufman, 100-107. BURIOL, Luciana, FRANÇA, Paulo M., MOSCATO, Pablo, 1999, Algoritmo Memético para o Problema do Caixeiro Viajante. Anais do XXXI Simpósio Brasileiro de Pesquisa Operacional, (Outubro) Juiz de Fora, MG, Brasil. CAIXETA, Nely, 2001, Você ainda não viu nada, Revista Exame, São Paulo, 10 jan. 2001. edição 731, ano 35 No 01 p. 44-50. CAMPELLO, R., MACULAN, N., 1994, Algoritmos e Heurísticas - Desenvolvimento e Avaliação de Performance, Editora da Universidade Federal Fluminense, Niterói, RJ. CARVALHO, Dinis, 2000, Programação da Produção, Relatório Técnico, Departamento de Produção e Sistemas, Universidade de Minho, Portugal. CHAN, K. C., TANSRI, H., 1994, "A Study of Genetic Crossover Operations on the Facilities Layout Problem", Computers and Industrial Engineering, v. 26, 537-550. CHEN, Zhi-Long, POWELL, Warren B., 1998, Solving Parallel Machine Scheduling Problens by Column Generation,. INFORMS Journal on computing, No 11, 78-94. CUNHA, A. G. L., 1999, Modelling and Optimisation of Single Screw Extrusion, (Tese de doutorado), Departamento de Ciências e Engenharia de Polímeros – Universidade de Minho. CURY, Ricardo M., 1999, Uma Abordagem Difusa para o Problema de Flow-shop Scheduling, (Tese de doutorado) – Faculdade de Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis. Disponível em: http://www.eps.ufsc.br/teses99/cury. 77 CAPRA, Fritjof, 2001, A teia da vida - Uma Nova Compreensão Científica dos Sistemas Vivos, tradução Newton Roberval Eichenberg. São Paulo: Editora Cultrix, 5ª edição (2001). D’ALMEIDA, Albino L., 2000, Determinação de Frota de Sondas de Petróleo Aplicando a Teoria das Opções Reais, In: Rio Oil & Gás Expo and Conference, (Outubro) Rio de Janeiro, RJ, Brasil. DE JONG, Kenneth; SPEARS,W., 1993, “On The State of Evolutionary Computation”,. In: Proceedings of the Sixth Conference on Genetic Algorithms, 618-623. Available from < http://www.aic.nrl.navy.mil/~spears/ea.html> EPSTEIN, L., NOGA, J., SEIDEN, S., SGALL, J., WOEGING, G., 2001, “Randomized on-line Scheduling on two Uniform Machines”, In: Journal of Scheduling, v. 4, No 2 (março – abril 2001), 104-121. ESHELMAN, L. J., SCHAFFER, J. D., 1992, “Real-Coded Genetic Algorithms and Interval-Schemata”, In: Foundations of Genetic Algorithms, Whitley, L.D. (Ed.), v.2, San Mateo, CA: Morgan Kaufman, 5-17. FLEURENT, C., FERLAND, J. A., 1994, Genetic and Hybrid Algorithm for Graph Coloring, Technical. Report - Université de Montréal. FRANÇA, P., MENDES, A., MOSCATO, P., 1999, “Memetic Algorithms to minimize tardiness on a Single Machine Scheduling with sequence-dependent setup times”, In: 5th International Conference of the Decision Sciences Institute, Athens, Greece. FOGEL, David B., 1997, The Advantages of Evolutionary Computation,. Natural Selection, Inc. Bio – Computing and Emergent Computation. Singapore: Sköbe, Sweden, World Scientific Press. GLOVER, F., LAGUNA, M., 1997, Tabu Search, Kluver Academic Publishers – USA, apud ROGIA, Iria B., 1998, “Método Heurístico para Solução do Problema de Sequenciamento Cíclico de n tarefas em m Processadores Paralelos Idênticos”, in: 3ª Semana Acadêmica do Curso de Pos-graduação da Ciência da Computação – Universidade Federal do Rio Grande do Sul. GOLDBARG, Marco C., LUNA, Henrique Pacca L., 2000, Otimização Combinatória e Programação Linear - Modelos e Algoritmos, Editora Campus, Rio de Janeiro. GOLDBARG, M. C., GOUVÊA, Elizabeth. F., 2000, Extra–Intracellular Transgenetic Algorithm, Natal – RN: Universidade Federal do Rio Grande do Norte. GOLDBARG, Marco C., GOUVÊA, Elizabeth. F., SILVA, Lívia. Maria da., 2001a, A Transgenetic Approach for The Graph Coloring Problem,.In: EURO 2001- European Operational Research Conference, Roterdan EURO 2001 Proceedings. 2001, 34-34. GOLDBARG, Marco C., GOUVÊA, Elizabeth F., MEDEIROS, Ana, C. C., 2001b, A Transgenetic Algorithm Applied to the Piston Pump Mobile Unity Tour Problem, In: EURO 2001- European Operational Research Conference, Rotterdan. EURO 2001 Proceedings. 2001, p.36. 78 GOLDBERG, Leslie. Ann, PATERSON, Mike, SRINIVASAN, Arivand, SWEEDY, Elizabeth, 1997, Better Approximation Guarantes for Job-shop Scheduling, In: proc. ACM – SIAN Symposiun on Discrete Algorithms, 599-608. GOUVÊA, Elizabeth F., 2001, Transgenética Computacional – Um Estudo Algorítmico, (Tese de Doutorado) COPPE – UFRJ. GOUVÊA, E. F., GOLDBARG, M. C., 2001, “ProtoG: a Computational Transgenetic Algorithm”, In: MIC’2001 – 4th Metaheuristics International Conference, Porto – Portugal, July 16 – 20, 625- 630. GUYAGULER, B., HORNE, R. N., 2000, "Optimization of Well Placement", Journal of Energy Resources Technology 122, 64-70. HAYKIN, S., 1999, Neural Networks: A Comprehensive Foundation, Pretice Hall. HUSBANDS, Philip, MILL, Frank, 1994, Scheduling with Genetic Algorithms, AISB Quarterly, nº 89. ICHIHARA, J. A., 1998, Um Método de Solução Heurístico para a Programação de Edifícios Dotados de Múltiplos Pavimentos – tipo, (Tese de Doutorado), Departamento de Engenharia de Produção e Sistemas - Universidade Federal de Santa Catarina. JAIN, A. S.; MEERAN S., 1999, “Deterministic Job-shop Scheduling: past, present and future”, European Journal of Operations Research, v.118. JORDAN, G. C., 2001, Investigação Operacional e Optimization, Relatório Técnico, Departamento de Matemática, Universidade de Minho - Portugual. JONES, A., RABELO, L. C., 1998, Survey of Job Shop Scheduling Techniques, Technical Report, NISTIR - National Institute of Standards and Technology, Gaithersburg, MD. KORTHOF, Gert, 2001, Retrogenes: genes that don’t behave – Reverse transcription: who needs it?, available from <http://home.wxs.nl/~gkorthof/kortho39.htm>. KOMOSINSKI, L. J., LACERDA, C. D. de F., BORGES, P. S. S.,1998, “Aprendizagem Mediada por Algoritmos Genéticos”, In: Congresso RIBIE, Brasília, DF, Brasil. LACADENA, Jaun Ramón, 2001, Evolucioón de La Humanidade: Evolución Biológica y Evolución Cultural, Revista Latinoamericana de Bioética No1. LANCIA, Giuseppe, 2000, “Scheduling Jobs with Release Dates and Tails on Unrelated Parallel Machines to Minimize the Madespan”, European Journal of Operational Research, v. 2, 277-288. LAND, Mark W. S., 1998, “Evolutionary Algorithms with Local Search for Combinatorial Optimization”, (Tese de Doutorado), University of Califórnia, San Diego. 79 MAYLEY, G., 1996, “The Evolutionary Cost of Learning”, In: From Animals to Animats: Proceedings of the Fourth International Conference on Simulation of Adaptive Behaviour, Proc. Of the fourth Int. Conf. On S of Adaptaive Behavior, . Maes, P., Mataric, M., Meyer, J-A., Pollack, J., Wilson, S. (Eds.), London: MIT Press. MENDES, Alexandre S., 1999, Algoritmos Meméticos Aplicados aos Problemas de Sequenciamento em Máquinas, (Tese de Mestrado), Faculdade de Engenharia Elétrica e Computação - Universidade Estadual de Campinas. MICHALEWICZ, Zbigniew (Ed.), 1996, Genetic Algorithms + Date Structures = Evolution Programs, Springer. MITCHELL, Melanie, 2000, Life and Evolution in Computers,. In: Darwinian Evolution Across the Disciplines, ed. M. McPeek. MOSCATO, Pablo, 1989, “On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts”, Caltech Concurt Computation Program 158-79, California Institute of Technology, Program,C3P Report 826. MÜHLENBEIN, Heinz, 1993, “Evolutionary Algorithms: Theory and Aplications”, In: Tech. Rep. Nº GMD AS GA 93-03, German National Reserarch Center for Computer Science (GMD), German. PAIVA, R. O., SCHIOZER, D. J., BORDALO, S.N., 2000, “Optimizing the Itinerary of Workover Rigs”, In: World Petroleum Congress 16., Calgary – Canada. PAPADIMITRIOU, C. H., STEIGLITZ, K., 1982, Combinatorial Optimization – Algorithms and Complexity, © 1982 by Prentice-Hall, Inc. Englewood Cliffs, New Jersey. POTVIN, Jean-Yves, 1996, “Genetic Algorithms for the Traveling Salesman Problem”, In: Annals of Operations Research, v. 63, 339-370. RADCLIFFE, N. J., SURRY, P. D., 1994, Formal Memetic Algorithms, Edinburgh Parallel Computing Centre, King’s Buildings, University of Edinburgh. REBELLO, F. R., HAMACHER, S., 2000, "Uma Proposta de Algoritmo Genético de Duas Fases para Roteamento de Veículos", Anais do XXXII Simpósio Brasileiro de Pesquisa Operacional, Viçosa, MG, Brasil. ROGIA, Iria B., 1998, “Método Heurístico para Solução do Problema de Sequenciamento Cíclico de n Tarefas em m Processadores Paralelos Idênticos”, In: 3ª Semana Acadêmica do Curso de Pos-graduação da Ciência da Computação – Universidade Federal do Rio Grande do Sul. SALZANO, Francisco M., 1993, Biologia, Cultura e Evolução, 2ª edição, Editora da Universidade, Porto Alegre. SANTOS, Robson da Cunha, CUNHA, Gerson G., 2000, “O uso de Algoritmos Genéticos e Realidade Virtual na Determinação da Posição da Cabine de Controle em Sondas de Perfuração”, In: Rio Oil & Gás Expo and Conference, Rio de Janeiro - Brasil. 80 SHI, Gouhong, 1997, “A Genetic Algorithm Applied to a Classic Job-Shop Scheduling Problem”, International Journal of Systems Science, v. 28, No 1, 25-32. SMIDERLENE, Andréia, 2001, Técnicas da Pesquisa Operacional Aplicadas - Um Problema de Cobertura de Arcos, (Dissertação de Mestrado) - Curso de pós-graduação em Métodos Numéricos em Engenharia – Programação Matemática, Universidade do Paraná. SOURD, Francis; NUIJTEN, Win, 2001, “Scheduling with Tails and Deadlines”, Journal of Scheduling, v. 4, No 2, (março – abril 2001), 104-121. SZPILMAN, Marcelo, O Mundo de Darvin e a Teoria da Evolução, Instituto Ecológico Aqualung - on line, informátivo nº 08, julho/agosto de 1996. SZWACFITER, L. J., 1988, Grafos e Algoritmos Computacionais, Editora Campus, 2ª edição, Rio de Janeiro. THOMAS, J. E. (Ed.), 2001, Fundamentos de Engenharia de Petróleo, Editora Interciência, Rio de Janeiro. TURNEY, P., 1996, Myths and Legends of the Baldwin Effect, Proceedings of the Workshop on Evolutionary Computing and Machine Learning at the 13th International Conference on Machine Learning, Bari, Italy, 35-142. VAESSENS, R. J. M., AARTS, E. H. L., LENSTRA, J. K., 1994, Job Shop Scheduling by Local Search, Technical Report COSOR Memorandum 94-05, Eindhoven University of Technology. WHITLEY, D., 1993, A Genetic Algorithm Tutorial, Technical Report CS-93-103, Computer Science Department, Colorado State University. WHITLEY, D., GORDON, S., MATHIAS, K., 1994, “Lamarckian Evolution, The Baldwin Effect and Function Optimization”, In: Parallel Problem Solving from NaturePPSN III, Davidor, H., P. Schwefel and R. Manner, (Eds.), Springer-Verlag, 6-15. Available from <http://www.cs.colostate.edu/~genitor/Pubs.html#1994> WILLIAMSON, D. P., HALL, L. A., HOOGEVEEN, J. A., LENSTRA, J. K., SERVASTO’JANOV, S. V., SHMOYS, D. B., 1997, Short Shop Schedules, Operations Research 45, 288-294. WILSON, E. O., 1999, A unidade do conhecimento – Consiliência, Editora Campus, Rio de Janeiro. YAMADA, Takeshi; NAKANO, Ryohei, 1996, “Job Shop Scheduling by Simulated Anneling Combinied With Deterministic Local Search”, In: Kluver Academic Publishers, MS – USA. ZUBEN, Fernando J. V., 2000, “Computação Evolutiva: Uma Abordagem Pragmática”, Anais da I Jornada de Estudos em Computação de Piracicaba e Região (1ª JECOMP), v. 1, 25-45. 81