IMPRIMIR VOLTAR
B. Engenharias - 1. Engenharia - 8. Engenharia Elétrica
AMBIENTE DISTRIBUÍDO PARA EXECUÇÃO E ESTUDOS DE ALGORITMOS GENÉTICOS
Marco José de Souza 1 (marcojs@ufpa.br), Ranieri Barros Teixeira 1, Tainara da Costa Dias 1 e Victor Simões Martins 1
(1. Depto. de Engenharia Elétrica e de Computação, Universidade Federal do Pará - UFPA)
INTRODUÇÃO:
O Algoritmo Genético (AG) tem sido aplicado com sucesso em muitos problemas de engenharia. Embora o AG seja uma alternativa consagrada para síntese e otimização, ainda não existe uma forma padronizada e universal de implementá-lo. Portanto, muitas pesquisas estão sendo realizadas em busca de AGs mais elaborados visando aplicações gerais e específicas. Um aspecto bastante explorado na literatura é o uso da computação paralela para problemas que demandem grande esforço computacional. Sendo assim, este trabalho mostra a criação de um ambiente distribuído para a execução do AG, visando ganhos consideráveis de performance. Esta ferramenta foi desenvolvida de tal forma a facilitar o uso de AG em pesquisas e no ensino, portanto algo amplamente configurável. Será mostrado que a ferramenta também tem a capacidade de realizar balanceamento auto-adaptativo de carga, o que possibilita o uso de uma rede de nós processadores heterogêneos como plataforma. Outra característica importante da ferramenta é que ela foi desenvolvida segundo as técnicas de Orientação a Objetos (OO), visando facilitar a reutilização do código e a flexibilidade na utilização do sistema.
METODOLOGIA:
O trabalho foi proposto pelo Prof. MSc. Marco José de Souza, do Laboratório de Eletromagnetismo Aplicado (LEA) e teve as seguintes etapas de desenvolvimento: 1) Estudo dos conceitos de transmissão de dados via rede de computadores; 2) Estudo dos conceitos referentes aos Algoritmos Genéticos; 3) Estudo e modelagem do sistema com UML; 4) Implementação do AG e do sistema de comunicação utilizando a linguagem Java; 5) Implementação de estratégias de balanceamento de carga; 6) Teste da eficiência do sistema. A linguagem Java foi escolhida por apresentar maior facilidade na implementação da comunicação entre computadores. Além disso, trata-se de uma linguagem completamente orientada a objetos (OO), o que contribuiu para um código fonte mais didático, organizado e de fácil manutenção. Para o teste de eficiência foram executados dois problemas, ambos seqüencialmente e paralelamente, utilizando diferentes estratégias de balanceamento de carga.
RESULTADOS:
Para obtenção dos resultados foram utilizados dois problemas: o primeiro busca o máximo de uma função multi-modal; e o segundo é o “Problema do Caixeiro Viajante”. Em ambos problemas utilizados para o teste, o AG distribuído apresentou melhor eficiência computacional. Para os testes realizados no ambiente distribuído foram experimentadas algumas estratégias de balanceamento de carga para os nós processadores; os melhores resultados foram obtidos quando se considerou não somente o tempo total de processamento de um nó, mas o tempo contado a partir do envio dos dados até a recepção dos resultados. O sistema se mostrou bastante flexível e reutilizável, permitindo a migração de um problema para outro com relativa simplicidade, caracterizando-se como uma ótima ferramenta de ensino das técnicas de AG e aplicação em pesquisas. Além disso, os integrantes do trabalho tiveram oportunidade de aprender sobre AG, comunicação entre computadores numa rede e técnicas de projeto no desenvolvimento de programas baseados em OO.
CONCLUSÕES:
Um sistema distribuído, flexível, configurável, e computacionalmente eficiente foi desenvolvido. O ambiente também se mostrou suficientemente didático a ponto de poder ser aproveitado em disciplinas como Inteligência Artificial ou Inteligência Computacional, além de poder ser útil em pesquisas de estratégias alternativas para implementação de AGs distribuídos mais robustos. Ao longo do processo de desenvolvimento do sistema, a modelagem UML foi fundamental para simplificação e documentação do trabalho, o que permitirá ao usuário fazer com segurança quaisquer modificações futuras que se achem necessárias.
Instituição de fomento: MEC/SESu - Programa de Educação Tutorial (PET)
Trabalho de Iniciação Científica
Palavras-chave:  Algoritmo Genético; Processamento Paralelo e Distribuído; Orientação a Objetos.
Anais da 57ª Reunião Anual da SBPC - Fortaleza, CE - Julho/2005