Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Inteligencia Artificial Técnicas de Filtro y Consistencia 1 Filtrado 2 Consistencia 3 Consistencia de Nodos 4 Consistencia de Arcos Algoritmo AC-1 Algoritmo AC-3 Observaciones 5 Consistencia de Caminos 6 K-consistencia 7 Consideraciones Importantes Elizabeth Montero Ureta Departamento de Informática Universidad Técnica Federico Santa Marı́a Campus Santiago 1er Semestre 2009 1/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado: Definición Consistencia: Definición Proceso de filtrado: 1 2 2/19 Consistencia/Coherencia Transforma un problema P en P 0 Elimina los elementos que, con seguridad, no pueden ser parte de la solución Grado de compatibilidad entre los valores de los dominios y las restricciones Niveles de consistencia Propiedades: Consistencia Local (Inicial): Consistencia de Arcos, Consistencia de Caminos, K-consistencia Consistencia Global (Resolver!) Simplificación del problema por reducción del espacio de búsqueda El problema reducido (P 0 ) es equivalente al problema original (P) A veces detecta ausencia de solución 3/19 4/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Consistencia de Nodos Algoritmo AC-1 Algoritmo AC-3 Observaciones Consistencia de Arcos Algoritmo de consistencia de nodos Definición: Una variable i es arco-consistente ssi: ∀a ∈ Di , ∀j ∈ V conectado a i, ∃b ∈ Dj tal que (a, b) ∈ Rij Begin /* Procedimiento NC(i) */ Di ← Di ∩ {x \ Pi (x)} For i:=1 To n Do NC(i) End Un problema es arco-consistente si todas sus variables son arco-consistentes La complejidad de NC () es O(n), lineal con respecto a las variables Filtro por consistencia de arco: Eliminar todos los valores que no cumplen con la propiedad. 5/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes 6/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Algoritmo AC-1 Algoritmo AC-3 Observaciones Consistencia de Arcos Algoritmo AC-1 Algoritmo AC-3 Observaciones Procedimiento REVISE procedure REVISE (Vi , Vj ) DELETE ← false; for each X in Di do; if there is no such Y in Dj such that (X , Y ) is consistent then delete X from Di ; DELETE ← true; end if; end for; return DELETE; end REVISE Para establecer la consistencia de arcos, se propagan las reducciones de dominios hasta obtener un punto fijo Un valor es viable si posee un valor compatible dentro de los dominios de las variables unidas por una restricción Un valor que no es viable será eliminado del dominio de una variable 7/19 8/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Algoritmo AC-1 Algoritmo AC-3 Observaciones Algoritmo AC-1 Algoritmo AC-1 Algoritmo AC-3 Observaciones Algoritmo AC-3 procedure AC-1 Q ← {(Vi , Vj ) in arcs(G ), i 6= j}; repeat CHANGE ← false; for each (Vi , Vj ) in Q do CHANGE ← REVISE (Vi , Vj ) or CHANGE; end for until not(CHANGE) end AC-1 procedure AC-3 Q ← {(Vi , Vj ) in arcs(G ), i 6= j}; while not Q empty select and delete any arc (Vk , Vm ) from Q; if REVISE (Vk , Vm ) then Q ← Q union {(Vi , Vk ) such that (Vi , Vk ) in arcs(G ), i 6= k, i 6= m} en dif end while end AC-3 9/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes 10/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Algoritmo AC-1 Algoritmo AC-3 Observaciones Observaciones sobre filtrado por consistencia de arcos Algoritmo AC-1 Algoritmo AC-3 Observaciones Ejemplo: El algoritmo AC-3 no es caro Es simple de implementar Existe AC-5 que es menor en complejidad pero requiere caracterı́sticas de biyección y monoticidad. Estas herramientas son utilizadas por softwares actuales. 11/19 12/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado por consistencia de CAMINOS Ejemplo: Un par de variables (i, j) es trayectoria consistente ssi: ∀(a, b) ∈ Di × Dj , ∀k ∈ V conectada a i y j, ∃c ∈ Dk , (a, c) ∈ Rik y (b, c) ∈ Rkj Un problema es camino consistente ssi: Todos los pares de variables son camino consistentes. Filtrado por consistencia de caminos: Eliminar todos los pares de valores que no cumplan la propiedad. El algoritmo empieza a ser caro Complejidad es O(n3 d 5 ) para PC 2 (Mackworth,77) Complejidad es O(n3 d 3 ) para PC 3 (Mohr, 86) Es más complejo de implementar que AC Su aplicación puede agregar restricciones al grafo cambiando la topologı́a Conclusión: Poco utilizado. 13/19 14/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Acerca de la k consistencia Modelización Coloreo de grafos I Suponga que desea colorear un automóvil, cuyas partes son: Parachoques Techo Alerones Carrocerı́a Puertas Capot k-consistencia: Consistencia entre k nodos Nodo consistencia: Consistencia de 1 nodo Se tiene un conjunto de colores disponibles para colorear dicho automóvil Arco consistencia: Consistencia entre 2 nodos Blanco Rosado Rojo Negro Sea A / B A es más claro que B, entonces: Blanco / Rosado, Rosado / Rojo y Rojo / Negro. 15/19 16/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Modelización Coloreo de grafos II Ejemplo: Considere las siguientes restricciones El parachoques debe ser blanco El techo debe ser rojo Los alerones no pueden ser blancos ni negros La carrocerı́a, las puertas y el capot deben ser del mismo color El parachoques, el techo y los alerones deben ser más claros que la carrocerı́a 17/19 Filtrado Consistencia Consistencia de Nodos Consistencia de Arcos Consistencia de Caminos K-consistencia Consideraciones Importantes Consideraciones Importantes Si un problema tiene solución, entonces ¿Es Arco-consistente? Si un problema es Arco-consistente, entonces ¿Tiene solución? Si un problema es Arco-consistente, y todas las variables tienen un sólo valor posible en el dominio, entonces ¿El problema tiene solución? Si un problema es k-consistente, entonces ¿Tiene solución? 19/19 18/19