stringtranslate.com

Hiperheurística

Una hiperheurística es un método de búsqueda heurística que busca automatizar, a menudo mediante la incorporación de técnicas de aprendizaje automático , el proceso de selección, combinación, generación o adaptación de varias heurísticas más simples (o componentes de dichas heurísticas) para resolver de manera eficiente problemas de búsqueda computacional. Una de las motivaciones para estudiar la hiperheurística es construir sistemas que puedan manejar clases de problemas en lugar de resolver solo un problema. [1] [2] [3]

Puede haber múltiples heurísticas entre las cuales se puede elegir para resolver un problema, y ​​cada una de ellas tiene sus propias fortalezas y debilidades. La idea es diseñar automáticamente algoritmos combinando las fortalezas y compensando las debilidades de las heurísticas conocidas. [4] En un marco hiperheurístico típico hay una metodología de alto nivel y un conjunto de heurísticas de bajo nivel (ya sean heurísticas constructivas o perturbativas). Dada una instancia de problema, el método de alto nivel selecciona qué heurística de bajo nivel se debe aplicar en un momento dado, dependiendo del estado actual del problema (o etapa de búsqueda) determinado por las características. [2] [5] [6]

Hiperheurísticas versus metaheurísticas

La diferencia fundamental entre las metaheurísticas y las hiperheurísticas es que la mayoría de las implementaciones de las metaheurísticas buscan dentro de un espacio de búsqueda de soluciones de problemas, mientras que las hiperheurísticas siempre buscan dentro de un espacio de búsqueda de heurísticas. Por lo tanto, cuando utilizamos hiperheurísticas, intentamos encontrar el método o la secuencia de heurísticas adecuados en una situación dada en lugar de intentar resolver un problema directamente. Además, buscamos una metodología de aplicación general en lugar de resolver una única instancia de problema.

Las hiperheurísticas pueden considerarse métodos "listos para usar" en lugar de metaheurísticas "hechas a medida". Su objetivo es ser métodos genéricos que produzcan soluciones de calidad aceptable, basadas en un conjunto de heurísticas de bajo nivel fáciles de implementar.

Motivación

A pesar de los importantes avances logrados hasta el momento en la creación de metodologías de búsqueda para una amplia variedad de áreas de aplicación, estos enfoques aún requieren que los especialistas integren su experiencia en un dominio de problemas determinado. Muchos investigadores de las ciencias de la computación , la inteligencia artificial y la investigación operativa ya han reconocido la necesidad de desarrollar sistemas automatizados para reemplazar el papel de un experto humano en tales situaciones. Una de las principales ideas para automatizar el diseño de heurísticas requiere la incorporación de mecanismos de aprendizaje automático en algoritmos para guiar de forma adaptativa la búsqueda. Tanto los procesos de aprendizaje como los de adaptación pueden realizarse en línea o fuera de línea, y basarse en heurísticas constructivas o perturbativas.

Una hiperheurística suele tener como objetivo reducir la cantidad de conocimiento del dominio en la metodología de búsqueda. El enfoque resultante debería ser barato y rápido de implementar, requiriendo menos experiencia en el dominio del problema o en los métodos heurísticos, e idealmente debería ser lo suficientemente robusto como para manejar de manera efectiva una variedad de instancias de problemas de una variedad de dominios. El objetivo es aumentar el nivel de generalidad de la metodología de apoyo a la toma de decisiones, tal vez a expensas de una calidad de solución reducida, pero aún aceptable, en comparación con los enfoques metaheurísticos hechos a medida. [7] Para reducir la brecha entre los esquemas hechos a medida y las estrategias basadas en hiperheurísticas, se han propuesto hiperheurísticas paralelas. [8]

Orígenes

