Optimizaci on de estructuras con enjambres gramaticales

56
ESCUELA T ´ ECNICA SUPERIOR DE INGENIER ´ IA DE SISTEMAS INFORM ´ ATICOS Trabajo de Fin de Grado Optimizaci´ on de estructuras con enjambres gramaticales Grado en Ingenier´ ıa del Software Autor: Maksymilian Jan Szymanski Tutor: Luis Fernando de Mingo L´ opez

Transcript of Optimizaci on de estructuras con enjambres gramaticales

Page 1: Optimizaci on de estructuras con enjambres gramaticales

ESCUELA TECNICA SUPERIOR DE INGENIERIA DE SISTEMAS

INFORMATICOS

Trabajo de Fin de Grado

Optimizacion de estructuras con enjambres

gramaticales

Grado en Ingenierıa del Software

Autor: Maksymilian Jan Szymanski

Tutor: Luis Fernando de Mingo Lopez

Page 2: Optimizaci on de estructuras con enjambres gramaticales

Abstract

Nowadays companies devote a lot of money to the investigation and design of new

products that outperform the competition. This is no different in the field of automo-

biles, where even the smallest detail is taken care of when developing new models or

improving old ones. A major factor in these developments is aerodynamics, which has

a great influence on the final performance of a vehicle. The problem with this whole

process is that in order to obtain these adequate results, it is necessary to carry out

complex mathematical calculations and to spend a lot of time on the design of each

part.

Therefore, the aim of this work is to offer a new, more efficient and interesting

alternative to the traditional way of designing aerodynamic parts thanks to artificial

intelligence, trying to solve this problem of complexity and resources. Specifically,

it has been achieved by means of a genetic algorithm at scale that automates the

generation process allowing the obtaining of different elements in each execution. As

an input it accepts a two-dimensional body of certain measures and as an output it

produces an object that resembles greater aerodynamics.

This drastically reduces the time and effort needed to explore new solutions previ-

ously unvalued due to their complexity. It should be noted that it is not about offering

a complete solution that can replace the current production process, but laying the

foundations to show the real potential of these technologies that will establish the

foundations of future societies.

Page 3: Optimizaci on de estructuras con enjambres gramaticales
Page 4: Optimizaci on de estructuras con enjambres gramaticales

Resumen

Hoy en dıa las empresas dedican mucho dinero a la investigacion y al diseno de nuevos

productos que superen a la competencia. Esto no es diferente en el ambito de la auto-

movilıstica, donde se cuida hasta el mas pequeno detalle a la hora de desarrollar nuevos

modelos o mejorar los antiguos. Un factor super importante en estos desarrollos es la

aerodinamica, la cual tiene mucha influencia en las prestaciones finales de un vehıculo.

El problema de todo este proceso es que para obtener estos resultados adecuados se

necesita la realizacion de complejos calculos matematicos y mucho tiempo dedicado al

diseno de cada parte.

Por lo tanto, en este trabajo se pretende ofrecer una nueva alternativa mas eficiente

y mas interesante a la forma tradicional del diseno de piezas aerodinamicas gracias

a la inteligencia artificial, intentando solucionar este problema de complejidad y re-

cursos. Concretamente, se ha conseguido mediante un algoritmo genetico a escala que

automatiza el proceso de generacion permitiendo la obtencion de elementos diferentes

en cada ejecucion. Como entrada acepta un cuerpo bidimensional de unas medidas

determinadas y como salida ofrece un objeto que aparenta una mayor aerodinamica.

De esta manera se reduce drasticamente el tiempo y el esfuerzo necesario para

la exploracion de nuevas soluciones antes no valoradas debido a su complejidad. Cabe

destacar que no se trata de ofrecer una solucion completa que pueda sustituir al proceso

de produccion actual, sino que sentar las bases para mostrar el potencial real de estas

tecnologıas que sentaran las bases de las sociedades futuras.

Page 5: Optimizaci on de estructuras con enjambres gramaticales
Page 6: Optimizaci on de estructuras con enjambres gramaticales

Indice general

1 Introduccion 5

1.1 Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Algoritmos geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.1 Orıgenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2.2 Bases biologicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3 Diseno de piezas y vehıculos aerodinamicos . . . . . . . . . . . . . . . . 13

2 Objetivos 19

3 Diseno de la solucion 20

3.1 Algoritmos Geneticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.1 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.1.1 Seleccion . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1.1.2 Cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1.1.3 Mutacion . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.1.4 Reemplazo . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.1.5 Copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1.2 Evaluacion o Fitness . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 Tecnologıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Resultados 27

4.1 Primera aproximacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2 Mejora del algoritmo, pruebas e ideas anadidas . . . . . . . . . . . . . . 30

4.3 Aplicacion y solucion final . . . . . . . . . . . . . . . . . . . . . . . . . . 35

1

Page 7: Optimizaci on de estructuras con enjambres gramaticales

4.3.1 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.3.2 Interfaz y ejecucion . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 Conclusion 41

6 Discusion 42

7 Agradecimientos 46

2

Page 8: Optimizaci on de estructuras con enjambres gramaticales
Page 9: Optimizaci on de estructuras con enjambres gramaticales

Indice de figuras

1.1 Evolucion y adaptacion al medio de las aves en concreto en referencia a

la forma de sus picos segun Darwin . . . . . . . . . . . . . . . . . . . . . 8

1.2 Logo de la conferencia internacional sobre algoritmos geneticos . . . . . 9

1.3 Representacion simplificada del proceso de la evolucion y el origen de la

especies actuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.4 Las cuatro fuerzas actuando sobre un avion . . . . . . . . . . . . . . . . 13

1.5 Modelo de un coche de F1 y el movimiento del aire a su alrededor . . . 14

1.6 Objetos ejemplo que muestran la importancia de la forma sobre el flujo

del aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.7 Ejemplos de formas simples y sus coeficientes de arrastre donde 0 ex-

presarıa que todo el aire pasa sin ser alterado . . . . . . . . . . . . . . . 16

1.8 Imagen de un vehıculo con el aire formando los vortices al paso por la

forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.9 Funcionamiento basico de la carga aerodinamica . . . . . . . . . . . . . 18

3.1 Algoritmo genetico simplificado . . . . . . . . . . . . . . . . . . . . . . . 21

3.2 Seleccion por ruleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3 Cruce de un punto en cromosomas de tipo binario . . . . . . . . . . . . 23

3.4 Mutacion de tipo binaria donde se invierten 3 bits . . . . . . . . . . . . 24

4.1 Figura resultante de la matriz anterior . . . . . . . . . . . . . . . . . . . 28

4.2 Figura con una anchura de 5, 3 escalones arriba y uno abajo siendo su

fitness el maximo posible, 1. . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.3 Interfaz con grafico inicial . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3

Page 10: Optimizaci on de estructuras con enjambres gramaticales

4.4 Primera forma de visualizar una matriz de 100x100 con una figura pe-

quena en el centro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.5 Puntos mutables de la matriz (verde y azul) . . . . . . . . . . . . . . . . 33

4.6 Estructura de los objetos en el algoritmo . . . . . . . . . . . . . . . . . . 35

4.7 Estructura general del algoritmo . . . . . . . . . . . . . . . . . . . . . . 36

4.8 Primera ventana que muestra la interfaz al ejecutar . . . . . . . . . . . . 37

4.9 Ventana final tras una ejecucion (l=30, w=10, g=1000, f=80) . . . . . . 38

4.10 Grafico de la evolucion de la calidad media y la del mejor individuo de

cada generacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.11 Algunos datos interesantes mas . . . . . . . . . . . . . . . . . . . . . . . 40

6.1 Analisis de un vehıculo de carreras antiguo con los resultados de aero-

dinamica ofrecidos por la herramienta de MicroCFD 3D Virtual Wind

Tunnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.2 Analisis de un vehıculo normal con los resultados de aerodinamica ofre-

cidos esta vez por la herramienta de Altair HyperWorks Wind Tunnel . 44

4

Page 11: Optimizaci on de estructuras con enjambres gramaticales
Page 12: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 1

Introduccion

A lo largo de los ultimos 20 anos la inteligencia artifical ha ido pasando de ser un

conjunto de teorıas y proyectos de investigacion a aplicaciones reales en multitud de

campos diferentes de la informatica. Se ha demostrado el inmenso potencial que presen-

tan estas tecnologıas lo que tambien se pretende conseguir con este proyecto. Se trata

de aplicar un algoritmo genetico para acelerar y mejorar el proceso de produccion de

vehıculos en especial aquellos destinados a las carreras deportivas. Concretamente se

