Tengo un problema de optimización que intento resolver usando un algoritmo genético. Básicamente, hay una lista de 10 variables con valores reales encuadernados (-1 < = x < = 1), y necesito maximizar alguna función de esa lista. La trampa es que solo hasta 4 variables en la lista pueden ser! = 0 (condición de subconjunto).Algoritmo genético en un optiproblema similar a la mochila
Matemáticamente hablando: para alguna función f: [-1, 1]^10 -> R min f (X) S.T. | {var en X con var! = 0} | < = 4
Algunos antecedentes en f: La función NO es similar a ningún tipo de función objetivo de la mochila, como Suma x * peso o algo por el estilo.
Lo que he intentado hasta ahora:
Sólo un algoritmo genético básico sobre el genoma [-1, 1]^10 con 1 punto de cruce y mutación alguna gaussiana de las variables. Traté de codificar la condición del subconjunto en la función de acondicionamiento físico utilizando solo los primeros 4 valores distintos de cero (cero como en lo suficientemente cerca de 0). Este enfoque no funciona tan bien y el algoritmo está atascado en las 4 primeras variables y nunca usa valores más allá de eso. Vi algún tipo de GA para el problema 01-mochila donde este enfoque funcionó bien, pero aparentemente esto funciona solo con variables binarias.
¿Qué me recomendarías probar ahora?
no tengo ni idea acerca de los algoritmos genéticos pero se puede tratar de codificar el problema de manera diferente: la selección de 4 valores reales y 4 números enteros distintos en el rango de 0-9. – Patrick
El número total de soluciones es inferior a 10^4, ¿por qué no utilizar la enumeración? ¿Es esta tarea? – willem