Problemas de satisfaccin de restricciones (CSPs) por sus siglas en Ingles, son problemas matemticos definido como un conjunto de objetos tal que su estado debe satisfacer un nmero de restricciones o limitaciones. CSPs representa las entidades de un problema como una coleccin homognea finita de restricciones sobre variables, las que son resueltas por mtodos de satisfaccin de restricciones. CSPs son el tema de una intensa investigacin en Inteligencia Artificial e Investigacion de operaciones, dado que la generalidad en su formulacin provee un principio bsico para analizar y resolver problemas de distintos tipos. CSPs a menudo muestran gran complejidad, requiriendo una combinacin de mtodos heursticos y bsqueda combinatoria para ser resueltos en un tiempo razonable. El Problema de satisfacibilidad booleana (SAT), el Satisfiability Modulo Theories (SMT) y answer set programming (ASP) pueden ser a grandes rasgos modelados como una forma de problema de satisfaccin de restricciones. Ejemplos de problemas sencillos que pueden ser modelados como problema de satisfaccin de restricciones. Problema de las ocho reinas Teorema de los cuatro colores Problema de coloracin de mapas Sudoku, Futoshiki, Kakuro (Cross Sums), Numbrix, Hidato y muchos otros puzzles De forma general, problemas de restricciones pueden ser ms difciles, y pueden no ser expresables en alguno de estos sistemas simples. Ejemplos de la vida real son Planeamiento y Asignacin de recursos. Definicin formal Formalmente, un problema de satisfaccin de restriccin es definido como un triplo , donde es un conjunto de variables, es el dominio de valores, y es un conjunto de restricciones. Toda restriccin es un par (usualmente representado como una matriz), donde es una - Tupla de variables y es una relacin -aria en . Una evaluacin de las variables es una funcin del conjunto de variables a el dominio de valores, . Una evaluacin satisfice una restriccin si . Una solucin es una evaluacin que satisfice todas las restricciones.
[SISTEMAS INTELIGENTES] IDSYSTEMS 2014
Leccion 4.3 Satisfaccion de restricciones Pgina 2
Resolucin de CSPs Los problemas de satisfaccin de restricciones en un dominio finito son resueltos tpicamente usando una forma de algoritmo de bsqueda. Las tcnicas ms usadas son variantes de bsqueda con retroceso cronolgico (backtracking), propagacin de restricciones, y bsqueda local. Retroceso cronolgico es un algoritmo recursivo. Mantiene una asignacin parcial de las variables. Inicialmente, todas las variables estn sin asignar. En cada paso, una variable es seleccionada, y todos los posibles valores son asignados a la variable por turnos. Por cada valor, la consistencia de la asignacin parcial es chequeada con respecto a las restricciones; en caso de consistencia, un llamado recursivo es hecho. Cuando todos los valores fueron probados, el algoritmo hace backtracking. En este algoritmo bsico con retroceso cronolgico, la consistencia es definida como la satisfaccin de todas las restricciones donde las variables estn asignadas. Existen algunas variantes de backtracking. Backmarking mejora la eficiencia del chequeo de consistencia. Backjumping permite guardar parte de la bsqueda por backtracking "ms de una variable" en algunos casos. Aprendizaje por restricciones infiere y guarda nuevas restricciones que pueden ser usadas luego para evitar parte de la bsqueda. Look-ahead es tambin a menudo usado en backtracking para intentar prever el efecto de seleccionar una variable o un valor, por lo tanto, determinar a veces con anticipacin cundo es satisfasible o insatisfasible un subproblema. Las tcnicas de propagacin de restricciones son mtodos usados para modificar un problema de satisfaccin de restricciones. Ms especfico, son mtodos que fuerzan una forma de consistencia local, que son condiciones relacionadas con la consistencia de un grupo de variables y/o restricciones. Propagacin de restriccin tiene varios usos. Primero, cambia el problema en otro que es equivalente pero usualmente ms simple de resolver. Segundo, puede probar la satisfacibilidad o la insatisfacibilidad de problemas. En general no hay garanta de que esto ocurra; sin embargo, siempre ocurre para algunas formas de propagacin de restriccin y/o para algunos tipos de problemas especficos. Las formas ms conocidas y usadas de consistencia local son consistencia de arco, consistencia de hper arco, y consistencia de camino. El mtodo de propagacin de restriccin ms popular es el algoritmo AC-3, el cual asegura consistencia de arco. Los mtodos de bsqueda local son algoritmos de satisfacibilidad incompleta. Ellos pueden encontrar una solucin al problema, pero pueden no encontrarle incluso si el problema es satisfasible. Ellos trabajan mejorando iterativamente una asignacin completa de las variables. En cada paso, un grupo pequeo de variables les son cambiados los valores, con el objetivo fundamental de incrementar el nmero de restricciones que satisfacen la actual asignacin. El algoritmo de Min-Conflictos es especfico de bsqueda local para CSPs basado en ese principio. En la prctica, bsqueda local parece funcionar bien cuando estos cambios son tambin afectados por una seleccin aleatoria.
[SISTEMAS INTELIGENTES] IDSYSTEMS 2014
Leccion 4.3 Satisfaccion de restricciones Pgina 3
Aspectos tericos de CSPs Problemas de decisin CSPs son estudiados tambin en Teora de la complejidad computacional. Una pregunta importante es si para cada conjunto de relaciones, el conjunto de todos los CSPs que pueden ser representado usando solo las relaciones escogidas de ese conjunto estn en P o NP-completo. Si el teorema Dicotoma es verdadero, entonces CSPs provee uno de los subconjuntos ms grandes conocidos de NP los que evitan problemas NP-intermedio, cuya existencia fue demostrada por el teorema de Ladner bajo la suposicin que P NP. El teorema de Schaefer sobre dicotoma maneja el caso cuando todas las relaciones disponibles son operadores booleanos, eso es para dominio de tamao 2. El problema de dicotoma de Schaefer fue recientemente generalizado clases grandes de relaciones. Todo CSP pude ser tambin considerado como un problema de conjuncin de preguntas. 1
Problemas de funciones Una situacin similar existe entre las clases funcionales FP y #P. Por una generalizacin del teorema de Ladner, tambin hay problemas que no son FP ni #P-completo tan grande como FP #P. Como en el caso de decisin, un problema en el #CSP es definido por un conjunto de relaciones. Cada problema toma una frmula booleana como entrada y la tarea es computar el nmero de asignaciones que satisfacen las restricciones. Esto puede ser generalizado usando tamao de dominios grandes y fijar un peso asignacin que satisface y computando la suma de estos pesos. Es conocido que cualquier problema complejo con peso #CSP est en FP o #P-hard. Variantes de CSPs El modelo clsico de Problema de Satisfaccin de Restricciones define un modelo esttico, inflexible de restricciones. Este modelo rgido es un defecto que lo hace difcil para representar problemas fcilmente. 2 Varias modificaciones a la definicin bsica de CSP han sido propuestas para adaptar el modelo a una amplia variedad de problemas. CSPs dinmico CSPs dinmico 3 (DCSPs) son usados cuando la formulacin original de un problema es alterado de alguna forma, tpicamente porque el conjunto de restricciones a considerar cambia por el entorno. 4
DCSPs son vistos como una secuencia de CSPs estticos, cada uno es una transformacin del anterior en el que variables y restricciones pueden ser adicionadas (restriction) o eliminadas (relaxation). La informacin encontrada en la formulacin inicial del problema puede ser usada para refinar los siguientes. El mtodo de solucin puede ser clasificado acorde a la forma en que la informacin es transferida: Oracles: las soluciones encontradas de los anteriores CSPs en la secuencia son usadas como heursticas para guiar la resolucin del actual CSP. [SISTEMAS INTELIGENTES] IDSYSTEMS 2014
Leccion 4.3 Satisfaccion de restricciones Pgina 4
Local repair: cada CSP es calculado comenzando desde la solucin parcial del CSP anterior y reparando las inconsistencias con bsqueda local. Constraint recording: nuevas restricciones son definidas en cada estado de la bsqueda para representar el conocimiento de inconsistencia de grupo de las decisiones. Esas restricciones son llevadas hacia el nuevo CSP. CSPs flexible Los CSPs clsicos tratan las restricciones como fuertes, significan que son inviolables (cada solucin las debe satisfacer por completo) e inflexible (en este sentido las restricciones deben ser completamente cumplidas o por el contrario son completamente violadas). Los CSP flexibles relajan estas suposiciones, relajan parcialmente las restricciones y permiten a la solucion no cumplir con exactamente todas las restricciones. Algunos tipos de CSPs flexible incluyen: MAX-CSP, donde un numero de restricciones son permitidas que se violen, y la calidad de la solucin es medida por el nmero de restricciones cumplidas. Weighted CSP, un MAX-CSP en el cual cada restriccin violada es penalizada acorde a una preferencia predefinida. Es preferida la solucin con menos penalizaciones. Fuzzy CSP modela las restricciones como relaciones de Lgica difusa en las cuales el cumplimiento de una restriccin es una funcin continua de los valores de las variables, yendo desde completamente cumplidas hasta completamente violadas.
[SISTEMAS INTELIGENTES] IDSYSTEMS 2014
Leccion 4.3 Satisfaccion de restricciones Pgina 5
Referencias:
Obtenido de http://es.wikipedia.org/w/index.php?title=Problema_de_satisfaccin_de_restricciones&oldid=7317731 5 Programacin con restricciones