Problemas de satisfacción de restricciones

Muchas tareas de programación, asignación y resolución de acertijos consisten en elegir valores para un conjunto de variables de modo que se cumplan todas las reglas. Este material muestra cómo describir estas tareas como problemas de satisfacción de restricciones y cómo resolverlos: búsqueda con retroceso y ordenación inteligente de variables y valores, comprobación hacia delante y consistencia de arcos para podar valores imposibles, búsqueda local con la heurística de mínimos conflictos para problemas grandes y reparaciones rápidas, y métodos que aprovechan la estructura del grafo de restricciones, como el algoritmo de tiempo lineal para problemas con estructura de árbol y el condicionamiento por conjunto de corte. Cada método se desarrolla paso a paso con ejemplos pequeños, como un horario de talleres, la coloración de mapas y el acertijo de las n reinas.

IntermedioUnidad 3 de 10 del curso Curso de Inteligencia artificial

Lo que aprenderás

  1. Describe un problema mediante sus variables, dominios y restricciones, reconoce los tipos de restricciones y convierte tareas reales de programación y asignación en problemas de satisfacción de restricciones bien formulados.
    • Describe los componentes de un problema de satisfacción de restricciones
      Identifica las variables, los dominios y las restricciones de un problema, distingue las asignaciones parciales, consistentes y completas, y dibuja el grafo de restricciones.
    • Distingue los tipos de restricciones
      Clasifica las restricciones como unarias, binarias, de orden superior o globales, reescribe las restricciones de orden superior como binarias y separa las restricciones duras de las preferencias.
    • Modela problemas de programación de tareas y de asignación como CSP
      Convierte problemas de horarios, programación de taller, asignación y acertijos en CSP, eligiendo variables y dominios de modo que las restricciones sigan siendo sencillas.
  2. Busca una solución asignando una variable cada vez, retrocede en los callejones sin salida y elige el orden de las variables y los valores para que la búsqueda encuentre una solución, o demuestre que no existe, con mucho menos trabajo.
    • Ejecuta una búsqueda con retroceso paso a paso
      Explica por qué el retroceso asigna una variable por nivel, ejecuta el algoritmo a mano e indica su completitud y su costo.
    • Elige variables y valores con heurísticas de ordenación
      Aplica los mínimos valores restantes, la heurística del grado y el valor menos restrictivo, explica por qué apuntan en direcciones opuestas y mide su efecto en una búsqueda.
    • Retrocede de forma inteligente tras llegar a un callejón sin salida
      Usa conjuntos de conflictos para retroceder por saltos y pasar por alto las variables que no causaron un fallo, y registra combinaciones prohibidas para no repetir el mismo fallo.
  3. Usa la inferencia para eliminar valores que no pueden formar parte de ninguna solución, antes y durante la búsqueda, y evalúa qué garantizan la comprobación hacia delante, la consistencia de arcos y los niveles de consistencia más fuertes.
    • Aplica la comprobación hacia delante durante la búsqueda
      Poda los dominios de las variables vecinas de una variable recién asignada, detecta dominios vacíos, restaura valores al retroceder y reconoce qué pasa por alto la comprobación hacia delante.
    • Impón la consistencia de arcos con AC-3
      Aplica la consistencia de nodos y de arcos, ejecuta AC-3 a mano, conoce su costo y sus límites y mantén la consistencia de arcos durante la búsqueda.
    • Usa niveles de consistencia más fuertes y restricciones globales
      Explica la consistencia de caminos y la k-consistencia, propaga restricciones Alldiff y de cotas, y sopesa la poda adicional frente a su costo.
  4. Parte de una asignación completa y repárala con la heurística de mínimos conflictos, escapa de mesetas y mínimos locales y evalúa cuándo la búsqueda local o el retroceso es la mejor herramienta.
    • Repara asignaciones con la heurística de mínimos conflictos
      Ejecuta a mano la heurística de mínimos conflictos sobre una formulación con estados completos, explica por qué funciona bien en problemas grandes y úsala para reparar un horario después de un cambio.
    • Escapa de las mesetas y los mínimos locales, y elige entre la búsqueda local y la búsqueda con retroceso
      Usa movimientos laterales, búsqueda tabú, ponderación de restricciones y reinicios, y decide qué método se ajusta a un problema dado.
  5. Interpreta el grafo de restricciones para dividir un problema en partes independientes, resolver problemas con forma de árbol en tiempo lineal y convertir en árboles los problemas con estructura casi arbórea.
    • Separa subproblemas independientes y resuelve CSP con estructura de árbol
      Encuentra subproblemas independientes en el grafo de restricciones y resuelve un CSP con estructura de árbol mediante los recorridos hacia atrás y hacia delante del algoritmo para árboles.
    • Reduce a árboles los problemas con estructura casi arbórea
      Aplica el condicionamiento por conjunto de corte y la descomposición arbórea, relaciona su costo con el tamaño del conjunto de corte y la anchura arbórea, y rompe la simetría de valores.

Guía de estudio de Problemas de satisfacción de restricciones

5 capítulos

1

Formula problemas como problemas de satisfacción de restricciones

Elegir un horario o asignar personas revisoras empieza con un modelo: qué necesita un valor, qué valores son posibles y qué combinaciones están permitidas. Un modelo claro permite que los mismos métodos de resolución funcionen en tareas muy diferentes. Construirás ese modelo, distinguirás los requisitos de las preferencias y verás cómo la elección de variables cambia el trabajo al que se enfrenta un resolvedor. Pequeños ejemplos de programación de tareas y acertijos concretan cada componente.

1.1 Describe los componentes de un problema de satisfacción de restricciones

Un problema de satisfacción de restricciones, o CSP, describe un conjunto de elecciones y las reglas que las relacionan. Su estado es una representación factorizada: puedes examinar las variables individuales y sus valores, y después reutilizar métodos generales de poda y búsqueda.

Variables, dominios y restricciones

Una variable nombra algo que hay que elegir. Su dominio enumera sus valores permitidos. Una restricción especifica qué combinaciones pueden darse juntas. Para los talleres A y B, haz que cada valor sea una franja horaria de {1,2,3}. La regla «A va antes que B» tiene ámbito {A,B} y relación {(1,2),(1,3),(2,3)}. Escribir A<B expresa la misma relación de forma compacta.

El ámbito indica las variables involucradas; la relación da las tuplas de valores permitidas. Confundirlos conduce a un modelo en el que «rojo» se convierte en una variable. En la coloración de mapas, las regiones son variables y los colores son valores.

¿Qué cuenta como solución?

Una asignación da valores a las variables. Tres comprobaciones describen su estado:

  • Es parcial si algunas variables no tienen valor.
  • Es completa si cada variable tiene un valor.
  • Es consistente si no incumple ninguna restricción entre las variables asignadas.

Una solución debe ser completa y consistente. Con solo A=2, la asignación es consistente pero parcial. Ampliarla con B=1 la hace completa e inconsistente. Elegir B=3 da una solución a este ejemplo de dos variables. Una asignación parcial consistente puede no tener ninguna forma de completarse: las variables sin asignar pueden quedarse sin opciones compatibles.

Interpreta un grafo de restricciones

Para un CSP binario, dibuja un nodo por variable y una arista por cada par restringido. En un mapa simplificado de Australia, las variables son WA, NT, SA, Q, NSW, V y T, cada una con dominio {rojo, verde, azul}. Los pares vecinos son WA–NT, WA–SA, NT–SA, NT–Q, SA–Q, SA–NSW, SA–V, Q–NSW y NSW–V. Cada arista exige colores diferentes.

Una solución es WA rojo, NT verde, SA azul, Q rojo, NSW verde, V rojo y T rojo. Comprueba cada arista, incluida SA–V. T no tiene ninguna arista, por lo que su color es independiente del territorio continental. Hay 6 coloraciones del territorio continental y 3 opciones para T, lo que da 18 soluciones. Una restricción que involucra varias variables necesita una representación mediante hipergrafo; un nodo adicional de restricción puede conectarse a cada variable de su ámbito.

Dominios y tamaño de la búsqueda

Un dominio discreto finito es una lista fija, como tres colores. Un dominio discreto infinito podría contener todos los tiempos de inicio enteros no negativos. Un dominio continuo podría contener tiempos expresados con números reales. Los dos últimos necesitan representaciones y métodos adecuados a esos dominios; la programación lineal maneja restricciones lineales continuas.

Para n variables con d valores cada una, hay dn asignaciones completas. El mapa tiene 37=2187 candidatas antes de que las restricciones eliminen alguna. Los CSP finitos incluyen problemas NP-completos, por lo que no se conoce un método general de resolución en tiempo polinómico. Su estructura interna permite, aun así, la poda: el resolvedor puede descartar una elección sin enumerar cada asignación completa que la contiene. Solo los valores finales determinan si la respuesta es válida; el camino usado para encontrarlos es irrelevante.

Puntos clave

  • Un CSP especifica variables, sus dominios y restricciones sobre combinaciones de valores.
  • Una solución es completa y consistente.
  • Un grafo de restricciones binarias muestra qué variables se afectan directamente entre sí.
  • Con dominios del mismo tamaño, el número de asignaciones completas es dn.

1.2 Distingue los tipos de restricciones

Las restricciones difieren en cuántas variables conectan y en si establecen requisitos o preferencias. Reconocer esa estructura te ayuda a escribir un modelo fiel y a elegir métodos de propagación útiles.

Clasifica el ámbito

Una restricción unaria limita una variable. Si el taller E no puede usar la franja 1, aplica E≠1 reduciendo su dominio de {1,2,3} a {2,3} antes de la búsqueda. Una restricción binaria relaciona dos variables, como A<B o A≠D. Un CSP binario solo contiene restricciones unarias y binarias.

Una restricción de orden superior involucra al menos tres variables. Si las duraciones de las tareas X, Y y Z deben llenar 10 horas, escribe X+Y+Z=10. Con cada duración en {1,2,3,4,5}, la tupla (2,3,4) no cumple la restricción, mientras que (2,3,5) sí la cumple. Comprobar una regla de orden superior requiere que los valores funcionen conjuntamente.

Conserva las restricciones globales útiles

Una restricción global da una regla con nombre sobre un grupo de tamaño variable. Alldiff⁡(X1,…,Xk) exige valores diferentes para cada par. Su conjunto de soluciones equivale al conjunto definido por k(k−1)/2 desigualdades entre pares. Para nueve celdas de Sudoku, eso supone 36 restricciones binarias.

La forma global también permite al resolvedor razonar sobre el grupo. Tres variables limitadas a dos valores distintos no pueden ser todas diferentes, aunque cada par por separado tenga una asignación compatible. Que los conjuntos de soluciones sean iguales no garantiza la misma capacidad de poda.

Una regla de capacidad también puede ser global. Aquí Atmost⁡(10,P1,P2,P3) significa P1+P2+P3≤10: el número total de personas asignadas a las tres tareas no puede superar diez. Los argumentos representan cantidades que se suman, por lo que esta regla permite, por ejemplo, (3,4,3).

Convierte una restricción finita a forma binaria

Introduce una variable auxiliar U cuyos valores sean las tripletas permitidas para X+Y+Z=10. Un valor posible es (2,3,5). Añade tres restricciones binarias: el primer componente de U es igual a X, el segundo es igual a Y y el tercero es igual a Z. Por tanto, seleccionar ese valor para U exige X=2, Y=3 y Z=5.

Cada tripleta original válida corresponde a un valor de U y cada asignación consistente que involucra a U produce una tripleta original válida. Esta construcción permite que los métodos binarios manejen una restricción finita de orden superior. Su costo es el dominio de tuplas potencialmente grande, por lo que los resolvedores suelen conservar la regla global o de orden superior original.

Requisitos y preferencias
TipoQué significaEjemplo de programación de tareas
Restricción duraToda solución debe satisfacerla.Una persona formadora no puede impartir dos talleres a la vez.
Restricción blandaUn incumplimiento añade un costo a una elección que, por lo demás, es viable.Una persona formadora prefiere una sesión por la tarde.

Con restricciones blandas, la tarea se convierte en un problema de optimización con restricciones, o COP: satisfacer todas las reglas duras y minimizar el costo total de las preferencias. Para optimizar pueden usarse la ramificación y acotación y la búsqueda local.

Prueba el modelo con una asignación que sepas que es válida y otra que sepas que es inválida. Una desigualdad inventada entre talleres no relacionados elimina horarios legítimos; la ausencia de una restricción para una persona formadora compartida admite horarios imposibles. Las preferencias también requieren cuidado: convertir «se prefiere la tarde» en «se exige la tarde» puede eliminar todos los horarios viables.

Puntos clave

  • Las restricciones unarias podan un dominio; las binarias conectan dos variables.
  • Alldiff exige valores diferentes por pares, pero puede permitir una poda de grupo más fuerte.
  • Las variables auxiliares de tuplas pueden convertir restricciones finitas de orden superior a forma binaria.
  • Las restricciones duras definen la viabilidad; las blandas ordenan las opciones viables.
  • Comprueba tanto un caso válido como uno inválido al probar un modelo.

1.3 Modela problemas de programación de tareas y de asignación como CSP

Un modelo debe describir las decisiones de forma lo bastante directa para que las reglas sean fáciles de expresar. Empieza por identificar qué hay que elegir, después asigna dominios y traduce cada requisito sobre las variables que realmente involucra.

Construye un horario de talleres

Cinco talleres de una franja cada uno comparten tres franjas horarias: 1 por la mañana, 2 al mediodía y 3 por la tarde. Sea A Fundamentos de Python, B Python avanzado, C Estadística, D Bases de datos y E Ética. Cada taller es una variable con dominio inicial {1,2,3}.

Los participantes compartidos exigen A≠C, A≠D, C≠D, B≠C, C≠E y D≠E. Fundamentos debe preceder a Avanzado, por lo que A<B. La persona que imparte Ética llega al mediodía, por lo que E≠1. Esto da siete aristas binarias y una regla unaria; C tiene cuatro vecinos.

