teoria

37
Inteligencia Artificial (2006) Problemas de satisfacci ´ on de restricciones (CSPs) Cap ´ ıtulo 5 Problemas de satisfacci´ on de restricciones (CSPs) Cap´ ıtulo 5 1

Upload: angelguardianmon

Post on 09-Jul-2015

488 views

Category:

Spiritual


1 download

TRANSCRIPT

Page 1: Teoria

Inteligencia Artificial (2006)

Problemas de satisfaccion de restricciones (CSPs)Capıtulo 5

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 1

Page 2: Teoria

Aspectos a considerar

♦ Ejemplos de CSP

♦ Busqueda con Backtracking para CSPs

♦ Busqueda Local para CSPs

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 2

Page 3: Teoria

Problema de satisfaccion de restricciones (CSP)

En problemas de busqueda estandar:cada estado es una “caja negra”—una estructura de datos arbitraria

que soporta el test de objetivo, la funcion heurıstica y lafuncion sucesor (rutinas especıficas del problema)

CSP:un estado es definido por variables Xi con valores de un dominio Di

el test de objetivo es un conjunto de restricciones que especificancombinaciones permitidas de valores para subconjuntos de variables

Ejemplo simple de un lenguaje de representacion formal

Permite utilizar algoritmos de proposito general con mas poderque los algoritmos de busqueda estandard

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 3

Page 4: Teoria

Ejemplo: coloreado de mapa

WesternAustralia

NorthernTerritory

SouthAustralia

Queensland

New South Wales

Victoria

TasmaniaVariables WA, NT , Q, NSW , V , SA, T

Dominios Di = {red, green, blue}Restricciones: las regiones adyacentes deben tener colores diferentes

e.g., WA 6= NT (si el lenguaje lo permite), o(WA, NT ) ∈ {(red, green), (red, blue), (green, red), (green, blue), . . .}

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 4

Page 5: Teoria

Ejemplo: coloreado de mapa (cont)

WesternAustralia

NorthernTerritory

SouthAustralia

Queensland

New South Wales

Victoria

Tasmania

Las soluciones son asignaciones que satisfacen todas las restricciones, e.g.,{WA = red,NT = green,Q = red,NSW = green, V = red, SA = blue, T = green}

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 5

Page 6: Teoria

Definicion formal de un CSP

Clase especial de problema, caracterizado por:

1. Un conjunto de variables X1,X2, . . . ,Xn.

2. Por cada variable Xi, un dominio Di que especifica los valores posiblesque la variable puede tomar.

3. Un conjunto de restricciones C1, C2, . . . , Cm, una funcion de eva-

luacion (o ambas)

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 6

Page 7: Teoria

Definicion formal de un CSP

Clase especial de problema, caracterizado por:

1. Un conjunto de variables X1,X2, . . . ,Xn.

2. Por cada variable Xi, un dominio Di que especifica los valores posiblesque la variable puede tomar.

3. Un conjunto de restricciones C1, C2, . . . , Cm, una funcion de eva-

luacion (o ambas)

Solucion de un CSP: asignacion completa que satisface todas las restric-ciones (consistente) y (opcionalmente) optimiza la funcion de evaluacion

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 7

Page 8: Teoria

Grafo de restriccion

CSP binario: cada restriccion relaciona a lo sumo dos variables

Grafo de restriccion: nodos son variables, arcos muestran restricciones

Victoria

WA

NT

SA

Q

NSW

V

T

Los algoritmos de CSP de proposito general usan la estructura del grafopara acelerar la busqueda. E.g., Tasmania es un subproblema independiente!

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 8

Page 9: Teoria

Tipos de CSPs

Variables discretasdominios finitos; tamano d ⇒ O(dn) asignaciones completas♦ e.g., CSPs Booleanos, incl. Satisfabilidad booleana (NP-completa)

dominios infinitos (integers, strings, etc.)♦ e.g., job scheduling, variables son dıas de inicio/fin de cada job♦ necesita un lenguaje de restriccion, e.g., StartJob1+5 ≤ StartJob3

♦ restricciones lineales son resolubles, no lineal no es decidible

Variables continuas♦ e.g., tiempos de inicio/fin para las observaciones del Telescopio Hubble♦ restricciones lineales se resuelven en tiempo pol. con metodos de PL.

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 9

Page 10: Teoria

Tipos de restricciones

