Articulo de referencia

Consistencia local

En la satisfacción de restricciones , las condiciones de consistencia local son propiedades de los problemas de satisfacción de restricciones relacionadas con la consistencia de...

En la satisfacción de restricciones , las condiciones de consistencia local son propiedades de los problemas de satisfacción de restricciones relacionadas con la consistencia de subconjuntos de variables o restricciones. Se pueden usar para reducir el espacio de búsqueda y facilitar la resolución del problema. Se utilizan diversos tipos de condiciones de consistencia local, como la consistencia de nodos , la consistencia de arcos y la consistencia de caminos .

Toda condición de consistencia local puede imponerse mediante una transformación que modifica el problema sin alterar sus soluciones; dicha transformación se denomina propagación de restricciones . La propagación de restricciones funciona reduciendo los dominios de las variables, reforzando las restricciones o creando nuevas. Esto conlleva una reducción del espacio de búsqueda, lo que facilita la resolución del problema mediante algunos algoritmos. La propagación de restricciones también puede utilizarse como un verificador de insatisfacibilidad, generalmente incompleto, pero completo en algunos casos particulares.

Las condiciones de consistencia local se pueden agrupar en varias clases. Las condiciones originales de consistencia local requieren que toda asignación parcial consistente (de un tipo particular) se pueda extender de forma consistente a otra variable. La consistencia direccional solo requiere que esta condición se cumpla cuando la otra variable es mayor que las de la asignación, según un orden dado. La consistencia relacional incluye extensiones a más de una variable, pero esta extensión solo se requiere para satisfacer una restricción o un conjunto de restricciones dadas.

Supuestos

En este artículo, un problema de satisfacción de restricciones se define como un conjunto de variables, un conjunto de dominios y un conjunto de restricciones. Las variables y los dominios están asociados: el dominio de una variable contiene todos los valores que esta puede tomar. Una restricción se compone de una secuencia de variables, denominada su ámbito, y un conjunto de sus evaluaciones, que son las evaluaciones que satisfacen la restricción.

Se asume que los problemas de satisfacción de restricciones a los que se hace referencia en este artículo tienen una forma especial. Un problema está en forma normalizada , o en forma regular , si cada secuencia de variables es el ámbito de una sola restricción, como máximo. La suposición de regularidad aplicada únicamente a restricciones binarias da lugar a la forma estandarizada . Estas condiciones siempre se pueden garantizar combinando todas las restricciones sobre una secuencia de variables en una sola, o añadiendo una restricción que sea satisfecha por todos los valores de dicha secuencia.

En las figuras utilizadas en este artículo, la falta de vínculos entre dos variables indica que no existe ninguna restricción o que existe una restricción que satisfacen todos los valores entre estas dos variables.

Consistencia local

Las condiciones de consistencia local "estándar" exigen que todas las evaluaciones parciales consistentes puedan extenderse a otra variable de forma que la asignación resultante sea consistente. Una evaluación parcial es consistente si satisface todas las restricciones cuyo ámbito sea un subconjunto de las variables asignadas.

consistencia de nodos

La consistencia de nodos requiere que toda restricción unaria sobre una variable sea satisfecha por todos los valores de su dominio, y viceversa. Esta condición se puede garantizar fácilmente reduciendo el dominio de cada variable a los valores que satisfacen todas sus restricciones unarias. Como resultado, las restricciones unarias pueden ignorarse y asumirse incorporadas a los dominios.

Por ejemplo, dada una variableV{\displaystyle V}con un dominio de{1,2,3,4}{\displaystyle \left\{1,2,3,4\right\}}y una restricciónV3{\displaystyle V\leq 3}, la consistencia de los nodos restringiría el dominio a{1,2,3}{\displaystyle \left\{1,2,3\right\}}y la restricción podría entonces descartarse. Este paso de preprocesamiento simplifica las etapas posteriores.

Consistencia de arco

incógnita2{\displaystyle x_{2}}¿El arco es consistente con?incógnita3{\displaystyle x_{3}}pero no conincógnita1{\displaystyle x_{1}}, como el valorincógnita2=1{\displaystyle x_{2}=1}no es compatible con ningún valor paraincógnita1{\displaystyle x_{1}}.

Una variable de un problema de satisfacción de restricciones es consistente con otra si cada uno de sus valores admisibles es consistente con algún valor admisible de la segunda variable. Formalmente, una variableincógnitai{\displaystyle x_{i}}¿Es el arco consistente con otra variable?incógnitaj{\displaystyle x_{j}}si, para cada valora{\displaystyle a}en el dominio de incógnitai{\displaystyle x_{i}}existe un valorb{\displaystyle b}en el dominio deincógnitaj{\displaystyle x_{j}}de tal manera que(a,b){\displaystyle (a,b)}satisface la restricción binaria entreincógnitai{\displaystyle x_{i}}yincógnitaj{\displaystyle x_{j}}Un problema es consistente en cuanto a su arco si cada variable es consistente en cuanto a su arco con todas las demás.

