Tema 5 - dccia
Tema 5 - dccia
Tema 5 - dccia
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
<strong>Tema</strong> 5<br />
Satisfacción de Restricciones<br />
• Introducción<br />
• Formulación de CSPs como redes de<br />
restricciones<br />
• Esquema backtracking<br />
• Esquema de propagación de restricciones<br />
• Conclusiones<br />
1
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Introducción<br />
• Gran cantidad de problemas en I.A.<br />
pueden verse como casos especiales del<br />
CSP: visión artificial y análisis de<br />
escenas, planificación, diseño de<br />
circuitos, programación lógica, etc.<br />
• Formulación del problema en términos<br />
de redes de restricciones.<br />
• Métodos de resolución: generación<br />
sistemática y test y backtracking.<br />
• Marco de referencia: análisis de escenas.<br />
Problema: reconocimiento de figuras<br />
(restricciones geométricas).<br />
• Solución a a los problemas del<br />
backtracking: propagación de<br />
restricciones. Caso particular: Algoritmo<br />
de Waltz.<br />
2
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Definición de CSP<br />
• Conjunto de variables definidas sobre<br />
dominios discretos y finitos y conjunto de<br />
restricciones definidas sobre subconjuntos<br />
de dichas variables.<br />
• CSP= (V,D,ρ)<br />
un conjunto de variables<br />
V = {V 1 , V 2 , …, V n } V={V i } i=1..n<br />
definidas sobre dominios discretos D i<br />
(conjunto finito de posibles valores)<br />
D = {D 1 , D 2 , …, D n } D={D j } j=1..n<br />
un conjunto de restricciones definidas sobre<br />
subconjuntos de dichas variables<br />
ρ = {ρ 1 , ρ 2 , …, ρ n } ρ ={ρ k } k=1..n<br />
Ejemplo:<br />
• X::{1,2}, Y::{1,2}, Z::{1,2}<br />
X = Y, X ≠ Z, Y > Z<br />
3
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Definición de CSP<br />
• Solución: encontrar asignaciones de valor a<br />
las variables que satisfagan todas las<br />
restricciones.<br />
(X = 2, Y = 2, Z = 1)<br />
Cada restricción tiene asociado un<br />
operador de proyección:<br />
P k ()=<br />
• Solución al problema: ρ sol, la relación naria<br />
que satisface todas las restricciones<br />
de ρ:<br />
ρ sol = {|v i ∈ Di ∧ P k () ∈ ρ k , ∀i, 1≤ i ≤ n , ∀k 1≤ k<br />
≤ m}<br />
• Dependiendo de los requerimientos del<br />
problema hay que encontrar todos los<br />
elementos de ρ sol o bien sólo alguno de<br />
ellos.<br />
4
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Redes de restricciones<br />
• Un CSP se puede representar como un<br />
grafo.<br />
• Sobre el grafo se puede definir una red de<br />
restricciones:<br />
Quíntupla <br />
V: conjunto de nodos.<br />
E: conjunto de aristas.<br />
c: E → V k , k ≤ n; función de asignación de<br />
aristas a tuplas de nodos.<br />
l: E → ρ; función de asignación de aristas a<br />
restricciones.<br />
a: permutación que define el orden de<br />
selección para resolver el problema.<br />
Solución para la red:<br />
S = {(|v i ∈ D i, ∀ i, 1 ≤ i ≤ n ∧<br />
(∀ e k ∈ E, P k() ∈ l(e k))}<br />
5
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Variables<br />
CSP binario<br />
V = {V 1 , V 2 , …, V n }<br />
Dominios discretos y finitos<br />
D = {D 1 , D 2 , …, D n }<br />
Restricciones binarias<br />
{R ij }<br />
• Solución : Asignación de valores a cada una de<br />
las variables satisfaciendo todas las restricciones<br />
• Generalidad : Todo problema n-ario se puede<br />
formular como un problema binario<br />
• Ejemplos:<br />
Coloreado de mapas<br />
Asignación de tareas para un robot<br />
N-reinas<br />
Crucigramas<br />
Criptoaritmética<br />
6
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Ejemplo: Coloreado de mapas<br />
V={V 1 , V 2 , V 3 , V 4 }<br />
D i ={rojo, azul, verde}, ∀ i, 1 ≤ i ≤ 4<br />
E= {e 1 , e 2 , e 3 , e 4 , e 5 }<br />
ρ k (V i , V j )= {| v i ∈ D i, v j ∈ D j, v i ≠ v j },<br />
∀ k, 1 ≤ k ≤ 5<br />
c(e 1 )=, c(e 2 )=,<br />
c(e 3 )=, ...<br />
l(e j )={, ,<br />
, , ,<br />
}<br />
a={V 1 , V 4 , V 2 , V 3 }<br />
7
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Generación de crucigramas<br />
• Definición: Dada una rejilla y un diccionario,<br />
construir un crucigrama legal,<br />
C<br />
O<br />
Z<br />
O<br />
L<br />
Formulación:<br />
4 palabras de 1 letra<br />
4 palabras de 3 letras<br />
2 palabras de 5 letras<br />
variables : grupo de casillas para una palabra<br />
(slots)<br />
dominios : palabras del diccionario con la<br />
longitud adecuada<br />
restricciones : misma letra en la intersección de<br />
dos palabras<br />
Características :<br />
CSP binario, discreto y finito (dominios<br />
grandes)<br />
8
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
N-reinas<br />
• Definición: posicionar n reinas en un tablero de<br />
ajedrez n×n, de forma que no se ataquen<br />
Formulación: 1 reina por fila<br />
n = 5<br />
variables : reinas, Xi reina en la fila i-ésima<br />
dominios : columnas posibles {1, 2, …, n}<br />
restricciones : no colocar dos reinas en<br />
- la misma columna<br />
- la misma diagonal<br />
Características :<br />
CSP binario, discreto y finito<br />
9
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Criptoaritmética<br />
• Definición: sustituir cada letra por un dígito<br />
distinto (distinta cifra, distinta letra) de manera que<br />
la suma sea correcta GOTA<br />
GOTA<br />
GOTA<br />
+ GOTA<br />
GOTA<br />
⎯⎯⎯⎯<br />
AGUA<br />
• Formulación:<br />
variables : G, O, T, A, U, C 1, C 2, C 3<br />
(C 1 , C 2 , C 3 variables de acarreo)<br />
dominios : O, T, U ∈ {0, …, 9}<br />
G, A ∈ {1, …, 9}<br />
C 1, C 2, C 3 ∈ {0, …, 3}<br />
restricciones :<br />
• letras distintas G ≠ O, G ≠ T, …, A ≠ U<br />
• suma correcta (unidades) 5*A = 10*C 1 +A<br />
(decenas) 5*T+C 1 = 10*C 2 +U<br />
(centenas) 5*O+C 2 = 10*C 3 +G<br />
(unidades mil) 5*G+C 3 = A<br />
• Características :<br />
• CSP binario, discreto y finito<br />
10
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Métodos de resolución<br />
• Búsqueda:<br />
Generación y test : generar de forma<br />
sistemática y exhaustiva cada una de las<br />
posibles asignaciones a las variables y<br />
comprobar si satisfacen todas las restricciones.<br />
Hay que explorar el espacio definido por el<br />
producto cartesiano de los dominios de las<br />
variables.<br />
Backtracking : se trata de construir la<br />
solución de forma gradual, instanciando<br />
variables en el orden definido por la<br />
permutación dada<br />
• Inferencia<br />
Consistencia de arco<br />
Consistencia de caminos<br />
K-consistencia<br />
• Algoritmos híbridos<br />
Forward Checking<br />
Maintaining Arc Consistency<br />
Heurísticas<br />
11
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
• Estrategia:<br />
Generación y test<br />
generación y test de todas las asignaciones<br />
totales posibles<br />
Generar una asignación total<br />
Comprobar si es solución. Si es, stop, sino ir a 1<br />
• Ejemplo: 4-reinas<br />
• Eficiencia:<br />
…<br />
es muy poco eficiente<br />
genera muchas asignaciones que violan la<br />
misma restricción<br />
12
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
• Estrategia:<br />
Backtracking<br />
Construir una solución parcial : asignación<br />
parcial que satisface las restricciones de las<br />
variables involucradas<br />
Extender la solución parcial, incluyendo una<br />
variable cada vez hasta llegar una solución<br />
total<br />
Si no se puede extender → backtracking<br />
• cronológico: se elimina la última decisión<br />
• no cronológico : se elimina una decisión<br />
anterior<br />
13
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Backtracking básico<br />
• Inicialización de la raíz del árbol de búsqueda<br />
i= 0; modo = forward; S = {}<br />
Acciones si el estado actual es consistente<br />
Si modo = forward entonces<br />
FinSi<br />
i=i+1;<br />
(1.1) V + i = nuevo_candidato(S, E, c, l, a)<br />
Si V + i ≠∅entonces<br />
Sino<br />
S= S ∪ expandir(S, V + i )<br />
Si i=n entonces salir_con_éxito<br />
sino ir a <br />
FinSi<br />
modo = backtracking FinSi<br />
Acciones si se detecta inconsistencia<br />
Si modo = backtracking entonces<br />
FinSi<br />
Si i= 0 entonces salir_con_fracaso<br />
Sino<br />
i= i-1<br />
S = cambiar(S, V +<br />
i )<br />
modo = forward<br />
ir a (1.1)<br />
FinSi<br />
14
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Backtracking recursivo<br />
funcion bt (x variable): booleano<br />
Para todo a ∈ D(x) hacer<br />
x a<br />
si test (x, pasadas)<br />
retorna FALSO<br />
pasadaspasadas + {x}<br />
si bt(siguiente(x)) retorna CIERTO<br />
sino pasadas pasadas – {x}<br />
pasadas: variables ∈ solución parcial, tienen<br />
valor asignado<br />
funcion test (x variable, P conjunto): booleano<br />
para todo y ∈ P hacer<br />
si (val(x), val(y))∉rel(R xy ) retorna FALSO<br />
retorna CIERTO<br />
la función test comprueba que el valor de la<br />
variable actual (x) sea consistente con la<br />
solución parcial<br />
15
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Generación y test VS Backtracking<br />
• Problema:<br />
X<br />
1<br />
1<br />
1<br />
1<br />
2<br />
2<br />
2<br />
• X::{1,2}, Y::{1,2}, Z::{1,2}<br />
X = Y, X ≠ Z, Y > Z<br />
Generación y test<br />
Y<br />
1<br />
1<br />
2<br />
2<br />
1<br />
1<br />
2<br />
Z<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
test<br />
falla<br />
falla<br />
falla<br />
falla<br />
falla<br />
falla<br />
acierta<br />
X<br />
1<br />
2<br />
Backtracking<br />
Y<br />
1<br />
2<br />
1<br />
2<br />
Z<br />
1<br />
2<br />
1<br />
test<br />
falla<br />
falla<br />
falla<br />
falla<br />
acierta<br />
16
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Reconocimiento de figuras<br />
Buscar un emparejamiento entre los<br />
parámetros de los datos sensoriales y los<br />
de un modelo de objetos dado.<br />
Modelo Datos<br />
sensoriales<br />
17
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Reconocimiento de figuras II<br />
• El sistema debe generar el conjunto de<br />
interpretaciones plausibles<br />
(consistentes).<br />
• Objetivo: La geometría de los objetos<br />
es una fuente valiosa de conocimiento<br />
para restringir las configuraciones<br />
candidatas a ser solución.<br />
• Deducir emparejamientos entre las<br />
aristas de los datos f={f 1 , f 2 , f 3 } y las<br />
que describen el modelo F={F 1 , F 2 , F 3 ,<br />
F 4 , F 5 , F 6 }.<br />
• Inicialmente hay que considerar todas<br />
las correspondencias posibles (9 x 10 7 ).<br />
18
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Reconocimiento de figuras III<br />
•Se puede reducir el número de<br />
posibilidades comprobando si la<br />
correspondencia es consistente con la<br />
geometría del objeto. Dadas m aristas del<br />
modelo y d aristas de datos:<br />
Existen (2m) d correspondencias (1728).<br />
Este número se reduce a m d si<br />
distinguimos entre interior y exterior<br />
(216).<br />
Restricciones geométricas:<br />
• Angulos relativos entre las aristas (12).<br />
• Distancia entre pares de aristas (5).<br />
•A pesar de reducir el espacio de búsqueda<br />
hay que aplicar una transformación<br />
geométrica a la figura para saber si se ajusta<br />
al modelo.<br />
•Sólo hay que aplicar la transformación a<br />
cinco posibilidades<br />
19
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Reconocimiento de figuras IV<br />
• Red de restricciones<br />
V={f 1, f 2, f 3}<br />
D j={F 1, F 2, F 3, F 4, F 5, F 6} ∀j, 1 ≤ j ≤ 3<br />
E={e 1, e 2, e 3}<br />
ρ k(f i)={ | unaria(F i)}<br />
ρ k(f i,f j)={ | (F i ≠ F j) ∧ binaria(F i ,F j)}<br />
c(e 1)= < f 1, f 2>, c(e 2)=< f 1, f 3 >, c(e 3)=< f 2, f 3 ><br />
l(e k) ⊆{|(i ≠ j) ∧ binaria(F i ,F j) (i,j ∈{1, 2,<br />
3, 4, 5, 6 })} ∀ k = 1, 2 ,3<br />
a= < f 1, f 2, f 3 ><br />
20
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Espacio de correspondencia<br />
Espacio de posibilidades a explorar para<br />
encontrar una interpretación correcta<br />
(coincide con el producto cartesiano de los<br />
dominios de las variables).<br />
21
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Arbol de interpretaciones<br />
• Partimos de un nodo raíz que supervisa el<br />
proceso.<br />
• Cada nivel corresponde a una asignación<br />
de valor para una característica de datos.<br />
El orden de descenso viene especificado<br />
por a.<br />
• Cada nodo identifica una posibilidad de<br />
asignación (f i , F j ).<br />
• La solución se construye de forma<br />
incremental de tal forma que cada hoja es<br />
una interpretación.<br />
22
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Arbol de interpretaciones<br />
23
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Datos espúreos o solapados<br />
Excluir todas las características de<br />
datos inconsistentes con la<br />
interpretación actual<br />
24
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Limitaciones del backtracking<br />
• Trashing e inconsistencia de nodo<br />
Restricciones unarias: cuando un dominio<br />
contiene un valor que no satisface una<br />
restricción unaria.<br />
• Inconsistencia de arista<br />
Restricciones binarias: cuando existe una<br />
restricción binaria entre dos variables de tal<br />
forma que para un determinado valor de la<br />
primera variable no existe ninguna asignación<br />
posible para la segunda.<br />
• Dependencia de la ordenación<br />
Se han desarrollado diversas heurísticas: de<br />
selección de variables y de valores.<br />
25
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Propagación de Restricciones<br />
• Transformar el problema en otro más<br />
sencillo sin inconsistencias de arco.<br />
• Propiedad de consistencia de arista<br />
Una arista dirigida c(e p) = es<br />
consistente si y sólo si para todo valor<br />
asignable a V i existe al menos un valor en V j que<br />
satisface la restricción asociada a la arista.<br />
• Un CSP puede transformarse en una red<br />
consistente mediante un algoritmo<br />
sencillo (AC3) que examina las aristas,<br />
eliminando los valores que causan<br />
inconsistencia del dominio de cada<br />
variable.<br />
26
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Algoritmo AC3<br />
Q = {c(e p ) = |e p ∈ E, i ≠ j}<br />
Mientras Q ≠ Ø hacer<br />
= seleccionar_y_borrar(Q)<br />
cambio = falso<br />
Para todo v k ∈ D k hacer<br />
Si no_consistente (v k , D m ) entonces<br />
FinSi<br />
FinPara<br />
borrar (v k , D k )<br />
cambio = cierto<br />
Si Dk = Ø entonces salir_sin_solución FinSi<br />
Si cambio = cierto entonces<br />
Q = Q ∪ {c(e r ) = | e r ∈ E, i ≠ k, i ≠ m}<br />
FinSi<br />
FinMientras<br />
• Después del proceso:<br />
✓ No hay solución<br />
✓ Hay más de una solución<br />
✓ Hay una única solución<br />
27
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
2<br />
{rojo, verde}<br />
Ejemplos de grafos<br />
1<br />
Inconsistente,<br />
sin solución<br />
2<br />
{rojo, verde}<br />
1<br />
{rojo, verde}<br />
3<br />
{rojo, verde}<br />
2<br />
{rojo, verde}<br />
{azul, verde}<br />
3<br />
{rojo, verde}<br />
Consistente,<br />
sin solución<br />
1<br />
{verde}<br />
3<br />
{rojo, verde}<br />
Consistente, con<br />
dos soluciones<br />
28
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Ejemplo: Etiquetado de escenas<br />
• Asignar etiquetas consistentes a cada una de<br />
las aristas que componen la escena: descubrir<br />
las líneas de frontera que separan objetos, las<br />
aristas cóncavas y convexas.<br />
• Suponemos iluminación uniforme y ausencia<br />
de sombras.<br />
29
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Etiquetado de escenas II<br />
• Tipos de aristas<br />
Convexas (+): formadas por dos caras que<br />
forman un ángulo agudo<br />
Cóncavas (-): formadas por formadas por dos<br />
caras que forman un ángulo obtuso<br />
Frontera (←, →): arista que separa un objeto<br />
del fondo o de otro objeto<br />
• Figuras compuestas por vértices triédricos.<br />
• Salida: conjunto plausible de etiquetas<br />
asociadas a cada una de las aristas.<br />
30
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Etiquetado de escenas III<br />
• Existen 4 n etiquetados posibles para una<br />
figura de n aristas.<br />
• Vértices ⇒ sólo existen 4 tipos de<br />
configuraciones de unión: L (2 aristas),<br />
flecha, T, Horquilla (3 aristas cada una).<br />
• Existen 208 posibilidades totales<br />
(3x4 3 +4 2 ) si tenemos en cuenta el máximo<br />
número de combinaciones de cada tipo de<br />
unión.<br />
31
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Configuraciones de unión<br />
32
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Configuraciones realizables<br />
físicamente<br />
• Se puede reducir a 18 el número de<br />
configuraciones físicamente realizables si<br />
se incorpora conocimiento sobre el tipo de<br />
objeto y la perspectiva de observación.<br />
+<br />
+<br />
-<br />
Uniones L<br />
-<br />
Uniones<br />
Horquilla<br />
+ +<br />
+<br />
- -<br />
-<br />
-<br />
-<br />
-<br />
Uniones T<br />
+<br />
-<br />
Uniones<br />
Flecha<br />
+<br />
+ +<br />
-<br />
- -<br />
+<br />
33
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Algoritmo de Waltz<br />
Encontrar todas las aristas de la escena.<br />
Numerar los vértices.<br />
Visitar cada vértice V e intentar etiquetarlo:<br />
Asignar a V todas las etiquetas posibles.<br />
Determinar las etiquetas que pueden<br />
eliminarse en base a restricciones locales<br />
Comprobar la consistencia del arco (V, A) y<br />
eliminar de V las etiquetas inconsistentes.<br />
Utilizar el nuevo conjunto de etiquetas de V<br />
para restringir las etiquetas de los vértices<br />
adyacentes a V ya visitados:<br />
Comprobar la consistencia del arco (A, V) y<br />
eliminar de A las etiquetas inconsistentes.<br />
Si se elimina alguna etiqueta continuar la<br />
propagación examinando los vértices adyacentes a A<br />
ya visitados.<br />
Continuar la propagación hasta que no existan más<br />
vértices adyacentes o no haya ningún cambio en las<br />
etiquetas.<br />
34
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Ejemplo<br />
35
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Ejemplo<br />
36
Fundamentos IA 5. Satisfacción de Restricciones<br />
@DCCIA<br />
Ejemplo<br />
37