La asignación A=2,B=3,C=1,D=3,E=2 satisface todas las reglas: cada par con participantes compartidos es diferente, Fundamentos precede a Avanzado y Ética no está en la franja 1. Es la única asignación válida entre las 35=243 candidatas. Los talleres B y D pueden usar ambos la franja 3 porque ninguna regla exige que sean diferentes.

Si se eligiera una variable por franja, cada valor sería un subconjunto de talleres, con hasta 25=32 subconjuntos posibles por franja. Las reglas tendrían entonces que examinar esos conjuntos y asegurar que cada taller aparezca una vez. Elegir los talleres como variables mantiene las restricciones más sencillas.

Expresa los tiempos de las tareas y los recursos compartidos

En la programación de taller, usa una variable de tiempo de inicio para cada tarea. Preparar dura 20 minutos, Analizar 40 y Elaborar informe 30. Los tiempos de inicio son minutos enteros no negativos. El orden y el plazo de 120 minutos dan

SP+20≤SA,SA+40≤SR,SR+30≤120.

Los inicios más tempranos son 0, 20 y 60. Al trabajar hacia atrás desde el plazo se obtienen los inicios más tardíos 30, 50 y 90. Por tanto, las ventanas son SP∈[0,30], SA∈[20,50] y SR∈[60,90].

Dos tareas que comparten una máquina necesitan una restricción disyuntiva: SX+dX≤SY o SY+dY≤SX. Cualquiera de las tareas puede ir primero, pero no pueden solaparse. Una simple restricción de precedencia impondría un orden concreto y eliminaría la otra posibilidad.

Modela asignaciones y acertijos

Para tres informes asignados a tres personas revisoras, haz de cada informe una variable cuyos valores sean las personas revisoras. Usa Alldiff si cada persona revisora se encarga de un informe. Un conflicto de intereses elimina a una persona revisora del dominio del informe correspondiente.

Para las n reinas, sea Qi la fila de la reina en la columna i. Una reina por columna está incorporada al modelo. Para cada par, exige Qi≠Qj y ∣Qi−Qj∣≠∣i−j∣ para impedir ataques en filas y diagonales. Para ocho reinas esto reduce el espacio de candidatos de elegir 8 casillas de 64, 4 426 165 368 colocaciones, a 88=16 777 216 asignaciones. Hay 92 soluciones.

Para Sudoku, las 81 variables de celda tienen dominios 1–9. Los dígitos dados imponen restricciones unarias y cada una de las 9 filas, 9 columnas y 9 cajas impone Alldiff.

Elige las unidades de tiempo menos detalladas que sigan representando todos los inicios permitidos. Las sesiones que empiezan a la hora en punto necesitan opciones por hora; los dominios minuto a minuto aumentarían el trabajo sin añadir un horario útil. Termina separando las preferencias de las reglas duras y comprobando un caso pequeño con una respuesta conocida.

Puntos clave

  • Elige variables que mantengan sencillas las restricciones y dominios que no sean más detallados de lo necesario.
  • La precedencia usa desigualdades de fin antes de inicio; los recursos compartidos requieren que las tareas no se solapen.
  • Una reina por columna puede incorporarse a la elección de variables.
  • Un modelo correcto incluye las reglas implícitas de recursos y conserva las franjas compartidas legítimas.
2

Resuelve CSP mediante búsqueda con retroceso

Una búsqueda puede desperdiciar la mayor parte de su esfuerzo al volver a examinar las mismas elecciones o descubrir conflictos demasiado tarde. El retroceso construye una asignación una variable cada vez y vuelve a elecciones anteriores cuando una rama falla. La ordenación de variables y valores ayuda a encontrar antes ramas prometedoras, mientras que el análisis de conflictos identifica qué elecciones causaron un callejón sin salida. Seguir las decisiones paso a paso facilita la evaluación tanto del método básico como de sus mejoras.

2.1 Ejecuta una búsqueda con retroceso paso a paso

El retroceso construye una asignación parcial mediante búsqueda en profundidad. Elige una variable, prueba un valor y continúa hasta encontrar una solución o tener que deshacer una elección. La búsqueda conserva las elecciones anteriores útiles cuando falla una posterior.

Ramifica sobre valores, una variable cada vez

Asignar A y luego B produce la misma asignación final que asignar B y luego A. Esta conmutatividad significa que un resolvedor de CSP puede elegir una variable en cada nivel y ramificar sobre sus valores. Permitir todos los órdenes de variables produciría n!dn hojas para solo dn asignaciones completas distintas. Para cinco variables con tres valores, son 29 160 hojas en vez de 243.

La siguiente variable puede depender de los dominios actuales. Lo que importa es elegir una sola variable siguiente en un nodo; la búsqueda no necesita ramas separadas para todos los órdenes posibles de asignación.

Sigue los pasos recursivos
  1. Si la asignación es completa y consistente, devuélvela.
  2. Elige una variable sin asignar.
  3. Prueba cada valor del dominio que sea consistente con la asignación actual.
  4. Realiza una llamada recursiva después de añadir un valor. Si la llamada recursiva falla, elimina esa asignación y prueba el siguiente valor.
  5. Si ningún valor funciona, devuelve fallo a quien hizo la llamada.

El retroceso básico comprueba una restricción una vez que todas las variables de su ámbito tienen valores. Con A=1 y B sin asignar, A<B no tiene ningún par completo que rechazar. Al probar B=1, falla de inmediato. Esperar hasta que todas las variables estén asignadas retrasaría este rechazo sencillo.

Sigue un callejón sin salida

Usa las reglas de los talleres: A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Toma las variables en el orden A, B, C, D, E y prueba los valores 1, 2, 3.

  • Fija A=1. Rechaza B=1 y elige B=2.
  • Rechaza C=1 por A y C=2 por B; elige C=3.
  • Rechaza D=1 por A; elige D=2.
  • E no tiene ningún valor permitido: 1 está prohibido, 2 entra en conflicto con D y 3 entra en conflicto con C.

El fallo en E devuelve el control a D. Su siguiente valor, 3, entra en conflicto con C. C no tiene ningún valor posterior, por lo que el control vuelve a B. Al probar B=3 se llega finalmente a otro callejón sin salida con A=1. La búsqueda prueba entonces A=2 y llega a A=2,B=3,C=1,D=3,E=2. Con este orden, el retroceso básico prueba 32 valores candidatos en total, incluidos los rechazados.

Qué garantiza el método
PropiedadRetroceso básico en dominios finitos
CompletitudEncuentra una solución si existe; agotar la búsqueda demuestra que no hay solución.
Tamaño de búsqueda en el peor casoExponencial, O(dn) asignaciones en la cota habitual.
Memoria del camino de búsquedaLineal en n; se almacena un camino activo.

Comprobar las restricciones y almacenar el modelo también tienen costos. La descripción de memoria lineal se refiere al camino de búsqueda, mientras que la propagación también puede almacenar dominios y registros para deshacer cambios.

El retroceso cronológico vuelve a la elección más reciente. Las variantes más rápidas mejoran cuatro decisiones distintas: la siguiente variable, el orden de sus valores, las consecuencias inferidas después de una elección y la elección anterior que se debe revisar después de un fallo. Estas mejoras reducen el trabajo práctico sin cambiar lo que cuenta como solución.

Puntos clave

  • La conmutatividad elimina la necesidad de buscar en todos los órdenes de asignación.
  • El retroceso asigna una variable por nivel y rechaza los incumplimientos de restricciones cuyas variables ya tienen valor.
  • Una llamada recursiva fallida deshace su elección y prueba otro valor.
  • El retroceso en dominios finitos es completo, pero la búsqueda es exponencial en el peor caso.
  • La memoria lineal del camino de búsqueda no incluye todo el almacenamiento del modelo y de la propagación.

2.2 Elige variables y valores con heurísticas de ordenación

Una buena ordenación puede revelar fallos cerca de la raíz de un árbol de búsqueda o conservar opciones útiles para más adelante. La ordenación de variables y la de valores tienen propósitos diferentes, por lo que la dirección que parece mejor difiere entre ellas.

Elige la variable más restringida

La heurística de los mínimos valores restantes (MRV) selecciona la variable sin asignar con menos valores actualmente permitidos. También se llama heurística de la variable más restringida o de fallar primero. Es probable que un dominio casi agotado revele pronto una contradicción. Si un dominio está vacío, la rama falla de inmediato.

Cuenta los valores actuales después de la poda, no los tamaños iniciales de los dominios. Sin dominios almacenados, un resolvedor debe determinar qué valores originales siguen siendo consistentes con la asignación antes de aplicar MRV.

La heurística del grado resuelve un empate de MRV eligiendo la variable con más restricciones sobre otras variables sin asignar. Esta elección afecta a más decisiones restantes. Los vecinos ya asignados no cuentan para este grado restante. Al principio del mapa de Australia, los dominios iguales de tres colores empatan y los cinco vecinos de SA le dan el grado más alto.

Mantén abiertas las opciones al elegir un valor

La heurística del valor menos restrictivo (LCV) prueba el valor que elimina menos valores de los dominios vecinos sin asignar. Evaluar valores candidatos añade cálculos, pero puede evitar una rama fallida costosa.

Con WA rojo y NT verde, SA solo puede ser azul, mientras que Q puede ser rojo o azul. Elegir Q azul vaciaría el dominio de SA. Elegir Q rojo elimina rojo de NSW y conserva el azul de SA. Por tanto, LCV prueba Q rojo.

Decisión de ordenaciónElección preferidaMotivo
Siguiente variableMenos valores restantesRevelar pronto un fallo probable.
Variable empatadaMás vecinos sin asignarAfectar a más decisiones restantes.
Siguiente valorMenos valores eliminados de los vecinosConservar posibilidades de completar la asignación.

Cada variable debe recibir finalmente un valor, lo que hace útil probar pronto una variable con pocas opciones. Solo se necesita un valor para completar una primera solución, lo que favorece un valor que deje margen para otras decisiones.

Combina la ordenación con la comprobación hacia delante

En el horario de talleres, aplica primero E≠1. E tiene dos valores; A, B, C y D tienen tres cada una. MRV elige E. Prueba E=2 y la comprobación hacia delante elimina 2 de C y D.

C y D empatan ahora con dominios {1,3}. C tiene tres vecinos sin asignar, A, B y D; D tiene dos, A y C. La heurística del grado selecciona C. Elige C=1, con lo que quedan DD={3} y DA=DB={2,3}. MRV elige D=3, lo que obliga a A=2; la regla de precedencia da entonces B=3. Cinco asignaciones encuentran la solución sin retrocesos. El orden fijo de variables con comprobación hacia delante necesita 12 asignaciones y llega a dos callejones sin salida.

La ordenación conserva la completitud porque cambia la secuencia de elecciones sin descartar ramas permitidas. La búsqueda en el peor caso sigue siendo exponencial. Al enumerar todas las soluciones o demostrar que no hay solución, todos los valores relevantes deben explorarse finalmente, por lo que se reduce la ventaja de LCV de lograr un éxito temprano. Su principal utilidad es encontrar antes una primera solución.

Puntos clave

  • MRV usa el número actual de valores permitidos.
  • La heurística del grado resuelve empates mediante las restricciones sobre variables sin asignar.
  • LCV conserva las opciones de las variables vecinas al probar un valor.
  • La ordenación cambia el esfuerzo de búsqueda y conserva la completitud.

2.3 Retrocede de forma inteligente tras llegar a un callejón sin salida

Un callejón sin salida suele tener una causa más pequeña que toda la asignación actual. El retroceso por saltos usa esa causa para decidir a dónde volver, y el aprendizaje de restricciones recuerda un fallo para que no sea necesario descubrirlo de nuevo.

Encuentra las elecciones que causaron el fallo

En el mapa de Australia, toma el orden de asignación Q, NSW, V, T, SA. Sean Q rojo, NSW verde, V azul y T rojo. SA limita con Q, NSW y V, por lo que los tres colores están prohibidos. Su conjunto de conflictos es {Q,NSW,V}: las variables anteriores cuyas elecciones excluyen sus valores.

El retroceso cronológico intentaría cambiar T. Tasmania no tiene ninguna arista con SA, por lo que cambiar su color no puede restaurar ninguna opción para SA. El retroceso por saltos vuelve a V, el miembro del conjunto de conflictos asignado más recientemente, y salta T.

Un conjunto de conflictos contiene variables; una combinación prohibida registra asignaciones concretas. Esa distinción importa: otro color para V puede corregir el fallo, aunque V siga siendo vecina de SA.

Propaga un conflicto a través de fallos anteriores

El retroceso por saltos simple usa el conjunto de conflictos directo del fallo actual. El retroceso por saltos dirigido por conflictos lleva información a través de varios niveles fallidos. Cuando una variable fallida X salta a Y, Y absorbe el conjunto de conflictos de X sin incluir Y. Si Y agota después todos sus valores, su conjunto combinado identifica una causa situada más atrás en la asignación.

Por ejemplo, usa el orden WA, NSW, T, NT, Q, V, SA y empieza con WA rojo, NSW rojo, T rojo. WA y NSW no son vecinas, por lo que esta asignación parcial es consistente. Sus elecciones eliminan rojo de NT, Q y SA. Esas tres regiones forman un triángulo que no puede colorearse usando solo verde y azul.

Ninguna elección hecha para T cambia ese triángulo. La información sobre conflictos puede viajar hacia atrás a través de los intentos fallidos e identificar WA y NSW como la causa subyacente. La búsqueda vuelve a NSW, la última de esas dos decisiones, en vez de dedicar tiempo a volver a colorear T.

Aprende la combinación fallida