Por ejemplo, consideremos la restricciónincógnita<y{\displaystyle x<y}donde las variables abarcan el dominio de 1 a 3. Porqueincógnita{\displaystyle x}nunca puede ser 3, no hay arco de 3 a un valor eny{\displaystyle y}por lo que es seguro eliminar el valor 3 deincógnita{\displaystyle x}dominio de, lo que resulta en{1,2}{\displaystyle \{1,2\}}. Asimismo,y{\displaystyle y}nunca puede ser 1, por lo tanto no hay arco, por lo tanto se puede quitar 1 dey{\displaystyle y}dominio de, lo que resulta en{2,3}{\displaystyle \{2,3\}}.

La consistencia de arco también puede definirse en relación con una restricción binaria específica: una restricción binaria es consistente en un arco si cada valor de una variable tiene un valor de la segunda variable tal que satisfacen la restricción. Esta definición de consistencia de arco es similar a la anterior, pero se aplica específicamente a una restricción. Esta diferencia es especialmente relevante para problemas no normalizados, donde la definición anterior consideraría todas las restricciones entre dos variables, mientras que esta solo considera una específica.

La consistencia de arco se impone eliminando el 1 como valor para x2. Como resultado, x3 ya no es consistente con el arco x2 porque x3=2 no corresponde a un valor para x2.

Si una variable no es consistente con otra, se puede lograr la consistencia eliminando algunos valores de su dominio. Esta es la forma de propagación de restricciones que impone la consistencia: elimina del dominio de la variable todo valor que no corresponda a un valor de la otra variable. Esta transformación mantiene las soluciones del problema, ya que los valores eliminados no forman parte de ninguna solución.

La propagación de restricciones puede hacer que todo el problema sea consistente repitiendo esta eliminación para todos los pares de variables. Este proceso podría tener que considerar un par de variables dado más de una vez. De hecho, eliminar valores del dominio de una variable puede hacer que otras variables dejen de ser consistentes con ella. Por ejemplo, siincógnita3{\displaystyle x_{3}}¿El arco es consistente con?incógnita2{\displaystyle x_{2}}pero el algoritmo reduce el dominio deincógnita2{\displaystyle x_{2}}, consistencia de arco deincógnita3{\displaystyle x_{3}}conincógnita2{\displaystyle x_{2}}Ya no es válido y debe aplicarse de nuevo.

Un algoritmo simplista recorrería los pares de variables, aplicando la consistencia de arcos y repitiendo el ciclo hasta que ningún dominio cambie durante un ciclo completo. El algoritmo AC-3 mejora este algoritmo al ignorar las restricciones que no se han modificado desde su último análisis. En concreto, trabaja con un conjunto de restricciones que inicialmente contiene todas las restricciones; en cada paso, toma una restricción y aplica la consistencia de arcos; si esta operación pudiera haber producido una violación de la consistencia de arcos en otra restricción, la vuelve a incluir en el conjunto de restricciones a analizar. De esta forma, una vez que se aplica la consistencia de arcos a una restricción, esta no se vuelve a considerar a menos que cambie el dominio de una de sus variables.

Consistencia de trayectoria (k-consistencia)

x1 y x2 no son consistentes con x3. Se pueden hacer consistentes eliminando los valores azules de R12.

La consistencia de caminos es una propiedad similar a la consistencia de arcos, pero considera pares de variables en lugar de solo una. Un par de variables es consistente con un tercer par de variables si cada evaluación consistente del par se puede extender a la otra variable de tal manera que se satisfagan todas las restricciones binarias . Formalmente,incógnitai{\displaystyle x_{i}}yincógnitaj{\displaystyle x_{j}}son camino consistente conincógnitak{\displaystyle x_{k}}si, para cada par de valores(a,b){\displaystyle (a,b)}que satisface la restricción binaria entreincógnitai{\displaystyle x_{i}}yincógnitaj{\displaystyle x_{j}}, existe un valordo{\displaystyle c}en el dominio deincógnitak{\displaystyle x_{k}}de tal manera que(a,do){\displaystyle (a,c)}y(b,do){\displaystyle (b,c)}satisfacer la restricción entreincógnitai{\displaystyle x_{i}}yincógnitak{\displaystyle x_{k}}y entreincógnitaj{\displaystyle x_{j}}yincógnitak{\displaystyle x_{k}}, respectivamente.

La forma de propagación de restricciones que impone la consistencia de ruta funciona eliminando alguna asignación satisfactoria de una restricción. De hecho, la consistencia de ruta se puede imponer eliminando de una restricción binaria todas las evaluaciones que no se pueden extender a otra variable. En cuanto a la consistencia de arco, esta eliminación podría requerir considerar una restricción binaria más de una vez. En el caso de la consistencia de arco, el problema resultante tiene las mismas soluciones que el original, ya que los valores eliminados no están en ninguna solución.

Dos variables que no están sujetas a una restricción pueden considerarse relacionadas mediante una restricción virtual que permite cualquier par de valores posibles, representados por los bordes azules en esta figura.
Al imponer la coherencia de ruta de x1 y x2 con x3, se elimina la arista superior. Los valores de x1 y x2 ya no son libres, sino que están relacionados por una nueva restricción real.

La forma de propagación de restricciones que impone la consistencia de ruta puede introducir nuevas restricciones. Cuando dos variables no están relacionadas por una restricción binaria, están relacionadas virtualmente por la restricción que permite cualquier par de valores. Sin embargo, algún par de valores puede eliminarse mediante la propagación de restricciones. La restricción resultante ya no se satisface con todos los pares de valores. Por lo tanto, deja de ser una restricción virtual y trivial.

