Articulo de referencia

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...

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 eficientemente problemas de búsqueda computacional. Una de las motivaciones para estudiar las hiperheurísticas 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 que elegir para resolver un problema, y ​​cada heurística 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 constructivas o perturbativas). Dada una instancia del problema, el método de alto nivel selecciona qué heurística de bajo nivel debe aplicarse 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 frente a metaheurísticas

La diferencia fundamental entre metaheurísticas e hiperheurísticas radica en que la mayoría de las implementaciones de metaheurísticas buscan dentro de un espacio de búsqueda de soluciones a problemas, mientras que las hiperheurísticas siempre buscan dentro de un espacio de búsqueda de heurísticas. Por lo tanto, al usar hiperheurísticas, buscamos el método o la secuencia de heurísticas adecuados para 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 un único caso.

Las hiperheurísticas podrían considerarse métodos "listos para usar", en contraposición a las metaheurísticas "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 del notable progreso alcanzado hasta ahora 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 específico. Muchos investigadores de informática , inteligencia artificial e investigación operativa ya han reconocido la necesidad de desarrollar sistemas automatizados que reemplacen el rol del experto humano en estas situaciones. Una de las ideas principales para automatizar el diseño de heurísticas requiere la incorporación de mecanismos de aprendizaje automático en los algoritmos para guiar la búsqueda de forma adaptativa. Tanto los procesos de aprendizaje como de adaptación pueden realizarse en línea o fuera de línea, y basarse en heurísticas constructivas o perturbativas.

Una hiperheurística generalmente busca reducir la cantidad de conocimiento del dominio en la metodología de búsqueda. El enfoque resultante debería ser económico y rápido de implementar, requiriendo menos experiencia tanto en el dominio del problema como en los métodos heurísticos, e idealmente, debería ser lo suficientemente robusto como para manejar eficazmente una variedad de instancias de problemas de diversos dominios. El objetivo es elevar el nivel de generalidad de la metodología de apoyo a la decisión, quizás a costa de una calidad de solución reducida, pero aún aceptable, en comparación con los enfoques metaheurísticos personalizados. [ 7 ] Para reducir la brecha entre los esquemas personalizados y las estrategias basadas en hiperheurísticas, se han propuesto hiperheurísticas paralelas. [ 8 ]

Orígenes

El término "hiperheurísticas" fue acuñado por primera vez en una publicación de 2000 por Cowling y Soubeiga, quienes lo usaron 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 equilibra 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 extendieron 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 del término) se remonta a principios de la década de 1960 [ 12 ] [ 13 ] y fue redescubierto y extendido de forma independiente varias veces durante la década de 1990. [ 14 ] [ 15 ] [ 16 ] En el dominio de la programación de talleres de trabajo , el trabajo pionero de Fisher y Thompson, [ 12 ] [ 13 ] hipotetizó y demostró experimentalmente, utilizando aprendizaje probabilístico, que la combinación de reglas de programación (también conocidas como reglas de prioridad o despacho) era superior a cualquiera de las reglas tomadas por separado. Aunque el término no se usaba entonces, este fue el primer artículo "hiperheurístico". Otra raíz que inspira el concepto de hiperheurísticas proviene del campo de la inteligencia artificial . Más específicamente, proviene del trabajo en sistemas de planificación automatizados y su eventual enfoque 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 cronogramas de comunicación satelital que involucran una serie de satélites en órbita terrestre y tres estaciones terrestres. El sistema puede caracterizarse como una búsqueda de ascenso de colina en el espacio de posibles estrategias de control.

Clasificación de los enfoques

Los enfoques hiperheurísticos se pueden clasificar en dos categorías principales. En la primera, denominada heurísticas para elegir heurísticas , [ 9 ] [ 10 ] el marco hiperheurístico se basa en un conjunto de heurísticas preexistentes y ampliamente conocidas para resolver el problema objetivo. La tarea consiste en descubrir una buena secuencia de aplicaciones de estas heurísticas (también conocidas como heurísticas de bajo nivel dentro del ámbito de las hiperheurísticas) para resolver el problema de manera eficiente. En cada etapa de decisión, se selecciona una heurística mediante un mecanismo de selección y se aplica a una solución existente. La nueva solución resultante de la aplicación de la heurística seleccionada se acepta o rechaza según un criterio de aceptación. El rechazo de una solución implica su descarte, mientras que su aceptación conlleva el reemplazo de la solución existente. En la segunda clase, heurísticas para generar heurísticas , la idea clave es "desarrollar nuevas heurísticas utilizando los componentes de 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 subdividirse 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 sola instancia ( aprendizaje en línea ) o varias instancias del problema subyacente estudiado ( aprendizaje fuera de línea ).