Un resolvedor puede registrar {WA=rojo,NSW=rojo} como una combinación prohibida. Siempre que ambas elecciones se repitan, se produce la misma contradicción del triángulo, por lo que la rama puede rechazarse de inmediato. Sería incorrecto prohibir WA rojo por sí solo: WA puede ser rojo en soluciones válidas con un color diferente para NSW.

El aprendizaje añade una restricción o una combinación prohibida almacenada en caché. La condición aprendida debe deducirse de las restricciones originales; un fallo causado simplemente por alcanzar un límite de tiempo no proporciona esa justificación lógica. Una combinación prohibida útil conserva suficientes asignaciones para explicar la imposibilidad sin incluir elecciones no relacionadas.

Combina la anticipación y la revisión retrospectiva

La comprobación hacia delante y la consistencia de arcos eliminan los valores sin soporte antes de que se produzca un fallo profundo. El retroceso por saltos diagnostica un fallo después de que ocurre. El retroceso por saltos directo y simple no añade poda a lo que ya detecta la comprobación hacia delante, pero los métodos dirigidos por conflictos pueden combinar explicaciones de fallos más profundos. El aprendizaje conserva esas explicaciones para ramas posteriores.

Puntos clave

  • Un conjunto de conflictos identifica las variables anteriores responsables de un fallo.
  • El retroceso por saltos omite elecciones que no están relacionadas con ese fallo.
  • El retroceso por saltos dirigido por conflictos combina información sobre conflictos de distintos niveles fallidos.
  • Una combinación prohibida prohíbe una combinación imposible de asignaciones, no cada asignación por separado.
  • La poda anticipada y las explicaciones aprendidas pueden trabajar juntas.
3

Poda los dominios mediante propagación de restricciones

Un valor puede ser imposible incluso antes de elegir su variable. La propagación de restricciones sigue las consecuencias de los dominios y las asignaciones actuales, y elimina los valores que carecen del soporte que necesitan. Los métodos difieren en cuánto abarcan: desde los vecinos inmediatos de una decisión hasta pares, tripletas y grupos completos de variables. Los cambios de dominio resueltos muestran qué detecta cada método, qué pasa por alto y cuándo compensa el trabajo adicional.

3.1 Aplica la comprobación hacia delante durante la búsqueda

La comprobación hacia delante pregunta qué descarta de inmediato una nueva asignación para las variables vecinas sin asignar. Elimina los valores incompatibles antes de que la búsqueda llegue a esas variables, lo que permite detectar algunos callejones sin salida varios niveles antes.

Poda después de una asignación

Después de elegir X=x, examina cada Y sin asignar que comparta una restricción con X. Elimina cada valor de DY que entre en conflicto con la elección. Un dominio vacío significa que la rama actual no puede completarse, por lo que hay que retroceder de inmediato.

Para X≠Y, asignar X=2 elimina 2 de Y. Para X<Y, asignar X=2 elimina todos los valores de Y que sean como máximo 2. La relación concreta determina qué se elimina; la comprobación hacia delante no se limita a eliminar valores iguales.

La poda cambia los dominios de la rama actual. Mantén un registro de deshacer, a menudo llamado registro de cambios, de cada eliminación causada por la elección. Cuando se deshaga esa elección, restaura sus eliminaciones y conserva las restricciones que pertenecen a elecciones anteriores. Otra implementación consiste en copiar los dominios en cada nivel.

Sigue los dominios de los talleres

Usa las franjas 1–3 y las reglas A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1. Aplica la regla unaria para obtener DE={2,3} y después usa el orden fijo A, B, C, D, E.

  1. A=1 deja a B, C y D con {2,3}.
  2. B=2 deja a C con {3}.
  3. C=3 deja tanto a D como a E con {2}.
  4. D=2 elimina 2 de E y vacía su dominio. Retrocede.

Restaurar los dominios y probar B=3 obliga a C a ser 2. D y E pasan ambas a 3, por lo que asignar D vuelve a vaciar E. La búsqueda debe cambiar A. Con A=2, puede llegar a B=3,C=1,D=3,E=2. Este recorrido prueba 12 valores, frente a 32 pruebas de candidatos del retroceso básico en el mismo orden.

Reconoce el límite de la comprobación de un paso

Después del paso 3, D y E tienen ambas como único valor 2 y deben ser diferentes. La comprobación hacia delante aún no ha comprobado esa restricción: ni D ni E se han asignado en ese momento. Solo detecta el fallo cuando D recibe su valor.

Este es el límite central de la comprobación hacia delante. Comprueba la variable asignada frente a sus vecinas sin asignar, sin propagar los efectos de la reducción del dominio de una vecina. La consistencia de arcos puede seguir esas consecuencias entre variables sin asignar.

Usa los dominios actualizados

MRV puede ahora seleccionar directamente el dominio restante más pequeño. Un dominio con un solo valor suele ser la siguiente elección; un dominio vacío señala un fallo sin añadir otra asignación. Mantener los dominios actualizados ayuda tanto a la inferencia como a la ordenación.

Para como máximo n−1 vecinos y como máximo d valores por vecino, una pasada de comprobación hacia delante usa unas O(nd) comprobaciones binarias, suponiendo que la prueba de la relación tarda tiempo constante. Solo elimina valores incompatibles con la asignación actual, por lo que el retroceso sigue siendo completo. Olvidar restaurar una eliminación puede hacer que una rama posterior pierda una solución válida; podar una variable no relacionada puede tener el mismo efecto.

Puntos clave

  • La comprobación hacia delante poda las variables vecinas sin asignar de la nueva asignación.
  • Un dominio vacío rechaza de inmediato la rama actual.
  • Restaura las eliminaciones específicas de una rama al deshacer una elección.
  • La comprobación hacia delante no propaga entre dos variables sin asignar.

3.2 Impón la consistencia de arcos con AC-3

Un valor necesita un valor compatible en cada dominio vecino. La consistencia de arcos hace explícito ese requisito de soporte y sigue los efectos de los cambios de dominio por todo un CSP binario.

El soporte tiene una dirección

La consistencia de nodos elimina primero los valores prohibidos por las reglas unarias. Para una restricción binaria, el arco dirigido X→Y es consistente cuando cada valor de X tiene al menos un valor compatible en Y. Ese valor de Y es un soporte. Revisar el arco elimina los valores sin soporte de su origen, X.

Para A<B con ambos dominios {1,2,3}, revisar A→B elimina 3 de A. Revisar B→A elimina 1 de B. Los dominios resultantes son DA={1,2} y DB={2,3}. Un valor que permanece puede usar un soporte diferente para cada vecino; los soportes no tienen por qué formar una solución conjunta.

Ejecuta AC-3

AC-3 usa una cola de arcos dirigidos:

  1. Pon inicialmente todos los arcos en la cola.
  2. Extrae X→Y y revisa X usando el dominio de Y.
  3. Si X queda vacío, detente e informa de un fallo.
  4. Si X se reduce, añade Z→X para cada otro vecino Z de X, excepto Y.
  5. Continúa hasta que la cola esté vacía.

Una eliminación en X puede quitar un soporte de Z, por lo que la cola debe incluir arcos que apunten al dominio modificado. El arco desde Y no necesita una nueva comprobación inmediata: los valores eliminados de X no daban soporte a ningún valor de Y, ya que ninguno era compatible con Y desde el principio. Los dominios no vacíos obtenidos al finalizar son independientes del orden de procesamiento; distintos órdenes pueden llegar al fallo con distintos dominios vacíos.

Propaga una decisión sobre los talleres

Para las reglas de los talleres A≠C,A≠D,C≠D,B≠C,C≠E,D≠E,A<B,E≠1, la ejecución inicial de AC-3 elimina 3 de A y 1 de B. Deja a C y D con {1,2,3} y a E con {2,3}.

Ahora decide C=1. El arco A→C elimina 1 de A y deja A=2. Revisar B frente a A obliga a B=3. D es diferente de C y de A, por lo que D=3. E es diferente de D y no puede ser 1, por lo que E=2. Las reducciones de dominio han llegado más allá de los vecinos inmediatos de la decisión original.

El mantenimiento de la consistencia de arcos (MAC) aplica esta inferencia después de cada decisión de búsqueda. Partiendo de dominios consistentes de arco, restringir X=x requiere una cola de arcos entrantes desde sus vecinos sin asignar. Las eliminaciones de dominio deben restaurarse cuando la búsqueda deshace la rama.

Interpreta el resultado y el costo
Resultado después de la consistencia de nodos y de arcosSignificado
Un dominio vacíoNinguna solución amplía las restricciones actuales.
Cada dominio tiene un solo valorLa única asignación restante satisface el CSP binario.
Algunos dominios tienen varios valoresPuede ser necesaria más inferencia o búsqueda.

Un triángulo con dominios {rojo, azul} y desigualdades en las tres aristas sigue siendo consistente de arco, pero no tiene solución. Cada arista tiene soportes por separado, pero las tres elecciones no pueden funcionar conjuntamente.

Con c restricciones binarias y un tamaño máximo de dominio d, AC-3 tarda O(cd3): una revisión de arco comprueba hasta d2 pares, y cada arco puede requerir hasta d rondas a medida que su destino pierde valores. MAC dedica más trabajo por nodo de búsqueda que la comprobación hacia delante, a menudo a cambio de un árbol de búsqueda mucho más pequeño.

Puntos clave

  • Revisar X→Y elimina de X los valores sin soporte.
  • Después de que X se reduce, AC-3 vuelve a comprobar los arcos que apuntan a X.
  • Los dominios no vacíos y consistentes de arco aún pueden describir un CSP sin solución.
  • MAC mantiene la consistencia de arcos después de las decisiones de búsqueda.
  • AC-3 tiene la cota habitual en el peor caso O(cd3).
  • Las conclusiones sobre dominios de un solo valor requieren que se hayan impuesto las restricciones unarias y binarias.

3.3 Usa niveles de consistencia más fuertes y restricciones globales

Los soportes separados entre pares pueden ocultar una contradicción de grupo. Una consistencia más fuerte y la propagación global especializada examinan combinaciones que la consistencia de arcos pasa por alto, mientras que las cotas numéricas pueden comprimir dominios grandes en intervalos útiles.

Amplía asignaciones a otra variable

La consistencia de caminos examina tripletas. Toda asignación consistente a dos variables debe poder ampliarse a una tercera de forma consistente con ambas. En un triángulo coloreado de rojo o azul, X rojo e Y azul no dejan ningún valor para Z. La consistencia de caminos elimina ese par permitido y finalmente revela que no hay solución. Puede eliminar tuplas de las relaciones, por lo que hace más que eliminar valores individuales de los dominios.

La k-consistencia exige que toda asignación consistente a cualesquiera k−1 variables pueda ampliarse a cualquier variable adicional. Para CSP binarios, la 1-consistencia corresponde a la consistencia de nodos, la 2 a la consistencia de arcos y la 3 a la consistencia de caminos. La k-consistencia fuerte incluye todos los niveles del 1 al k. Con n-consistencia fuerte en n variables y dominios no vacíos, cualquier asignación parcial consistente puede ampliarse hasta convertirse en una solución, sin retroceso. Establecer esta propiedad tiene costos de tiempo y memoria exponenciales en el peor caso.

Cuenta los valores en Alldiff

Alldiff exige valores distintos para todas las variables de su ámbito. Si un grupo de m variables tiene solo n valores posibles distintos y m>n, ninguna asignación puede satisfacerla.

Para tres celdas con dominios {4,7}, las desigualdades por pares son consistentes de arco: cada 4 tiene soporte 7 en cada vecina y cada 7 tiene soporte 4. Sin embargo, el conteo global falla porque se necesitan tres valores diferentes y solo existen dos.

Si dos celdas tienen ambas el dominio {4,7}, deben usar 4 y 7 entre las dos. Esos valores pueden eliminarse de todas las demás celdas de esa fila. Este razonamiento de par desnudo usa un subconjunto del ámbito completo de Alldiff. Un propagador global simple también puede procesar repetidamente variables con un solo valor, eliminar sus valores de las demás y comprobar si quedan demasiados pocos valores distintos. Los propagadores más fuertes también reconocen subconjuntos restringidos.

Ajusta las cotas numéricas

La propagación de cotas almacena un dominio mediante su mínimo y su máximo. La consistencia de cotas exige que cada extremo tenga una ampliación que satisfaga cada restricción pertinente; no comprueba todos los valores interiores.

Para dos autobuses que transportan 100 personas, sean B1∈[0,50] y B2∈[0,70], con B1+B2=100. El segundo autobús transporta como máximo 70, lo que obliga a B1≥30. El primero transporta como máximo 50, lo que obliga a B2≥50. Las ventanas ajustadas son [30,50] y [50,70].

Para Preparar, Analizar y Elaborar informe, que duran 20, 40 y 30 minutos en ese orden, un plazo de 120 minutos da los inicios más tardíos 30, 50 y 90. Los inicios no negativos dan los inicios más tempranos 0, 20 y 60. La propagación hacia delante y hacia atrás obtiene estas ventanas antes de elegir un tiempo de inicio.

Elige una intensidad útil

Cada celda de Sudoku tiene 20 celdas relacionadas distintas: 8 en su fila, 8 en su columna y 4 celdas adicionales en su caja. En las 81 celdas eso da 81×20/2=810 pares distintos que deben ser diferentes. Las restricciones globales conservan las mismas soluciones que esos pares, pero pueden revelar antes pares desnudos y escasez de valores. Una inferencia más fuerte cuesta más por pasada; los resolvedores prácticos equilibran ese costo con la búsqueda que ahorra, combinando a menudo la consistencia de arcos con la propagación global y de cotas especializada.

Puntos clave

  • La consistencia de caminos comprueba si un par consistente puede ampliarse a una tercera variable.
  • La k-consistencia fuerte incluye todos los niveles de consistencia inferiores.
  • Alldiff detecta grupos con demasiados pocos valores distintos.
  • Un par desnudo reserva sus dos valores para esas dos variables.
  • La propagación de cotas ajusta los extremos sin enumerar un dominio numérico grande.
  • Una inferencia más fuerte intercambia trabajo adicional por pasada por una búsqueda menor.