El término "consistencia de ruta" deriva de la definición original, que involucraba un par de variables y una ruta entre ellas, en lugar de un par y una sola variable. Si bien ambas definiciones difieren para un solo par de variables, son equivalentes al referirse al problema completo.

Generalizaciones

La consistencia de arcos y rutas se puede generalizar a restricciones no binarias utilizando tuplas de variables en lugar de una sola o un par. Una tupla dei1{\displaystyle i-1}las variables soni{\displaystyle i}-consistente con otra variable si cada evaluación consistente de lai1{\displaystyle i-1}Las variables pueden extenderse con un valor de la otra variable manteniendo la consistencia. Esta definición se extiende a problemas completos de la manera obvia. Fuertei{\displaystyle i}-la consistencia es j{\displaystyle j}-consistencia para todosji{\displaystyle j\leq i}.

El caso particular de consistencia 2 coincide con la consistencia de arcos (en este artículo se asume que todos los problemas son consistentes en nodos). Por otro lado, la consistencia 3 coincide con la consistencia de caminos solo si todas las restricciones son binarias, ya que la consistencia de caminos no implica restricciones ternarias, mientras que la consistencia 3 sí.

Otra forma de generalizar la consistencia de arco es la hiperconsistencia de arco o consistencia de arco generalizada , que requiere que una sola variable sea extensible para satisfacer una restricción. Es decir, una variable es hiperconsistente con una restricción si cada valor de la variable puede extenderse a las demás variables de la restricción de tal manera que esta se satisfaga.

Consistencia y satisfacción

Esta instancia es consistente en arcos y no contiene dominios vacíos, pero no tiene solución. Las líneas azules indican las asignaciones impuestas por la elección x1=1.

La propagación de restricciones (que impone una forma de consistencia local) puede generar un dominio vacío o una restricción insatisfacible . En este caso, el problema no tiene solución. Lo contrario no es cierto en general: una instancia inconsistente puede ser consistente en arcos o en caminos sin tener un dominio vacío ni una restricción insatisfacible.

De hecho, la consistencia local es solo relativa a la consistencia de grupos de variables. Por ejemplo, la consistencia de arco garantiza que toda evaluación consistente de una variable se puede extender consistentemente a otra variable. Sin embargo, cuando un solo valor de una variable se extiende a otras dos variables, no hay garantía de que estos dos valores sean consistentes entre sí. Por ejemplo,incógnita1=1{\displaystyle x_{1}=1}puede ser consistente conincógnita2=1{\displaystyle x_{2}=1}y conincógnita3=1{\displaystyle x_{3}=1}pero estas dos evaluaciones pueden no ser coherentes entre sí.

Sin embargo, la propagación de restricciones puede utilizarse para demostrar la satisfacibilidad en algunos casos. Un conjunto de restricciones binarias consistentes en arcos y sin dominio vacío solo puede ser inconsistente si la red de restricciones contiene ciclos. De hecho, si las restricciones son binarias y forman un grafo acíclico, los valores siempre pueden propagarse entre ellas: para cada valor de una variable, todas las variables en una restricción que la contiene tienen un valor que satisface dicha restricción. Como resultado, se puede encontrar una solución eligiendo iterativamente una variable sin asignar y propagándola recursivamente a través de las restricciones. Este algoritmo nunca intenta asignar un valor a una variable que ya está asignada, ya que eso implicaría la existencia de ciclos en la red de restricciones.

Una condición similar se aplica a la consistencia de caminos. Los casos especiales en los que se puede establecer la satisfacibilidad al imponer la consistencia de arcos y la consistencia de caminos son los siguientes.

  1. La aplicación de la consistencia de arcos establece la satisfacibilidad de problemas compuestos por restricciones binarias sin ciclos (un árbol de restricciones binarias);
  2. La imposición de la consistencia de la ruta establece la satisfacibilidad para restricciones binarias (posiblemente con ciclos) con dominios binarios;
  3. hacer cumplir las normas con firmezanorte{\displaystyle n}La consistencia establece la satisfacibilidad de los problemas que contienennorte{\displaystyle n}variables.

Casos especiales

Algunas definiciones o resultados sobre consistencia relativa solo son válidos en casos especiales.

Cuando los dominios están compuestos por números enteros , se puede definir la consistencia de límites. Esta forma de consistencia se basa en la consistencia de los valores extremos de los dominios, es decir, los valores mínimo y máximo que puede tomar una variable.

Cuando las restricciones son algebraicas o booleanas , la consistencia de arcos es equivalente a agregar una nueva restricción o modificar sintácticamente una antigua, y esto se puede hacer componiendo restricciones adecuadamente.

Restricciones especializadas

Algunos tipos de restricciones son de uso común. Por ejemplo, se suele utilizar la restricción de que ciertas variables sean todas diferentes. Existen algoritmos especializados y eficientes para garantizar la consistencia de arcos en dichas restricciones.