quiere optimizar y automatizar el proceso de diseno de ciertas piezas de la carrocerıa

cuya forma depende en gran parte de la resistencia aerodinamica que tengan. Lo que

anteriormente requerıa un equipo especializado que cree figuras y modelos complejos

mediante programas como AutoCad ahora se podrıa conseguir mediante la ejecucion

repetida de este algoritmo.

5

Page 13: Optimizaci on de estructuras con enjambres gramaticales

1.1 Motivacion

La razon principal de este trabajo es la fascinacion personal por todo lo relacionado con

la informatica mas vanguardista tratandose en este caso de los algoritmos geneticos.

Ademas siento un profundo interes por las similitudes que se pueden encontrar entre

la tecnologıa y la naturaleza o biologıa. Me parece muy importante intentar analizarlas

debido a que se pueden ver patrones y mecanismos que junto con los conocimientos

actuales de computacion pueden mostrar nuevos caminos de investigacion y desarrollo.

El potencial de estos nuevos posibles descubrimientos es tal debido a que al imitar

la naturaleza se esta basando estas investigaciones en unos fundamentos basados en

cientos de miles de anos de evolucion. Un claro ejemplo de esto son las redes neuronales

basadas en como su propio nombre indica en el funcionamiento de las neuronas del

cerebro o los algoritmos geneticos que basan su funcionamiento en las tecnicas de

reproduccion y evolucion de los seres vivos.

6

Page 14: Optimizaci on de estructuras con enjambres gramaticales

1.2 Algoritmos geneticos

Los algoritmos geneticos como ya se ha introducido en la seccion anterior son un

conjunto de tecnicas computacionales que se basan muy firmemente en los patrones

evolutivos presentes en la naturaleza. Su funcionalidad suele ser principalmente la de

encontrar soluciones a problemas que necesitan una gran capacidad computacional si se

realizasen mediante las tecnicas y algoritmos tradicionales. Por otro lado tambien sirven

para optimizar parametros cuyos valores son difıciles de determinar de forma manual

o son muchos y estan correlacionados entre sı como es el caso de las redes neuronales.

Ademas se pueden utilizar como herramientas para la realizacion de pruebas mediante

caja negra ya que pueden producir soluciones desconociendo los procesos internos o las

finalidades de un objeto de estudio. En resumen es una herramienta que otorga dos

ventajas principalmente: acelerar los desarrollos e investigaciones y producir soluciones

nuevas a problemas practicamente imposibles anteriormente.

1.2.1 Orıgenes

Se podrıa decir que todo comenzo con los filosofos griegos de la antiguedad cuyo interes

por la naturaleza y sus propiedades les llevo a la elaboracion de diferentes teorıas sobre

la clasificacion animal y la posibilidad de cambio a lo largo del tiempo. El problema

que estas teorıas no eran mas que ideas que se acercaban a la realidad mezcladas con

mitologıa y desconocimiento cientıfico.

7

Page 15: Optimizaci on de estructuras con enjambres gramaticales

Por ello no fue hasta los siglos XVIII y XIX cuando cientıficos como Christian

Pander, Jean-Baptiste Lamarck o Charles Darwin que comenzaron a fundar las bases

de la evolucion biologica negando ası las creencias fijistas de la epoca. Todo esto llevo

a numerosos conflictos con la opinion cientıfica de estos siglos y no fue hasta finales del

siglo XIX y comienzos del XX que estas nuevas teorıas pudieron establecerse.

Figura 1.1: Evolucion y adaptacion al medio de las aves en concreto en referencia a laforma de sus picos segun Darwin

A partir de este momento la evolucion biologica ya era aceptada como un hecho

probado lo que llevo a Alan Turing, uno de los padres de la inteligencia artificial, a desa-

rrollar la idea de una maquina del aprendizaje basada en los principios de la evolucion.

[1] En el artıculo que publico en Octubre de 1950 detalla esta idea donde introduce

conceptos como las mutaciones o la seleccion natural nunca vistas anteriormente en el

ambito de la tecnologıa o la electronica.

[2]Esto dio pie a que en 1957 un cientıfico australiano llamado Alex Fraser comenza-

se a simular los procesos geneticos en ordenadores. Sus esfuerzos en este campo fueron

tan notables que muchos de sus trabajos siguen siendo utilizados como referente hoy

en dıa. A partir de aquı se popularizo esta idea de forma exponencial atrayendo a mas

y mas cientıficos, matematicos y otros expertos en el campo. [3]Especialmente cabe

8

Page 16: Optimizaci on de estructuras con enjambres gramaticales

destacar el libro de John Henry Holland publicado en 1975 considerado por muchos la

obra mas importante e innovadora sobre los algoritmos geneticos que fundo la base de

gran parte de las investigaciones y desarrollos posteriores.

[4]Todo esto fue un avance importantısimo para la inteligencia artificial y la in-

formatica pero el problema es que la mayorıa de los artıculos o libros hablaban de

teorıas y potencial pero todavıa no se habıa utilizado de forma real en la industria.

Esto cambio a lo largo de los anos 80 con la primera Conferencia Internacional sobre

Algoritmos Geneticos donde se comenzo a hablar de las aplicaciones y mejoras que

pueden otorgar estas nuevas tecnicas. Esta conferencia se siguio realizando a lo largo

de los anos y en el ano 2018 se celebro la numero 27 lo que demuestra el interes de la

comunidad cientıfica por esta tecnologıa y su potencial.

Figura 1.2: Logo de la conferencia internacional sobre algoritmos geneticos

Volviendo a los anos 80, a raız de todos estos avances y descubrimientos surgio una

nueva tecnica llamada programacion genetica. Consistıa en la creacion y optimizacion

de programas informaticos mediante las tecnicas ya desarrolladas con los algoritmos

evolutivos. La diferencia principal es que aquı se aplicaba el algoritmo directamente al

codigo por lo que automatizaba la escritura de codigo. [5]El primer precursor de esta

nueva tecnologıa fue Richard Forsyth que demostro la evolucion de pequenos progra-

mas representados como arboles binarios. Le siguio el ya mencionado anteriormente

John Holland junto con sus estudiantes que comenzaron la publicacion de importantes

9

Page 17: Optimizaci on de estructuras con enjambres gramaticales

artıculos sobre esta materia. En especial el estudiante [6] [7] John Koza patento su

invento de aplicar los algoritmos geneticos a la evolucion de programas informaticos.

Fueron sus cuatro libros que establecieron la programacion genetica y producieron una

enorme expansion en la popularidad de este tema.

[8] Hoy en dıa ambas tecnicas siguen siendo desarrolladas y disponen de un gran

interes por parte de la comunidad cientıfica. Se han utilizado en muchos casos y en

creciente complejidad como por ejemplo el diseno de tecnologıas furtivas o la eleccion

de la trayetoria de robots entre muchos. Esta claro que se trata de una tecnologıa con

mucho potencial que seguira evolucionando a lo largo de los proximos anos.

10

Page 18: Optimizaci on de estructuras con enjambres gramaticales

1.2.2 Bases biologicas

[9] En esta seccion se pretende introducir los conceptos presentes en la naturaleza

que mas adelante seran imitados en el algoritmo final. Concretamente se consideraran

relevantes solo dos de los tres problemas que aborda la evolucion biologica. El primero

de ellos es el hecho de evolucionar, es decir, todos tenemos un antepasado comun pero

con diferentes modificaciones. Esto esta virtualmente aceptado en su totalidad por

toda la comunidad cientfica y ademas numerosas pruebas lo confirman. El segundo

problema son los mecanismos por los que ocurre la evolucion. Estos mismos son los que

utiliza de forma similar el algoritmo utilizado en este proyecto. Se basa en mutaciones

y en la reproduccion tanto sexual como asexual a lo largo del tiempo. En la naturaleza

no ocurren a la vez, pero en este algoritmo se utilizaran ambas formas para poder

optimizarlo de forma adecuada.

Figura 1.3: Representacion simplificada del proceso de la evolucion y el origen de laespecies actuales

11

Page 19: Optimizaci on de estructuras con enjambres gramaticales

Otro mecanismo base de la evolucion biologica es la seleccion natural por la cual

los individuos mas preparados para el entorno al tener una mayor probabilidad de

sobrevivir tienen una mayor capacidad de transferir sus genes a la generacion posterior.

Esto ha sido demostrado por numerosos experimentos con plantas u otros seres vivos

donde a lo largo del tiempo las nuevas generaciones iban convirtiendose en individuos

cada vez mejor preparados para habitar y desarrollarse en el entorno elegido. Por lo

