Articulo de referencia

Método de descomposición (satisfacción de restricciones)

En la satisfacción de restricciones , un método de descomposición transforma un problema de satisfacción de restricciones en otro problema de satisfacción de restricciones binar...

En la satisfacción de restricciones , un método de descomposición transforma un problema de satisfacción de restricciones en otro problema de satisfacción de restricciones binario y acíclico . Los métodos de descomposición funcionan agrupando variables en conjuntos y resolviendo un subproblema para cada conjunto. Estas transformaciones se realizan porque resolver problemas binarios acíclicos es un problema manejable .

Cada restricción estructural define una medida de complejidad para resolver el problema tras la conversión; esta medida se denomina anchura . Fijar una anchura máxima permitida permite identificar una subclase de problemas de satisfacción de restricciones. La resolución de problemas de esta clase es polinómica para la mayoría de las descomposiciones; si esto se cumple para una descomposición, la clase de problemas de anchura fija constituye una subclase tratable de problemas de satisfacción de restricciones.

Descripción general

Los métodos de descomposición transforman un problema en otro más sencillo de resolver. Este nuevo problema solo contiene restricciones binarias ; sus ámbitos forman un grafo dirigido acíclico . Las variables del nuevo problema representan cada una un conjunto de variables del problema original. Estos conjuntos no son necesariamente disjuntos, pero abarcan el conjunto de variables originales. La transformación encuentra todas las soluciones parciales relativas a cada conjunto de variables. El problema resultante representa las interacciones entre estas soluciones locales.

Por definición, un método de descomposición produce un problema binario acíclico; estos problemas se pueden resolver en tiempo polinomial respecto a su tamaño. En consecuencia, el problema original se puede resolver traduciéndolo primero y luego resolviendo el problema resultante; sin embargo, este algoritmo solo es polinomial si la descomposición no aumenta el tamaño de forma superpolinomial. El ancho de un método de descomposición es una medida del tamaño del problema que produce. Originalmente, el ancho se definía como la cardinalidad máxima de los conjuntos de variables originales; un método, la descomposición en hiperárbol, utiliza una medida diferente. En cualquier caso, el ancho de una descomposición se define de manera que las descomposiciones de tamaño limitado por una constante no produzcan problemas excesivamente grandes. Las instancias con una descomposición de ancho fijo se pueden traducir mediante descomposición en instancias de tamaño limitado por un polinomio respecto al tamaño de la instancia original.

El ancho de un problema es el ancho de su descomposición de ancho mínimo. Si bien las descomposiciones de ancho fijo pueden usarse para resolver un problema de manera eficiente, un límite en el ancho de las instancias no necesariamente produce una restricción estructural manejable . De hecho, un problema de ancho fijo tiene una descomposición de ancho fijo, pero encontrarla puede no ser polinomial. Para que un problema de ancho fijo se resuelva eficientemente mediante descomposición, una de sus descomposiciones de ancho reducido debe encontrarse de manera eficiente. Por esta razón, los métodos de descomposición y su ancho asociado se definen de tal manera que no solo la resolución del problema, dada una descomposición de ancho fijo del mismo, sea polinomial, sino que también encontrar una descomposición de ancho fijo de un problema de ancho fijo sea polinomial.

Métodos de descomposición

Los métodos de descomposición crean un problema fácilmente resoluble a partir de uno arbitrario. Cada variable de este nuevo problema se asocia a un conjunto de variables originales; su dominio contiene tuplas de valores para las variables del conjunto asociado; en particular, estas son las tuplas que satisfacen un conjunto de restricciones sobre dichas variables. Las restricciones del nuevo problema limitan los valores de dos nuevas variables a dos tuplas que coinciden en las variables originales compartidas. Tres condiciones adicionales garantizan que el nuevo problema sea equivalente al anterior y pueda resolverse de manera eficiente.

Para que el nuevo problema pueda resolverse de manera eficiente, el grafo primal del mismo debe ser acíclico. En otras palabras, considerando las variables como vértices y las restricciones (binarias) como aristas, el grafo resultante debe ser un árbol o un bosque .

Para que el nuevo problema sea equivalente al anterior, cada restricción original se aplica como parte de la definición del dominio de al menos una variable nueva. Esto requiere que, para cada restricción del problema anterior, exista una variable del nuevo problema tal que su conjunto asociado de variables originales incluya el alcance de la restricción, y que todas las tuplas de su dominio satisfagan dicha restricción.