El término "hiperheurística" fue acuñado por primera vez en una publicación del año 2000 por Cowling y Soubeiga, quienes lo utilizaron para describir la idea de "heurísticas para elegir heurísticas". [9] Utilizaron un enfoque de aprendizaje automático de "función de elección" que intercambia la explotación y la exploración al elegir la siguiente heurística a utilizar. [10] Posteriormente, Cowling, Soubeiga, Kendall, Han, Ross y otros autores investigaron y ampliaron esta idea en áreas como algoritmos evolutivos y heurísticas patológicas de bajo nivel. El primer artículo de revista que utilizó el término apareció en 2003. [11] El origen de la idea (aunque no el término) se remonta a principios de la década de 1960 [12] [13] y fue redescubierto y ampliado de forma independiente varias veces durante la década de 1990. [14] [15] [16] En el campo de la programación de trabajos, el trabajo pionero de Fisher y Thompson, [12] [13] planteó la hipótesis y demostró experimentalmente, utilizando el aprendizaje probabilístico, que la combinación de reglas de programación (también conocidas como reglas de prioridad o de despacho) era superior a cualquiera de las reglas tomadas por separado. Aunque el término no se utilizaba entonces, este fue el primer artículo "hiperheurístico". Otra raíz que inspira el concepto de hiperheurística proviene del campo de la inteligencia artificial . Más específicamente, proviene del trabajo sobre sistemas de planificación automatizados y su enfoque final hacia el problema del aprendizaje del conocimiento de control. El llamado sistema COMPOSER, desarrollado por Gratch et al., [17] [18] se utilizó para controlar los horarios de comunicación por satélite que involucraban una serie de satélites en órbita terrestre y tres estaciones terrestres. El sistema puede caracterizarse como una búsqueda de escalada en el espacio de posibles estrategias de control.

Clasificación de los enfoques

Los enfoques hiperheurísticos hasta ahora se pueden clasificar en dos categorías principales. En la primera clase, capturada por la frase heurísticas para elegir heurísticas , [9] [10] el marco hiperheurístico se proporciona con un conjunto de heurísticas preexistentes, generalmente conocidas para resolver el problema objetivo. La tarea es descubrir una buena secuencia de aplicaciones de estas heurísticas (también conocidas como heurísticas de bajo nivel dentro del dominio de las hiperheurísticas) para resolver eficientemente el problema. En cada etapa de decisión, se selecciona una heurística a través de un componente llamado mecanismo de selección y se aplica a una solución existente. La nueva solución producida a partir de la aplicación de la heurística seleccionada se acepta/rechaza en función de otro componente llamado criterio de aceptación. El rechazo de una solución significa simplemente descartarla, mientras que la aceptación conduce al reemplazo de la solución existente. En la segunda clase, heurísticas para generar heurísticas , la idea clave es "evolucionar nuevas heurísticas haciendo uso de los componentes de las heurísticas conocidas". [19] El proceso requiere, como en la primera clase de hiperheurísticas, la selección de un conjunto adecuado de heurísticas que se sabe que son útiles para resolver el problema objetivo. Sin embargo, en lugar de proporcionarlas directamente al marco, las heurísticas se descomponen primero en sus componentes básicos.

Estos dos tipos principales pueden clasificarse aún más según se basen en una búsqueda constructiva o perturbativa. Una clasificación ortogonal adicional de las hiperheurísticas considera la fuente que proporciona retroalimentación durante el proceso de aprendizaje, que puede ser una instancia ( aprendizaje en línea ) o muchas instancias del problema subyacente estudiado ( aprendizaje fuera de línea ).

Metodologías para elegir heurísticas

Descubra buenas combinaciones de heurísticas de bajo nivel fijas, diseñadas por humanos y bien conocidas.

Metodologías para generar heurísticas

Generar nuevos métodos heurísticos utilizando componentes básicos de métodos heurísticos previamente existentes.

Hiperheurísticas del aprendizaje en línea

El aprendizaje se produce mientras el algoritmo resuelve una instancia de un problema, por lo tanto, las propiedades locales dependientes de la tarea pueden ser utilizadas por la estrategia de alto nivel para determinar la heurística de bajo nivel adecuada que se debe aplicar. Algunos ejemplos de enfoques de aprendizaje en línea dentro de las hiperheurísticas son: el uso del aprendizaje de refuerzo para la selección de heurísticas y, en general, el uso de metaheurísticas como estrategias de búsqueda de alto nivel sobre un espacio de búsqueda de heurísticas.