Restricciones unarias involucran una unica variable,e.g., SA 6= green

Restricciones binarias involucran pares de variables,e.g., SA 6= WA

Restricciones de orden mas alto involucran 3 o mas variables,e.g., restricciones de columnas criptoaritmeticas

Restricciones de preferencias (restricciones blandas), e.g., red es mejor quegreen

a menudo representables por un costo para cada asignacion de variable→ problemas de optimizacion restringido

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 10

Page 11: Teoria

Ejemplo: Criptoaritmetica

OWTF U R

+OWTOWT

F O U R

X2 X1X3

Variables: F T U W R O X1 X2 X3

Dominios: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}Restricciones

alldiff(F, T, U,W, R, O)O + O = R + 10 ·X1, etc.

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 11

Page 12: Teoria

CSPs del mundo real

Problemas de asignacione.g., quien dicta que clase

Problemas de auleroe.g., ¿donde y cuando es ofrecida determinada clase?

Configuracion de Hardware

Scheduling de Transporte

Scheduling en Fabricas

Muchos de estos problemas involucran variables con valores reales

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 12

Page 13: Teoria

Formulacion de busqueda estandard

Comenzamos con el enfoque directo (elemental), luego lo arreglamos

Los estados estan definidos por los valores asignados hasta el momento

♦ Estado inicial: la asignacion vacıa, { }

♦ Funcion sucesor: asignar un valor a una variable no asignadaque no entra en conflicto con la asignacion actual.⇒ falla si no existe una asignacion legal

♦ Test de objetivo: la asignacion actual es completa

1) Esto es igual para todos los CSPs!2) Cada solucion aparece a profundidad n con n variables