4

Resuelve CSP mediante búsqueda local

Un horario que incumple unas pocas reglas puede seguir siendo un punto de partida útil. La búsqueda local mantiene un valor para cada variable y repara los conflictos con un movimiento cada vez. El desafío es seleccionar movimientos productivos y escapar de regiones donde se detiene el progreso. Seguirás la heurística de mínimos conflictos en un tablero pequeño, examinarás formas de mantener las reparaciones en marcha y elegirás un método de resolución acorde con la información que necesita una tarea de programación o asignación.

4.1 Repara asignaciones con la heurística de mínimos conflictos

La búsqueda local parte de un valor para cada variable, incluso cuando algunas restricciones no se cumplen. La heurística de mínimos conflictos repara esta asignación completa moviendo una variable en conflicto a un valor con el menor número posible de conflictos.

Elige una reparación
  1. Construye una asignación completa, de forma aleatoria o voraz.
  2. Si no se incumple ninguna restricción, devuelve la solución.
  3. Elige al azar una variable que intervenga en una restricción incumplida.
  4. Evalúa cada uno de sus valores de dominio frente a las otras variables, que permanecen fijas.
  5. Elige un valor con el menor número de conflictos, resuelve los empates al azar y repite hasta alcanzar el éxito o un límite de pasos.

Una variable en conflicto participa en al menos una restricción incumplida. No tiene por qué ser la variable con el mayor número de incumplimientos. La elección aleatoria entre variables en conflicto y valores empatados ayuda a evitar una secuencia repetida y rígida.

Repara un tablero de 4 reinas

Usa una reina por columna, con las variables de fila Q1,Q2,Q3,Q4. Un par está en conflicto si sus filas son iguales o si su diferencia de filas es igual a su diferencia de columnas. Empieza con (2,4,2,3). Las columnas 1 y 3 comparten la fila 2; las columnas 3 y 4 se atacan en diagonal. Las variables en conflicto son Q1, Q3 y Q4.

Elige Q3 y evalúa las filas mientras Q1, Q2 y Q4 permanecen fijas:

Fila candidata para Q3Conflictos que involucran a Q3
10
22
32
43

La fila 1 da (2,4,1,3), una solución. Si se hubiera elegido Q1, sus números para las filas 1–4 serían 0, 1, 2 y 2. Moverla a la fila 1 da (1,4,2,3), con el conflicto diagonal Q3–Q4 restante. Por tanto, una reparación localmente óptima puede dar lugar a otro proceso de reparación incompleto.

Cuenta las restricciones que involucran a la variable seleccionada. Contar todos los incumplimientos de cada tablero resultante da el mismo orden, porque las restricciones no relacionadas aportan una constante a cada candidato. Simplemente requiere más trabajo. Usa una definición consistente de conflicto al comparar candidatos.

Repara un horario existente

Cuando una persona formadora deja de estar disponible, el horario actual ya es una asignación completa. La heurística de mínimos conflictos puede empezar ahí y mover sesiones hasta que se cumplan las restricciones nuevas y las existentes. Un cambio pequeño suele necesitar pocas reparaciones, aunque un movimiento puede crear nuevos conflictos en otra parte. Si importa conservar el plan anterior, asigna un costo explícito a cambiar una asignación; minimizar solo los incumplimientos no minimiza las alteraciones.

Los experimentos con una buena asignación inicial han requerido relativamente pocos pasos de reparación incluso para un millón de reinas. Los tableros más grandes siguen haciendo que cada paso sea más costoso. La heurística de mínimos conflictos también se ha usado para programar el Hubble, con una reducción comunicada de unas tres semanas a unos 10 minutos para programar una semana de observaciones.

Interpreta el comportamiento de la búsqueda

Muchas familias de CSP aleatorios pasan de ser mayormente resolubles a no tener solución en su mayoría a medida que aumenta la proporción de restricciones respecto a variables. Cerca de esa transición, decidir cómo interactúan las elecciones suele ser más difícil. Los problemas con pocas restricciones pueden tener muchas soluciones fáciles de alcanzar. Los problemas sin solución y con muchas restricciones pueden ser rechazados rápidamente por resolvedores completos basados en propagación.

Alcanzar el límite de pasos de mínimos conflictos significa que no se encontró una solución en esa ejecución. El problema aún puede tener solución. La eficacia práctica del método proviene de reparaciones eficientes, incluidos los movimientos con igual puntuación, a pesar de que las soluciones son una fracción diminuta de todas las asignaciones posibles.

Puntos clave

  • La heurística de mínimos conflictos parte de una asignación completa y repara las restricciones incumplidas.
  • Elige una variable en conflicto y después un valor con el menor número de conflictos, resolviendo los empates al azar.
  • Las puntuaciones de los candidatos pueden ignorar las restricciones no relacionadas con la variable elegida.
  • Reparar una asignación para hacerla viable y minimizar los cambios son objetivos diferentes.
  • Un fallo por alcanzar el límite de pasos deja sin resolver si existe una solución.

4.2 Escapa de las mesetas y los mínimos locales, y elige entre la búsqueda local y la búsqueda con retroceso

La búsqueda por reparación puede dejar de mejorar mientras aún quedan conflictos. Para continuar, el resolvedor necesita una forma de moverse por estados con igual puntuación o cambiar qué movimientos parecen convenientes. El resultado requerido también importa: una reparación viable y rápida y una demostración de que no hay solución exigen métodos diferentes.

Muévete por una meseta

Un mínimo local tiene incumplimientos, pero ningún movimiento de una sola variable reduce su número. Una meseta es una región conexa de asignaciones con la misma puntuación. Los movimientos que solo mejoran pueden quedar atrapados; un movimiento lateral cambia el estado sin reducir la puntuación.

Para 4 reinas, (1,4,2,3) tiene un conflicto entre Q3 y Q4. Con las otras reinas fijas, los números de Q3 para las filas 1–4 son 1, 1, 3 y 2; los de Q4 son 2, 2, 1 y 2. Ninguna de las dos variables tiene un movimiento que mejore el resultado.

Mover Q3 a la fila 1 da (1,4,1,3), todavía con un conflicto, ahora Q1–Q3 comparten una fila. En este nuevo estado los números de Q1 son 1, 0, 3 y 1. Mover Q1 a la fila 2 produce (2,4,1,3) y elimina el conflicto. El movimiento lateral cambió los movimientos de mejora disponibles.

Mantén la búsqueda en movimiento
MétodoCómo cambia la búsqueda
Búsqueda tabúProhíbe temporalmente estados o movimientos recientes para reducir los ciclos.
Ponderación de restriccionesAumenta la importancia de las restricciones que siguen incumplidas.
Reinicios aleatoriosEmpieza de nuevo desde una asignación completa diferente después de pasos sin resultados.
Recocido simuladoA veces acepta movimientos peores, con una aceptación que se reduce al bajar la temperatura.

Una lista tabú es una memoria de corta duración. Desalienta el regreso inmediato a un estado que se acaba de abandonar. Un reinicio explora una región diferente, mientras que el recocido puede atravesar una región con más conflictos durante la ejecución actual.

Con la ponderación de restricciones, inicia cada peso en 1 y puntúa un estado mediante la suma de los pesos de sus restricciones incumplidas. Elige un cambio que reduzca esta puntuación ponderada y después aumenta los pesos de las restricciones que siguen incumplidas. Los fallos repetidos se vuelven más costosos y remodelan el paisaje de búsqueda. Una puntuación ponderada de cero sigue significando que se satisfacen todas las restricciones duras con peso positivo.

Elige la información que necesitas

La búsqueda local es incompleta: puede pasar por alto una solución existente y una ejecución finita sin éxito deja sin resolver si no existe solución. El retroceso con propagación en dominios finitos es completo: finalmente encuentra una solución o agota todas las formas posibles de completar la asignación.

Usa la búsqueda local cuando un problema grande con pocas restricciones necesite una asignación viable o una reparación rápida. El retroceso con MRV y MAC es una buena opción para acertijos con muchas restricciones y siempre que la tarea requiera demostrar que no hay solución. El tiempo de ejecución sigue dependiendo de la instancia; estas elecciones de método se basan en sus garantías.

El horario de talleres tiene la solución única A=2,B=3,C=1,D=3,E=2. Añadir C≠1 la elimina. La heurística de mínimos conflictos puede intentar reparaciones hasta su límite, pero solo una búsqueda completa que agote los casos restantes demuestra que la persona organizadora debe cambiar un requisito, por ejemplo añadir otra franja.

Puntos clave

  • Un movimiento lateral puede revelar un movimiento de mejora más allá de una meseta.
  • La memoria tabú, los pesos, los reinicios y el recocido abordan distintos obstáculos al progreso.
  • La búsqueda local es incompleta; el retroceso exhaustivo en dominios finitos es completo.
  • Elige un método completo cuando deba demostrarse que no hay solución.
5

Aprovecha la estructura de un problema

La forma de un grafo de restricciones puede importar tanto como el tamaño de sus dominios. Los componentes separados pueden resolverse de forma independiente, y un árbol permite una pasada de poda hacia atrás seguida de una asignación hacia delante sin retroceso. Los ciclos requieren más trabajo, pero un conjunto de corte pequeño o una descomposición arbórea estrecha pueden controlarlo. Estos métodos relacionan la estructura del grafo con el tiempo necesario para encontrar una asignación consistente.

5.1 Separa subproblemas independientes y resuelve CSP con estructura de árbol

Un grafo de restricciones puede revelar problemas más pequeños dentro de uno grande. Los componentes independientes pueden resolverse por separado, y los componentes acíclicos admiten un algoritmo especialmente eficiente con una pasada de poda hacia atrás y una pasada de asignación hacia delante.

Separa los componentes desconectados

Un componente conexo es independiente cuando ninguna restricción conecta sus variables con otro componente. Resuelve cada componente y después combina una solución de cada uno. Si algún componente no tiene solución, el CSP completo no tiene solución. En el mapa de Australia, Tasmania es independiente del territorio continental.

Con n variables divididas en grupos independientes de tamaño c, obtener una asignación completa requiere trabajo del orden de O((n/c)dc) en vez de O(dn). Para 60 variables binarias divididas en tres grupos de 20, las búsquedas exhaustivas separadas consideran como máximo 3×220=3 145 728 asignaciones en vez de aproximadamente 1,15×1018. Enumerar todas las soluciones combinadas seguiría requiriendo listar las combinaciones; el ahorro describe la resolución de los problemas de los componentes.

Ordena un árbol desde su raíz

Un CSP binario tiene estructura de árbol cuando su grafo de restricciones es acíclico. Un árbol conexo tiene un camino entre cada par de variables; un bosque contiene árboles separados. Aplica primero las restricciones unarias. Elige cualquier raíz y ordena las variables de modo que cada padre aparezca antes que sus hijos.

La consistencia de arcos dirigida en este orden exige que cada variable anterior tenga soporte en cada vecino posterior. En un árbol, esos vecinos posteriores son sus hijos. La dirección del soporte va del padre al hijo, aunque el algoritmo procesa a los hijos antes que a los padres.

Poda hacia atrás y asigna hacia delante
  1. Lee el orden hacia atrás, excluyendo la raíz. Para cada hijo, revisa el arco desde su padre hacia ese hijo. Elimina los valores sin soporte del dominio del padre.
  2. Si un dominio queda vacío, informa de que no hay solución.
  3. Lee el orden hacia delante. Elige cualquier valor restante para la raíz y después da a cada hijo un valor compatible con su padre asignado.

Los descendientes del hijo ya se han procesado cuando se revisa su padre. Por tanto, un valor restante del padre tiene soporte en cada hijo y cada valor de un hijo ya tiene soporte más abajo. Las distintas ramas de hijos no tienen aristas que las conecten, por lo que esos soportes pueden elegirse de forma independiente. Por eso el recorrido hacia delante no necesita retroceso.

Sigue el árbol de los talleres

Fija C=1 en el horario de talleres y elimina 1 de los dominios de los otros talleres. El grafo restante es el camino B–A–D–E, con dominios {2,3} y restricciones A<B,A≠D,D≠E.

Elige la raíz A y el orden A, B, D, E. El recorrido hacia atrás revisa D→E y después A→D, sin cambios. Finalmente, A→B elimina 3 de A porque B no tiene un valor mayor. Asignar hacia delante da A=2,B=3,D=3,E=2. Restaurar C=1 da el horario completo.

Para n variables con tamaño máximo de dominio d, el recorrido hacia atrás revisa n−1 arcos con hasta O(d2) cada uno, lo que da un tiempo O(nd2). La garantía depende de la ausencia de ciclos. Un ciclo puede conectar ramas de hijos separadas e invalidar la independencia que hacía seguras esas elecciones locales.

Puntos clave

  • Los componentes desconectados pueden resolverse de forma independiente y combinarse.
  • El método para árboles primero impone las restricciones unarias y ordena los padres antes que los hijos.
  • El recorrido hacia atrás revisa los arcos de padre a hijo y poda los padres.
  • El recorrido hacia delante elige valores compatibles sin retroceso.
  • La cota de tiempo habitual para CSP con estructura de árbol es O(nd2).

5.2 Reduce a árboles los problemas con estructura casi arbórea

Un grafo con pocos ciclos aún puede estar lo bastante cerca de un árbol como para resolverse eficientemente. El condicionamiento por conjunto de corte asigna primero las variables seleccionadas; la descomposición arbórea agrupa las variables en partes solapadas. Ambos hacen que la coordinación restante tenga forma de árbol.

Condiciona sobre un conjunto de corte de ciclos

Un conjunto de corte de ciclos es un conjunto de variables cuya eliminación deja un árbol o un bosque. Comprueba todos los ciclos restantes, no solo el más visible. Para el mapa de Australia, eliminar SA deja el camino WA–NT–Q–NSW–V más T aislada. Para el grafo de talleres, eliminar C deja B–A–D–E.