La restricción que obliga a que varias variables sean diferentes se suele escribiralldiFFmirminortet(incógnita1,,incógnitanorte){\displaystyle \mathop {\rm {alldifferent}} (x_{1},\ldots ,x_{n})}o alldifferent([X1,...,Xn]). Esta restricción es equivalente a la desigualdad de todos los pares de variables diferentes, es decir,incógnitaiincógnitaj{\displaystyle x_{i}\not =x_{j}}por cadaij{\displaystyle i\not =j}Cuando el dominio de una variable se reduce a un único valor, este valor puede eliminarse de todos los demás dominios mediante la propagación de restricciones al garantizar la consistencia de arcos. El uso de la restricción especializada permite aprovechar propiedades que no se cumplen para desigualdades binarias individuales .

Una primera propiedad es que el número total de elementos en los dominios de todas las variables debe ser al menos igual al número de variables. Más precisamente, después de que se impone la consistencia de arcos, el número de variables no asignadas no debe exceder el número de valores en la unión de sus dominios. De lo contrario, la restricción no puede cumplirse. Esta condición puede verificarse fácilmente en una restricción de la alldifferentforma, pero no corresponde a la consistencia de arcos de la red de desigualdades. Una segunda propiedad de la alldifferentrestricción única es que la consistencia de hiperarcos puede verificarse eficientemente utilizando un algoritmo de emparejamiento bipartito . En particular, se construye un grafo con variables y valores como los dos conjuntos de nodos, y se ejecuta un algoritmo de emparejamiento de grafos bipartitos especializado para verificar la existencia de dicho emparejamiento. [ 1 ]

Otro tipo de restricción comúnmente utilizada es la cumulativesiguiente. Fue introducida para problemas de programación y asignación. Por ejemplo, cumulative([S1,...,Sm], [D1,...,Dm], [R1,...,Rm], L)se puede usar para formalizar la condición en la que hay mactividades, cada una con tiempo de inicio si, duración diy que utiliza una cantidad ride un recurso. La restricción establece que la cantidad total de recursos disponibles es L. Existen técnicas especializadas de propagación de restricciones para restricciones acumulativas; se utilizan diferentes técnicas dependiendo de qué dominios de variables ya se hayan reducido a un solo valor.

Una tercera restricción especializada que se utiliza en la programación lógica con restricciones es la elementsiguiente. En la programación lógica con restricciones, se permiten listas como valores de variables. Una restricción element(I, L, X)se satisface si Les una lista y Xes el I-ésimo elemento de esta lista. Existen reglas de propagación de restricciones especializadas para estas restricciones. Por ejemplo, si Ly se reducen a un dominio de un solo valor, se puede determinar Iun valor único para . De forma más general, se pueden inferir valores imposibles de a partir del dominio de .XXI{\displaystyle I}y viceversa.

Consistencia direccional

La consistencia direccional es la variante de arco, trayectoria yi{\displaystyle i}- Consistencia diseñada para ser utilizada por un algoritmo que asigna valores a variables siguiendo un orden determinado. Son similares a sus contrapartes no direccionales, pero solo requieren que una asignación consistente a algunas variables pueda extenderse consistentemente a otra variable que sea mayor que ellas según el orden.

Arco direccional y consistencia de la trayectoria

Un ejemplo que es consistente direccionalmente según el orden x1 x2 x3, pero no consistente en cuanto a la dirección del arco (no hay ninguna restricción entre x1 y x3; se omiten las aristas correspondientes). Cada valor de una variable de índice inferior corresponde a valores de variables de índice superior. Los signos de interrogación indican puntos donde no se cumple la relación inversa.

Si un algoritmo evalúa variables en el ordenincógnita1,,incógnitanorte{\displaystyle x_{1},\ldots ,x_{n}}La consistencia solo es útil cuando garantiza que los valores de las variables de índice inferior sean todos consistentes con los valores de las variables de índice superior.

Al elegir un valor para una variable, se pueden descartar los valores que sean inconsistentes con todos los valores de una variable no asignada. De hecho, incluso si estos valores son consistentes con la evaluación parcial actual, el algoritmo no encontrará posteriormente un valor consistente para la variable no asignada. Por otro lado, no es necesario garantizar la consistencia con las variables que ya han sido evaluadas: si el algoritmo elige un valor inconsistente con la evaluación parcial actual, la inconsistencia se detectará de todos modos.

Suponiendo que el orden de evaluación de las variables esincógnita1,,incógnitanorte{\displaystyle x_{1},\ldots ,x_{n}}, un problema de satisfacción de restricciones es consistente en arcos direccionales si cada variableincógnitai{\displaystyle x_{i}}¿Es el arco consistente con cualquier otra variable?incógnitaj{\displaystyle x_{j}}de tal manera quei<j{\displaystyle i<j}La consistencia de la trayectoria direccional es similar, pero dos variablesincógnitai,incógnitaj{\displaystyle x_{i},x_{j}}tienen que ser un camino coherente conincógnitaz{\displaystyle x_{z}}solo sii,j<z{\displaystyle i,j<z}La consistencia de trayectoria direccional fuerte implica tanto consistencia de trayectoria direccional como consistencia de arco direccional. Se pueden dar definiciones similares para las otras formas de consistencia.

Propagación de restricciones para la consistencia de arcos y trayectorias