Hiperheurísticas del aprendizaje fuera de línea

La idea es reunir conocimientos en forma de reglas o programas, a partir de un conjunto de instancias de entrenamiento, que se espera que se generalicen al proceso de resolución de instancias no vistas. Algunos ejemplos de enfoques de aprendizaje fuera de línea dentro de la hiperheurística son: sistemas de clasificación de aprendizaje , razonamiento basado en casos y programación genética .

En 2020 se proporcionó una clasificación ampliada de las hiperheurísticas de selección [20] para proporcionar una categorización más completa de los métodos hiperheurísticos de selección contemporáneos.

Aplicaciones

Las hiperheurísticas se han aplicado a muchos problemas diferentes. De hecho, una de las motivaciones de las hiperheurísticas es poder operar en distintos tipos de problemas. La siguiente lista es una selección no exhaustiva de algunos de los problemas y campos en los que se han explorado las hiperheurísticas:

Áreas relacionadas

Las hiperheurísticas no son el único enfoque que se está investigando en la búsqueda de metodologías de búsqueda más generales y aplicables. Muchos investigadores de la informática, la inteligencia artificial y la investigación operativa ya han reconocido la necesidad de desarrollar sistemas automatizados para reemplazar el papel de un experto humano en el proceso de ajuste y adaptación de las metodologías de búsqueda. La siguiente lista describe algunas áreas de investigación relacionadas:

Marcos existentes

Actualmente, existen varios frameworks disponibles en diferentes lenguajes de programación. Entre ellos se incluyen, entre otros:

HyFlex

ParHyFlex

EvoHyp

Matemáticas

Véase también