Para cada asignación al conjunto de corte que satisfaga sus restricciones internas:

  1. Elimina los valores incompatibles de los dominios restantes.
  2. Resuelve cada árbol restante mediante poda hacia atrás y asignación hacia delante.
  3. Si todos tienen éxito, combina sus asignaciones con los valores del conjunto de corte. En caso contrario, prueba otra asignación del conjunto de corte.

En el problema de los talleres, C=1 deja un árbol resoluble. Con C=2, A y B deben proceder de {1,3} y A<B obliga a A=1,B=3. D debe ser diferente tanto de A como de C, lo que da D=3. E no puede ser 1 y debe ser diferente de C y D, por lo que no queda ningún valor. Con C=3, A y B deben ser 1 y 2; D debe ser entonces 2, lo que vuelve a dejar a E sin valor.

Para un conjunto de corte de tamaño c, hay como máximo dc asignaciones, cada una seguida de un problema de árbol con costo O((n−c)d2). El total es O(dc(n−c)d2). Un c pequeño hace que esto sea útil; sigue siendo exponencial en c. Encontrar un conjunto de corte mínimo es NP-difícil, pero un conjunto de corte válido no mínimo sigue dando un procedimiento correcto.

Une bolsas solapadas

Una descomposición arbórea organiza conjuntos de variables, llamados bolsas, en un árbol. Debe satisfacer tres condiciones:

  • Cada variable aparece en una bolsa.
  • El ámbito de cada restricción cabe dentro de al menos una bolsa.
  • Las bolsas que contienen una misma variable forman una parte conexa del árbol de bolsas.

La tercera regla es la propiedad de intersección continua. Si X aparece en ambos extremos de un camino de bolsas, debe aparecer a lo largo de todo ese camino. De lo contrario, bolsas distantes podrían elegir valores inconsistentes de X sin ninguna comprobación de concordancia intermedia.

Las asignaciones localmente válidas de cada bolsa se convierten en valores de una megavariable. Las bolsas adyacentes deben coincidir en las variables compartidas. El árbol resultante coordina las soluciones locales. Para un triángulo X–Y–Z–X más la arista Z–W, las bolsas {X,Y,Z} y {Z,W} cubren todas las aristas y coinciden en Z.

La anchura arbórea de la descomposición es el tamaño de su bolsa más grande menos 1. La anchura arbórea de un grafo es el mínimo entre las descomposiciones válidas. Para una anchura w, la cota habitual del CSP es O(ndw+1). Una anchura fija y acotada controla el exponente.

Elimina la simetría de valores

Cuando los nombres de los colores no tienen un significado especial, permutar rojo, verde y azul conserva la validez. Las seis soluciones del territorio continental de Australia son seis cambios de nombre de un mismo patrón. Fijar el orden NT antes de SA antes de WA en el orden de colores rojo, verde, azul conserva un representante. Una restricción de ruptura de simetría de este tipo solo es válida cuando el cambio de nombres conserva las reglas originales. Una regla que exija que una región concreta sea roja hace especial ese color y cambia qué permutaciones siguen siendo simetrías.

Puntos clave

  • Un conjunto de corte de ciclos debe eliminar todos los ciclos.
  • El condicionamiento prueba asignaciones del conjunto de corte y resuelve el bosque restante.
  • El costo del condicionamiento es exponencial en el tamaño del conjunto de corte.
  • Las descomposiciones arbóreas cubren las variables y las restricciones y satisfacen la intersección continua.
  • La anchura arbórea es el tamaño máximo de una bolsa menos uno, minimizado entre las descomposiciones del grafo.
  • Rompe la simetría de valores solo para cambios de nombres que conserven las restricciones originales.

Ejemplos de Problemas de satisfacción de restricciones

5 Lecciones Interactivas

1

Construye y comprueba un modelo de CSP

13 pasos
Modela horarios y asignaciones, examina los ámbitos de las restricciones y comprueba si el modelo conserva las reglas reales.
  1. 1
    IntroducciónConvierte una tarea en elecciones

    Un resolvedor necesita una descripción precisa de lo que se puede elegir y de qué combinaciones funcionan. Esa descripción es un conjunto de variables con dominios de valores, más restricciones que cubren cada una un ámbito de variables, y cualquier error en ella se arrastra a toda búsqueda. Construye un horario pequeño y después compáralo con modelos de asignación y de acertijos. El objetivo es hacer visibles las decisiones y sus dependencias antes de intentar resolverlas.

  2. 2
    ExplicaciónNombra cada decisión

    Sean A y B las franjas horarias de dos talleres, cada una en {1,2,3}. A debe preceder a B, por lo que se escribe A<B. Las variables son las elecciones de franja de los talleres; los números son valores.

    El ámbito de la restricción es A y B. Su relación permite los pares (1,2),(1,3),(2,3). Un resolvedor puede usar esa lista de tuplas o la regla de orden para comprobar una candidata.

  3. 3
    EjemploComprueba una asignación candidata

    Con solo A=2, la asignación es parcial y consistente. Elegir B=1 la completa, pero incumple la regla de orden. Elegir B=3 da, en cambio, una asignación completa y consistente.

    Son comprobaciones distintas: cada variable necesita un valor de su dominio y cada restricción debe cumplirse. Una asignación parcial puede superar las comprobaciones actuales y, aun así, no poder completarse.

  4. 4
    Desafío¿Puede completarse la elección parcial?

    Tres variables X, Y y Z tienen dominios {1,2} y restricciones X≠Y,Y≠Z,X≠Z. A X se le asigna 1. ¿Puede ampliarse esta asignación parcial consistente?

    ---reveal---

    No. X por sí sola no incumple ninguna restricción. Completar la asignación obliga tanto a Y como a Z a ser 2, lo que incumple su desigualdad. La consistencia actual y la posibilidad de completar la asignación son requisitos diferentes.

  5. 5
    ConexiónInterpreta las dependencias en el grafo

    Un grafo de restricciones binarias sitúa un nodo en cada variable y una arista en cada par restringido. El triángulo del desafío muestra tres elecciones que interactúan. Una variable aislada no tiene ninguna dependencia binaria de otra variable.

    Este grafo sirve para métodos posteriores: la poda sigue las aristas y los componentes desconectados pueden resolverse de forma independiente. Una restricción de orden superior necesita que se represente todo su ámbito, por ejemplo mediante un nodo de restricción separado.

  6. 6
    ExplicaciónRelaciona la regla con su ámbito

    Una regla unaria restringe un dominio: E≠1 elimina la franja más temprana de Ética. Una regla binaria conecta dos variables: A<B ordena los talleres. Una regla de orden superior como X+Y+Z=10 conecta tres elecciones.

    Una restricción global da una regla con nombre sobre un grupo de tamaño variable. Alldiff exige que cada valor de su ámbito sea diferente de todos los demás.

  7. 7
    Ejemplo¿Por qué conservar Alldiff?

    Tres variables de informe permiten cada una las personas revisoras 1 y 2. A cada par se le pueden asignar personas revisoras diferentes, pero tres informes no pueden usar tres personas revisoras distintas de un conjunto de dos.

    Alldiff revela esta escasez a nivel de grupo. Su forma de desigualdades por pares tiene las mismas soluciones, pero las comprobaciones separadas de pares pueden pasar por alto la contradicción. La representación afecta a la inferencia que puede realizar un resolvedor.

  8. 8
    Desafío¿Requisito o preferencia?

    Un plan de salas debe mantener las reuniones dentro de la capacidad disponible. Una persona organizadora prefiere una sala cerca de la entrada, pero hay disponible una sala adecuada más alejada. ¿Debería hacer inviable el plan elegir la sala más alejada?

    ---reveal---

    No. La capacidad es un requisito duro, mientras que la ubicación es una preferencia blanda. La sala más alejada puede tener un costo de preferencia sin invalidar el plan. La viabilidad sigue exigiendo que se cumplan todas las reglas duras.

  9. 9
    EjemploModela la jornada de talleres

    Usa las variables A–E para Fundamentos de Python, Python avanzado, Estadística, Bases de datos y Ética. Cada una toma la franja 1, 2 o 3.

    Los participantes compartidos dan A≠C,A≠D,C≠D,B≠C,C≠E,D≠E. Fundamentos precede a Avanzado, por lo que A<B. Ética no puede estar en la franja 1, por lo que E≠1. Cada regla conecta exactamente las decisiones que gobierna.

  10. 10
    EjemploVerifica el horario completo

    Prueba A=2,B=3,C=1,D=3,E=2. Los seis pares con participantes compartidos son diferentes. Fundamentos va antes que Avanzado y Ética no está por la mañana. Cada taller tiene una franja permitida, por lo que esta es una solución.

    B y D comparten la franja 3, lo que está permitido porque ninguna restricción los conecta. Añadir una regla que exija que todos los talleres tengan franjas diferentes rechazaría este horario legítimo.

  11. 11
    ExplicaciónEscribe correctamente la condición de no solapamiento

    Si la tarea X dura 20 minutos y la tarea Y dura 35, la máquina compartida permite cualquiera de los dos órdenes:

    SX+20≤SYoSY+35≤SX.

    Cada alternativa compara un tiempo de finalización con el otro tiempo de inicio. Usar «y» exigiría que ambas tareas de duración positiva se precedieran entre sí. Usa una sola regla de precedencia solo cuando el orden de las tareas esté realmente fijado.

  12. 12
    DesafíoConstruye un modelo de asignación

    Tres informes necesitan tres personas revisoras diferentes. La persona revisora 2 tiene un conflicto de intereses con el informe A. ¿Qué variables, dominios y restricciones expresan la tarea?

    ---reveal---

    Usa una variable por informe con valores de personas revisoras 1–3. Elimina 2 del dominio de A y aplica Alldiff a los tres informes. Son una restricción unaria de idoneidad y una regla global de valores distintos; el modelo da a cada informe exactamente una persona revisora.

  13. 13
    RepasoComprueba el modelo antes de buscar

    Identifica las decisiones, enumera sus valores permitidos y escribe los requisitos reales sobre ellas. Comprueba un caso válido y otro inválido. Las reglas duras determinan la viabilidad; los costos de las preferencias guían la optimización. La elección de variables debe facilitar la expresión de estas reglas.

2

Sigue y mejora el retroceso

14 pasos
Sigue las elecciones recursivas, aplica la ordenación de variables y valores y usa explicaciones de conflictos para evitar repetir trabajo fallido.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónConstruye una solución una elección cada vez
  2. 2
    Idea claveBasta una sola variable siguiente
  3. 3
    EjemploInicia la búsqueda con orden fijo
  4. 4
    EjemploReconoce el callejón sin salida
  5. 5
    Desafío¿Qué llamada prueba otro valor?
  6. 6
    ExplicaciónElige la variable con probabilidades de fallar
  7. 7
    EjemploDeja que los dominios determinen el orden de los talleres
  8. 8
    Idea claveMantén abiertas las opciones al elegir el valor
  9. 9
    DesafíoElige un valor después de seleccionar la variable
  10. 10
    EjemploSalta una decisión no relacionada
  11. 11
    ExplicaciónLleva las causas hacia atrás durante la búsqueda
  12. 12
    EjemploAprende una combinación fallida
  13. 13
    DesafíoCompatibiliza la ordenación y el aprendizaje
  14. 14
    RepasoDistingue las mejoras de la búsqueda
3

Sigue la poda desde una decisión hasta un conflicto de grupo

17 pasos
Sigue la comprobación hacia delante, AC-3, MAC y la propagación más fuerte, incluidos los límites de cada nivel de inferencia.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue lo que implica un cambio de dominio
  2. 2
    ExplicaciónPoda los vecinos inmediatos
  3. 3
    EjemploObserva la interacción que se pasa por alto
  4. 4
    DesafíoRestaura exactamente los valores necesarios
  5. 5
    ExplicaciónEl soporte se comprueba del origen al destino
  6. 6
    EjemploInicia una cadena de consecuencias
  7. 7
    EjemploCompleta el cierre de consistencia de arcos
  8. 8
    ConsejoAñade a la cola los arcos que pueden perder soporte
  9. 9
    Desafío¿Qué significa un cierre no vacío?
  10. 10
    ConexiónMantén la consistencia durante la búsqueda
  11. 11
    ExplicaciónComprueba un par frente a una tercera variable
  12. 12
    Idea clavePor qué importa la consistencia fuerte
  13. 13
    EjemploReserva un par de valores
  14. 14
    EjemploPropaga las cotas numéricas en ambas direcciones
  15. 15
    DesafíoDetecta una escasez de valores en el grupo
  16. 16
    DesafíoElige la inferencia que explica el fallo
  17. 17
    RepasoInterpreta cada garantía con precisión
4

Repara un tablero y escapa de una meseta

11 pasos
Ejecuta la heurística de mínimos conflictos, sigue un movimiento lateral y selecciona un método que proporcione la información requerida sobre la viabilidad.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónRepara una candidata completa
  2. 2
    ExplicaciónElige una variable en conflicto
  3. 3
    EjemploLocaliza los ataques en el tablero
  4. 4
    EjemploPuntúa las filas candidatas de una reina
  5. 5
    DesafíoIgnora los conflictos constantes ajenos a la variable
  6. 6
    EjemploLlega a un estado sin movimientos de mejora
  7. 7
    EjemploUsa un movimiento lateral para hacer posible una reparación
  8. 8
    ConsejoRelaciona el método de escape con el obstáculo
  9. 9
    DesafíoElige un resolvedor para decidir si no hay solución
  10. 10
    ConexiónRepara mientras controlas las alteraciones
  11. 11
    RepasoEvalúa el resultado de la reparación
5

Resuelve árboles y controla los ciclos restantes

