No es que yo sepa (aunque no soy un experto). Cubrí una variedad de problemas de programación en la universidad en 2015, y ni los algoritmos genéticos ni las redes neuronales parecen ideales para resolver estos problemas por varias razones.
Ambos:
- No hay una forma objetiva de medir la calidad de la solución final de un GA o una red neuronal en problemas difíciles (ya que si el problema es lo suficientemente difícil como para usar una heurística, la solución óptima no se conoce de antemano). En comparación, las soluciones basadas en MIP crean un límite inferior en la calidad de la solución óptima a medida que avanzan (incluso si no están resueltas a la óptima) que cuantifica el potencial para una mejora adicional.
Gas:
- ¿Cuáles son algunos problemas computacionales que son 'inherentemente secuenciales' y que no pueden acelerarse significativamente usando paralelismo?
- ¿Por qué una trampa interrumpe tanto el borde como el nivel activado?
- Cómo supercomprimir imágenes
- Si tengo una aplicación en la nube para resolver cualquier problema NP completo en P (N ^ 3). ¿Cuál es el tamaño del mercado para dicha aplicación y qué industrias estarán interesadas?
- ¿Alguien puede explicar la arquitectura de Von Neumann?
- Debido a que los problemas de JSS tienen muchas restricciones, muchas de las soluciones candidatas generadas aleatoriamente no son factibles: el cruce entre los planes a menudo falla, lo que resulta en un gran esfuerzo computacional para poca ganancia.
Existen soluciones alternativas para esto (por ejemplo, penalizar las soluciones inviables en la función de aptitud física en lugar de rechazarlas directamente), pero estas vienen con sus propios problemas: en este caso, una penalización alta significa que pocas soluciones inviables sobreviven al cruce, mientras que una penalización baja significa que un GA encontrará un bajo número de planes factibles en cada iteración.
Redes neuronales:
- Generar un conjunto significativo de datos de entrenamiento para un enfoque de red neuronal es un desafío en sí mismo. Estos datos deberán tener un carácter muy similar al problema que se está resolviendo. Al mismo tiempo, no debe simplificar el problema de manera que la red neuronal se ajuste demasiado a los datos de entrenamiento; si los problemas de entrenamiento se generan automáticamente, este es un gran riesgo.
Además, debe tener un método para resolver sus problemas de entrenamiento, para que sean significativamente más pequeños (y más simples) que su instancia de problema real, con la respuesta óptima ya conocida, o le enseñará a su red neuronal a encuentre soluciones subóptimas para problemas más grandes.
Sin embargo, hay una variedad de enfoques MIP que pueden funcionar razonablemente bien, por ejemplo, modelos de programación de enteros mixtos para la programación de talleres: un análisis computacional
La categoría de heurística llamada Matheurstics podría valer la pena: son similares a los enfoques heurísticos más tradicionales (descenso de gradiente, GRASP, búsqueda de vecindario) y están guiados por un subproblema de optimización.
(Si alguien tiene contraejemplos, me encantaría leer sobre ellos. Esto es sobre todo cuando regurgito la opinión de uno o dos profesores, no he hecho ninguna comparación exhaustiva).