Inteligencia Artificial Problemas de satisfacción de restricciones

Documentos relacionados
Satisfacción de restricciones. Representación 1. Algoritmos. Notas. Componentes del estado:

Inteligencia Artificial I

Satisfacción de Restricciones

Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales

Tema 3: Problemas de Satisfacción de Restricciones

Restricciones. Inteligencia Artificial. Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani

Problemas de satisfacción de restricciones.

Problemas de satisfacción de restricciones. Javier Ramírez Rodríguez Departamento de Sistemas Universidad Autónoma Metropolitana

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Razonamiento. con. Restricciones. Esquema Global. Tutorial IBERAMIA Introducción - Definiciones - Ejemplos

Hoja de Problemas Tema 6 Búsqueda con estados estructurados: Restricciones

Algoritmos para CSP 1

Razonamiento. con. Restricciones. Esquema Global. Tutorial CAEPIA Introducción - Definiciones - Ejemplos

Tema 5: Problemas de satisfacción de restricciones

Hoja de Ejercicios. Temas 1 y 2

Búsqueda Heurística III

Problemas de Satisfacción de Restricciones

Programación con Restricciones Constraint Programming

INGENIERÍA EN SISTEMAS Y COMUNICACIONES

Búsqueda en línea y Búsqueda multiagente

Tema: Algoritmos Backtracking.

Resolviendo Problemas Buscando Soluciones. Tomás Arredondo Vidal 16/6/2010

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva

Problemas de satisfacción de restricciones (CSP)

Búsqueda de Soluciones Robustas en Problemas de Satisfacción de Restricciones Dinámicos

Búsqueda Heurística II

Métodos de Inteligencia Artificial

B s ú que u da p rim i ero o e n n p rof o u f n u d n id i ad: E tr t ate t gia i L I L FO B s ú que u da p rim i ero o e n n a nc n h c u h r u a:

Inteligencia Artificial

Algoritmo de ramificación y acotación

Primera aproximación al aprendizaje automático.

Algoritmos: Exploración de grafos

Ejemplo: ubicación de estación de bomberos

Backtracking: Esquema General

Redes Semánticas. Redes semánticas. Limitaciones de las redes semánticas. Notas

Formulando con modelos lineales enteros

Introducción a la Computación Evolutiva

Bases Formales de la Computación

Investigación de Operaciones [INF-3144] Capítulo 2: Programación con Restricciones

Apellidos:... Nombre:...

RESOLUCIÓN DE PROBLEMAS, BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

Resolución de Problemas

ALGORITMOS DE CONSISTENCIA PARA PROGRAMACIÓN CON RESTRICCIONES

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Problema de las N Reinas. Resolución paralela

Búsqueda Informada. Algoritmos primero el mejor Algoritmos de búsqueda local

Teoría de grafos y optimización en redes

BÚSQUEDA. Vicente Martínez Orga

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

Tema 7: Problemas clásicos de Programación Lineal

Programación por Restricciones

Estructuras de Datos Orientadas a Objetos. Pseudocódigo y aplicaciones en C#.NET. Capítulo 9.- Grafos

Matemáticas Discretas L. Enrique Sucar INAOE. Teoría de Grafos. Problema de los puentes de Königsberg [Euler]

Tema 3: Técnicas básicas de búsqueda para la resolución de problemas

Multiplicación de matrices simétricas

JUEGOS. Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil

Fundamentos de Inteligencia Artificial

Convertir un AFND a un AFD

ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

Búsqueda de soluciones

Inteligencia Artificial. Visiones: Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead. Elizabeth Montero Ureta.

Programación Entera. Nelson Devia C. IN Modelamiento y Optimización Departamento de Ingeniería Industrial Universidad de Chile

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Coloreo de vértices Definiciones: Coloreo de Grafos. Cotas para χ Proposición: Si H es un subgrafo de G entonces χ(h) χ(g).

Tema 3 Optimización lineal. Algoritmo del simplex

Estimar la adecuación de un nodo para ser expandido.

Introducción a las RdP. Optimización basada en redes de Petri. Redes de Petri. Son objeto de estudio: RdP. Ejemplos:

Contenido. Capítulo I Sistemas numéricos 2. Capítulo II Métodos de conteo 40

Segundo parcial. Martes, 23 de abril de 2003

Estratégias generales de análisis y diseño de algorítmos

Algoritmos de Planos de Corte

Tema 3: Técnicas básicas de

Hiperheurísticas Mediante un Enfoque Neuro-Evolutivo para el Ordenamiento Dinámico de Variables en Problemas de Satisfacción de Restricciones

Hipótesis. Teoria del Aprendizaje Computacional

I N T E L I G E N C I A A R T I F I C I A L I

