Clase 3: Generalidades de CSP I¶
Proyecciones¶
Un CSP
- Un conjunto de variables X
- Cada una de estas variables tiene un Dominio
- Un punto solución pertenece al producto cartesiano entre los dominios, en otras palabras, cada una de las variables va a tomar un valor dentro de su dominio
- Un restriccion: Un subcojunto de variables de entrada X y existe uno o más puntos que la satisfacen que pertenecen al producto cartesiano del dominio.
Equivalencia de CSP
Un problema CSP se puede escribir de muchas formas
¿Como nos damos cuenta que son lo mismo?
Si su conjunto de soluciones es el mismo
CSP satisfactible y no satisfactible
- Un CSP está resuelto si:
- Todas las restricciones se cumplen
- No existen variables con dominios vacios
- Un CSP no es satisfactible
- Contiene una restricción falsa x > y and y > x
- Alguno de los dominios es vacio
- Para satisfacer debe existir un punto en los dominios que resuelve las restricciones
- Para que sea insatisfactible no existe un punto en los dominios que satisfaga las restricciones
Esquema de un CSP
Mientras no esté resuelvo
- Preprocesamiento: Incluir las restricciones (por cada nodo del arbol se pueden incluir nuevas restricciones)
- Propagación de restricciones: Los dominios se acotan a los valores factibles \(x = [1,10] \wedge y=[11,20] \wedge x+y <=15 \therefore x = [1,10] \wedge y=[11,14]\)
- Si hay un valor atómico, entonces se para la búsqueda (un valor para cada una de las variables)
- Si no, entonces hacemos split, hacemos una suposición sobre uno de las variables y eso nos divide la busqueda (arbol)
- Proceed by cases: Propagar + split
¿Que podemos hacer con un CSP?
- Encontrar una solución
- Encontrar todas las soluciones
- Encontrar una forma de generar las soluciones (ecuación)
- Determinar si no existe solución (no satisfactible)
- Encontrar la mejor solución
- Encontrar todas las mejores soluciones
- Encontrar soluciones con un error dado (flexibles)
Atómico
Tenemos un valor de todas las variables que resuelve el problema, en ocasiones se puede realizar más busqueda en este estado*(posterior)
Estrategias de split (división)
- Enumeración: Dar un valor especifico a una variable por una lado y por el otro descartarlo x = 5 y x ≠ 5
- Labeling (etiquetado) es que divide el problema en todos los valores del dominio \(x \in [1..5], x = 1 \vee x = 2 \vee x = 3 \vee x = 4 \vee x = 5\)
- Bisección: Es tomar por la mitad del dominio
Dividir una restricción
- P(x) = a se pueede dividir como P(x) = a o P(x) = -a
- Que pasa cuando dividimos se generan 1 o más nuevos CSP, ejemplo y = 5 o y ≠ 5
Heuristicas
- Variable a elegir para decidir
- Valor a elegir (minimo)
- Resitrcción para dividir y = 5 o y ≠ 5
Tecnicas de busqueda
- Backtracking
- Branch and bound (optimización)
- Puede combinar con propagación de restricciones
- Backtraing inteligente (programarlo)
Backtracking
- Nodos son generados en la ejecución
- Nodos son CSP
- Hojas puede ser resueltos o fallidos
Branch and bound
Tenemos que incluir una función heuristica, la función heuristica que tan buena es la solución (valor cercano a 0 en parecido al optimo)
Consistencioa
El dominio de las variables en cada nodo tiene valores que satisfacen a las restricciones, como esto se cumple para cada restricción C se llama arco consistente
Resumen¶
Basado en el contenido de la clase, aquí está un resumen sobre CSP (Constraint Satisfaction Problems):
1. Definición de CSP
- Consiste en un conjunto de variables X
- Cada variable tiene su propio dominio
- La solución debe pertenecer al producto cartesiano de los dominios
- Contiene restricciones que deben ser satisfechas
2. Características importantes
- Un CSP está resuelto cuando todas las restricciones se cumplen y no hay dominios vacíos
- Un CSP es insatisfactible cuando contiene restricciones contradictorias o dominios vacíos
3. Esquema de resolución
- Preprocesamiento: Incluir restricciones
- Propagación de restricciones: Acotar dominios a valores factibles
- Split (división) cuando no hay valor atómico
4. Objetivos posibles
- Encontrar una o todas las soluciones
- Determinar si no existe solución
- Encontrar la mejor solución o todas las mejores soluciones
- Encontrar soluciones con un error dado