Documente Academic
Documente Profesional
Documente Cultură
ndice
1. Introduccin 2. Resolucin de un problema de satisfaccin de restricciones. 3. Formulacin del problema de satisfaccin de restricciones. - Descripcin formal de un PSR. - Clasificacin de los PSR. - Ejemplos. - Grafo de Restricciones. 4. Resolucin de un PSR en trminos de una bsqueda. - Formulacin de un PSR en trminos de una bsqueda estndar. - Bsqueda con vuelta atrs para un PSR.
5. Tcnicas para la mejora de la eficincia. - Heursticas para la seleccin de variable y ordenamiento de valor. - Propagacin de la informacin a travs de las restricciones. - Comprobacin hacia delante. - Consistencia de arco y consistencia fuerte. - Manejo de restricciones especiales. - Vuelta atrs inteligente: mirando hacia atrs. 6. Bsqueda local para problemas de satisfaccin de restricciones. 7. La estructura de los problemas.
Bibliografa bsica
Apuntes del profesor. Inteligencia Artificial. Un Enfoque Moderno (2a Ed.) S. Russell, P. Norvig Prentice Hall (2006)
1. Introduccin
Muchos de los problemas de la IA pueden contemplarse como problemas de verificacin de restricciones constraint satisfaction problems, donde el objetivo consiste en descubrir algn estado del problema que satisfaga un conjunto dado de restricciones.
Ejemplo 1. El diseo de tareas puede contemplarse como un problema de verificacin de restricciones donde el proceso de diseo debe realizarse dentro de unos lmites fijos de tiempo, coste y materiales.
Ejemplo 2. El problema de las n-reinas. Deben situarse n reinas en un tablero de nxn de manera que no exista jaque entre ellas.
Ejemplo 3. Coloreado de mapas. Usando tres colores (rojo, verde, azul), colorear cada una de las provincias de Andalucia de manera que dos provincias adyacentes (vecinas) no posean el mismo color.
Ejemplo 4. Satisfactibilidad proposicional. Dado un conjunto L de variables proposicionales y un conjunto C de clusulas formadas con los smbolos de L, determinar si existe una asignacin de valores de verdad a los smbolos de L de manera que se satisfagan todas las clusulas.
10
Ejemplo 5. La elaboracin de un horario de clases para los cuatro cursos del Grado en Informtica exige que cada curso se imparta en un horario de maana, tarde, o ambos. Los horaris de maana deben ajustarse de 8.30 a 14h los lunes y miercoles, de 8 a 13 los martes y jueves y de 8.30 a 11 los viernes. Adems, no pueden impartirse ms de un nmero dado de horas al dia de una asignatura y las horas deben ajustarse en la medida de lo posible a las preferencias de los profesores. Tambin debe haber un hueco de 10 minutos entre clase y clase, sin otros huecos temporales vacios entre clases.
11
Ejemplo 6. Suma criptoaritmtica. Asignar valores del 0 al 9 a cada letra de manera que la suma de dos palabras sea aritmticamente correcta.
12
Ejemplo 7. Planificacin. Dada una empresa de transporte, establecer una planificacin diaria de las tareas para los diferentes conductores de la empresa, de manera que todas las tareas se lleven a cabo en el horario de trabajo y se satisfagan los requerimientos de los clientes (por ejemplo, hay tareas que se exige que se lleven a cabo a una hora prevista, otras pueden realizarse a cualquier hora del dia).
13
Algunos problemas como los mencionados pueden resolverse mediante tcnicas de bsqueda convencionales. De hecho, la bsqueda en un espacio de estados continuar siendo el mtodo bsico de resolucin del problema.
14
No obstante, al contemplar la solucin de un problema como una verificacin de restricciones, es frecuentemente posible una reduccin sustancial en la cantidad de bsquedas que se necesitan, pues ahora:
1. El planteamiento del problema en trminos de la satisfaccin de restricciones permitir optimizar el proceso de bsqueda de una solucin. 2. Slo se pretende alcanzar un estado que satisfaga las restricciones consideradas y no un estado ptimo.
15
18
Ejemplo 1. El problema de situar 8 reinas en un tablero de ajedrez de manera que ninguna de ellas haga jaque a cualquier otra: - Las variables u objetos son las ubicaciones de cada una de las 8 reinas en cada columna,esto es, los cuadrados del tablero ocupados por las reinas. Habr por tanto 8 variables. - Las restricciones especificaran que no puede haber dos reinas en una misma fila, columna o diagonal los parmetros aqu son la fila, la columna y la diagonal de cada ubicacin. Un estado solucin contendra, por tanto, valores para todas las variables de manera que todas las restricciones son satisfechas.
Inteligencia Artificial. Gabriel Fiol 19
TWO + TWO FOUR El objetivo del problema es asignar un valor numrico diferente, 0..9, a cada una de las letras de la suma, de forma que sta sea aritmticamente correcta. Las variables son cada una de las letras que forman parte del problema. En este caso hay seis: T, W, O, F, U, R. Adems, deben considerarse las variables de acarreo adicionales. Las restricciones especifican que todas las letras tengan valores diferentes y que se cumplan las reglas de la suma. En este caso:
20
Algunos aspectos a considerar: 1. Pueden existir dependencias entre las restricciones. 2. Sobre una misma variable pueden establecerse muchas restricciones recurdese que sobre un objeto pueden considerarse diversos parmetros, y un mismo parmetro puede participar de varias restricciones. 3. Una misma restriccin puede estar definida sobre muchos objetos, esto es, puede involucrar muchas variables un mismo parmetro puede considerarse sobre varios objetos.
Inteligencia Artificial. Gabriel Fiol 21
Todo problema con restricciones mltiples se puede reducir a uno equivalente con restricciones binarias.
24
Ejemplos
Ejemplo 1. El problema del coloreado de zonas Considrese la tarea de colorear cada zona del mapa de manera que ninguna de las partes adyacentes tenga el mismo color. Los colores que pueden usarse son el rojo, el verde y el azul.
TN AO AS V
Inteligencia Artificial. Gabriel Fiol
NGS
25
26
Por ejemplo, las combinaciones aceptables para AO y TN son los pares: {(rojo, verde), (rojo, azul), (verde, rojo), (verde, azul), (azul, rojo), (azul, verde)} Existen numerosas soluciones posibles, como por ejemplo: {AO=rojo, TN=verde, Q=rojo, NGS=verde, V=rojo, AS=azul, T=rojo}
TN AO AS V NGS
27
CONCLUSIONES
Existe posiblemente ms de una manera de formular un problema en trminos de un PSR. Dependiendo del tipo de formulacin, la solucin al problema puede resultar ms o menos compleja computacionalmente, tal como ocurre en la formulacin de un problema en trminos de una bsqueda estndar. Este aspecto se tratar en el prximo punto.
29
TALLER-1
Formular en trminos de un PSR el siguiente problema. Dado un conjunto L de variables proposicionales y un conjunto C de clusulas escritas en trminos de las variables de L, determinar si existe una asignacin de valores de verdad (verdadero, falso) a los smbolos de L de manera que se satisfagan todas las clusulas. De qu tipo de PSR se trata? Cul es la dimensin del espacio de soluciones del problema?
30
TALLER-2
Formular en trminos de un PSR el siguiente problema. Asignar valores del 1 al 9 a cada letra de manera que: TWO + TWO FOUR De qu tipo de problema se trata?
31
TALLER-3
Considera el problema de la asignacin de tareas (scheduling) a empleados segn su capacidad (se asigna una tarea a cada empleado), de manera que se pretende alcanzar una asignacin ptima. Se considera que se tiene una tabla de capacidades, C:
T1 E1 E2 E3 1 3 2 T2 3 2 3 T3 2 3 1
TALLER-4
Considrese una empresa de transportes con n conductores y m tareas (transportes). Cada tarea mi tiene una duracin, determinada por su hora de inicio y su hora de final en la que debe realizarse. Un conductor slo puede realizar un transporte en un momento dado, por tanto, dos tareas que tengan una interseccin temporal en sus horas de inicio y final deben llevarse a cabo necesariamente por dos transportistas. Se trata de hacer una asignacin de tareas a conductores para un cierto dia, de manera que se respeten los horarios de realizacin de las tareas. Formular el anterior problema en trminos de un PSR De qu tipo de problema se trata?
Inteligencia Artificial. Gabriel Fiol 33
TALLER-5
Considera el problema de la asignacin de tareas a empleados segn su capacidad (taller 3), de manera que ahora una tarea puede asignarse a ms de un empleado. Se pretende alcanzar una asignacin ptima. Se considera que se tiene una tabla de capacidades, C:
T1 E1 E2 E3 1 3 2 T2 3 2 3 T3 2 1 1
Grafo de restricciones
Un PSR puede ilustrarse de forma clara mediante un grafo de restricciones.
Los nodos del grafo corresponden a variables del problema. Los arcos representan las restricciones.
35
Grafo de restricciones
Ejemplo
AO AS V
TN Q AO NGS AS V T
Inteligencia Artificial. Gabriel Fiol 36
TN
NGS
Restricciones mltiples o de alto orden: implican tres o ms variables. Ejemplo. Puzzles cripto-aritmticos.
38
39
Variables auxiliares: Xc1, Xc2 y Xc3. Son binarias. Descripcin de las restricciones que afectan a las variables auxiliares:
O + O = R + 10Xc1 Xc1 + W + W = U + 10Xc2 Xc2 + T + T = O + 10Xc3 Xc3 = F
Cada ecuacin representa una restriccin. Como en las ecuaciones excepto la ltima- participan ms de dos variables, entonces deben ser enfocadas como descripciones de alto orden.
40
El siguiente hiper-grafo de restricciones constituye una representacin del PSR mediante restricciones de alto orden. Cada restriccin viene representada por un cuadrado que relaciona las variables que retringe. todasdif(T, W, O, F, U, R) O + O = R + 10Xc1 Xc1 + W + W = U + 10Xc2 Xc2 + T + T = O + 10Xc3 Xc3 = F
F T U W R O
X c3
X c2
X c1
De manera general, una restriccin de alto orden y dominio finito puede reducirse a un conjunto de restricciones binarias si se introducen suficientes variables auxiliares.
41
Cuando en un problema existen restricciones de obligacin y de preferencia, slo estas ltimas tendrn un costo asignado. Por homogeneidad en el manejo de los costes, a las restricciones de obligacin puede asignrseles un coste 0. Los algoritmos que manejan restricciones de preferencia pueden implementarse con la misma tcnica que que los que slo usan restricciones de obligacin, pero haciendo uso de la tcnica de ramificacin y poda con objeto de detectar cundo una solucin parcial no puede aspirar a ser ptima.
43
44
Ventajas: Los estados pueden representarse de manera estndar, como un conjunto de variables con valores asignados. La funcin sucesor y el test objetivo pueden considerarse de forma genrica, aplicndose a todo PSR. Pueden desarrollarse heursticas eficaces y genricas que no requieran ninguna informacin adicional ni experta sobre el dominio especfico del problema. Pueden usarse tcnicas para detectar las podas por adelantado, sin necesidad de explorar regiones del rbol que no conducen a una solucin. La estructura del grafo de restricciones puede usarse para simplificar el proceso de bsqueda de una solucin.
Inteligencia Artificial. Gabriel Fiol 45
Las variables discretas pueden tambin tener dominios infinitos, por ejemplo, el conjunto de los nmeros enteros, o el conjunto de todas las cadenas de caracteres. Ejemplo: cuando se requieren programar trabajos de construccin en el calendario, la fecha de inicio de cada trabajo es una variable, y sus valores posibles es el nmero de das enteros a partir de la fecha actual. Con tales dominios no es posible describir las restricciones enumerando todas las combinaciones permitidas de valores, para ello debe utilizarse lo que se conoce como un lenguaje de restriccin.
48
Por ejemplo, si Trabajo1 toma 5 das, y debe preceder a Trabajo3, entonces necesitaramos un lenguaje de restricciones de desigualdades algebraicas tal como InicioTrabajo1 + 5 InicioTrabajo3
49
Los PSR con dominios contnuos son muy comunes en el mundo real y se estudian extensamente en el campo de la investigacin operativa. La categora ms conocida de PSR con dominios contnuos son los problemas de programacin lineal. Tales problemas pueden resolverse en tiempo polinomial en el nmero de variables.
50
Estado inicial. La asignacin vaca, { }, en la que ninguna de las variables ha recibido asignacin alguna. Operadores. Un operador se basa en una asignacin de un valor a una variable no asignada que no genere ningn conflicto con variables ya asignadas. Test objetivo. La asignacin actual es una asignacin completa. Coste de ruta. Un coste constante para cada paso.
51
52
Solucin a la conmutatividad.
Todos los algoritmos de bsqueda para un PSR generan los sucesores de un nodo considerando nicamente las posibles asignaciones para una sola variable del mismo. Con esta consideracin el nmero de nodos hoja es dn.
{}
AO = rojo
AO = verde
AO = azul
AO = rojo TN = verde
AO = rojo TN = azul
54
funcin Bsqueda-Con-Vuelta-Atrs(PSR) devuelve una solucin o fallo devolver Vuelta-Atrs-Recursiva({}, PSR) funcin Vuelta-Atrs-Recursiva(asignacin, PSR) devuelve una solucin o fallo Inicio si asignacin es completa entonces devolver asignacin var Selecciona-variable-no-asignada(variables(PSR), asignacin, PSR) para cada valor en orden-valores-dominio(var, asignacin, PSR) hacer si valor es consistente con asignacin en restricciones(PSR) entonces aadir {var = valor} a asignacin resultado Vuelta-Atrs-Recursiva(asignacin, PSR) si resultado fallo entonces devolver resultado sino borrar({var = valor}) de asignacin fin si; sino no hacer nada (*se prueba con el siguiente valor a travs del bucle*) fin si fin para; devolver fallo fin;
Inteligencia Artificial. Gabriel Fiol 56
58
funcin busqueda_general(PSR) retorna nodo o fallo inicio inserta_lista_de_espera(lista, nodo) *El nodo inicial es la asignacin vacia* bucle hacer si vacia(lista) entonces retorna fallo sino nodo elimina_elemento(lista); si prueba_meta(problema, nodo) es xito entonces retorna nodo sino inserta_lista_de_espera(lista, expandir(nodo,operadores[PSR])) *La funcin expandir devuelve una lista de nodos ordenados por prioridad, de acuerdo con la funcin heurstica aplicada* *La funcin operadores slo permite generar nodos que no violen la consistencia de las correspondientes asignaciones* fin si fin si fin bucle hacer fin
Inteligencia Artificial. Gabriel Fiol 59
Algunas cuestiones fundamentales relacionadas con la seleccin de una buena heurstica. 1. Qu variable debe asignarse a continuacin y en qu orden deben considerarse sus valores? 2. Cules son las implicaciones de las asignaciones de las variables actuales para las otras variables no asignadas? 3. Cuando un camino falla esto es, se alcanza un estado en el que una variable no tiene ningn valor legal, cmo puede procederse de manera efectiva en la vuelta atrs? .
60
Las respuestas a las anteriores cuestiones han hecho posible dotar a los algoritmos de tcnicas que permiten mejorar considerablemente su rendimiento. a. Estas tcnicas son de propsito general. b. Son totalmente independientes del problema. c. Permiten aprovechar las caractersticas de la estructura particular de los PSR. En la siguiente seccin se proporcionan respuestas a cada una de estas preguntas.
61
La forma ms sencilla de seleccionar una variable a travs consiste en escoger la siguiente variable no asignada en el orden arbitrario en que aparecen ordenadas en la lista variables(PSR).
63
{}
AO = rojo
AO = verde
AO = azul
AO = rojo TN = verde
AO = rojo TN = azul
TN AO AS V
Inteligencia Artificial. Gabriel Fiol
NGS
64
As, se pretende que el fracaso se produzca cuanto antes (mejor en este momento que en un futuro), pues ello permite podar las ramas del rbol de bsqueda lo ms pronto posible. De otra forma, habra tendencia a explorar (innecesariamente) niveles ms inferiores del rbol para finalmente volver al nivel actual donde llevar a cabo la poda. As pues, en cada paso se seleccionar la variable que contenga un mnimo nmero de valores consistentes para asignar en este paso. Esta tcnica se conoce como la heurstica de los mnimos valores restantes, MVR.
Inteligencia Artificial. Gabriel Fiol 65
66
Grado heurstico
En caso de empate entre varias variables, la heurstica MVR no aporta ningn mecanismo de seleccin de la variable ms adecuada. En este caso podra usarse la idea intuitiva de intentar reducir el factor de ramificacin sobre futuras opciones, seleccionando, entre las variables no asignadas, aquella que se ve implicada en el mayor nmero de restricciones. sta es una idea lgica, pues la asignacin de valores a variables con muchas restricciones requerir posiblemente numeroros ensayos de valores, lo que se traduce en ramificaciones desde las mencionadas variables (pues cuantas ms restricciones tiene una variable ms difcil resulta encontrar un valor coherente para la misma). As, cuanto ms bajas ms cerca de las hojas estn situadas estas variables en el rbol de bsqueda, ms forzadas estarn las opciones de asignacin de valores a las mismas, lo que significa que ms ensayos de valores ramificaciones debern llevarse a cabo.
67
En otras palabras, las posibilidades de que la asignacin a una variable se vea bloqueada y as producir una alta ramificacin y muy posiblemente una vuelta atrs, son tanto mayores cuantas ms restricciones posea la variable. Por tanto, se quiere evitar que las variables con muchas restricciones se ramifiquen excesivamente, para lo cual resulta aceptable considerar que tales variables aparezcan en lugares altos del rbol cerca de la raiz. Observando el grafo de restricciones del problema de colorear zonas se ve que la variable AS, con cinco restricciones, es la que mayor nmero de ellas tiene, las otras variables tienen dos o tres restricciones, excepto T que tiene cero.
68
69
Como conclusin general, la heurstica de mnimos valores restantes ha dado mejores resultados que el grado heurstico, pero ste puede ser til para el desempate.
70
TN AO AS V
NGS
Ejemplo. En el grafo de la figura, una vez realizadas las asignaciones AO = rojo y TN = verde, se debe elegir un valor para Q. En este caso azul es una mala opcin, porque elimina todas las posibilidades de asignacin de AS, con lo que la heurstica del valor menos restringido asignara a Q el valor rojo. En caso de que la variable seleccionada est sujeta a varias restricciones con otras variables todava no seleccionadas, entonces para obtener la capacidad restrictiva de un valor dado, puede utilizarse la media aritmtica del mencionado valor con cada una de las variables.
Inteligencia Artificial. Gabriel Fiol 72
Cuestin: Cmo llevar a cabo esta poda por adelantado? Solucin: Observando algunas restricciones antes de proceder a la seleccin de una nueva variable. Esto supone la capacidad de propagar hacia delante la informacin contenida en las restricciones con objeto de prever futuras inconsistencias.
74
A continuacin se estudian algunos mtodos que permiten observar por adelantado las consecuencias de las restricciones cuando se asignan valores a variables.
75
76
TN AO AS V
Dominios iniciales Despus de AO = rojo Despus de Q = verde Despus de V = azul
NGS
AO TN Q NGS V AS T R-V-A R-V-A R-V-A R-V-A R-V-A R-V-A R-V-A R R R V-A R-V-A R-V-A R-V-A A A V V R R A R-V-A A V-A R-V-A A R-V-A R-V-A
Obsrvese como despus de asignar AO = rojo, Q = verde y V = azul, el dominio de AS es vaco, lo cual indica que la mencionada asignacin no conduce a ninguna solucin. En otras palabras, no es necesario que el proceso de bsqueda continue, pues en el momento en que se seleccione la variable AS se dar cuenta de que existe un bloqueo y deber volver atrs.
Inteligencia Artificial. Gabriel Fiol 77
Cuestiones tcnicas.
Cada nodo del rbol debe mantener informacin sobre el estado (variables asignadas) y la lista de valores posibles en las variables por asignar. El forward checking permite implementar muy fcilmente la heurstica MVR. Tambin puede usarse de forma combinada con las heursticas MVR i Grado heurstico.
78
Ejercicio. Combnese la comprobacin hacia delante con las heursticas MVR y Grado heurstico en el ejemplo del coloreado de zonas.
79
Taller 6
Considrese el problema de la asignacin de tareas a conductores (taller 4). Pngase un ejemplo con al menos 5 tareas y 2 conductores. a. Combnese el algoritmo de vuelta atrs con el forward checking para resolver el problema. b. Combnese el algoritmo de vuelta atrs con la heurstica MVR y el forward checking para resolver el problema. c. Combnese el algoritmo de vuelta atrs con las heursticas MVR y Grado heurstico y el forward checking para resolver el problema.
Inteligencia Artificial. Gabriel Fiol 80
Taller 6.bis
Considrese el problema de la asignacin de tareas a conductores (taller 4). Desarrollar una implementacin del algoritmo primero en profundidad para los PSR, que admita una entrada de datos y salida de resultados. Para este taller, no es necesario que la interfcie sea grfica. El programa debe desarrollarse en casa y ser probado por el profesor en el taller. Los resultados de la prueba servirn de guia para el buen desarrollo de la prctica por parte de los alumnos. Los alumnos que hayan desarrollado una implementacin aceptable, recibiran una bonificacin de hasta 1 punto en la nota final de las actividades.
Inteligencia Artificial. Gabriel Fiol 81
Taller 7
Considrese el problema de situar 4 reinas sin que hagan jaque entre ellas.
1. Combnese el algoritmo de vuelta atrs con el forward checking para resolver el problema. Se supone que las reinas se consideran una a la vez, a partir de las columnas de izquierda a derecha. 2. Combnese el algoritmo de vuelta atrs con la heurstica MVR y el forward checking para resolver el problema. 3. Combnese el algoritmo de vuelta atrs con las heursticas MVR y Grado heurstico y el forward checking para resolver el problema.
Inteligencia Artificial. Gabriel Fiol 82
Taller 8
Considrese el problema del taller 5. Pngase un ejemplo con al menos 5 tareas y 3 empleados. a. Combnese el algoritmo de vuelta atrs con el forward checking para resolver el problema. b. Combnese el algoritmo de vuelta atrs con la heurstica MVR y el forward checking para resolver el problema. c. Combnese el algoritmo de vuelta atrs con las heursticas MVR y Grado heurstico y el forward checking para resolver el problema.
Inteligencia Artificial. Gabriel Fiol 83
TN AO AS V
NGS
AO TN Q NGS V AS T R-V-A R-V-A R-V-A R-V-A R-V-A R-V-A R-V-A R R R V-A R-V-A R-V-A R-V-A A A V V R R A R-V-A A V-A R-V-A A R-V-A R-V-A
84
El concepto de consistencia de arco proporciona un mtodo rpido de propagacin de restricciones que es ms potente que la comprobacin hacia delante.
86
87
88
EJEMPLO
TN AO AS V
NGS
AO TN Q NGS V AS T R-V-A R-V-A R-V-A R-V-A R-V-A R-V-A R-V-A R R R V-A R-V-A R-V-A R-V-A A A V V R R A R-V-A A V-A R-V-A A R-V-A R-V-A
En la fila 3 de la figura se observa que los dominios de AS y NGS son {azul} y {azul, rojo}, respectivamente. Para AS = azul, hay una asignacin consistente para NGS, que es NGS = rojo; por tanto, el arco desde AS a NGS es consistente. No obstante, el arco inverso desde NGS a AS no es consistente, pues para la asignacin NGS = azul no existe ninguna asignacin para AS consistente con la misma. Dicho arco puede hacerse consistente suprimiento el valor azul del dominio de NGS.
Inteligencia Artificial. Gabriel Fiol 89
TN AO AS V
NGS
AO TN Q NGS V AS T R -V -A R -V -A R-V -A R-V -A R-V -A R-V -A R-V -A R R R V -A R-V -A R-V -A R-V -A A A V V R R A R-V -A A V -A R-V -A A R-V -A R-V -A
Continuando con el ejemplo de la situacin descrita en la tercera fila de la anterior tabla, si se aplica el mtodo del arco consistente al arco desde AS a TN, se observa que los dominios de ambas variables son idnticos, coincidiendo ambos con el conjunto {azul}. En tal caso el valor azul debe suprimirse del dominio de AS, lo cual lo deja vaco. De esta forma el mtodo del arco consistente detecta una inconsistencia que no hubiera sido detectada por el mtodo de comprobacin hacia delante.
Inteligencia Artificial. Gabriel Fiol 90
Criterio de parada:
Todos los arcos son consistentes, o Algn dominio queda vacio, lo que significa que existe alguna inconsistencia entre los valores de las variables asignadas. Si en la etapa de preproceso algn dominio queda vacio, entonces el PSR no tiene solucin.
92
94
95
DOMINIOS
A(2,3,4) A(4) B(1,2, 4) B(2,4) B(2) C(1,3) C(3) D(2,3,4) D(4) E(1)
RESTRICCIONES
E<A
ARCOS A REVISAR
(E,A) (A,E)
E<B
(E,B) (B,E)
E<C
(E,C) (C,E)
BC
(B,C) (C,B)
C<D
(C,D) (D,C)
E<D
(E,D) (D,E)
BD
(B,D) (D,B)
A= D
(A,D) (D,A)
A(4)
B(2)
C(3)
D(4)
E(1)
No hay ms restricciones
97
Aunque en el anterior ejemplo se ha encontrado una solucin al problema mediante la aplicacin de la consistencia de arco, la funcin de sta es slo mantener el PSR consistente.
98
Algoritmo para mantener la consistencia de arco, AC3 El algoritmo para mantener la consistencia de arco, AC3, utiliza una cola para guardar los arcos que tienen que comprobarse. Cada arco (Xi, Xj ) se quita sucesivamente de la cola y se comprueba su consistencia; si algn valor del dominio de Xi requiere ser suprimido, entonces cada arco (Xk, Xi) apuntando a Xi debe ser reinsertado en la cola para la comprobacin de su consistencia.
99
funcin AC-3(psr) devuelve un PSR posiblemente con dominio reducido; entradas: psr es un PSR binario con n variables, {X1, X2,, Xn}; variables locales: cola, una cola de arcos, inicialmente todos los arcos del psr; Inicio mientras cola no sea vacia hacer (Xi, Xj) DESENCOLA(cola); si BORRAR-VALORES-INCONSISTENTES(Xi, Xj) entonces inicio para cada Xk en VECINOS(Xi) hacer AADIR(Xk, Xi) a la cola fin para fin si fin mientras fin;
funcin BORRAR-VALORES-INCONSISTENTES(Xi,Xj) devuelve verdadero si y slo si se ha borrado algn valor; inicio borrado falso; para cada x en DOMINIO(Xi) hacer si no hay un y en DOMINIO(Xj) que permita a (x,y) satisfacer la restriccin entre Xi y Xj entonces inicio borrar x de DOMINIO(Xi); borrado verdadero fin si fin para devolver borrado fin;
100
En ambos casos el proceso debe aplicarse repetidamente hasta que no permanezcan inconsistencias.
102
Si se detecta que algn dominio queda vacio, entonces no hay solucin con las asignaciones actuales. Si se detecta que todos los dominios tienen un nico valor, antonces se ha alcanzado una solucin. El proceso de bsqueda termina. En otro caso, la bsqueda prosigue, seleccionando una nueva variable para asignarle un valor.
103
TN AO AS V
NGS
104
La CA detecta las inconsistencias entre arcos (Xi, Xj); pero la propiedad de arco consistente no necesariamente se propaga a ternas (Xi, Xj, Xk) o eplas con un mayor nmero variables.
TN AO AS V NGS
Tenemos: AO(R), TN(V,A), AS(V,A), Q(V,A), NGS(R), V(V,A), T(R,V,A). Aunque todos los arcos sean consistentes, la consistencia no se propaga a la epla (AO, TN, AS, Q, NGS). Motivo: Al asignar posteriormente un valor a una variable no asignada, entonces su dominio se restringe a este valor, con lo que puede dejar de satisfacerse la CA.
Inteligencia Artificial. Gabriel Fiol 105
Grafo fuertemente kconsistente: si es kconsistente y tambin (k-1)consistente, (k-2)consistente,, 1consistente. PSR fuertemente nconsistente: Supngase que se tiene un PSR con n nodos variables de manera que es fuertemente n consistente esto es, fuertemente kconsistente, para k = n. El problema puede resolverse sin vuelta atrs. Primero se elige un valor consistente para X1. Entonces se tiene garantizado poder elegir un valor para X2, porque el grafo es 2 consistente, tambin para X3, porque es 3consistente, El tiempo para encontrar una solucin es (nd).
107
El mayor obstculo radica en el establecimiento de la n-consistencia fuerte. En el peor de los casos, cualquier algoritmo que establezca la n-consistencia fuerte tendr una eficiencia exponencial en n.
108
109
110
Ejemplo
R1 R2 R3 R4
TN AO AS
AO=R
TN= {V,A} AS= {V,A} Q= {V,A} NGS=R V= {V,A}
NGS V
R1, R2, R3, R4 representan restricciones todasdif Aplicando el anterior algoritmo para detectar las inconsistencia en la siguiente asignacin parcial {AO = rojo, NGS = rojo}, observamos que las variables AS, TN y Q estn relacionadas por una restriccin todasdif, cuyo dominio es {verde, azul}. Al haber tres variables y solamente dos valores se detecta la existencia de inconsistencias en la asignacin parcial a travs de R2..
Inteligencia Artificial. Gabriel Fiol 111
La consistencia de arco no detecta las inconsistencias del anterior ejemplo para la asignacin parcial considerada. Por tanto, un procedimiento simple de consistencia para una restriccin de alto orden es a veces ms eficaz que la aplicacin de la consistencia de arco a un conjunto equivalente de restricciones binarias. Para hacer uso de este tipo de restricciones especiales, es preciso que prviamente el problema se formule en trminos de un PSR adecuado al caso.
112
Ejemplo 2.
Considrese la restriccin de alto orden llamada restriccin de recursos o restriccin como_mximo. Por ejemplo, PA1, ..., PA4 denotan la cantidad de personas asignadas a cada una de las cuatro tareas. La restriccin que no asigna ms de 10 personas en total se escribe: como_mximo(10, PA1, PA2, PA3, PA4). As, se puede descubrir una inconsistencia simplemente comprobando la suma de los valores mnimos de los dominios actuales (el dominio de una variable se refiere a la cantidad de personas que esta variable puede contener). Por ejemplo, si cada variable tiene el dominio {3, 4, 5, 6}, la restriccin como_mximo no puede satisfacerse, pues el nmero de personas asignadas seria 3x4=12.
Inteligencia Artificial. Gabriel Fiol 113
Tambin puede hacerse cumplir la consistencia suprimiendo el valor mximo de cualquier dominio si no es consistente con los valores mnimos de los otros dominios. As, si cada variable tiene el dominio {2, 3, 4, 5, 6}, los valores 5 y 6 pueden suprimirse de cada dominio.
114
Ejemplo 3. Para problemas grandes cuyos recursos vienen delimitados con valores enteros (por ej. problemas de logstica que implican el movimiento de miles de personas en cientos de vehculos) no es, en general, posible representar el dominio de cada variable como un conjunto grande de enteros y gradualmente reducir este conjunto por los mtodos de comprobacin de consistencias. En estos casos, los dominios se representan por lmites superiores e inferiores y son manejados por la propagacin de lmites.
115
Supngase que hay dos vuelos, el A y el B, para los cuales los aviones tienen capacidades de 165 y 385 pasajeros respectivamente. Los dominios iniciales para el nmero de pasajeros en cada vuelo son: VueloA [0, 165] y VueloB [0, 385] Supngase que se tiene la restriccin adicional que los vuelos juntos deben transportar 420 personas: VueloA + VueloB [420, 420]
116
VueloA [0, 165]; VueloB [0, 385] VueloA + VueloB [420, 420] Propagando los lmites de las restricciones los dominios se reducen a: VueloA [35, 165] y VueloB [255, 385] Se dice que un PSR es consistente-acotado si para todo valor de una variable X (incluyendo las cotas inferior y superior), existe un valor de Y que satisface la restriccin entre X e Y, para cada variable Y. La propagacin de lmites se utiliza mpliamente en problemas restringidos prcticos.
117
118
Observaciones.
El salto atrs ocurre cuando cada valor del dominio de un nodo (nodo bloqueado) est en conflicto con la asignacin actual. Pero la comprobacin hacia delante (FC) y la consistencia de arco descubren muchos bloqueos con antelacin y previenen a la bsqueda de alcanzar alguna vez el nodo bloqueado. As pues, el salto atrs parece ser redundante con una bsqueda de propagacin de la informacin a travs de las restricciones (PIR). No obstante, los mtodos de PIR, como el forward checking o el AC-3, no previenen la bsqueda de todos los conflictos, con lo cual se hace imprescindible el uso de bactracking. Por tanto, cuanto ms inteligente sea la tcnica de bactracking, ms eficiente ser el algoritmo de bsqueda.
Inteligencia Artificial. Gabriel Fiol 119
TN AO AS V
NGS
Obsrvese lo que ocurre cuando se considera el siguiente orden de seleccin de las variables: Q, NGS, V, T, AS, AO, TN Supngase que se ha generado la asignacin parcial {Q = rojo, NGS = verde, V = azul, T = rojo}. Al probar con la siguiente variable, AS, se observa que cada valor viola una restriccin. Entonces se vuelve atrs a la variable T y se prueba con un nuevo color para la misma. Naturalmente, este trabajo es intil, pues T est aislada de cualquier otra variable y no puede ni tan siquiera participar en la causa del fracaso.
Inteligencia Artificial. Gabriel Fiol 120
TN AO AS V
NGS
Una aproximacin ms inteligente a la vuelta atrs consiste en ir hacia atrs hasta el conjunto de variables que causaron el fracaso. Esto es, retroceder basndose en los motivos del fracaso. A este conjunto se le llama conjunto conflicto. En el ejemplo el conjunto conflicto de AS es {Q, NGS, V}. De manera general, el conjunto conflicto de una variable X es el conjunto de variables previamente asignadas que estn relacionadas con X a travs de las restricciones.
Inteligencia Artificial. Gabriel Fiol 121
Ahora, la vuelta atrs debera retroceder hasta el conjunto conflicto de la variable en curso para la cual no existe ninguna asignacin posible.
122
Ejemplo.
TN AO AS V
NGS
Considrese la asignacin parcial {AO=rojo, NGS=rojo, T=rojo} (sabemos que es inconsistente). Considrese la asignacin de valores en el siguiente orden de las variables: TN, Q, V, AS. Sabemos que no existe combinacin consistente de las cuatro variables, por lo que una vez TN haya agotado todos sus valores, surge la pregunta: dnde debe regresar el algoritmo? La causa del fracaso no se encuentra solamente en el conjunto conflicto de TN, sino en aquellas variables que no permiten ninguna asignacin consistente de TN, Q, V y AS juntas. As, una vez no se encuentre ningn valor alternativo para TN, deber retrocederse al conjunto conflicto que cause el fallo de las cuatro variables juntas.
Inteligencia Artificial. Gabriel Fiol 123
A partir de los anteriores ejemplos ya estamos en condiciones de ver cmo calculamos el conjunto conflicto de una variable. Esta idea puede implantarse fcilmente modificando el algoritmo Bsqueda-Con-Vuelta-Atrs, de manera que acumule el conjunto conflicto de cada variable.
124
125
En general, sea Xj la variable actual y sea conflicto(Xj) su conjunto conflicto. Si para todo valor posible de Xj se produce fallo, entonces se salta atrs a la variable ms reciente, Xi, tal que Xi conflicto(Xj), actualizndose el conjunto conflicto de Xi, de la siguiente manera: conflicto(Xi) conflicto(Xi) conflicto(Xj) {Xi}
126
Ejemplo
AO
TN
AS V
NGS
Considrese la asignacin parcial {AO=rojo, NGS=rojo, T=rojo}. Considrese en el siguiente orden la asignacin a TN, Q, AS, en la cual la variable AS falla en un instante dado, siendo {AO, NGS,TN, Q} su conjunto conflicto. Se salta entonces atrs a Q, cuya asignacin es la ms reciente de las que aparecen en el conjunto conflicto, y Q absorbe el conjunto conflicto de AS menos Q, naturalmente en su propio conjunto conflicto directo, que es {TN, NGS}. El nuevo conjunto conflicto de Q es {AO, TN, NGS}. Pero ya se han probado todos los valores sobre Q, lo que significa que no hay ninguna asignacin consistente de Q hacia delante a partir de la asignacin precedente. Por tanto, se vuelve hacia atrs a TN, cuya asignacin es la ms reciente. TN absorbe {AO, TN, NGS} - {TN} en su conjunto conflicto directo, que es {AO}, dando {AO, NGS}.
Inteligencia Artificial. Gabriel Fiol 127
TN AO AS V
NGS
Si para TN ya se han probado todos los posibles valores, entonces se vuelve atrs, en este caso a NGS; sino, se asigna a TN un valor todava no asignado.
128
129
Para llevar a cabo la implementacin de la vuelta atrs inteligente, puede usarse la comprobacin hacia delante, aadiendo ahora a cada fila de la matriz, una nueva columna en la que se almacenar el conjunto conflicto de la correspondiente variable. Cuando se vuelve atrs hay que actualizar adecuadamente el conjunto conflicto de las variables afectadas (detalle 1). Si se usa la comprobacin hacia delante, entonces dicha actualizacin es automtica.
130
La funcin sucesor elige una variable y cambia el valor que tiene asignado. Para ello puede hacer uso de cierta aleatoriedad y alguna heurstica. Los estados finales son soluciones al PSR. En realidad, se trata de mtodos de mejora iterativa.
131
Ejemplo.
En el problema de las 8 reinas, el estado inicial podra ser una configuracin arbitraria de ocho reinas en ocho columnas, y la funcin sucesor se encargara de escoger una reina en cada paso y moverla a otro cuadro de su columna.
132
En numerosos problemas se ha comprobado que el xito del mtodo reside especialmente en el estado inicial seleccionado ms que en la seleccin de la variable.
Inteligencia Artificial. Gabriel Fiol 133
El estado inicial puede elegirse al azar o por un proceso voraz de asignacin de valores que elige un valor de mnimo conflicto para cada variable. La funcin CONFLICTOS cuenta el nmero de restricciones violadas por un valor particular, considerando el resto de la asignacin actual.
135
Implementacindel mtodo
(seleccin de variable con ms restricciones No satisfechas)
FUNCION MIN-CONFLICTOS(MAX-PASOS) 1. Hacer ACTUAL igual a un nodo con una asignacin generada aleatoriamente. 2. Para I desde 1 hasta MAX-PASOS hacer 2.1 Si la asignacin de ACTUAL es una solucin, devolverla y terminar. 2.2 Hacer VARIABLE igual a una variable (distinta de la ltima modificada) escogida aleatoriamente de entre aquellas que participan en el mayor nmero de restricciones incumplidas. 2.3 Hacer SUCESORES igual a la lista de nodos obtenidos cambiando en la asignacin ACTUAL el valor de VARIABLE por cada uno de los posibles valores del dominio de VARIABLE en *VARIABLES* (excepto el correspondiente al valor que tena en ACTUAL) 2.4 Hacer ACTUAL el nodo de SUCESORES escogido aleatoriamente de entre aquellos cuya asignacin incumple el menor nmero de restricciones 3. Devolver FALLO
Inteligencia Artificial. Gabriel Fiol 136
Los mnimos conflictos son sorprendentemente eficaces para muchos PSRs, en particular, cuando se parte de un estado inicial razonable. La siguiente figura ilustra una solucin de dos pasos al problema de las 8 reinas usando mnimos conflictos para una posicin inicial dada y una seleccin aleatoria de la variable.
138
2 2 1 2 3 1 2 1
3 3 1 2 3 2 3 0
situacin inicial
El nmero de conflictos en cada cuadro de la columna considerada esto es, el nmero de reinas que atacan dicho cuadro viene anotado en cada uno de los cuadros. El algoritmo mueve la reina al cuadro de mnimo conflicto, deshaciendo los empates de manera aleatoria
Inteligencia Artificial. Gabriel Fiol 139
De manera extraordinaria, para el problema de las n-reinas, si no se tiene en cuenta la colocacin inicial de las reinas, el tiempo de ejecucin del anterior algoritmo es ms o menos independiente del tamao del problema. Resuelve el problema de un milln de reinas en un promedio de 50 pasos despus de la asignacin inicial. Estos sorprendentes resultados fueron el estmulo que condujo a gran parte de la investigacin en los aos 90 sobre la bsqueda local y sobre la diferencia entre problemas fciles y difciles. En trminos aproximados, se dice que las n-reinas es un problema fcil para la bsqueda local porque las soluciones estn densamente distribuidas en todas las partes del espacio de estados. El algoritmo de los mnimos conflictos tambin se ha utilizado para programar las observaciones del telescopio Hubble, reduciendo el tiempo utilizado para programar una semana de observaciones, de tres semanas a alrededor de unos 10 minutos.
140
Otra ventaja de la bsqueda local radica en que puede usarse en un ajuste online cuando el problema cambia. Esto resulta importante en la programacin de problemas. Por ejemplo, el programa de vuelos de una semana en un aeropuerto puede implicar miles de vuelos y decenas de miles de asignaciones de personal, pero el mal tiempo puede convertir la programacin en no factible. Se desea pues reparar la programacin ya hecha con un mnimo nmero de cambios en la misma. Esto puede llevarse a cabo fcilmente con un algoritmo de bsqueda local comenzando desde la programacin actual la cual constituye el estado inicial del algoritmo, que sera modificada con las oportunas asignaciones. Usar un algoritmo con vuelta atrs partiendo con un nuevo conjunto de restricciones las debidas al mal tiempo, requiere, por lo general, mucho ms tiempo y podra encontrar una solucin, a partir de la programacin actual como estado inicial, con muchos cambios.
Inteligencia Artificial. Gabriel Fiol 141
142
TN AO
SG AO Q NGS
AS V T
La zona T no est relacionada con ninguna otra zona del sub-grafo SG. Por tanto, es bvio que colorear la zona T y colorear el subgrafo, SG, son subproblemas independientes cualquier solucin para el sub-grafo SG combinada con cualquier solucin para la zona, T, produce una solucin para el problema.
Inteligencia Artificial. Gabriel Fiol 143
Considrese que cada PSRi tiene c variables del total de n variables, siendo c una constante. Entonces hay n/c subproblemas, cada uno de los cuales tiene un coste mximo asociado de dc recurdese que d es el nmero de valores de cada variable para resolverlo. As, el trabajo total es (dcn/c), que es lineal en n. Sin la descomposicin, el trabajo total es (dn), que es exponencial en n. Por tanto, cuanto menor es el nmero de variables, c, de los subproblemas cunto ms pequeos son los subproblemas-, menor es el factor dc y ms eficiente es la resolucin del problema entero. De ah la importancia de reducir un problema en subproblemas independientes siempre que se pueda.
Inteligencia Artificial. Gabriel Fiol 145
A B C (a) D
E A F (b) B C D E F
El grafo (a) representa el grafo de restricciones de un PSR estructurado en rbol y (b) ilustra una ordenacin lineal de las variables consistente con el rbol (a). Obsrvese como cada variable tiene un nico antecesor o padre. No obstante, cada variable puede tener ms de un descendiente o sucesor.
Inteligencia Artificial. Gabriel Fiol 147
De hecho, cualquier PSR estructurado mediante un rbol puede resolverse en tiempo lineal en el nmero de variables. A continuacin se muestra un algoritmo para ello:
1. Elegir cualquier variable como la raiz del rbol y ordnense las variables desde la raiz a las hojas de manera que el padre de cada nodo en el rbol precede al nodo en la nueva ordenacin vase la anterior figura (b). Etiquetar las variables X1, X2,, Xn de acuerdo con la ordenacin alcanzada. Ahora cada variable, excepto la raiz, tiene exactamente una variable padre. 2. Para j desde n hasta 2, aplicar la consistencia del arco (Xi, Xj), donde Xi es el padre de Xj, quitando los valores del DOMINIO(Xi) que sea necesario. 3. Para j desde 1 a n, asgnese cualquier valor para Xj consistente con el valor asignado para Xi, donde Xi es el padre de Xj.
F
148
1. Elegir cualquier variable como la raiz del rbol y ordnense las variables desde la raiz a las hojas de manera que el padre de cada nodo en el rbol precede al nodo en la nueva ordenacin vase la anterior figura (b). Etiquetar las variables X1, X2,, Xn de acuerdo con la ordenacin alcanzada. Ahora cada variable, excepto la raiz, tiene exactamente una variable padre. 2. Para j desde n hasta 2, aplicar la consistencia del arco (Xi, Xj), donde Xi es el padre de Xj, quitando los valores del DOMINIO(Xi) que sea necesario. 3. Para j desde 1 a n, asgnese cualquier valor para Xj consistente con el valor asignado para Xi, donde Xi es el padre de Xj.
Hay dos aspectos clave a destacar en el anterior algoritmo. Primero, despus del paso 2 el PSR es directamente arco consistente. Entonces la asignacin de valores del paso 3 no requiere ninguna vuelta atrs. Segundo, aplicando la comprobacin de la consistencia de arco en orden inverso, tal como se lleva a cabo en el paso 2, el algoritmo asegura que cualquier valor suprimido no puede poner en peligro la consistencia de arcos que ya han sido tratados. El algoritmo completo se ejecuta en tiempo (nd2).
Inteligencia Artificial. Gabriel Fiol 149
Ahora que se tiene un algoritmo eficiente para rboles, se considerar si los grafos de restricciones ms generales pueden reducirse a rboles de alguna manera. Hay dos formas de hacer esto: a. una basada en quitar nodos b. la otra basada en nodos que sufren colisiones.
150
a. La primera aproximacin impone la asignacin de valores a algunas variables de manera que las variables restantes formen un rbol. Ejemplo: considrese el grafo de retricciones del coloreado de zonas (a).
TN AO Q AO NGS AS V T V T AO NGS TN AO Q
(a)
(b)
151
TN AO Q AO NGS AS V T AO
TN AO Q NGS
V T
(a)
(b)
Si se suprime la zona AS, lo cual puede hacerse, entonces el grafo (a) se convertir en el rbol ilustrado en la anterior figura (b). Lo anterior puede llevarse a cabo fijando un valor para AS y suprimiendo de los dominios de las dems variables cualquier valor que sea inconsistente con el valor elegido para AS. Ahora, cualquier restriccin para el PSR despus de que AS y sus restricciones se quiten, ser consistente con el valor elegido para AS para los PSR binarios, para retricciones de orden alto la situacin es ms complicada. Ahora, el rbol restante puede resolverse con el anterior algoritmo resolviendo as el problema entero. Desde luego, el valor elegido para AS podra ser el incorrecto, lo que supone tener que intentarlo con los dems valores.
Inteligencia Artificial. Gabriel Fiol
152
Si el ciclo de corte tiene tamao c, entonces el tiempo de ejecucin total es (dc(n c)d2), donde: dc es el nmero de asignaciones posibles con c variables, (n c)d2 es el costo de la bsqueda de una asignacin consistente en un rbol de (n-c) variables (vase el anterior algoritmo).
Inteligencia Artificial. Gabriel Fiol 153
Si el grafo es casi un rbol, entonces c ser pequeo y los ahorros sobre la vuelta atrs sern enormes. En el peor de los casos, c ser tan grande como (n 2) en el rbol aparecern como mnimo dos nodos. Encontrar el ciclo de corte ms pequeo es un problema NP-duro existen varios algoritmos aproximados eficientes para esta tarea cuyo estudio no se ver en este captulo.
154
b. La segunda aproximacin se basa en la construccin de una descomposicin en rbol del grafo de restricciones en un conjunto de subproblemas relacionados. Cada subproblema se resuelve independientemente, y las soluciones que resultan son entonces combinadas. Se trata de una tcnica divide-y-vencers. La siguiente figura muestra una descomposicin en rbol del grafo de restricciones del problema del coloreado de zonas en cinco subproblemas.
155
TN AO
TN AO Q AO NGS AS V T SG
TN AS AS Q
Q AS NGS
NGS AS V T
156
Una descomposicin en rbol debe satisfacer las tres siguientes exigencias: i. Cada variable en el problema original aparece en al menos uno de los subproblemas. ii. Si dos variables estn relacionadas por una restriccin en el problema original, deben aparecer juntas junto con la restriccin en al menos uno de los subproblemas. iii. Si una variable aparece en dos subproblemas en el rbol, entonces debe aparecer en cada subproblema a lo largo del camino que une a estos subproblemas.
157
Las dos primeras condiciones aseguran que todas las variables y las restricciones estn presentes en la descomposicin. La tercera condicin indica que cualquier variable debe tener el mismo valor en cada subproblema en el que aparece. De hecho, los enlaces que unen subproblemas en el rbol hacen cumplir esta restriccin, pues un enlace indica la existencia de variables comunes en los subproblemas enlazados. Por ejemplo, AS aparece en los cuatro subproblemas de la anterior figura. Una vez hecha la descomposicin, cada subproblema se resuelve independientemente. Si alguno de los subproblemas no tiene ninguna solucin, se sabe que el problema entero no tiene ninguna solucin. Si en cambio todos los subproblemas pueden resolverse, entonces se intenta construir una solucin global como sigue:
Inteligencia Artificial. Gabriel Fiol 158
a. Primero, cada subproblema es visto como una megavariable cuyo dominio es el conjunto de todas las soluciones para el subproblema. Por ejemplo, el subproblema ms a la izquierda del coloreado de zonas que aparece en la anterior figura contiene tres variables: AO, AS y TN, y por tanto tiene seis posibles soluciones por ejemplo, {AO = rojo, AS = azul, TN = verde}.
b. Segundo, se resuelven las restricciones que unen los subproblemas, para lo cual pueden utilizarse algoritmos eficientes sobre rboles. Se insiste en que las restricciones entre subproblemas vienen representadas a travs de enlaces entre los mismos, los cuales manifiestan que las soluciones de los subproblemas enlazados deben estar de acuerdo con sus variables compartidas. Por ejemplo, considerando la solucin {AO = rojo, AS = azul, TN = verde} para el primer subproblema de la anterior figura, la nica solucin consistente para el siguiente subproblema es {AS = azul, TN = verde, Q=rojo}.
Inteligencia Artificial. Gabriel Fiol 159
El grafo de restricciones admite muchas descomposiciones en rbol. Una descomposicin ser tanto ms buena cuanto ms pequeos sean los subproblemas que la componen. Pero esto puede suponer que el nmero de subproblemas aumente.
160
Ejercicios y problemas
1. Dada la red inicial de la figura, donde en cada nodo se representa el dominio de la variable, obtngase la red arco consistente equivalente.
Y {9, 15}
r2,3 >
X {0, 10}
> r1,2
Z {8, 15}
161
2. El procedimiento de verificacin de restricciones se ha descrito en trminos de una bsqueda primero en profundidad. Pero la bsqueda primero en profundidad no es la nica forma de realizar esta bsqueda. a) Describa la formulacin de un PSR en trminos de una bsqueda primero en anchura. Crees que una tal bsqueda resulta adecuada en un PSR? Por qu? Cul es la eficiencia computacional mediante esta bsqueda? Ilustra las respuestas con un ejemplo claro. b) Crees que la aplicacin de una bsqueda el primero mejor a un PSR resultara adecuada? Por qu? Discute claramente la respuesta y en caso afirmativo ilstralo con algn ejemplo claro.
162
3. Razona claramente por qu el algoritmo de resolucin de un PSR estructurado mediante un rbol no funciona para grafos en general (puedes aplicar la idea de que en un grafo no rbol un nodo puede tener ms de dos antecesores padre). 4. Discute las tres cuestiones fundamentales relacionadas con la seleccin de una buena heurstica en un PSR. 5. Describe claramente el significado de las heursticas MVR y Grado Heurstico para la seleccin de una variable. Razona y justifica la idea intuitiva en la que se basa cada heurstica. 6. Resuelve a mano, con papel y lpiz, el problema del coloreado de mapas aplicando las heursticas MVR, Grado Heurstico, la heurstica del valor menos restringido, la propagacin hacia delante y la vuelta atrs inteligente. (Taller)
Inteligencia Artificial. Gabriel Fiol 163
7. Cul es la complejidad, en el peor caso, al ejecutar el algoritmo AC3 sobre un PSR estructurado en rbol? 8. Define la formulacin de un PSR en trminos de un problema de bsqueda estndar. Aplica claramente la definicin al problema de las 8 reinas. 9. Define los siguientes conceptos: Problema de satisfaccin de restricciones, restriccin, estado de un PSR, asignacin consistente, asignacin completa, solucin de un PSR, consistencia de arco, vuelta atrs inteligente, mnimos conflictos, tipos de restricciones, grafo de restricciones, grafo-rbol de restricciones. 10. Resuelve a mano el problema criptoaritmtico siguiente, usando la comprobacin hacia delante, las heursticas MVR y la del valor menos restringido y la vuelta atrs inteligente. (Taller)
Inteligencia Artificial. Gabriel Fiol 164
11. Considera el problema de las 8 reinas basado en colocar una reina sobre cada columna. Formula este problema, con precisin, de dos modos: a. Como un problema general de bsqueda. Considera los algoritmos de bsqueda primero en profundidad con ramificacin y poda, primero en amplitud y costo uniforme, para aplicar a la formulacin. b. Como un problema de satisfaccin de restricciones. Considera un algoritmo apropiado para resolverlo Cul es el coste asinttico, en el peor de los casos, para resolver el problema mediante cada uno de los algoritmos de los puntos a y b? En general, crees que es mejor el uso del algoritmo del punto b que todos los del punto a? Razona justificadamente la respuesta. (Taller)
Inteligencia Artificial. Gabriel Fiol 165
12. Mustrese como una restriccin de alto orden arbitraria, puede convertirse en un conjunto de restricciones binarias si se hace uso de las correspondientes variables auxiliares. Aplque se la respuesta a las siguientes restricciones: -A+B=C -A+B+C> -A+B+C=C+D+E=F+G
166
13. Considrese el siguiente puzzle lgico: en cinco casas, cada una con un color diferente, viven cinco personas de nacionalidades diferentes, cada una de fuma una marca de tabaco diferente, prefiere una bebida diferente, y tiene un animal diferente. Adems, se sabe que:
1. El noruego vive en la primera casa 2. La casa de al lado del noruego es azul 3. El habitante de la tercera casa bebe leche 4. El ingls vive en la casa roja 5. El habitante de la casa verde bebe caf 6. El habitante de la casa amarilla fuma Kools 7. La casa blanca se encuentra justo despus de la verde 8. El espaol tiene un perro 9. El ucraniano bebe t 10. El japons fuma Cravens 11. El fumador de Old Golds tiene un caracol 12. El fumador de Gitanes bebe vino 13. El vecino del fumador de Chesterfields tiene un reno 14. El vecino del fumador de Kools tiene un caballo
Inteligencia Artificial. Gabriel Fiol 167
Con la intencin de contestar la siguiente pregunta: Dnde vive Zebra y en qu casa se bebe el agua? Discute diferentes especificaciones de este problema como un PSR. Por qu prefieres una representacin sobre la otra?
168
14. El sudoku es un claro ejemplo de representacin del puzzle como un problema de satisfaccin de restricciones. Este problema se public en Nueva York en el ao 1979 bajo el nombre de Number Place y se hizo popular en Japn con el nombre de sudoku (Sudji wa dokushin ni kagiru: los nmeros deben ser sencillos o los nmeros deben aparecer una vez). En el problema del sudoku (ver un ejemplo en la figura), hay que rellenar las casillas de un tablero de 9 9 con nmeros del 1 al 9, de forma que no se repita ningn nmero en la misma fila, columna, o subcuadro de 3 3 que componen el sudoku. Modelar este problema como un CSP.
169
6 8 2 8 6 7
1 3
4 5 6
9 1
1
6 7 5 2 9 3 8 1 4
3 8 4 1 6 5 9 7 2
1 3 6 4 8 9 7 2 5
7 2 8 3 5 6 1 4 9
4 5 9 7 2 1 3 6 8
2 6 7 5 3 8 4 9 1
5 4 3 9 1 2 6 8 7
8 9 1 6 7 4 2 5 3
2 8 4
7 3
7 5 3
5 7 4 2 5 6 8 9 7
170
15. En un pueblo viven 4 familias A, B, C y D en casas prximas cuyos nmeros son: 1, 2, 3 y 4. D vive en una casa con menor nmero que B. B es vecino de A en una casa con mayor nmero. Hay al menos una casa entre B y C. D no vive en una casa cuyo nmero es 2. C no vive en una casa cuyo nmero es 4. Modele el problema como un PSR y resuelva qu familia vive en cada casa aplicando MVR, Forward-Checking y consistencia de arco.
171
16. Considera el problema de la asignacin de tareas a empleados segn su capacidad de manera que una tarea puede asignarse a ms de un empleado. Se pretende alcanzar una asignacin ptima. Se considera que se tiene una tabla de capacidades, C:
T1 E1 E2 E3 1 3 2 T2 3 2 3 T3 2 1 1
172
17. Almacenaje ptimo sobre una cinta. Se consideran n programas que deben ser almacenados sobre una cinta de longitud L de un ordenador. Cada programa, Pi, tiene una longitud li, 1in. Se supone que la cinta tiene cabida para todos los programas. Se supone que siempre que un programa se recupera desde la cinta, sta se posiciona al principio. As, si los programas estn almacenados en orden i1, i2,..., in, el tiempo tj para recuperar el programa Pj es proporcional a 1kj lik. Si todos los programas son recuperados con la misma frecuencia, entonces el tiempo esperado de recuperacin (T.E.R.) es 1/n 1jntj. En un almacenaje ptimo sobre una cinta se requiere encontrar una permutacin para los n programas de forma que el T.E.R. sea mnimo. Se pide que formules el mencionado problema en trminos de un PSR.
173
18. El problema de la mochila 0/1. Se tiene una mochila con una capacidad M y un conjunto de n objetos {o1, o2,..., on}. Cada objeto oi tiene un peso, pi, y un valor vi. Se trata de llenar la mochila con tantos objetos como sea posible, de manera que la suma de los pesos de los objetos no exceda M y la suma de los valores sea mximo, es decir, ningn otro subconjunto de objetos con peso no superior a M tiene un valor superior al subconjunto obtenido. Formlese el mencionado problema en trminos de un PSR.
174
No obstante, con esta especificacin resulta muy complejo especificar las restricciones. Por ejemplo: 1. 2. 3. 4. Casa 1- nacionalidad = noruego; Casa 2- color = azul; Casa 3-bebida = leche; Esta restriccin precisa de um lenguaje de descripcin, como la lgica de primer orden. As: i Casa I-nacionalidad = ingles Casa I-color = rojo
.... Como se ve, los lenguajes de descripcin, aunque resultan muy tiles, no siempre son fciles de manejar.
176
Especificacin 2.
Variables: azul, roja, verde, amarilla, blanca, noruego, ingles, ucraniano, japons, espaol, perro, caracol, reno, caballo, cebra, leche, caf, t, vino, agua; kools, cravens, golds, gitanes, chesterfields. Dominios: Todas las variables se instancian en el dominio {1, 2, 3, 4, 5}, indicando la casa correspondiente. Restricciones: R1: noruego = 1 ; R3: leche = 3; R6: amarilla = kools; R9: ucraniano = t; R12: gitanes = vino; Y, adicionalmente: R2: azul = noruego + 1; R4: ingles = roja ; R7: blanca = verde + 1; R10: japons = craven; R5: verde = caf; R8: espaol = perro; R11: golds = caracol;
(azul, roja, verde, amarilla, blanca); (noruego, ingles, ucraniano, japons, espaol); (perro, caracol, reno, caballo, cebra); (leche, caf, t, vino, agua); (kools, cravens, golds, gitanes, chesterfields);
177
El hecho de que la especificacin 2 contenga el mismo nmero de variables y un dominio con el mismo nmero de valores que en la especificacin 1, indica que la complejidad temporal dos hipotticos algoritmos que implementen las especificaciones ser la misma. La diferencia radica en la facilidad de representar las restricciones. Por ello nos decantamos por la especificacin 2.
178
Problema 14.
Este problema se puede modelar como un PSR de forma muy sencilla. Cada celda del tablero se puede ver como una variable, cuyo dominio son los valores naturales entre el 1 y el 9. Por la tanto, existirn 9 x 9 variables. La especificacin del CSP es: Variables: (x11, x12, ...; x19, x21, x22, ...; x29, : : : ; x91, x92, ..., x99) Dominios: Para todas las variables, el dominio es: {1; 2; : : : ; 9}. Restricciones: a. Debe plantearse una restriccin binaria de desigualdad entre: Todos los pares de variables en cada fila: (x11; x21; x31; ... ; x91); (x12; x22; x32; ...; x92); ...; (x19; x29; x39; . ... ; x99) Todos los pares de variables en cada columna: (x11; x12; ...; x19); (x21; x22; ...; x29); ...; (x91; x92; ...; x99) Y todos los pares de variables en cada submatriz. (x11; x12; x13; x21; x22; x23; x31; x32; x33); ... idem para las restantes submatrices. b. Debe plantearse una restriccin que asigne valores a las variables iniciales: x12=6, x14=1,,x23=8,idem para los restantes valores iniciales.
Inteligencia Artificial. Gabriel Fiol 179
Problema 16.
En este caso, como un empleado puede tener asignada ms de una tarea, entonces las variables no pueden ser los empleados, pues a una variable le corresponde un nico valor. As pues, el problema puede formularse como: Variables: T1, T2,..., Tn Dominios: {E1, E2, E3}. Todas las variables tienen el mismo dominio. Se trata de un problema con restricciones de preferencia, que pretende maximizar la asignacin de valores. Es decir:
ci = mximo.
180
Problema 17.
Veamos un ejemplo concreto para tres programas. Sea (l1, l2, l3) = (5, 10, 3). Hay en total n! = 6 posibles permutaciones para almacenar los programas.
Orden, I P1, P2, P3 P1, P3, P2 P2, P1, P3 P2, P3, P1 P3, P1, P2 P3, P2, P1 T.E.R 5 + 5 + 10 + 5 + 10 + 3 = 38 5 + 5 + 3 + 5 + 3 + 10 = 31 10 + 10 + 5 + 10 + 5 + 3 = 43 10 + 10 + 3 + 10 + 3 + 5 = 41 3 + 3 + 5 + 3 + 5 + 10 = 29 (ptimo) 3 + 3 + 10 + 3 + 10 + 5 = 34
Como una solucin est formada por una permutacin de programas en un orden dado (que en este caso es lineal), entonces los programas P1, P2, P3 constituirn los dominios de las variables. Mientras, una variable indica una determinada posicin en la secuencia. Variables: A1, A2, A3. A1 indica la primera posicin en la secuencia, A2 la segunda y A3 la tercera. Dominios: {P1, P2, P3} Restricciones de obligacin: A1 A2, A1 A3, A2 A3, T.E.R. = 1jn1kjlik = mnimo. Restricciones de preferencia: (l1, l2, l3) = (5, 10, 3). Para la solucin algortmica puede usarse la ramificacin y poda, con objeto de podar aquellas ramas que no conducen a una solucin.
182
Bibliografa
Apuntes del profesor. Russell, S.; Norvig, P. Inteligencia Artificial. Un enfoque moderno. 2a edicin. (Pearson Educacin, 2006) Nilsson, N.J. Inteligencia Artificial. Una nueva sntesis (McGraw-Hill, 2000) users.dsic.upv.es/~msalido/papers/capitulo.pdf
183