Práctica 2. Algoritmos de búsqueda local (local search algorithms) y algoritmos avariciosos (greedy algorithms)

4. Operadores Operador asignación

IN34A - Optimización

El problema del agente viajero

Solución de Problemas Mediante Búsqueda (2) Carlos Hurtado Depto de Ciencias de la Computación, Universidad de Chile

Programación declarativa avanzada

Formulación del problema de la ruta más corta en programación lineal

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

CAPÍTULO II METODOLOGÍA DE SOLUCIÓN. Este capítulo es de suma importancia ya que en él se explica la metodología de solución

CAPITULO 1: PERSPECTIVE GENERAL DE LA

Manual Guías Temáticas Excel (V 1.2)

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 3 Programación Entera

Ingeniería en Sistemas Computacionales. Inteligencia Artificial. Ing. Bruno López Takeyas. Algoritmo Hill Climbing

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero

Flujos de redes (Network Flows NF)

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Mg. Ing. Gustavo E. Juárez

Teoría de la Computación puesta en Práctica

Técnicas de resolución de problemas de satisfacción de restricciones

Búsqueda no-informada

Agentes que resuelven problemas

Algebra Matricial y Teoría de Grafos

Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial ISSN:

No se permiten libros ni apuntes ni calculadora

Transcripción:

Inteligencia Artificial Problemas de satisfacción de restricciones Primavera 2007 profesor: Luigi Ceccaroni

Problemas de satisfacción de restricciones (PSRs) Componentes del estado = grafo de restricciones: Variables Dominios (valores posibles para las variables) Restricciones (binarias) entre las variables Objetivo: encontrar un estado (una asignación completa de valores a las variables) que satisface las restricciones. Ejemplos: colorear mapas, crucigramas, n-reinas asignación/distribución/ubicación de recursos: distribución de tareas de fabricación, ubicación de gasolineras de hidrogeno y antenas de telefonía 2

Representación Problema: colorear mapa Ejemplo de estado: Variables (n) = etiquetas de nodos Dominios = contenido de nodos Restricciones = arcos dirigidos y etiquetados entre nodos C1 C2 C3 C4 C2 AZUL C3 AZUL, ROJO, VERDE AZUL, ROJO C4 AZUL, VERDE C1 Estado inicial 3

Representación A cada paso hay una asignación de variable. Las soluciones deben ser asignaciones completas y por lo tanto, en el árbol de búsqueda, aparecen a profundidad n. El árbol se extiende sólo a profundidad n. Los algoritmos de búsqueda primero en profundidad son populares para PSRs. El camino que alcanza una solución es irrelevante. La clase más simple de PSR implica variables discretas y dominios finitos: problemas de coloreo de mapas, de n-reinas 4

Dominios finitos Si el tamaño máximo del dominio de cualquier variable es d, entonces el número de posibles asignaciones completas es O(d n ), exponencial en el número de variables. Los PSRs con dominio finito incluyen a los PSRs booleanos, cuyas variables pueden ser verdaderas o falsas. En el caso peor, no se pueden resolver los PSRs con dominios finitos en menos de un tiempo exponencial. En la mayoría de aplicaciones prácticas, sin embargo, los algoritmos para PSR resuelven problemas órdenes de magnitud más grandes que los resolubles con algoritmos de búsqueda no informada. 5

Dominios infinitos Las variables discretas pueden tener dominios infinitos (p.e., el conjunto de números enteros o de cadenas). Con dominios infinitos, no es posible describir restricciones enumerando todas las combinaciones permitidas de valores. Se debe usar un lenguaje de restricción: Comienzo-Trabajo1 + 5 Comienzo-Trabajo3 Existen algoritmos para restricciones lineales sobre variables enteras. No existe un algoritmo general para restricciones no lineales sobre variables enteras. En algunos casos, se pueden reducir los problemas de dominio infinito a dominio finito simplemente acotando los valores de todas las variables, p.e.: fijando límites temporales para el comienzo de los trabajos. 6

Dominios continuos Los PSRs con dominios continuos son muy comunes en el mundo real. La categoría más conocida son los problemas de programación lineal: las restricciones deben ser desigualdades lineales que forman una región convexa. Los problemas de programación lineal pueden resolverse en tiempo polinomial en el número de variables. 7

Algoritmos Basados en búsqueda complejidad: tiempo: O(exp(n)) espacio: O(n) Basados en programación dinámica complejidad: tiempo: O(exp(w*+1)) espacio: O(exp(w*)) Donde n es el número de variables y w* es la anchura inducida del grafo de restricciones dado un orden. 8