Otra condición necesaria para garantizar la equivalencia es que las restricciones binarias sean suficientes para que todas las copias de cada variable original asuman el mismo valor. Dado que la misma variable original puede estar asociada a varias de las nuevas variables, los valores de estas nuevas variables deben coincidir con el valor de la variable original. Las restricciones binarias se utilizan para garantizar la igualdad de las variables originales compartidas entre las dos nuevas variables. Dos copias de una nueva variable se consideran iguales si existe una ruta de restricciones binarias entre ellas y todas las nuevas variables en dicha ruta contienen la variable original.

Un método de descomposición se define generalmente proporcionando un árbol cuyos nodos son las variables del nuevo problema; para cada nodo, también se proporciona el conjunto asociado de variables originales y posiblemente un conjunto de restricciones originales utilizadas para construir el dominio de la variable en el nuevo problema. De las tres condiciones anteriores (estructura de árbol, aplicación de restricciones y equivalencia de copias de variables originales), la primera se aplica automáticamente por esta definición. La condición de aplicación de restricciones se formula generalmente como: el alcance de cada restricción es un subconjunto de las variables de algún nodo; sin embargo, se puede utilizar una condición diferente cuando los nodos también están asociados a conjuntos de restricciones. La equivalencia de todas las copias de las variables originales se formula generalmente como: el subgrafo inducido por los nodos asociados a una variable original es conexo.

Métodos de descomposición para problemas binarios

Existen diversos métodos de descomposición. La mayoría genera una clase manejable al limitar el tamaño de las instancias. A continuación, se describen los métodos de descomposición para problemas de satisfacción de restricciones binarias. Dado que un problema puede convertirse en binario al transformarlo en su problema dual o mediante variables ocultas , estos métodos pueden utilizarse indirectamente para proporcionar una descomposición en árbol para problemas de satisfacción de restricciones arbitrarias.

Componentes biconectados

En teoría de grafos , un vértice separador es un nodo que, al ser eliminado, "rompe" el grafo. Formalmente, es un nodo cuya eliminación aumenta el número de sus componentes conexas. Una componente biconexa de un grafo es un conjunto máximo de sus nodos cuyo subgrafo inducido es conexo y no tiene ningún vértice separador. Se sabe, por la teoría de grafos, que las componentes biconexas y los vértices separadores de un grafo forman un árbol. Este árbol se puede construir de la siguiente manera: sus nodos son las componentes biconexas y los vértices separadores del grafo; las aristas solo conectan una componente biconexa con un vértice separador, y en particular, esto ocurre si el vértice está contenido en la componente. Se puede demostrar que este grafo es, de hecho, un árbol.

Si las restricciones de un problema de satisfacción de restricciones binarias se consideran como aristas de un grafo cuyos nodos son las variables, este árbol constituye una descomposición del problema. El ancho de una descomposición es el número máximo de vértices en un componente biconexo.

Juego de cortes de ciclo

El método de descomposición cíclica divide un problema en una parte cíclica y otra acíclica. Si bien no se ajusta a la definición de los otros métodos de descomposición, que generan un árbol cuyos nodos están etiquetados con conjuntos de nodos, puede reformularse fácilmente en esos términos.

Este método de descomposición se basa en la idea de que, una vez asignadas ciertas variables, el problema resultante tras su eliminación puede ser acíclico. Formalmente, un conjunto de corte cíclico de un grafo es un conjunto de nodos que, al eliminarlos, lo convierte en acíclico. Se puede aplicar una definición similar a un problema de satisfacción de restricciones utilizando su grafo primal. La anchura de una descomposición cíclica es el número de variables en el conjunto de corte. La anchura de un problema es la anchura mínima de sus descomposiciones de conjuntos de corte cíclicos.

Al elegir el nodo b como raíz, se obtiene un árbol similar a los creados por los otros métodos de descomposición.

Esta descomposición no se ajusta al esquema de las demás descomposiciones, ya que el resultado no es un árbol, sino un conjunto de variables (las del conjunto de corte) y un árbol (formado por las variables que no pertenecen a dicho conjunto). Sin embargo, se puede obtener un árbol similar a los generados por los otros métodos de descomposición a partir del árbol resultante de eliminar el conjunto de corte. Esto se logra eligiendo una raíz, añadiendo todas las variables del conjunto de corte a todos sus nodos y las variables de cada nodo a todos sus hijos. El resultado es un árbol cuyo número máximo de variables asociadas a un nodo es igual al tamaño del conjunto de corte más dos. Además de esta suma de dos, este valor corresponde a la amplitud de la descomposición, que se define como el número de variables del conjunto de corte considerado.

Desafortunadamente, determinar el conjunto mínimo a eliminar es un problema NP-difícil .

Descomposición de árboles