tanto la evolucion puede verse como un proceso de dos partes: una primera donde

se realizan los cruces y mutaciones y una segunda parte donde mediante la seleccion

natural se eligen los individuos que pasaran sus propiedades a la generacion siguiente.

Volviendo a los conceptos introducidos en el primer parrafo, las mutaciones son

la herramienta que produce las mejoras en los individuos. Esto se debe a que una

mutacion es una variacion aleatoria de al menos de un punto del ADN. Al ser aleatoria

la probabilidad de ser beneficiosa al usuario suele ser muy baja por lo que por lo general

las mutaciones son cambios negativos. Aun ası, gracias a la accion de la seleccion

natural los cambios malos suelen desaparecer a lo largo de las generaciones mientras

que los cambios positivos se van pasando a las generaciones futuras. Por lo tanto, las

mutaciones son el motor del cambio en la evolucion biologica.

Se trata de un proceso complejo con muchas variables en juego y diferentes tipos

de procedimientos. Obviamente simular todo esto con total exactitud resultarıa una

tarea practicamente imposible ya que la realidad es aun mucho mas compleja de lo que

somos capaces de simular en ordenadores. Muchos elementos deben de ser simplificados

o eliminados del proceso al tener un costo de implementacion mucho mas elevado del

beneficio que otorgan. Esto es el caso de elementos como las migraciones entre pobla-

ciones, los aislamientos, el impacto de la realidad, el tamano del ADN, las relaciones

sociales entre individuos, etc.

12

Page 20: Optimizaci on de estructuras con enjambres gramaticales

1.3 Diseno de piezas y vehıculos aerodinamicos

[10] La aerodinamica es la ciencia que estudia la forma en la que diferentes gases se

mueven a traves o entre los objetos. Esta relacionada a la dinamica de los fluidos dada

su cercana naturaleza pero se normalmente se utiliza para estudiar el movimiento del

aire ya que es el gas que mas aparece en los entornos.

Figura 1.4: Las cuatro fuerzas actuando sobre un avion

[11] [12] En la practica se han denominado cuatro fuerzas principales de accion a la

hora de que un objeto interactue con el aire: sustentacion, peso, empuje y resistencia.

En el caso de los vehıculos las mas relevantes son el empuje y la resistencia aunque

las otras tambien estan estrechamente relacionadas en ciertas situaciones. El empuje

es la fuerza que consiguen obtener las ruedas gracias a la accion del motor y es la

encargada de hacer que se desplace hacia delante. Por otro lado la resistencia es la

fuerza paralela y contraria al movimiento del objeto, en este caso a la direccion del

vehıculo. Esta ultima fuerza es el factor principal que tienen en cuenta los disenadores

de vehıculos a la hora de crear sus diferentes componentes. Su calculo se basa en el

coeficiente de arrastre (Cd) cuyo valor no depende unicamente de la forma sino tambien

de la direccion, velocidad, rugosidad de la superficie y el tipo de flujo de aire al que es

sometido.

Cd =2Fd

pv2A

[13] Este coeficiente es el que determina como se va a comportar el aire al pasar

por ese objeto determinado y por lo tanto en este caso la fuerza de resistencia a la

que sera sometido el vehıculo. Este calculo se puede realizar para objetos con formas

13

Page 21: Optimizaci on de estructuras con enjambres gramaticales

regulares y en entornos muy controlados donde se conocen todos los datos y variables

del gas en cuestion como por ejemplo la viscosidad del aire. En el caso de los coches de

Formula Uno se trata de objetos muy complejos y con multiples partes diferentes lo

que provoca que sea imposible realizar una aproximacion cercana a los valores reales sin

realizar pruebas en simuladores como los tuneles de viento. Estos simuladores se utilizan

tambien en ordenadores donde se introducen modelos tridimensionales en programas

donde se pueden obtener resultados muy similares a los de un tunel de viento real.

Figura 1.5: Modelo de un coche de F1 y el movimiento del aire a su alrededor

[14] Por todo esto la industria automovilıstica ha intentado desarrollar vehıculos

cada vez mas aerodinamicos desde el comienzo del siglo XX siendo un elemento muy

importante a la hora de disenar la forma de un automovil. Las ventajas principales de

disponer de una forma erodinamica son la reduccion del consumo, mejora de capacida-

des de conduccion ademas de otras adicionales como pueden ser el ruido, la ventilacion

o la acumulacion de sucidedad. Esto obviamente tambien se aplica a todos los cam-

pos donde existe un objeto movil cuyo movimiento debe de ser optimizado como la

aeronautica o la balsitica.

14

Page 22: Optimizaci on de estructuras con enjambres gramaticales

Figura 1.6: Objetos ejemplo que muestran la importancia de la forma sobre el flujo delaire

[15] En el caso de los vehıculos esto cobra especial importancia cuando se trata de

carreras de competicion donde un segundo puede ser la diferencia entre llegar en primer

puesto o segundo. Se necesita un gran equipo de ingenieros y multiples pruebas para

conseguir mejorar las prestaciones de un vehıculo mediante el diseno de su forma. En el

caso de las carreras de competicion de Formula Uno la aerodinamica es practicamente

el unico campo de desarrollo e investigacion actual en el que los equipos invierten dinero

y tiempo. Esto se debe sobre todo a los mınimos avances que se pueden conseguir en

otras areas como en cambios en el motor u otras partes relacionadas con la automocion.

El objetivo principal de estos avances es el de aumentar la velocidad del vehıculo

de dos formas principalmente: reduciendo su resistencia al aire y aumentando la fuerza

que le empuja en direccion al suelo. La primera de ellas tiene que ver con la fuerza de

resistencia que sufre el vehıculo al pasar por una sustancia gaseosa que en este caso

obviamente es el aire. Esta fuerza es proporcional a la diferencia de velocidades del

objeto y el aire por el que pasa, es decir, si el aire es estatico sera mayor si el objeto se

mueve a 200 km/h que si se mueve a 50 km/h. Por lo tanto en vehıculos de F1 donde

se pueden sobrepasar los 300 km/h se trata de una fuerza a tener muy en cuenta a la

hora del diseno ya que aumenta mucho sus valores.

Ademas, esta fuerza se manifiesta de diferentes formas. La primera de ellas y la mas

15

Page 23: Optimizaci on de estructuras con enjambres gramaticales

obvia ocurre cuando las moleculas del aire colisionan con las moleculas de la superficie

del objeto siendo mayor en cuanto menos lisa es esta superficie. Estas moleculas ademas

necesitan una fuerza para ser apartadas de la trayectoria del vehıculo lo que provoca

que la forma de las piezas de este influyan en si este desplazamiento es sencillo o por otro

lado provocara una resistencia negativa. Esto ultimo se mide mediante el coeficiente

de arrastre ya explicado anteriormente.

Figura 1.7: Ejemplos de formas simples y sus coeficientes de arrastre donde 0 expresarıaque todo el aire pasa sin ser alterado

Como se puede observar la forma de los objetos que tienen un coeficiente de arrastre

menor son mas deseables que aquellas que tienen un coeficiente de arrastre mayor ya

que estas ultimas mostraran una mayor resistencia. Otro factor importante a tener en

cuenta son los vortices que se crean detras del vehıculo mientras atraviesa el gas en

16

Page 24: Optimizaci on de estructuras con enjambres gramaticales

cuestion. Se trata de un resultado del contacto del aire en movimiento que sigue la

forma del vehıculo con el aire estatico que no ha sido alterado por el paso del objeto

en cuestion. Esto se suele solucionar mediante la introduccion de pequenas piezas en

los laterales de la superficie de paso del aire, como pueden ser los alerones.

Figura 1.8: Imagen de un vehıculo con el aire formando los vortices al paso por la forma

La segunda fuerza importante a tener en cuenta es la carga aerodinamica cuya

funcion es la de pegar mas el vehıculo al suelo para que las ruedas tengan un mejor

contacto con el suelo y por lo tanto la superficie en la que ejerzan su fuerza sea mayor.

Basicamente se comportan igual que las alas de los aviones solamente que al reves. A

lo largo de los anos se ha demostrado que este factor es uno de los mas importantes

a la hora de mejorar las capacidades de los coches de carrera. Gracias al aumento de

esta fuerza se ha conseguido aumentar enormemente las velocidades de un vehıculo

sobre todo en curvas. Esto se debe tambien a que sin estas fuerzas los vehıculos con

una elevada velocidad pueden elevarse sobre la superficie del suelo desestabilizandolo o

directamente eliminando cualquier tipo de control sobre el pudiendo generar situaciones

