Cálculo da altura máxima atingida por um projétil usando algoritmos
genéticos implementado no aplicativo MS Excel
Douglas Peixoto de Carvalho
Aluno do Curso de Matemática da Universidade Anhanguera Uniderp - MS
Rua Ceará, 333 - CEP: 79003-010 - Campo Grande, MS
[email protected]
Celso Correia de Souza1, José Francisco dos Reis Neto2
Professor dos Programas de Mestrados em Meio Ambiente e Desenvolvimento Regional e em
Produção e Gestão Agroindustrial da Universidade Anhanguera - Uniderp. 2Professor do Curso de
Administração da Universidade Anhanguera - Uniderp.
[email protected]; [email protected]
1
RESUMO
Algoritmos Genéticos (AGs) são metas-heurísticas que operam com populações de indivíduos
inspirados em modelos computacionais e na biologia evolutiva [2]. O processo se inicia com um
conjunto de soluções criado aleatoriamente, denominado população inicial, e é realizada por meio
de gerações. Cada população é avaliada, sendo alguns indivíduos selecionados para a próxima
geração e os restantes são recombinados, alguns sofrem mutações para formar uma nova
população. A nova população é utilizada como entrada para a próxima iteração do algoritmo, isso é
feito até que todos os indivíduos satisfaçam o critério de avaliação.
Os AG´s diferem dos métodos tradicionais de otimização principalmente em quatro aspectos: i)
trabalham com codificação do conjunto de parâmetros e não com os próprios parâmetros; ii)
trabalham com uma população e não com um único ponto; iii) utilizam informações de custo ou
recompensa e não derivadas ou outro conhecimento auxiliar e; iv) utilizam regras de transição
probabilísticas e não determinísticas [1].
Através dos Algoritmos Genéticos, implementado no aplicativo MS Excel, é possível encontrar
a altura máxima que um projétil alcança em um lançamento oblíquo conhecendo apenas sua
velocidade inicial na direção de y (altura) voy ou ângulo e vo .
O problema pode ser colocado da seguinte forma: um projétil é arremessado a partir do solo
( y0 = 0 ), com velocidade inicial voy de 8,6m.s −1 . Considerando a aceleração da gravidade
g = 10 m.s −1 , qual a altura máxima atingida pelo projétil?
y = y0 + voy t −
1 2
gt
2
Onde y , é a altura máxima a ser determinada; y0 , é sua velocidade inicial ( t = 0 ); t é o instante a
ser determinado para que a função alcance o seu máximo e g representa a força gravitacional em
m.s −1 .
Na solução do problema, a implementação do algoritmo consistiu, inicialmente, em gerar a
população inicial de 20 indivíduos para t , disposta numa matriz binária de 0 ou 1, com vinte linhas
e 8 colunas.
Para cada individuo do intervalo substituiu-se t para avaliação de desempenho, zerando
aqueles indivíduos que apresentavam resultados negativos. Com a população restante, calculou a
probabilidade Pi de cada indivíduo ser escolhido, e a probabilidade acumulada Qi , desde o
primeiro até o vigésimo indivíduo, visando a implementação da roleta viciada. A roleta viciada
consistiu do cálculo de vinte números aleatórios zi , i = 1,2,3, Λ 20 , variando de 0 a 1,
comparando-os com as probabilidades acumuladas Qi . Para Qi −1 < z ≤ Qi , tomou-se z = Qi ,para
todo i , atualizando-se os valores de t que já foram calculados anteriormente. Nessa etapa é
possível que na população aconteçam indivíduos repetidos e outros indivíduos podem desaparecer
[2, 3].
Procedeu-se, logo após, o elitismo da população remanescente, reservando-se 20% dos
melhores indivíduos, não repetidos, para fazerem parte da próxima geração. Com os indivíduos
1150
restantes foram realizados cruzamentos dois-a-dois, escolhidos de tal modo que o indivíduo mais
apto do grupo cruzava-se com o menos apto, sendo feito cruzamentos na troca de suas caudas, com
o ponto de cruzamento determinado aleatoriamente. Daqueles indivíduos obtidos dos cruzamentos
foram realizadas mutações em 15% dentre todos os indivíduos, escolhendo aleatoriamente o ponto
de mutação, com a finalidade de recuperar alguns indivíduos de altas aptidões que, porventura,
foram excluídos nos cruzamentos efetuados. Após as mutações, novos indivíduos foram
incorporados aos 20% melhores, obtidos através do elitismo. Com essa nova população de
indivíduos determinou-se novos instantes de t,enquanto não atendida, procedia-se nova iteração até
que a função fosse satisfeita.
Utilizando o aplicativo MS Excel, o processo convergiu na vigésima oitava iteração, obtendo-se
o instante de t , igual a 0,88 s , alcançando a altura máxima do projétil. Na Tabela abaixo estão
apresentados os resultados finais obtidos, dão pelo valor da altura máxima e o instante em que isso
ocorre após seu lançamento.
Legenda: T0: tempo inicial; Y0: altura inicial; Tf: tempo final; Yf: altura final
4
3.5
altura (m)
Assim, na vigésima oitava iteração os indivíduos
convergiram para uma altura máxima para
ymax = 3,7734m . Além de se obter a solução
para o problema, nos permite a visualização de
como a função se comportaria em outros pontos.
O gráfico da figura ao lado mostra a trajetória do
projétil.
3
2.5
2
1.5
1
0.5
0
-0.5
-1
0
0.2
0.4
0.6
0.8
1
tempo (t)
1.2
1.4
1.6
1.8
Figura: Gráfico da trajetória do projétil
Palavras-chave: Altura Máxima de um Projétil, Algoritmos Genéticos, MS Excel
REFERÊNCIAS
[1] Apostila EPAC- Encontro Paranaense de Computação – Algoritmos Genéticos Autor: Andre
Brun
Pag. 7 – 10
[2] G. V. R.Viana. Meta-heuristicas e programação paralela em otimização combinatória.
Fortaleza: EUFC, 1998.
[3] R. Linden. Algoritmos genéticos. Rio de Janeiro: Brasport, 2008.
1151
Download

Cálculo da altura máxima atingida por um projétil usando algoritmos