La propagación de restricciones que impone la consistencia de arco direccional itera sobre las variables desde la última hasta la primera, imponiendo en cada paso la consistencia de arco de cada variable de índice inferior con ella. Si el orden de las variables esincógnita1,,incógnitanorte{\displaystyle x_{1},\ldots ,x_{n}}, este algoritmo itera sobre variables deincógnitanorte{\displaystyle x_{n}}aincógnita1{\displaystyle x_{1}}; para variableincógnitaj{\displaystyle x_{j}}, impone consistencia de arco de cada variable de índice inferior aj{\displaystyle j}conincógnitaj{\displaystyle x_{j}}.

La consistencia de trayectoria direccional y la consistencia de trayectoria direccional fuerte pueden imponerse mediante algoritmos similares al de la consistencia de arco. Estos procesan variables desdeincógnitanorte{\displaystyle x_{n}}aincógnita1{\displaystyle x_{1}}; para cada variableincógnitaz{\displaystyle x_{z}}dos variablesincógnitai,incógnitaj{\displaystyle x_{i},x_{j}}coni,j<z{\displaystyle i,j<z}se consideran y la consistencia de trayectoria de ellos conincógnitaz{\displaystyle x_{z}}se aplica. No se requiere ninguna operación si el problema no contiene ninguna restricción enincógnitai{\displaystyle x_{i}}yincógnitaz{\displaystyle x_{z}}o ninguna restricción entreincógnitaj{\displaystyle x_{j}}yincógnitaz{\displaystyle x_{z}}Sin embargo, incluso si no hay ninguna restricción entreincógnitai{\displaystyle x_{i}}yincógnitaj{\displaystyle x_{j}}Se asume una restricción trivial. Si la propagación de restricciones reduce su conjunto de asignaciones satisfactorias, crea efectivamente una nueva restricción no trivial. La propagación de restricciones que impone una fuerte consistencia de ruta direccional es similar, pero también impone consistencia de arco.

Consistencia direccional y satisfacibilidad

La consistencia direccional garantiza que las soluciones parciales que satisfacen una restricción se pueden extender de forma consistente a otra variable de índice superior. Sin embargo, no garantiza que las extensiones a diferentes variables sean consistentes entre sí. Por ejemplo, una solución parcial puede extenderse de forma consistente a una variable.incógnitai{\displaystyle x_{i}}o a variableincógnitaj{\displaystyle x_{j}}, pero estas dos extensiones no son consistentes entre sí.

Hay dos casos en los que esto no sucede, y la consistencia direccional garantiza la satisfacibilidad si ningún dominio está vacío y ninguna restricción es insatisfacible.

El primer caso corresponde a un problema de restricciones binarias con una ordenación de las variables que da como resultado un grafo ordenado de restricciones de ancho 1. Dicha ordenación existe si y solo si el grafo de restricciones es un árbol. En tal caso, el ancho del grafo limita el número máximo de nodos inferiores (según la ordenación) a los que se une un nodo. La consistencia de arcos direccionales garantiza que toda asignación consistente a una variable se puede extender a nodos superiores, y el ancho 1 garantiza que un nodo no se une a más de un nodo inferior. Por lo tanto, una vez asignada la variable inferior, su valor se puede extender de forma consistente a todas las variables superiores con las que se une. Esta extensión no puede generar inconsistencias posteriormente. De hecho, ninguna otra variable inferior se une a esa variable superior, ya que el grafo tiene ancho 1.

Como resultado, si un problema de restricciones tiene un ancho de 1 con respecto a un ordenamiento de sus variables (lo que implica que su grafo correspondiente es un árbol) y el problema es consistente en cuanto a la dirección del arco con respecto al mismo ordenamiento, se puede encontrar una solución (si la hay) asignando iterativamente variables de acuerdo con el ordenamiento.

El segundo caso en el que la consistencia direccional garantiza la satisfacibilidad si ningún dominio está vacío y ninguna restricción es insatisfacible es el de los problemas de restricciones binarias cuyo grafo tiene un ancho inducido de 2, utilizando una consistencia de camino direccional fuerte. De hecho, esta forma de consistencia garantiza que cada asignación a una variable o a un par de variables puede extenderse a una variable de mayor orden, y el ancho 2 garantiza que esta variable no se une a otro par de variables de menor orden.

La razón por la que se considera el ancho inducido en lugar del ancho es que imponer consistencia de ruta direccional puede añadir restricciones. De hecho, si dos variables no están en la misma restricción, sino en una restricción con una variable de mayor nivel, algunos pares de sus valores pueden violar la consistencia de ruta. Eliminar dichos pares crea una nueva restricción. Como resultado, la propagación de restricciones puede producir un problema cuyo grafo tiene más aristas que el original. Sin embargo, todas estas aristas están necesariamente en el grafo inducido, ya que todas se encuentran entre dos padres del mismo nodo. Un ancho de 2 garantiza que cada evaluación parcial consistente se puede extender a una solución, pero este ancho es relativo al grafo generado. Por lo tanto, se requiere un ancho inducido de 2 para una fuerte consistencia de ruta direccional que garantice la existencia de soluciones.

i-consistencia direccional

Las líneas azules indican que no existe ninguna restricción entre x3 y x4, por lo que se permite cualquier par de valores. En estas imágenes, la ausencia de aristas entre dos variables indica implícitamente la ausencia de una restricción. Este problema tiene un ancho de 2.

