algoritmos geneticos

5
Artículo VOLVER Algoritmo genético aplicado a la asignación de recursos en la planeación de la producción CIENCIACIERTA No.18 • junio de 2009: ARTICULO Laura Cristina Vázquez de los Santos [email protected] Facultad de Ingeniería Mecánica y Eléctrica Unidad Norte Ricardo Burciaga Alarcón [email protected] Jorge Luis Vázquez Lúndez [email protected] Facultad de Contaduría y Administración Unidad Norte Introducción Un aspecto importante en la planeación de la producción es determinar cómo se distribuirán los recursos involucrados en la fabricación de productos. Debido a que los recursos para la fabricación de productos son limitados, deben repartirse de forma que maximicen los logros y objetivos de las operaciones de producción. Es posible encontrar la forma más aceptable para la asignación de los recursos disponibles mediante la aplicación de un algoritmo genético, ya que resuelve problemas de optimización. Definición de algoritmo genético Un algoritmo genético es un método que se utiliza para resolver problemas de búsqueda y optimización. Se basa en la genética natural y en la teoría de la evolución de Darwin, utilizando la información histórica para encontrar nuevos puntos de búsqueda de una solución óptima a problemas para los que no existe un método preciso. Los algoritmos genéticos son una de las principales herramientas tecnológicas de la inteligencia artificial y requieren una función-objetivo para llevar a cabo la búsqueda de soluciones, intentando encontrar aquella que optimice dicha función. Una vez que el algoritmo genético obtiene una población y en base a la función objetivo aplicada a cada uno de los individuos, se seleccionan los mejores y se combinan para generar nuevas poblaciones; este proceso se repite hasta que se cumplan los criterios de paro. Funcionamiento básico de un algoritmo genético A continuación se muestra el funcionamiento básico de un algoritmo genético, considerando que previamente es necesario determinar una función objetivo del problema de optimización y especificar la manera de codificar las posiblessoluciones. Generación de la población inicial

Upload: jose-antonio-arias-luis

Post on 30-Jun-2015

449 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos geneticos

  Artículo                                            VOLVER

Algoritmo genético aplicado a la asignación de recursos en la planeación de la producción

CIENCIACIERTA No.18 • junio de 2009: ARTICULO

Laura Cristina Vázquez de los [email protected] de Ingeniería Mecánica y EléctricaUnidad Norte

Ricardo Burciaga Alarcó[email protected]

Jorge Luis Vázquez Lú[email protected]

Facultad de Contaduría y AdministraciónUnidad Norte

 Introducción

Un aspecto importante en la planeación de la producción es determinar cómo se distribuirán los recursos involucrados en la fabricación de productos.

Debido a que los recursos para la fabricación de productos son limitados, deben repartirse de forma que maximicen los logros y objetivos de las operaciones de producción.

Es posible encontrar la forma más aceptable para la asignación de los recursos disponibles mediante la aplicación de un algoritmo genético,  ya que resuelve problemas de optimización.

 Definición de algoritmo genético

Un algoritmo genético es un método que se utiliza para resolver problemas de búsqueda y optimización. Se basa en la genética natural y en la teoría de la evolución de Darwin, utilizando la información histórica para encontrar nuevos puntos de búsqueda de una solución óptima a problemas para los que no existe un método preciso.

Los algoritmos genéticos son una de las principales herramientas tecnológicas de la inteligencia artificial y requieren una función-objetivo para llevar a cabo la búsqueda de soluciones, intentando encontrar aquella que optimice dicha

función.

Una vez que el algoritmo genético obtiene una población y en base a la función objetivo aplicada a cada uno de los individuos, se seleccionan los mejores y se combinan para generar nuevas poblaciones; este proceso se repite hasta que

se cumplan los criterios de paro.

 Funcionamiento básico de un algoritmo genético

A continuación se muestra el funcionamiento básico de un algoritmo genético, considerando que previamente es necesario determinar una función objetivo del problema de optimización y especificar la manera de codificar las

posiblessoluciones.

Generación de la población inicial

Normalmente el algoritmo genético genera de forma aleatoria una población para el primer ciclo, formada por un conjunto de cromosomas (individuos), o cadenas de bits a los cuales se les aplica la función objetivo.

Evaluación de los cromosomas

La evaluación se realiza calculando la función objetivo para cada uno de los cromosomas que forman la población actual. De esta forma se determina la adaptación de cada individuo de la población actual. 

Las funciones para la evaluación de la aptitud son específicas a cada problema.

Selección

Consiste en seleccionar los cromosomas que serán cruzados en la siguiente generación. Los cromosomas con mejor

Page 2: Algoritmos geneticos

aptitud tienen mayor probabilidad de ser seleccionados.

Existen diferentes métodos de selección que pueden utilizar los algoritmos genéticos. A continuación se describen brevemente dos de ellos:

Método de la ruleta o selección proporcional: Este método consiste en crear una ruleta en la que cada cromosoma tiene asignada una fracción proporcional a su aptitud. A los individuos más aptos se les asigna

un área mayor de la ruleta, para que sean seleccionados más veces que los menos aptos. Método del torneo: En este método se eligen subgrupos de individuos de la población y después se hace