muy peligrosas para el conductor.

17

Page 25: Optimizaci on de estructuras con enjambres gramaticales

Figura 1.9: Funcionamiento basico de la carga aerodinamica

Teniendo en cuenta la forma de estos vehıculos se puede dividir en tres partes

de diseno principales. La primera serıa la delantera con alerones, splitters, endplates,

generadores de vortices y la parte inferior conectada con el difusor. Le segurıa la parte

central con los pontones, bargeboards, turning vanes, vortice generadores y roll hoops.

Por ultimo en la parte trasera, las principales fuentes de downforce son los alerones,

pequenas aletas y el difusor. Esto obviamente es meramente informativo ya que se trata

de conceptos de diseno automovilıstico que escapan al interes de este proyecto y no son

necesarios de explicar, simplemente se han nombrado para mostrar la complejidad del

diseno y produccion de un vehıculo de semejantes caracterısticas. En resumen todo

esto se trata de una tarea importante y a la que se dedica muchos recursos lo que se

va a pretender cambiar o al menos indicar un camino para el cambio en este proyecto.

18

Page 26: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 2

Objetivos

Siguiendo la idea de la ultima seccion, el objetivo de este proyecto va a ser generar un

algoritmo genetico que sea capaz de mejorar el proceso de diseno de piezas de obje-

tos que deban de tener una buena capacidad aerodinamica. Para ello se va a utilizar

un algoritmo genetico con diferentes caractersiticas que pueda ofrecer soluciones au-

tomaticas sin necesidad de calculos manuales o manipulacion por parte del ser humano.

Siendo la entrada del algoritmo una pieza bidimensional, debera ofrecer como salida

otra pieza ya optimizada para el entorno escogido. En este caso se va a realizar una

simplificacion de todo el proceso dadas las limitaciones por tiempo y material pero

aun ası manteniendo el objetivo principal que es el de crear un algoritmo genetico fun-

cional y con posibilidad de mejora para la aplicacion en tareas reales en la industria

aeronautica y automovilıstica.

19

Page 27: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 3

Diseno de la solucion

3.1 Algoritmos Geneticos

introducidos los conceptos mas relevantes conviene profundizar en la teorıa propia y

actual de los algoritmos geneticos. Primero cabe destacar la posicion de esta tecnica

dentro de la inteligencia artificial y la informatica. El primer conjunto es la computacion

evolutiva donde estan presentes los algoritmos geneticos, la estrategias de evolucion y

la programacion genetica. A su vez, este conjunto pertenece a la rama de la inteligencia

artifical llamada [16] soft computing donde tambien estan presentes tecnicas como las

redes neuronales artificales o la logica difusa.

Hablando de forma general, los procesos de esta rama suelen parecerse mas a los

procesos de la biologıa que a los tradicionales de la informatica. Por ello suelen utilizar

conceptos como medias verdades o la incertidumbre en sus algoritmos para ofrecer

resultados mas parecidos a la realidad presente en la naturaleza. Esto no es diferente

en los algoritmos geneticos donde las soluciones nunca suelen ser fijas y casi siempre

varıan entre diferentes ejecuciones.

Concretando en el algoritmo principal, se puede generalizar un flujo que suele apa-

recer como base en casi todos los algoritmos geneticos. El primer paso de este algoritmo

es la creacion de una poblacion inicial que suele ser creada mediante generadores alea-

torios[17]. A continuacion se comienza el proceso de seleccion de padres y cruce entre

ellos. Con esto se consigue una descendencia que tras ser generada puede sufrir muta-

20

Page 28: Optimizaci on de estructuras con enjambres gramaticales

ciones que la modifiquen de forma aleatoria. Llegado a este punto se ha de decidir si los

nuevos individuos deben reemplazar a los padres en la poblacion y pasar a la siguiente

generacion. En caso de que los seleccionados sean los padres se descartara la descen-

dencia y una vez completado este proceso para todos los individuos se aumentara el

contador de la generacion y se volvera a empezar el ciclo.

Cabe destacar que existen dos variantes de este proceso, una de ellas con una

poblacion fija en la cual se van realizando selecciones e inserciones, y otra, donde se

trabaja con una poblacion temporal vacıa que se va rellenando mediante inserciones y

que al final reemplaza a la poblacion inicial durante esa generacion.

Figura 3.1: Algoritmo genetico simplificado

[18] Este bucle se repetira hasta que se cumpla una de las condiciones de parada, la

cual puede depender de varias condiciones. El caso obvio es cuando se ha encontrado

una solucion, es decir, que uno de los individuos tenga un valor al evaluarlo superior

o igual al deseado. Este valor se suele denominar fitness o ajuste y se explicara mas

adelante. Otra condicion de parada comunmente utilizada es el maximo de generaciones

que suele ser un valor elevado para permitir encontrar una solucion de forma adecuada.

Por ultimo una condicion mas compleja de explicar que es que toda la poblacion sea

similar en un porcentaje muy elevado, lo que significarıa que ha convergido y ha dejado

de cambiar alcanzado lo que podrıa ser un maximo local.

21

Page 29: Optimizaci on de estructuras con enjambres gramaticales

3.1.1 Operadores

Durante el trascurso de cada iteracion, se utilizan una serie de operadores geneticos

que dependiendo de las necesidades del problema se utilizaran o no. Los mas comunes

son los operadores de seleccion, mutacion, cruce, copia y reemplazo.

3.1.1.1 Seleccion

Su funcion recae en decidir que individuos de la poblacion sufriran un cruce para generar

la descendencia. Se basa en el concepto de que se debe de seleccionar a individuos mas

aptos de media si se quiere obtener descendencia mejor preparada para el entorno o

mejor calidad. Esto no siempre se cumple ya que aunque se seleccionen dos padres

con muy buen fitness puede ocurrir que sus hijos sean peores. Aun ası de media suele

mejorar la calidad de la generacion si se utilizan metodos de seleccion que selecciones

padres mejores.

Dentro de sus variantes existen muchas diferentes pero principalmente se dividen

en dos: determinısticas y probabilısticas. Las primeras establecen que siempre se se-

leccionara el que mejor ajuste tenga de la poblacion mientras que el segundo trabaja

con probabilidades dando oportunidades a que los individuos con peores capacidades

puedan sufrir cruces o pasen a la siguiente generacion.

Figura 3.2: Seleccion por ruleta

22

Page 30: Optimizaci on de estructuras con enjambres gramaticales

Con esto se consigue que haya mejor variedad y el algoritmo no se pare en maximos

o mınimos locales ya que se permite que los padres o uno de ellos sea de mala calidad.

Un cruce de una pareja ası puede generar mejor descendencia que la de los dos mejores

individuos de la poblacion ya que puede haber genes que por separado no otorguen mu-

cha calidad pero al cruzarles generen soluciones buenas. Los algoritmos mas populares

son la seleccion por ruleta y la seleccion por torneo pero realmente existen muchos mas

tipos en la actualidad.

3.1.1.2 Cruce

El cruce es la tecnica mediante la cual los individuos seleccionados generan una des-

cendencia siguiendo una estrategia de reproduccion sexual. Se trata de que los hijos

tengan genes de ambos padres de forma que hereden caracterısticas mezcladas de los

dos. La idea principal de esto es que si los padres tienen genes buenos la descendencia

tambien tiene probabilidad de tenerlos, por lo que podrıan heredar unicamente estos

genes positivos de cada padre evitando los malos y aumentando el valor de su fitness

individual.

Una vez realizado el cruce, se ha de seguir una polıtica destructiva o no respecto a

la insercion de los hijos en la poblacion. Que sea destructiva significa que se desechan

los padres y los hijos les sustituyen en todos los casos e independientemente de si sus

ajustes son mejores o peores. En cambio una polıtica no destructiva no eliminara a

los padres si tienen un mejor ajuste que los hijos permitiendo la supervivencia de los

mejores individuos.

Figura 3.3: Cruce de un punto en cromosomas de tipo binario

23

Page 31: Optimizaci on de estructuras con enjambres gramaticales

Dependiendo de la estructura de los cromosomas se pueden aplicar ciertos algorit-

mos u otros pero los mas comunmente utilizados son el cruce de un punto, el cruce de

dos puntos o el cruce uniforme. Se basan en cortar los cromosomas en ciertas posiciones

e intercambiar las partes con otro cromosoma.

3.1.1.3 Mutacion

La mutacion es el proceso en el cual un gen de un individuo cambia su valor de forma

aleatoria. Se suele implementar despues del cruce para imitar el proceso de la naturaleza