Algoritmos basados en búsqueda Formulación incremental como en un problema de búsqueda estándar: Estado inicial: la asignación vacía { }, en que todas las variables no están asignadas. Función de sucesor: asignación de un valor a cualquier variable no asignada, a condición de que no suponga conflicto con variables ya asignadas. Test objetivo: la asignación actual es completa. Costo del camino: un costo constante (p.e., 1) para cada paso. Formulación completa de estados: cada estado es una asignación completa que satisface o no las restricciones. Los métodos de búsqueda local trabajan bien para esta formulación. Búsqueda heurística Búsqueda en profundidad con vuelta atrás cronológica Propagación de restricciones Antes de la búsqueda Durante la búsqueda 9

Restricciones El tipo más simple es la restricción unaria, que restringe los valores de una sola variable. Una restricción binaria relaciona dos variables. Las restricciones de orden alto implican tres o más variables. Un ejemplo son los puzzles cripto-aritméticos. 10

Puzzles cripto-aritméticos Variables: F T U W R O X1 X2 X3 Dominio: {0,1,2,3,4,5,6,7,8,9} Restricciones: TodasDif (F,T,U,W,R,O) O + O = R + 10 X1 X1 + W + W = U + 10 X2 X2 + T + T = O + 10 X3 X3 = F, T 0, F 0 11

Búsqueda en profundidad con vuelta atrás cronológica Búsqueda en profundidad sobre las variables Asignar valor por estrategia exhaustiva Comprobar restricciones tras cada posible asignación Si no se satisfacen para ningún valor, vuelta atrás sobre la última asignación válida Tipos de variables: pasadas actual futuras 12

Algoritmo de vuelta atrás cronológica 1. Asignar a cada variable el valor indefinido. Pila vacía. 2. Seleccionar una variable futura como variable actual. Si hay, borrar de futuras y empilar (top = variable actual), sino, la asignación actual es SOLUCIÓN. 3. Seleccionar un valor no usado para la variable actual. Si hay, marcar el valor como usado, sino, asignar valor indefinido a la variable actual, marcar todos sus valores como no usados, desempilar la variable y añadirla a futuras, si pila vacía, NO HAY SOLUCIÓN, sino, ir a 3. 4. Comprobar las restricciones entre las variables pasadas y la actual. Si satisfechas, ir a 2, sino ir a 3. (Es posible usar heurísticas para seleccionar variables (2.) y valores (3.)) 13

Ejemplo: 4-reinas Colocar 4 reinas, una en cada fila de un tablero 4x4, sin que se maten Variables: R1,..., R4 (reinas) Dominios: [1.. 4] para cada Ri (columna) Restricciones: Ri no-mata Rj Grafo: Ri No-mata [1.. 4] [1.. 4] Rj 14

Ejemplo: 4-reinas R1=1 R1=2 R2=1 NO R2=2 NO R2=3 R3=1 NO R3=2 NO R3=3 NO R3=4 NO Backtracking R2 R2=4 R3=1 NO R3=2 R4=1 NO R4=2 NO R4=3 NO R4=4 NO Backtracking R3, R2, R1 R2=1 NO R2=2 NO R2=3 NO R2=4 R3=1 R4=1 NO R4=2 NO R4=3 15

Propagación de restricciones Un conjunto de restricciones puede inducir otras (que estaban implícitas). La propagación de restricciones (PR) es el proceso de hacerlas explícitas X 2 X 1 azul azul,rojo azul,rojo,verde X azul,verde 3 X 4 El papel de la PR es disminuir el espacio de búsqueda. Se puede realizar la propagación: 1) como preproceso: eliminar zonas del espacio donde no hay soluciones (arc consistency); 2) durante el proceso: podar el espacio a medida que la búsqueda progresa (forward checking). rojo azul verde rojo 16

Propagación de restricciones Cada ciclo tiene dos partes: 1) Se propagan las restricciones: - Posible utilización de reglas de inferencia - Tener en cuenta que las restricciones no tienen por qué ser independientes (Muchas restricciones implican a varias variables, una variable participa en muchas restricciones.) 2) Se analiza el resultado: 2.1 Solución encontrada 2.2 Solución imposible 2.3 Seguir buscando: proceso heurístico de búsqueda 17

Propiedades sobre grafos de restricciones Se pueden definir propiedades sobre los grafos de restricciones que permiten reducir el espacio de búsqueda. k-consistency: poda de valores que no sean posibles para un grupo de k variables: Arc consistency (2-consistency): Eliminamos valores imposibles para parejas de variables. Path consistency (3-consistency): Eliminamos valores imposibles para ternas de variables.... Comenzar con un grafo k-consistent (2, 3,...) reduce el número de vueltas atrás.