La descomposición en árbol es un concepto bien conocido de la teoría de grafos. Reformulada en términos de restricciones binarias, una descomposición en árbol consiste en un árbol cuyos nodos están asociados a conjuntos de variables; el alcance de cada restricción está contenido en el conjunto de variables de algún nodo, y el subárbol de nodos asociado a cada variable está conectado. Esta es la forma más general de descomposición para restricciones binarias que sigue el esquema descrito anteriormente, ya que las condiciones impuestas al árbol son solo las necesarias para garantizar la equivalencia entre el problema original y el nuevo.

El ancho de dicha descomposición es el número máximo de variables asociadas al mismo nodo menos uno. El ancho de árbol de un problema es el ancho mínimo de sus descomposiciones de árbol.

La eliminación de cubetas puede reformularse como un algoritmo que trabaja sobre una descomposición de árbol particular. En particular, dada una ordenación de las variables, a cada variable se le asocia una cubeta que contiene todas las restricciones tales que la variable es la mayor en su ámbito. La eliminación de cubetas corresponde a la descomposición de árbol que tiene un nodo para cada cubeta. A este nodo se le asocian todas sus restricciones y corresponde al conjunto de todas las variables de estas restricciones. El padre de un nodo asociado a la cubeta deincógnitai{\displaystyle x_{i}}es el nodo asociado al cubo deincógnitaj{\displaystyle x_{j}}, dóndeincógnitaj{\displaystyle x_{j}}es el nodo más grande que está en una restricción conincógnitai{\displaystyle x_{i}}y precedeincógnitai{\displaystyle x_{i}}en el pedido.

Métodos de descomposición para problemas arbitrarios

Los siguientes métodos pueden utilizarse para traducir un problema de satisfacción de restricciones arbitrario, ya sea binario o de otro tipo. Dado que también pueden aplicarse a problemas binarios, pueden utilizarse asimismo en el resultado de convertir las restricciones en binarias, ya sea traduciéndolas al problema dual o utilizando variables ocultas .

Algunos de estos métodos asocian restricciones a los nodos del árbol y definen el ancho teniendo en cuenta el número de restricciones asociadas a cada nodo. Esto puede reducir el ancho de algunos problemas. Por ejemplo, una descomposición en la que se asocian diez variables a cada nodo tiene un ancho de diez; sin embargo, si cada uno de estos conjuntos de diez variables constituye el ámbito de una restricción, cada nodo puede asociarse a dicha restricción, lo que resulta en un ancho de uno.

Componentes biconectados

La descomposición biconectada de un problema de satisfacción de restricciones arbitrarias es la descomposición biconectada de su grafo primal. Cada restricción puede aplicarse a un nodo del árbol porque cada restricción crea una camarilla en sus variables sobre el grafo primal, y una camarilla es un componente biconectado o un subconjunto de un componente biconectado.

Descomposición de árboles

La descomposición en árbol de un problema de satisfacción de restricciones arbitrarias es la descomposición en árbol de su grafo primal. Cada restricción puede aplicarse a un nodo del árbol porque cada restricción crea una camarilla en sus variables sobre el grafo primal y, para cada descomposición en árbol, las variables de una camarilla están completamente contenidas en las variables de algún nodo.

Ciclo hipercutset

Este es el mismo método de corte cíclico que utiliza la definición de corte para hipergrafos: un hipercorte cíclico de un hipergrafo es un conjunto de aristas (en lugar de vértices) que hace que el hipergrafo sea acíclico cuando se eliminan todos sus vértices. Se puede obtener una descomposición agrupando todas las variables de un hipercorte en una sola. Esto da como resultado un árbol cuyos nodos son conjuntos de hiperaristas. El ancho de dicha descomposición es el tamaño máximo de los conjuntos asociados a los nodos, que es uno si el problema original es acíclico y el tamaño de su hipercorte mínimo en caso contrario. El ancho de un problema es el ancho mínimo de sus descomposiciones.

Descomposición de bisagras

Una bisagra es un subconjunto de nodos de un hipergrafo que posee ciertas propiedades definidas a continuación. Una descomposición de bisagra se basa en los conjuntos de variables que son bisagras mínimas del hipergrafo cuyos nodos son las variables del problema de satisfacción de restricciones y cuyas hiperaristas son los ámbitos de dichas restricciones.

La definición de bisagra es la siguiente. SeaH{\displaystyle H}ser un conjunto de hiperaristas. Un camino con respecto aH{\displaystyle H}es una secuencia de aristas tal que la intersección de cada una con la siguiente no es vacía y no está contenida en los nodos deH{\displaystyle H}. Un conjunto de aristas está conectado con respecto aH{\displaystyle H}si, para cada par de sus aristas, existe un camino con respecto aH{\displaystyle H}de los cuales los dos nodos son la primera y la última arista. Un componente conectado con respecto aH{\displaystyle H}es un conjunto máximo de aristas conectadas con respecto aH{\displaystyle H}.