que ocurre precisamente en ese momento. Por otro lado las variaciones pueden ser de

multiples tipos dependiendo de como sean los cromosomas. En caso de los cromosomas

de tipo binario la variacion suele suceder negando el bit adecuado pero muchas veces

los cromosomas son numericos o de formas mas complejas como es el caso de este

proyecto.

Figura 3.4: Mutacion de tipo binaria donde se invierten 3 bits

Para ese tipo de casos se ha de realizar modelos mas complejos o ingeniosos para

poder conseguir mutaciones aleatorias que sean similares a las binarias. Tambien existen

casos donde la longitud de los cromosomas varıa por lo que se pueden anadir genes como

mutacion en vez de solamente modificar los presentes.

3.1.1.4 Reemplazo

El reemplazo ocurre cuando se trabaja con una unica poblacion dentro de la cual

ocurren las eliminaciones e inserciones. Al ser un espacio limitado y finito se necesita

hacer un hueco cada vez que se quiera introducir un nuevo individuo resultante de un

cruce. Muchas de las tecnicas utilizadas son muy similares a las de seleccion pero la

diferencia es que aquı se considera los ajustes de la descendencia a insertar. La tecnica

24

Page 32: Optimizaci on de estructuras con enjambres gramaticales

mas simple serıa una seleccion aleatoria del individuo a sustituir pero obviamente

existen soluciones mejores y mas complejas como es el caso del reemplazo de padres

o el de similares. El de los padres como su propio nombre indica es simplemente un

proceso en el cual la descendencia sustituye a los padres de cuyo cruce fueron resultado

mientras que el de similares busca individuos a sustituir con un ajuste similar para que

el reemplazo no sea muy drastico para la poblacion.

3.1.1.5 Copia

La copia es un tipo de reproduccion de tipo asexual donde de un unico padre resulta

un hijo completamente igual a este. Dentro de los algoritmos geneticos es un proceso

bastante poco usado aunque necesario para ciertos casos donde la reproduccion sexual

no ocurre o simplemente no puede ocurrir. El problema es que la copia no altera en

absoluto los cromosomas al generar descendencia por lo que imposibilita el cambio y

por ende la evolucion de una poblacion. Por lo tanto debe de usar en casos concretos

y si aparece que sea en porcentajes mucho menores a los del cruce.

3.1.2 Evaluacion o Fitness

Este metodo se encarga de representar la capacidad que tiene un individuo de sobrevivir

dentro del entorno. Concretando un poco mas se trata de una funcion que devuelva un

valor numeerico llamado ajuste o fitness que exprese la calidad de ese individuo como

solucion del problema que intenta resolver el algoritmo. Por lo tanto esta funcion sera

unica para cada caso que intentemos resolver mediante el uso de algoritmos geneticos.

Su importancia es vital dentro de los operadores geneticos ya que el cruce, la seleccion

y el reemplazo dependen de los valores de cada individuo. Se pueden diferenciar cuatro

tipos de ajuste o fitness [19] diferentes pero se podrıa decir que los mas importantes son

dos: el fitness puro y el fitness normalizado. El fitness puro es la asignacion numerica

individual a cada miembro de la poblacion mediante una funcion simple. En este caso

simplemente se analizan las caracterısticas del individuo y se establece una relacion que

dice lo favorables que son con el dominio del problema. Lo negativo de esta aplicacion es

que trabaja de forma individual y no tiene en cuenta la relacion del individuo analizado

en funcion del resto de la poblacion. Aquı es donde aparece el fitness normalizado que

es una extension del fitness puro donde esta vez si se tiene en cuenta la relacion del

25

Page 33: Optimizaci on de estructuras con enjambres gramaticales

ajuste de un individuo con el resto de la poblacion. Por lo tanto en este utlimo caso

si un miembro del grupo tiene un fitness normalizado elevado significa que ademas de

ser una buena solucion, tambien es un individuo mejor que el resto de la poblacion

presente, por lo que tendra mayores posibilidades de cruzar y reproducirse.

3.2 Tecnologıas

En este proyecto se va a utilizar el lenguaje programacion Java para realizar la imple-

mentacion del algoritmo. Se trata de uno muy estructurado y conocido en la actualidad

que ademas es de los que mas ha sido utilizado dentro del ambito de la universidad por

lo que existe una base muy solida que no existirıa si se optase por otras alternativas.

[20] Dentro de este lenguaje se ha utilizado el paquete de JavaFX como eleccion para

la realizacion de la interfaz grafica del programa. Se trata de otra herramienta que ha

aparecido en los trabajos realizados dentro de la universidad por lo que tambien es una

opcion segura. Contiene muchas funcionalidades actualizadas a los estandares graficos

que aparecen hoy en dıa con la creciente popularidad del diseno movil o web pero sobre

todo es sencilla y rapida de utilizar lo que es de importancia en este proyecto al ser la

interfaz un elemento de poca prioridad.

26

Page 34: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 4

Resultados

Una vez introducidos los conceptos que se van a utilizar en este proyecto, se va a

explicar el procedimiento seguido para alcanzar los objetivos de forma aceptable.

4.1 Primera aproximacion

La idea inicial era realizar una version muy basica del algoritmo e ir anadiendo poco

a poco nuevas funcionalidades. Antes de esto se experimento con los diferentes opera-

dores geneticos para la creacion de un algoritmo genetico muy simple que sirviera de

ejemplo para el proyecto. Una vez conocida la manera de funcionar de estos elementos

se procedio a la creacion de un nuevo algoritmo esta vez bien estructurado.

Por lo tanto llegados a este punto se necesitaba decidir como iban a ser constituidos

los individuos del algoritmo, es decir, el tipo y la forma de sus genes. Se barajaron

multiples posibilidades para esto y una de las mas prometedoras era el uso de puntos en

el espacio separados por lıneas representadas como funciones matematicas. El problema

de esta implementacion era la complejidad que representaba el uso de estas funciones y

la difıcil mutacion y cruce al existir la posibilidad de diferentes longitudes de los genes.

Dicho esto se decidio utilizar otra opcion mucho mas simple y escalable. En este

caso los individuos iban a ser simples vectores de dos dimensiones o matrices rellenos

de unos y ceros donde un uno significa existencia material del objeto en ese punto

del espacio. Al tratarse de piezas fısicas no tendrıa sentido que hubiera grupos de

unos y ceros separados dentro de la matriz, por lo que durante todo el proyecto se

27

Page 35: Optimizaci on de estructuras con enjambres gramaticales

ha controlado que no hubiera divisiones. Las mutaciones serıan simples al tratarse de

tipo binario y los cruces podrıan ser simples cruces de un punto. El tamano de esta

matriz serıa de 10 x 10 inicialmente simplemente para acelerar el tiempo de ejecucion

al comienzo del desarrollo y poder ir anadiendo funcionalidades de forma eficaz.

M =

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 1 1 1 0 0

0 0 0 0 1 1 1 1 0 0

0 0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0 0

0 0 1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

Figura 4.1: Figura resultante de la matriz anterior

Una vez establecido como iban a ser los individuos de la poblacion se necesitaba de-

cidir como iba a funcionar otro punto basico de los algoritmos geneticos: la evaluacion.

Esto es ası ya que la evaluacion es la que dirige a la evolucion y es la que va a decidir lo

28

Page 36: Optimizaci on de estructuras con enjambres gramaticales

que va a pasar dentro del algoritmo. Por lo tanto como el objetivo era obtener piezas

mas aerodinamicas se formo una funcion de evaluacion que atribuıa mas puntos a una

figura menos alta. La razon de esto es que se ha considerado que existe un flujo de aire

imaginario en direccion izquierda-derecha de la figura intentando llevar a cabo es un

sımil entre el algoritmo y la realidad, que serıa probar la pieza resultante en un tunel de

viento del que obtener el valor fitness. Como el uso de un tunel de viento es imposible

dado el caracter de este proyecto y la base economica disponible para su realizacion,

se ha optado por realizar una simulacion matematica de los posibles resultados de una

evaluacion real.

fitness = 1 − (altura

alturamax)

Por lo tanto la pieza usada de ejemplo tendrıa una altura de 6 sobre 10 que serıa

el maximo siendo su fitness resultante 0,4. Como se puede deducir, la pieza optima al

usar este tipo de evaluacion serıa una pieza de altura 1 y cualquier tipo de anchura.

Por ultimo ya solamente falta por implementar los operadores de cruce y mutacion.

El primero de ellos ha sido realizado de la forma mas simple posible, es decir, cruce en

un unico punto a lo largo del eje x de las piezas. Esto es debido a que el cruce conlleva