15 pasos
Sigue la resolución de componentes, los recorridos de árboles, las pruebas de conjuntos de corte y los requisitos de una descomposición arbórea válida.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónUsa el grafo para reducir el trabajo
  2. 2
    ExplicaciónResuelve los componentes independientes por separado
  3. 3
    ExplicaciónEstablece el orden del árbol
  4. 4
    EjemploPoda el árbol de los talleres hacia atrás
  5. 5
    EjemploAsigna los valores restantes hacia delante
  6. 6
    DesafíoDetecta un arco invertido
  7. 7
    ExplicaciónRompe todos los ciclos con un conjunto de corte
  8. 8
    EjemploPrueba el conjunto de corte de los talleres
  9. 9
    Idea claveLos conjuntos de corte pequeños controlan el exponente
  10. 10
    ExplicaciónSustituye los ciclos por bolsas solapadas
  11. 11
    DesafíoComprueba el camino de bolsas
  12. 12
    ConexiónUsa el tamaño de las bolsas para interpretar el costo
  13. 13
    ConexiónElimina nombres de colores intercambiables
  14. 14
    DesafíoCombina un conjunto de corte con la garantía para árboles
  15. 15
    RepasoComprueba la condición estructural

Ejercicios de Problemas de satisfacción de restricciones

40 Preguntas de Práctica en 4 sets

Set 1: Modela elecciones y sigue los algoritmos básicos10 Preguntas de Práctica

Pregunta 1 de 10

Para X+Y+Z=7, una variable auxiliar U contiene todas las tripletas permitidas y está vinculada a X, Y y Z mediante restricciones de igualdad de componentes. Si U=(1,4,2), ¿qué valores se requieren?
  1. X=4,Y=2,Z=1
  2. X=1,Y=2,Z=4
  3. X=1,Y=4,Z=2
  4. X=2,Y=4,Z=1
Mostrar respuestaOcultar respuesta
Respuesta: C
El primer, segundo y tercer componente de U deben ser iguales a X, Y y Z en ese orden. Por tanto, la tupla elegida requiere 1, 4 y 2, respectivamente. Otra permutación también puede sumar 7, pero es incompatible con este valor concreto de la variable auxiliar.

Pregunta 2 de 10

Tres trabajos de reparto J, K y L toman cada uno un valor de {1,2}. La única restricción es J≠K. ¿Cómo debe clasificarse la asignación J=1,K=2?
  1. Completa y consistente
  2. Parcial y consistente
  3. Parcial e inconsistente
  4. Completa e inconsistente
Mostrar respuestaOcultar respuesta
Respuesta: B
Los valores asignados satisfacen la única restricción, por lo que la asignación es consistente. L aún no tiene valor, lo que la hace parcial. Satisfacer todas las restricciones cuyas variables están asignadas no convierte una asignación parcial en completa.

Pregunta 3 de 10

Cuatro canales de sensores deben usar frecuencias diferentes. ¿Cuántas desigualdades por pares expresan el mismo requisito que Alldiff sobre estas cuatro variables?
  1. 4
  2. 8
  3. 12
  4. 6
Mostrar respuestaOcultar respuesta
Respuesta: D
Cada una de las cuatro variables debe ser diferente de cada una de las otras tres, pero contar en ambas direcciones cuenta cada par dos veces. Por tanto, el total es cuatro por tres dividido entre dos, es decir, seis. Cuatro desigualdades comprobarían demasiado pocos pares para imponer todo el requisito.

Pregunta 4 de 10

Las pruebas U y V necesitan el mismo dispositivo durante 12 y 18 minutos. Sus tiempos de inicio no negativos son SU y SV. ¿Qué restricción permite cualquiera de los dos órdenes y evita el solapamiento?
  1. SU+12≤SV o SV+18≤SU
  2. SU+12≤SV y SV+18≤SU
  3. SU+18≤SV o SV+12≤SU
  4. SU+12≤SV o SV+12≤SU
Mostrar respuestaOcultar respuesta
Respuesta: A
La ausencia de solapamiento permite que U termine antes de que V empiece o que V termine antes de que U empiece. Cada tiempo de finalización usa la duración de su propia tarea. Unir los dos órdenes con «y» exigiría que cada prueba de duración positiva terminara antes de que empezara la otra, lo que haría inviable el modelo.

Pregunta 5 de 10

Un resolvedor de CSP en profundidad prueba P=2, explora todas las continuaciones consistentes y comprueba que todas fallan. P también tiene el valor 4 sin probar. ¿Qué debería hacer después el resolvedor?
  1. Mantener P = 2, reintentar hijos
  2. Deshacer P y devolver fallo
  3. Deshacer P = 2 y probar P = 4
  4. Deshacer todo y reiniciar la búsqueda
Mostrar respuestaOcultar respuesta
Respuesta: C
El fallo de todas las continuaciones bajo P = 2 rechaza esa rama, por lo que el resolvedor elimina la elección y prueba P = 4. Devolver fallo desde P de inmediato omitiría un valor sin probar. Las asignaciones anteriores permanecen en su lugar a menos que P acabe agotando todo su dominio.

Pregunta 6 de 10

Las variables sin asignar tienen dominios DH={1,4}, DJ={2} y DK={1,2}. H tiene cuatro vecinos sin asignar, J tiene uno y K tiene tres. Usando MRV con la heurística del grado para desempatar, ¿qué variable va después?
  1. J
  2. H
  3. K
  4. H o K
Mostrar respuestaOcultar respuesta
Respuesta: A
J tiene un valor restante, mientras que H y K tienen dos cada una, por lo que MRV elige J. La heurística del grado solo se usa cuando empatan los tamaños de dominio más pequeños. Elegir H porque tiene más vecinos sin asignar invertiría la prioridad de las dos heurísticas.

Pregunta 7 de 10

Sean DM={1,2,3,4} y DN={2,3,4}, con M<N. Después de asignar M=3, ¿qué dominio deja la comprobación hacia delante para N?
  1. {2,4}
  2. {3,4}
  3. {4}
  4. {2,3}
Mostrar respuestaOcultar respuesta
Respuesta: C
N debe ser mayor que el valor asignado 3, por lo que solo queda 4. Eliminar solo el valor igual 3 dejaría 2, que también incumple la regla de orden. La comprobación hacia delante aplica la relación binaria concreta, ya sea una desigualdad, una precedencia u otra condición.

Pregunta 8 de 10

Una asignación completa tiene cuatro restricciones incumplidas. Una variable seleccionada R participa en una de ellas. Los valores candidatos a, b y c dan a R números de conflictos de 2, 0 y 1, respectivamente. ¿Qué valor selecciona la heurística de mínimos conflictos?
  1. a
  2. c
  3. a o c
  4. b
Mostrar respuestaOcultar respuesta
Respuesta: D
La heurística de mínimos conflictos compara los incumplimientos que involucran a R mientras las otras variables permanecen fijas, por lo que gana b con cero. Los tres incumplimientos no relacionados añaden la misma cantidad a cada estado resultante. Elegir c porque parece reducir el total en solo uno confunde la puntuación local con esa cantidad constante.

Pregunta 9 de 10

Un grafo de restricciones binarias tiene los componentes {U,V} y {W,Z} sin ninguna arista entre ellos. Cada componente tiene una solución. ¿Cómo puede formarse una solución del CSP completo?
  1. Usar solo la solución de un componente
  2. Combinar una solución de cada componente
  3. Exigir valores coincidentes entre componentes
  4. Asignar los mismos valores a ambos componentes
Mostrar respuestaOcultar respuesta
Respuesta: B
Ninguna restricción conecta los componentes, por lo que combinar cualquier solución del primero con cualquier solución del segundo satisface todas las reglas. Exigir que sus valores coincidan añadiría una restricción ausente del modelo. La independencia permite que cada componente elija su propia asignación válida.

Pregunta 10 de 10

Un grafo tiene las aristas P–Q, Q–R, R–S, S–P, R–T, T–U y U–R. Se condicionará sobre una variable para dejar un grafo acíclico. ¿Qué conjunto de corte de una sola variable funciona?
  1. R
  2. P
  3. T
  4. Q
Mostrar respuestaOcultar respuesta
Respuesta: A
Eliminar R rompe tanto el ciclo de cuatro nodos como el triángulo, y deja el camino Q–P–S y la arista separada T–U. Eliminar P o Q rompe solo el ciclo de cuatro nodos y deja intacto R–T–U–R. Un conjunto de corte de ciclos debe eliminar todos los ciclos del grafo.
Set 2: Sigue la propagación y diagnostica una búsqueda fallida10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Las variables P, Q y R tienen dominios DP=DQ={1,2} y DR={1}. Las reglas son P≠Q y Q≠R. ¿Qué ocurre al ampliar la asignación parcial P=1?
  1. Q debe ser 2, así que R = 1 funciona
  2. Q debe ser 1, lo que entra en conflicto con P
  3. Q y R deben ser ambas 2
  4. P debe ser 2 porque R es 1
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Para X<Y, sean DX={2,5} y DY={3,4}. ¿Qué ocurre al revisar el arco X→Y?
  1. Y pierde 3; X permanece sin cambios
  2. X pierde 2; Y permanece sin cambios
  3. X pierde 5; Y permanece sin cambios
  4. Y pierde 4; X permanece sin cambios
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Cuatro variables tienen tres valores cada una. Una búsqueda ramifica sobre cada variable sin asignar y cada valor hasta alcanzar asignaciones completas. ¿Por qué factor reduce el número de hojas elegir una variable por nivel antes de la poda por restricciones?
  1. 4
  2. 12
  3. 81
  4. 24
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

El orden de asignación es A, B, C, D, E, F. F no tiene ningún valor permitido y su conjunto de conflictos es {A,C}. ¿A dónde vuelve el retroceso por saltos simple?
  1. A
  2. C
  3. D
  4. E
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Sean DU=DV=DW={2,5,8}, con U<V y V<W. ¿Qué dominios quedan cuando termina AC-3?
  1. DU={2,5},DV={5},DW={5,8}
  2. DU={2},DV={5},DW={8}
  3. DU={2,5},DV={5,8},DW={2,5,8}
  4. DU={2},DV={2,5},DW={5,8}
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Tres códigos de acceso distintos satisfacen Alldiff⁡(H,J,K), con DH=DJ={2,8} y DK={2,5,8}. ¿Qué valor obliga a tomar a K la propagación global?
  1. 5
  2. 2
  3. 8
  4. 2 o 8
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una ejecución de reparación selecciona la variable T. Sus valores candidatos tienen números locales de incumplimientos 1, 3 y 2, mientras que cuatro restricciones incumplidas no involucran a T. ¿Cuáles son los números totales de incumplimientos de los tres estados resultantes?
  1. 1, 3, 2
  2. 4, 4, 4
  3. 5, 7, 6
  4. 4, 12, 8
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un resolvedor se mueve repetidamente entre dos asignaciones que incumplen cada una una restricción. ¿Qué cambio desalienta directamente volver de inmediato a la asignación que se acaba de abandonar?
  1. Elegir siempre la misma variable en conflicto
  2. Permitir solo movimientos con la misma puntuación
  3. Reiniciar con la misma asignación inicial
  4. Mantener una lista tabú corta de estados recientes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un árbol con raíz es el camino R–S–T–W, con orden R, S, T, W y restricciones R<S,S<T,T<W. Los dominios son DR={1,2,3},DS={2,3,4},DT={3,4},DW={4}. ¿Qué dominios quedan después del recorrido hacia atrás?
  1. DR={1},DS={2},DT={3},DW={4}
  2. DR={1,2},DS={2,3},DT={3},DW={4}
  3. DR={1},DS={2,3},DT={3,4},DW={4}
  4. DR={1,2,3},DS={2},DT={3},DW={4}
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Las bolsas {A,B,C}, {C,D} y {A,D} forman un camino que cubre el ciclo A–B–C–D–A. Las bolsas de los extremos permanecerán fijas. ¿Cuál es el cambio más pequeño en la bolsa central que hace válida la descomposición y qué anchura resulta?
  1. Sustituir C por A; anchura 2
  2. Añadir A a la bolsa central; anchura 2
  3. Eliminar D de la bolsa central; anchura 2
  4. Añadir una bolsa final separada {A}; anchura 2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Aplica los métodos a nuevos patrones de restricciones10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un grafo tiene las aristas A–B, B–C, C–A, C–D, D–E y E–C. Dos bolsas propuestas {A,B,C} y {C,D,E} están unidas por una arista. Con como máximo cinco valores por variable, ¿es válida esta descomposición y qué anchura y cota habitual proporciona?
  1. Inválida; las dos apariciones de C impiden una descomposición arbórea
  2. Válida, anchura 2, con cota O(n53)
  3. Válida, anchura 2, con cota O(n52)
  4. Válida, anchura 3, con cota O(n53)
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un cuadrante debe cubrir todos los turnos requeridos y preferiblemente evitar los turnos tardíos para una persona trabajadora. La preferencia de esa persona es la única restricción blanda. ¿Qué hace viable un cuadrante?
  1. Minimiza solo los turnos tardíos
  2. Satisface la mayoría de las reglas duras
  3. Tiene un costo de preferencia cero
  4. Satisface todas las reglas duras
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un modelo de 5 reinas usa las variables de fila Q1–Q5, una por columna. Una persona propone la candidata (1,3,5,2,4) y dice que aún se necesita una segunda restricción que exija una reina por columna. ¿Cuál es la valoración correcta?
  1. La candidata es válida; las columnas ya están garantizadas
  2. La candidata falla; las columnas 1 y 3 se atacan
  3. La candidata falla; las columnas 2 y 5 se atacan
  4. La candidata es válida; las desigualdades de filas garantizan las columnas
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un resolvedor de retroceso en dominios finitos ha explorado todas las ramas y ha devuelto fallo. Un resolvedor de mínimos conflictos se detuvo después de 2000 movimientos sin éxito. ¿Qué conclusión está justificada para cada ejecución?
  1. Ambas ejecuciones demuestran que no hay solución porque no la encontraron
  2. Ambas ejecuciones dejan abierta la existencia de una solución porque devolvieron fallo
  3. El retroceso demuestra que no hay solución; la búsqueda local deja la cuestión abierta
  4. La búsqueda local demuestra que no hay solución; el retroceso deja la cuestión abierta
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