Las bisagras se definen para hipergrafos reducidos, que son hipergrafos donde ninguna hiperarista está contenida en otro. Un conjunto de al menos dos aristasH{\displaystyle H}es una bisagra si, para cada componente conectadoF{\displaystyle F}con respecto aH{\displaystyle H}, todos los nodos enF{\displaystyle F}que también están enH{\displaystyle H}están todos contenidos en un único borde deH{\displaystyle H}.

Una descomposición de bisagra se basa en la correspondencia entre problemas de satisfacción de restricciones e hipergrafos. El hipergrafo asociado a un problema tiene como nodos las variables del problema y como hiperaristas los ámbitos de las restricciones. Una descomposición de bisagra de un problema de satisfacción de restricciones es un árbol cuyos nodos son bisagras mínimas del hipergrafo asociado al problema y que cumplen ciertas condiciones. Debido a la correspondencia entre problemas e hipergrafos, una bisagra es un conjunto de ámbitos de restricciones y, por lo tanto, puede considerarse como un conjunto de restricciones. La definición de una descomposición de bisagra requiere tres condiciones adicionales, de las cuales las dos primeras garantizan la equivalencia del problema original con el nuevo. Estas dos condiciones son: el ámbito de cada restricción está contenido en al menos un nodo del árbol, y el subárbol inducido por una variable del problema original está conectado. La condición adicional es que, si dos nodos se unen, comparten exactamente una restricción, y el ámbito de esta restricción contiene todas las variables compartidas por ambos nodos.

El número máximo de restricciones de un nodo es el mismo para todas las descomposiciones de bisagra del mismo problema. Este número se denomina grado de ciclicidad del problema o ancho de bisagra.

Agrupación de árboles

La agrupación en árbol o agrupación en árbol de unión se basa en la fusión de restricciones de tal manera que el problema resultante tenga un árbol de unión , este árbol de unión es el resultado de la descomposición.

Un árbol de unión en un problema de satisfacción de restricciones es un árbol en el que cada nodo está asociado a una restricción (y viceversa), y de tal manera que el subárbol de nodos cuya restricción contiene una variable está conectado. Por lo tanto, la creación de un árbol de unión puede considerarse una forma particular de descomposición, donde cada nodo del árbol está asociado al alcance de una restricción.

No todos los problemas de satisfacción de restricciones poseen un árbol de unión. Sin embargo, es posible modificarlos para obtenerlo mediante la fusión de restricciones. La agrupación de árboles se basa en el hecho de que un problema posee un árbol de unión si y solo si su grafo primal es cordal y conforme al problema, lo que significa que las variables de cada clique maximal del grafo primal son el alcance de una restricción y viceversa. La agrupación de árboles modifica un problema arbitrario de tal manera que se cumplan estas dos condiciones. La cordalidad se impone mediante la adición de nuevas restricciones binarias. La conformidad se obtiene mediante la fusión de restricciones.

En particular, la cordalidad se impone añadiendo restricciones binarias "ficticias" al problema. Estas restricciones binarias se satisfacen con cualquier par de valores y se utilizan únicamente para añadir aristas al grafo primal del problema. En concreto, la cordalidad se obtiene añadiendo aristas que generan el grafo inducido del grafo primal según un orden arbitrario. Este procedimiento es correcto porque el grafo inducido siempre es cordal y se obtiene añadiendo aristas al grafo original.

La conformidad requiere que las cliques maximales del grafo primal coincidan exactamente con el alcance de las restricciones. Si bien el alcance de cada restricción original es una clique en el grafo primal, esta clique no es necesariamente maximal. Además, incluso si inicialmente lo era, imponer la cordalidad puede crear una clique mayor. La conformidad se impone mediante la fusión de restricciones. En particular, para cada clique maximal del grafo resultante de imponer la cordalidad, se crea una nueva restricción con la clique como alcance. Los valores que satisfacen esta nueva restricción son aquellos que satisfacen todas las restricciones originales cuyo alcance está contenido en la clique. Mediante esta transformación, cada restricción original queda "incluida" en al menos una nueva restricción. De hecho, el alcance de cada restricción original es una clique del grafo primal. Esta clique permanece como tal incluso después de imponer la cordalidad, ya que este proceso solo introduce nuevas aristas. Como resultado, esta clique es maximal o está contenida en una clique maximal.