la dificultad de que puede crear piezas partidas en varias partes al cruzar dos padres

muy diferentes, lo que generarıa una descendencia disfuncional que no podrıa continuar

el proceso de evolucion. Este problema sigue existiendo en el cruce por un unico punto

pero mas adelante se aborda para no permitir la aparicion de errores. Por otro lado

las mutaciones en un principio eran simples negaciones en los bits pero unicamente los

positivos. Esto se realizo para la simplificacion del proceso y el poder establecer una

buena base para las futuras ampliaciones.

29

Page 37: Optimizaci on de estructuras con enjambres gramaticales

4.2 Mejora del algoritmo, pruebas e ideas anadidas

Ya habiendo establecido un algoritmo funcional se comenzo a ampliar sus capacidades

siendo una de las partes mas prioritarias la funcion de evaluacion, ya que era demasiado

simple. Para ello se intento crear una nueva forma de obtener el ajuste que fuera mas

similar a los posibles resultados obtenidos por un tunel de viento real. La solucion a

esto fue una funcion que contaba los aumentos o escalones que aparecıan en la cara

frente al flujo del aire, es decir, lo que se buscaba era una forma con apariencia de pico

triangular que tuviera un gradiente para una forma mas aerodinamica.

Noescaloness + NoescalonesiAncho− 1

Basicamente en una forma de la forma adecuada existirıan tantos escalones como

es el ancho de la pieza menos uno, dado que este es el maximo que puede haber. Es

decir, en una pieza de anchura 10 podrıa haber 5 escalones arriba y 4 abajo, 9 arriba

y ninguno abajo o 3 arriba y 6 abajo. Durante las ejecuciones se puede observar como

esto varıa de muchas maneras obteniendo cada vez una forma diferente.

Figura 4.2: Figura con una anchura de 5, 3 escalones arriba y uno abajo siendo sufitness el maximo posible, 1.

30

Page 38: Optimizaci on de estructuras con enjambres gramaticales

Como se puede observar, una figura con esta forma sufrira una menor fuerza de

arrastre provocando un desplazamiento mas sencillo a traves del aire y unas veloci-

dades mayores en los supuestos vehıculos finales. Esto sigue siendo una aproximacion

super sencilla ya que no tiene en cuenta muchısimos factores como, por ejemplo: la im-

portancia de las otras tres fuerzas, la rugosidad del material o la velocidad del objeto

a traves del entorno.

Otro elemento que se modifico varias veces fue la estructura de las clases del pro-

grama. Esto se debe a que en un principio no se planeo bien el diseno de los diferentes

objetos y sus relaciones, por lo que al ir anadiendo elementos iban apareciendo proble-

mas difıciles de solucionar con la estructura presente. Era esencial para el desempeno

del programa una actualizacion de la estructura lo que supuso un esfuerzo adicional

pero cuyo resultado fue un diseno de clases optimo para la realizacion del proyecto.

Para poder entender el desempeno del algoritmo se ideo un grafico que mostrase

la evolucion de los valores del ajuste de cada individuo de la poblacion a lo largo de

las generaciones. En un principio solamente aparecıa representado el valor maximo del

fitness en cada generacion, pero mas adelante se anadio el valor medio de los fitness

de los individuos de cada generacion para observar si existıa mejora conjunta o eran

simples individuos que tuvieron mutaciones favorables de forma aleatoria. Con esto

se podıa ver si el ajuste crecıa de forma continua o por el contrario se basaba en

crecimientos esporadicos basados en mutaciones buenas.

Figura 4.3: Interfaz con grafico inicial

31

Page 39: Optimizaci on de estructuras con enjambres gramaticales

Se busca conseguir una mezcla de ambos, ya que el crecimiento espontaneo se basa

en mutaciones concretas cuyo numero debe ser menor a la cantidad de cruces que deben

de ser el principal motor de un crecimiento continuo. Esto obviamente no descarta que

se pueda producir un cruce que provoque una subida muy grande del fitness del mejor

individuo ,pero como regla general los aumentos de los cruces no deben de ser muy

grandes. Esto se puede corroborar en la naturaleza donde la evolucion es un mecanismo

que necesita de muchos anos de desarrollo en el mismo entorno y ademas suele ocurrir

siguiendo casi un crecimiento lineal.

Por otro lado se necesitaba una forma de visualizar la figura final de forma reducida

ya que se pretendıa aumentar el tamano de la matriz y por consiguiente el tamano de

la figura, lo que provocaba que se dejase de ver bien en la salida del compilador. Por

lo tanto se ideo una zona de cuadrados pequenos que serıan mas adelante negros o

blancos correspondiendo a los valores de 0 y 1 de la matriz correspondientemente. De

esta manera se puede ver los resultados y comprobar si realmente existe una relacion

entre la funcion fitness y la evolucion seguida.

Figura 4.4: Primera forma de visualizar una matriz de 100x100 con una figura pequenaen el centro

32

Page 40: Optimizaci on de estructuras con enjambres gramaticales

Otro punto que habıa que revisar era el tamano de la matriz que contenıa la figura.

En el apartado anterior ya se introduce que el tamano aumenta, lo que parece ser una

evolucion mas que obvia ya que al aumentar el tamano se puede permitir mayor com-

plejidad de las formas finales. Eventualmente se podrıa considerar un aumento mucho

mayor, del orden de cien veces o mas, para poder simular los pıxeles que conforman

una pantalla y en resumen pudiendo generar imagenes o visualizaciones realistas de lo

que serıan las piezas finales. Con esto serıa posible conseguir objetos que directamente

se podrıan aplicar a la realidad de forma directa o muy cercana a esta.

El problema de esta implementacion es mas que obvio, la cantidad de recursos

que necesitarıa una ejecucion con matrices de semejante tamano serıa enorme y no

es posible en el estado actual de la investigacion ni en un futuro cercano. Tambien

existirıa el problema de que aumentar tanto el tamano y aumentar el detalle podrıa

provocar figuras imposibles ya que hay que tener en cuenta las limitaciones fısicas de

los materiales que construyen las figuras. Un giro demasiado acentuado en el borde

o un pico de un grosor demasiado pequeno pueden ser formas que al ser sometidas a

la fuerza del aire o las vibraciones de un vehıculo pueden romperse o doblarse lo que

puede afectar al rendimiento del vehıculo o incluso a su seguridad. Por lo tanto se ha

decidido que en este proyecto se limitaran las ejecuciones a matrices de tamanos de

100x100 o similares.

Figura 4.5: Puntos mutables de la matriz (verde y azul)

33

Page 41: Optimizaci on de estructuras con enjambres gramaticales

Por ultimo una mejora muy interesante que se anadio fue la variacion de las pro-

babilidades de mutacion de los puntos en funcion del tamano de la figura respecto a

la capacidad maxima de la matriz. Como las mutaciones son de dos tipos, de 1 a 0

o viceversa, se pretende conseguir con esta mejora que la pieza obtenga mas puntos

cuanto mas pequena sea y que esta probabilidad vaya disminuyendo mientras se hace

mas grande hasta invertir las probabilidades al completo. Estos conceptos se entienden

mejor con las funciones representadas a continuacion.

TamanopiezaTamanomatriz ∗ Equilibrio

∗ 0,5

Equilibrio es en este caso un valor que determina el punto en el que las probabilida-

des invierten la relacion de tamanos pasando una a ser mas grande que la otra. Varıa

entre 1 y 0 siendo normalmente la preferencia por valores que mantengan la figura en

los lımites razonables de la matriz. El valor que devuelve esta funcion es un valor entre

1 y 0 tambien, y es el que determina que tipo de mutacion va a suceder en ese objeto.

34

Page 42: Optimizaci on de estructuras con enjambres gramaticales

4.3 Aplicacion y solucion final

Ya habiendo concluido todos los pasos en el analisis y la mejora del algoritmo, se

procede a la presentacion de la version final de la aplicacion que lo contiene.

4.3.1 Algoritmo

El algoritmo final se define como un algoritmo genetico de 32 individuos en la poblacion

donde por medio de un sistema de mutaciones y cruces sexuales y/o asexuales se

puede conseguir una variacion de los individuos para que asimilen su forma a una

mas aerodinamica. La poblacion va sustituyendo a algunos de sus miembros en cada

generacion lo que tambıen se podrıa considerar una iteracion del algoritmo.

Figura 4.6: Estructura de los objetos en el algoritmo

Como se puede observar en el diagrama de flujo a continuacion, los procesos mas

importantes son la mutacion y el cruce de los individuos ya que ahı es donde se realizan

los cambios en los individuos.

