06/08/2010 1 Samara Silva de Souza Samara Silva de Souza 1 , Marcos Marcelino Mazzucco , Marcos Marcelino Mazzucco 2 Universidade do Sul de Santa Catarina - UNISUL UnidadeAcadêmica de Ciências Tecnológicas - UNITEC Grupo de Engenharia de Processos - ENGEPRO Curso de Engenharia Química – Campus Tubarão Os algoritmos genéticos, conhecidos como GA’s (Genetic Algorithms), são algoritmos de otimização baseados em mecanismos simplificados de adaptação e evolução das espécies (teoria de Darwin), ou seja, são técnicas de buscas que combinam a sobrevivência dos mais aptos com a troca de informações de uma forma estruturada. Os GA’s são, particularmente, aplicados em problemas complexos de otimização: problemas com diversos parâmetros ou características que precisam ser combinadas em busca da melhor solução, problemas com muitas restrições ou condições que não podem ser representadas matematicamente. Os operadores de seleção, crossover e mutação, são considerados operadores fundamentais, pois estão presentes em qualquer algoritmo genético. A partir das iterações espera-se o melhor “indivíduo” (cromossomo com maior fitness), uma vez que o programa converge para isso. O objetivo deste trabalho é aplicar algoritmos genéticos para a determinação dos parâmetros cinéticos de uma reação química homogênea e os resultados comparados com aqueles obtidos por métodos tradicionais. http://www.eqm.unisul.br http://www.unisul.br 1 – Iniciação Científica - PUIC 2 – Professor Orientador 1 – [email protected] 2 – [email protected] Durante a execução do algoritmo, o programa gera os valores de fitness máximo e médio para cada geração e os gráficos das figuras 1 e 2 são gerados. A partir do gráfico do tempo calculado em função do tempo real, conforme Figura 1, percebe-se a linearidade dos dados, demonstrando a compatibilidade dos resultados com os parâmetros originais. O valor da correlação foi de 0,991087. http://www.eqm.unisul.br/prof/marcos Objetivo Geral Aplicar algoritmos genéticos para a determinação dos parâmetros cinéticos de uma reação química homogênea com mais de um reagente. Figura 1 – Gráfico tempo calculado por tempo real. Os valores obtidos da ordem e velocidade específica foram respectivamente, 2,58852 e 0,12826, próximos aos valores de 2,5 e 0,1 que correspondem aos parâmetros cinéticos originais. Os valores de fitness foram de: fitness médio = -8,624 e fitness máximo = -1,004. Os gráficos fitness médio e máximo em função do número de gerações, disposto conforme Figura 2. Objetivos Específicos • Avaliar a capacidade e flexibilidade das sub-rotinas disponíveis no GNU Octave para resolver problemas envolvendo algoritmos genéticos; • determinar o tempo de processamento computacional requerido no GNU Octave para resolver o problema proposto; • comparar os resultados com os métodos tradicionais; • determinar a compatibilidade dos resultados com os parâmetros cinéticos originais; • analisar, estatisticamente, os resultados. LUYBEN, William L. Process modeling, simulation, and control for chemical engineers. 2. ed. New York: McGraw-Hill, 1990. 725 p. 1 MAZZUCCO, M.M., Introd. às Técnicas de Programação com Gnu Octave e Matlab. 2004 2 MAZZUCCO, M. M., LIMA, M. C., ROSA, M. R. VLAB- Um Software para Apoio ao Ensino de Cinética Química, XIII Enc. de Química da Região Sul, p. QE026, 2005. CLAUMANN, C. A. Modelagem dinâmica e controle de processos não lineares: uma aplicação de algoritmos genéticos para treinamento de redes neurais recorrentes, Dissertação de Mestrado. Florianópolis, 1999, 181 p. GOLDBERG, D. E., Genetic Algorithms in Search Optimization & Machine Learning, Addison- Wesley, USA, 1989 Figura 2– Gráficos do fitness em função do número de gerações gerados pelo algoritmo de solução. UNISUL - PUIC A utilização desses algoritmos oferece uma solução com implementação mais simples que outros métodos, pois utiliza uma função objetivo mais flexível. Os dados de concentração ao longo do tempo a serem utilizados no programa, o qual foi executado no software GNU Octave 1 , foram obtidos através do simulador VLAB 2 . A função objetivo será: onde: t i = tempo obtido a partir da simulação com VLAB; t' i = tempo calculado a partir dos parâmetros cinéticos determinados pelo GA. Para o experimento analisou-se a estequiometria e aplicou-se o excesso em um dos reagentes (C B0 ) fazendo com que sua concentração permaneça constante com o tempo. Foram então obtidos os dados de concentração de C A (gmol/L) por unidade de tempo t(min). Estes dados referem-se a população do algoritmo desenvolvido no GNU Octave. Testou-se determinar as duas variáveis, ordem da reação (n A ) e constante de velocidade (k A ), a partir do algoritmo que foi executado para uma população de 100 indivíduos, número de gerações igual a 100, taxa de crossover de 0,95 e taxa de mutação 0,01. O algoritmo foi alterado para suportar otimização múltipla, pois estava preparado para apenas um parâmetro. A partir disto, pode-se aplicar a estratégia de otimização com diversos grupos de dados de tempo e concentração de A e B obtidos no software VLAB. Testaram-se alternativas de implementação no programa como integração e método das diferenças finitas para possibilitar a determinação dos parâmetros cinéticos sem excesso de reagentes, contudo a abordagem da integração acaba deixando a solução muito lenta. Não obteve-se resultados satisfatórios quando não há excesso de um dos reagentes. O programa passa a calcular três variáveis: n A ,n B ek A . Os parâmetros de ordem interferem-se entre si e não convergem para o resultado esperado A função objetivo adotada se propõe a resolver o problema proposto. Obteve-se uma compatibilidade dos resultados com os parâmetros cinéticos obtidos por métodos tradicionais. ∑ - N°dados = i i i i + t + t' t = Z 1 2 1 1 A função objetivo para o problema proposto foi: A A A n Ao A n A C k ) + n ( 1 + C + C = t - - - - - . 1 1 Onde: n A = ordem da reação e k A = constante de velocidade Na Figura 2 percebe-se um ponto de uma das gerações que apresenta um fitness médio inferior aos demais, com isto o gráfico gerado não fica bem visível, devido a discrepância deste valor aos demais. O fitness máximo ficou em torno de -1,0035. O tempo de processamento computacional requerido no GNU Octave para resolver o problema proposto foi de 21,369 segundos