Está en la página 1de 8

INTELIGENCIA ARTIFICIAL

Trabajo Prctico n 4 Algoritmos Genticos Optimizacin Mezcla Motores Nafteros

Profesores: Ing. Mario Figueroa Ing. Pablo Rovarini Alumnos: Jos Daniel Muccela Comisin: 5 k 2 Ao 2008

Facultad Regional Tucumn Universidad Tecnolgica Nacional

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

Problema:

TP N4 Algoritmos Genticos Optimizacin Mezcla para Motores Nafteros Desarrollo

En la resolucin del presente problema se tratar de encontrar la mejor solucin, esto es, encontrar los mejores valores para las variables que intervienen en el problema: Aire, Combustible y NOS. Estos valores representarn las partes de los componentes en la mezcla que se usar en el motor para obtener una mayor potencia.
Buja Vlvula

Esquema de Motor a combustin

AIRE

Biela

Se necesitan 3 variables que son los parmetros a considerar para el desarrollo del modelo. Estas variables son: Aire Combustible NOS Para resolverlo utilizaremos el software comercial Matlab versin 7. Para ello seguimos los siguientes pasos: Abrimos la herramienta Matlab. Creamos un nuevo archivo *.mat en el directorio que deseemos. En nuestro caso los archivos se crearon en el Current Directory (C:\MATLAB7\work). Se abre la ventana de programacin de Matlab. En ella escribimos en la primera lnea la definicin de la funcin fitness, que vamos a maximizar y en una segunda lnea la funcin misma.

-Lnea 1 -Lnea 2

function F = tp4Mezcla (X) F = ((0.8*X(1))/(0.1*X(2))) + (0.1 * ((0.36*X(3))/(0.64*X(3))))

UTN

FRT

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

Para la funcin fitness consideramos que en la mezcla interviene por un lado el aire con un porcentaje del 80 % de la mezcla y el combustible con un porcentaje del 10 % (variables X1 y X2, respectivamente) y por otro lado interviene el NOS, otorgando a la mezcla inicial su parte de aire (oxgeno) y nitrgeno (variable X3) las cuales estn representadas por su respectivo porcentaje en que intervienen en la mezcla. O sea le corresponde el 10 % restante de la mezcla. De ese 10 %, 0.36 corresponden al aporte de aire que tiene el NOS; el 0.64 que queda es Nitrgeno, que se agrega al Combustible. El cociente indica la relacin entre el aire y el combustible de la mezcla. Procedemos a guardar el archivo; por defecto se guarda con el mismo nombre especificado en la definicin de la funcin. En nuestro caso mantuvimos el nombre por defecto de la funcin: tp4Mezcla.mat.
Ahora nos dirigimos a la ventana principal del Matlab y en la ventana de comandos escribimos gatool para abrir la caja de herramientas para resolver problemas de Algoritmos Genticos que ofrece el programa. >> gatool Se nos abre una ventana que contiene mltiples opciones para la configuracin y la inicializacin de nuestro problema:

En ella comenzaremos a escribir los parmetros que usar Matlab para resolver el problema.

UTN

FRT

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

En el primer cuadro de texto escribimos la directiva @nombredefuncin. Esto significa que llama a la funcin que previamente creamos en el archivo *.mat (tp4Mezcla). En el siguiente cuadro especificamos el nmero de variables de la funcin de aptitud (fitness) del problema que como dijimos son X1, X2 y X3. (Aire, Combustible y NOS, respectivamente). En el grupo Plots, se encuentran las opciones de grfico, esto es, cules sern las salidas que el sistema representar grficamente para el algoritmo gentico. Las ms importante son Best fitness, Best individual, Selection.

Ahora configuramos las opciones para nuestro problema. En la seccin Population especificamos nuestro tipo de poblacin que ser un Double Vector (nmero decimal) ya que usaremos cantidades reales.

Especificamos cuantos individuos hay en cada generacin en Population size. Indicamos la funcin de creacin: La creacin predefinida function Uniform crea una poblacin inicial al azar con una distribucin uniforme. Dejamos en blanco Inicial Population para que la funcin predefinida la cree. Dejamos en blanco Inicial scores para que el algoritmo compute los puntajes de acuerdo a la funcin de aptitud (fitness). A continuacin vamos a especificar cuales sern las opciones para las funciones de Seleccin, Mutacin, Reproduccin, etc. Para Fitness scaling nos basamos en posicin de los individuos segn el ranking (Rank) que obtengan por la adecuacin a la funcin fitness.