X e Y, sin asignar, tienen dos valores permitidos cada una; Z tiene tres. X tiene un vecino sin asignar e Y tiene dos. Los valores candidatos de Y eliminan 3 y 1 valores de los dominios vecinos, respectivamente. Con MRV, la heurística del grado y LCV, ¿qué se elige?
  1. El primer valor de X
  2. El segundo valor de Y
  3. El primer valor de Y
  4. El segundo valor de Z
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Las variables P, Q y R tienen dominio {1,2} y restricciones P≠R,Q≠R. U es independiente. Una rama con P=1,Q=2,U=1 falla. En una rama posterior con P=1,U=2, ¿qué restricción sobre Q puede justificarse mediante el aprendizaje de ese fallo?
  1. Rechazar Q = 2 mientras P = 1
  2. Rechazar Q = 1 mientras P = 1
  3. Rechazar Q = 2 en todas las ramas
  4. Permitir cualquier valor de Q después de cambiar U
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Antes de una decisión, Y y Z están sin asignar, tienen dominios {2,6} y deben ser diferentes. Asignar X elimina 6 de ambas mediante las restricciones X–Y y X–Z. ¿Qué informa de inmediato la comprobación hacia delante ordinaria?
  1. Un dominio vacío porque Y y Z deben ser diferentes
  2. Ninguna poda porque Y y Z están sin asignar
  3. Una solución porque todos los valores restantes están fijados
  4. Aún no hay dominios vacíos; Y y Z conservan 2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Sean DA={1,2,3}, DB={2,3} y DC={2}, con A<B y B≠C. ¿Cuáles son los dominios finales de AC-3?
  1. DA={1},DB={3},DC={2}
  2. DA={1,2},DB={2,3},DC={2}
  3. DA={1,2},DB={3},DC={2}
  4. DA={1,2,3},DB={3},DC={2}
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Cuatro variables deben ser todas diferentes. Sus dominios son DJ=DK={1,4}, DL={1,4,7} y DM={4,7,9}. ¿Qué impone la propagación completa de Alldiff?
  1. L=1,M=7
  2. L=7,M=9
  3. L=7,M∈{4,9}
  4. L∈{1,7},M=9
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un plan tiene 6 incumplimientos. Sus movimientos disponibles de una sola variable llevan a puntuaciones 6, 7 y 8. El movimiento de puntuación 6 llega a un estado con un movimiento de puntuación 4. ¿Qué comportamiento de búsqueda puede alcanzar la puntuación 4 sin aumentar primero los incumplimientos?
  1. Permitir un movimiento lateral y después uno de mejora
  2. Exigir una disminución estricta en cada movimiento
  3. Permitir un movimiento peor y después uno de mejora
  4. Cambiar los pesos de las restricciones y mantener fijo el estado
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Combina decisiones, inferencia y reparación10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

El procesamiento dura 16 minutos, seguido de la comprobación durante 24 minutos y después el embalaje durante 10 minutos. Todos los tiempos de inicio son minutos enteros no negativos, se permite tiempo de espera y el embalaje debe terminar antes del minuto 80 o en ese momento. ¿Cuáles son las ventanas ajustadas de tiempo de inicio en ese orden?
  1. [0,64], [16,56], [40,70]
  2. [0,30], [16,40], [40,70]
  3. [0,30], [16,46], [40,70]
  4. [0,40], [16,56], [40,80]
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Las variables sin asignar tienen DA=DB={1,2} y DC={1,2,3}. Las reglas son A≠B y A<C. Usa MRV, la heurística del grado para los empates y LCV. ¿Qué variable y qué valor se eligen?
  1. B = 1
  2. A = 2
  3. C = 3
  4. A = 1
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

El orden de asignación es L, M, N, P, Q. Q falla con el conjunto de conflictos {L,N} y salta a N, cuyo conjunto de conflictos actual es {M}. N agota entonces sus valores sin nuevos contribuyentes al conflicto. ¿A dónde vuelve después el retroceso por saltos dirigido por conflictos?
  1. M
  2. L
  3. P
  4. Q
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Sean DA=DB=DC={1,2,3}, con A≠B,A≠C,B≠C. La comprobación hacia delante sigue a A=1 y después a B=2. Si se deshace B mientras A sigue asignada, ¿qué dominios deben tener B y C antes de probar el siguiente valor de B?
  1. DB={1,2,3},DC={1,2,3}
  2. DB={2,3},DC={2,3}
  3. DB={2,3},DC={3}
  4. DB={2},DC={2,3}
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un CSP binario tiene los dominios DP={1,2}, DQ={1,2} y DR={2,3} con P≠Q,Q<R,P=R. ¿Qué ocurre cuando AC-3 se ejecuta hasta terminar?
  1. Deja P = 1, Q = 2, R = 3
  2. Encuentra un dominio vacío
  3. Deja todos los dominios sin cambios
  4. Deja P = 2, Q = 1, R = 2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Dos cantidades enteras satisfacen U+V=68, con U∈[0,30] y V∈[0,50]. Una nueva regla de capacidad reduce el máximo de V a 42. Después de la propagación de cotas, ¿cuáles son los intervalos ajustados?
  1. U∈[26,30], V∈[38,42]
  2. U∈[18,30], V∈[38,42]
  3. U∈[26,30], V∈[26,42]
  4. U∈[26,38], V∈[30,42]
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una asignación completa satisface todas las reglas anteriores de programación. Una nueva restricción de disponibilidad crea conflictos. La persona organizadora exige que, entre las reparaciones viables, se cambie el menor número de asignaciones. ¿Qué debe incluir el objetivo de reparación?
  1. Solo el número de restricciones incumplidas
  2. Un costo por cambiar cada asignación
  3. Solo el tamaño del dominio de cada variable
  4. Un orden fijo para seleccionar variables
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Las restricciones a, b y c tienen pesos 4, 2 y 1. Tres movimientos candidatos dejan incumplimientos {a}, {b,c} y {c}, respectivamente. Después de elegir el resultado de menor peso y aumentar en 1 el peso de cada restricción que sigue incumplida, ¿qué pesos resultan?
  1. 5, 2, 1
  2. 4, 3, 2
  3. 4, 2, 2
  4. 5, 3, 2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un CSP tiene 24 variables de valores binarios divididas en seis grupos independientes de cuatro. ¿Cuántas asignaciones completas de grupo examinarían como máximo las búsquedas exhaustivas separadas para resolver los grupos?
  1. 16
  2. 64
  3. 96
  4. 256
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Cuatro variables de valores binarios tienen las reglas A=B,B≠C,C=D,A≠D. ¿Cuántas asignaciones completas satisfacen las cuatro reglas?
  1. 2
  2. 0
  3. 4
  4. 8
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

73 Términos Clave, cada uno con su definición

Á

Ámbito de una restricción
El ámbito de una restricción es el conjunto de variables cuyos valores combinados están limitados por la relación permitida de esa restricción.
La regla que indica que la sesión A precede a la sesión B tiene un ámbito que contiene A y B, independientemente de sus dominios.

A

AC-3
AC-3 es un algoritmo basado en una cola que revisa repetidamente arcos dirigidos y vuelve a comprobar los vecinos afectados por las reducciones de dominio.
Después de que X pierde valores, se añaden a la cola los arcos entrantes desde sus otros vecinos porque sus soportes pueden haber desaparecido.
Anchura arbórea
La anchura arbórea de un grafo es el menor tamaño posible de la bolsa más grande menos uno entre todas las descomposiciones arbóreas válidas de ese grafo.
Una descomposición con bolsas de como máximo tres variables muestra que la anchura arbórea del grafo es como máximo dos.
Aprendizaje de restricciones
El aprendizaje de restricciones registra las consecuencias lógicas de los fallos de búsqueda como restricciones o combinaciones prohibidas almacenadas en caché para evitar descubrirlas de nuevo.
Una rama posterior puede rechazar una combinación de colores imposible aprendida incluso después de que hayan cambiado elecciones no relacionadas.
Asignación consistente
Una asignación consistente no incumple ninguna restricción sobre sus valores asignados, aunque puede no ser posible ampliarla hasta una solución completa.
Dos regiones coloreadas pueden ser compatibles aunque sus elecciones dejen una región sin colorear sin ningún color disponible.

B

Búsqueda completa
Una búsqueda completa encuentra una solución cuando existe y puede demostrar que no hay solución al agotar todas las posibilidades finitas necesarias.
Después de que fallen todas las ramas de dominios finitos, el retroceso exhaustivo puede informar de que el horario no es viable.
Búsqueda con retroceso
La búsqueda con retroceso es una búsqueda en profundidad que asigna una variable cada vez y deshace elecciones cuando sus continuaciones fallan.
Cuando ninguna franja funciona para la última sesión, el resolvedor vuelve a una sesión anterior y prueba otra franja.
Búsqueda tabú
La búsqueda tabú prohíbe temporalmente estados o movimientos recientes y usa memoria a corto plazo para desalentar los ciclos repetidos en la búsqueda local.
Un resolvedor evita devolver inmediatamente una sesión a la franja que acaba de dejar cuando eso repetiría el mismo conflicto.

C

Combinación prohibida
Una combinación prohibida es una combinación concreta de asignaciones que no puede ampliarse para satisfacer el CSP, por lo que puede prohibirse.
Dos colores anteriores de regiones pueden obligar conjuntamente a un triángulo a usar solo dos colores, lo que hace que su combinación sea prohibida.
Componente independiente
Un componente independiente es una parte conexa de un grafo de restricciones sin ninguna restricción que conecte sus variables con otro componente.
El nodo aislado de Tasmania puede colorearse después del territorio continental sin comprobar ninguna arista adicional con este.
Comprobación hacia delante
La comprobación hacia delante elimina valores de los vecinos sin asignar cuando entran en conflicto con el valor elegido para la variable recién asignada.
Asignar la franja 2 a una prueba elimina la franja 2 de otra prueba que comparte la misma persona técnica.
Condicionamiento por conjunto de corte
El condicionamiento por conjunto de corte prueba asignaciones al conjunto de corte, poda los dominios restantes y resuelve el árbol o bosque resultante en cada prueba.
Una forma fallida de completar el árbol hace que el resolvedor pruebe otra asignación al conjunto de corte en vez de rechazar inmediatamente todo el CSP.
Conjunto de conflictos
Un conjunto de conflictos identifica las variables anteriores cuyos valores asignados contribuyeron a eliminar las opciones posibles de una variable fallida.
Si los colores de tres regiones vecinas agotan la paleta de una región, esos vecinos anteriores explican su dominio vacío.
Conjunto de corte de ciclos
Un conjunto de corte de ciclos es un conjunto de variables cuya eliminación, junto con sus aristas incidentes, deja un árbol o un bosque sin ciclos.
Eliminar el vértice compartido de dos triángulos rompe ambos ciclos y conserva dos aristas separadas.
Conmutatividad
La conmutatividad de las asignaciones de un CSP significa que asignar los mismos valores a las variables en órdenes diferentes produce el mismo estado final.
Fijar A en 1 antes que B en 3 da el mismo par completo que elegir el valor de B antes que el de A.
Consistencia de arcos
La consistencia de arcos exige que cada valor del origen de un arco binario dirigido tenga un valor compatible en el dominio del destino.
Un tiempo de inicio se elimina cuando la tarea sucesora no tiene ningún tiempo restante lo bastante tardío para satisfacer la precedencia.
Consistencia de arcos dirigida
La consistencia de arcos dirigida exige que cada variable sea consistente de arco con cada vecino con el que comparte una restricción y que aparece después en un orden.
En un orden de árbol con padres antes que hijos, los valores restantes del padre deben tener soporte en el dominio de cada hijo.
Consistencia de caminos
La consistencia de caminos exige que toda asignación consistente a un par de variables pueda ampliarse de forma compatible a cualquier tercera variable en un CSP binario.
Dos colores diferentes en un triángulo de dos colores no dejan ningún color compatible para su tercera región.
Consistencia de cotas
La consistencia de cotas exige que cada extremo del dominio de una variable tenga una ampliación que satisfaga cada restricción que la involucra.
Un intervalo puede tener extremos con soporte aunque algunos de sus valores interiores no satisfagan una restricción.
Consistencia de nodos
La consistencia de nodos significa que cada valor restante en el dominio de una variable satisface todas las restricciones unarias sobre esa variable.
Después de aplicar una prohibición para la mañana, el dominio consistente de nodo de la sesión solo contiene el mediodía y la tarde.
CSP con estructura de árbol
Un CSP con estructura de árbol es un CSP binario con un grafo de restricciones acíclico, lo que permite una poda hacia atrás seguida de una asignación hacia delante.
Una vez fijada una variable de los talleres, el grafo restante de los talleres forma el camino B–A–D–E, que puede resolverse mediante recorridos de árbol.

D

Descomposición arbórea
Una descomposición arbórea organiza bolsas solapadas de variables en un árbol, cubriendo todas las variables y restricciones y manteniendo conectadas las apariciones de cada variable.
Dos bolsas que comparten una variable pueden coordinar sus soluciones locales si coinciden en el valor de esa variable.
Dominio
Un dominio es el conjunto de valores que puede tomar una variable; la propagación puede eliminar los valores incompatibles con las restricciones actuales.
Una sesión tiene inicialmente tres franjas posibles, pero la hora de llegada de la persona que la imparte elimina la más temprana.

F

