Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Razonamiento 1. Introduccin
- Definiciones
- Ejemplos
con
2. Mtodos de Resolucin
- Bsqueda
Restricciones - Inferencia
- Mtodos hbridos
TECHO SOLAR X X X
Para la IA: CLIMATIZADOR X X
Restricciones: formal general de
representacin del conocimiento
Satisfaccin de restricciones: razonamiento
automtico
Ejemplos: Area techo solar Area climatizador
SAT
Capacidad 3/5 Capacidad 2/3
razonamiento temporal
razonamiento basado en modelos
Formulacin:
Especializacin: variables: n coches a producir
tipo de dominios: dominios: modelos de coche
discretos / continuos restricciones: capacidad de las reas
finitos / infinitos
tipo de restricciones: Caractersticas:
binarias / n-arias CSP no binario, discreto y finito
Asignacin de recursos Restricciones binarias
R1 R3 R2
C1 C2 C3
Solucin: asignacin de valores a variables
tiempo satisfaciendo todas las restricciones.
Formulacin:
variables: operaciones
Generalidad: todo problema n-ario se puede formular
dominios: tiempos de inicio de cada operacion como un problema binario [Rossi et al, 90]
restricciones:
Ejemplos:
precedencia entre las operaciones de un job
Coloreado de grafos
exclusividad de cada recurso en el tiempo
Satisfacibilidad booleana (SAT)
Caractersticas:
N-reinas, crucigramas, criptoaritmtica
CSP binario, discreto y finito (acotado por D)
N-reinas Coloreado de grafos
Colores
n =5
Definicin: Dada una rejilla y un diccionario, construir Definicin: dado un conjunto de sucesos que ocurren
un crucigrama legal. en intervalos temporales con ciertas
relaciones, encontrar una asignacin
temporal consistente.
C O L 4 palabras de 1 letra
O 4 palabras de 3 letras X1 X2 [30, 40] X3
2 palabras de 5 letras [10, 20] [60, )
Z
[10, 20]
X4
Formulacin: [20, 30][40, 50]
variables: grupo de casillas para una palabra
(slots) [60, 70] X5
dominios: palabras del diccionario con la
longitud adecuada Formulacin:
restricciones: misma letra en la interseccin de variables: sucesos
dos palabras dominios: intervalo temporal para cada suceso
restricciones: distancia temporal permitida entre
Caractersticas:
sucesos; relaciones temporales
CSP binario, discreto y finito (dominios
antes, despus, solapado, etc.
grandes)
Caractersticas:
CSP binario, contnuo e infinito
Grafo de restricciones Esquema
X2
X2
BT = DFS + consistencia(P)
funcion bt(x variable): booleano
DFS: bsqueda primero en profundidad para todo aD(x) hacer
x a
si test(x,pasadas)
consistencia(P): Si P es consistente, continua pasadas pasadas + {x}
sino, backtracking si bt(siguiente(x)) retorna CIERTO
sino pasadas pasadas - {x}
retorna FALSO
consistencia(P): es suficiente con comprobar que
actual es consistente con variables anteriores
Xn Arbol de bsqueda:
X1
BT: recorrer el subrbol {X2 , ..., Xn }
1
(1/m del rbol total) para darse cuenta X2
de que a no esta en la solucin. 3
BT: enumera
Alternativas: X3 exhaustivamente
5
detectar que a es incompatible con Dn todas las
X4 asignaciones
-- antes de la bsqueda 2
parciales
-- al asignar a X5 consistentes
4
backtracking no cronolgico:
X6
-- saltar directamente de Xn a X1
Backjumping Backjumping dirigido por conflictos
X1 Conjunto conflicto de Xj :
X2 - var pasadas incompatibles con algun valor de Xj
X3
X1 {} conjunto
X4 conflicto
X2 1 1 {1}
X5
X3 1 2 1 2 {1, 2}
X6 bloqueo
X4 1 {1}
X7
X5 1 4 2 {1, 2, 4}
X8
X6 1 3 2 4 3 1 2 3 {1, 2, 3, 4}
Observacin: X7
- cambiar el valor de X5 no elimina el bloqueo X8
- backtracking sobre una variable anterior: X4
Proceso :
X1
- backjumping (Xj) = max conjunto conflicto(Xj)
1
X2
3 X1, X2,. . . , Xi , . . ., Xj ,. . . ,Xn
X3 Backjumping:
5 - salta a una variable - tras backjump de Xj a Xi ,
X4 responsable del bloqueo conjunto conflicto (Xi ) = conjunto conflicto (Xi )
2 - no enumera aquellas
X5 asignaciones parciales {conjunto conflicto (Xj ) - Xi }
4 que no conducen a - se transpasan a Xi los conflictos de Xj con
X6 ninguna solucin variables anteriores a Xi
Esquema Propagacin de restricciones
Introduccin Restricciones:
Definiciones explcitas: definicin del problema
Ejemplos implcitas: inducidas por la accin de las explcitas
Metodos de resolucin
Propagacin: hace explcitas las restricciones implcitas
Bsqueda:
Generar y testear
X1 R12:(a,b) (b,c) X2
Backtracking a, b, c a, b, c
Backjumping
R13:
Inferencia (a,c)
(c,b)
Consistencia de arcos a, b, c X3
Consistencia de caminos incompleta
K-consistencia
Problemas libres de backtracking completa
Consistencia adaptativa
X1 R12:(a,b) (b,c) X2
Algoritmos hbridos a, b, c a, b, c
Forward Checking
R13: R23:
Really Full Lookahead (b,c)
(a,c)
Maintaining Arc Consistency (c,b)
Heursticas a, b, c X3
Microestructura Microestructura
X1 X2 X1 X2
a a a a
b b b b
c c c c
X3 X3
a b c a b c
valores compatibles
valores compatibles
no se pueden extender
a una solucin global
Reduccin de problemas Consistencia de arcos
Xk
Parcial: a b c
consistencia local
P es ms fcil de resolver que P
|espacio estados P| > |espacio de estados P | Xi Xj
a a
si Di = , final, no hay solucin
coste polinmico b b
preproceso antes de bsqueda con backtracking
c c
intercalado con bsqueda con backtracking
Filtrado por consistencia de arcos AC-1: Algoritmo consistencia de arcos
Idea: si para a Di no existe b Dj tal que (a, b)rel(Rij ), funcion revise (i,j variable): booleano;
se puede eliminar a de Di porque a no estar en delete FALSO
ninguna solucin. para cada aDi hacer
si no hay bDj tq.(a,b)rel(Rij)
Di Di - a
Filtrado de dominios por consistencia de arcos: se
delete CIERTO
eliminan los valores responsables de la arco retorna delete
inconsistencia.
X1
Coloreado de grafos:
X2 azul, rojo
procedimiento AC-1 ()
azul Q {(i,j)|(i,j) arcos(G), ij}
/* Rij aporta dos arcos a Q (i,j) y (j,i)*/
X4 repetir
X3 azul, rojo, cambio FALSO
verde azul, verde
para cada (i,j)Q hacer
cambio revise(i,j) o cambio
X1 hasta no (cambio)
X2 azul, rojo
PUNTO /* variables globales
FIJO azul
G: grafo de restriccioens
X4
{Di}: dominios de las variables */
X3 azul, rojo,
verde azul, verde
AC-3: Algoritmo consistencia de arcos Consistencia de caminos
Xq Xr
Un par de variables (Xi , Xj) es camino consistente
revise(k,m) borra b y c de Dk
ssi todo par de valores (a, b)rel(Rij ) es camino
Qu arcos hay que revisitar? Aquellos que han consistente.
dejado de ser arco consistentes por el borrado Un problema P es camino consistente ssi todo
de b y c. par de variables es camino consistente.
Interseccin de restricciones: Consistencia de arcos: rii = rii & rij rjj rji
Rij rii
Xi Xj
Rij Xi Xj rjj
rij
Rij
rii
Consistencia de caminos:
Composicin de restricciones: rij = rij & rik rkk rkj
Xk
Rik Rkj
rkk
Xk
Xi Xj rik rkj
Rij
rij
Xi Xj
rel(Rij)= {(a, b)|c_Dk, (a, c) rel(Rik,), (c, b)rel(Rkj)} rij
rij = rik rkj rij, pq = t=1,.., m (rik, pt rkj, tq) - genera restricciones binarias
- se alcanza cuando rij = rij
PC-1: Algoritmo consistencia caminos PC-2: Algoritmo consistencia caminos
procedimiento PC-2 ()
Q:={(i,k,j)|(ij), (i=k=j)}
mientras Q hacer
selecciona y borra camino (i,k,j) de Q
si revise(i,k,j)
Q Q related_paths(i,k,j);
K-Consistencia K-consistencia: Ejemplo
K-Consistencia: X2
rojo
K-Consistencia: generalizacin rojo
2-consistencia: consistencia de arcos
3-consistencia: consistencia de caminos
K= n, propagacin total
K-consistencia no implica K-consistencia fuerte
SOLUCION:
Algoritmo: - S(n-1 solucin de P(n-1
A-C: [Dechter y Pearl 88]
O(n exp(W*+ 1)) W*: anchuraresultante - S(n-2 solucin de P(n-2 a partir de S(n-1
Aade arcos extras, aumenta la anchura
-...
join proyecta
join proyecta
x1 x2 x1 x2 x1 x2 x1 x2 x1 x2 x1 x2
x3 x4 x3 x4 x3 x4 x3 x4 x3 x4
x3 x4
x3 x4
4 2
x2 x3 x4 x3 x4 1 3
1 3 2 3 2
1 4 2 4 2
1 4 4 4 4
4 2 3 2 3
4 1 3 1 3
4 1 1 1 1
Ejemplo: Todas las soluciones 4-reinas Ejemplo: Todas las soluciones 4-reinas
x4 x3 x2 x1
x4 x3 x2 x1
SOLUCION 1: 2 4 1 3
SOLUCION 2: 3 1 4 2
x4
2 x4
3 2
3
x3 x4
4 2 x3 x4
1 3 x1 x2 x3 x4 x1 x2 x3 x4 4 2
1 3 2 2 3 1 4 4 1 3 x1 x2 x3 x4 x1 x2 x3 x4
1 3 2 3 3 1 4 2 1 3 2 2 3 1 4 4
1 3 4 2 3 1 4 1 1 3 2 3 3 1 4 2
1 3 4 3 3 1 2 4 1 3 4 2 3 1 4 1
1 4 2 2 3 1 2 2 1 3 4 3 3 1 2 4
1 4 2 3 3 1 2 1 1 4 2 2 3 1 2 2
1 4 4 2 4 2 3 3
x2 x3 x4 1 4 4 3 4 2 3 2
1
1
4
4
2
4
3
2
3
4
1
2
2
3
1
3
1 3 2 2 4 1 1 4 2 1 3 x2 x3 x4 1 4 4 3 4 2 3 2
1 4 2 2 4 1 3 4 2 1 2 1 3 2 2 4 1 1 4 2 1 3
1 4 4 2 4 1 4 4 1 3 3 1 4 2 2 4 1 3 4 2 1 2
4 2 3 2 4 3 1 4 1 3 2 1 4 4 2 4 1 4 4 1 3 3
4 1 3 2 4 3 3 4 1 1 3 4 2 3 2 4 3 1 4 1 3 2
4 1 1 2 4 3 4 4 1 1 2 4 1 3 2 4 3 3 4 1 1 3
4 1 1 2 4 3 4 4 1 1 2
Esquema Algoritmos Hbridos
Metodos de resolucin
Propagacin: en cada nodo
Bsqueda:
- propaga el efecto de la asignacin actual
Generar y testear
- bloqueo: rama sin soluciones
Backtracking
- objetivo: anticipar la deteccin de bloqueos
Backjumping
- si bloqueo backtracking
Inferencia
Consistencia de arcos nodo
Consistencia de caminos actual
incompleta
K-consistencia
Problemas libres de backtracking
completa
Consistencia adaptativa anticipa
el bloqueo
Algoritmos hbridos
Forward Checking
Really Full Lookahead Compromiso:
Maintaining Arc Consistency + evito visitar un nmero multiplicativo de nodos
Heursticas - coste de la anticipacin en cada nodo
6 reinas 6 reinas
Anticipacin:
eliminar columnas y diagonales prohibidas
eliminar valores de dominios futuros
bloqueo dominio vaco
Esquema de anticipacin Forward checking
1. Bsqueda: FC = BT + AC(CPF)
1. Variable actual Xi Di = {a, b, c}
2. Asignacin Xi a Di = {a } AC(CPF) : eliminar en dominios futuros valores
incompatibles con las variables pasadas
2. (Consistencia entre pasadas)
FC = DFS + AC(CPF)
P = {X1, X2, . . ., Xi }
AC(CPF) = AC(CX1) + AC(CX2) + ... + AC(CXi )
AC(CPF)
en cada nodo AC(Cactual)
acumular resultados a lo largo de la rama actual:
AC(Cactual) poda dominos futuros
sucesores de actual heredan dominios
4 nodos futuros podados
AC(CX1)
valor asignado AC(CX2)
RFL = FC + AC(F)
AC(CF): AC (2,3)
poda extra en dominios futuros
despus de AC(Cactual)
poda(RFL) poda(FC)
coste extra:
AC (2,3)
AC(CF)
adecuado para
restricciones duras
problemas esparsos
/* funcion forward
procedimiento restaura como en FC */
MAC: Ejemplo MAC: rbol de bsqueda
Arbol de bsqueda:
binario
en cada nivel
X1 = 1 una variable Xi
dos opciones: a, a
se puede cambiar de variable sin
agotar los valores
en cada nodo, arco consistencia del
subproblema actual
AC(X 1 1)
Xi=a Xia
Suponemos situacin 2:
asignar primero aquella variable que,
aparentemente, antes nos conduce a un fallo
(principio fail-first)
Suponemos situacin 1: