- Aprender
- Informática
- Ciencias de la computación
- Inteligencia artificial
- Problemas de satisfacción de restricciones
Problemas de satisfacción de restricciones
IntermedioUnidad 3 de 10 del curso Curso de Inteligencia artificial
Lo que aprenderás
- 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 restriccionesIdentifica 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 restriccionesClasifica 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 CSPConvierte 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.
- Describe los componentes de un problema de satisfacción de restricciones
- 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 pasoExplica 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ónAplica 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 salidaUsa 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.
- Ejecuta una búsqueda con retroceso paso a paso
- 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úsquedaPoda 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-3Aplica 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 globalesExplica la consistencia de caminos y la k-consistencia, propaga restricciones Alldiff y de cotas, y sopesa la poda adicional frente a su costo.
- Aplica la comprobación hacia delante durante la búsqueda
- 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 conflictosEjecuta 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 retrocesoUsa movimientos laterales, búsqueda tabú, ponderación de restricciones y reinicios, y decide qué método se ajusta a un problema dado.
- Repara asignaciones con la heurística de mínimos conflictos
- 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 árbolEncuentra 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óreaAplica 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.
- Separa subproblemas independientes y resuelve CSP con estructura de árbol
Guía de estudio de Problemas de satisfacción de restricciones
1Formula 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 . La regla «A va antes que B» tiene ámbito y relación . Escribir 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 , la asignación es consistente pero parcial. Ampliarla con la hace completa e inconsistente. Elegir 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 variables con valores cada una, hay asignaciones completas. El mapa tiene 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 .
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 reduciendo su dominio de a antes de la búsqueda. Una restricción binaria relaciona dos variables, como o . 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 . Con cada duración en , la tupla no cumple la restricción, mientras que 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. exige valores diferentes para cada par. Su conjunto de soluciones equivale al conjunto definido por 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í significa : 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, .
Convierte una restricción finita a forma binaria
Introduce una variable auxiliar U cuyos valores sean las tripletas permitidas para . Un valor posible es . 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 , y .
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
| Tipo | Qué significa | Ejemplo de programación de tareas |
|---|---|---|
| Restricción dura | Toda solución debe satisfacerla. | Una persona formadora no puede impartir dos talleres a la vez. |
| Restricción blanda | Un 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 .
Los participantes compartidos exigen , , , , y . Fundamentos debe preceder a Avanzado, por lo que . La persona que imparte Ética llega al mediodía, por lo que . Esto da siete aristas binarias y una regla unaria; C tiene cuatro vecinos.
La asignación 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 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 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
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 , y .
Dos tareas que comparten una máquina necesitan una restricción disyuntiva: o . 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 la fila de la reina en la columna . Una reina por columna está incorporada al modelo. Para cada par, exige y para impedir ataques en filas y diagonales. Para ocho reinas esto reduce el espacio de candidatos de elegir 8 casillas de 64, colocaciones, a 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.
2Resuelve 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 hojas para solo 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
- Si la asignación es completa y consistente, devuélvela.
- Elige una variable sin asignar.
- Prueba cada valor del dominio que sea consistente con la asignación actual.
- 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.
- 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 y B sin asignar, no tiene ningún par completo que rechazar. Al probar , 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: . Toma las variables en el orden A, B, C, D, E y prueba los valores 1, 2, 3.
- Fija . Rechaza y elige .
- Rechaza por A y por B; elige .
- Rechaza por A; elige .
- 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 se llega finalmente a otro callejón sin salida con . La búsqueda prueba entonces y llega a . Con este orden, el retroceso básico prueba 32 valores candidatos en total, incluidos los rechazados.
Qué garantiza el método
| Propiedad | Retroceso básico en dominios finitos |
|---|---|
| Completitud | Encuentra una solución si existe; agotar la búsqueda demuestra que no hay solución. |
| Tamaño de búsqueda en el peor caso | Exponencial, asignaciones en la cota habitual. |
| Memoria del camino de búsqueda | Lineal en ; 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ón | Elección preferida | Motivo |
|---|---|---|
| Siguiente variable | Menos valores restantes | Revelar pronto un fallo probable. |
| Variable empatada | Más vecinos sin asignar | Afectar a más decisiones restantes. |
| Siguiente valor | Menos valores eliminados de los vecinos | Conservar 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 tiene dos valores; A, B, C y D tienen tres cada una. MRV elige E. Prueba y la comprobación hacia delante elimina 2 de C y D.
C y D empatan ahora con dominios . C tiene tres vecinos sin asignar, A, B y D; D tiene dos, A y C. La heurística del grado selecciona C. Elige , con lo que quedan y . MRV elige , lo que obliga a ; la regla de precedencia da entonces . 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 : 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 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.
3Poda 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 , examina cada Y sin asignar que comparta una restricción con X. Elimina cada valor de 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 , asignar elimina 2 de Y. Para , asignar 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 . Aplica la regla unaria para obtener y después usa el orden fijo A, B, C, D, E.
- deja a B, C y D con .
- deja a C con .
- deja tanto a D como a E con .
- elimina 2 de E y vacía su dominio. Retrocede.
Restaurar los dominios y probar 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 , puede llegar a . 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 vecinos y como máximo valores por vecino, una pasada de comprobación hacia delante usa unas 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 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 con ambos dominios , revisar elimina 3 de A. Revisar elimina 1 de B. Los dominios resultantes son y . 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:
- Pon inicialmente todos los arcos en la cola.
- Extrae y revisa X usando el dominio de Y.
- Si X queda vacío, detente e informa de un fallo.
- Si X se reduce, añade para cada otro vecino Z de X, excepto Y.
- 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 , la ejecución inicial de AC-3 elimina 3 de A y 1 de B. Deja a C y D con y a E con .
Ahora decide . El arco elimina 1 de A y deja . Revisar B frente a A obliga a . D es diferente de C y de A, por lo que . E es diferente de D y no puede ser 1, por lo que . 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 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 arcos | Significado |
|---|---|
| Un dominio vacío | Ninguna solución amplía las restricciones actuales. |
| Cada dominio tiene un solo valor | La única asignación restante satisface el CSP binario. |
| Algunos dominios tienen varios valores | Puede 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 restricciones binarias y un tamaño máximo de dominio , AC-3 tarda : una revisión de arco comprueba hasta pares, y cada arco puede requerir hasta 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 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 .
- 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 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 , ninguna asignación puede satisfacerla.
Para tres celdas con dominios , 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 , 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 y , con . El segundo autobús transporta como máximo 70, lo que obliga a . El primero transporta como máximo 50, lo que obliga a . Las ventanas ajustadas son y .
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 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.
4Resuelve 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
- Construye una asignación completa, de forma aleatoria o voraz.
- Si no se incumple ninguna restricción, devuelve la solución.
- Elige al azar una variable que intervenga en una restricción incumplida.
- Evalúa cada uno de sus valores de dominio frente a las otras variables, que permanecen fijas.
- 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 . 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 . 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 Q3 | Conflictos que involucran a Q3 |
|---|---|
| 1 | 0 |
| 2 | 2 |
| 3 | 2 |
| 4 | 3 |
La fila 1 da , 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 , 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, 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 , 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 y elimina el conflicto. El movimiento lateral cambió los movimientos de mejora disponibles.
Mantén la búsqueda en movimiento
| Método | Cómo cambia la búsqueda |
|---|---|
| Búsqueda tabú | Prohíbe temporalmente estados o movimientos recientes para reducir los ciclos. |
| Ponderación de restricciones | Aumenta la importancia de las restricciones que siguen incumplidas. |
| Reinicios aleatorios | Empieza de nuevo desde una asignación completa diferente después de pasos sin resultados. |
| Recocido simulado | A 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ñadir 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.
5Aprovecha 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 en vez de . Para 60 variables binarias divididas en tres grupos de 20, las búsquedas exhaustivas separadas consideran como máximo asignaciones en vez de aproximadamente . 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
- 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.
- Si un dominio queda vacío, informa de que no hay solución.
- 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 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 y restricciones .
Elige la raíz A y el orden A, B, D, E. El recorrido hacia atrás revisa y después , sin cambios. Finalmente, elimina 3 de A porque B no tiene un valor mayor. Asignar hacia delante da . Restaurar da el horario completo.
Para n variables con tamaño máximo de dominio d, el recorrido hacia atrás revisa arcos con hasta cada uno, lo que da un tiempo . 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 .
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:
- Elimina los valores incompatibles de los dominios restantes.
- Resuelve cada árbol restante mediante poda hacia atrás y asignación hacia delante.
- 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, deja un árbol resoluble. Con , A y B deben proceder de y obliga a . D debe ser diferente tanto de A como de C, lo que da . E no puede ser 1 y debe ser diferente de C y D, por lo que no queda ningún valor. Con , 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 asignaciones, cada una seguida de un problema de árbol con costo . El total es . 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 y 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 . 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
1Construye y comprueba un modelo de CSP
13 pasos
- 1Introducció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.
- 2ExplicaciónNombra cada decisión
Sean A y B las franjas horarias de dos talleres, cada una en . A debe preceder a B, por lo que se escribe . 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 . Un resolvedor puede usar esa lista de tuplas o la regla de orden para comprobar una candidata.
- 3EjemploComprueba una asignación candidata
Con solo , la asignación es parcial y consistente. Elegir la completa, pero incumple la regla de orden. Elegir 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.
- 4Desafío¿Puede completarse la elección parcial?
Tres variables X, Y y Z tienen dominios y restricciones . 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.
- 5Conexió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.
- 6ExplicaciónRelaciona la regla con su ámbito
Una regla unaria restringe un dominio: elimina la franja más temprana de Ética. Una regla binaria conecta dos variables: ordena los talleres. Una regla de orden superior como 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.
- 7Ejemplo¿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.
- 8Desafí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.
- 9EjemploModela 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 . Fundamentos precede a Avanzado, por lo que . Ética no puede estar en la franja 1, por lo que . Cada regla conecta exactamente las decisiones que gobierna.
- 10EjemploVerifica el horario completo
Prueba . 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.
- 11Explicació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:
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.
- 12Desafí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.
- 13RepasoComprueba 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.
2Sigue y mejora el retroceso
14 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónConstruye una solución una elección cada vez
- 2Idea claveBasta una sola variable siguiente
- 3EjemploInicia la búsqueda con orden fijo
- 4EjemploReconoce el callejón sin salida
- 5Desafío¿Qué llamada prueba otro valor?
- 6ExplicaciónElige la variable con probabilidades de fallar
- 7EjemploDeja que los dominios determinen el orden de los talleres
- 8Idea claveMantén abiertas las opciones al elegir el valor
- 9DesafíoElige un valor después de seleccionar la variable
- 10EjemploSalta una decisión no relacionada
- 11ExplicaciónLleva las causas hacia atrás durante la búsqueda
- 12EjemploAprende una combinación fallida
- 13DesafíoCompatibiliza la ordenación y el aprendizaje
- 14RepasoDistingue las mejoras de la búsqueda
3Sigue la poda desde una decisión hasta un conflicto de grupo
17 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónSigue lo que implica un cambio de dominio
- 2ExplicaciónPoda los vecinos inmediatos
- 3EjemploObserva la interacción que se pasa por alto
- 4DesafíoRestaura exactamente los valores necesarios
- 5ExplicaciónEl soporte se comprueba del origen al destino
- 6EjemploInicia una cadena de consecuencias
- 7EjemploCompleta el cierre de consistencia de arcos
- 8ConsejoAñade a la cola los arcos que pueden perder soporte
- 9Desafío¿Qué significa un cierre no vacío?
- 10ConexiónMantén la consistencia durante la búsqueda
- 11ExplicaciónComprueba un par frente a una tercera variable
- 12Idea clavePor qué importa la consistencia fuerte
- 13EjemploReserva un par de valores
- 14EjemploPropaga las cotas numéricas en ambas direcciones
- 15DesafíoDetecta una escasez de valores en el grupo
- 16DesafíoElige la inferencia que explica el fallo
- 17RepasoInterpreta cada garantía con precisión
4Repara un tablero y escapa de una meseta
11 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónRepara una candidata completa
- 2ExplicaciónElige una variable en conflicto
- 3EjemploLocaliza los ataques en el tablero
- 4EjemploPuntúa las filas candidatas de una reina
- 5DesafíoIgnora los conflictos constantes ajenos a la variable
- 6EjemploLlega a un estado sin movimientos de mejora
- 7EjemploUsa un movimiento lateral para hacer posible una reparación
- 8ConsejoRelaciona el método de escape con el obstáculo
- 9DesafíoElige un resolvedor para decidir si no hay solución
- 10ConexiónRepara mientras controlas las alteraciones
- 11RepasoEvalúa el resultado de la reparación
5Resuelve árboles y controla los ciclos restantes
15 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónUsa el grafo para reducir el trabajo
- 2ExplicaciónResuelve los componentes independientes por separado
- 3ExplicaciónEstablece el orden del árbol
- 4EjemploPoda el árbol de los talleres hacia atrás
- 5EjemploAsigna los valores restantes hacia delante
- 6DesafíoDetecta un arco invertido
- 7ExplicaciónRompe todos los ciclos con un conjunto de corte
- 8EjemploPrueba el conjunto de corte de los talleres
- 9Idea claveLos conjuntos de corte pequeños controlan el exponente
- 10ExplicaciónSustituye los ciclos por bolsas solapadas
- 11DesafíoComprueba el camino de bolsas
- 12ConexiónUsa el tamaño de las bolsas para interpretar el costo
- 13ConexiónElimina nombres de colores intercambiables
- 14DesafíoCombina un conjunto de corte con la garantía para árboles
- 15RepasoComprueba la condición estructural
Ejercicios de Problemas de satisfacción de restricciones
Set 1: Modela elecciones y sigue los algoritmos básicos10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
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
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
Á
Ámbito de una restricción
A
AC-3
Anchura arbórea
Aprendizaje de restricciones
Asignación consistente
B
Búsqueda completa
Búsqueda con retroceso
Búsqueda tabú
C
Combinación prohibida
Componente independiente
Comprobación hacia delante
Condicionamiento por conjunto de corte
Conjunto de conflictos
Conjunto de corte de ciclos
Conmutatividad
Consistencia de arcos
Consistencia de arcos dirigida
Consistencia de caminos
Consistencia de cotas
Consistencia de nodos
CSP con estructura de árbol
D
Descomposición arbórea
Dominio
F
Formulación con estados completos
G
Grafo de restricciones
H
Heurística de los mínimos valores restantes
Heurística de mínimos conflictos
Heurística del grado
Heurística del valor menos restrictivo
K
k-consistencia
k-consistencia fuerte
M
Mantenimiento de la consistencia de arcos
Meseta
Mínimo local
Modelo factorizado
Movimiento lateral
P
Par desnudo
Ponderación de restricciones
Principio de fallar primero
Problema de asignación
Problema de optimización con restricciones
Problema de satisfacción de restricciones
Programación de taller
Propagación de cotas
Propiedad de intersección continua
Proporción crítica de restricciones
R
Recocido simulado
Recorrido del árbol hacia atrás
Recorrido del árbol hacia delante
Registro de deshacer
Reinicio aleatorio
Relación de una restricción
Reparación en línea
Restricción binaria
Restricción blanda
Restricción de orden superior
Restricción de precedencia
Restricción de ruptura de simetría
Restricción de todos diferentes (Alldiff)
Restricción disyuntiva
Restricción dura
Restricción global
Restricción unaria
Retroceso cronológico
Retroceso por saltos
Retroceso por saltos dirigido por conflictos
Revisión de un arco
S
Simetría de valores
Solución
Soporte
V
Vaciado del dominio
Variable
Variable en conflicto
- 1Agentes inteligentes
- 2Búsqueda no informada e informada
- 3Problemas de satisfacción de restricciones
- 4Búsqueda entre adversarios
- 5Agentes lógicos y planificación
- 6Redes bayesianas
- 7Modelos ocultos de Markov
- 8Aprendizaje por refuerzo
- 9Aprendizaje supervisado y redes neuronales
- 10Ética, seguridad y gobernanza de la IA
Sobre esta unidad
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.