Esta traducción requiere la identificación de las camarillas máximas de un grafo cordal. Sin embargo, esto se puede lograr fácilmente utilizando el mismo ordenamiento empleado para garantizar la cordalidad. Dado que los padres de cada nodo están todos conectados entre sí, las camarillas máximas se componen de un nodo (el nodo máximo de la camarilla en un ordenamiento de cardinalidad máxima) y todos sus padres. En consecuencia, estas camarillas máximas se pueden detectar considerando cada nodo junto con sus padres.

El problema resultante de este proceso tiene un árbol de unión, y dicho árbol de unión se puede obtener utilizando nuevamente el mismo ordenamiento de variables. Procediendo desde el último nodo hasta el primero, cada restricción se conecta con la restricción precedente que comparte más variables con ella. La agrupación en árbol de unión puede considerarse un método de descomposición en el que:

  • Los elementos de la portada son las camarillas del gráfico resultantes de imponer la cordalidad;
  • El árbol es el árbol de unión;
  • Cada restricción se asigna a todos los nodos del árbol cuyos conjuntos de variables contienen el alcance de la restricción.

El ancho de una descomposición en agrupamiento de árboles es el número máximo de variables asociadas a cada nodo del árbol. El ancho de un problema es el ancho mínimo de sus descomposiciones en agrupamiento de árboles.

descomposición de bisagra/agrupación

El resultado de la descomposición de bisagras se puede simplificar aún más descomponiendo cada bisagra mediante agrupamiento de árboles. En otras palabras, una vez identificadas las bisagras, se genera un agrupamiento de árboles para cada una de ellas. En términos del árbol resultante, cada nodo se reemplaza por un árbol.

Descomposición de consultas

La descomposición de consultas asocia un conjunto de variables y un conjunto de restricciones a cada nodo de un árbol; cada restricción se asocia a un nodo, y el subárbol resultante de los nodos asociados a una variable o restricción dada se conecta. Más precisamente, para cada variable, se conecta el subárbol de nodos asociados a dicha variable o a una restricción que la incluya en su ámbito. El ancho de una descomposición es el número máximo combinado de variables y restricciones asociadas a un nodo.

Asociar restricciones a los nodos posiblemente reduce la amplitud de las descomposiciones y de las instancias. Por otro lado, esta definición de amplitud permite resolver problemas de amplitud fija en tiempo polinomial si se conoce la descomposición. En este caso, el dominio de una nueva variable se obtiene resolviendo un subproblema que puede ser polinomialmente grande, pero que tiene un número fijo de restricciones. Como resultado, se garantiza que este dominio sea de tamaño polinomial; las restricciones del nuevo problema, al ser igualdades de dos dominios, también son de tamaño polinomial.

Una descomposición de consulta pura es aquella en la que los nodos solo están asociados a restricciones. A partir de una descomposición de consulta de un ancho determinado, se puede construir en espacio logarítmico una descomposición de consulta pura del mismo ancho. Esto se logra reemplazando las variables de un nodo que no están presentes en sus restricciones por restricciones que sí las contienen.

Una desventaja de este método de descomposición es que comprobar si una instancia tiene un ancho fijo es, en general, NP-completo ; se ha demostrado que esto ocurre con un ancho de 4.

Descomposición en hiperárbol

Una descomposición en hiperárbol asocia un conjunto de variables y un conjunto de restricciones a cada nodo de un árbol. Extiende la descomposición en consultas al permitir que las restricciones de un nodo contengan variables que no se utilizan al crear el dominio de la nueva variable asociada con el nodo. Además de las condiciones comunes para un método de descomposición (el alcance de cada restricción está en al menos un conjunto de variables asociadas con un nodo y el subárbol inducido por una variable original está conectado), se requieren las dos condiciones siguientes:

  1. Cada variable original en un nodo está dentro del alcance de al menos una restricción asociada con el nodo;
  2. Las variables de las restricciones de un nodo que no son variables del nodo no aparecen en el subárbol con raíz en el nodo.

El ancho de una descomposición en árbol es el número máximo de restricciones asociadas a cada nodo. Si este ancho está limitado por una constante, se puede construir un problema equivalente al original en tiempo polinomial. Las variables que no están asociadas a un nodo, pero que se encuentran dentro del ámbito de las restricciones del nodo, se "proyectan" al construir esta instancia. Esto se puede hacer proyectando primero las restricciones sobre las variables del nodo y luego encontrando todas las soluciones para este subproblema, o bien resolviendo primero el subproblema con todas las restricciones y luego eliminando las variables sobrantes.

Una descomposición en hiperárbol del mismo problema que la descomposición de consulta anterior. R(b,d,e,-) significa que la última variable de R no es una variable asociada a la raíz. Al agrupar dos variables en una restricción en la raíz, el ancho disminuye de tres a dos.

