Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos...
Transcript of Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos...
Gustavo De Nardin
Aplicacao do Algoritmo de Recozimento
Simulado Genetico Paralelo no Projeto de
Perfis de Asas de Aeronaves
Florianopolis - SC - Brasil
2004
Gustavo De Nardin
Aplicacao do Algoritmo de Recozimento
Simulado Genetico Paralelo no Projeto de
Perfis de Asas de Aeronaves
Orientador:
Jose Mazzucco Junior
Universidade Federal de Santa Catarina - UFSC
Florianopolis - SC - Brasil
2004
Esta monografia, intitulada “Aplicacao do Algoritmo de Recozimento Simulado Genetico
Paralelo no Projeto de Perfis de Asas de Aeronaves”, foi defendida por Gustavo De
Nardin, e aprovada em sua forma final como trabalho de conclusao de curso, pelo Curso de
Ciencias da Computacao da Universidade Federal de Santa Catarina - UFSC, no perıodo
2004.1.
Prof. Jose Mazzucco Jr.Orientador
Prof. Luıs Fernando FriedrichMembro da banca
Prof. Ricardo Felipe CustodioMembro da banca
O homem que foge pode lutar novamente. (Menandro)
Este trabalho nao e dedicado a Eris.
Agradecimentos
Agradeco: a meus familiares pelo suporte e familiaridade; a meus amigos, inclusive, ou
talvez principalmente, os etereos; aos professores, principalmente aos que tiveram alguma
atuacao direta em minha formacao; participantes, atuantes, entusiastas, promotores de
software, conhecimento e padroes livres e abertos.
Sumario
Resumo
Abstract
1 Objetivo p. 10
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10
1.2 Objetivo geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
1.3 Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
1.4 Objeto do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12
1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12
2 Fundamentacao p. 14
2.1 Problemas de otimizacao . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
2.1.1 Algoritmos Geneticos . . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.1.2 Recozimento Simulado (”Simulated Annealing”) . . . . . . . . . p. 17
2.1.3 Recozimento Simulado Genetico Paralelo (”Parallel Genetic Sim-
ulated Annealing”) . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
2.2 Processamento paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
2.2.1 Modelos de programacao paralela . . . . . . . . . . . . . . . . . p. 21
2.2.2 Computacao distribuıda e paralelismo . . . . . . . . . . . . . . . p. 22
2.2.2.1 PVM e MPI . . . . . . . . . . . . . . . . . . . . . . . . p. 23
2.2.3 Comunicacao e sincronismo . . . . . . . . . . . . . . . . . . . . p. 24
2.3 Projeto de perfil de asa . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
2.3.1 XFoil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
3 Aplicacao proposta p. 26
3.1 Definicao da implementacao . . . . . . . . . . . . . . . . . . . . . . . . p. 26
3.1.1 Representacao genetica . . . . . . . . . . . . . . . . . . . . . . . p. 26
3.1.2 B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
3.1.3 Analise (XFOIL) . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
4 Resultados p. 30
5 Conclusoes e trabalhos futuros p. 31
5.1 Representacoes geneticas alternativas . . . . . . . . . . . . . . . . . . . p. 31
Referencias p. 33
Anexo A -- Artigo p. 35
Resumo
Este trabalho estuda a aplicabilidade do algoritmo de otimizacao global ”ParallelGenetic Simulated Annealing”(CHEN; FLANN; WATSON, 1998), que se trata de um al-goritmo paralelo hıbrido genetico e de recozimento simulado, ao problema de projeto deperfis de asas de aeronaves, fazendo um breve estudo das duas tecnicas de otimizacaoglobal individualmente, e da implementacao do algoritmo paralelo usando o sistema MPI.
Abstract
This work studies the applicability of the hybrid ”Parallel Genetic Simulated Anneal-ing”(CHEN; FLANN; WATSON, 1998) global optimization algorithm in the airfoil designproblem, doing a short study of the two individual global optimization techniques, and ofthe implementation of the parallel algorithm using the MPI system.
10
1 Objetivo
1.1 Motivacao
O projeto de perfis de asas de aeronaves envolve um ciclo de tentativa e erro, em
que o projetista desenvolve uma ideia inicial, baseado em seus conhecimentos tecnicos,
experiencia e requisitos do projeto, e passa a um processo de refinamento, ate atingir os
parametros desejados, ou o mais proximo deles que conseguir, para o perfil.
Havendo o desconhecimento de uma solucao otima, e o campo de solucoes sendo
ilimitado, esse processo de refinamento pode ser acelerado com o uso de tecnicas de
otimizacao, determinando-se um conjunto de parametros e aplicando-se um algoritmo
adequados.
Este tipo de ferramenta representa uma melhora significativa no desempenho do pro-
jeto, ja que pode-se testar mais solucoes, mais rapidamente, possivelmente chegando a
solucoes melhores e nao-obvias. Com isso pode-se baixar o custo de desenvolvimento de
uma aeronave, e tambem aumentar sua economia, vida util, desempenho, etc., que tem
relacao direta com o custo.
Quanto a complexidade, o problema em questao enquadra-se na classe dos classifi-
cados como NP (non-deterministic polynomial-time), o que significa que nao se conhece
algoritmo para obter os parametros para um dado objetivo, sendo necessario, para a
otimizacao, fazer uso de alguma tecnica de otimizacao global nao-determinıstica.
Uma tecnica de otimizacao popular sao os Algoritmos Geneticos, que tem sido usados
na resolucao de diversos problemas cientıficos e de engenharia. Sua forma de funciona-
mento envolve conceitos de selecao natural, genetica, populacao de indivıduos, cruzamen-
tos, mutacoes, etc.. Tais conceitos levam a pensar na sua implementacao paralela, com
populacoes de indivıduos que podem evoluir em separado, e serem modificados (realizando
alguma comunicacao) apenas em momentos especificos da execucao do algoritmo.
11
Outra tecnica de otimizacao bastante utilizada e eficaz e a de recozimento simulado
(simulated annealing). Tal tecnica consiste, a grosso modo, em ideias similares as dos
algoritmos geneticos, baseadas na mecanica estatıstica e recozimento de materiais. Uma
possıvel solucao e gerada inicialmente, e sao feitas modificacoes sucessivas, cada uma
de amplitude proporcional a um parametro denominado temperatura, que e inicialmente
grande e reduzido aos poucos, a medida que se converge para a solucao desejada. E
interessante a implementacao de tais algoritmos em paralelo, para maior desempenho, ja
que o problema e os algoritmos envolvem grande esforco computacional.
No entanto, sistemas paralelos em si, e suas limitacoes e dificuldades, envolvendo
sincronismo, limitacao dos canais de comunicacao, etc., juntamente com dificuldades ori-
undas da propria paralelizacao dos algoritmos geneticos e de recozimento simulado, e
caracterısticas dos mesmos, acabam fazendo com que sua paralelizacao nao seja trivial
ou “natural” como parece a primeira vista. Tais limitacoes dao espaco para melhoria em
relacao a pura e simples transformacao dos algoritmos seriais em paralelos.
1.2 Objetivo geral
Estudar e verificar a eficacia de um algoritmo de otimizacao paralelo especıfico, e
as dificuldades e desempenho de uma implementacao para solucao de um problema em
particular.
1.3 Objetivos especıficos
Aplicar um algoritmo paralelo hıbrido genetico/recozimento simulado na solucao de
um problema de engenharia, o projeto de perfis de asas de aeronaves.
Criar um programa que auxilie de forma eficaz no projeto de perfil de asa de aeronaves.
Avaliar a eficacia do algoritmo especıfico usado, verificando se suas caracterısticas se
comprovam quando aplicado ao problema em questao.
Aprendizado de uso do sistema de computacao paralela macica MPI (Message Passing
Interface).
Estudo de:
• Algoritmos geneticos e de recozimento simulado: base teorica para compreensao do
12
algoritmo usado na implementacao.
• Processamento paralelo: tecnica comumente utilizada para aceleracao da solucao de
problemas, quando possıvel.
• Integracao de programas: o programa Xfoil sera utilizado como base para o desen-
volvimento da parte de calculo/simulacao envolvida.
• Temas de engenharia que venham a ser necessarios para melhor compreensao do
problema.
1.4 Objeto do trabalho
O projeto de perfil de asa e relativamente difıcil e trabalhoso, envolvendo o design de
um perfil com base em modelos previamente conhecidos, para posterior simulacao e testes
repetidos, ate alcancar um nıvel satisfatorio de eficacia.
Pode-se verificar varias tentativas de aceleracao deste processo e relacionados, como
design aerodinamico de helices, asas, mısseis, etc., pelo desenvolvimento de ferramentas
computacionais com este fim.
O uso de algoritmos geneticos mostra-se predominante, pela quantidade de tecnicas
que os empregam, e demonstra-se bastante eficaz.
Algoritmos de recozimento simulado tambem sao empregados, embora aparentemente
em menor quantidade (menor quantidade de referencias encontradas).
O processo de analise de um perfil e, relativamente, computacionalmente caro. Como
os algoritmos envolvidos varrem um grande espaco de busca (possıveis solucoes), e inter-
essante fazer uso de uma implementacao paralela.
Algoritmos geneticos e de recozimento simulado em separado apresentam determina-
dos problemas quanto ao seu paralelismo. Um algoritmo hıbrido que promete melhoras
significativas e o GSA paralelo(Parallel Genetic Simulated Annealing, Recozimento Sim-
ulado Genetico Paralelo), que sera o algoritmo implementado.
1.5 Metodologia
O algoritmo escolhido para implementacao foi o PGSA. Esta escolha foi feita porque
este algoritmo e proposto como uma alternativa simples, e oferecendo vantagens signi-
13
ficativas com relacao a implementacao paralela de algoritmo genetico ou de recozimento
simulado isoladamente.
Foi feita a definicao dos parametros considerados no algoritmo, baseando-se em ex-
periencia de pessoas da area (aerodinamica), e em trabalhos ja publicados relativos a
tecnicas de computacao evolutiva usadas com este fim. Tambem foi definida uma forma
de representacao dos parametros, visando reduzir o custo computacional envolvido e rep-
resentando adequadamente as solucoes.
A analise do perfil e feita usando o programa Xfoil, reconhecido e utilizado pela
comunidade internacional da area, pela sua eficiencia e bons resultados. Ele se utiliza
do metodo dos paineis, que tem custo computacional baixo quando comparado a outras
alternativas. Este programa e de codigo livre, permitindo seu estudo e modificacao, o que
pode vir a ser muito util, sendo inclusive implementado na linguagem Fortran, e multi-
plataforma, disponıvel para sistemas *NIX, GNU/Linux, e Windows, em particular.
Para o processamento paralelo e utilizada uma implementacao do sistema MPI (Mes-
sage Passing Interface). Este sistema se trata de uma especificacao aberta que visa
fornecer uma interface padronizada e eficiente para processamento macico paralelo. Sendo
o sistema MPI, na verdade, uma especificacao, existem varias implementacoes, e ate
mesmo extensoes, como por exemplo interfaces orientadas a objetos de sua API, para
diversas plataformas e linguagens, incluindo sistemas *NIX, GNU/Linux e Windows.
Apesar da implementacao (paralela macica) visar isto, nao foram realizados testes
em um grande sistema com varias maquinas, embora isto seja bastante interessante para
verificar as caracterısticas da implementacao em uso efetivo, como sua escalabilidade e
eficiencia. A princıpio os testes foram feitos em uma unica maquina, simulando um
sistema em paralelo, ou sistemas paralelos macicos de pequeno porte, para facilitar os
testes e desenvolvimento, reduzindo-se os custos e dificuldades.
14
2 Fundamentacao
2.1 Problemas de otimizacao
Os problemas, do ponto de vista de sua computabilidade, podem ser classificados
entre os que podem ser resolvidos de forma determinıstica, por algoritmos, e os que nao
podem. Dentre os de solucao possıvel por algoritmos, ha ainda os que nao podem ser
resolvidos na pratica, por exigirem recursos demasiados (espaco e/ou tempo).
Tecnicas determinısticas sao mais desejaveis, naturalmente, por suas caracterısticas
computacionais, como tempo de execucao (complexidade computacional) conhecido, garan-
tia de termino, etc..
Porem, tais tecnicas nao podem ser usadas indiscriminadamente para resolver todo
tipo de problema, haja visto que existem problemas para os quais nao se tem garantia
de solucao, ou cuja solucao exigiria, ou poderia exigir, ”recursos infinitos”para ser en-
contrada, ou nao se pode determinar com certeza se uma solucao e realmente a solucao
otima, por exemplo, por nao se conhecer algoritmo para isto.
Mede-se a complexidade de algoritmos segundo a quantidade de esforco/tempo necessario
para tratar o tamanho dos dados de entrada. Assim, ao dizer que um algoritmo tem ”com-
plexidade linear”, denotada por ”O(N)”na notacao ”Big Oh”, quer se dizer que o tempo
de processamento necessario para seu termino cresce linearmente com relacao ao tamanho
dos dados de entrada.
Varios problemas podem ser reduzidos a problemas similares. Isso levou a criacao
de classes de problemas. Tais classes agrupam problemas cuja complexidade computa-
cional seja similar. Existem diversas destas classes de complexidade, porem, as mais
conhecidas, e de cujas muitas outras sao subclasses, sao as denominadas P, NP, e NP-
difıcil. Problemas do tipo P tem algoritmos conhecidos para resolucao determinıstica em
tempo polinomial. Problemas do tipo NP podem ter suas possıveis solucoes verificadas
em tempo polinomial deterministicamente, ou podem ser solucionados em tempo polino-
15
mial nao-determinısticamente, mas nao e conhecido algoritmo para solucao determinıstica
em tempo polinomial. Problemas NP-difıceis sao os problemas NP ”mais difıceis”. For-
malmente, problemas NP-difıceis sao os problemas NP para os quais todos os outros
problemas NP podem ser reduzidos (via um algoritmo tipo P).
Para resolver problemas difıceis demais (NP-difıceis) para serem resolvidos de forma
determinıstica, desenvolveram-se outras tecnicas de solucao nao-determinısticas (heurısticas).
Dentre estas tecnicas estao os Algoritmos Geneticos(HOLLAND, 1975), e o Recozimento
Simulado(KIRCKPATRICK; GELATT; VECCHI, 1983).
Outras tecnicas de natureza similar sao o uso quase direto do metodo de Monte Carlo
(”busca aleatoria”, ”random walk”), Tunelamento Estocastico (Stochastic Tunneling), e
Temperamento Paralelo (Parallel Tunneling) (tambem baseados no metodo de Monte
Carlo). Estas nao serao tratadas aqui.
2.1.1 Algoritmos Geneticos
Algoritmos geneticos sao um ramo da area denominada ”Computacao Evolutiva”, ou
um dentre varios ”Algoritmos Evolutivos”. Seu funcionamento, assim como o dos outros
ramos da Computacao Evolutiva, baseia-se nas ideias da Evolucao Natural.
A criacao desta tecnica e atribuıda a John Holland (HOLLAND, 1975). Ela consiste
em definir o problema de modo que as solucoes possıveis sejam representadas por ”in-
divıduos”, membros de uma populacao, cada um com seu proprio, provavelmente unico,
conjunto de ”genes”, sendo que os genes codificam valores possıveis para variaveis envolvi-
das no problema. Entao sao feitos cruzamentos entre estes indivıduos, misturando seus
genes entre si, e entre indivıduos de outras populacoes, dando origem a novas geracoes de
populacoes e repetindo o procedimento enquanto se desejar.
Um algoritmo genetico basico em pseudocodigo pode ser o seguinte:
1 i n i c i o
2 t = 0 ;
3 i n i c i a l i z a p o p u l a c a o (p ) ;
4 a v a l i a a p t i d o e s (p ) ;
5 r e p i t a
6 t = t + 1 ;
7 s e l e c a o (p ) ;
8 recombinacao (p ) ;
16
9 mutacao (p ) ;
10 a v a l i a a p t i d o e s (p ) ;
11 enquanto nao cond icao de termino (p , t ) ;
12 fim
Os fatores importantes para o uso bem sucedido de algoritmos geneticos na busca
de solucoes adequadas para um problema, consistem principalmente em: representar
adequadamente as solucoes (o codigo genetico/cromossomos); avaliacao do grau de adequacao
das solucoes geradas (a ”funcao de aceite”); determinar bons tamanho e numero de
geracoes das populacoes; e determinar os operadores geneticos e suas probabilidades de
ocorrencia.(MAZIERO, 2003)
A execucao do algoritmo genetico pode ser vista como um processo de duas etapas:
selecao e cruzamento+mutacao. Na selecao, os indivıduos de uma populacao sao escolhi-
dos de acordo com algum metodo envolvendo sorteio aleatorio e probabilidades de acordo
com o aceite dos indivıduos. A selecao cria uma populacao intermediaria de indivıduos.
Entao se procede a recombinacao dos indivıduos selecionados, sendo feito o cruzamento
dos cromossomos de pares aleatorios de indivıduos, e a subsequente mutacao, a alteracao
deliberada, aleatoria com alguma probabilidade associada, de genes.(WHITLEY, 1993)
Enquanto a etapa da selecao serve para provocar o avanco em direcao a melhores
solucoes, a etapa de cruzamento+mutacao serve para provocar as mudancas que possivel-
mente gerarao solucoes melhores.
Os principais operadores geneticos sao a selecao, a mutacao, e o cruzamento, porem,
muitos outros existem, como o elitismo, em que uma taxa determinada dos indivıduos
mais adaptados e diretamente selecionada a cada geracao, e seeding, em que indivıduos
bem adaptados sao pre-inseridos na populacao inicial. Alem disso, pode-se definir novos
operadores.
(MAZZUCCO, 1999) mostra formalmente, pela analise do teorema fundamental do
algoritmo genetico, que o processamento de um algoritmo genetico causa a combinacao
contınua de segmentos de boas solucoes, de diversos cromossomos, pelo efeito dos oper-
adores geneticos aplicados. A hipotese fundamental e que indivıduos (possıveis solucoes)
mais aptos possuem genes melhores, que podem ser usados para compor indivıduos de
aptidao melhor.
Os resultados obtidos com o uso de algoritmos geneticos sao bastante dependentes
dos parametros de configuracao usados (tamanho da populacao, operadores usados, prob-
17
abilidades associadas aos operadores, etc.), que sao dependentes do problema em questao
e mais apropriadamente definidos via tentativa e erro, representando assim um problema
significativo.(CHEN; FLANN; WATSON, 1998)
Alem disso, apesar de serem implicitamente paralelos, devido a populacao de solucoes
poder ser distribuıda facilmente entre processadores, a fase de selecao envolve bastante co-
municacao entre os processadores, para comparacao e definicao da aptidao dos indivıduos,
representando um gargalo serial significativo.
2.1.2 Recozimento Simulado (”Simulated Annealing”)
A tecnica de otimizacao combinatoria por Recozimento Simulado se baseia na Mecanica
Estatıstica, uma disciplina da fısica de materiais condensados que estuda propriedades de
sistemas com grande numero de atomos, nos quais apenas o comportamento mais provavel
do sistema pode ser observado, e mais especificamente na busca do estado destes sistemas
em baixa temperatura.
Para obte-lo, e necessario se utilizar do recozimento, baixando lentamente a temper-
atura, ate observar estabilidade do sistema a temperatura desejada. Este procedimento
tem similaridade com a otimizacao por ”melhoria iterativa”, como algoritmos geneticos,
considerando que o ponto otimo seja aquele no qual o sistema fique estavel (pouca variacao
de energia) a mais baixa temperatura.
Ao adaptar esta tecnica para otimizacao de sistemas em geral, a “energia” do sistema
e determinada por uma “funcao custo”, e a “temperatura” passa a ser um parametro de
controle na mesma unidade da funcao custo.(KIRCKPATRICK; GELATT; VECCHI, 1983)
Desta forma, e relativamente simples implementar este algoritmo para problemas de
otimizacao combinatoria, dispondo-se de 4 itens:
• uma representacao eficaz dos parametros do sistema
• um reorganizador para modificacao aleatoria dos parametros de uma configuracao
• uma funcao de aceite que considere os objetivos da otimizacao
• um cronograma de recozimento das temperaturas e perıodos de tempo para os quais
o sistema ira evoluir
Embora simples, deve-se notar que a mera aplicacao de um ”algoritmo descendente”,
em que a energia do sistema a uma dada temperatura so diminui, resulta em otimizacao
18
local, e nao necessariamente global, o que se deseja evitar. Para contornar isso, o Recozi-
mento Simulado pode aceitar uma solucao que incremente a instabilidade do sistema ate
uma variacao maxima em determinada temperatura, dependendo de uma funcao proba-
bilidade destes dois parametros. (MAZZUCCO, 1999)
Pode-se determinar a convergencia do sistema tendo-se condicoes suficientes, porem,
quando o espaco de busca cresce muito a quantidade de iteracoes necessarias para isto
pode se tornar inviavel.(MAZZUCCO, 1999)
No entanto, na definicao dos parametros deste algoritmo e onde se encontram as difi-
culdades desta tecnica, ja que se mostra bastante sensıvel a sua definicao, e e necessario
um bom conhecimento do problema em questao e suas caracterısticas, bem como dos
objetivos almejados, alem de provavelmente exigir um processo de tentativa e erro para
sua definicao adequada. Isto faz com que sua efetividade de uso e robusteza seja limi-
tada.(CHEN; FLANN; WATSON, 1998)
Alem disso, este algoritmo e naturalmente serial, por se basear em uma unica solucao
modificada ao longo do tempo, ou seja, cada passo depende do anterior, tornando a sua
paralelizacao eficiente complicada e trabalhosa, e envolvendo alteracoes significativas e
especıficas a cada problema, sendo que nem sempre se obtera ganhos significativos de
performance. As tentativas de paralelizacao deste algoritmo se mostraram pouco eficazes,
e/ou bastante trabalhosas.(CHEN; FLANN; WATSON, 1998)
E interessante notar que este algoritmo possui prova formal de convergencia a solucao
otima global, dada uma rotina de resfriamento suficientemente lenta.(CHEN; FLANN;
WATSON, 1998)
2.1.3 Recozimento Simulado Genetico Paralelo (”Parallel Ge-
netic Simulated Annealing”)
O Recozimento Simulado Genetico Paralelo e a implementacao paralela do algoritmo
hıbrido denominado Recozimento Simulado Genetico (”Genetic Simulated Annealing”,
GSA), que combina o capacidade de recombinacao do operador de cruzamento dos Algo-
ritmos Geneticos, e a rotina de recozimento do Recozimento Simulado, de modo que este
supera os resultados de cada algoritmo em isolado.(CHEN; FLANN; WATSON, 1998)
No GSA paralelo, cada processador mantem uma solucao do problema, e executa o
algoritmo de recozimento modificado usando esta solucao, de forma isolada dos outros.
A comunicacao entre processadores se da para realizar o cruzamento genetico, quando
19
cada processador recebe a solucao residente de outro, determinado aleatoriamente a cada
iteracao.
As vantagens apresentadas sao varias e significativas. O algoritmo mantem a prova
formal de convergencia ao otimo global; e naturalmente paralelo devido as caracterısticas
advindas dos Algoritmos Geneticos; nao apresenta gargalo de comunicacao, por seu pro-
cesso de selecao ser baseado na estrategia de selecao local do Recozimento Simulado, e
pela troca de informacoes ser regional;
Outra caracterıstica bastante importante e que nenhuma parte especıfica ao problema
precisa ser paralelizada, apenas partes genericas do algoritmo, assegurando a robustez e
facilidade de aplicacao a outros problemas. Isto se deve a ”constituicao”da solucao se
dar em paralelo, no conjunto de todos os processadores, mas as operacoes de evolucao
genetica e selecao se darem de forma local.(CHEN; FLANN; WATSON, 1998)
O algoritmo GSA e o seguinte:
1 begin
2 temperature := i n i t i a l t emp e r a t u r e ( ) ;
3 r := random so lut ion ( ) ;
4 for i := 1 to max i t e ra t i on do
5 begin
6 d i r e c t i o n := random (0 ,7 , random seed ) ;
7 d i s tance := random(1 , max distance , random seed ) ;
8 v := XNet d i rec t ion ( d i s tance ) . r ;
9 {n0 , n1} := c ro s sove r muta t i on ( r , v ) ;
10 r := s e l e c t ( r , n0 , n1 , temperature ) ;
11 temperature := temperature ∗ a ;
12 end
13 return r
14 end
Ha tres parametros de entrada: max iteration, que determina o numero de modi-
ficacoes da solucao; random seed, que e uma constante global que assegura a coordenacao
sem necessidade de comunicacao; e max distance, que determina a distancia maxima en-
tre os processadores para obtencao de solucoes proximas. temperature e determinada
de forma que a probabilidade de um incremento da energia seja de 0,5 a 1,0. a e
determinado de acordo com uma temperatura final aleatoria, a temperatura inicial, e
max iteration.(CHEN; FLANN; WATSON, 1998)
20
Nos experimentos realizados pelos criadores do algoritmo, este foi avaliado quanto a
sua melhoria em relacao aos algoritmos genetico e recozimento simulado em separado (em
especial a sensibilidade aos parametros de inicializacao), sua escalabilidade em relacao
ao aumento da populacao (processadores), alem do aproveitamento da possibilidade de
busca de solucoes num espaco maior neste caso, e tambem sua aplicabilidade a diversas
situacoes problema, testando-o com dois problemas de domınios diferentes: o problema
do “caixeiro viajante”, e o projeto de um “codigo de correcao de erros”.
Os resultados obtidos indicam que o algoritmo apresenta importantes vantagens, como
a obtencao de resultados ate mesmo melhores e obtidos com menor esforco computacional,
com a utilizacao de parametros de inicializacao aleatorios, e aparente constante aumento
do desempenho com o aumento da populacao, diferente do metodo de Algoritmo Genetico
utilizado individualmente, ou de outros metodos hıbridos.
2.2 Processamento paralelo
Processamento paralelo se trata da execucao de mais de uma sequencia de instrucoes
simultaneas, de alguma forma coordenados, com algum objetivo.
O processamento paralelo surgiu com o avanco tecnologico dos equipamentos. Observou-
se que os processadores vinham a ficar ociosos boa parte do tempo, especialmente enquanto
eram feitas operacoes de entrada/saıda. Este tempo passou a ser aproveitado inicialmente
atraves da multiprogramacao (execucao simultanea de varios programas nao necessaria-
mente relacionados).
A utilizacao de processamento paralelo traz consigo o nao-determinismo. Tendo-se
duas ou mais sequencias de execucao simultaneas, nao se pode mais afirmar determinis-
ticamente, sem mecanismos extras, sobre a relacao temporal entre elas. Os mecanismos
extras empregados para a coordenacao de processos, sao principalmente semaforos, mu-
texes, monitores, e trocas de mensagens. (TANENBAUM, 1992) demonstra a equivalencia
entre estes mecanismos. Eles tem em comum a garantia de atomicidade de execucao, e
como objetivo, talvez de certa forma paradoxalmente, a (re-)serializacao dos processos
envolvidos, em pontos crıticos de execucao, que tipicamente se tratam de acesso a dados
ou recursos compartilhados e/ou de acesso restrito, ou simples ressincronizacao.
Deve-se notar que o processamento paralelo real so existe se houver mais de um
processador no sistema. Caso contrario, trata-se de um sistema de tempo compartilhado,
onde os processos ou tarefas sao executados intercaladamente, de forma sequencial.
21
Alguns modelos de programacao paralela procuram esconder ou camuflar o paralelismo
real em um modelo de pseudo paralelismo, como se houvesse apenas um processador real,
de forma que o programador nao tenha controle sobre o equipamento. Tal controle permite
maior flexibilidade ao programador, e pode ser interessante em muitos casos, mesmo que
desnecessario.
A principal vantagen do uso de computacao paralela e a reducao do tempo necessario
para se obter uma solucao. podem haver tambem vantagens relacionadas a caracterısticas
subjetivas, como a melhor modelagem de um problema para solucao de forma paralela.
No entanto, observe-se que a reducao de tempo nao e necessariamente linear em relacao
ao aumento do numero de processadores. Alem do custo de comunicacao envolvido na
paralelizacao, tambem e necessaria a aplicacao de um algoritmo paralelizado para haver
qualquer ganho, o que tem certo grau de dificuldade de definicao correta. Alem disso, o
ganho com a paralelizacao e limitado as partes paralelizaveis da execucao.
A “Lei de Amdahl”, assim denominada em referencia ao seu autor, Gene Amdahl,
em 1967, diz que o ganho obtido com a paralelizacao e de (s + p)/(s + p/N), sendo ’s’ o
tempo gasto nas partes seriais do programa, ’p’ o tempo gasto nas partes paralelas, e ’N’
o numero de processadores usado.(AMDAHL, 1967) Mas foi observado por (GUSTAFSON,
1988) que esta nao se aplica de forma inalterada aos modelos atuais de computacao
paralela macica, devido a se basear em hipoteses inapropriadas para estes. Nestes casos
o ganho aproximado passa a ser calculado segundo a “Lei de Gustafson-Barsis”: (s +
p ∗ N)/(s + p), onde ’s’ e a soma dos tempos de inicializacao, carga, gargalos, e E/S,
’p’ e o tempo nos processos paralelizaveis, e ’N’ o numero de processadores. A “Lei de
Amdahl” e aplicavel a casos de paralelismo de controle (quando o algoritmo se constitui
de diferentes tarefas realizaveis em paralelo), enquanto a “Lei de Gustafson-Barsis” se
aplica ao paralelismo de dados (mesma tarefa aplicada a varios conjuntos de dados, ou
seja, SIMD).(INGARGIOLA, 2003)
2.2.1 Modelos de programacao paralela
Os mecanismos necessarios para dar suporte a programacao paralela podem seguir
alguns modelos diferentes, sendo que o mınimo necessario e que possibilitem a distribuicao
do processamento, possivelmente permitindo especificar sua granularidade e associacao de
processos a unidades de processamento especıficas, e um ou mais modos de coordenacao
entre os processos.
22
Estes mecanismos podem ser providos como funcoes de bibliotecas do sistema, ou como
parte intrınseca da linguagem de programacao. O primeiro caso apresenta a vantagem
de ser inerente a linguagem, desde que tal biblioteca seja disponıvel a ela, permitindo
fornecer suporte a computacao paralela em qualquer ambiente de programacao. Este
modelo exige explicitar os mecanismos de paralelismo, possivelmente de maneira descon-
fortavel com relacao ao modelo de programacao da linguagem, e tambem apresentar certas
incompatibilidades com partes fundamentais da linguagem, como o sistema de tipos de
dados, que deverao ser contornadas. Porem permite maior flexibilidade, possibilitando o
uso de varios modelos de computacao paralela.
Por outro lado, a implementacao dos mecanismos necessarios como parte da linguagem
permite fornecer uma maneira mais natural ao modelo de programacao desta, alem da
possıvel completa integracao com o seu sistema de tipos, operadores matematicos, logicos,
etc.. Isto traz benefıcios esteticos e praticos importantes, como maior eficiencia, maior
base de usuarios e conhecimentos sobre o modelo e seus problemas, e a possibilidade
de verificacao de erros em tempo de compilacao. No entanto, atrelam a linguagem a
um modelo de computacao paralela especıfico, possivelmente dificultando modificacoes
posteriores a este modelo, ou sua atualizacao.
2.2.2 Computacao distribuıda e paralelismo
A computacao distribuıda e uma forma de processamento paralelo em que varios
processadores, cada um com memoria e demais recursos proprios (locais) e inacessıveis
diretamente aos outros nos, sao programados de forma a trabalhar conjuntamente. Nesse
tipo de sistema paralelo, a sincronizacao e coordenacao entre os nos de processamento sao
feitas atraves da troca de mensagens pelo meio de interconexao, que deve ser algum tipo
de rede.
A rede e fator importante neste tipo de sistema, ja que toda comunicacao e feita
atraves dela, e isto pode representar grande volume de dados. E importante avaliar o
algoritmo usado, verificando sua adequacao a rede. Pode ser necessario, por exemplo, que
uma grande quantidade de dados trafegue pela rede, mas apenas entre dois computadores,
ou que uma grande quantidade de dados seja enviada para muitos computadores, ou que
pequenas mensagens sejam enviadas com muita frequencia para quaisquer computadores,
etc.. Existem varias arquiteturas multicomputadores, basicamente definidas de acordo
com o tipo de rede que os conecta, e cada uma pode suprir as necessidades de um tipo de
algoritmo. Uma vez que o fator custo esta diretamente envolvido, nao e o caso de haver
23
uma unica solucao melhor, cabendo a analise das solucoes possıveis e a busca da mais
adequada, ou mesmo a modificacao do algoritmo para adequacao aos limites do sistema
que se tiver disponıvel.
2.2.2.1 PVM e MPI
PVM (Parallel Virtual Machine, Maquina Virtual Paralela) e um sistema de com-
putacao distribuıda em que uma rede de maquinas heterogeneas e utilizada para com-
putacao distribuıda, como se fosse um processador paralelo virtual.
MPI (Message Passing Interface, Interface de Passagem de Mensagens) e um sistema
de computacao distribuıda composto por uma biblioteca de funcoes para troca de men-
sagens entre processos distribuıdos, de acordo com o tipo de comunicacao que se deseja,
destinatarios da mensagem, grupos de processos, etc..
O sistema PVM foi criado antes do MPI. Suas principais metas foram a simplici-
dade, facilidade, portabilidade, e retro-compatibilidade, possivelmente em detrimento do
desempenho.
O sistema MPI, por outro lado tem o desempenho e a portabilidade da interface
como metas. Com isso sacrifica, por exemplo, a interoperabilidade, sendo possivelmente
mais difıcil, ou impossıvel, executar um programa paralelo em maquinas de arquiteturas
diferentes.
O sistema MPI exige que o programador tome conta, em geral, explicitamente da
distribuicao e gerenciamento de processos e recursos.
Quanto a tolerancia a falhas, o PVM parece ser mais avancado, mas o MPI possui
alguns mecanismos para este fim.
O sistema MPI se mostra mais adequado ao uso em sistemas relativamente homoge-
neos, como por exemplo, um cluster de processamento macico especifico para computacao
de alto desempenho, enquanto o sistema PVM deve ter vantagens em sistemas distribuıdos
heterogeneos, como, por exemplo, a Internet.
O sistema MPI foi escolhido por ser o padrao moderno para computacao distribuıda de
alta performance, e as caracterısticas diferenciais do sistema PVM nao serem de relevencia
consideravel.
24
2.2.3 Comunicacao e sincronismo
Para haver a cooperacao entre processos paralelos distribuıdos, e necessario que haja
meios para programar comunicacao e sincronismo entre estes. Esta necessidade pode ser
atendida por varios modelos.
A operacao basica para isto, em computacao distribuıda, e o envio de mensagens,
sendo o envio explıcito, e a recepcao explıcita ou implıcita. Ainda, emissor e receptor
podem ou nao especificar, respectivamente, destinatario(s) e originario(s) das mensagens,
direta ou indiretamente.
2.3 Projeto de perfil de asa
O processo de projeto de um perfil de asa requer conhecimentos acentuados, principal-
mente, de areas da engenharia como mecanica de fluidos e mecanica de solidos. Alem disso,
conhecimentos e experiencia previa especıficos ao projeto de perfis de asa e aerodinamica
tem grande importancia, por nao haver meio de realizar o processo reverso (fazer a sıntese
de um perfil a partir de suas caracterısticas desejadas).
O projeto de um perfil de asa tem um ou mais objetivo(s) relativos as suas carac-
terısticas. Pode-se desejar simplesmente ter pouco arrasto, ou pouco arrasto e bastante
sustentacao, ou um perfil de area mınima, ou com algum formato basico especıfico, po-
dendo estarem ainda aliados a varios outros criterios, como baixo ”momento”, compor-
tamento ”pos-estol”, etc.. Sempre se tera limitacoes fısicas arbitrarias, e as quais nao
podem ser ignoradas.
As areas da engenharia relacionadas envolvem matematica relativamente complexa e
trabalhosa, de forma que atualmente a computacao tem papel importante no processo.
Antigamente fazia-se bastante uso de perfis de asa pre-definidos, bem conhecidos e es-
tudados, e fazia-se modificacoes com base nestes, ate chegar ao resultado mais proximo
do desejado. Existem ”series”de perfis, algumas extensas, bem conhecidas e utilizadas,
como as ”NACA”, e outras menores e menos conhecidas, todas destinadas a servirem de
base para outros projetistas, visando o reaproveitamento de experiencia, conhecimento, e
economia de custo dos projetos.
Os avancos computacionais atuais permitiram aos projetistas terem simuladores rel-
ativamente rapidos, dependendo dos metodos de simulacao e precisao usados, em suas
proprias estacoes de trabalho, fazendo com que o processo seja bastante acelerado e re-
25
finado, e permitindo o projeto de perfis totalmente novos e especıficos a uma aplicacao,
de forma relativamente barata. Ainda assim, e exigido o uso do processo de ”tenta-
tiva e erro”e melhoria gradual, em que o projetista testa varias possibilidades que julgar
validas para o caso em questao, ate decidir pela melhor, ou encontrar uma que satisfaca
as limitacoes da aplicacao desejada.
De qualquer forma, para se conhecer as caracterısticas reais de um perfil de asa, e
necessario fazer uma simulacao, numerica ou pratica, de suas condicoes de uso efetivo,
incorrendo em grande quantidade de calculos, no caso de simulacao numerica, ou grande
custo relativo, no caso de simulacao pratica.
2.3.1 XFoil
O programa XFoil e utilizado para projeto de perfis de asa subsonicos, e se baseia
no “Metodo dos paineis” para realizar a simulacao de um perfil e obter os coeficientes
nos quais o projetista se baseia para julgar o desempenho e adequacao do perfil ao seu
proposito.
Entre as funcoes do programa estao a analise viscosa de um perfil, projeto interativo
de perfis, com possıvel alteracao de parametros de teste durante o projeto, mistura de
perfis.
O programa foi desenvolvido ao longo de, agora, quase 20 anos, e e fortemente baseado
no uso interativo, apresentando uma interface bastante completa para seu proposito, ape-
sar de rustica para os padroes atuais.
O metodo utilizado e implementado pelo programa e bastante rapido, sendo possıvel
realizar analise de varios perfis por segundo em um computador moderno.
Os dados de entrada sao pares de coordenadas cartesianas, que descrevem o formato do
perfil de forma sequencial, partindo de um ponto na borda traseira, passando pela borda
frontal, e retornando a borda traseira. As coordenadas de entrada serao normalizadas,
facilitando a sua representacao genetica.
O programa ainda possui um modo de “misturar” perfis, o que pode ser interessante
para trabalhos futuros, na etapa de mistura genetica, por exemplo.
26
3 Aplicacao proposta
Tendo-se visto de forma geral e com alguns detalhes os varios aspectos envolvidos no
problema do projeto de perfis de asa, propoe-se a aplicacao do algoritmo de Recozimento
Simulado Genetico Paralelo, definido em (CHEN; FLANN; WATSON, 1998), na busca de
solucoes satisfatorias para o mesmo.
3.1 Definicao da implementacao
3.1.1 Representacao genetica
A representacao genetica dos indivıduos (perfis possıveis) sera feita via string binaria,
usando ”codificacao de Gray”(Gray codes). A codificacao de Gray e uma variacao da
codificacao binaria simples, em que os valores sao sempre representados de modo que
apenas 1 bit varie entre numeros adjacentes. Segundo resultados de comparacoes feitas
entre ambas as representacoes, a codificacao de Gray demonstra aumentar as chances de
haver melhoria incremental, devido a tornar menos provaveis grandes variacoes abruptas
nos valores representados. Alem disso, a codificacao de Gray incorre apenas em custo
computacional negligıvel.
Os valores representados sao as ordenadas dos pontos de controle de uma B-spline,
que define um perfil de asa, sendo os pontos no eixo das absissas fixos. As coordenadas
sao normalizadas para valores entre 0 e 1, e representadas por valores de ponto fixo, com
todos os valores tendo a mesma precisao. Desta forma pode-se descartar a parte inteira
das coordenadas, e armazenar apenas as partes fracionarias como simples numeros inteiros
nos cromossomos, simplificando as computacoes e operacoes geneticas. Sendo assim, a
representacao de um valor poderia ser:
0,3758
0, 1 1 1 0 1 0 1 0 1 1 1 0
27
Esta forma de codificacao possibilita a geracao de perfis invalidos/inviaveis (com
”cruzamentos”, por exemplo). Por isso, antes de passar o perfil para o programa de
analise, e necessario verificar a validade do mesmo, e, se necessario, descarta-lo e substituı-
lo por um novo valido. Como alternativa, tambem considera-se a possibilidade de, no caso
de ser gerado um perfil invalido, fazer a troca de pontos, de forma a descruza-lo, fazendo
com todo perfil gerado seja virtualmente valido.
Esta representacao e baseada na usada em (JONES; CROSSLEY; LYRINTZIS, 1998).
Optou-se pelo seu uso por se mostrar adequada, e ja ter eficacia comprovada.
3.1.2 B-splines
B-splines sao uma generalizacao de Curvas Bezier. Curvas Bezier sao linhas cur-
vas definidas pela aplicacao de uma funcao a pontos de controle (nos). Splines e suas
derivadas sao utilizadas onde se faz necessario representar matematicamente e manipu-
lar superfıcies, ou formas em geral, de curvatura suave. Seus parametros definem, de
acordo com a aplicacao da funcao, uma curva moldavel como um feixe de metal maleavel,
que se deforma suavemente conforme lhe sao aplicados pontos de pressao e curvatura,
representados matematicamente pelos pontos de controle.
B-splines sao formadas pela composicao de (n − k + 2) Curvas Bezier de ordem k
unidas nos nos t0, t1, ..., tn+k, onde cada ponto e afetado por k pontos de controle.
As funcoes base da B-spline sao definidas pela equacao:
s(u) =n∑
i=0
diNki (u), n >= k − 1 (3.1)
Onde s(u) sao os pontos ao longo da curva em funcao do parametro u, di sao os pontos
de controle, ou coeficientes dos pontos, e N ki e a iesima funcao base da B-spline de ordem
k.
Cada ponto de controle e associado a uma funcao base Ni,k, dada por:
Nki (u) = Nk−1
i (u)(u − ui)
(ui+k−1 − ui)+ Nk−1
i+1 (u)(ui+k − u)
(ui+k − ui+1)(3.2)
N1i = 1 caso ui <= u <= ui+1, e N1
i = 0 caso contrario.
Sendo Nki um polinomio de ordem k em cada intervalo ui < u < ui+1. k deve ser pelo
menos 2, e nao maior que n + 1 (o numero de pontos de controle).
28
A matematica que fundamenta as B-splines tem certa complexidade e nao foi estudada
a fundo.
3.1.3 Analise (XFOIL)
O programa XFOIL, usado para realizar a analise e avaliacao dos perfis, foi desen-
volvido originalmente como um programa interativo, para uso em estacoes de trabalho.
Fazendo-se necessario utiliza-lo de modo nao-interativo, pode-se optar por executa-lo
atraves de scripts, ou chamar diretamente as funcoes do programa atraves de suas in-
terfaces de programacao.
A alternativa mais simples e utilizar a execucao de scripts, que nao requer alteracao
de codigo do programa, porem deve apresentar desempenho inferior, por envolver rela-
tivamente muitas chamadas do sistema operacional. Esta alternativa pode ser adotada
inicialmente, em um prototipo, porem e bastante desejavel que seja implementada a alter-
nativa via chamadas diretas de funcoes do programa, pelo desempenho superior, devido
a grande quantidade de iteracoes necessarias ate chegar a solucao final, que e da natureza
do algoritmo.
Como entrada o programa recebe um arquivo contendo uma sequencia de coordenadas
desenhando o perfil a ser analisado. Todos os formatos de arquivos aceitos pelo programa
tem em comum representarem o perfil por pares de coordenadas cartesianas, normalizadas
ou nao. O formato de arquivo preferido, e a ser utilizado na implementacao do prototipo,
sem a implementacao via chamadas de funcao diretas, e denominado “arquivo de coorde-
nadas nomeado”, que consiste de um arquivo contendo na primeira linha um nome para o
perfil armazenado, e nas linhas seguintes a sequencia de coordenadas, duas por linha, no
formato “xnyn”, sendo xn e yn respectivamente as n-esimas coordenadas x e y, e ficando
o arquivo da seguinte forma:
NOME DO PERFIL
x1 y1
x2 y2
...
Este arquivo e gerado tomando-se os pontos da curva B-spline definida pelos pontos
de controle nos cromossomos.
A saıda que se obtem com o programa XFOIL constitui-se de uma tabela associando
29
angulos de ataque do perfil, e alguns coeficientes respectivos a cada um desses angulos.
Os coeficientes sao:
• CL: coeficiente de sustentacao (Lift)
• CD: coeficiente de arrasto (Drag)
• CM : coeficiente de momento (Momentum)
A ideia e que a aplicacao forneca estes dados ao projetista, como variaveis em um
ambiente de expressoes matematicas/logicas, permitindo-lhe especificar uma expressao
que sera usada como o criterio de otimizacao.
30
4 Resultados
Infelizmente nao foi possıvel realizar a implementacao efetiva do projeto, devido a
subestimacao da complexidade dos temas envolvidos, e do tempo necessario para seu
estudo e compreensao adequados, a tempo de realizar a implementacao.
Sendo assim, nao cabe relatar resultados.
Tem-se, no entanto, uma certa conviccao quanto a adequacao da proposta ao prob-
lema, com boas expectativas de obtencao de bons resultados, pelo conhecimento de
trabalhos anteriores fortemente relacionados as tecnicas envolvidas e sua aplicacao ao
mesmo problema (otimizacao de perfis de asa pelo uso de algoritmos geneticos e de
recozimento simulado), ou similares, e com bons resultados efetivos. (JONES; CROSS-
LEY; LYRINTZIS, 1998), (MAZZUCCO, 1999), (MAZIERO, 2003), (FALCO et al., 1995),
(MENGISTU; GHALY, ), outros.
31
5 Conclusoes e trabalhos futuros
Apesar de nao ter sido realizada a implementacao do projeto, algumas conclusoes
puderam ser obtidas.
Primeiramente, verificou-se que o objeto do problema em questao e relativamente
complexo, e, apesar do algoritmo usado tentar ser bastante independente do problema em
que seja aplicado, e necessario conhecimento relativamente avancado, ainda que apenas
para confirmar a implementacao correta e adequada, e resolver possıveis pontos crıticos
de implementacao.
Sendo assim, atesta-se ser inadequado tentar aplicar uma solucao deste tipo (heurıstica),
sem conhecimento relativamente avancado sobre o problema, ou sem acesso a pessoas com
tal conhecimento, e que talvez fosse mais adequada o projeto da solucao por alguem com
conhecimento direto da teoria e metodos envolvidos no problema, mesmo que com con-
hecimentos menores sobre os metodos e ferramentas computacionais de implementacao.
Foi bastante importante a este projeto o contato direto com pessoal da area tecnica do
problema.
Apesar disso, pelo que foi estudado e trabalhos anteriores existentes, verifica-se uma
grande probabilidade de que esta proposta de bons resultados e venha a ser de grande
utilidade para projetistas, uma vez implementada.
5.1 Representacoes geneticas alternativas
Com relacao a trabalhos futuros, tambem pode-se pensar em algumas coisas.
Outra forma de representacao interessante pode ser a codificacao binaria de dois
”eixos”do perfil: ”cambagem”X ”espessura”. Nesta representacao, uma B-spline repre-
sentaria a linha media (“cambagem”) do perfil, o seu formato basico, ao longo do eixo das
absissas, enquanto a espessura nos varios pontos do eixo seria representada por valores
separados.
32
Esta representacao teria como benefıcios a possıvel validade de todos os perfis gerados,
admitindo-se apenas valores positivos para a espessura, alem de se esperar uma maior
probabilidade de geracao de perfis aceitaveis de inıcio.
Outra ideia ocorrida foi o uso de cromossomos de tamanho variavel, de acordo com a
temperatura do recozimento: maior temperatura implicaria em cromossomos menores, e
menor temperatura em cromossomos maiores. Sendo que o aumento da quantidade de bits
seria feito “a direita”, ou seja, aumentando a quantidade de bits menos significativos. Isto
poderia induzir ainda mais o comportamento desejado do processo, de produzir maiores
variacoes no inıcio do recozimento, e menores e mais refinadas no fim.
33
Referencias
AMDAHL, G. Validity of the single processor approach to achieving large-scalecomputing capabilities. In: AFIPS Conference Proceedings. Reston, Va.: AFIPS Press,1967. v. 30, p. 483–485.
BINDIGANAVLE, K. An optimal approach to geometric trimmingof B-spline surfaces. Dissertacao (Mestrado) — Virginia Tech, 2000.Http://scholar.lib.vt.edu/theses/available/etd-04192001-172731/index.html(09/07/2004).
CHEN, H.; FLANN, N. S.; WATSON, D. W. Parallel genetic simulated annealing: Amassively parallel simd algorithm. IEEE transactions on parallel and distributed systems,v. 9, n. 2, p. 126–136, February 1998.
COELHO, L. dos S. Identificacao e controle de processos multivariaveis via metodologiasavancadas e inteligencia computacional. Tese (Doutorado) — Universidade Federal deSanta Catarina, Florianopolis, 2000.
DEMIDOV, E. B-spline basis functions. August 2001. Internet, http://www.ibiblio.org/e-notes/Splines/Basis.htm (09/07/2004).
FALCO, I. D. et al. A parallel genetic algorithm for transonic airfoil optimization.In: ISTITUTO RICERCHE SISTEMI INFORMATICI PARALLELI (IRSIP). Via P.Castellino 111, 80131 Napoli, Italy: Consiglio Nacionale delle Ricerche (CNR), 1995.
GEIST, G. A.; KOHL, J. A.; PAPADOPOULOS, P. M. PVM and MPI: a Comparisonof Features. May 1996.
GUSTAFSON, J. L. Reevaluating amdahl’s law. Communications of the ACM, v. 31,n. 5, May 1988.
HOLLAND, J. Adaptation in Natural and Artificial Systems. Cambridge: Mit Press,1975.
INGARGIOLA, D. G. P. CIS 307: Performance Evaluation. 2003. Internet:http://www.cis.temple.edu/ ingargio/cis307/readings/performance.html. Notas de aula.
JONES, B. R.; CROSSLEY, W. A.; LYRINTZIS, A. S. Aerodynamic and aeroacousticoptimization of airfoils via a parallel genetic algorithm. American Institute of Aeronauticsand Astronautics, n. 4811, 1998.
KIRCKPATRICK, S.; GELATT, C. D.; VECCHI, M. P. Optimization by simulatedannealing. Science, v. 220, n. 4598, p. 671–680, May 1983.
34
MAZIERO, E. A. Algoritmos Simulated Annealing em paralelo + Genetico Crossover:uma abordagem hıbrida. Dissertacao (Mestrado) — Universidade Federal de SantaCatarina, Florianopolis, 2003.
MAZZUCCO, J. Uma abordagem hıbrida do problema da programacao da producaoatraves dos algoritmos simulated annealing e genetico. Tese (Doutorado) — UniversidadeFederal de Santa Catarina. Centro Tecnologico, Florianopolis, 1999.
MENGISTU, T.; GHALY, W. Global optimization methods for the aerodynamicshape design of transonic cascades. In: DEPARTMENT OF MECHANICAL ANDINDUSTRIAL ENGINEERING. Concordia University, Montreal, Quebec, Canada.
MIRANDA, M. N. de. Algoritmos Geneticos: Fundamentos e Aplicacoes. Internet:http://www.gta.ufrj.br/ marcio/genetic.html.
TANENBAUM, A. S. Modern Operating Systems. [S.l.]: Prentice-Hall, 1992.
WHITLEY, D. A Genetic Algorithm Tutorial. Computer Science Department, ColoradoState University, Fort Collins, CO 8052, March 1993.
WIKIPEDIA. Genetic algorithm. maio 2004. Internet:http://en.wikipedia.org/wiki/Genetic algorithm.
WIKIPEDIA. Simulated annealing. maio 2004. Internet:http://en.wikipedia.org/wiki/Simulated annealing.
35
ANEXO A -- Artigo
Aplicacao do Algoritmo de Recozimento
Simulado Genetico Paralelo no Projeto de Perfis
de Asas de Aeronaves
Gustavo De Nardin
16 de julho de 2004
Resumo
Este trabalho estuda a aplicabilidade do algoritmo de otimizacao global”Parallel Genetic Simulated Annealing”(CHEN; FLANN; WATSON, 1998),que se trata de um algoritmo paralelo hıbrido genetico e de recozimentosimulado, ao problema de projeto de perfis de asas de aeronaves, fazendoum breve estudo das duas tecnicas de otimizacao global individualmente,e da implementacao do algoritmo paralelo usando o sistema MPI.
Abstract
This work studies the applicability of the hybrid ”Parallel Genetic
Simulated Annealing”(CHEN; FLANN; WATSON, 1998) global optimiza-tion algorithm in the airfoil design problem, doing a short study of thetwo individual global optimization techniques, and of the implementationof the parallel algorithm using the MPI system.
1 Introducao
O projeto de perfis de asas de aeronaves envolve um ciclo de tentativa e erro, emque o projetista desenvolve uma ideia inicial, baseado em seus conhecimentostecnicos, experiencia e requisitos do projeto, e passa a um processo de refi-namento, ate atingir os parametros desejados, ou o mais proximo deles queconseguir, para o perfil.
Havendo o desconhecimento de uma solucao otima, e o campo de solucoessendo ilimitado, esse processo de refinamento pode ser acelerado com o uso detecnicas de otimizacao, determinando-se um conjunto de parametros e aplicando-se um algoritmo adequados.
Este tipo de ferramenta representa uma melhora significativa no desempenhodo projeto, ja que pode-se testar mais solucoes, mais rapidamente, possivelmentechegando a solucoes melhores e nao-obvias. Com isso pode-se baixar o custo dedesenvolvimento de uma aeronave, e tambem aumentar sua economia, vida util,desempenho, etc., que tem relacao direta com o custo.
2 Problemas de otimizacao
Os problemas, do ponto de vista de sua computabilidade, podem ser classificadosentre os que podem ser resolvidos de forma determinıstica, por algoritmos, e os
1
que nao podem. Dentre os de solucao possıvel por algoritmos, ha ainda os quenao podem ser resolvidos na pratica, por exigirem recursos demasiados (espacoe/ou tempo).
Mede-se a complexidade de algoritmos segundo a quantidade de esforco/temponecessario para tratar o tamanho dos dados de entrada. Assim, ao dizer queum algoritmo tem ”complexidade linear”, denotada por ”O(N)”na notacao ”BigOh”, quer se dizer que o tempo de processamento necessario para seu terminocresce linearmente com relacao ao tamanho dos dados de entrada.
Varios problemas podem ser reduzidos a problemas similares. Isso levoua criacao de classes de problemas. Tais classes agrupam problemas cuja com-plexidade computacional seja similar. Existem diversas destas classes de com-plexidade, porem, as mais conhecidas, e de cujas muitas outras sao subclasses,sao as denominadas P, NP, e NP-difıcil. Problemas do tipo P tem algorit-mos conhecidos para resolucao determinıstica em tempo polinomial. Proble-mas do tipo NP podem ter suas possıveis solucoes verificadas em tempo poli-nomial deterministicamente, ou podem ser solucionados em tempo polinomialnao-determinısticamente, mas nao e conhecido algoritmo para solucao deter-minıstica em tempo polinomial. Problemas NP-difıceis sao os problemas NP”mais difıceis”. Formalmente, problemas NP-difıceis sao os problemas NP paraos quais todos os outros problemas NP podem ser reduzidos (via um algoritmotipo P).
Para resolver problemas difıceis demais para serem resolvidos de forma de-terminıstica, desenvolveram-se outras tecnicas de solucao nao-determinısticas(heurısticas). Dentre estas tecnicas estao os Algoritmos Geneticos(HOLLAND,1975), e o Recozimento Simulado(KIRCKPATRICK; GELATT; VECCHI, 1983).
2.1 Algoritmos Geneticos
Algoritmos geneticos sao um ramo da area denominada ”Computacao Evolu-tiva”, ou um dentre varios ”Algoritmos Evolutivos”. Seu funcionamento, assimcomo o dos outros ramos da Computacao Evolutiva, baseia-se nas ideias daEvolucao Natural.
A criacao desta tecnica e atribuıda a John Holland (HOLLAND, 1975). Elaconsiste em definir o problema de modo que as solucoes possıveis sejam represen-tadas por ”indivıduos”, membros de uma populacao, cada um com seu proprio,provavelmente unico, conjunto de ”genes”, sendo que os genes codificam valorespossıveis para variaveis envolvidas no problema. Entao sao feitos cruzamentosentre estes indivıduos, misturando seus genes entre si, e entre indivıduos deoutras populacoes, dando origem a novas geracoes de populacoes e repetindo oprocedimento enquanto se desejar.
Um algoritmo genetico basico em pseudocodigo pode ser o seguinte:
1 i n i c i o2 t = 0 ;3 i n i c i a l i z a p o p u l a c a o (p ) ;4 a v a l i a a p t i d o e s (p ) ;5 r ep i t a6 t = t + 1 ;7 s e l e c ao (p ) ;8 recombinacao (p ) ;
2
9 mutacao (p ) ;10 a v a l i a a p t i d o e s (p ) ;11 enquanto nao condicao de termino (p , t ) ;12 fim
2.2 Recozimento Simulado
A tecnica de otimizacao combinatoria por Recozimento Simulado se baseia naMecanica Estatıstica, uma disciplina da fısica de materiais condensados que es-tuda propriedades de sistemas com grande numero de atomos, nos quais apenaso comportamento mais provavel do sistema pode ser observado, e mais especi-ficamente na busca do estado destes sistemas em baixa temperatura.
Ao adaptar esta tecnica para otimizacao de sistemas em geral, a “energia” dosistema e determinada por uma “funcao custo”, e a “temperatura” passa a serum parametro de controle na mesma unidade da funcao custo.(KIRCKPATRICK;
GELATT; VECCHI, 1983)Desta forma, e relativamente simples implementar este algoritmo para prob-
lemas de otimizacao combinatoria, dispondo-se de 4 itens:
• uma representacao eficaz dos parametros do sistema
• um reorganizador para modificacao aleatoria dos parametros de uma con-figuracao
• uma funcao de aceite que considere os objetivos da otimizacao
• um cronograma de recozimento das temperaturas e perıodos de tempopara os quais o sistema ira evoluir
2.3 Recozimento Simulado Genetico Paralelo
O Recozimento Simulado Genetico Paralelo e a implementacao paralela do algo-ritmo hıbrido denominado Recozimento Simulado Genetico (”Genetic SimulatedAnnealing”, GSA), que combina o capacidade de recombinacao do operador decruzamento dos Algoritmos Geneticos, e a rotina de recozimento do Recozi-mento Simulado, de modo que este supera os resultados de cada algoritmo emisolado.(CHEN; FLANN; WATSON, 1998)
No GSA paralelo, cada processador mantem uma solucao do problema, eexecuta o algoritmo de recozimento modificado usando esta solucao, de formaisolada dos outros. A comunicacao entre processadores se da para realizar ocruzamento genetico, quando cada processador recebe a solucao residente deoutro, determinado aleatoriamente a cada iteracao.
As vantagens apresentadas sao varias e significativas. O algoritmo mantema prova formal de convergencia ao otimo global; e naturalmente paralelo devidoas caracterısticas advindas dos Algoritmos Geneticos; nao apresenta gargalo decomunicacao, por seu processo de selecao ser baseado na estrategia de selecaolocal do Recozimento Simulado, e pela troca de informacoes ser regional;
O algoritmo GSA e o seguinte:
1 begin
2 temperature := i n i t i a l t emp e r a t u r e ( ) ;
3
3 r := random so lut ion ( ) ;4 for i := 1 to max i t e ra t i on do
5 begin
6 d i r e c t i o n := random (0 ,7 , random seed ) ;7 d i s tance := random(1 , max distance , random seed ) ;8 v := XNet d i rect ion ( d i s tance ) . r ;9 {n0 , n1} := cro s sove r muta t i on ( r , v ) ;
10 r := s e l e c t ( r , n0 , n1 , temperature ) ;11 temperature := temperature ∗ a ;12 end
13 return r14 end
3 Processamento Paralelo
Processamento paralelo se trata da execucao de mais de uma sequencia de in-strucoes simultaneas, de alguma forma coordenados, com algum objetivo.
A principal vantagen do uso de computacao paralela e a reducao do temponecessario para se obter uma solucao. podem haver tambem vantagens rela-cionadas a caracterısticas subjetivas, como a melhor modelagem de um prob-lema para solucao de forma paralela.
No entanto, observe-se que a reducao de tempo nao e necessariamente lin-ear em relacao ao aumento do numero de processadores. Alem do custo decomunicacao envolvido na paralelizacao, tambem e necessaria a aplicacao deum algoritmo paralelizado para haver qualquer ganho, o que tem certo graude dificuldade de definicao correta. Alem disso, o ganho com a paralelizacao elimitado as partes paralelizaveis da execucao.
A “Lei de Amdahl”, assim denominada em referencia ao seu autor, GeneAmdahl, em 1967, diz que o ganho obtido com a paralelizacao e de (s + p)/(s +p/N), sendo ’s’ o tempo gasto nas partes seriais do programa, ’p’ o tempo gastonas partes paralelas, e ’N’ o numero de processadores usado.(AMDAHL, 1967)Mas foi observado por (GUSTAFSON, 1988) que esta nao se aplica de formainalterada aos modelos atuais de computacao paralela macica, devido a se basearem hipoteses inapropriadas para estes. Nestes casos o ganho aproximado passaa ser calculado segundo a “Lei de Gustafson-Barsis”: (s+p∗N)/(s+p), onde ’s’e a soma dos tempos de inicializacao, carga, gargalos, e E/S, ’p’ e o tempo nosprocessos paralelizaveis, e ’N’ o numero de processadores. A “Lei de Amdahl” eaplicavel a casos de paralelismo de controle (quando o algoritmo se constitui dediferentes tarefas realizaveis em paralelo), enquanto a “Lei de Gustafson-Barsis”se aplica ao paralelismo de dados (mesma tarefa aplicada a varios conjuntos dedados, ou seja, SIMD).(INGARGIOLA, 2003)
Os mecanismos necessarios para dar suporte a programacao paralela podemseguir alguns modelos diferentes, sendo que o mınimo necessario e que possi-bilitem a distribuicao do processamento, possivelmente permitindo especificarsua granularidade e associacao de processos a unidades de processamento es-pecıficas, e um ou mais modos de coordenacao entre os processos.
4
3.1 Computacao distribuıda e paralelismo
A computacao distribuıda e uma forma de processamento paralelo em que variosprocessadores, cada um com memoria e demais recursos proprios (locais) e in-acessıveis diretamente aos outros nos, sao programados de forma a trabalharconjuntamente. Nesse tipo de sistema paralelo, a sincronizacao e coordenacaoentre os nos de processamento sao feitas atraves da troca de mensagens pelomeio de interconexao, que deve ser algum tipo de rede.
4 Definicao da implementacao
Tendo-se visto de forma geral e com alguns detalhes os varios aspectos envolvi-dos no problema do projeto de perfis de asa, propoe-se a aplicacao do algoritmode Recozimento Simulado Genetico Paralelo, definido em (CHEN; FLANN; WAT-
SON, 1998), na busca de solucoes satisfatorias para o mesmo.
4.1 Representacao genetica
A representacao genetica dos indivıduos (perfis possıveis) sera feita via stringbinaria, usando ”codificacao de Gray”(Gray codes). A codificacao de Gray euma variacao da codificacao binaria simples, em que os valores sao sempre rep-resentados de modo que apenas 1 bit varie entre numeros adjacentes. Segundoresultados de comparacoes feitas entre ambas as representacoes, a codificacaode Gray demonstra aumentar as chances de haver melhoria incremental, devidoa tornar menos provaveis grandes variacoes abruptas nos valores representa-dos. Alem disso, a codificacao de Gray incorre apenas em custo computacionalnegligıvel.
Os valores representados sao as ordenadas dos pontos de controle de umaB-spline, que define um perfil de asa, sendo os pontos no eixo das absissas fixos.As coordenadas sao normalizadas para valores entre 0 e 1, e representadas porvalores de ponto fixo, com todos os valores tendo a mesma precisao. Desta formapode-se descartar a parte inteira das coordenadas, e armazenar apenas as partesfracionarias como simples numeros inteiros nos cromossomos, simplificando ascomputacoes e operacoes geneticas. Sendo assim, a representacao de um valorpoderia ser:
0,37580, 1 1 1 0 1 0 1 0 1 1 1 0
4.2 XFoil
Como entrada o programa recebe um arquivo contendo uma sequencia de co-ordenadas desenhando o perfil a ser analisado. Todos os formatos de arquivosaceitos pelo programa tem em comum representarem o perfil por pares de co-ordenadas cartesianas, normalizadas ou nao. O formato de arquivo preferido,e a ser utilizado na implementacao do prototipo, sem a implementacao viachamadas de funcao diretas, e denominado “arquivo de coordenadas nomeado”,que consiste de um arquivo contendo na primeira linha um nome para o perfilarmazenado, e nas linhas seguintes a sequencia de coordenadas, duas por linha,no formato “xnyn”, sendo xn e yn respectivamente as n-esimas coordenadas xe y, e ficando o arquivo da seguinte forma:
5
NOME DO PERFIL
x1 y1
x2 y2
...
Este arquivo e gerado tomando-se os pontos da curva B-spline definida pelospontos de controle nos cromossomos.
A saıda que se obtem com o programa XFOIL constitui-se de uma tabelaassociando angulos de ataque do perfil, e alguns coeficientes respectivos a cadaum desses angulos. Os coeficientes sao:
• CL: coeficiente de sustentacao (Lift)
• CD: coeficiente de arrasto (Drag)
• CM : coeficiente de momento (Momentum)
A ideia e que a aplicacao forneca estes dados ao projetista, como variaveisem um ambiente de expressoes matematicas/logicas, permitindo-lhe especificaruma expressao que sera usada como o criterio de otimizacao.
5 Conclusao
Tendo sido feito um estudo do problema e de uma possıvel implementacao, ebaseando-se em trabalhos anteriores da area, conclui-se que esta proposta temboas chances de gerar bons resultados e vir a ser util na area a que se destina,uma vez que seja implementada.
Referencias
CHEN, H.; FLANN, N. S.; WATSON, D. W. Parallel genetic simulatedannealing: A massively parallel simd algorithm. IEEE transactions on paralleland distributed systems, v. 9, n. 2, p. 126–136, February 1998.
HOLLAND, J. Adaptation in Natural and Artificial Systems. Cambridge: MitPress, 1975.
KIRCKPATRICK, S.; GELATT, C. D.; VECCHI, M. P. Optimization bysimulated annealing. Science, v. 220, n. 4598, p. 671–680, May 1983.
AMDAHL, G. Validity of the single processor approach to achieving large-scalecomputing capabilities. In: AFIPS Conference Proceedings. Reston, Va.:AFIPS Press, 1967. v. 30, p. 483–485.
GUSTAFSON, J. L. Reevaluating amdahl’s law. Communications of the ACM,v. 31, n. 5, May 1988.
INGARGIOLA, D. G. P. CIS 307: Performance Evaluation. 2003. Internet:http://www.cis.temple.edu/ ingargio/cis307/readings/performance.html.Notas de aula.
WHITLEY, D. A Genetic Algorithm Tutorial. Computer Science Department,Colorado State University, Fort Collins, CO 8052, March 1993.
6
GEIST, G. A.; KOHL, J. A.; PAPADOPOULOS, P. M. PVM and MPI: aComparison of Features. May 1996.
BINDIGANAVLE, K. An optimal approach to geometric trimmingof B-spline surfaces. Dissertacao (Mestrado) — Virginia Tech, 2000.Http://scholar.lib.vt.edu/theses/available/etd-04192001-172731/index.html(09/07/2004).
DEMIDOV, E. B-spline basis functions. August 2001. Internet,http://www.ibiblio.org/e-notes/Splines/Basis.htm (09/07/2004).
JONES, B. R.; CROSSLEY, W. A.; LYRINTZIS, A. S. Aerodynamic andaeroacoustic optimization of airfoils via a parallel genetic algorithm. AmericanInstitute of Aeronautics and Astronautics, n. 4811, 1998.
FALCO, I. D. et al. A parallel genetic algorithm for transonic airfoiloptimization. In: ISTITUTO RICERCHE SISTEMI INFORMATICIPARALLELI (IRSIP). Via P. Castellino 111, 80131 Napoli, Italy: ConsiglioNacionale delle Ricerche (CNR), 1995.
MENGISTU, T.; GHALY, W. Global optimization methods for theaerodynamic shape design of transonic cascades. In: DEPARTMENT OFMECHANICAL AND INDUSTRIAL ENGINEERING. Concordia University,Montreal, Quebec, Canada.
TANENBAUM, A. S. Modern Operating Systems. [S.l.]: Prentice-Hall, 1992.
MAZZUCCO, J. Uma abordagem hıbrida do problema da programacaoda producao atraves dos algoritmos simulated annealing e genetico. Tese(Doutorado) — Universidade Federal de Santa Catarina. Centro Tecnologico,Florianopolis, 1999.
MAZIERO, E. A. Algoritmos Simulated Annealing em paralelo + GeneticoCrossover: uma abordagem hıbrida. Dissertacao (Mestrado) — UniversidadeFederal de Santa Catarina, Florianopolis, 2003.
WIKIPEDIA. Genetic algorithm. maio 2004. Internet:http://en.wikipedia.org/wiki/Genetic algorithm.
WIKIPEDIA. Simulated annealing. maio 2004. Internet:http://en.wikipedia.org/wiki/Simulated annealing.
COELHO, L. dos S. Identificacao e controle de processos multivariaveis viametodologias avancadas e inteligencia computacional. Tese (Doutorado) —Universidade Federal de Santa Catarina, Florianopolis, 2000.
MIRANDA, M. N. de. Algoritmos Geneticos: Fundamentos e Aplicacoes.Internet: http://www.gta.ufrj.br/ marcio/genetic.html.
7