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