Direccionali{\displaystyle i}-la consistencia es la garantía de que cada asignación consistente ai1{\displaystyle i-1}Las variables pueden extenderse de forma consistente a otra variable que se encuentra en un orden superior. Fuerte direccionalidadi{\displaystyle i}-la consistencia se define de manera similar, pero todos los grupos de como máximoi1{\displaystyle i-1}Se consideran variables. Si un problema es fuertemente direccionali{\displaystyle i}-consistente y tiene un ancho menor quei{\displaystyle i}y no tiene dominio vacío ni restricción insatisfacible, tiene soluciones.

Cada problema puede plantearse de forma fuertemente direccional.i{\displaystyle i}-consistente, pero esta operación puede aumentar el ancho de sus gráficos correspondientes. El procedimiento de propagación de restricciones que impone consistencia direccional es similar al utilizado para la consistencia de arcos direccionales y la consistencia de caminos. Las variables se consideran por turno, de la última a la primera según el orden. Para la variableincógnitak{\displaystyle x_{k}}, el algoritmo considera cada grupo dei1{\displaystyle i-1}variables que tienen un índice inferior ak{\displaystyle k}y están en una restricción conincógnitak{\displaystyle x_{k}}. Consistencia de estas variables conincógnitak{\displaystyle x_{k}}se verifica y posiblemente se aplica eliminando las asignaciones satisfactorias de la restricción entre todas estasi{\displaystyle i}variables (si las hay, o creando una nueva en caso contrario).

Al imponer consistencia en x5, se elimina la línea roja, creando así una nueva restricción no trivial entre x3 y x4. Como resultado, x4 tiene a x3 como nuevo padre, además de x1 y x2. Este cambio aumenta el ancho a 3.

Este procedimiento genera una dirección fuertemente marcada.i{\displaystyle i}-instancia consistente. Sin embargo, también puede agregar nuevas restricciones a la instancia. Como resultado, incluso si el ancho del problema original esi{\displaystyle i}, el ancho de la instancia resultante puede ser mayor. Si este es el caso, la consistencia fuerte direccional no implica satisfacibilidad incluso si ningún dominio está vacío y ninguna restricción es insatisfacible.

Sin embargo, la propagación de restricciones solo agrega restricciones a las variables que son menores que la que está considerando actualmente. Como resultado, ninguna restricción sobre una variable se modifica o agrega una vez que el algoritmo ha procesado esta variable. En lugar de considerar una variable fijai{\displaystyle i}, se puede modificar al número de padres de cada variable considerada (los padres de una variable son las variables de índice inferior a la variable y que están en una restricción con la variable). Esto corresponde a considerar todos los padres de una variable dada en cada paso. En otras palabras, para cada variableincógnitai{\displaystyle x_{i}}desde el último hasta el primero, todos sus padres están incluidos en una nueva restricción que limita sus valores a los que son consistentes conincógnitai{\displaystyle x_{i}}. Dado que este algoritmo puede considerarse una modificación del anterior con un valori{\displaystyle i} que se cambia al número de padres de cada nodo, se llama consistencia adaptativa .

Este algoritmo impone una fuerte direccionalidad.i{\displaystyle i}-consistencia coni{\displaystyle i}igual al ancho inducido del problema. La instancia resultante es satisfacible si y solo si ningún dominio o restricción se deja vacío. Si este es el caso, se puede encontrar fácilmente una solución estableciendo iterativamente una variable no asignada a un valor arbitrario y propagando esta evaluación parcial a otras variables. Este algoritmo no siempre es polinomial, ya que el número de restricciones introducidas al imponer una consistencia direccional fuerte puede producir un aumento exponencial del tamaño. Sin embargo, el problema es resoluble en tiempo polinomial si la imposición de la consistencia direccional fuerte no amplía la instancia de forma superpolinomial . Como resultado, si una instancia tiene un ancho inducido acotado por una constante, se puede resolver en tiempo polinomial.

eliminación de cubos

La eliminación de cubetas es un algoritmo de satisfacibilidad. Puede definirse como una reformulación de la consistencia adaptativa. Su definición utiliza cubetas, que son contenedores de restricciones, donde cada variable tiene una cubeta asociada. Una restricción siempre pertenece a la cubeta de su variable de mayor valor.

El algoritmo de eliminación de cubetas procede de la variable más alta a la más baja sucesivamente. En cada paso, las restricciones en las cubetas de esta variableincógnitai{\displaystyle x_{i}}se consideran. Por definición, estas restricciones solo involucran variables que son menores queincógnitai{\displaystyle x_{i}}. El algoritmo modifica la restricción entre estas variables inferiores (si existe, de lo contrario crea una nueva). En particular, obliga a que sus valores sean extensibles aincógnitai{\displaystyle x_{i}}consistentemente con las restricciones en el cubo deincógnitai{\displaystyle x_{i}}. Esta nueva restricción, si la hay, se coloca entonces en el contenedor apropiado. Dado que esta restricción solo involucra variables que son menores queincógnitai{\displaystyle x_{i}}, se agrega a un cubo de una variable que es menor queincógnitai{\displaystyle x_{i}}.

Este algoritmo es equivalente a imponer consistencia adaptativa. Dado que ambos imponen consistencia de una variable con todos sus padres, y dado que no se agrega ninguna restricción nueva después de considerar una variable, el resultado es una instancia que se puede resolver sin retroceso .