Metodologías para elegir heurísticas

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

  • Basado en heurísticas constructivas
  • Basado en heurísticas perturbativas

Metodologías para generar heurísticas

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

  • Basado en componentes básicos de heurísticas constructivas
  • Basado en componentes básicos de heurísticas perturbativas

Hiperheurísticas de aprendizaje en línea

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

Hiperheurísticas de aprendizaje fuera de línea

La idea es recopilar conocimiento en forma de reglas o programas, a partir de un conjunto de ejemplos de entrenamiento, que se espera que se generalicen al proceso de resolución de casos desconocidos. Ejemplos de enfoques de aprendizaje fuera de línea dentro de las hiperheurísticas 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 hiperheurísticas de selección , [ 20 ] para ofrecer 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 una gran variedad de problemas. De hecho, una de las motivaciones de las hiperheurísticas es su versatilidad para operar en diferentes 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:

Las hiperheurísticas no son el único enfoque que se investiga en la búsqueda de metodologías de búsqueda más generales y aplicables. Muchos investigadores de informática, inteligencia artificial e investigación operativa ya han reconocido la necesidad de desarrollar sistemas automatizados que reemplacen el rol del 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. Estos incluyen, entre otros:

HyFlex

ParHyFlex

Hiperactividad evolutiva

MatHH

Véase también