35

Page 43: Optimizaci on de estructuras con enjambres gramaticales

Figura 4.7: Estructura general del algoritmo

Estos dos procesos contienen una complejidad bastante elevada por lo que no se va

a entrar mucho en los detalles de su implementacion. En rasgos generales el cruce de los

individuos se produce mediante la seleccion de un primer padre de la poblacion para

acontinuacion intentar encontrar a otro padre adecuado que produzca una descendencia

no erronea. Si no se encuentra una combinacion con alguno de los otros padres se realiza

una reproduccion asexual.

36

Page 44: Optimizaci on de estructuras con enjambres gramaticales

Por otro lado las mutaciones dependen del tamano actual de la figura ya que se ha

establecido que cuanto mas grande sea, mas se favorece las mutaciones destructivas,

es decir, quitar puntos de la figura. Con esto se consigue que el tamano de la figura

siempre se mantenga dentro de unos rangos razonables.

4.3.2 Interfaz y ejecucion

Se trata de una aplicacion basada en una interfaz JavaFX bastante basica que permite

al usuario la ejecucion en cualquier maquina con la version adecuada de Java instalada.

La primera ventana que aparece permite la modificacion de varios valores relevantes a

la hora de la ejecucion.

Figura 4.8: Primera ventana que muestra la interfaz al ejecutar

La longitud es paralela al movimiento imaginario del aire por lo que no tiene una

relevancia muy grande sobre la ejecucion final, de ahı que se permitan valores elevados.

En cambio en la anchura, al ser perpendicular a la direccion del aire, es la superficie

que tiene el primer contacto con su fuerza de empuje. Por esto, cuanto mas ancha sea

una pieza, mas mutaciones tendran que ocurrir para que el algoritmo consiga que esta

fuerza disminuya.

A continuacion aparece la posibilidad de modificar los puntos de parada de la

ejecucion. Por un lado el numero maximo de generaciones y por otro el ajuste que

se desea alcanzar. Existe la posibilidad de que un valor fitness muy alto resulte en una

ejecucion muy larga o directamente llegue al maximo de generaciones sin obtener un

resultado favorable. Se recomienda mantener el valor fitness en el rango de 60-80 como

37

Page 45: Optimizaci on de estructuras con enjambres gramaticales

mucho. Por otro lado es obvio que cuantas mas generaciones se permitan mas larga

puede ser la ejecucion.

Una vez establecidos los parametros de entrada se puede proceder a la ejecucion.

El programa dejara de responder durante unos segundos mientras realiza todos los

procesos sobre la pieza. Al finalizar, se mostrara esta otra ventana con el resultado

final de la pieza

Figura 4.9: Ventana final tras una ejecucion (l=30, w=10, g=1000, f=80)

Como se puede observar la pieza resultante es un elemento de dudosa aerodinamica

pero esto se debe a que es a pequena escala, como se ha mencionado ya antes. Lo que

si se puede observar es como la forma ha conseguido un relieve en forma de pico en

el lateral izquierdo ya que es el lado que tiene contacto directo con la fuerza del aire

imaginario.

38

Page 46: Optimizaci on de estructuras con enjambres gramaticales

Tambien se puede observar que en la interfaz aparecen otras dos pestanas en la

zona superior. En la segunda aparece lo que se puede observar en la siguiente figura,

un grafico donde se puede ver la evolucion del ajuste medio en cada generacion (en

rojo) y el mejor ajuste de cada generacion (naranja).

Figura 4.10: Grafico de la evolucion de la calidad media y la del mejor individuo decada generacion

39

Page 47: Optimizaci on de estructuras con enjambres gramaticales

La ultima pestana muestra varios datos de interes general como pueden ser los

valores introducidos antes de la ejecucion o el ajuste final de la pieza resultante. Por

ultimo tambien se puede ver el tiempo que ha tardado el algoritmo en segundos y la

generacion final en la cual se ha detenido.

Figura 4.11: Algunos datos interesantes mas

40

Page 48: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 5

Conclusion

Dentro del analisis expuesto, es posible vislumbrar la utilidad en los resultados y con-

cretamente el algoritmo final obtenido. Tras la exposicion e investigacion del problema

inicial se ha desrrollado una aplicacion completamente funcional con un algoritmo

genetico que simula el comportamiento de la realidad misma. El conjunto de procesos

y operadores geneticos consiguen de forma efectiva ofrecer una solucion a escala del

problema real, usando de esta forma el potencial que ofrece la inteligencia artificial.

A pesar de esto, sigue siendo una simple aproximacion a la realidad por lo que

no se puede afirmar el haber creado una herramienta de aplicacion directa para el

problema inicial expuesto en la introduccion. Esto se debe a que se ha demostrado

que la escalabilidad de la aplicacion final necesitarıa de muchos recursos por lo que

se ha imposibilitado una comprobacion empırica. De esta manera, lo unico que se

debe de extraer de este trabajo es la apertura de un nuevo camino basado en los

algoritmos geneticos, que demuestra que su utilidad es mucho mayor de lo que la

sociedad considera.

41

Page 49: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 6

Discusion

Como ya se ha explicado varias veces, esta solucion es una simple aproximacion inicial

que pretende establecer unas bases para las investigaciones posteriores. Por lo tanto se

deberıa de realizar un proceso de mejora sobre este proyecto y todas sus partes. Este

proceso tendrıa que considerar la finalidad real que deberıa ser capaz de cumplir el

algoritmo, que en este caso es la de poder producir partes de vehıculos de carreras de

forma automatica. Por lo tanto un primer paso serıa el analizar el proceso utilizado en

la actualidad, deduciendo los formatos de los objetos de entrada y salida. De aquı se

podrıa deducir los cambios que el algoritmo actual deberıa sufrir para transformarse

en una solucion a escala real.

Un primer cambio serıa el paso de dos dimensiones a tres, ya que obviamente

queremos poder trasladar los resultados a la realidad y con solamente dos dimensiones

no se puede valorar de forma adecuada la aerodinamica de una pieza. Por lo tanto

todos los operadores geneticos y elementos del algoritmo sufrirıan una variacion mas

o menos ligera. Lo primero serıa modificar a los individuos de la poblacion, anadiendo

una nueva dimension a la definicion de su forma. En la situacion actual esto serıa

tan sencillo como anadir otra capa a la matriz actual volviendo a multiplicar por N

todo el tamano. Esto obviamente va a ralentizar mucho las ejecuciones futuras por lo

que se debe tambien valorar un cambio en la forma en la que se definen las formas

de las piezas o los individuos. Se ha demostrado que la forma en la que se definen

las figuras actualmente limita mucho la ejecucion del algoritmo a tamanos elevados

42

Page 50: Optimizaci on de estructuras con enjambres gramaticales

dada la complejidad. Se puede concluir que la solucion actual es computacionalmente

imposible de aplicar a tamanos realistas como lo serıa un aumento de dimension.

A partir de aquı, una solucion que se puede explorar es la de definir las figuras me-

diante puntos y funciones matematicas que representen los planos entre ellos. De esta

manera se abre la posibilidad de tres tipos de mutaciones, anadir puntos y planos, mo-

dificar la posicion de los puntos en el espacio, sustituir funciones por otras y modificar

los valores concretos de las variables dentro de las funciones. Este proceso tendrıa que

ser estudiado y valorado previamente porque puede resultar demasiado complejo o di-

rectamente imposible debido a la naturaleza del algoritmo y los conceptos matematicos

tratados.

Tambien habrıa que modificar la forma en la que se analiza el fitness de un individuo

ya que es el motor del algoritmo y lo que condiciona a que las soluciones sean adecuadas.

Actualmente la funcion de evaluacion es una simple reduccion de la realidad a un

concepto que no es nada representativo de lo que se quiere obtener. Por lo tanto la

solucion que se propone es el uso de simuladores de tuneles de viento para conseguir

un entorno de pruebas que analice cada individuo de forma individual y automatizada

pudiendo obtener de forma numerica la representacion real de su calidad. Esto se debe

de analizar tanto en situaciones basicas como por ejemplo el desplazamiento de forma

lineal hacia delante de un vehıculo, o en situaciones mas complejas como la toma de un

giro cerrado o la toma de un rebufo de un vehıculo situado delante. La importancia de

esto dependera de la relevancia de una determinada pieza en las diferentes situaciones

del vehıculo y de la capacidad computacional disponible.

Existen multiples herramientas disponibles en el mercado hoy en dıa para la rea-

lizacion de esta simulacion. Se tendrıa que realizar un analisis de las opciones en el