Dado que el grafo de la instancia que generan es un subgrafo del grafo inducido, si el ancho inducido está limitado por una constante, la instancia generada tendrá un tamaño polinomial con respecto al tamaño de la instancia original. En consecuencia, si el ancho inducido de una instancia está limitado por una constante, ambos algoritmos pueden resolverla en tiempo polinomial.

Coherencia relacional

Mientras que las definiciones anteriores de consistencia se refieren a la consistencia de las asignaciones, la consistencia relacional implica únicamente la satisfacción de una restricción o conjunto de restricciones dadas. Más precisamente, la consistencia relacional implica que toda asignación parcial consistente puede extenderse de tal manera que se satisfaga una restricción o conjunto de restricciones dadas. Formalmente, una restriccióndo{\displaystyle C}sobre variablesincógnita{\displaystyle X}¿El arco relacional es consistente con una de sus variables?incógnita{\displaystyle x}si cada asignación consistente aincógnita{incógnita}{\displaystyle X\backslash \{x\}}puede extenderse aincógnita{\displaystyle x}de esa manerado{\displaystyle C}está satisfecho. La diferencia entre "regular"i{\displaystyle i}La diferencia entre la consistencia y la consistencia de arcos relacionales radica en que esta última solo requiere que la asignación extendida satisfaga una restricción dada, mientras que la primera requiere que satisfaga todas las restricciones relevantes.

Consistencia i (regular): si una evaluación es consistente, se puede extender a otra variable de tal manera que se satisfagan todas las restricciones relevantes.
Consistencia de arco relacional: si una evaluación sobre las variables de una restricción es consistente, siempre se puede extender a esa variable de tal manera que la restricción se satisfaga. Las aristas cian representan restricciones que no necesitan ser satisfechas por la extensión.

Esta definición puede extenderse a más de una restricción y más de una variable. En particular, la consistencia de ruta relacional es similar a la consistencia de arco relacional, pero se utilizan dos restricciones en lugar de una. Dos restricciones son consistentes con una variable si toda asignación consistente a todas sus variables, excepto la considerada, puede extenderse de tal manera que se satisfagan ambas restricciones.

Para más de dos restricciones, relacionalmetro{\displaystyle m}-Se define la consistencia. Relacionalmetro{\displaystyle m}-la consistencia implica un conjunto demetro{\displaystyle m}restricciones y una variable que está dentro del alcance de todas estas restricciones. En particular, estasmetro{\displaystyle m}Las restricciones son relacionales.metro{\displaystyle m}-consistente con la variable si cada asignación consistente a todas las demás variables que están en sus ámbitos puede extenderse a la variable de tal manera que se satisfagan estas restricciones. Un problema esmetro{\displaystyle m}-relacional consistente si cada conjunto demetro{\displaystyle m}Las restricciones son relacionalesmetro{\displaystyle m}-consistente con cada variable que se encuentra en todos sus ámbitos. Fuerte relaciónmetro{\displaystyle m}La consistencia se define como se indicó anteriormente: es la propiedad de ser relacional.k{\displaystyle k}-consistente para cadak<metro{\displaystyle k<m}.

La consistencia relacional también puede definirse para más variables, en lugar de una. Un conjunto demetro{\displaystyle m}Las restricciones son relacionales(i,metro){\displaystyle (i,m)}-consistente si cada asignación consistente a un subconjunto dei{\displaystyle i}La evaluación de sus variables puede extenderse a todas las variables que satisfacen todas las restricciones. Esta definición no extiende exactamente la anterior, ya que las variables a las que se supone que se extienden las evaluaciones no necesariamente se encuentran dentro de todos los ámbitos de las restricciones involucradas.

Si se especifica un orden para las variables, la consistencia relacional puede restringirse a los casos en que la(s) variable(s) cuya evaluación debe ser extensible para seguir el orden de las demás variables. Esta condición modificada se denomina consistencia relacional direccional.

Consistencia relacional y satisfacibilidad

Un problema de satisfacción de restricciones puede ser relacionalmente consistente, no tener dominio vacío ni restricciones insatisfacibles, y aun así ser insatisfacible. Sin embargo, existen algunos casos en los que esto no es posible.

El primer caso es el de relaciones fuertemente relacionales.metro{\displaystyle m}-problema consistente cuando los dominios contienen como máximometro{\displaystyle m}elementos. En este caso, una evaluación consistente dek{\displaystyle k}Las variables siempre se pueden extender a otra única variable. Siincógnita1=a1,,incógnitak=ak{\displaystyle x_{1}=a_{1},\ldots ,x_{k}=a_{k}}es tal evaluación yincógnitak+1{\displaystyle x_{k+1}}es la variable, solo haymetro{\displaystyle m}posibles valores que puede tomar la variable. Si todos esos valores son inconsistentes con la evaluación, haymetro{\displaystyle m}restricciones (no necesariamente únicas) que son violadas por la evaluación y uno de sus posibles valores. Como resultado, la evaluación no puede extenderse para satisfacer todas estasmetro{\displaystyle m}-o menos restricciones, violando la condición de fuerte relaciónmetro{\displaystyle m}-consistencia.

