DynASP2.5: programación dinámica en descomposiciones de árboles en acción
Autores: Fichte, Johannes K.; Hecher, Markus; Morak, Michael; Woltran, Stefan
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
DynASP2.5: programación dinámica en descomposiciones de árboles en acción
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Algoritmos eficientes
Algoritmos parametrizados
Ancho de árbol
Programación de conjuntos de respuestas
DynASP2.5
Programación dinámica
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 24
Citaciones: Sin citaciones
Los algoritmos eficientes de parámetros exactos son un área de investigación activa. Tales algoritmos muestran un amplio interés en la comunidad teórica. En los últimos años, se han establecido implementaciones para calcular varios parámetros (detección de parámetros) en desafíos parametrizados, como anchura de árbol, profundidad de árbol, anchura de hiperárbol, conjunto de vértices de retroalimentación o cubierta de vértices. En teoría, las instancias para las cuales el parámetro considerado es pequeño pueden resolverse rápidamente (evaluación del problema), es decir, el tiempo de ejecución está limitado exponencialmente en el parámetro. Aunque existen tales garantías teóricas favorables, a menudo no está claro si se pueden implementar con éxito estos algoritmos bajo consideraciones prácticas. En otras palabras, ¿podemos diseñar y construir implementaciones de algoritmos parametrizados de modo que funcionen de manera similar o incluso mejor que los solucionadores de problemas bien establecidos en instancias donde el parámetro es pequeño? De hecho, podemos construir una implementación que funcione bien bajo las suposiciones teóricas. Sin embargo, también podría ser que un solucionador existente aproveche implícitamente una estructura, lo cual a menudo se afirma para los solucionadores que se basan en la resolución. En este documento, consideramos encontrar una solución a instancias de programación de conjuntos de respuestas (), que es un marco lógico declarativo para modelar y resolver. Las soluciones para las instancias de ASP se llaman conjuntos de respuestas. Curiosamente, el problema de decidir si una instancia tiene un conjunto de respuestas ya se encuentra en el segundo nivel de la jerarquía polinomial. Un solucionador que emplea la anchura de árbol como parámetro y ejecuta programación dinámica en descomposiciones de árboles es DynASP2. Los experimentos empíricos muestran que este solucionador es rápido en instancias de pequeña anchura de árbol y puede superar a los modernos cuando se cuentan los conjuntos de respuestas. Queda abierto si se puede mejorar el solucionador para que también encuentre un conjunto de respuestas rápidamente y muestre un comportamiento competitivo con los solucionadores modernos de ASP en instancias de baja anchura de árbol. Desafortunadamente, los modelos teóricos de los solucionadores modernos de ASP ya indican que estos solucionadores pueden resolver instancias de baja anchura de árbol rápidamente, ya que se basan en algoritmos de resolución. En este documento, mejoramos DynASP2 y construimos el solucionador DynASP2.5, que utiliza un enfoque diferente. El nuevo solucionador muestra un comportamiento competitivo con los solucionadores de vanguardia incluso para encontrar solo una solución. Presentamos experimentos empíricos donde se puede ver que nuestra nueva implementación resuelve instancias de ASP, que codifican el problema del árbol de Steiner en gráficos con baja anchura de árbol, rápidamente. Nuestra implementación se basa en un enfoque novedoso que llamamos programación dinámica de múltiples pasadas (). En el documento, describimos los conceptos subyacentes de nuestra implementación (DynASP2.5) y argumentamos por qué las técnicas siguen produciendo algoritmos correctos.
Descripción
Los algoritmos eficientes de parámetros exactos son un área de investigación activa. Tales algoritmos muestran un amplio interés en la comunidad teórica. En los últimos años, se han establecido implementaciones para calcular varios parámetros (detección de parámetros) en desafíos parametrizados, como anchura de árbol, profundidad de árbol, anchura de hiperárbol, conjunto de vértices de retroalimentación o cubierta de vértices. En teoría, las instancias para las cuales el parámetro considerado es pequeño pueden resolverse rápidamente (evaluación del problema), es decir, el tiempo de ejecución está limitado exponencialmente en el parámetro. Aunque existen tales garantías teóricas favorables, a menudo no está claro si se pueden implementar con éxito estos algoritmos bajo consideraciones prácticas. En otras palabras, ¿podemos diseñar y construir implementaciones de algoritmos parametrizados de modo que funcionen de manera similar o incluso mejor que los solucionadores de problemas bien establecidos en instancias donde el parámetro es pequeño? De hecho, podemos construir una implementación que funcione bien bajo las suposiciones teóricas. Sin embargo, también podría ser que un solucionador existente aproveche implícitamente una estructura, lo cual a menudo se afirma para los solucionadores que se basan en la resolución. En este documento, consideramos encontrar una solución a instancias de programación de conjuntos de respuestas (), que es un marco lógico declarativo para modelar y resolver. Las soluciones para las instancias de ASP se llaman conjuntos de respuestas. Curiosamente, el problema de decidir si una instancia tiene un conjunto de respuestas ya se encuentra en el segundo nivel de la jerarquía polinomial. Un solucionador que emplea la anchura de árbol como parámetro y ejecuta programación dinámica en descomposiciones de árboles es DynASP2. Los experimentos empíricos muestran que este solucionador es rápido en instancias de pequeña anchura de árbol y puede superar a los modernos cuando se cuentan los conjuntos de respuestas. Queda abierto si se puede mejorar el solucionador para que también encuentre un conjunto de respuestas rápidamente y muestre un comportamiento competitivo con los solucionadores modernos de ASP en instancias de baja anchura de árbol. Desafortunadamente, los modelos teóricos de los solucionadores modernos de ASP ya indican que estos solucionadores pueden resolver instancias de baja anchura de árbol rápidamente, ya que se basan en algoritmos de resolución. En este documento, mejoramos DynASP2 y construimos el solucionador DynASP2.5, que utiliza un enfoque diferente. El nuevo solucionador muestra un comportamiento competitivo con los solucionadores de vanguardia incluso para encontrar solo una solución. Presentamos experimentos empíricos donde se puede ver que nuestra nueva implementación resuelve instancias de ASP, que codifican el problema del árbol de Steiner en gráficos con baja anchura de árbol, rápidamente. Nuestra implementación se basa en un enfoque novedoso que llamamos programación dinámica de múltiples pasadas (). En el documento, describimos los conceptos subyacentes de nuestra implementación (DynASP2.5) y argumentamos por qué las técnicas siguen produciendo algoritmos correctos.