Referencias y notas

  1. ^ EK Burke, E. Hart, G. Kendall , J. Newall, P. Ross y S. Schulenburg, Hiperheurística: una dirección emergente en la tecnología de búsqueda moderna, Manual de metaheurística (F. Glover y G. Kochenberger, eds.), Kluwer, 2003, págs. 457–474.
  2. ^ ab P. Ross, Hiperheurísticas, metodologías de búsqueda: tutoriales introductorios en técnicas de optimización y soporte de decisiones (EK Burke y G. Kendall , eds.), Springer, 2005, págs. 529-556.
  3. ^ E. Ozcan, B. Bilgin, EE Korkmaz, Un análisis exhaustivo de hiperheurísticas [ enlace muerto ‍ ] , Análisis de datos inteligentes, 12:1, págs. 3-23, 2008.
  4. ^ E. Ozcan, B. Bilgin, EE Korkmaz, Escaladores de colinas y heurísticas mutacionales en hiperheurística, Notas de clase en Ciencias de la Computación, Springer-Verlag, La 9.ª Conferencia Internacional sobre Resolución de Problemas Paralelos a Partir de la Naturaleza, 2006, págs. 202-211.
  5. ^ Amaya, I., Ortiz-Bayliss, JC, Rosales-Perez, A., Gutierrez-Rodriguez, AE, Conant-Pablos, SE, Terashima-Marin, H. y Coello, CAC, 2018. Mejora de la hiperheurística de selección mediante transformaciones de características. Revista IEEE Computational Intelligence, 13(2), pp.30-41. https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8335843
  6. ^ Amaya, I., Ortiz-Bayliss, JC, Gutiérrez-Rodríguez, AE, Terashima-Marín, H. y Coello, CAC, 2017, junio. Mejorando el rendimiento hiperheurístico a través de la transformación de características. En 2017 IEEE Congress on Evolutionary Computation (CEC) (pp. 2614-2621). IEEE. https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7969623
  7. ^ Burke EK, Landa Silva JD, Soubeiga E.: Enfoques hiperheurísticos multiobjetivo para la asignación de espacio y la programación de horarios, en Metaheurísticas: el progreso como solucionadores de problemas reales, Artículos seleccionados de la 5.ª Conferencia internacional sobre metaheurísticas (MIC 2003), págs. 129-158, 2005.
  8. ^ C. Segura, G. Miranda y C. León: Hiperheurísticas paralelas para el problema de asignación de frecuencias Número especial sobre estrategias cooperativas inspiradas en la naturaleza para optimización, En Memetic Computing, Número especial sobre estrategias cooperativas inspiradas en la naturaleza para optimización, ( doi :10.1007/s12293-010-0044-5 [1]), 2010.
  9. ^ ab Cowling P. y Soubeiga E. Estructuras de vecindad para la programación de personal: un problema de programación de reuniones en la cumbre (resumen), en actas de la 3.ª Conferencia internacional sobre la práctica y la teoría de la programación automatizada de horarios, Burke EK y Erben W. (eds), 16-18 de agosto de 2000, Constanza, Alemania
  10. ^ ab Cowling P., Kendall G. y Soubeiga E., Un enfoque hiperheurístico para programar una cumbre de ventas, 2001, Lecture Notes in Computer Science 2079, Springer-Verlag, págs. 176-190, 2001, ISBN 3540424210 , ( doi :10.1007/3-540-44629-X) 
  11. ^ Burke EK, Kendall G. y Soubeiga E. (2003) Una hiperheurística de búsqueda tabú para la planificación de horarios y turnos. Journal of Heuristics, 9(6):451-470. ( doi :10.1023/B:HEUR.0000012446.94732.b6 [2])
  12. ^ ab H. Fisher y GL Thompson, Combinaciones de aprendizaje probabilístico de reglas de programación de talleres locales, Conferencia de programación de fábrica (Instituto Carnegie de Tecnología), 1961.
  13. ^ ab * H. Fisher y GL Thompson, Combinaciones de aprendizaje probabilístico de reglas de programación de talleres locales, Industrial Scheduling (Nueva Jersey) (JF Muth y GL Thompson, eds.), Prentice-Hall, Inc, 1963, págs. 225–251.
  14. ^ RH Storer, SD Wu y R. Vaccari, Nuevos espacios de búsqueda para problemas de secuenciación con aplicación a la programación de talleres, Management Science, 38 (10), 1992, 1495–1509.
  15. ^ HL Fang, P. Ross y D. Corne, Un enfoque prometedor de algoritmo genético para problemas de programación de talleres, reprogramación y programación de talleres abiertos, Quinta Conferencia Internacional sobre Algoritmos Genéticos (San Mateo) (S. Forrest, ed.), Morgan Kaufmann, 1993, págs. 375–382.
  16. ^ U. Dorndorf y E. Pesch, Aprendizaje basado en la evolución en un entorno de programación de talleres, Computers and Operations Research, 22(1), 1995, 25–40.
  17. ^ J. Gratch, S. Chien y G. DeJong, Aprendizaje de conocimiento de control de búsqueda para la programación de redes de espacio profundo, Actas de la Décima Conferencia Internacional sobre Aprendizaje Automático (Amherst, MA), 1993, págs. 135-142.
  18. ^ J. Gratch y S. Chien, Resolución de problemas adaptativa para problemas de programación a gran escala: un estudio de caso, Journal of Artificial Intelligence Research, 4, 1996, 365–396.
  19. ^ M. Bader-El-Den y R. Poli, Generación de heurísticas de búsqueda local sat mediante un marco hiperheurístico GP Archivado el 9 de agosto de 2017 en Wayback Machine , Artificial Evolution, 8.ª Conferencia Internacional, Evolution Artificielle, EA 2007, Tours, Francia, 29-31 de octubre de 2007, Documentos seleccionados revisados. Lecture Notes in Computer Science 4926 Springer, 2008, págs. 37-49.
  20. ^ Drake J. H, Kheiri A., Ozcan E., Burke EK, (2020) Avances recientes en hiperheurísticas de selección. Revista Europea de Investigación Operativa, 285(2), págs. 405-428. ( doi :10.1016/j.ejor.2019.07.073 [3])

Enlaces externos

Bibliografías hiperheurísticas

Grupos de investigación

Actividades recientes

Otros