Los dos requisitos anteriores no son necesarios para garantizar la equivalencia entre el problema original y el nuevo. Son necesarios para garantizar que los problemas de ancho limitado puedan resolverse en tiempo polinomial.

La posibilidad de asociar una restricción con un nodo mientras algunas de sus variables no están efectivamente asociadas con el nodo puede producir un ancho menor que el ancho de la consulta. Por ejemplo, si un nodo está asociado a{do(a,b),do,d,mi}{\displaystyle \{C(a,b),c,d,e\}}en una descomposición de consulta y una restricciónD(do,d,mi,F){\displaystyle D(c,d,e,f)}Si existe, una descomposición en hiperárbol puede asociar el mismo nodo con restricciones.{do,D}{\displaystyle \{C,D\}}y variables{a,b,do,d,mi}{\displaystyle \{a,b,c,d,e\}}Dado que al verificar el ancho solo se calculan las restricciones, este nodo tiene un ancho de dos. El mismo nodo tiene un ancho de cuatro al usar la descomposición de consultas (una restricción y tres variables). Esta reducción de ancho es posible si dos o más variables se pueden reemplazar con una sola restricción, incluso si esta restricción contiene una variable que no está asociada con el nodo.

Descomposición generalizada de hiperárbol

Las descomposiciones generalizadas de hiperárboles se definen como las descomposiciones de hiperárboles, pero se omite el último requisito: la condición de que "las variables de las restricciones de un nodo que no son variables del nodo no aparecen en el subárbol con raíz en dicho nodo". Un problema puede resolverse claramente en tiempo polinomial si se conoce su descomposición de ancho fijo. Sin embargo, no se sabe si la restricción a un ancho fijo es tratable, ya que la complejidad de encontrar una descomposición de ancho fijo, incluso si se sabe que existe, es desconocida ( a fecha de 2001)..

Comparación

El ancho de instancias es una medida de la eficiencia de los métodos de descomposición. De hecho, dado que los problemas pueden resolverse mediante descomposiciones de ancho fijo, cuanto menor sea el ancho de una descomposición, mayor será el número de instancias que se pueden resolver eficientemente utilizando dicha descomposición.

Algunas descomposiciones usan el número de variables de un nodo (o una cantidad similar) como ancho. Otras no: el hipercorte cíclico, la descomposición de bisagra, la descomposición de consulta, la descomposición de hiperárbol y la descomposición generalizada de hiperárbol asocian restricciones (o sus ámbitos en forma de hiperaristas) con los nodos e incluyen el número de restricciones asociadas a un nodo en el ancho. Esto puede suponer un ahorro significativo en términos de ancho. De hecho, los problemas con una sola restricción ennorte{\displaystyle n}Las variables solo pueden descomponerse en un árbol con un único nodo. Este nodo puede asociarse con elnorte{\displaystyle n}variables o con la única restricción. Contar el número de variables conduce a anchonorte{\displaystyle n}, mientras que contar el número de restricciones conduce al ancho1{\displaystyle 1}.

La comparación entre todos los demás métodos de descomposición se basa en la generalización y la superposición. La generalización significa que cada problema que tiene anchonorte{\displaystyle n}Según un método, tiene un ancho limitado pornorte+k{\displaystyle n+k}por un fijok{\displaystyle k}El término "beating" significa que existen clases de problemas que tienen un ancho fijo según un método de descomposición, pero no según otro. A continuación se muestran los resultados para problemas arbitrarios, donde no se considera la descomposición de consultas:

  • La descomposición en hiperárboles generaliza y supera a todos los demás métodos.
  • La descomposición de bisagra mejorada con agrupamiento de árboles generaliza y supera tanto la descomposición de bisagra como el agrupamiento de árboles.
  • La agrupación de árboles es equivalente a la descomposición de árboles (en el grafo primal).
  • Tanto la descomposición de bisagras como la agrupación de árboles generalizan y superan a los componentes biconectados.
  • El conjunto de corte de ciclos (en el grafo primal) se generaliza y es superado tanto por el hiperconjunto de corte de ciclos como por la agrupación de árboles.

También se puede demostrar que el ancho del agrupamiento de árboles es igual al ancho inducido del problema más uno. El algoritmo de consistencia adaptativa , que es polinomial para problemas de ancho inducido fijo, transforma problemas en equivalentes de la misma manera que el primer paso del agrupamiento de árboles.

Resolver a partir de una descomposición