momento de la implementacion real del algoritmo ya que al ser herramientas que simu-

lan la realidad contienen errores que seran mayores en unos y menores en otros. Por lo

general con el avance de los anos se ha ido consiguiendo unos algoritmos de simulacion

de fluidos que permiten una aproximacion casi identica a lo que se obtendrıa en un

tunel de viento real.

Dos de estas herramientas serıan [21] MicroCFD 3D Virtual Wind Tunnel por

un lado, y [22] Altair HyperWorks Wind Tunnel por otro, ambas obtenidas con una

busqueda sencilla por Internet. Como se puede observar en las imagenes que aparecen

43

Page 51: Optimizaci on de estructuras con enjambres gramaticales

al final de este parrafo, ambas herramientas ofrecen resultados interesantes que podrıan

ser lo necesario para que el nuevo algoritmo tenga la funcionalidad adecuada a la hora

de obtener el ajuste de un individuo de forma realista.

Figura 6.1: Analisis de un vehıculo de carreras antiguo con los resultados de aero-dinamica ofrecidos por la herramienta de MicroCFD 3D Virtual Wind Tunnel

Figura 6.2: Analisis de un vehıculo normal con los resultados de aerodinamica ofrecidosesta vez por la herramienta de Altair HyperWorks Wind Tunnel

En las imagenes se puede observar que ambos vehıculos son bastante aerodinamicos

dada la ausencia de colores calidos de forma abundante pero siguen existiendo puntos

mejorables que por ejemplo gracias a este algoritmo se podrıan evolucionar. A partir de

44

Page 52: Optimizaci on de estructuras con enjambres gramaticales

estos analisis se obtendrıa un valor numerico entre 0 y 1 que estableciera la adecuacion

del individuo al medio, es decir, lo que se acerca a una solucion perfecta.

Una vez visto como se deberıa actualizar la obtencion del ajuste de los individuos

y la definicion de estos cabe determinar la forma en la que se realizaran las mutaciones

y los cruces. Para los cruces se pueden explorar otras opciones mas complejas pero es

cierto que la metodologıa actual funcionaria bien en el espacio tridimensional. Todo

dependerıa en este caso del desempeno de las otras alternativas por lo que habrıa que

realizar pruebas y comparaciones.

Para las mutaciones el paradigma cambia en su totalidad ya que los genes ya no

son simples puntos binarios repartidos en un espacio finito. Como ya se introdujo al

principio de esta discusion se han de considerar mutaciones de tipos mas complejos

como lo pueden ser el anadir puntos y planos, modificar la posicion de los puntos en el

espacio, sustituir funciones por otras o modificar los valores concretos de las variables

dentro de las funciones.

45

Page 53: Optimizaci on de estructuras con enjambres gramaticales

Capıtulo 7

Agradecimientos

Quisiera agradecer a varias personas y entidades la ayuda que me han prestado en la

realizacion de este Trabajo de Fin de Grado. Entre ellas, y en primer lugar, a mi profesor

y tutor, Luis Fernando de Mingo Lopez, por todo lo que me ha apoyado durante el

transcurso de este proyecto. Siempre dispuesto a dedicarme su tiempo y conocimiento

pero desde la paciencia y la cordialidad. Tambien a todos los profesores de la ETSISI

que me han ensenado y apoyado en mayor o menor medida durante estos ultimos anos

de mi carrera universitaria. Sin su dedicacion y habilidad docente no serıa quien soy

hoy en dıa. Deseo que sigan realizando su trabajo tan bien como lo hacen muchos anos

mas.

Por otro lado me gustarıa agradecer a mis amigos mas cercanos, en especial a

Javier y a Fernando, que me han apoyado en todo el proceso con sus consejos practicos

y apuntes sobre la escritura del trabajo. No me podrıa olvidar tampoco de Cristina,

que ademas de su indudable apoyo continuo tambien me ha ayudado con el diseno de

ciertas figuras o la escritura de ciertos parrafos.

Por ultimo y no menos importante me gustarıa agradecer a mi familia, la que

siempre ha estado allı para apoyarme o presionarme ademas de ser los que durante

tantos anos se han esforzado en convertirme en el adulto que finalmente soy. En concreto

me gustarıa agradecer a mi tıo Kondrad que tambien es informatico y fue el que

desperto mi interes por esta materia desde joven.

46

Page 54: Optimizaci on de estructuras con enjambres gramaticales

Bibliografıa

[1] A. M. Turing, “Computing machinery and intelligence”, en Parsing the Turing

Test, Springer, 2009, pags. 23-65.

[2] A. S. Fraser, “Simulation of genetic systems by automatic digital computers i. in-

troduction”, Australian Journal of Biological Sciences, vol. 10, n.o 4, pags. 484-491,

1957.

[3] J. H. Holland, Adaptation in natural and artificial systems: an introductory analy-

sis with applications to biology, control, and artificial intelligence. MIT press,

1992.

[4] M. Ruffalo. (1 de oct. de 2016). Algorithms in nature, genetic algorithms, direc-

cion: http://www.cs.cmu.edu/~02317/slides/lec_8.pdf.

[5] R. Forsyth, “Beagle: A darwinian approach to pattern recognition”, Kybernetes,

vol. 10, pags. 159-166, mar. de 1981. doi: 10.1108/eb005587.

[6] J. R. Koza, Non-linear genetic algorithms for solving problems, United States

Patent 4935877, filed may 20, 1988, issued june 19, 1990, 4,935,877. Australian

patent 611,350 issued september 21, 1991. Canadian patent 1,311,561 issued de-

cember 15, 1992., 19 6 de 1990.

[7] ——, Genetic Programming: On the Programming of Computers by Means of

Natural Selection. Cambridge, MA, USA: MIT Press, 1992, isbn: 0-262-11170-5.

direccion: http://mitpress.mit.edu/books/genetic-programming.

[8] R. L. Haupt y S. E. Haupt, Practical genetic algorithms. John Wiley & Sons,

2004.

47

Page 55: Optimizaci on de estructuras con enjambres gramaticales

[9] E. of Science y Religion. (1 de mar. de 2019). Evolution, biological, Encyclopedia

of Science y Religion, direccion: https://www.encyclopedia.com/science/

news-wires-white-papers-and-books/biological-evolution.

[10] J. Lucas. (2014). What is aerodynamics? J. Lucas, ed., direccion: https://www.

livescience.com/47930-what-is-aerodynamics.html.

[11] B. Dumbar. (2015). What is aerodynamics? B. Dumbar, ed., direccion: https:

//www.nasa.gov/audience/forstudents/k-4/stories/nasa-knows/what-

is-aerodynamics-k4.html.

[12] M. A. M. Navarro. (2010). Principios basicos, 1.3 fuerzas que actuan en el vuelo.

M. A. M. Navarro, ed., direccion: http://www.manualvuelo.com/PBV/PBV13.

html#136_Resistencia.

[13] N. Hall. (2015). The drag coefficient. N. Hall, ed., direccion: https://www.grc.

nasa.gov/www/k-12/airplane/dragco.html.

[14] P. T. Lajos, Basics of vehicle aerodynamics, 2002.

[15] S. D. Groote. (2009). Aerodynamics in racing. S. D. Groote, ed., direccion: https:

//www.f1technical.net/articles/10.

[16] Y. Jin. (2010). Soft computing home page - short definition of soft computing.

Y. Jin, ed., direccion: URLhttp://www.soft-computing.de/def.html.

[17] H. Maaranen, K. Miettinen y A. Penttinen, “On initial populations of a genetic

algorithm for continuous optimization problems”, Journal of Global Optimiza-

tion, vol. 37, pags. 405-436, mar. de 2007. doi: 10.1007/s10898-006-9056-6.

[18] J. Cheng. (2012). Numerical optimization. J. Cheng, ed., direccion: http://www.

jade-cheng.com/au/coalhmm/optimization/.

[19] J. R. Koza, Genetic programming: On the programming of computers by means

of natural selection. ma, 1992.

[20] JavaFX. (2014). 1 javafx overview, direccion: https : // docs . oracle. com /

javase/8/javafx/get-started-tutorial/jfx-overview.htm#JFXST784.

[21] MicroCFD. (2019). Microcfd 3d virtual wind tunnel. MicroCFD, ed., direccion:

http://microcfd.com/3d.htm.

48

Page 56: Optimizaci on de estructuras con enjambres gramaticales

[22] Altair. (2019). Advanced meshing to high-fidelity cfd simulation — virtual wind

tunnel. Altair, ed., direccion: https : / / altairhyperworks . com / product /

Virtual-Wind-Tunnel.

49