http://dx.doi.org/10.1590/S0101-74382005000200005
Marco César Goldbarg*; Elizabeth Ferreira Gouvêa Goldbarg; Francisco Dantas de Medeiros Neto
Depto. de Informática e Matemática Aplicada (DIMAp); Universidade Federal do Rio Grande do Norte (UFRN); Natal – RN; gold@dimap.ufrn.br, beth@dimap.ufrn.br, fdantas@dimap.ufrn.br
Esse trabalho apresenta um caso especial do problema geral da determinação de uma configuração para um sistema de co-geração de energia que utiliza o gás natural como fonte energética. O problema visa determinar a configuração de custo mínimo de um sistema de co-geração. É um problema computacionalmente difícil devido a restrições técnicas, operacionais e econômicas. Para solucioná-lo, são apresentados e comparados algoritmos evolucionários desenvolvidos de acordo com as metáforas dos Algoritmos Genéticos, Algoritmos Meméticos e da Transgenética Computacional. Os algoritmos são aplicados a um conjunto de trinta e cinco instâncias geradas de acordo com cinco diferentes ciclos de co-geração. Os experimentos computacionais relatados nesse trabalho indicam uma dominância de melhores resultados da metáfora transgenética.
Palavras-chave: sistema de co-geração; gás natural; algoritmo evolucionário.
This work presents a special case of the general problem of determining the configuration of cogeneration systems in which the primary source of energy is natural gas. The objective is to determine the configuration with the minimum cost. Technical, operational and economic features impose constraints to the problem making it computationally hard to solve. Evolutionary algorithms based upon genetic, memetic and transgenetic algorithms are presented to solve the problem. A computational experiment with thirty-five instances generated in accordance with five distinct cogeneration cycles is reported. The results show that the transgenetic algorithm exhibits an overall best performance.
Keywords: cogeneration system; natural gas; evolutionary algorithm.
Co-geração de energia é a produção seqüencial de duas ou mais formas de energia a partir de uma única fonte combustível, como por exemplo, gás natural. Os dois tipos de energia mais comumente gerados por um sistema de co-geração são a elétrica (ou mecânica) e a energia térmica. Em geral, a energia mecânica é utilizada para acionar um gerador de eletricidade, podendo também ser utilizada em compressores e bombas. No que se refere à energia térmica, ela pode ser utilizada para aquecimento ou refrigeração. Em geral, sistemas de geração de energia elétrica rejeitam uma grande quantidade de calor que é jogado na atmosfera. Uma boa parte desse rejeito pode ser recuperada e usada com fins térmicos. Dessa forma, sistemas de co-geração, em geral, alcançam uma eficiência muito superior aos sistemas que geram separadamente energia elétrica e térmica. Os valores de eficiência obtidos em sistemas de co-geração variam entre 80 e 90%, enquanto que os valores de eficiência dos sistemas onde as energias são geradas separadamente ficam na faixa de 30 a 50% (Educogen, 2001).
Os primeiros sistemas de co-geração nos Estados Unidos e na Europa surgiram no final do século dezenove. No início do século vinte, era comum que consumidores de energia elétrica de médio e grande porte tivessem suas próprias centrais de geração de energia. Com o passar dos anos e o surgimento de grandes centrais elétricas que forneciam energia de forma abundante e a custos baixos, os sistemas de co-geração foram sendo cada vez menos utilizados, chegando a representar somente 3% no início da década de 70 nos Estados Unidos (Orlando, 1997). Essa situação se reverteu em conseqüência da crise do petróleo quando diversos países implementaram políticas de incentivo que visavam reduzir o consumo e a dependência de produtos derivados do petróleo. Desde o surgimento dos primeiros sistemas de co-geração até os dias atuais o projeto desses sistemas foi modificado significativamente como resultado de novos requisitos tais como a interconexão com as redes de fornecimento de energia elétrica. A energia elétrica gerada pode ser utilizada in loco ou exportada. A energia térmica pode gerar calor, frio ou ambos. Os sistemas de co-geração podem ter qualquer tamanho. O único requisito de todo sistema deste tipo é que ele seja economicamente viável usando um critério que deve ser estabelecido pelo investidor.
Dentre as fontes de energia primária para os sistemas de co-geração, o gás natural tem se mostrado um combustível bastante atrativo uma vez que ele se caracteriza por uma queima eficiente e limpa. Na atualidade os seguintes fatores apontam para o crescimento dos sistemas de co-geração com base no gás natural: melhor aproveitamento da capacidade de geração de energia no usuário, independência da rede elétrica e segurança no fornecimento, maior eficiência na geração de energia, redução de gastos de transporte e distribuição, e aproveitamento de um combustível pouco poluente e melhor adequação entre a oferta e demanda por energia.
A tecnologia necessária à definição dos componentes de um sistema de co-geração é complexa e ainda bastante dependente da experiência de seu projetista. Ajustes técnicos, exigências de demanda, confiabilidade, disponibilidade e inúmeras possibilidades de composição da configuração tornam o problema extremamente complexo. Várias metodologias sistematizam o processo de projeto e operação desses sistemas, em geral, levando em conta pelo menos dois pontos de vista: especificações de projeto / configuração e operação (Educogen, 2001). Tradicionalmente os métodos de otimização abordam independentemente cada uma das duas ênfases. Um estudo sobre métodos de otimização de sistemas de geração de energia é apresentado no trabalho de Frangopoulos (2003).
Considerando o ponto de vista da configuração e operação, recentemente um subproblema de otimização associado ao projeto de novos sistemas vem ganhando importância, o problema da determinação de sistemas de custo mínimo sujeito à restrições de demanda e de especificações de projeto. O presente trabalho aborda um caso do problema de sistemas de co-geração de mínimo custo ainda não relatado na literatura. O objetivo da pesquisa é modelar e apresentar métodos de solução para o problema descrito e denominado Problema da Determinação da Configuração de Custo Mínimo de Sistemas de Co-geração de Energia com base em Gás Natural (PCCM).
Nesse trabalho são apresentados algoritmos evolucionários para a solução dos modelos formulados, sendo as abordagens de desenvolvimento através de algoritmos genéticos, algoritmos meméticos e algoritmos transgenéticos. A seção 2 descreve o problema geral de co-geração e apresenta dois modelos de programação matemática para representar os subproblemas particulares que serão propostos e solucionados no presente trabalho. As seções 3 e 4 apresentam os conceitos fundamentais para a compreensão dos algoritmos propostos. Na seção 5 são relatados os experimentos computacionais que comparam a performance dos algoritmos. O experimento mostra que a abordagem transgenética produz, em ambos os modelos sugeridos, melhores resultados que as demais. Na seção 6 são feitas as considerações e conclusões finais.
O problema geral da co-geração visa determinar a melhor tecnologia e o melhor projeto de um sistema para uma dada aplicação, examinando também sua operação ao longo de um horizonte de planejamento. Durante a fase de projeto, um enorme número de fatores deve ser considerado, desde a arquitetura do sistema até as especificações detalhadas dos principais equipamentos empregados. Para contornar a dificuldade imposta pelas decisões acopladas, sugere-se que o projeto de sistemas de co-geração seja realizado em etapas. A definição dessas fases tem sido objeto de estudo de diversos pesquisadores. É bastante aceita a metodologia de estabelecer dois pontos de vistas para o projeto: especificações de projeto / configuração e operação (Educogen, 2001). Assim a etapa de especificações detalha as exigências a serem atendidas pelo sistema, bem como as características dos equipamentos a serem utilizados. Capacidade nominal, eficiência, níveis de emissão, barulho e vibração são alguns dos pontos a serem considerados. A etapa de configuração / operação visa estabelecer a arquitetura do sistema e examinar as condições de trabalho que otimizarão o desempenho do sistema. Sob a ótica da operação Cerri et al. (2000) investigam a otimização de carga entre os diversos componentes de uma planta de co-geração segundo fatores econômicos e ambientais. Manolas et al. (1997) apresentam um algoritmo genético combinado com um simulador para resolver o problema da otimização da operação de um sistema de co-geração sob o ponto de vista da minimização do custo de geração de energia. Outros trabalhos que investigam modelos e algoritmos para a otimização da operação de sistemas de co-geração são apresentados por Yokoyama et al. (1994), Assenmacher et al. (1997), Zhao et al. (1998) e Dotzauer (2001).
No caso do ponto de vista das especificações de projeto / configuração a literatura não é tão extensa, destacando-se alguns trabalhos como os de Horii et al. (1987) e de Nishi et al. (1996). No desenvolvimento de modelos que integrem os dois pontos de vista a literatura apresenta poucos relatos, ressaltando-se o trabalho de Frangopoulos (1991). Frangopoulos & Dimopoulos (2001) investigam fatores como a confiabilidade de operação de cada parte e a disponibilidade dos equipamentos mostrando que tais fatores não devem ser desconsiderados durante o projeto geral de um sistema de co-geração. Eles abordam o problema da confiabilidade e disponibilidade dos equipamentos através da inclusão de equipamentos redundantes na solução ótima para que falhas no sistema sejam evitadas. Em seu trabalho eles demonstram que a estimativa de lucro ao longo do tempo devido à utilização do sistema projetado é superestimada quando aspectos concernentes à confiabilidade são desconsiderados na fase de projeto.
Sob o ponto de vista do estudo da configuração ótima de um sistema de co-geração com base em gás natural a literatura é reticente. Para orientar o projetista o estado da arte sugere "padrões" de composição de equipamentos – denominados ciclos de co-geração – conforme o objetivo do sistema de co-geração. A escolha dos equipamentos se dá orientada pela composição sugerida pelo ciclo e pelas especificações dos equipamentos.
O Centro de Tecnologia do Gás (CTGAS) emprega no Brasil principalmente cinco ciclos na co-geração de energia com base em gás natural: Combinado, Combinado e Vapor de Processo, Compressão e Eletricidade, Secagem, e Produção de Frio/Absorção. Atualmente alguns dos equipamentos mais utilizados nesses sistemas são: motores, turbinas a gás e a vapor, chillers, geradores, compressores e recuperadores de calor. A Tabela 1 mostra a composição mínima de equipamentos necessária para cada um dos ciclos citados. São citadas as seguintes classes de equipamentos: gerador (GE), recuperador de calor (RE), turbina a vapor (TV), turbina a gás (TG), compressor (CP), motor (MT) e chiller (CH). Os ciclos propostos representam soluções tecnicamente comprovadas na prática do projeto de sistemas de co-geração.
A Figura 1 ilustra um esquema geral de distribuição dos equipamentos para o ciclo de co-geração compressão e eletricidade. No ciclo Cp o combustível primário, no caso o gás natural, aciona uma turbina a gás. A turbina aciona um compressor e seus gases de exaustão são direcionados para um recuperador de calor. O vapor gerado no recuperador é aplicado em turbina a vapor com a finalidade de acionar um compressor adicional e um gerador de energia elétrica.
Os sistemas de co-geração seguem, em princípio, a arquitetura sugerida pelos ciclos de co-geração, podendo variar o tipo e a quantidade de seus componentes, conforme as exigências expressas pelas especificações. A Figura 2 exibe um sistema de co-geração baseado no ciclo Compressão e Eletricidade. O sistema exibido utiliza cinco chillers para implementar a posição do Recuperador de Calor, e duas turbinas de vapor com seus respectivos geradores para solucionar a ligação TV-CP do ciclo associado.
Além das imposições de projeto, a disponibilidade comercial dos equipamentos é fundamental para definir quantos e quais equipamentos serão utilizados no sistema. A disponibilidade de mercado também pode gerar incompatibilidades entre equipamentos e exigir a presença de implementos para tornar possível, na prática, a viabilização de certas composições de equipamentos. A associação entre motores e turbinas, por exemplo, exige o atendimento de várias exigências. Por outro lado é comum que os chillers exijam componentes adicionais não constantes dos esquemas gerais propostos na metodologia dos ciclos. Como um exemplo das peculiaridades anteriormente citadas seja o processo de projeto de um sistema de co-geração com 42.000 BTUs e 10MW de energia elétrica para o Ciclo Frio/Absorção. Uma configuração que atenda as condições de demanda citadas deve ser constituída, em princípio, com pelo menos um motor, um gerador e um chiller, ou seja, três classes de equipamentos. No entanto, por razões de segurança o sistema de co-geração associado ao Ciclo Frio/Absorção que deverá atender a demanda anteriormente citada poderá ser constituído, por exemplo, com dois tipos diferentes de motores e chillers.
Na medida em que a tecnologia do gás natural avança, novos equipamentos são ofertados pelo mercado, ampliando-se cada vez mais as possibilidades de escolha para a constituição dos sistemas de co-geração. Além disso, os altos investimentos necessários para a constituição desses sistemas sugerem que sejam implementados em etapas. Claramente as etapas devem ser integradas em um mesmo planejamento, representando um aumento de opções para o tomador de decisão – um aumento significativo na complexidade do problema de determinação da configuração de mínimo custo. Adicionalmente, o fato de certos equipamentos exigirem implementos para que possam operar em determinados sistemas redunda, em termos de modelagem, na constituição de novos itens – os equipamentos com o implemento – que vão se somar aos equipamentos comerciais padrão.
O presente trabalho aborda o caso específico da determinação de configurações de custo mínimo para o projeto de novos sistemas de co-geração. Seja m o número de classes distintas de equipamentos que compõem um sistema de co-geração e Tj o número de diferentes itens disponíveis que compõem a classe j, j=1,..., m. O problema de configuração de custo mínimo em um sistema de co-geração pode ser formulado como em PCCM1:
onde xij é o número de unidades i pertencentes a classe j, Wj denota a potência mínima requerida dos componentes da classe j, wij é potência do componente i da classe j, cij é o custo de uma unidade do componente i da classe j e Oj é o número máximo de componentes da classe j.
As restrições (2) asseguram que os equipamentos que compõem o sistema de co-geração fornecem a potência requerida. As restrições do tipo (3) fixam o número de equipamentos para cada classe de acordo com o previsto pela configuração de co-geração adotada no projeto e decorrentes de considerações associadas ao layout da planta, confiabilidade e segurança, meio ambiente, condições de operação, etc.
As equações (1), (2) e (4) de PCCM1 compõem um dos modelos associados ao Problema de Orçamento (Ram et al., 1988), conhecido problema NP-Árduo. A restrição (3) representa uma restrição de cardinalidade adicional ao modelo citado. Uma solução via computação evolucionária para problemas da classe de PCCM1 é sugerida por Fujita et al. (1996), que consideram custos fixos e custos operacionais dos equipamentos dentro de um certo horizonte de tempo.
Tendo em vista que, em certas ocasiões, o projeto pode fixar previamente o número de equipamentos em cada classe, também será examinado o modelo denominado (PCCM2) onde a restrição (3) é substituída pela restrição (5).
3. Os Algoritmos Genético e Memético
A Computação Evolucionária é uma abordagem que se inspira em mecanismos evolucionários naturais para desenvolver algoritmos computacionais. Os algoritmos desenvolvidos segundo essa abordagem utilizam um reservatório de informações codificado em um formato que imita a informação genética (cromossomos) e opera segundo uma lógica que permite que tais unidades troquem informação entre si (Yao, 1996). Os Algoritmos Genéticos (Holland, 1975) constituem uma das mais conhecidas classes de algoritmos evolucionários. Os algoritmos genéticos são baseados em uma população de cromossomos, desenvolvendo sua fonte de diversificação através de operadores de cruzamento e mutações aleatórias. No contexto computacional "evolução" é entendida como um método de busca dentro de um espaço de soluções viáveis. Os operadores de cruzamento são uma forma de re-combinar informações contidas nos cromossomos dos pais, produzindo filhos que representam novos pontos no espaço de busca. O Quadro I apresenta o pseudo-código do algoritmo genético (AG) que será utilizado na solução dos modelos PCCM.
No algoritmo descrito no Quadro I o procedimento cruzamento(S1, S2) é o responsável pela recombinação dos cromossomos pais. S1 e S2 são cromossomos escolhidos em uma sub-população P'Í P. O procedimento leva à formação de um novo cromossomo, filho. A variável f(Si) guarda o valor da função objetivo da solução representada pelo cromossomo Si. Uma vez que o problema tratado nesse trabalho é de minimização, quanto menor o valor dessa variável, melhor será a adequação de um dado indivíduo. O valor da função objetivo da solução representada pelo cromossomo filho é comparado com o valor da função objetivo das soluções representadas pelos cromossomos pais, através da variável Saux que guarda o cromossomo pai com o pior valor da função objetivo. Dentre os três cromossomos (um filho e dois pais), retornam à população os dois que representam as melhores soluções (com menor valor da função objetivo). O procedimento mutação(Sj) realiza mutações nos cromossomos escolhidos em P, introduzindo variabilidade no processo.
Apesar de se constituírem em uma poderosa ferramenta para a solução de vários problemas computacionais, os algoritmos genéticos falham em alcançar bom desempenho em diversas e importantes situações (Horn & Goldberg, 1995). Para desenvolver algoritmos genéticos com um melhor desempenho foram investigadas estratégias alternativas para criar operadores de cruzamento ou esquemas de mutação (Jaszkiewicz & Kominek, 2003), bem como hibridizar ou estender a metáfora (Whitley, 1995). Em muitos casos os denominados Algoritmos Genéticos Híbridos incorporam procedimentos de busca local como uma parte do processo de evolução da informação genética. Tais procedimentos de busca local têm por objetivo equilibrar o potencial de diversificação expresso pelos operadores de cruzamento e mutação, concentrando a busca em determinadas regiões promissoras do espaço de solução do problema e melhorando o desempenho final do algoritmo. Na computação, Algoritmos Genéticos munidos de estratégias de busca local também foram denominados de Algoritmos Meméticos (Radcliffe & Surry, 1994). O Quadro II apresenta o pseudo-código para os algoritmos meméticos que serão utilizados na solução dos modelos PCCM. As setas no Quadro II mostram que o algoritmo memético AM é formado a partir do algoritmo AG enriquecido por procedimentos de busca local. Os procedimentos de busca local que são ressaltados proporcionam oportunidades de melhoria da adequação dos cromossomos independente do processo de cruzamento e mutação. Alguns autores sugerem que tal fato reproduziria a proposta de Jean-Baptiste Lamarck, caracterizando uma forma de evolução Lamarckiana (Whitley et al., 1994).
O esforço computacional necessário ao desenvolvimento da busca local dos algoritmos meméticos pode ser elevado, de modo que outras pesquisas propõem formas alternativas para guiar a evolução (Nolfi & Floreano, 1999; Hansen & Ostermeier, 2001; Reynolds, 1994).
3.1 Algoritmos genético e memético aplicados ao PCCM
A codificação do cromossomo é feita de acordo com o ciclo de co-geração que será examinado. A Figura 3 mostra um cromossomo que representa uma solução para Ciclo de Frio/Absorção onde Oj = 3, j=1,2,3 e Ti = 10, i=1,2,3.
Os alelos são os índices dos modelos dos tipos de equipamentos de cada classe. O valor zero em um alelo significa que não há equipamento alocado na posição. No caso da solução apresentada na Figura 3, o sistema é composto por dois motores (tipos 1 e 2), dois geradores (tipos 7 e 9) e três chillers (tipo 3, 7 e 4). A adequação do cromossomo é medida pelo custo total de cada configuração.
Na implementação dos algoritmos foram testados dois métodos clássicos de seleção: o torneio binário estocástico, onde a probabilidade de escolha dos cromossomos era proporcional à sua adequação, e a técnica da roleta, além de uma estratégia heurística.
O torneio binário é um caso específico do método de seleção por torneio estudado em diversos trabalhos (Goldberg et al., 1990; Mühlenbein, 1989). No torneio determinístico, a idéia é escolher aleatoriamente um certo número de indivíduos de uma população e selecionar o melhor deles para futuro processamento, como por exemplo, genitor de uma próxima geração. No torneio binário o tamanho do grupo de indivíduos é 2. No torneio probabilístico, um indivíduo do grupo é selecionado de acordo com uma probabilidade. Nesse trabalho a probabilidade de escolha do indivíduo é proporcional à sua adequação.
O método de seleção por roleta é um caso especifico da seleção por reprodução proporcional (Goldberg & Deb, 1991). No método da roleta a chance de um indivíduo ser escolhido para reprodução é proporcional à sua adequação em comparação com todos os indivíduos da população.
A estratégia heurística de seleção organiza o conjunto de reprodução com uma parte dos cromossomos escolhida entre os melhores da população e outra parte escolhida aleatóriamente na população remanescente. Os resultados obtidos com os algoritmos implementados com a técnica de torneio binário estocástico foram significativamente inferiores aos resultados obtidos com a implementação das demais técnicas. Nesse trabalho, portanto, é relatado apenas o resultado dos experimentos que utilizaram o método da roleta e a estratégia heurística de seleção. Os algoritmos genéticos implementados segundo esses dois procedimentos serão denotados por AG2 e AG3, respectivamente. A escolha dos parâmetros da estratégia de seleção de AG3 são relatados na seção 5.1. Para cada um dos algoritmos genéticos desenvolvidos um processo de evolução Lamarckiana foi associado de forma a constituir os algoritmos meméticos, respectivamente denominados AM2 e AM3.
Para AG3 e AM3 a técnica de seleção e reprodução combina aleatoriamente, dois a dois, os cromossomos da população P' até que todos sejam emparelhados. Cada dupla de pais gera um único filho. O filho gerado substitui, em P, o pai conforme o procedimento descrito nos Quadros I e II. O operador de cruzamento permuta material genético dos pais apenas entre os grupos de genes que correspondem às mesmas classes de equipamentos. O operador examina o custo da configuração dos pais formando um filho que herde os equipamentos de menor custo de ambos, atendida a demanda de potência necessária.
A mutação consiste na escolha aleatória de uma posição no cromossomo e na substituição do componente por algum outro que também atenda aos requisitos de energia.
O procedimento de busca local, chamado nos pontos ressaltados pelas setas no Quadro II, utiliza uma estrutura de vizinhança onde uma solução Si é vizinha de outra Sj se apenas um tipo de equipamento de uma única classe de Si for diferente de Sj . Seja um sistema de Frio/Absorção onde Oj = 1, j=1,2,3 e Ti = 3, i=1,2,3 e as classes de equipamentos Geradores = {a,1,2}, Motores = {b,3,4} e Chillers = {c,5,6}. A Figura 4 ilustra a vizinhança da solução (a,b,c).
Os algoritmos transgenéticos pertencem à classe dos algoritmos evolucionários e baseiam sua metáfora no processo de simbiogênese (Goldbarg & Goldbarg, 2002; Goldbarg et al., 2004). A simbiogênese é uma teoria evolucionária onde indivíduos de naturezas distintas – de diferentes espécies – se unem para formar um novo indivíduo (Morowitz, 1992). A simbiogênese enfatiza mais os efeitos positivos resultantes das inter-relações entre indivíduos do que a sobrevivência e reprodução do mais apto. Pesquisas recentes indicam que os micro-organismos são das maiores forças evolucionárias que atuam sobre a seleção das espécies através de processos simbióticos (Margulis, 1998).
Adaptando os conceitos anteriores ao contexto computacional, os algoritmos transgenéticos trabalham basicamente com populações de indivíduos de naturezas distintas em um processo simbiótico de troca de informações genéticas e não genéticas. A metáfora é desdobrada em três níveis. No primeiro está a população de cromossomos que representa a memória corrente da busca, o conjunto de configurações em exame. O segundo nível é constituído pelos vetores transgenéticos, indivíduos de natureza diferente dos cromossomos e que são utilizados para promover a intensificação e diversificação da busca. O terceiro nível é formado pelas regras que administram o processo de interação entre as populações de vetores e de cromossomos. A abordagem propõe utilizar informações não genéticas obtidas a priori para guiar a ação de seus vetores. Por outro lado, por se tratar de um processo evolucionário, informações obtidas ao longo do processo também são utilizadas. No processo transgenético, todavia, não se permite troca de informações diretamente entre os cromossomos. A abordagem não se propõe somente a agregar informações não genéticas ao reservatório genético, ou a realimentar o processo evolucionário com informações emergentes da população.
São incorporadas ao algoritmo informações obtidas a priori com três finalidades adicionais:
Gerar e realimentar a evolução, na medida em que as regras de administração do processo podem ser alteradas pelo resultado da busca.
Avaliar o fluxo de informação dentro de cada nível e na transição entre os níveis. Os vários estágios de avaliação introduzem a possibilidade de que a informação seja submetida a diversos processos de seleção bem como que a informação incorporada a priori possa ter alguns de seus graus de liberdade ajustados através de parâmetros.
Conduzir a evolução da população, independentemente de um processo reprodutivo sexual (recombinação entre indivíduos) ou de mutações, características indispensáveis da abordagem genética e memética, porque emprega um mecanismo transgenético para efetuar a simbiogênese – evolução induzida.
Os algoritmos transgenéticos podem decompor o processo de seleção em vários níveis, tais como:
Competição entre as regras de administração pela oportunidade de fornecerem informações que se incorporem aos vetores de manipulação.
Competição entre os vetores pela possibilidade de manipularem os cromossomos.
Competição entre as informações contidas nos cromossomos – genes ou conjuntos de genes – com as informações transportadas pelos vetores para preservarem sua continuidade dentro dos genótipos.
O nível associado às regras de administração do modelo transgenético corresponde ao projeto e coordenação de um processo de inter-relações entre populações de indivíduos de diferente natureza – co-evolução (Ehrlich & Raven, 1964). O presente trabalho sugere uma modelagem simplificada das regras de administração da co-evolução entre a população de cromossomos e os vetores transgenéticos, considerando-as expressas através de procedimentos heurísticos.
4.1 Vetores transgenéticos
Um vetor transgenético, l, é uma dupla l = (I, F), onde I é uma cadeia de informação e F é o método de manipulação, F = (p1,…,ps), pj, j=1,…,s, são procedimentos que definem a atuação do vetor. Ao infiltrarem sua cadeia de informação I os vetores transgenéticos provavelmente alterarão o cromossomo e sua adequação. Desse modo S'i é um cromossomo formado a partir de Si pela aplicação do método F de introdução da cadeia I. A Tabela 2 resume os procedimentos que compõem o método de manipulação dos vetores transgenéticos. Em uma analogia à terminologia empregada pela Engenharia Genética, dois tipos de vetores transgenéticos são denominados Vírus e Partícula Genética Móvel. O vetor l é dito um vírus quando p1 é determinado através de uma função probabilística e seu método F incorpora os quatro procedimentos da Tabela 2, onde Si é um cromossomo. Um vetor l é dito partícula genética móvel quando sua cadeia de informação I é traduzida no formato genético e seu método utiliza somente os procedimentos 1 e 2, sendo p1 definido por uma função determinística.
4.2 Regras de administração da evolução – regras transgenéticas
Basicamente são propostas presentemente três tipos de regras de administração da inter-relação entre a população de vetores e a de cromossomos. As do "tipo 1" são responsáveis pela constituição de informações que poderão ser incorporadas aos cromossomos. O modo como essas informações serão incorporadas ao cromossomo são definidas pelas regras do "tipo 2". As regras do tipo 2 são orientações para constituição de operadores de manipulação genética. Se um vetor não é bem sucedido em sua tentativa de manipulação (ataque), diz-se que o cromossomo "resistiu" a manipulação. O critério de resistência à manipulação pode levar em conta a variação de adequação decorrente da manipulação. Além disso, a avaliação do vetor pode considerar o número de manipulações bem sucedidas do vetor. O sucesso do vetor permite avaliar as regras que o constituíram. A ação dos vetores de manipulação sobre a população de cromossomos é estabelecida pelas regras do tipo 3. Essas regras podem se referir ao número de vetores que participarão de cada iteração do algoritmo, aos critérios que definirão quantos cromossomos serão atacados, a seqüência de ataque dos vetores, etc. Denomina-se regra Rij a j-ésima regra do tipo i. O conjunto das regras de administração e os procedimentos inerentes aos vetores constituem um esquema de manipulação.
4.3 Algoritmo ProtoG
O algoritmo transgenético implementado para a solução dos modelos PCCM é mostrado no Quadro III.
A população inicial de cromossomos é formada da mesma forma que em outros algoritmos evolucionários. O procedimento carrega_regras_transgenéticas( ) determina como a população de vetores transgenéticos é constituída, informando o conjunto de regras de administração que serão utilizadas. O procedimento vetor_transgenético( ) recebe como parâmetro r, o número de vetores a serem gerados segundo as regras de administração. Cada um dos r vetores carrega uma informação obtida de alguma regra do tipo 1 e possui um operador definido por uma regra do tipo 2. Os demais procedimentos dos vetores (p1, p3 e p4) já estão definidos no algoritmo, porque são características inerentes ao vetor. Um conjunto com q cromossomos é gerado no procedimento seleção_população ( ). São selecionados q cromossomos da população para serem atacados por todos os vetores de set_l. Os valores de q e r, bem como a estratégia que será utilizada para atacar os q cromossomos com os r vetores são determinados por regras do tipo 3. Algumas regras do tipo 3 orientam a confecção do código do algoritmo e não são informadas através de carrega_regras_transgenéticas( ). O procedimento ataque( ) implementa p1. Caso o procedimento retorne valor "verdadeiro" em alguma iteração, lk completa a manipulação de Si, o i-ésimo cromossomo de set_S. Se o cromossomo Si é considerado como um bom exemplo de evolução, segundo algum critério estabelecido no algoritmo, então a rotina critério_realimentação( ) retorna o valor "verdadeiro". Nesse caso, a rotina incluir_fonte_informação( ) implementa a inclusão da solução representada em Si como uma fonte de informação não genética para ser considerada pelas regras de administração na formação de futuras gerações de vetores transgenéticos. Um exemplo de critério para selecionar um cromossomo para ser incluído como fonte de informação é apresentado no Quadro IV, onde f(·) representa a função de adequação. O critério descrito no Quadro IV considera um cromossomo que representa uma solução melhor que qualquer outra encontrada até um determinado momento um bom exemplo de evolução. O algoritmo continua até que um critério de parada, previamente definido, seja atendido. O critério de parada, a exemplo de outros algoritmos evolucionários, pode ser estabelecido em função de um número máximo de iterações sem melhoria da melhor solução corrente, de um tempo máximo de processamento, etc.
4.4. Algoritmo ProtoG aplicado ao problema PCCM
O algoritmo ProtoG implementado para resolver o problema da configuração mínima de um sistema de co-geração utiliza o vetor partícula genética móvel. As características desse vetor são mostradas na Tabela 3.
As seguintes regras transgenéticas são utilizadas:
R11: Obter uma cadeia de informação I de comprimento l com componentes distintos através da utilização da heurística gulosa descrita no Quadro V.
R12: Obter uma cadeia de informação I com componentes distintos de forma aleatória.
R13: Obter uma cadeia de informação I com componentes distintos, sorteada aleatoriamente de qualquer um dos cromossomos de um conjunto de elite que possui até ën/2û indivíduos, onde n é a cardinalidade das classes de equipamentos.
R21: Para o modelo PCCM1: Seja S um cromossomo, l uma Partícula Genética Móvel com uma cadeia de informação I com comprimento Um procedimento combine(l[k], i, j) é definido onde o componente l[k] é combinado com i equipamentos da classe j em S, i = 1, …, tj, iterativamente verificando se a potência mínima exigida é atendida. O procedimento que implementa p2 é mostrado no Quadro VI.
R21: No modelo PCCM2: São selecionados l itens da mesma classe dos componentes da cadeia de informação do vetor no cromossomo alvo da manipulação. Se a substituição dos l componentes ou apenas de um deles, pelos componentes do vetor melhorar a adequação do cromossomo, atendendo os requisitos mínimos de potência, então o(s) componente(s) é (são) substituído(s) no cromossomo. A Figura 5 mostra os três resultados possíveis dessa manipulação.
R31: As cadeias de informação são geradas com l = 2.
R32: Para cada cadeia de informação gerada por R11 e R13 são geradas duas cadeias através de R12 .
R33: As fontes de informações obtidas pela aplicação de R11 e R13 são equiprováveis na geração de cadeias de informação.
R34: A cada iteração todos os cromossomos são atacados (q = N) por um único vetor (r = 1).
No algoritmo ProtoG implementado a realimentação evolucionária utiliza apenas informações originárias da população de cromossomos. Cada nova solução campeã é introduzida no grupo de elite. Caso a cardinalidade do conjunto de elite ultrapasse o limite definido por R13, ela passa a ser introduzida em substituição à solução de menor adequação do conjunto.
Os testes foram executados em microcomputadores Pentium IV – 1.2 GHz, em ambiente Linux, sendo os algoritmos codificados em C++.
Um dos problemas enfrentados para a realização dos testes computacionais foi o fato de não existir um banco de instâncias constituído para esse problema como existe para problemas clássicos da Otimização Combinatória tais como o Problema do Quadrático de Alocação e o Problema do Caixeiro Viajante. A exemplo de outros problemas relatados na literatura (Taillard, 1993) foi criado um banco de instâncias para a realização do experimento. Foram geradas sete instâncias aleatórias para cada um dos cinco tipos de ciclo de co-geração. Considerou-se diferentes disponibilidades de equipamentos em cada classe. Adotou-se o mesmo número Ti de equipamentos em cada classe. Ti variou entre 100 e 1000. As instâncias consideram Oj = 5, j=1,…,m. O nome das instâncias segue o padrão XY, onde X representa o número de equipamentos em cada classe e Y é o símbolo do ciclo considerado. Os códigos para Y estão descritos na Tabela 1. Assim, as instâncias 100F e 1000F, por exemplo, referem-se a configurações para o ciclo Frio/Absorção, podendo utilizar até cinco componentes escolhidos dentre 100 e 1000 itens diferentes, respectivamente. Com o objetivo de representar casos testes que expressem situações factíveis do problema, as limitações de parâmetros adotadas para a potência dos equipamentos foram: motores – [110,330] HP, chillers – [15000,40000] BTU, geradores – [5,15] MW, turbinas – [105,600] MW, recuperadores de calor – [50,150] MW e compressores [100,350] HP. A potência de um determinado equipamento foi obtida aleatoriamente de acordo com uma distribuição uniforme nos intervalos relatados. Os custos também foram gerados aleatoriamente no intervalo [400,1200] unidades monetárias, de acordo com uma distribuição uniforme.
As populações iniciais em cada rodada dos algoritmos são constituídas por 1000 indivíduos gerados de forma aleatória segundo uma distribuição uniforme. O critério de parada utilizado nos testes foi o tempo máximo de processamento dado por t = 0,18 n Oj. O experimento foi realizado com dez execuções independentes para cada algoritmo.
Esta seção está dividida em três subseções. A subseção 5.1 relata os resultados dos experimentos computacionais realizados para ajustar os parâmetros dos algoritmos implementados. As subseções 5.2 e 5.3 são dedicadas, respectivamente, aos modelos PCCM1 e PCCM2. Inicialmente, o experimento compara os dois algoritmos genéticos e os dois meméticos. O melhor dos quatro algoritmos é comparado ao ProtoG.
5.1 Parâmetros dos algoritmos
Foram realizados testes de ajuste de parâmetros dos algoritmos genéticos e meméticos, com base no modelo PCCM1, utilizando-se as instâncias 100 e 1000, considerando-se todos os ciclos. Foram testadas populações com 1000, 1500 e 2000 cromossomos. Os resultados mostraram grande homogeneidade, de modo que se adotou a população de 1000 indivíduos para minorar o dispêndio em tempo de processamento. Foram realizadas dez execuções independentes de cada algoritmo.
Os parâmetros relativos à taxa de mutação e tamanho da sub-população, P', foram determinados em um experimento onde foram testadas quatro taxas de mutação, sendo elas 1%, 5%, 10% e 15% frente a quatro tamanhos para P', sendo eles 5%, 15%, 25% e 35% de P. Foram testadas todas as combinações desses dois parâmetros, sendo o melhor desempenho alcançado pelos algoritmos com a taxa de mutação de 5% e tamanho de P' igual a 15% de P. Para uma população de 1000 indivíduos, o número de cromossomos selecionados para cruzamento é, portanto, 150.
A estratégia de reprodução adotada no algoritmo AG3 organiza o conjunto de reprodução com 2/3 dos cromossomos escolhidos entre os melhores da população e 1/3 sorteados aleatoriamente na população remanescente. Assim, 100 cromossomos são escolhidos entre os melhores da população e 50 são sorteados entre os 900 restantes. Também foi examinada uma alternativa de seleção dos cromossomos em AG3 com a relação de 3/4 e 1/4 para os melhores cromossomos da população e cromossomos escolhidos de forma aleatória, respectivamente. Essa alternativa, no entanto, apresentou piores resultados que a primeira alternativa e, portanto, foi rejeitada.
Para o cruzamento, dois cromossomos são escolhidos aleatoriamente em P' produzindo um filho. O sorteio dos pais em P' é feito sem reposição. Em cada iteração são produzidos 75 novos cromossomos. Entre os dois pais e o filho gerado retornam à população os dois melhores.
Em ProtoG o valor l da cadeia de informação foi fixado em 2, tamanho mínimo para o funcionamento da heurística descrita em R11. Optou-se por empregar a Partícula Genética Móvel, vetor que não torna a cadeia de informação inviolável, uma vez que os procedimentos de obtenção das cadeias de informação são simples e gulosos. O parâmetro q foi fixado igual a N, tamanho da população (N = 1000), e r = 1. Os parâmetros de ProtoG foram arbitrados sem a realização de testes para ajuste, uma vez que se desejava não dificultar conclusões sobre a generalidade do potencial da abordagem por ele representada. Entretanto, a otimização desses parâmetros pode conduzir a uma melhoria significativa no desempenho do algoritmo ProtoG (Goldbarg et al., 2004).
5.2 Resultados computacionais para o modelo PCCM1
As Tabelas 4 e 5 apresentadas ao final do texto no apêndice mostram uma comparação dos resultados obtidos pelos algoritmos genéticos, AG3 e AG2, e meméticos, AM2 e AM3, respectivamente. As colunas apresentam a identificação da instância, o valor mínimo, médio e máximo da melhor solução obtida nas dez execuções independentes de cada algoritmo, e o desvio padrão. Com a observação das duas tabelas pode-se notar que os algoritmos que utilizam o método da roleta para seleção obtêm resultados melhores que a estratégia heurística adotada em AG3 e AM3. Na comparação entre os dois algoritmos genéticos a diferença média dos valores mínimos para todas as instâncias é aproximadamente 6%, e 2% para os valores médios, em favor do algoritmo AG2. Na comparação dos algoritmos meméticos, observa-se que os resultados mínimos obtidos pelos dois algoritmos são os mesmos, exceto para as instâncias de tamanho 1000 e para as instâncias 600C e 600Cp. No caso das instâncias de tamanho 1000 a diferença média do valor mínimo foi de aproximadamente 3%. Para os valores médios, essa diferença é ainda maior, ficando em torno de 12%. Os resultados apresentados nas Tabelas 4 e 5 são ilustrados nos gráficos das Figuras 6 e 7, respectivamente. As Figuras 6(a) e 7(a) mostram uma comparação entre a performance dos algoritmos para os valores mínimos obtidos nas instâncias do ciclo compressão (Cp) e as Figuras 6(b) e 7(b) exibem a comparação para as instâncias com 1000 equipamentos para todos os ciclos.
A Tabela 6 (apêndice) apresenta os resultados mínimo, médio e máximo da melhor solução obtida em dez execuções independentes do algoritmo ProtoG, e o desvio padrão. Dentre os dois algoritmos genéticos e os dois algoritmos meméticos, a melhor performance em relação à qualidade da solução obtida é apresentada pelo algoritmo AM2. A performance de ProtoG, portanto, é comparada à de AM2. Na Figura 8 dois gráficos mostram a comparação entre o valor da menor solução e da média das soluções encontradas nas dez execuções dos algoritmos AM2 e ProtoG para o ciclo Cp. Verifica-se que o valor mínimo encontrado é igual para as instâncias com número de equipamentos entre 100 e 500 e que para as instâncias com 600 e 1000 equipamentos o algoritmo ProtoG encontra melhores soluções. Os valores percentuais de diferença entre os custos são de 4,4 e 3,1 para as instâncias com 600 e 1000 equipamentos, respectivamente. No caso da solução média essa diferença é mais acentuada chegando a valores de 14% e 12% de diferença para as instâncias com 600 e 1000 equipamentos, em favor de ProtoG. A Figura 9 exibe os mesmos gráficos para as instâncias com 1000 equipamentos dos cinco ciclos analisados. Com a análise dos gráficos da Figura 9, verifica-se que ProtoG apresenta melhor performance em todas as instâncias com 1000 equipamentos, tanto no que se refere à melhor solução obtida quanto a valores médios. As diferenças percentuais chegam a 5,8 para os valores mínimos e 15,2 para o valor médio nas dez execuções dos dois algoritmos.
Medeiros (2004) apresenta um algoritmo exato baseado na técnica de branch-and-bound para resolver o PCCM1. Aplicando esse algoritmo às instâncias do experimento, verifica-se que ProtoG encontra o valor ótimo para todas as instâncias de PCCM1. Analisando-se o número de vezes em que cada algoritmo encontrou o valor da solução ótima, a Tabela 7 mostra que o ProtoG supera AM2 em vinte e cinco instâncias, AM2 supera ProtoG em uma instância e os algoritmos empatam em quatorze instâncias.
5.3 Resultados computacionais para o modelo PCCM2
As Tabelas 8 e 9 apresentam uma comparação dos resultados obtidos pelos algoritmos genéticos, AG3 e AG2, e pelos algoritmos meméticos, AM3 e AM2, para as instâncias PCCM2. A Tabela 10 mostra os resultados de ProtoG. As Tabelas 8 e 9 mostram que, mais uma vez, o algoritmo AM2 apresenta a melhor performance dentre os algoritmos meméticos e genéticos implementados no experimento. Com a observação e a análise das Tabelas 8, 9 e 10, pode-se concluir que ProtoG obtém um resultado superior aos demais no que diz respeito à qualidade de solução encontrada.
A Figura 10 ilustra o comportamento dos três algoritmos para as instâncias do ciclo Cp. Na Figura 10 o valor dos custos foi divido por 1000 de forma a se obter uma melhor visualização do gráfico. Pode-se observar que os resultados obtidos por AG2 são sempre inferiores aos resultados dos outros dois algoritmos. Na comparação de AM2 e ProtoG, verifica-se que para instâncias com até 500 equipamentos, os dois algoritmos encontram as mesmas soluções mínimas. Para as instâncias com 600 e 1000 equipamentos ProtoG encontra soluções mínimas 0,5% e 8% melhores que as encontradas pelo memético. No caso das soluções médias ProtoG exibe sempre uma melhor performance encontrando soluções em média 9% melhores que as obtidas por AM2.
Observa-se que o desempenho qualitativo dos algoritmos meméticos suplanta, de uma forma geral, a performance dos algoritmos genéticos que lhes serviram de base. Tal resultado valida a estratégia de busca local empregada nos algoritmos meméticos, aspecto fundamental na abordagem memética. Contudo na medida do crescimento do porte da instância também se verifica uma degradação da diferença de desempenho entre o genético e o memético associado, provavelmente decorrente do esforço crescente demandado pelos procedimentos de busca local. O fato é notado, principalmente, na redução da diferença entre as soluções médias. Por exemplo, na instância 600S do modelo PCCM1 verifica-se que o algoritmo genético AG2 obtém uma melhor solução média que o memético AM2.
Os algoritmos ProtoG obtiveram um desempenho superior ao dos demais algoritmos do experimento em todo o espectro das instâncias, inclusive considerando-se o fato de que os algoritmos evolucionários foram objeto de procedimentos de otimização de parâmetros enquanto a estratégia empregada nos transgenéticos poderia ser classificada como ingênua, pouco explorando o potencial de especialização no problema que a referida abordagem disponibiliza.
Trabalhos futuros devem levar em consideração um estudo de otimização dos parâmetros de ProtoG. Dentre as várias possibilidades destaca-se o uso de cadeias de informação com comprimento variável, ataques empregando vírus ou composição de vírus e partículas genéticas móveis, bem como estratégias combinadas que permitam múltiplos vetores manipularem conjuntos específicos de cromossomos. Pode-se ainda examinar o uso da informação decorrente do sucesso ou fracasso dos vetores transgenéticos para a seleção das regras de administração do processo de manipulação como informações obtidas a posteriori, bem como novas estratégias de obtenção e infiltração de informações coletadas a priori.
Este projeto foi financiado pelo CNPq e contou com o apoio técnico do Centro de Tecnologia do Gás (CTGAS).
(1) Assenmacher, P.; Berning, G. & Toelle, F.J. (1997). TEO Program System for Optimizing the Daily Operation of Power Plants. Computers and Chemical Engineering, 21, 95-100. [ Links ]
(2) Cerri, G.; Evans, R.; Frangopoulos, C.A.; Parrela, M.; Pitt, R.U.; Psychogios, J.; Salvator, S.; Sepielli, M. & Seyedan, B. (2000). Optimum Management System with Environmental Monitoring. Paper 2000-GT-310, International Gas Turbine & Aeroengine Congress & Exhibition, ASME, Munich, Germany. [ Links ]
(3) Dotzauer, E. (2001). Energy System Operation by Lagrangian Relaxation. Ph.D. Thesis, Department of Mathematics, Linkäoping University, Sweden. [ Links ]
(4) EDUCOGEN. (2001). The European Educational Tool on Cogeneration, 138. http://www.cogen.org/projects/educogen.htm. [ Links ]
(5) Ehrlich, P.R. & Raven, P.H. (1964). Butterflies and Plants: A Study in Coevolution. Evolution, 18, 586-608. [ Links ]
(6) Frangopoulos, C.A. (1991). Optimization of Synthesis-Design-Operation of a Cogeneration System by the Intelligent Functional Approach. International Journal of Energy Environment Economics, 1(4), 275-287. [ Links ]
(7) Frangopoulos, C.A. (2003). Methods of Energy Systems Optimization, OPTI_ENERGY Summer School: Optimization of Energy Systems and Processes, Gwice, Poland, 24-27, Junho. [ Links ]
(8) Frangopoulos, C.A. & Dimopoulos, G.G. (2001). Effects of Reliability Considerations on the Optimal Synthesis, Design and Operation of a Cogeneration System. ECOS'01 First International Conference on Applied Thermodynamics, Istambul. [ Links ]
(9) Fujita, K.; Akagi, S.; Yoshida, K. & Hirokawa, N. (1996). Genetic Algorithm Based Optimal Planning Method of Energy Plant Configurations. Paper Number DETC-96/DAC-1464, Proceedings of the 1996 ASME Design Engineering Technical Conferences, Irvine, California, U.S.A. [ Links ]
(11) Goldbarg, E.F.G.; Goldbarg, M.C. & Costa, W.E. (2004). A Transgenetic Algorithm for the Permutation Flow-shop Sequencing Problem. WSEAS Transactions on Systems, 1(3), 40-45. [ Links ]
(12) Goldberg, D. & Deb, K. (1991). A Comparative Analysis of Selection Schemes Used in Genetic Algorithms. In: Foundations of Genetic Algorithms [edited by G. Rawlins], Morgan-Kaufmann, 69-93. [ Links ]
(13) Goldberg, D.E.; Korb, B. & Deb, K. (1990). Messy Genetic Algorithms: Motivation, Analysis, and First Results. Complex Systems, 3, 493-530. [ Links ]
(14) Hansen, N. & Ostermeier, A. (2001). Completely Derandomized Self-adaptation in Evolution Strategies. Evolutionary Computation, 9(2), 159-195. [ Links ]
(15) Horii, S.; Ito, K. & Suziki, Y. (1987). A Computer-Aided Planning (CAP) System for the Gas Engine Cogeneration Plant. International Journal of Energy Research, 11, 491-505. [ Links ]
(16) Horn, J. & Goldberg, D.E. (1995). Genetic Algorithm Difficulty and Modality of Fitness Landscapes. In: Foundations of Genetic Algorithms [edited by L.D. Whitley], 3, Morgan Kaufmann, San Mateo, CA. [ Links ]
(17) Jaszkiewicz, A. & Kominek, P. (2003). Genetic Local Search with Distance Preserving Recombination Operator for a Vehicle Routing Problem. European Journal of Operational Research, 151, 352–364. [ Links ]
(18) Manolas, D.A.; Frangopoulos, C.A.; Gialamas, T.P. & Tsahalis, D.T. (1997). Operation Optimization of an Industrial Cogeneration System by a Genetic Algorithm. Energy Conversion & Management, 38(15-17), 1625-1636. [ Links ]
(19) Margulis, L. (1998). Symbiotic Planet. Basic Books, Nova York. [ Links ]
(20) Mayley, G. (1997). Guiding or Hiding: Explorations into the Effects of Learning on the Rate of Evolution. School of Cognitive and Computing Science, University of Sussex, Brighton, England. [ Links ]
(21) Morowitz, H.J. (1992). Beginning of Cellular Life. New Haven, Conn, Yale University Press. [ Links ]
(22) Muhlenbein, H. (1989). Parallel Genetic Algorithms, Population Genetics and Combinatorial Optimization. Proceedings of the Third International Conference on Genetic Algorithms, 416-421. [ Links ]
(23) Nishi, Y.; Mishima, T.; Shibata, N. & Nakazawa, K. (1996). Object-Oriented Framework Based Development of Optimal Energy Supply Planning System. Annual Meeting Papers of Information Processing Society of Japan, 109-110. [ Links ]
(24) Nolfi, S. & Floreano, D. (1999). Learning and Evolution. Autonomous Robots, 7(1), 89-113. [ Links ]
(25) Orlando, J.A. (1997). Cogeneration Design Guide. ASHRAE, New York. [ Links ]
(26) Radcliffe, N.J. & Surry, P.D. (1994). Formal Memetic Algorithms. Lecture Notes in Computer Science, 865, 1-16. [ Links ]
(27) Ram, B.; Karwan, M.H. & Babu, A.J.G. (1988). Aggregation of Constraints in Integer Programming. European Journal of Operation Research, 36, 216-227. [ Links ]
(28) Reidys, C.M. & Stadler, P.F. (2001). Neutrality in Fitness Landscapes. Applied Mathematics and Computation, 117, 321-350. [ Links ]
(29) Reynolds, R.G. (1994). An Introduction to Cultural Algorithms. In: Proceedings of the Third Annual Conference on Evolutionary Programming [edited by A.V. Sebald and L.J. Fogel], World Scientific, River Edge, New Jersey, 131-139. [ Links ]
(30) Smalla, K.; Borin, S.; Heuer, H.; Gebhard, F.; Van Elsas, D.J. & Nielsen, K. (2000). Horizontal Transfer of Antibiotic Resistance Genes From Transgenic Plants to Bacteria – Are There New Data To Fuel The Debate? Proceedings of the 6th International Symposium on The Biosafety of Genetically Modified Organisms, 146-154. [ Links ]
(31) Whitley, D. (1995). Modeling Hybrid Genetic Algorithms. Genetic Algorithms in Engineering and Computer Science, 191-201. [ Links ]
(32) Whitley, D.; Gordon, V.S. & Mathias, S.K. (1994). Lamarckian Evolution, The Baldwin Effect and Function Optimization. In: Parallel Problem Solving from Nature – PPSN III [edited by Y. Davidor, H.P. Schwefel and R. Manner], Springer-Verlag, 6-15. [ Links ]
(33) Yao, X. (1996). An Overview of Evolutionary Computation. Chinese Journal of Advanced Software Research, 3(1), 12-29. [ Links ]
(34) Yokoyama, R.; Ito, K.; Miyasaka, F. & Kamimura, K. (1994). Development of a General-Purpose Optimal Operational Planning System for Energy Supply Plants. Transaction of the ASME, 116, 290-296. [ Links ]
(35) Zhao, H.; Holst, J. & Arvatson, L. (1998). Optimal Operation of Coproduction with Storage. Energy, 23, 859-866. [ Links ]