aplica˘c~ao do algoritmo de recozimento simulado gen etico ... · sincronismo, limita˘c~ao dos...

43
Gustavo De Nardin Aplica¸ ao do Algoritmo de Recozimento Simulado Gen´ etico Paralelo no Projeto de Perfis de Asas de Aeronaves Florian´ opolis - SC - Brasil 2004

Upload: hakhue

Post on 09-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

Gustavo De Nardin

Aplicacao do Algoritmo de Recozimento

Simulado Genetico Paralelo no Projeto de

Perfis de Asas de Aeronaves

Florianopolis - SC - Brasil

2004

Page 2: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 3: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 4: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

O homem que foge pode lutar novamente. (Menandro)

Page 5: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

Este trabalho nao e dedicado a Eris.

Page 6: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 7: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 8: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 9: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 10: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 11: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 12: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 13: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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-

Page 14: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 15: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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-

Page 16: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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 ) ;

Page 17: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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-

Page 18: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 19: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 20: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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)

Page 21: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 22: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 23: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 24: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 25: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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-

Page 26: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 27: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 28: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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).

Page 29: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 30: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 31: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 32: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 33: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 34: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 35: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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.

Page 36: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

35

ANEXO A -- Artigo

Page 37: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 38: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 39: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 40: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 41: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 42: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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

Page 43: Aplica˘c~ao do Algoritmo de Recozimento Simulado Gen etico ... · sincronismo, limita˘c~ao dos canais de comunica˘c~ao, etc., juntamente com di culdades ori-undas da pr opria paraleliza˘c~ao

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