1. Artículo VOLVER
Algoritmo genético aplicado a la asignación de recursos en CIENCIACIERTA No.18 • junio de 2009:
la planeación de la producción ARTICULO
Laura Cristina Vázquez de los Santos Ricardo Burciaga Alarcón Jorge Luis Vázquez Lúndez
lauravazquez@mail.uadec.mx rburciaga@besttexintl.com reproveedor@yahoo.com.mx
Facultad de Ingeniería Mecánica y Facultad de Contaduría y Administración
Eléctrica Unidad Norte
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
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
aptitud tienen mayor probabilidad de ser seleccionados.
Existen diferentes métodos de selección que pueden utilizar los algoritmos genéticos.
2. 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.
Cruza
Es 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ón
Al 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.
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,
Relacion de horas, material y ganancia de cada producto a como se muestra en la Figura 2.
fabricar. (Figura 1.)
Es necesario evaluar cada individuo para garantizar que las restricciones de horas totales y la cantidad de material
3. 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
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.
4. 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.