Referencias y notas

  1. EK Burke, E. Hart, G. Kendall , J. Newall, P. Ross y S. Schulenburg, Hiperheurísticas: una dirección emergente en la tecnología de búsqueda moderna , Manual de Metaheurísticas (F. Glover y G. Kochenberger, eds.), Kluwer, 2003, págs. 457–474.
  2. 1 2 P. Ross, Hiperheurísticas, Metodologías de búsqueda: Tutoriales introductorios en técnicas de optimización y apoyo a la decisión (EK Burke y G. Kendall , eds.), Springer, 2005, págs. 529-556.
  3. E. Ozcan, B. Bilgin, EE Korkmaz, Un análisis exhaustivo de las hiperheurísticas, Análisis Inteligente de Datos, 12:1, pp. 3-23, 2008.
  4. E. Ozcan, B. Bilgin, EE Korkmaz, Hill Climbers and Mutational Heuristics in Hyperheuristics, Lecture Notes in Computer Science, Springer-Verlag, The 9th International Conference on Parallel Problem Solving From Nature, 2006, pp. 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 las hiperheurísticas de selección mediante transformaciones de características. IEEE Computational Intelligence Magazine, 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, junio de 2017. Mejora del rendimiento de las hiperheurísticas mediante 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 elaboración de horarios , en Metaheurísticas: Progreso como solucionadores de problemas reales, Artículos seleccionados de la 5.ª Conferencia Internacional de 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 frecuencia Número especial sobre estrategias cooperativas inspiradas en la naturaleza para la optimización, En Computación Memética, Número especial sobre estrategias cooperativas inspiradas en la naturaleza para la optimización, ( doi : 10.1007/s12293-010-0044-5), 2010.
  9. 1 2 Cowling P. y Soubeiga E. Estructuras de vecindad para la programación de personal: un problema de programación de reuniones cumbre (resumen), en las actas de la 3.ª Conferencia Internacional sobre la Práctica y la Teoría de la Programación Automatizada, Burke EK y Erben W. (eds.), 16-18 de agosto de 2000, Constanza, Alemania
  10. 1 2 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, pp. 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 elaboración de horarios y la asignación de turnos. Journal of Heuristics, 9(6):451-470. ( doi : 10.1023/B:HEUR.0000012446.94732.b6)
  12. 1 2 H. Fisher y GL Thompson, Combinaciones de aprendizaje probabilístico de reglas de programación de talleres locales, Conferencia de Programación de Fábricas (Instituto Tecnológico Carnegie), 1961.
  13. 1 2
    • H. Fisher y GL Thompson, Combinaciones de aprendizaje probabilístico de reglas de programación de talleres locales, Programación industrial (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 de trabajo , 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, 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 de trabajo , Computers and Operations Research, 22(1), 1995, 25–40.
  17. J. Gratch, S. Chien y G. DeJong, Aprendizaje del 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 adaptativa de problemas 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 utilizando un marco hiperheurístico GP Archivado el 09-08-2017 en Wayback Machine , Evolución Artificial, 8.ª Conferencia Internacional, Evolution Artificielle, EA 2007, Tours, Francia, 29-31 de octubre de 2007, Artículos seleccionados revisados. Lecture Notes in Computer Science 4926 Springer, 2008, pp. 37-49.
  20. Drake J. H, Kheiri A., Ozcan E., Burke EK, (2020) Avances recientes en hiperheurísticas de selección. European Journal of Operational Research, 285(2), pp. 405-428. ( doi : 10.1016/j.ejor.2019.07.073)

Bibliografías hiperheurísticas

  • https://mustafamisir.github.io/hh.html

Grupos de investigación

  • Laboratorio de Inteligencia Artificial (ART+I) Archivado el 7 de junio de 2008 en la Wayback Machine , Universidad de Yeditepe Archivado el 2 de noviembre de 2013 en la Wayback Machine , Turquía
  • Grupo de Investigación de Planificación, Optimización y Programación Automatizadas (ASAP) , Universidad de Nottingham , Reino Unido
  • Grupo de Investigación de Optimización Combinatoria y Apoyo a la Decisión (CODeS) Archivado el 30/12/2011 en Wayback Machine , KU Leuven Archivado el 05/03/2011 en Wayback Machine , Bélgica
  • Grupo de Investigación en Heurística Computacional, Investigación Operativa y Apoyo a la Toma de Decisiones (CHORDS) , Universidad de Stirling , Reino Unido
  • Grupo de Investigación en Computación Evolutiva , Universidad Victoria de Wellington , Nueva Zelanda
  • Laboratorio de Sistemas Inteligentes , Universidad Heriot-Watt , Reino Unido
  • Grupo de Investigación en Inteligencia Artificial Avanzada (anteriormente: Grupo de Investigación en Sistemas Inteligentes ), Tecnológico de Monterrey , México .
  • Laboratorio de Aprendizaje Automático e Investigación Operativa (MEmORy) , Universidad de Aeronáutica y Astronáutica de Nanjing , República Popular China
  • Grupo de Investigación MOSAIC (Modelado, Optimización, Programación y Control Inteligente) , Universidad de Bradford , Reino Unido
  • Grupo de Investigación Operativa (IO) , Universidad Queen Mary de Londres , Reino Unido
  • Grupo de Investigación de Optimización de Software mediante Computación con Inteligencia Artificial (OSCAR) , Universidad Tecnológica de Dalian , República Popular China

Actividades recientes

  • Transmisión en directo sobre hiperheurísticas en la EURO 2019
  • Sesión invitada sobre diseño automatizado de algoritmos para problemas de optimización multiobjetivo en MCDM 2019
  • 8º Taller sobre Computación Evolutiva para el Diseño Automatizado de Algoritmos (ECADA) @ GECCO 2018
  • Transmisión en directo sobre hiperheurísticas en la EURO 2018
  • Sesión especial sobre diseño automatizado de algoritmos como técnicas de conjunto en IEEE CIEL / SSCI 2017
  • Tutorial sobre selección de algoritmos: técnicas offline y online @ SEAL 2017 Archivado el 8 de marzo de 2018 en Wayback Machine
  • Primer Simposio AISB sobre Meta-Optimización: Hiperheurísticas y más allá @ Convención AISB 2013
  • Hiperheurísticas modernas para problemas de optimización a gran escala en META2012
  • Tutorial sobre hiperheurísticas y optimización entre dominios en GECCO 2012
  • Pista de búsqueda propia en GECCO 2012
  • Sesión especial sobre hiperheurísticas basadas en la evolución y sus aplicaciones en IEEE CEC2012 (WCCI2012)
  • Sesión especial sobre búsqueda heurística entre dominios (LION-CHESC) en LION2012
  • Desafío de búsqueda heurística entre dominios 2011 (CHeSC 2011) Archivado el 30/09/2011 en Wayback Machine
  • Sesión especial sobre sistemas para construir sistemas en MISTA 2011
  • Tutorial sobre diseño heurístico automatizado en GECCO 2011
  • Sesión especial sobre algoritmos evolutivos híbridos, hiperheurísticas y computación memética en IEEE CEC2010 (WCCI 2010). Archivada el 19 de septiembre de 2011 en Wayback Machine.
  • Taller sobre heurísticas de búsqueda autoajustables, autoconfigurables y autogeneradoras (Self* 2010) en PPSN 2010
  • Taller sobre hiperheurísticas en PPSN 2008

Otros

  • Grupo de trabajo sobre hiperheurísticas en el Comité Técnico de Sistemas Inteligentes y Aplicaciones de la Sociedad de Inteligencia Computacional del IEEE .