Formulación con estados completos
Una formulación con estados completos mantiene todas las variables asignadas durante la búsqueda local, mientras permite incumplimientos temporales de restricciones.
Un algoritmo de reparación parte de un horario completo incluso cuando una nueva regla de disponibilidad hace que dos sesiones entren en conflicto.

G

Grafo de restricciones
Un grafo de restricciones representa las variables como nodos y conecta dos nodos cuando sus variables comparten una restricción binaria.
En un grafo de coloreado de mapas, el nodo aislado de una isla revela que su color puede elegirse independientemente de las regiones continentales conectadas.

H

Heurística de los mínimos valores restantes
La heurística de los mínimos valores restantes selecciona una variable sin asignar con el menor número de valores permitidos que quedan bajo las restricciones actuales.
Una sesión con una franja restante se elige antes que una sesión que todavía puede usar tres franjas diferentes.
Heurística de mínimos conflictos
La heurística de mínimos conflictos repara una asignación completa seleccionando una variable en conflicto y dándole un valor con el menor número de incumplimientos.
Una reina se mueve a una fila con el menor número de ataques de las otras reinas, resolviendo al azar los empates de puntuación.
Heurística del grado
La heurística del grado favorece una variable con más restricciones sobre variables sin asignar, habitualmente para resolver un empate en el tamaño del dominio.
Dos regiones tienen dos colores restantes; la región con más vecinos sin colorear gana el desempate por grado.
Heurística del valor menos restrictivo
La heurística del valor menos restrictivo prueba el valor candidato que elimina menos opciones de los dominios vecinos sin asignar.
Una elección de sala que conserva la única sala adecuada para otra reunión se prueba antes que una que la elimina.

K

k-consistencia
La k-consistencia exige que cualquier asignación consistente a cualesquiera k − 1 variables pueda ampliarse de forma consistente a cualquier variable adicional.
En el nivel tres, un par compatible debe dejar para cada tercera variable un valor que sea consistente con ambas.
k-consistencia fuerte
La k-consistencia fuerte significa que un CSP satisface todos los niveles de consistencia del 1 al k, incluidos todos los requisitos de ampliación menores.
La n-consistencia fuerte permite asignar un CSP de n variables con dominios no vacíos sin retroceso y en cualquier orden de variables.

M

Mantenimiento de la consistencia de arcos
El mantenimiento de la consistencia de arcos, o MAC, impone la consistencia de arcos después de cada decisión dentro de la búsqueda con retroceso y restaura los dominios al deshacerla.
Las consecuencias de una decisión pueden propagarse por varias sesiones sin asignar antes de seleccionar la siguiente variable.
Meseta
Una meseta es una región conexa de asignaciones con la misma puntuación de búsqueda local, donde puede no haber movimientos que mejoren estrictamente la puntuación.
Varios movimientos de reinas pueden mantener un ataque antes de que una disposición diferente revele un movimiento que lleve a cero ataques.
Mínimo local
Un mínimo local es una asignación con incumplimientos en la que ningún cambio de una sola variable reduce la puntuación de conflictos elegida.
Un tablero de reinas puede conservar un ataque aunque cada cambio inmediato tenga una puntuación igual o peor.
Modelo factorizado
Un modelo factorizado representa un estado mediante variables y valores separados, lo que permite a un resolvedor examinar las restricciones entre elecciones.
La fila de una reina puede cambiar sin reconstruir una descripción de cada casilla del tablero de ajedrez.
Movimiento lateral
Un movimiento lateral cambia una asignación y deja su puntuación sin cambios, lo que puede abrir el acceso a una mejora posterior.
Mover una reina cambia un ataque diagonal por un ataque en fila y después permite que otra reina resuelva el tablero.

P

Par desnudo
Un par desnudo consiste en dos variables de un mismo ámbito Alldiff limitadas a los mismos dos valores, que quedan reservados para ese par.
Dos celdas de una fila limitadas a 4 y 7 permiten que un resolvedor de Sudoku elimine ambos dígitos de todas las demás celdas de esa fila.
Ponderación de restricciones
La ponderación de restricciones aumenta las penalizaciones de las restricciones que siguen incumplidas y modifica las puntuaciones usadas para elegir reparaciones posteriores.
Un conflicto que sigue sin resolverse se vuelve más costoso y dirige los movimientos posteriores hacia su reparación.
Principio de fallar primero
El principio de fallar primero favorece una decisión temprana que probablemente revele un callejón sin salida, para que la búsqueda evite construir una larga continuación condenada al fracaso.
MRV prueba pronto el dominio casi agotado de una sesión mientras muchas otras elecciones del horario siguen sin asignar.
Problema de asignación
Un problema de asignación relaciona entidades como personas, trabajos o salas y aplica restricciones de idoneidad y de recursos.
Un modelo de revisión de informes elige una persona revisora adecuada para cada informe y puede prohibir que una misma persona revise más de uno.
Problema de optimización con restricciones
Un problema de optimización con restricciones busca una asignación viable con el mejor valor objetivo, como el costo total mínimo de las preferencias.
Un optimizador de cuadrantes puede cubrir todos los turnos requeridos y minimizar el costo de los horarios de trabajo indeseados.
Problema de satisfacción de restricciones
Un problema de satisfacción de restricciones asigna valores de sus dominios a las variables y exige que se cumplan todas las restricciones.
Un CSP de horarios elige una franja para cada taller y aplica las reglas de asistencia y disponibilidad de las personas formadoras.
Programación de taller
La programación de taller asigna tiempos de inicio a tareas y satisface los requisitos de orden y las limitaciones de máquinas o personas compartidas.
Un plan de laboratorio debe ordenar la preparación y el análisis, e impedir que dos análisis usen un mismo instrumento a la vez.
Propagación de cotas
La propagación de cotas ajusta los extremos de los dominios numéricos mediante restricciones, evitando enumerar todos los valores de un intervalo grande.
Cuando dos autobuses comparten un grupo de pasajeros, la capacidad máxima de un autobús impone una cota inferior al número de pasajeros que debe transportar el otro.
Propiedad de intersección continua
La propiedad de intersección continua exige que cada bolsa del camino entre dos apariciones de una variable también contenga esa variable.
Si X aparece en las bolsas de ambos extremos, pero está ausente de la bolsa central, la descomposición propuesta es inválida.
Proporción crítica de restricciones
Una proporción crítica de restricciones marca una región de transición entre instancias mayormente resolubles y otras que en su mayoría no tienen solución en muchas familias de CSP aleatorios.
Las instancias cercanas a esta transición suelen requerir más búsqueda que las que tienen pocas restricciones o las claramente inviables.

R

Recocido simulado
El recocido simulado acepta a veces movimientos de búsqueda local con peor puntuación, con una probabilidad de aceptación que disminuye al bajar la temperatura.
Los movimientos peores al principio pueden permitir escapar de un mínimo local; las decisiones posteriores a menor temperatura favorecen la estabilización en estados mejores.
Recorrido del árbol hacia atrás
Un recorrido del árbol hacia atrás procesa los hijos antes que los padres y revisa los arcos de padre a hijo, eliminando los valores sin soporte de los padres.
La raíz se comprueba frente a un hijo solo después de que los valores posibles de ese hijo reflejen sus descendientes.
Recorrido del árbol hacia delante
Un recorrido del árbol hacia delante elige un valor restante para la raíz y después asigna a cada hijo un valor compatible con su padre asignado.
Las ramas de hijos separadas pueden elegir sus valores de soporte de forma independiente después de que termine la poda hacia atrás.
Registro de deshacer
Un registro de deshacer anota las eliminaciones de dominio causadas por las decisiones de búsqueda para que el resolvedor pueda restaurar los valores correctos durante el retroceso.
Deshacer una decisión posterior restaura sus eliminaciones y conserva las requeridas por una asignación anterior.
Reinicio aleatorio
Un reinicio aleatorio comienza la búsqueda local desde una asignación completa elegida de nuevo después de que el intento actual haya progresado de forma insuficiente.
Después de muchos movimientos en una meseta, el resolvedor empieza desde un tablero completo diferente para explorar otra región.
Relación de una restricción
Una relación de una restricción es el conjunto de combinaciones de valores permitidas para las variables del ámbito de una restricción, expresado mediante tuplas o una regla.
La relación de una regla de precedencia puede enumerar pares de franjas permitidos como (1,2) y (1,3).
Reparación en línea
La reparación en línea parte de una asignación existente y la actualiza cuando cambian los requisitos, buscando restablecer un plan viable.
Cuando una persona técnica deja de estar disponible, el resolvedor puede reparar el horario actual en vez de construir uno nuevo.
Restricción binaria
Una restricción binaria limita las combinaciones de valores permitidas para dos variables, por ejemplo su orden o si sus valores son diferentes.
Dos pruebas que comparten una persona técnica necesitan una regla binaria que impida que sus tiempos de ejecución se solapen.
Restricción blanda
Una restricción blanda expresa una preferencia cuyo incumplimiento aporta un costo que se usa para comparar asignaciones que, por lo demás, son viables.
Una preferencia por la tarde puede incumplirse cuando situar la sesión por la mañana es necesario para satisfacer todas las reglas duras.
Restricción de orden superior
Una restricción de orden superior limita una combinación de valores que involucra al menos tres variables dentro de una misma relación.
Una regla que exige que las duraciones de tres tareas sumen diez horas vincula las tres variables de duración.
Restricción de precedencia
Una restricción de precedencia exige que una tarea termine antes de que empiece otra y relaciona su tiempo de inicio y duración con el siguiente inicio.
Una tarea de preparación de 20 minutos que empieza en el minuto 5 hace que el minuto 25 sea el inicio más temprano del análisis.
Restricción de ruptura de simetría
Una restricción de ruptura de simetría conserva representantes de soluciones equivalentes al restringir elecciones que solo difieren mediante una simetría válida.
Fijar un orden de colores en un conjunto de tres regiones todas vecinas elimina permutaciones repetidas de nombres de colores cuando estos son intercambiables.
Restricción de todos diferentes (Alldiff)
Alldiff es una restricción global que exige que todas las variables de su ámbito tomen valores de sus dominios diferentes por pares.
Tres informes asignados mediante Alldiff no pueden dar a una misma persona revisora más de uno de esos informes.
Restricción disyuntiva
Una restricción disyuntiva exige que se cumpla al menos una relación alternativa, como cualquiera de dos órdenes posibles sin solapamiento.
Dos tareas que usan una máquina pueden ejecutar X antes que Y o Y antes que X, siempre que sus intervalos de ejecución no se solapen.
Restricción dura
Una restricción dura es un requisito obligatorio que toda asignación viable debe satisfacer, independientemente de los costos de las preferencias.
Un límite de capacidad de una sala sigue siendo obligatorio incluso cuando incumplirlo haría el horario más conveniente.
Restricción global
Una restricción global es una relación con nombre definida sobre un grupo de tamaño variable, a menudo con un método especializado para podar dominios.
Alldiff permite que un resolvedor reconozca que tres celdas no pueden ser todas diferentes cuando solo quedan dos dígitos.
Restricción unaria
Una restricción unaria limita los valores de una variable y puede imponerse eliminando los valores no permitidos de su dominio.
La regla que indica que una sesión no puede empezar antes del mediodía elimina las opciones de la mañana antes de cualquier decisión de búsqueda.
Retroceso cronológico
El retroceso cronológico vuelve desde un callejón sin salida a la variable asignada más recientemente, independientemente de la causa del fallo.
En la coloración de mapas, un resolvedor puede reconsiderar el color de una región independiente antes de volver a la elección que causó un conflicto.
Retroceso por saltos
El retroceso por saltos vuelve desde una variable fallida al miembro de su conjunto de conflictos asignado más recientemente y salta las decisiones no relacionadas.
Un fallo de coloración en el territorio continental permite que el resolvedor omita reconsiderar una isla sin aristas de restricciones.
Retroceso por saltos dirigido por conflictos
El retroceso por saltos dirigido por conflictos combina explicaciones de conflictos de distintos niveles fallidos para identificar una decisión anterior responsable.
Una causa descubierta por debajo de una elección independiente puede llevarse hacia atrás hasta que la búsqueda llegue a una variable pertinente.
Revisión de un arco
Una revisión de un arco elimina los valores del dominio de origen que carecen de soporte en el dominio actual del destino según la relación binaria correspondiente.
Revisar X→Y cambia el dominio de X; la dirección opuesta debe comprobarse por separado.

S

Simetría de valores
La simetría de valores ocurre cuando cambiar los nombres de valores de dominio intercambiables conserva las restricciones originales y transforma soluciones en soluciones.
Cambiar los nombres de tres colores de un mapa produce coloraciones equivalentes cuando ninguna regla da un papel especial a un color.
Solución
Una solución es una asignación que da a cada variable un valor de su dominio y satisface todas las restricciones al mismo tiempo.
Una cuadrícula de Sudoku completamente rellenada es una solución solo cuando cumplen las reglas todas las filas, columnas y cajas, y se respetan todos los dígitos dados.
Soporte
Un soporte es un valor de un dominio vecino que satisface la restricción binaria que los conecta junto con un valor concreto del origen.
Para X<Y, Y igual a 4 da soporte a X igual a 3, mientras que Y igual a 2 no lo hace.

V

Vaciado del dominio
Un vaciado del dominio ocurre cuando la poda deja a una variable sin ningún valor disponible, lo que demuestra un fallo bajo las restricciones actuales.
Una sesión pierde su última franja compatible después de asignar una sesión vecina, por lo que la rama se detiene.
Variable
Una variable nombra una decisión cuyo valor debe elegirse como parte de una solución de un problema de satisfacción de restricciones.
En un modelo de asignación de salas, cada reunión puede ser una variable cuyo valor indica la sala asignada.
Variable en conflicto
Una variable en conflicto participa en al menos una restricción incumplida en la asignación completa actual que usa la búsqueda local.
Cada una de dos reuniones reservadas en la misma sala a la misma hora está en conflicto, aunque solo una necesite moverse para resolverlo.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar