Title: Relajaci
1Relajación y Procesamiento híbrido de
restricciones
- Diferentes técnicas de relajación
- Algunas técnicas híbridas populares
2Relajación
- Consistencia de nodo
- Forward check
- Lookahead check
- AC1
- AC3
- Path-consistency
3Ejemplo
- 4 familias A, B, C y D viven unas junto a otras
en casas numeradas 1, 2, 3 y 4. - D vive en una casa con número más bajo que B,
- B vive al lado de A en una casa con número
mayor, - Hay al menos una casa entre B y C,
- D no vive en la casa con número 2,
- C no vive en la casa con número 4.
- Cuál familia vive en cuál casa ?
4Representación
- Las variables A, B, C y D
- Los dominios dA dB dC dD 1, 2, 3, 4
5Consistencia de nodos
- O consistencia-1
- (solo 1 variable involucrada)
- Las restricciones unarias son eliminadas por
reducción del dominio
6Red de restricciones
7Relajación débil
- Forward Check
- Lookahead Check
8Forward Check
- Asuma que fijamos el valor de 1 variable zi zi
a
- Forward Check(zi)
- activar cada restricción r(zi, zj) o r(zj, zi)
una vez para remover los valores inconsistentes
con zi a
- Nuestro ejemplo asumir A 2
9Forward check consistencia débil
- Requiere que 1 variable ya haya obtenido un valor
- sugiere el uso en combinación con backtracking
- No produce un estado consistente
- no se realiza toda la relajación
10Look ahead check
- Método de relajación más fuerte (débil)
11Look ahead Check
- Look Ahead Check
- activar cada restricción r(zi, zj) exactamente
una vez para remover los valores inconsistentes
de los dominios Di y Dj.
12Ejemplo (continuac.)
- Las otras 3 restricciones
13Look ahead resultados finales
- Aun no produce un estado consistente
- no se realiza toda la relajación
- El resultado puede depender del orden en el cual
se procesan las restricciones. - La remoción de algunos valores inicialmente
puede permitir hallar otros inconsistentes.
14Técnicas de consistencia de arco
- Técnicas que reducen los dominios a estados
consistentes para cada restricción (o arco). - También llamadas técnicas consistencia-2
15AC 1 (Mackworth)
AC1
Repeat
Ocurrió_borrado falso
Look ahead check
If algún valor fue removido de algún
dominio then
Ocurrió_borrado verdad
Until (not Ocurrió_borrado)
- Fuerza a que Look ahead alcance un estado
consistente - por reactivación de Look ahead hasta consistencia
16El ejemplo (1)
- Primera pasada ( Look ahead check)
17El ejemplo (2)
18El ejemplo (3)
- Resultado A (2 o 3) , B (3 o 4), C (1 o 2), D (1
o 3)
- Consistente, pero NO REALMENTE UNA SOLUCIÓN !!
19AC-3 (Mackworth)Consistencia de arco más
eficiente
AC3
COLA todas las restricciones en el problema
Remover r(x,y) de COLA
Remover todos los valores inconsistentes de
los dominios Dx y Dy con respecto a r(x,y)
End-While
20El ejemplo (1)
- COLA r(A,B), r(A,C), r(A,D), r(B,C), r(B,D),
r(C,D)
- Para agregar r(A,C), r(A,D), r(B,C), r(B,D)
- COLA r(A,C), r(A,D), r(B,C), r(B,D), r(C,D)
21El ejemplo (2)
- COLA r(A,C), r(A,D), r(B,C), r(B,D), r(C,D)
- COLA r(B,C), r(B,D), r(C,D)
22El ejemplo (3)
- COLA r(B,C), r(B,D), r(C,D)
- Para agregar r(A,B), r(A,C), r(B,D), r(C,D)
- COLA r(B,D), r(C,D), r(A,B), r(A,C)
23El ejemplo (4)
- COLA r(B,D), r(C,D), r(A,B), r(A,C)
- Para agregar r(A,D), r(C,D)
- COLA r(C,D), r(A,B), r(A,C), r(A,D)
24El ejemplo (5)
- COLA r(C,D), r(A,B), r(A,C), r(A,D)
- Para agregar r(A,C), r(A,D)
25El ejemplo (6)
PARAR !
26Comparación
- Igual resultado completa consistencia de arco
- A 2,3, B 3,4, C 1,2, D 1,3
- Eficiencia
- AC1
- 3 veces 6 verificaciones 18
- AC3
- 9 verificacíones de restricciones
27Consistencia-k
- consistencia-1 (consistencia de nodo)
- restricciones unarias (en 1 variable) son
consistentes
- consistencia-2 (consistencia de arco)
- restricciones binarias (en 2 variables) son
consistentes - consistencia-3
- todas las restricc. que involucran 3 variables
son consist.
Ejemplo
- Un valor se mantiene en el dominio si hay valores
consistentes en los dominios de las otras 2
variables (para todas las restricciones que las
conectan)
28Practicidad de la consistencia k
- Verificar la consistencia-k para k ? 2 es muy
dificil de realizar eficientemente !!
- Ejemplo consistencia-4 para el enigma de las 4
casas es equivalente a hallar soluciones del
problema original.
29Procesamiento híbrido de restricciones
- Combina el poder de la
- búsqueda exhaustiva (backtrack)
- con (relajación) poda
30Forward checking
- Backtracking combinado con Forward Check
31Forward checking
Forward Checking
Execute Standard Backtracking
BUT
After cada asignación de un valor a una
variable zi DO
Forward Check(zi)
32Funcionamiento de forward checking
falla
falla
falla
exito
33Lookahead checking
- Backtracking combinado con Look ahead check
34Lookahead checking
Lookahead Checking
Look Ahead Check
Execute Standard Backtracking
BUT
Look Ahead Check
35Funcionamiento de lookahead checking
falla
falla
exito
36Cuál es mejor?
- Forward checking
- hace menos verificación de consistencia
- tiene mas ramificación
- más cercano a backtracking
- Lookahead checking
- lleva más tiempo con consistencia
- intenta menos valor alternativos
- Usualmente forward checking es la mejor solución
de compromiso - Para problemas MUY restringidos
- Lookahead checking es necesario para podar más
37Aplicaciones
- Todos los problemas de búsqueda combinatorios
- Problemas de distribución de tareas
- Ej. redistribución de horario de trenes cuando
ha ocurrido algun problema en las vías.
- Problemas de distribución de trabajos
- Ej. computar turnos de trabajo, dadas varias
res- - tricciones de expertise y preferencias
personales
- Planeamiento de producción
- Ej. planificar el flujo óptimo de trabajo
- Problemas de carga
- Ej. optimizar el espacio en un camión dados
varios tipos de cargas
38Técnicas alternativas
- técnicas numéricas para la resolución de
sistemas de ecuaciones lineales (e inecuaciones)
problemas de optimización - Ej. algoritmo simplex
- Funciona MUY bien para restricciones lineales
- Funciona, pero no MUY bien, para problemas
discretos
- En tales casos Procesam. de Restricc. es una
mejor opción
- También para problemas de restricciones en datos
no-numericos !