El segundo caso está relacionado con una medida de las restricciones, en lugar de los dominios. Una restricción esmetro{\displaystyle m}-ajustado si cada evaluación de todas sus variables excepto una puede extenderse para satisfacer la restricción ya sea por todos los valores posibles de la otra variable o por como máximometro{\displaystyle m}de sus valores. Problema tenermetro{\displaystyle m}-las restricciones estrictas son satisfechas si y solo si son fuertemente relacionales.metro+1{\displaystyle m+1}-coherente.

Una matriz convexa por filas: los 1 de cada fila son contiguos (no hay 0 entre ellos).

El tercer caso es el de las restricciones binarias que pueden representarse mediante matrices convexas por filas. Una restricción binaria puede representarse mediante una matriz bidimensional.METRO{\displaystyle M}, dóndeMETROij{\displaystyle M_{ij}}es 0 o 1 dependiendo de si eli{\displaystyle i}-ésimo valor del dominio deincógnitai{\displaystyle x_{i}}y elj{\displaystyle j}-ésimo valor del dominio deincógnitaj{\displaystyle x_{j}}Satisfacer la restricción. Una fila de esta matriz es convexa si los 1 que contiene son consecutivos (formalmente, si dos elementos son 1, todos los elementos intermedios también lo son). Una matriz es convexa por filas si todas sus filas son convexas.

Cada matriz representa la restricción entre x i y x k +1 . Si a 1 ... a k son valores para x 1 ... x k , las filas de a 1 ... a k en cada matriz indican los valores permitidos para x k +1 . La convexidad de filas y la fuerte consistencia de ruta relacional implican la existencia de un valor consistente a k +1 para x k +1 .

La condición que hace que la consistencia de ruta relacional fuerte sea equivalente a la satisfacibilidad es la de los problemas de satisfacción de restricciones para los cuales existe un orden de las variables que hace que todas las restricciones se representen mediante matrices convexas por filas. Este resultado se basa en el hecho de que un conjunto de filas convexas que tienen un elemento común por pares también tienen un elemento común globalmente. Considerando una evaluación sobrek{\displaystyle k}variables, los valores permitidos para lak+1{\displaystyle k+1}-ésimo se obtienen seleccionando algunas filas de algunas restricciones. En particular, para cada variable entre lask{\displaystyle k}unos, la fila relativa a su valor en la matriz que representa la restricción que la relaciona con lak+1{\displaystyle k+1}Una representa los valores permitidos de la otra. Dado que estas filas son convexas y tienen un elemento común por pares debido a la consistencia de la ruta, también tienen un elemento común compartido, que representa un valor de la última variable que es consistente con los demás.

Usos de la consistencia local

Todas las formas de consistencia local pueden reforzarse mediante la propagación de restricciones, lo que puede reducir los dominios de las variables y los conjuntos de asignaciones que satisfacen una restricción, además de introducir nuevas restricciones. Cuando la propagación de restricciones produce un dominio vacío o una restricción insatisfacible, el problema original es insatisfacible. Por lo tanto, todas las formas de consistencia local pueden utilizarse como aproximaciones de la satisfacibilidad. Más precisamente, pueden utilizarse como algoritmos de insatisfacibilidad incompleta, ya que pueden demostrar que un problema es insatisfacible, pero en general no pueden demostrar que sea satisfacible. Estos algoritmos aproximados pueden ser utilizados por algoritmos de búsqueda ( retroceso , salto hacia atrás , búsqueda local , etc.) como heurísticas para determinar si una solución parcial puede extenderse para satisfacer todas las restricciones sin necesidad de un análisis adicional.

Aunque la propagación de restricciones no genere un dominio vacío ni una restricción insatisfacible, puede reducir los dominios o reforzar las restricciones. En tal caso, el espacio de búsqueda del problema se reduce, disminuyendo así la cantidad de búsqueda necesaria para resolverlo.

La consistencia local demuestra la satisfacibilidad en algunos casos restringidos (véase Complejidad de la satisfacción de restricciones#Restricciones ). Este es el caso para algunos tipos especiales de problemas y/o para algunos tipos de consistencia local. Por ejemplo, imponer la consistencia de arcos en problemas binarios acíclicos permite determinar si el problema es satisfacible. Imponer una fuerte direccionalidadi{\displaystyle i}-La consistencia permite determinar la satisfacibilidad de problemas que tienen ancho inducidoi1{\displaystyle i-1}Según el mismo orden. La consistencia direccional adaptativa permite determinar la satisfacibilidad de un problema arbitrario.

Véase también

  • Propagación de restricciones : tesis doctoral de Guido Tack que ofrece un buen panorama general de la teoría y los problemas de implementación.

Referencias

  1. Régin, Jean-Charles (julio de 1994). "Un algoritmo de filtrado para restricciones de diferencia en CSP" (PDF) . Actas de la Conferencia AAAI . Consultado el 16 de diciembre de 2022 .
  • Lecoutre, Christophe (2009). Redes de restricciones: técnicas y algoritmos . ISTE/Wiley.ISBN 978-1-84821-106-3
  • Dechter, Rina (2003). Procesamiento de restricciones . Morgan Kaufmann.ISBN 1-55860-890-7
  • Apt, Krzysztof (2003). Principios de programación con restricciones . Cambridge University Press.ISBN 0-521-82583-0
  • Marriott, Kim; Peter J. Stuckey (1998). Programación con restricciones: Una introducción . MIT Press.ISBN 0-262-13341-5