competir a los individuos que integran cada subgrupo. Se elige el individuo de cada subgrupo que tenga el valor de aptitud más alto. 

 

CruzaEs el intercambio de material genético entre dos cromosomas a la vez para generar

dos descendientes donde se combinan las características de ambos cromosomas padres.

Una forma común de cruza consiste en establecer un punto de intercambio en un lugar aleatorio del cromosoma de los dos individuos, y uno de los individuos

contribuye todo su código anterior a ese punto y el otro individuo contribuye todo su código a partir de ese punto para producir una descendencia.

MutaciónAl igual que una mutación en los seres vivos cambia un gen por otro, una mutación

en un algoritmo genético también causa pequeñas alteraciones en puntos determinados del código de un individuo.

Por último, se comprueba si alguno de los individuos disponibles satisface los criterios establecidos y se puede considerar como solución al problema.   

El algoritmo genético se detiene cuando se cumpla un número determinado de generaciones o cuando no haya cambios en la población.

 Desarrollo del algoritmo genético

Se desarrolló un algoritmo genético en el lenguaje de programación C++.El objetivo de este algoritmo genético es obtener la ganancia máxima en la planeación de la producción tomando en

cuenta los diferentes productos a fabricar y las horas necesarias y los materiales requeridos para su fabricación, considerando como restricciones las horas y materiales disponibles en un lapso de tiempo determinado.

A continuación se muestra en la Figura 1 la cantidad de horas y material requerido para la fabricación de cada producto, incluyendo la ganancia obtenida por la fabricación de cada producto.

Relacion de horas, material y ganancia de cada producto a fabricar. (Figura 1.)

 

Para éste ejemplo, las restricciones que se tienen son las horas totales (60 hrs./semana) y la cantidad de material (100 u.m./semana) disponibles.

Se generó de forma aleatoria la primera generación formada por n individuos, donde n es el número de individuos que forman la población actual.

Cada individuo representa una posible solución, como se muestra en la Figura 2.

Page 3: Algoritmos geneticos

Es necesario evaluar cada individuo para garantizar que las restricciones de horas totales y la cantidad de material disponible se cumplan, es decir, asegurarse de que las posibles soluciones no excedan las restricciones de horas y

materiales disponibles.

En seguida se evalúa la primera generación (fitness). Con este procedimiento se encontró el mejor individuo y se pasó directamente a formar parte de la segunda generación en el primer registro, así como se observa en la Figura 3.

Los siguientes individuos que pasaron a formar parte de la segunda generación se formaron como resultado de una cruza, seleccionando parejas de individuos por medio del método de la ruleta, donde los individuos más aptos tienen

mayores posibilidades de pasar a la siguiente generación.

Los genes que forman a cada pareja pueden ser cruzados. Para cada cromosoma se genera un número aleatorio que puede ser 0 ó 1. Si el número generado fue 0, no se cruzan los cromosomas, pero si fue 1 se cruzan y se evalúan para

garantizar que se cumplan las restricciones de horas y materiales. Un ejemplo de cruza se muestra en la Figura 4.

Los individuos resultantes de la cruza pasan a formar parte de la siguiente generación. Este procedimiento se repite hasta que las parejas formadas logren poblar por completo a la siguiente generación.

Después se elige un individuo y un gen de manera aleatoria de la nueva generación, sin considerar al primer individuo, ya que es el mejor de esta nueva generación.

Para realizar la mutación del gen del individuo seleccionado, se genera un número aleatorio entre 0 y 9. Si el número generado es menor o igual al valor de gen actual, se sustituye automáticamente el nuevo valor del gen, si es mayor es

Page 4: Algoritmos geneticos

necesario evaluar al individuo para garantizar que las restricciones de horas totales y la cantidad de material disponible se cumplan. En caso contrario, no se realiza ningún cambio.

En este momento la siguiente generación se encuentra totalmente formada, lista para evaluar a sus individuos y seleccionar el mejor.

Lo anterior se repite hasta que se cumpla el número de generaciones definidas al inicio de la corrida o cuando no haya cambios en la población.

La Figura 5 muestra la ejecución del algoritmo genético. 

Resultados

La aplicación de este algoritmo genético permitió encontrar soluciones aceptables en la asignación de los recursos en la planeación de la producción, considerando las restricciones de horas totales y material disponible en la fabricación de

cinco diferentes productos.

 Conclusiones

Los algoritmos genéticos son una herramienta útil para obtener soluciones de problemas que requieren la optimización y cuyas posibles respuestas se encuentran dentro de un universo limitado.

 Referencias bibliográficas

Koza John R., Genetic Programming On the Programming of Computers by Means of Natural Selection. Editorial MIT Press, 1998.

Bramer Max, Devedzic Vlandan, Artificial Intelligence Applications and Innovations. Editorial Kluwer Academic,2004. Coppin Ben, Artificial Intelligence Illuminated. Sudbury, MA. Editorial Jones and Bartlett, 2004.

Russell Stuart y Norving Peter. Inteligencia Artificial: Un enfoque moderno. Editorial Prentice Hall, 2004.Lakhmi C., Martin N. M.,   Fusion of Neural Networks, Fuzzy Systems and Genetic Algorithms: Industrial

Applications.Editorial CRC Press, 1998.