Dado el árbol de descomposición, la solución se puede realizar construyendo el problema binario tipo árbol descrito anteriormente y resolviéndolo. Este es un problema de tiempo polinomial, ya que se puede resolver en tiempo polinomial utilizando, por ejemplo, un algoritmo para garantizar la consistencia de arcos direccionales .

A continuación se describe un algoritmo especializado para problemas binarios acíclicos derivados de una descomposición. Este algoritmo crea restricciones que se propagan a lo largo de las aristas del árbol, desde las hojas hasta la raíz y viceversa. La restricción propagada a lo largo de una arista "resume" los efectos de todas las restricciones de la parte del grafo comprendida entre ambos lados de la arista.

La restricción que se pasa del nodo i al nodo j resume los efectos de los nodos del "lado" de i sobre las variables de j.

En un árbol, cada arista divide el grafo en dos partes. La restricción que se pasa a lo largo de una arista indica cómo la parte del extremo de origen de la arista afecta a las variables del nodo de destino. En otras palabras, una restricción que se pasa del nodoi{\displaystyle i}al nodoj{\displaystyle j}cuenta cómo los nodos "en el lado dei{\displaystyle i}"restringir las variables del nodoj{\displaystyle j}.

Si las variables de estos dos nodos sonincógnitai{\displaystyle X_{i}}yincógnitaj{\displaystyle X_{j}}, los nodos del lado dei{\displaystyle i}no afectan a todas las variablesincógnitaj{\displaystyle X_{j}}pero solo las variables compartidasincógnitaiincógnitaj{\displaystyle X_{i}\cap X_{j}}. Como resultado, la influencia enincógnitaj{\displaystyle X_{j}}de los nodos del lado dei{\displaystyle i}puede representarse como una restricción sobre las variables incógnitaiincógnitaj{\displaystyle X_{i}\cap X_{j}}Dicha restricción puede considerarse como un "resumen" de cómo un conjunto de nodos afecta a otro nodo.

El algoritmo procede desde las hojas del árbol. En cada nodo, se recopilan los resúmenes de sus hijos (si los hay). Estos resúmenes, junto con la restricción del nodo, se utilizan para generar el resumen del nodo para su padre. Al llegar a la raíz, el proceso se invierte: se genera el resumen de cada nodo para cada hijo y se le envía. Cuando se alcanzan todas las hojas, el algoritmo finaliza.

El conjunto de variables compartidas entre dos nodos se denomina separador . Dado que el separador es la intersección entre dos conjuntos asociados a los nodos, su tamaño no puede ser mayor que el ancho inducido del grafo.

Si bien el ancho del grafo afecta el tiempo requerido para resolver los subproblemas en cada nodo, el tamaño del separador afecta el tamaño de las restricciones que se pasan entre nodos. De hecho, estas restricciones tienen los separadores como ámbito. Como resultado, una restricción sobre un separador de tamañonorte{\displaystyle n}puede requerir tamañodnorte{\displaystyle d^{n}}para ser almacenado, si todas las variables tienen un dominio de tamañod{\displaystyle d}.

Compromiso memoria/tiempo

El algoritmo para resolver un problema a partir de un árbol de descomposición incluye dos operaciones: resolver un subproblema relativo a un nodo y crear la restricción relativa a las variables compartidas (el separador) entre dos nodos. Se pueden utilizar diferentes estrategias para estas dos operaciones. En particular, la creación de restricciones en los separadores se puede realizar mediante la eliminación de variables , que es una forma de inferencia, mientras que los subproblemas se pueden resolver mediante búsqueda (retroceso, etc.).

Un problema de este algoritmo es que las restricciones que se transmiten entre nodos pueden tener un tamaño exponencial con respecto al tamaño del separador. La memoria necesaria para almacenar estas restricciones se puede reducir utilizando una descomposición en árbol con separadores pequeños. Sin embargo, estos árboles de descomposición pueden tener un ancho (número de nodos en cada nodo) mayor que el óptimo.

Para un árbol de descomposición dado, se puede imponer un tamaño máximo de separador fijo uniendo todos los pares de nodos cuyo separador sea mayor que dicho tamaño. La fusión de dos nodos generalmente produce un nodo con un conjunto de variables asociadas mayor que el de los dos nodos originales. Esto puede aumentar el ancho del árbol. Sin embargo, esta fusión no modifica los separadores del árbol, salvo por la eliminación del separador entre los dos nodos fusionados.

