Descargar

Algoritmos Genéticos Aplicados a la Gestión de Inventarios de Artículos No Perecederos

Enviado por Ignacio Luis Castillo


Partes: 1, 2, 3, 4

    1. Objetivos y alcances
    2. Organización del trabajo
    3. ¿A quienes está dirigida esta Tesis?
    4. Gestión de Inventarios
    5. Algoritmos Genéticos
    6. Diseño de la Solución
    7. Especificación de Requerimiento del Software
    8. Laboratorio de Prueba
    9. Conclusión Final
    10. Anexo
    11. Referencias

    Introducción

    La gestión de inventarios, como problema de toma de decisiones, pretende suministrar el nivel de existencias que permita minimizar los costes implicados en la misma. La resolución tradicional se basa en hipótesis de partida restrictivas que determinan su falta de aplicabilidad en la práctica.

    Constituyen una parte esencial en el buen comportamiento económico de las empresas. Con ella, se pretende satisfacer las necesidades de los clientes incurriendo en los mínimos costes posibles.

    Las decisiones más habituales que se adoptan con relación a los inventarios son: que artículos mantener en stock; si es más conveniente fabricarlos o comprarlos; en que momento efectuar la compra; tamaño del lote a comprar; nivel de servicio a brindar a los clientes; nivel de existencias a mantener; inventarios de seguridad a mantener; sistema de control a utilizar.

    Uno de los problemas que encuentra la forma tradicional de gestionar los inventarios, es que en un contexto de costos variables, el mismo solo es resuelto aplicando las formulas para todas las posibilidades, no pudiendo indicar cual es la mejor de todas las opciones.

    Los algoritmos genéticos son una técnica del área de Inteligencia Artificial que constituye una abstracción del concepto biológico de evolución natural y tiene numerosas aplicaciones en problemas de optimización.

    Su funcionamiento está basado en los mecanismos de selección natural, combinando la supervivencia del más apto con un intercambio de información entre miembros de una

    población de posibles soluciones.

    Los algoritmos genéticos son métodos sistemáticos para la resolución de problemas de búsqueda y optimización que aplican a estos los mismos métodos de la evolución biológica: selección basada en la población, reproducción y mutación.

    Se estima que el uso de algoritmos genéticos puede contribuir a acortar significativamente los tiempos de resolución de un problema, ya que se caracterizan por su capacidad de explorar el espacio de búsqueda de soluciones amplia y eficientemente.

    La programación mediante esta técnica supone un nuevo enfoque que permite abarcar todas aquellas áreas de aplicación donde no sepamos como resolver un problema

    Objetivos y alcances

    En este contexto, el objetivo de este trabajo es analizar como pueden aplicarse los algoritmos genéticos, que han demostrado ser útiles para ayudar a resolver problemas de optimización, a solucionar el problema de encontrar la mejor forma de gestionar los inventarios de artículos no perecederos, entendiendo por ‘no perecederos’ a aquellos productos que pueden almacenarse para una venta a futuro.

    Se pretende demostrar que los algoritmos genéticos son aplicables a la gestión de inventarios y es posible diseñar un sistema que permita, mediante la utilización de dicha técnica, la minimización de costos en función a cantidades y capacidades de almacenamiento variables.

    Para esto se contempla el estudio de los métodos de análisis de stocks para identificar el proceso y definir las variables involucradas en la determinación de costos, análisis a fondo de la técnica de algoritmos genéticos y su modo de implementación para evaluar su uso y de que manera sacarle un mayor provecho. Una vez establecida la base teórica, se procederá a diseñar y desarrollar un sistema que calcule los costos mínimos de administración de stocks utilizando algoritmos genéticos con el fin de realizar pruebas que ayuden a confirmar o refutar la hipótesis enunciada.

    Queda fuera del alcance de este trabajo el análisis correspondiente a la gestión de los inventarios de stock para toda fase de producción.

    Organización del trabajo

    El Capítulo 1 servirá de introducción a la gestión de stocks, en donde podremos aprender acerca de modelos, variables y costos para determinar de qué manera encarar una solución al problema planteado. En el Capítulo 2 se analizará en profundidad el funcionamiento de los algoritmos genéticos y las herramientas con las que cuentan para realizar optimización y búsqueda de soluciones. A partir de esta base teórica, en el Capítulo 3 se plantea un posible enfoque para el diseño de una herramienta que nos permita demostrar la hipótesis de este trabajo. En el Capítulo 4 se podrá encontrar un diseño de dicho sistema (el cual fue implementado y su código fuente puede leerse en el Anexo A)". Este sistema fue el utilizado para las pruebas descriptas en el Capítulo 5, en donde pueden verse los resultados obtenidos y su análisis correspondiente. Finalmente, en el Capítulo 6 podrán encontrarse las conclusiones finales, basadas en las pruebas del Capítulo 5 y la base teórica.

    A quienes está dirigida esta Tesis ?

    Esta investigación está dirigida a profesionales informáticos, licenciados e ingenieros, y a profesionales de administración comercial, con apoyo de personal informático.

      1. Gestión de Inventarios de Artículos no Perecederos
    1. Capitulo I – Gestión de Inventarios

    La gestión de los inventarios, la podemos definir, como la administración de existencias de todo producto o artículo que es utilizado dentro de una organización. Es un conjunto de políticas y controles que gestionan los niveles de inventarios y determina cuanto, cuando y de que manera se debe reponer. Es una de las funciones de mayor importancia en la administración de sistemas empresariales o comerciales, fundamentalmente debido a que ellas representan una considerable inversión de capital de trabajo.

    De alguna manera, la eficiente gestión de inventarios de artículos no perecederos es una herramienta capaz de mejorar la calidad de la manipulación de costos y cantidades.

    Se considera que un artículo es no perecedero cuando no pose fecha de vencimiento, es decir que no caduca con el transcurso del tiempo.

    Sus aplicaciones más importantes son:

    • Maximizar el servicio a los clientes.

    Se pretende conseguir que los productos estén disponibles cuando son demandados, sirviendo de medida de la efectividad de la gestión de inventarios.

    • Minimizar la inversión en inventarios.

    La tenencia de inventarios supone la inmovilización de capitales que no pueden ser utilizados para otras actividades de la empresa. En un análisis de las posibles ventajas que puede conllevar la tenencia de inventarios hay que tener en cuenta los costes en los que se puede incurrir por el mantenimiento de existencias.

    Citando una definición formal podríamos decir que los inventarios son materiales y suministros que una empresa o institución posee, ya sea para vender o para abastecer al proceso productivo. [Cuatrecasas – 2003]

    Todas las empresas o instituciones precisan de inventarios, constituyendo una parte importante

    del activo total de las mismas.

    Podemos decir que el nivel de los stocks presentes es una medida directa de la incompetencia del sistema y su dirección. Efectivamente, las existencias suelen actuar como escudo protector ante las malas gestiones.

    Esto será expuesto en la incapacidad para planificar los suministros, incapacidad para producir o incapacidad para prever la demanda real y sus variaciones.

    En consecuencia el objetivo de una empresa, en cuanto a su política de inventarios, será lograr el balance justo entre los beneficios derivados de mantenerlos y los costos que ellos originan.

    1. La demanda a la que estarán afectados los artículos no perecederos es la llamada Demanda Continua o Independiente.

      Es la que proviene directamente del mercado y que por lo tanto no puede ser controlada ni determinada por la empresa, sino solo prevista.

    2. Tipo de Demanda para Artículos no Perecederos.
    3. Modelo de Stock para Artículos no Perecederos.

    El modelo de stock más utilizado para el manejo de artículos no perecederos es el de "Stock de Fluctuación con protección", el cual tiene características bien definidas e influye en gran parte a la forma en la que se gestionan los inventarios en lo que se refiere a tiempos, cantidades y diferentes costos. A continuación, se describen las características del modelo.

    Modelo de Stock de Fluctuación con Protección.

    La inseguridad o desconocimiento del ritmo de entradas o salidas de artículos en el almacén son los motivos que dan lugar a este tipo de modelo, que nos conduce a mantener un cierto nivel de "stock de seguridad" por encima del que sería necesario para prevenir las posibles rupturas.

    El tratamiento económico de la optimización de este stock se basa en enfrentar el coste de mantenimiento con el coste de ruptura derivado de necesitar un material para poder atender a un pedido y no poder hacerlo por no disponer de él en ese momento (coste de la posible perdida de un cliente, beneficio que se deja de ganar, etc.). Dado que consideraremos la demanda como una variable aleatoria regida por las correspondientes leyes estadísticas (normal, poisson, etc.) este modelo es no determinista.

    Se debe tener en cuenta

    • Variación de la demanda por desajustes en la previsión de ventas.
    • Retrasos en los suministros por parte de los proveedores y subcontratistas.
    • Fallos en la calidad del citado suministro, de forma que puedan ser devueltos.
    • Problemas emanados de los proveedores: continuidad, precios, negociaciones.
    • Problemas de planificación y programación de los lotes.
    • Fallos en las entregas
    • Problemas derivados del personal (rendimiento, formación, etc.)

    En el Stock de Fluctuación encontramos dos formas de enfocar la gestión de los mismos.

    • Método de punto de pedido o del inventario permanente

    Consiste en lanzar la orden de pedido de una cantidad siempre constante cada vez que el nivel de stock llegue a un nivel determinado (punto de pedido). Requiere un control constante de las existencias para saber el nivel exacto en cada momento. Normalmente se aplica a artículos de importancia estratégica para la empresa o artículos de alta rotación.

    • Método del inventario cíclico.

    Consiste en revisar el nivel de los stock periódicamente y pedir cada vez la cantidad necesaria para llegar a un nivel de stock determinado. Al contrario que el anterior se aplica a artículos de poca importancia.

    Otros modelos aplicables a diferentes tipos de productos son el modelo de Stock de partida y de anticipación que no serán tratados en este trabajo.

    1. Los siguientes costes y variables son los considerados tradicionalmente para la toma de decisiones relacionadas con la Gestión de Inventarios:

      1. Es el precio pagado por la adquisición de un artículo comprado y se compone del coste del material y cualquier otro coste directo que haya sido necesario para conseguir que dicho material se encuentre en la empresa. Puede incluir costes de transporte, aduanas, seguros, etc., en cuyo caso recibe el nombre de coste de adquisición. Si se tratara de un producto fabricado en la empresa, los componentes del coste de los productos serían las materias primas, la mano de obra directa y los gastos generales de fabricación. A este respecto, generalmente se suelen producir descuentos en el importe de este concepto de coste ante volúmenes grandes de artículos.

      2. Coste de Compra de los Artículos
      3. Costes de Posesión o de Mantenimiento en Almacén
    2. Costes y Variables de los Inventarios a Optimizar

    Estos costes se refieren a los gastos en los que incurre la empresa para mantener los artículos en sus almacenes y son proporcionales al volumen de inventarios. Así, a medida que los inventarios aumentan, también lo hacen los costes de este tipo.

    Pueden dividirse en tres categorías:

    • Costes de Capital.

    Debido a la existencia de inventarios el dinero que lo constituye no está disponible para otros usos y por lo tanto representa un coste de oportunidad.

    • Coste de Almacenamiento.

    El mantenimiento de inventarios requiere espacio, trabajadores y equipos .

    Los riesgos inherentes al mantenimiento de artículos almacenados por obsolescencia, deterioro, pérdidas o depreciación.

    1. Costes de Lanzamiento o Emisión de una Orden de Pedido

    Los costes de lanzamiento de los pedidos están relacionados con la empresa y con el suministrador. El coste de emitir un pedido no depende únicamente de la cantidad solicitada, sino que hay ciertos costes que son independientes de dicha cantidad. De ahí que, el coste anual de lanzamiento de los pedidos dependa del número de órdenes emitidas al año, estando compuesto de la siguiente manera:

    • Costes de Puesta a Punto y Parada.

    Cada vez que una orden llega al almacén se incurren en costes de preparación de los trabajadores y equipos encargados de su recepción. Adicionalmente, cuando se termina esta tarea, se incurren en unos costes de finalización de la misma. Ambos son independientes del volumen del pedido pero aumentan a medida que se incrementa el número de los mismos.

    • Costes de Capacidad Perdida.

    Cada vez que un pedido llega a la empresa se pierde tiempo en la recepción del mismo que se podría emplear en el proceso productivo.

    • Costes Administrativos del Pedido.

    En el momento de realizar un pedido, se incurren en unos costes necesarios para solicitarlo. Éstos incluyen petición remitida al proveedor, seguimiento, recepción, autorización del pago y contabilización de la operación.

    1. Si la demanda excede de lo previsto se producirá una ruptura en el stock, es decir, no habrá suficientes artículos para satisfacer la demanda de los clientes o del proceso productivo.

      Los costes que esta situación acarrea pueden ser elevados en ciertas ocasiones, e incluirán: costes de ventas no realizadas, de devolución del pedido, de pérdidas de clientes, etc. Las rupturas pueden evitarse manteniendo niveles extra de inventarios para proteger a la empresa contra situaciones en las que la demanda real sea mayor que la previsión de la misma. Sin embargo, esta práctica supone mayores costes de posesión de los artículos almacenados.

    2. Costes de Ruptura

      Cuando los volúmenes de capacidad varían por motivo de las necesidades se incurre en costes de alquiler, entrenamiento, horas extra, paradas, etc., fuera de lo previsto. Este tipo de costes se puede evitar obteniendo productos en épocas de demanda baja para ser vendidos en períodos de aumento de la misma lo que, por otro lado, producirá un incremento en los costes de posesión.

    3. Costes Asociados con la Capacidad

      Los stocks mínimos tienden a evitar las continuas rupturas de stocks. Son puntos de protección; cuando las existencias llegan a ese punto se deberá efectuar el reaprovisionamiento.

    4. Los Stocks Mínimos.
    5. La Proyección de Ventas

    La proyección de las ventas surgirá en función del análisis de las ventas históricas. De esto se desprende, que el solicitar la reposición de las cantidades vendidas, se hace en función a una cantidad conocida, que tiene que ver con el promedio de ventas para un periodo determinado.

    1. Modelo Matemático para la Gestión de Inventarios.

    Existen diversos modelos matemáticos utilizados para la gestión de inventarios. El presente trabajo tomará como base el modelo conocido como Stock de Protección por ser uno de los más usados en la actualidad. Este modelo considera que existe una cantidad de productos que se mantienen en existencia, a fin de absorber variaciones de demanda o de plazo de entregas y situaciones imprevistas.

    Además maneja un parámetro que es el nivel de protección, el cual se fija políticamente de acuerdo a la empresa en donde se gestionen.

    Parámetros:

    D : Demanda del producto, referida a un periodo de tiempo

    b : Costo unitario de adquisición.

    c : Costo unitario de almacenamiento.

    k : Costo de Una Orden

    LT : "Lead Time" (plazo de entrega).

    T : Parámetros de dimensionamiento que sirven para referenciar todos los parámetros temporales a la misma unidad de tiempo. Se toma siempre igual a 1 y su unidad es "pedidos"

    Variables

    q : Tamaño del lote. Es una variable de decisión.

    t : Intervalo entre dos reaprovisionamientos sucesivos.

    CTE : Costo total esperado.

    n : número de pedidos (órdenes) a emitir en ese periodo de tiempo.

    SR : Stock de reorden o punto de pedido

    Calculo del Tamaño del lote óptimo

    El tamaño de lote óptimo, también llamado cantidad económica a solicitar esta dado por la formula.

    q* = √(2.k.D/T.c)

    Esta expresión se la conoce con el nombre de fórmula de Wilson.

    Cálculo del Costo Total Esperado

    CTE = b.D+1/2.q*.c.T+k.D/q*+c.Sp.T

    * Multiplicando esta expresión por el número de ciclos n por períodos

    Calculo del Stock de Reposición

    SR = LT.d.Sp

      1. Los algoritmos genéticos fueron desarrollados por John Holland, junto a su equipo de investigación, en la universidad de Michigan en la década de 1970 [Holland, 1975] y conforman una técnica informática dentro del área de la Inteligencia Artificial para la resolución de problemas.

        Éstos combinan las nociones de supervivencia del más apto con un intercambio estructurado y aleatorio de características entre individuos de una población de posibles soluciones, conformando un algoritmo de búsqueda que puede aplicarse para resolver problemas de optimización en diversos campos [Goldberg, 1989]. Imitando la mecánica de la evolución biológica en la naturaleza, los algoritmos genéticos operan sobre una población compuesta de posibles soluciones al problema.

        Cada elemento de la población se denomina "cromosoma". Un cromosoma es el representante, dentro del algoritmo genético, de una posible solución al problema. La forma en que los cromosomas codifican a la solución se denomina "Representación" (ver figura 2.1).

        Fig. 2.1 – Cada cromosoma codifica una posible solución al problema

        El algoritmo genético va creando nuevas "generaciones" de esta población, cuyos individuos son cada vez mejores soluciones al problema. La creación de una nueva generación de individuos se produce aplicando a la generación anterior operadores genéticos, adaptados de la genética natural. La figura 2.2 representa el esquema de funcionamiento del algoritmo genético. El proceso comienza seleccionando un número de cromosomas para que conformen la población inicial.

        A continuación se evalúa la función de adaptación para estos individuos. La función de adaptación da una medida de la aptitud del cromosoma para sobrevivir en su entorno. Debe estar definida de tal forma que los cromosomas que representen mejores soluciones tengan valores más altos de adaptación. Los individuos más aptos se seleccionan en parejas para reproducirse. La reproducción genera nuevos cromosomas que combinan características de ambos padres. Estos nuevos cromosomas reemplazan a los individuos con menores valores de adaptación.

        A continuación, algunos cromosomas son seleccionados al azar para ser mutados. La mutación consiste en aplicar un cambio aleatorio en su estructura. Luego, los nuevos cromosomas deben incorporarse a la población; estos cromosomas deben reemplazar a cromosomas ya existentes.

        El ciclo de selección, reproducción y mutación se repite hasta que se cumple el criterio de terminación del algoritmo, momento en el cual el cromosoma mejor adaptado se devuelve como solución (ver figura 2.2).

        Fig. 2.2 – Esquema de Funcionamiento del Algoritmo Genético.

        1. El esquema de representación es el que define de qué forma se corresponden los cromosomas con las soluciones al problema. Para diseñar el esquema de representación, se buscan los parámetros que identifican a las soluciones, y luego se codifican estos parámetros dentro del cromosoma.

          La figura 2.3 muestra un posible esquema de representación para un problema que tiene como soluciones a los polígonos regulares. Los parámetros que identifican a cada solución son 2 (cantidad de lados y longitud del lado), y estos se codifican en el cromosoma en forma binaria.

          El cromosoma se compone de una cadena de 10 bits. A cada mínimo elemento que conforma el cromosoma, en algoritmos genéticos, se lo denomina Alelo. En esta representación sería el bit.

          En los que los primeros 3 son la cantidad de lados, y los siguientes 7 bits representan la longitud de los lados en milímetros. El esquema de representación debería ser tal que exista al menos una posible codificación para cada una de las soluciones posibles. Las soluciones que no estén dentro del espacio de cromosomas no serán exploradas por el algoritmo genético.

          En el ejemplo de la figura 2.3 el algoritmo genético no explorará soluciones que se compongan por polígonos de más de 7 lados ni longitudes mayores a 127 milímetros, ya que con 3 y 7 bits pueden codificarse solamente números del 0 al 7, y del 0 al 127, respectivamente. Por el mismo motivo (porque la búsqueda se hace sobre el espacio de cromosomas), es deseable que no haya redundancia en la representación; que cada solución sea representada por solamente un cromosoma. Si existen k cromosomas por cada solución, el espacio de búsqueda sobre el que opera el algoritmo genético es k veces más grande que el espacio de soluciones, haciendo más lento el proceso de evolución.

          La representación ejemplificada en la figura 2.3 no tiene redundancia, cada polígono es representado sólo por un cromosoma. Otro problema que puede presentarse es que haya cromosomas que no representan ninguna solución.

          En el ejemplo de la figura 2.3, un cromosoma que tenga todos 0 en los primeros 3 ó en los últimos 7 bits no representan un polígono válido. En caso de que la representación lo permita, los operadores del algoritmo genético deben adaptarse para tratar con este tipo de cromosomas.

          La codificación ejemplificada en la figura 2.3 se denomina "binaria", ya que cada posición del cromosoma contiene un bit. Esta es la representación clásica propuesta por los primeros autores y que todavía es utilizada ampliamente [Goldberg,1989; Cole, 1998; Falkenauer, 1999]. Sin embargo, hay problemas para los cuales esta representación no es la más conveniente. El funcionamiento de los algoritmos genéticos está basado en lo que se denomina la "hipótesis de los bloques constructores" [Goldberg, 1989].

          Esta hipótesis requiere que los cromosomas se compongan por bloques significativos que codifiquen las características de la solución lo más independientemente posible.

          El ejemplo de la figura 2.4 es un claro ejemplo de una representación que no cumple con esta premisa. Sería más apropiado un esquema en el cual el cromosoma se componga por 2 números enteros, uno de los cuales codifique el número de lados y el otro la longitud. La figura 2.4 muestra esta representación.

        2. Representación

          La población inicial es la principal fuente (luego se verá que el operador de mutación también trabaja sobre este punto) de material genético para el algoritmo. La población inicial debe contener cromosomas que estén bien dispersos por el espacio de soluciones.

          La manera más simple de cumplir con este objetivo es elegir cromosomas al azar. El uso de una heurística, es decir, de una técnica de indagación y descubrimiento, puede ayudar a generar una población inicial compuesta de soluciones de mediana calidad, ahorrando tiempo al proceso de evolución, siempre y cuando se garantice una dispersión suficiente para la búsqueda.

        3. Generación de la Población Inicial

          La función de adaptación cuantifica la aptitud de cada cromosoma como solución al problema, y determina su probabilidad de ser seleccionado para la fase de reproducción y poder pasar parte de su material genético a la siguiente generación.

          La función de adaptación provee la presión que hace evolucionar la población hacia cromosomas más aptos, por lo que una buena definición de esta función es fundamental para un correcto funcionamiento del algoritmo. La función debe asignar el valor más alto al cromosoma que representa la solución óptima al problema. Soluciones cercanas a la óptima deben obtener valores altos, y la función debe ir decreciendo a medida que los cromosomas representan soluciones cada vez más alejadas de la óptima.

          Como el proceso de evolución tiende a retener el material genético de los cromosomas con valores altos de aptitud, una elección apropiada de la función de adaptación resultará en mayor probabilidad de retener características de soluciones cercanas a la óptima. Otro punto a tener en cuenta en el diseño de la función de adaptación es la escala [Goldberg, 1989].

          Cuando la aptitud de los elementos de la población es variada (por ejemplo, al inicio del proceso de evolución), es común que la población contenga unos pocos cromosomas cercanos al óptimo, rodeados de cromosomas que representan soluciones mediocres. Los cromosomas más aptos obtendrán valores exageradamente superiores al promedio para la función de adaptación, y el algoritmo genético elegirá solamente a estos cromosomas para la reproducción.

          Esto puede ocasionar lo que se denomina "convergencia prematura": el algoritmo genético encontrará una solución sin haber explorado suficientemente el espacio de búsqueda.

          Sin embargo, a medida que la aptitud promedio va subiendo, el problema será diferente. La diferencia irá decreciendo, y los cromosomas más aptos obtendrán valores de adaptación similares a los de los demás cromosomas, reduciendo la probabilidad de que el algoritmo genético seleccione a los mejores individuos para la reproducción. Los dos problemas pueden corregirse aplicando una función de escala a la función de adaptación.

          La función de escala lineal calcula la nueva función de adaptación f’ a partir de la función de adaptación f usando la transformación lineal f’ = a.f + b. Las constantes "a" y "b" se eligen de forma tal que el promedio de las dos funciones sea el mismo, y que el máximo para la función f’ asegure la diferencia de probabilidades deseada entre los elementos más aptos y el promedio.

        4. Función de Adaptación
        5. Selección
      2. Introducción a los Algoritmos Genéticos
    1. Capitulo II – Algoritmos Genéticos

    La selección de los individuos que van a reproducirse se realiza mediante un operador de selección. El operador de selección hace la elección basándose en los valores de adaptación de los individuos. Existen distintos operadores de selección que pueden utilizarse [Miller et.al., 1995], de los cuales, a continuación, se describen los más comunes.

    • Selección Basada en el Ranking

    En el operador de selección basado en el ranking, los cromosomas se ordenan de acuerdo a sus valores para la función de adaptación. Luego, se seleccionan para la reproducción a los primeros m (la cantidad que sea necesaria) cromosomas. Como las probabilidades de ser elegido de cada individuo dependen solamente de su posición relativa respecto a los demás y no del valor absoluto de aptitud, este operador no requiere que se apliquen las técnicas de escala de la función de adaptación.

    • Selección por Ruleta

    El operador de selección por ruleta es uno de los más simples [Goldberg, 1989].

    Los cromosomas se colocan en segmentos continuos sobre una línea, de forma tal que el segmento para cada individuo sea de tamaño proporcional a su valor de aptitud, y que la suma de las longitudes de los segmentos sea igual a 1.

    Se genera un número al azar entre 0 y 1, y el individuo cuyo segmento comprende el número generado es seleccionado para la reproducción; el procedimiento se repite hasta que se obtiene el número deseado de individuos. Esta técnica es análoga a una rueda de ruleta en la que a cada cromosoma le es asignada una parte de tamaño proporcional a su valor de aptitud. La figura 2.5 ejemplifica el funcionamiento de este operador.

    El tamaño del segmento asignado a cada cromosoma (y por lo tanto su probabilidad de ser seleccionado para reproducirse) es proporcional a su aptitud. El operador de selección por ruleta puede requerir la aplicación de una función de escala sobre la función de adaptación, ya que los segmentos son dimensionados en función del valor absoluto de aptitud de cada individuo.

    • Selección por Torneo

    Los dos operadores de selección descriptos anteriormente no permiten regular la presión selectiva. El operador de selección basado en el ranking siempre seleccionará a los mejores individuos de la población. La selección por ruleta, si no se aplica ninguna función de escala, aplica una presión selectiva muy alta cuando las aptitudes de los individuos son variadas, y muy baja cuando las aptitudes son similares [Goldberg, 1989].

    El operador de selección por torneo permite controlar en forma efectiva la presión selectiva del algoritmo genético, siendo a la vez de fácil implementación. En este esquema, se toman T individuos al azar de la población (donde T es el tamaño del torneo, habitualmente 2 o 3 individuos), de los cuales se selecciona para la fase de reproducción, con probabilidad p (generalmente entre 0,7 y 0,8), aquel que tenga el mayor valor de la función de adaptación.

    Los parámetros T y p permiten regular la presión selectiva. Cuanto más grandes son los valores de T y p, mayor es la presión selectiva. En el caso extremo de que p sea igual a 1 y T igual al tamaño de la población, el algoritmo genético solamente seleccionará al mejor individuo de la población.

    En el otro extremo, si T es igual a 1, se logra la presión selectiva más baja (los cromosomas se seleccionan al azar). Manteniendo estos parámetros constantes, se logra una presión selectiva que es independiente de los valores absolutos de aptitud de la población, y sin requerir la aplicación de funciones de escala sobre la función de adaptación.

    1. Reproducción

    La fase de reproducción se implementa por medio de un operador de reproducción. El operador de reproducción es el encargado de transferir el material genético de una generación a la siguiente. Es este operador el que confiere a la búsqueda de soluciones mediante algoritmos genéticos su característica más distintiva [Falkenauer, 1999].

    A diferencia de otros métodos de optimización, los algoritmos genéticos no solamente exploran el vecindario de las buenas soluciones, sino que recombinan sus partes para formar nuevas soluciones. Se ha hecho notar que el descubrimiento de nuevas teorías combinando nociones ya conocidas es un mecanismo que el hombre ha utilizado constantemente a lo largo de la evolución de la ciencia [Goldberg, 1989].

    El objetivo de los operadores de reproducción es, partiendo de dos cromosomas padres, generar uno o más cromosomas hijos que hereden características de ambos padres, como se muestra en la figura 2.6.

    Se dice que en el hijo se "recombinan" las características de los padres. Si las características se traspasan en bloques significativos, se espera que un hijo que recombina características de buenas soluciones sea una buena solución, tal vez mejor que cualquiera de sus padres. Los operadores de reproducción más típicos generan dos hijos a partir de dos padres.

    A continuación se describen los más utilizados.

    • Cruza Monopunto

    Este operador consiste en separar a los padres en dos partes para formar dos hijos intercambiando las partes de cada padre. Si los cromosomas se componen de N bloques, se elige un número al azar c, tal que 1 <= c < N, y luego se asigna al primer hijo los primeros c bloques del primer padre y los últimos N – c bloques del segundo padre. Se procede en forma inversa para formar al segundo hijo.

    • Cruza Multipunto

    Es evidente que en el operador de cruza monopunto, el primer y último bloque de uno de los padres no pueden pasar juntos al hijo en ningún caso. El operador de cruza multipunto avanza un paso más, quitando esta restricción. En la cruza multipunto, se eligen M puntos de corte al azar, y las secciones de cada padre se pasan a los hijos en forma alternada.

    La figura 2.8 ejemplifica este procedimiento, para el caso en que M es igual a 2 y 5.

    • Cruza Uniforme

    Si bien la cruza multipunto es más flexible que la monopunto, tiene algunos inconvenientes. En primer lugar, para valores impares de M impide que el primer y último bloque de los padres pasen juntos a los hijos, y para valores pares obliga a que sea así.

    En segundo lugar, los bloques consecutivos tienen más posibilidades de pasar juntos que los que se encuentran más distanciados. Esto no es deseable (a menos que la codificación elegida haga que los bloques consecutivos representen características relacionadas).

    El operador de cruza uniforme permite el intercambio de los bloques en una manera que es independiente del orden que la codificación impuso a cada uno dentro del cromosoma.

    Para cada posición de los cromosomas hijos, se elige al azar cuál de los dos bloques de los cromosomas padres se copia en cada uno. Esta es una generalización del esquema de cruza multipunto donde la cantidad de puntos de corte M se elige al azar para cada reproducción.

    1. La mutación de cromosomas (junto con la generación de la población inicial) es la encargada de proveer al sistema de material genético. La mutación se implementa mediante un operador de mutación.

      El operador de cruza genera nuevas soluciones intercambiando bloques de las soluciones existentes, pero sin el operador de mutación, el algoritmo genético no tendría forma de crear nuevos bloques. Este operador es el que permite que la exploración del espacio de búsqueda sea amplia. El operador de mutación trabaja a nivel de bloque dentro de los cromosomas, haciendo cambios aleatorios de acuerdo a una probabilidad PM (probabilidad de mutación). La naturaleza del cambio depende de la composición de los bloques de los cromosomas. Si cada bloque es un bit (en la codificación binaria), el único cambio posible es invertir su valor. Si los bloques son números reales, la modificación podría ser la suma o sustracción de un pequeño valor aleatorio.

    2. Mutación
    3. Inserción de los Hijos en la Población

    La reinserción de hijos consiste en incorporar los nuevos cromosomas en la población. Los métodos de reinserción son diferentes según la cantidad de cromosomas generados sea menor, igual o mayor que la cantidad de elementos existentes en la población.

    • Se generan más cromosomas que elementos en la población

    Este esquema es similar al de reinserción pura. Se eligen los mejores cromosomas entre los que se generaron, y se eliminan los cromosomas sobrantes. Luego, se reemplaza la población completa por la nueva generación.

    • Se generan menos cromosomas que elementos en la población

    Este esquema exige seleccionar entre los cromosomas de la población aquellos que se eliminarán. A continuación se describen los métodos más utilizados para hacerlo.

    • Inserción uniforme

    Los cromosomas a ser reemplazados se eligen al azar entre los miembros de la población. Se corre el riesgo de eliminar buenas soluciones, ya que no se tiene en cuenta la aptitud de los cromosomas.

    • Inserción elitista

    Se eligen los cromosomas menos aptos para ser reemplazados. Este método asegura que los mejores cromosomas pasarán siempre a la siguiente generación, pero puede restringir la amplitud de la búsqueda que realiza el algoritmo genético.

    • Inserción por torneo invertido

    Se utiliza en combinación con el método de selección por torneo. Funciona exactamente igual que el método de selección por torneo pero seleccionando con probabilidad p al peor cromosoma del torneo para ser reemplazado, y tiene las mismas propiedades que éste, permitiendo regular la presión selectiva sin el uso de funciones de escala.

    1. Criterio de Terminación de los Algoritmos Genéticos

    El criterio de terminación del algoritmo genético es el encargado de definir el momento en el cual debe detenerse el ciclo de evolución y adoptar el cromosoma más apto como la solución encontrada por el algoritmo genético. A continuación se describen los criterios más comúnmente utilizados.

    • Criterio de Convergencia de Identidad

    Este criterio consiste en detener al algoritmo genético cuando un determinado porcentaje de los cromosomas de la población representa a la misma solución. Los operadores del algoritmo genético tienden a preservar y difundir el material genético de los cromosomas más aptos, por lo que es de esperar que luego de un gran número de generaciones, alguna solución con gran valor de aptitud se imponga y domine la población.

    • Criterio de Convergencia de Aptitud

    Puede suceder que existan soluciones equivalentes o casi equivalentes a un problema, que obtengan valores de aptitud similares. En ese caso, es probable que no haya una solución que se imponga en la población (y el criterio de terminación por convergencia de identidad nunca se cumpla).

    Este criterio no espera a que la población se componga mayoritariamente de una sola solución, sino que finaliza la ejecución del algoritmo cuando los valores de aptitud de un determinado porcentaje de las soluciones son iguales, o difieren en un porcentaje. Por ejemplo, cuando el 90% de las soluciones tenga valores de aptitud que no difieran en más de un 1%.

    • Criterio de Cantidad de Generaciones

    Los métodos anteriores apuntan a esperar a que la evolución de la población llegue a su fin. Cuando alguno de ellos se cumple, es probable que las soluciones no sigan mejorando mucho más, no importa cuantas generaciones más se ejecuten.

    Sin embargo, los algoritmos genéticos pueden necesitar un número de generaciones muy grande para llegar a la convergencia, dependiendo de las tasas de reproducción y mutación. Utilizando cualquiera de los dos criterios anteriores no puede estimarse un número máximo de generaciones, ya que esto dependerá no solamente de los parámetros del algoritmo genético sino también del azar.

    Esto puede ser un problema, sobre todo si se quieren comparar los tiempos de resolución de un problema mediante algoritmos genéticos con otros métodos [Estivill-Castro, 2000].

    El criterio de terminación por cantidad de generaciones consiste simplemente en finalizar la ejecución una vez que ha transcurrido un número determinado de generaciones. Este método permite determinar con precisión los tiempos de ejecución del algoritmo a costa de detener la evolución sin la certeza de que las soluciones no seguirán mejorando.

    Partes: 1, 2, 3, 4
    Página siguiente