UTN

FRT

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

Para la seleccin elegimos el mtodo de la ruleta, donde a cada individuo se le asigna una porcin de la torta. En este caso, a mayor tamao de la porcin mayor ser su probabilidad de salir seleccionado.

Para la reproduccin se considerar el mtodo elitista, donde irn conservndose los mejores a medida que surjan las nuevas generaciones. El porcentaje de cruza lo dejamos en 80 %. El restante es para la mutacin.

Para la mutacin elegimos hacerlo de manera uniforme con una taza de mutacin de 1 %. A veces no se llega a realizar la mutacin. Caso contrario slo sera con una frecuencia del 1 %. La mutacin permite modificar un gen del genoma de un individuo cualquiera con el fin de mejorarlo. Por ej: Cadena de bits: representan un individuo. 0 1 1 0 1 1 1 0 0 1

Queremos mutar un gen del genoma, supongamos el tercero. De esta manera el genoma quedara: 0 1 0 0 1 1 1 0 0 1

Para la opcin de Cruza (crossover) elegimos Two point. Two point selecciona dos enteros al azar m y n entre 1 y el Nmero de variables. El algoritmo selecciona genes numerados menores o iguales a m del primer padre, selecciona genes numerados m+1 a n del segundo padre, y selecciona

UTN

FRT

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

genes numerados mayor que n del primer padre. El algoritmo procede a encadenar estos genes para formar un solo gen. Por ejemplo, p1 = [a b c d e f g h] p2 = [1 2 3 4 5 6 7 8] Punto de cruza (al azar) = 3,6 El resultado es el siguiente: p3 = [a b c 4 5 6 g h]

Por lo tanto para nuestro caso seleccionamos dos puntos de cruza. Para el criterio de parada del algoritmo elegimos 100 generaciones. El resto de las opciones del criterio podemos dejarlas como estn. Esto producir que en el caso de que no haya mejores soluciones que las que encontr en el proceso de cmputo del algoritmo parar antes de que se llegue a las 100 generaciones. De todas maneras si queremos probar las 100 tenemos que especificar Inf en Time limit, Fitness limit, Stall generations y Stall time limit.

Las configuraciones especificadas hasta aqu son suficientes para correr el problema y analizar los resultados. Para ello nos dirigimos a la derecha de la caja de herramientas

Comenzar a correr el problema

En esta seccin se visualizar el resultado del cmputo y el motivo porque se detuvo el algoritmo

UTN

FRT

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

En el momento que se est ejecutando vemos que se abre una ventana mostrando los grficos que se seleccionamos en la seccin Plots. En el se puede ver como los grficos van modificndose a medida que se realiza el cmputo. Al final del mismo, el resultado de la funcin fitness es mostrado en la imagen anterior. El mejor resultado encontrado para las variables se observar en la siguiente imagen:

Para conservar la configuracin que establecimos podemos guardarla de la siguiente manera: Vamos al botn: Esto nos abre una pequea ventana que nos pregunta qu es lo que queremos exportar:

problema

configuracin

Podemos seleccionar todas las opciones. Cabe mencionar que antes de la ejecucin del problema las opciones 2 y 4 estn deshabilitadas porque el algoritmo todava no comput el mismo. Esto permitir guardar las configuraciones, el problema y los resultados para posteriores ejecuciones y anlisis.

configuracin problema

UTN

FRT

Inteligencia Artificial 2008 - TPN4 - Alg. Genticos - Muccela Jos Daniel

Resultados:

Puntos finales encontrados. Corresponden a los valores que toman las variables del problema. Grficos generados: El primero de ellos muestra el mejor valor para la funcin fitness. El segundo hace referencia al mejor individuo actual. El tercero muestra la expectativa de adaptacin de cada individuo. El cuarto muestra la adaptacin de cada individuo. El quinto hace referencia a la seleccin de los individuos, de acuerdo al mtodo de la ruleta que seleccionamos en la configuracin. El sexto muestra los criterios de parada de ejecucin del problema. Como se ve aqu el problema se detuvo cuando finalizaron de computarse todas las generaciones (100 en este caso).

El objetivo es encontrar la mejor combinacin de los componentes que intervienen en la mezcla. De esta manera se obtiene un valor correspondiente al Aire, al Combustible y al NOS. Esta ser la mejor solucin.

UTN

FRT

También podría gustarte