Algoritmos genéticos parte 2. Codificación entera.

Los algoritmos genéticos (AG) son una opción a considerar en todas aquellas aplicaciones dedicadas a la resolución de problemas complejos de tipo no lineal (NLP).
Se consideran un método robusto para encontrar soluciones en ambientes con demasiados elementos, variables y restricciones.

A continuación, se desarrolla un ejemplo simple de algoritmos genéticos aplicados:

En un supermercado se busca maximizar los resultados del negocio mejorando el posicionado de mercancías en las góndolas de exposición.
El primer análisis a nivel de producto asigna un valor a cada referencia dependiendo de los intereses y condiciones de la empresa.

Para ello se han definido las variables de interés que se pueden obtener para cada mercancía, se ha tomado su valor de los registros de la empresa y en dependencia de las metas e intereses de la dirección se ha calculado un valor que representa la factibilidad e importancia de cada producto en la situación planteada.

De este modo se ha podido analizar cuáles serán los productos priorizados a emplear en una góndola especifica asumiendo que existen 15 posiciones y se han seleccionado 15 productos.

Ahora corresponde analizar la posición de cada producto según su relación con el resto puesto que productos relacionados se colocan más cerca o más lejos, en línea o encima, y las características de algunos hacen que mejoren los resultados de otros. Un ejemplo de matriz de relaciones (sin valores) se expone en la siguiente imagen:

 A partir de los datos expuestos podemos conformar un algoritmo genérico para encontrar la mejor permutación de posiciones que se corresponde al o los individuos que maximizan la función de optimización de la góndola.

Para ello se define como un individuo una matriz de 3×5 que se corresponde con una distribución de individuos en los huecos de la estantería. En ese individuo cada gen estará ocupado por una mercancía de la forma G (1,1) = 1, G (1,2) = 7, etc.

Partiendo de una población inicial de ‘n’ individuos se les aplicarán operadores genéticos de cruzamiento, mutación y selección para ir de a poco mejorando las características de la población hasta obtener la mejor respuesta posible o alcanzar una condición de parada, digamos que las condiciones de parada sean:

. Parar si luego de 100 ciclos no se aumenta el valor máximo dentro de la población.

. Parar si el proceso tarda más de 10 min.

Lo que hemos hecho en este artículo se llama codificar el problema, es necesario convertir los datos y la situación en un escenario donde puedan trabajar los operadores genéticos principales. Luego será necesario definir nuestro entorno de algoritmo y para ello existen muchas consideraciones teóricas y prácticas.

Existen herramientas complejas que nos permiten calcular este tipo de situaciones, pero lo imprescindible en la solución son:

1.- La fórmula del valor de un producto.

2.- La fórmula del valor de una distribución específica en la góndola.

Y esos son lugares donde se deposita la inteligencia, nuestro algoritmo calculará, pero el valor real de la solución dependerá de la eficacia de ambas formulaciones. ¿Podemos llegar a estas fórmulas por medio de algoritmos genéticos? Continuará

Deja un comentario