⇒ usar depth-first search3) El paso es irrelevante, ⇒ tambien se usa form. de estado completa4) b = (n− `)d a prof. `, luego n!dn hojas y solo hay dn asig. completas!

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 13

Page 14: Teoria

Backtracking search

Las asignaciones de variables son conmutativas, i.e.,[WA = red then NT = green] es lo mismo que [NT = green then

WA = red]

Solo necesito considerar asignaciones a una unica variable en cada nodo⇒ b = d y hay dn hojas

Depth-first search para CSPs con asignaciones consistentes de a una variablees llamada backtracking search

Backtracking search es el algoritmo no informado basico para CSPs

Permite resolver n-reinas para n ≈ 25

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 14

Page 15: Teoria

Backtracking search

function Backtracking-Search(csp) returns solution/failure

return Recursive-Backtracking({ }, csp)

function Recursive-Backtracking(assignment, csp) returns soln/failure

if assignment is complete then return assignment

var←Select-Unassigned-Variable(Variables[csp],assignment, csp)

for each value in Order-Domain-Values(var,assignment, csp) do

if value is consistent with assignment given Constraints[csp] then

add {var = value} to assignment

result←Recursive-Backtracking(assignment, csp)

if result 6= failure then return result

remove {var = value} from assignment

return failure

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 15

Page 16: Teoria

Ejemplo de backtracking

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 16

Page 17: Teoria

Ejemplo de backtracking

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 17

Page 18: Teoria

Ejemplo de backtracking

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 18

Page 19: Teoria

Ejemplo de backtracking

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 19

Page 20: Teoria

Mejorando la eficiencia de backtracking search

Algunos metodos de proposito general pueden producir enormes ganan-cias de velocidad:

1. ¿Cual deberıa ser la proxima variable a asignar?

2. ¿En que orden deberıan ser considerados sus valores?

3. ¿Podemos detectar fallas inevitables mas anticipadamente?

4. ¿Podemos sacar provecho de la estructura del problema? (no lo veremos)

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 20

Page 21: Teoria

Valores restantes mınimos

Valores restantes mınimos (MRV):elige la variable con la menor cantidad de valores legales

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 21

Page 22: Teoria

Heurıstica degree (del grado)

Permite desempatar entre variables MRV

Heurıstica degree:elige la variable involucrada en el mayor numero de restricciones con otras

variables no asignadas

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 22

Page 23: Teoria

Valor menos restrictivo

Dada una variable, elegir el valor menos restrictivo:aquel que excluye el menor numero de valores en las variables restantes

Allows 1 value for SA

Allows 0 values for SA

Combinando estas heurısticas hace factible la resolucion del 1000 reinas

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 23

Page 24: Teoria

Forward checking

Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales

WA NT Q NSW V SA T

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 24

Page 25: Teoria

Forward checking

Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales

WA NT Q NSW V SA T

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 25

Page 26: Teoria

Forward checking

Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales

WA NT Q NSW V SA T

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 26

Page 27: Teoria

Forward checking

Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales

WA NT Q NSW V SA T

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 27

Page 28: Teoria

Propagacion de restricciones

Forward checking propaga informacion desde variables asignadas a no asig-nadas, pero no provee una deteccion temprana de todas las fallas:

WA NT Q NSW V SA T

NT y SA no pueden ser ambas azules!

Propagacion de restricciones fuerza restricciones localmente en forma repe-tida

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 28

Page 29: Teoria

Consistencia de arco

La forma mas simple de propagacion hace cada arco consistente

X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido

WA NT Q NSW V SA T

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 29

Page 30: Teoria

Consistencia de arco

La forma mas simple de propagacion hace cada arco consistente

X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido

WA NT Q NSW V SA T

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 30

Page 31: Teoria

Consistencia de arco

La forma mas simple de propagacion hace cada arco consistente

X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido

WA NT Q NSW V SA T

Si X pierde un valor los vecinos de X se vuelven a controlar

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 31

Page 32: Teoria

Consistencia de arco

La forma mas simple de propagacion hace cada arco consistente

X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido

WA NT Q NSW V SA T

Si X pierde un valor los vecinos de X se vuelven a controlar

Consistencia de arco detecta las fallas mas temprano que forward checking

Puede ejecutarse como preprocesamiento o despues de cada asignacion

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 32

Page 33: Teoria

Algoritmo de consistencia de arco

function AC-3( csp) returns the CSP, possibly with reduced domains

inputs: csp, a binary CSP with variables {X1, X2, . . . , Xn}

local variables: queue, a queue of arcs, initially all the arcs in csp

while queue is not empty do

(Xi, Xj)←Remove-First(queue)

if Remove-Inconsistent-Values(Xi, Xj) then

for each Xk in Neighbors[Xi] do

add (Xk, Xi) to queue

function Remove-Inconsistent-Values(Xi, Xj) returns true iff succeeds

removed← false

for each x in Domain[Xi] do

if no value y in Domain[Xj] allows (x,y) to satisfy the constraint Xi ↔ Xj

then delete x from Domain[Xi]; removed← true

return removed

O(n2d3), puede ser reducida a O(n2d2) (pero detectar todas es NP-duro)

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 33

Page 34: Teoria

Algoritmos iterativos para CSPs

Hill-climbing y simulated annealing usualmente trabajan conestados “completos”, i.e., todas las variables asignadas

Para aplicarlos a CSPs:permitir estados con restricciones insatisfechaslos operadores reasignan los valores de las variables

Seleccion de variable: elegir en forma random cualquier variable en conflicto

Seleccion de valor mediante la heurıstica min-conflictos:elegir valor que produce el menor numero de conflictosi.e., hillclimb con h(n) = numero total de restricciones violadas

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 34

Page 35: Teoria

Ejemplo: 4-Reinas

Estados: 4 reinas en 4 columnas (44 = 256 estados)

Operadores: mover reina en una columna

Test de objetivo: no hay ataques

Evaluacion: h(n) = numero de ataques

h = 5 h = 2 h = 0

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 35

Page 36: Teoria

Performance de min-conflictos

Dado un estado inicial random, puede resolver n-reinas en tiempo casi cons-tante para un n arbitrario con alta probabilidad (e.g., n = 10,000,000)

Lo mismo parece ser cierto para cualquier CSP generado aleatoriamenteexcepto en un rango estrecho del radio

R =numero de restricciones

numero de variables

R

CPUtime

critical ratio

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 36

Page 37: Teoria

Resumen

CSPs son una clase especial de problemas:estados definidos por valores de un conjunto fijo de variablestest objetivo definido por restricciones sobre valores de variables

Backtracking = depth-first search con una variable asignada por nodo

Heurısticas para el ordenamiento de variables y seleccion de valor ayudansignificativamente

Forward checking previene asignaciones que garantizan una falla posterior

Propagacion de restricciones (e.g., consistencia de arco) realiza un trabajoadicional para restingir valores y detectar inconsistencias

Min-conflictos es usualmente efectivo en la practica

Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 37