PR: preproceso Un PSR es arco-consistente si para cada par de variables (X i, X j ) y para cualquier valor v k de D i existe un valor v l de D j tal que se satisfacen las restricciones. Es decir se trata de que los valores posibles de X i sean consistentes con la restricción asociada al arco. Lo que realmente pretendemos es que todas las variables sean arco consistentes para todos los arcos que inciden en ellas. Es decir que los dominios actuales de cada variable sean consistentes con todas las restricciones. Si un PSR no es arco-consistente se le puede convertir mediante el siguiente algoritmo: 1 Añadir a lista_arcos los arcos dirigidos del grafo de restricciones 2 mientras no vacia (lista_arcos) hacer 2.1 seleccionar un arco (X i, X j ) de lista_arcos, eliminarlo 2.2 si existe un valor v k de D i tal que no existe un valor v l de D j compatible se elimina v k de D i. Se añaden a lista_arcos aquellos arcos de G que terminan en X i excepto el inverso del analizado (es decir se vuelve a analizar la consistencia de arcos cuyo destino ha podido cambiar)

Ejemplo: Colorear Mapa C3 C2 AZUL, ROJO, VERDE AZUL AZUL, ROJO AZUL, VERDE Lista inicial: (C1,C2), (C2,C1), (C2,C3), (C3,C2), (C2,C4), (C4,C2), (C3,C4), (C4,C3) C4 C1 (C1,C2): eliminar AZUL (C2,C1): ok (C2,C3): ok (C3,C2): eliminar AZUL (C2,C4): ok (C4,C2): eliminar AZUL (C3,C4): eliminar VERDE añadir (C2,C3) (C4,C3): ok (C2,C3): ok

Propagación durante la búsqueda (forward checking) Modificación del algoritmo de búsqueda en profundidad con vuelta atrás cronológica Anticipación: detectar cuanto antes caminos sin solución y podarlos. Asignar un valor y consultar las restricciones sobre las variables futuras con arco desde la actual Se eliminan valores no compatibles de los dominios correspondientes a dichas variables futuras Equivale a hacer arco-consistente la variable actual con las futuras en cada paso La eficiencia dependerá del problema (incrementamos el coste de cada iteración)

Algoritmo forward checking 1. Asignar a cada variable el valor indefinido. Pila vacía. 2. Seleccionar una variable futura como variable actual Si hay, borrar de futuras y empilar (top = variable actual) sino, la asignación actual es SOLUCIÓN 3. Seleccionar un valor no usado para la variable actual Si hay, marcar el valor como usado sino, asignar valor indefinido a la variable actual marcar todos sus valores como no usados desempilar la variable y añadirla a futuras si pila vacía, NO HAY SOLUCIÓN, sino, ir a 3 4. Propagar las restricciones a las variables futuras si el dominio de una de ellas resulta vacío, ir a 3

Ejemplo: 4-reinas R1=1? Propagamos: R2=3,4; R3=2,4; R4=2,3 R1=1 R2=3? Propagamos: R3= R2=4? Propagamos: R3=2; R4=3 R2=4 R3=2? Propagamos: R4= Ningún otro valor para R3. Backtracking a R2 Ningún otro valor para R2. Backtracking a R1 R1=2? Propagamos: R2=4; R3=1,3; R4=1,3,4 R1=2 R2=4? Propagamos: R3=1; R4=1,3 R2=4 R3=1? Propagamos: R4=3 R3=1 R4=3? No hay propagaciones R4=3

Heurísticas adicionales La búsqueda con vuelta atrás puede mejorarse. Reordenación de las variables: Antes de la búsqueda (primero las mas restrictivas) Durante la búsqueda Variable con mas restricciones Variable con menos valores La reordenación de variables puede reducir el tiempo de búsqueda varios ordenes de magnitud en ciertos problemas.

Grafos de restricciones: ejemplo 25

Grafos de restricciones 26

Grafos de restricciones 27

Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any variable has no legal values 28

Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any variable has no legal values 29

Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any variable has no legal values 30

Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any variable has no legal values 31

Constraint propagation Forward checking propagates information from assigned to unassigned variables, but doesn't provide early detection for all failures: NT and SA cannot both be blue! Constraint propagation repeatedly enforces constraints locally 32

Arc consistency Simplest form of propagation makes each arc consistent X Y is consistent iff for every value x of X there is some allowed y 33

Arc consistency Simplest form of propagation makes each arc consistent X Y is consistent iff for every value x of X there is some allowed y 34

Arc consistency Simplest form of propagation makes each arc consistent X Y is consistent iff for every value x of X there is some allowed y If X loses a value, neighbors of X need to be rechecked 35

Arc consistency Simplest form of propagation makes each arc consistent X Y is consistent iff for every value x of X there is some allowed y If X loses a value, neighbors of X need to be rechecked Arc consistency detects failure earlier than forward checking Can be run as a preprocessor or after each assignment 36