18 2 Problemas de Planejamentos 2.1 Descrição do Problema Problemas de planejamento são problemas de otimização tipicamente combinatoriais. A tarefa de planejamento consiste em alocar tarefas ao longo do tempo que devem ser feitas utilizando um número limitado de recursos, respeitando diversas restrições e otimizando um ou mais objetivos. Uma tarefa é dada como completa após a execução de uma seqüência pré-definida de operações e o resultado final do planejamento consiste em um plano que exibe todas as tarefas associadas aos instantes iniciais e finais e aos recursos usados para cada operação. Estas associações de tempo e recurso afetam a qualidade de um PUC-Rio - Certificação Digital Nº 0116630/CA planejamento com respeito a critérios como custo, tempo de execução, etc. Problemas do tipo flow shop são problemas onde todas as diferentes tarefas são feitas pela mesma seqüência de recursos. Um planejamento é portanto determinado pela ordem na qual as tarefas são programadas. Em problemas do tipo job shop, cada tarefa necessita utilizar cada recurso somente uma vez (Bäck et al, 1997). A estrutura geral de um problema de planejamento pode ser descrita como uma quádrupla (R, P, J, C) (Bäck et al, 1997)(Husbands, 1994), onde: • R é um conjunto de recursos, por exemplo, máquinas ou pessoal, com diferentes capacidades funcionais. • P é um conjunto de produtos. Cada produto pode ser produzido através de diferentes procedimentos, chamados planos de processo. Cada plano de processo consiste em uma seqüência de operações. • J é um conjunto de tarefas a serem programadas de acordo com diversas restrições definidas em C. Para cada tarefa existirá um produto resultante em P e um tempo de execução para a mesma. • C é um conjunto de restrições, por exemplo, relações de precedência ou restrições de capacidade, que necessitam ser satisfeitas. Normalmente existem vários tipos diferentes de restrições específicas para cada aplicação. 19 A qualidade de um planejamento é medida através de uma função objetivo que associa um valor numérico a um planejamento. Diferentes objetivos podem ser identificados em um planejamento como, por exemplo, minimizar o tempo de execução, minimizar os custos de execução, etc. Geralmente, não existe apenas um único objetivo sendo que em algumas aplicações podemos ter vários objetivos, algumas vezes conflitantes, como por exemplo minimizar o consumo de energia elétrica e maximizar o uso de recursos. Com exceção de alguns casos teóricos de pouca importância prática, o processo de determinar uma solução ótima para um problema de planejamento pertence a classe de problemas NP-hard (problemas que não podem ser resolvidos de forma não-determinística em tempo polinomial). A prática também tem demonstrado que este tipo de problema representa uma tarefa de extrema PUC-Rio - Certificação Digital Nº 0116630/CA dificuldade de solução por especialistas humanos (Bäck et al, 1997). 2.2 Planejamento de Uso de Recursos em Portos de Embarque de Minério A otimização de planejamentos de descarga e embarque de minério em portos constitui um problema extremamente difícil devido a vários aspectos: a diversidade de tarefas com restrições de precedência; ao grau de complexidade das regras que envolvem a operação portuária; e a quantidade e diversidade de recursos que devem ser utilizados para execução das tarefas. Esta seção exemplifica o funcionamento de um porto real localizado em Vitória – Espírito Santo que foi usado como base de inspiração para a implementação do estudo de caso no capítulo 5 que utiliza um porto fictício. 2.2.1 Funcionamento do Porto de Tubarão O porto de Tubarão é um complexo industrial localizado em Vitória e controlado pela Companhia Vale do Rio Doce. Este complexo portuário é responsável pelo embarque anual de cerca de 70 milhões de toneladas de minério de ferro para exportação e mercado interno. 20 O porto conta com dezenas de equipamentos e recursos diferentes para fazer a operação de embarque do minério nos navios. Uma pequena lista com uma breve descrição destes recursos é mostrada a seguir: Equipamento Descrição Local de atracação do navio para embarque de minério. Cada píer tem uma série de restrições operacionais (as restrições são explicadas em detalhe mais Píer adiante). O porto conta com 3 píeres denominados: • Píer 1 Norte (P1N) • Píer 1 Sul (P1S) • Píer 2 (P2) Neste equipamento é acoplada a composição ferroviária contendo o minério PUC-Rio - Certificação Digital Nº 0116630/CA para descarga. O virador de vagões então gira os vagões, dois a dois, fazendo Virador com que o minério seja despejado sobre correias transportadoras. O de Vagão mecanismo de tração para puxar toda a composição fica no próprio virador, não necessitando portanto de uma locomotiva para puxá-los a medida que o minério é descarregado. Acoplada a uma correia, é responsável por despejar o minério em uma pilha de Empilhadeira estocagem. Este equipamento se assemelha a um guindaste e se desloca pelas áreas do porto sobre pares de trilhos. Acoplada a uma correia é responsável por retirar minério de uma pilha de Recuperadora estocagem em geral para embarque no navio. Este equipamento conta com um conjunto de pás mecânicas que retiram o minério das pilhas de estocagem. Carregador de Acoplado a uma correia, é responsável por despejar o minério nos porões do Navio navio. Funcionam de forma semelhante às empilhadeiras. Correia Responsável pelo transporte do minério através do porto. Estes equipamentos Transportadora Áreas de Estocagem são responsáveis pelo tráfego de minério pelo porto. Estas áreas são usadas para estocar o minério de ferro para embarque. São divididas em balizas para facilitar o controle, com espaçamento de 10 metros entre cada uma delas. Tabela 1 – Lista de recursos do porto Uma visão geral e bastante genérica da estrutura do porto é mostrada na figura a seguir: 21 Área A Virador 1 Virador 2 Virador 3 Virador 4 Empilhadeira 1 Empilhadeira 2 Empilhadeira 3 Empilhadeira n Área B Área C PUC-Rio - Certificação Digital Nº 0116630/CA Recuperadora 1 Área D Área E Recuperadora 2 Área F Área G Recuperadora 3 Área H Área I Recuperadora n Carregador 1 Carregador 2 Carregador n Píer 1 Sul Píer 1 Norte Píer 2 Figura 1 – Visão geral do porto No porto utiliza-se com freqüência o conceito de rotas: percursos completos feitos por uma determinada carga entre dois pontos. Alguns exemplos de rotas que podem ser citados são: entre os viradores e as empilhadeiras, entre as recuperadoras e os carregadores de navio e entre áreas distintas. No total existem, atualmente, cerca de 400 rotas diferentes no porto. Mensalmente, cerca de 40 navios com capacidades de carga que variam entre 70.000 e 350.000 toneladas são atendidos pelo porto. Diversos equipamentos são utilizados também para descarregar o minério que chega via estrada de ferro no porto e estocá-los em grandes áreas para aguardar a chegada dos navios que irão transportar este minério. Toda esta operação é controlada e planejada por um grupo de pessoas com o auxílio apenas de algumas planilhas e relatórios internos. Para se compreender melhor a dimensão do problema, deve-se compreender o funcionamento e a operação do porto. Diariamente, os planejadores recebem informações atualizadas sobre quais navios se encontram no 22 porto atracados, quais navios estão aguardando a ordem para atracação e quais navios estão programados para chegar no porto nos próximos dias (com um horizonte de até 30 dias, ainda que os operadores observem no máximo 7 dias a frente) além do tipo de carga que cada navio irá transportar. Após o anúncio da chegada do navio no porto (que não necessariamente corresponde ao momento da atracação, já que os píeres do porto podem estar todos ocupados neste momento), o porto tem um limite de tempo, definido contratualmente com a empresa compradora, para embarcar todo o minério de ferro sem o pagamento de uma multa (esta multa corresponde a um valor por cada hora excedente do tempo de embarque). Este limite de tempo é chamado laytime e é contado a partir do anúncio da chegada do navio no porto até a desatracação do mesmo. Da mesma forma, caso o porto consiga embarcar todo o minério antes de um período de tempo também definido em contrato, ele recebe um prêmio da empresa PUC-Rio - Certificação Digital Nº 0116630/CA compradora (em geral correspondente a metade do valor da multa). A partir destas informações e através de reuniões diárias com representantes da área de produção (responsáveis pelas minas), decide-se quais cargas serão enviadas através de uma malha de estradas de ferro que partem das regiões de produção com destino ao porto. Esta decisão deve ser tomada com antecedência já que, em média, um trem leva 12 horas entre sair da mina e chegar no porto e, idealmente, deseja-se que quando o navio atraque no píer, todo o minério destinado a ele já esteja estocado no porto, pronto para embarque. Além disso, estas decisões devem ser tomadas levando-se em conta a capacidade de produção das minas. Os planejadores também decidem, a partir da fila de navios, da disposição do minério estocado no porto e da disponibilidade de máquinas, em qual píer cada navio irá atracar. Esta escolha é de fundamental importância e deve obedecer uma série de premissas e restrições: • Cada píer tem um limite operacional pré-definido. Só podem atracar no píer navios que respeitem estes limites operacionais. Entre outros, podemos citar o calado máximo do navio (distância entre o fundo do navio e o fundo do mar quando o navio estiver com a carga completa), o calado aéreo (air draft – distância entre a altura da lança do carregador e o convés 23 do navio ao atracar), maré (em algumas situações, o navio tem um calado grande e só pode sair do píer com determinadas condições de maré). • Alguns píeres trabalham com dois carregadores de navio ao mesmo tempo e, portanto podem operar com o dobro da capacidade que um píer com apenas um carregador de navio. O uso desse píer se torna interessante, por exemplo, quando se tem um navio com grande quantidade de carga a transportar. • Os navios devem ser atendidos, por força contratual, na ordem em que chegam no porto e respeitando a capacidade de cada píer. Portanto, navios muito grandes, que atracam somente no píer 2, têm preferência sobre navios menores (que podem atracar no píer 1 sul ou no píer 1 norte) para atracar neste píer (mesmo que estes navios menores tenham chegado antes). Do mesmo modo, navios de porte médio, que podem atracar no píer PUC-Rio - Certificação Digital Nº 0116630/CA 1 norte ou no píer 2, têm preferência sobre navios menores (que podem atracar no píer 1 sul) para atracar neste píer e no píer 2. Finalmente, os navios que podem atracar em qualquer píer devem sempre atracar na ordem em que chegam (salvo se houver um navio maior que atenda os requisitos descritos acima). Finalmente, é função também dos planejadores reservar áreas de estocagem de minério nos pátios do porto. Como o espaço é limitado este planejamento deve ser feito de forma cautelosa para evitar que trens carregando minério fiquem parados aguardando a liberação de alguma dessas áreas. Todas as decisões feitas pelos planejadores são tomadas em conjunto com a equipe responsável pela manutenção dos equipamentos. Esta equipe tenta negociar com os planejadores períodos de parada dos equipamentos para manutenção preventiva enquanto os planejadores, por sua vez, tentam encontrar soluções para poder manter o porto operando sem o equipamento durante o período de manutenção. Com a chegada do minério no porto através dos trens, entram em ação os operadores, responsáveis pelo controle das operações no porto. A primeira tarefa dos operadores consiste em selecionar qual virador de vagões será responsável por descarregar os lotes (lotes são conjuntos de 80 vagões e cada trem é em geral composto de 2 lotes) que chegam no porto. Esta escolha é feita baseada nas rotas 24 disponíveis (compostas pelas correias transportadoras ligadas as empilhadeiras de minério) e nas áreas nas quais se deseja empilhar o minério. Em alguns casos, pode ser interessante dividir o lote em dois e descarregar cada metade, simultaneamente, em dois viradores diferentes. Em outros casos isso pode não ser interessante ou ainda ser inviável devido as características do minério. Em muitas situações o trem traz dois lotes de minério que devem ser misturados durante a descarga (blending) e portanto virados simultaneamente para juntá-los numa parte mais a frente da rota. Os operadores também são responsáveis por selecionar quais empilhadeiras serão usadas para despejar o minério nas pilhas. Estas escolhas também não podem ser arbitrárias já que as empilhadeiras operam somente em determinadas áreas do porto. Outra tarefa de responsabilidade dos operadores é o embarque do minério PUC-Rio - Certificação Digital Nº 0116630/CA no navio. Os operadores precisam verificar as condições de entrada do navio no píer: se a maré está adequada para entrada ou saída do navio no píer, se o calado aéreo está adequado (caso não esteja, o navio precisa passar por uma operação de lastro na qual seus porões são preenchidos com água para diminuir a altura do mesmo de modo que ele consiga passar pela lança do carregador). O operador também deve seguir o plano de carga do navio: o plano de carga é passado do comandante do navio para o operador e contém informações sobre qual a quantidade de minério deve ser jogada em cada porão e em qual ordem, de modo a evitar danos ao casco do navio. Além da grande dificuldade em se operar estes equipamentos de modo a evitar que ocorram bloqueios, ou seja, que duas tarefas que poderiam ser executadas simultaneamente tenham que ser executadas individualmente devido a escolha incorreta das rotas, os operadores ainda devem levar em consideração a taxa de operação de cada equipamento. Cada equipamento tem uma velocidade de operação diferente e acoplar equipamentos mais rápidos em outros mais lentos faz com que se tenha que reduzir a velocidade de operação deste e, como resultado, tenha-se uma sub-utilização do recurso. Finalmente, os operadores são responsáveis por tomar as devidas medidas de contingência em caso de problemas de operação. Em geral, estes problemas ocorrem devido a quebra de equipamentos durante a operação. Dependendo do tempo estimado para o conserto do equipamento, os operadores podem decidir 25 entre aguardar ou proceder, caso seja possível, com um plano alternativo de operação. Tanto os operadores como os planejadores trabalham desta forma almejando alguns objetivos comuns (e muitas vezes conflitantes). Dentre eles, PUC-Rio - Certificação Digital Nº 0116630/CA pode-se destacar: • Minimizar a multa por sobrestadia do navio no porto; • Minimizar o tempo de espera dos vagões na descarga; • Minimizar a quantidade de minério estocada no porto; • Minimizar a necessidade de recircular o minério entre áreas; • Minimizar a quantidade de pilhas de estocagem de minérios; • Maximizar o uso de simultâneo de recursos. Pode-se notar pela descrição dada acima que existe uma necessidade de se planejar as tarefas numa determinada seqüência de modo a se ter as informações necessárias para se planejar a tarefa subseqüente. Esta seqüência é mostrada através do diagrama a seguir: 26 Atracação Abertura de Pilhas Planejamento de Lotes Descarga de Lotes PUC-Rio - Certificação Digital Nº 0116630/CA Embarque Desatracação Figura 2 – Seqüência de Planejamento Ou seja, só é possível planejar a abertura de pilhas após se ter planejado a atracação do navio (pois é necessário saber qual píer o navio está atracado para se saber quais áreas têm rotas que podem atender aquele píer). Por sua vez, o planejamento da produção dos lotes depende da informação de quando a pilha tem que estar pronta e portanto tem que ser feito depois de planejar as aberturas. A descarga dos lotes só pode ser feita depois que se souber o planejamento da produção dos mesmos. O embarque só pode ser realizado depois que se souber quando os lotes terão sido descarregados e o minério portanto estará disponível. E finalmente, a desatracação só pode ser feita depois que se souber quando o embarque terá sido concluído. Além disso, atracações em cada um dos píeres dependem das desatracações dos navios que chegaram antes, já que a fila dos navios (que representa a ordem na qual os navios chegaram no porto) deve ser respeitada. 27 2.3 Modelagem de Soluções por Algoritmos Genéticos Recentemente várias pesquisas na área de planejamento com o uso de computação evolucionária (com destaque principalmente para os algoritmos genéticos convencionais) foram desenvolvidas. Com relação a modelos usando algoritmos genéticos convencionais, podemos usar representações diretas ou indiretas (Bagchi et al, 1991). Além disso, as representações indiretas podem ser classificadas de maneira distinta como independente do domínio e específica ao problema. Abaixo essas formas de representação são descritas detalhadamente (Bäck et al, 1997): • Representação indireta independente do domínio – a maioria dos PUC-Rio - Certificação Digital Nº 0116630/CA algoritmos trabalha com esta representação ou seja, com uma população de indivíduos onde cada um deles codifica uma possível solução. Como a representação não identifica diretamente a solução (um planejamento), fazse necessário construir um decodificador que faça o elo entre o indivíduo e o planejamento que ele representa. É responsabilidade deste decodificador garantir que o planejamento gerado seja válido. Como não existe nenhuma informação auxiliar relacionada a características específicas do problema de planejamento, o algoritmo genético faz uma reprodução cega das soluções codificadas utilizando operadores genéticos convencionais. Alguns exemplos deste tipo de representação são: 1. Representação Binária – neste modelo, a solução é representada por uma cadeia de bits e o algoritmo genético utiliza-se de operadores genéticos convencionais como, por exemplo, o crossover de um ponto. As diferenças nesta abordagem são encontradas em relação ao significado de cada bit. Pode-se utilizálos, por exemplo, para representar a hora de término de cada tarefa sendo que cada horário é representado por um inteiro binário (Cleveland & Smith,1989). 2. Representação de Seqüência de Tarefas – neste caso, a lista de todas as tarefas que devem ser planejadas são representadas como um indivíduo. A ordenação da lista representa de algum modo (em 28 geral através de uma lista de prioridades) a ordem na qual as tarefas devem ser colocadas no planejamento. Deste modo, o problema passa a ser semelhante a um problema de seqüenciamento como, por exemplo, o problema do caixeiroviajante (Travelling Salesman Problem – TSP). O algoritmo genético, portanto se encarrega de gerar novas permutações desta lista de tarefas. Várias abordagens se utilizaram desta representação (na maioria dos casos para problemas do tipo flow shop) (Biegel & Davern, 1990)(Bierwirth, 1993)(Bruns, 1992)(Cleveland & Smith, 1989)(Lawton, 1992)(Syswerda, 1991). Vários operadores foram também desenvolvidos sendo que os decodificadores variavam dos mais simples a sistemas baseados em conhecimento. PUC-Rio - Certificação Digital Nº 0116630/CA 3. Representação por Chave Aleatória – o planejamento é codificado através do uso de números aleatórios. Estes valores são usados como chaves de ordenação para decodificar a solução. Cada tarefa está associada a uma posição na representação e o planejamento pode ser gerado ordenando-se as chaves aleatórias de modo que as tarefas são seqüenciadas na ordem final das chaves (Bean, 1994). • Representação indireta específica ao problema – neste tipo de representação, algum ou todo o conhecimento sobre o problema investigado é representado nos indivíduos. De modo a trabalhar corretamente sobre a representação expandida, o algoritmo genético precisa de novos operadores genéticos, dependentes do domínio do problema. De qualquer modo, ainda se faz necessário o uso de um decodificador capaz de gerar soluções viáveis a partir dos indivíduos. Um exemplo deste tipo de ordenação é descrito abaixo: 1. Representação por Lista de Preferência – baseado numa representação que especifica uma lista de preferência para cada equipamento. Esta lista contém todas as tarefas a executar mais os elementos “espera” e “não operando”. Ela é interpretada como um indicador de qual tarefa um determinado equipamento irá executar preferencialmente em um determinado momento, ou se este 29 equipamento deverá permanecer em espera ou parado. O operador de crossover troca listas de preferências entre diversos indivíduos e o operador de mutação reordena o conteúdo da lista de preferência (Davis, 1985). • Representação direta – neste tipo de representação, o próprio planejamento como um todo é usado como um indivíduo. Este planejamento deve ser viável e toda informação relevante para descrever de forma única um planejamento em particular, deve estar incluída na representação. O decodificador não se faz mais necessário neste tipo de representação e o algoritmo genético é o único método que realiza a busca já que, a informação no indivíduo engloba todo o espaço de busca pesquisado e operadores genéticos particulares ao problema são necessários. Um exemplo deste tipo de representação é descrito abaixo: PUC-Rio - Certificação Digital Nº 0116630/CA 1. Representação por Lista de Tarefas-Máquinas-Início – nesta representação um planejamento é representado por uma lista de tarefas onde para cada tarefa é designada uma máquina e um instante de início de execução. Os operadores genéticos selecionam diversos instantes iniciais de execução para gerar os filhos, ajustando estes tempos conforme a necessidade de modo a produzir sempre planejamentos válidos (Kanet & Sridharan, 1991). No próximo capítulo é apresentado um breve resumo sobre Algoritmos Genéticos, enfatizando a sua aplicação em problemas como o do caixeiro viajante, que admitem solução por representação de cromossoma baseada em ordem, muito empregada em problemas de planejamento de um modo geral, e também utilizada nesta pesquisa.