Esto último es consecuencia de la aciclicidad: dos nodos unidos no pueden unirse al mismo otro nodo. Sinorte1{\displaystyle n_{1}}ynorte2{\displaystyle n_{2}}son dos nodos que se fusionarán ynorte1{\displaystyle N_{1}}ynorte2{\displaystyle N_{2}}son los conjuntos de nodos unidos a ellos, entoncesnorte1norte2={\displaystyle N_{1}\cap N_{2}=\emptyset }, ya que de lo contrario habría un ciclo en el árbol. Como resultado, el nodo obtenido al fusionarnorte1{\displaystyle n_{1}}ynorte2{\displaystyle n_{2}}se unirá a cada uno de los nodos denorte1norte2{\displaystyle N_{1}\cup N_{2}}Como resultado, los separadores de este nodo fusionado son exactamente los separadores de los dos nodos originales.

Como resultado, la fusión de un par de nodos unidos por un separador no modifica los demás separadores. Por lo tanto, se puede imponer un tamaño máximo fijo para los separadores calculando primero todos los tamaños y luego fusionando iterativamente cualquier par de nodos cuyo separador sea mayor que un valor determinado, sin necesidad de recalcular el tamaño de los separadores durante la ejecución.

Restricciones estructurales

Limitar el ancho de un método de descomposición mediante una constante crea una restricción estructural ; es decir, limita los posibles alcances de las restricciones, pero no sus relaciones. La forma complementaria de obtener subclases manejables de satisfacción de restricciones consiste en imponer restricciones sobre las relaciones de las restricciones; estas se denominan restricciones relacionales , y el conjunto de relaciones permitidas se denomina lenguaje de restricciones .

Si la resolución de problemas con un ancho de descomposición acotado por una constante pertenece a P , la descomposición conduce a una restricción estructural tratable. Como se explicó anteriormente, la tratabilidad requiere que se cumplan dos condiciones. Primero, si el problema tiene un ancho acotado por una constante, entonces se puede encontrar una descomposición de ancho acotado en tiempo polinomial. Segundo, el problema obtenido al convertir el problema original según la descomposición no es superpolinomialmente mayor que el problema original, si la descomposición tiene un ancho fijo.

Si bien la mayoría de las restricciones estructurales manejables se derivan de fijar el ancho de un método de descomposición, se han desarrollado otras. Algunas pueden reformularse en términos de métodos de descomposición: por ejemplo, la restricción al problema binario acíclico puede reformularse como la del problema de ancho de árbol 1; la restricción del ancho inducido (que no se define en términos de una descomposición) puede reformularse como agrupamiento de árboles.

Una restricción estructural temprana (que luego evolucionó hacia una basada en el ancho inducido) se basa en el ancho del grafo primal del problema. Dada una ordenación de los nodos del grafo, el ancho de un nodo es el número de nodos que lo unen y lo preceden en el orden. Sin embargo, restringir solo el ancho no conduce a una restricción tratable: incluso restringiendo este ancho a 4, establecer la satisfacibilidad sigue siendo NP-completo . La tratabilidad se obtiene restringiendo las relaciones; en particular, si un problema tiene anchok{\displaystyle k}y es fuertementek{\displaystyle k}-consistente, se puede resolver de manera eficiente. Esta es una restricción que no es ni estructural ni relacional, ya que depende tanto de los alcances como de las relaciones de las restricciones.

Véase también

Recursos en línea

Aquí encontrará algunos enlaces a recursos en línea sobre la descomposición de árboles/hiperárboles en general.

  1. Treewidthlib : Un conjunto de datos comparativos para algoritmos de Treewidth y problemas de grafos relacionados.
  2. Implementación en C++ utilizada en el artículo "A complete Anytime Algorithm for Treewidth", Vibhav Gogate y Rina Dechter, UAI 2004. El enlace lleva a la página web del autor, donde se distribuyen tanto el código fuente para Linux como el ejecutable para Windows.
  3. Una implementación de la descomposición en hiperárboles , utilizando varias heurísticas.
  4. La herramienta de la barra de herramientas implementa algunas heurísticas de descomposición de árboles.
  5. Biblioteca TreeD: contiene el código fuente de algunos métodos de descomposición.

Referencias

  • Dechter, Rina (2003). Procesamiento de restricciones . Morgan Kaufmann.ISBN 1-55860-890-7
  • Downey, Rod ; Fellows, Michael (1997). Complejidad parametrizada . Springer.ISBN 0-387-94883-X
  • Gottlob, Georg ; Leone, Nicola ; Scarcello, Francesco (2001). "Descomposiciones de hiperárboles: una revisión" . MFCS 2001. págs. 37–57 . 
  • Gottlob, Georg; Leone, Nicola; Scarcello, Francesco (2000). "Una comparación de métodos de descomposición estructural de CSP" . Inteligencia Artificial . 124 (2): 243– 282. doi : 10.1016/S0004-3702(00)00078-3 .