Sunteți pe pagina 1din 183

Problemas de satisfaccin de restricciones

Constraint Satisfaction Problems

Inteligencia Artificial. Gabriel Fiol

Objetivos del tema


Estudiar diferentes alternativas en cuanto a modelos y tcnicas usadas para resolver problemas de satisfaccin de restricciones Desarrollar algunos ejemplos de aplicacin de las tcnicas presentadas.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

Bibliografa bsica
Apuntes del profesor. Inteligencia Artificial. Un Enfoque Moderno (2a Ed.) S. Russell, P. Norvig Prentice Hall (2006)

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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).

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

15

2. Resolucin de un problema de satisfaccin de restricciones (PSR)


La resolucin de un PSR se desarrolla en las siguientes etapas:
Definicin formal del PSR formulacin del problema en trminos de un PSR-. Interpretacin de la solucin del PSR formulado en trminos de una bsqueda. Consideracin de las heursticas mejora de la eficiencia computacional-. Consideracin de las tcnicas de comprovacin hacia adelante. Codificacin.
Inteligencia Artificial. Gabriel Fiol 16

3. Formulacin del problema de satisfaccin de restricciones (PSR)


Dado un problema a resolver, la primera etapa consiste en formular definir formalmente- el problema en trminos de un PSR. Esta etapa es muy importante, pues:
Si no se formula el problema, entonces no podr resolverse con las tcnicas que se presentan. La formulacin debe permitir una resolucin eficiente del problema. Dependiendo del tipo de formulacin pueden existir varias- la resolucin del problema puede ser ms o menos eficiente.
Inteligencia Artificial. Gabriel Fiol 17

Primera definicin (general) de un PSR


Se considera un estado inicial formado por un conjunto de objetos o variables, cada una de los cuales tiene establecidos un conjunto de valores sobre determinados parmetros. Se trata de alcanzar un estado en el que los valores de los parmetros de cada uno de los objetos satisfagan determinadas restricciones objetivo.

Inteligencia Artificial. Gabriel Fiol

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

Ejemplo 2. Considrese la siguiente suma cripto-aritmtica:


(Xc3 Xc2 Xc1)

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:

Inteligencia Artificial. Gabriel Fiol

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

Descripcin formal del problema de satisfaccin de restricciones


Sea X1, X2,, Xn un conjunto de variables, con dominios de valores no vacos, D1, D2,, Dn, respectivamente, siendo Di el dominio de Xi, i=1n. Sea C1, C2,, Cm, un conjunto de restricciones, cada una de las cuales envuelve algn subconjunto de variables y especifica las combinaciones aceptables de valores para ese subconjunto. Un estado, S, del problema viene definido por una asignacin de valores a algunas o quizs a todas las variables. Esto es, S = {Xi=vk, para algn i=1, 2,, n; vkDi}. Una asignacin que no viola ninguna restriccin se llama una asignacin consistente o legal. Una asignacin completa es aquella en la que se hace mencin a cada variable. Una solucin de un PSR es una asignacin completa que satisface todas las restricciones. Esto es, es una asignacin completa consistente.
Inteligencia Artificial. Gabriel Fiol 22

Clasificacin de los PSR


Clasificacin segn el tipo de restricciones:
Restricciones de obligacin (hard constraints). Restricciones de preferencia (soft constraints). Se emplean para maximizar/minimizar una funcin objetivo.

Clasificacin segn los dominios:


Dominios discretos (finitos o infinitos). Dominios contnuos.

Clasificacin segn el nmero de variables implicadas en las restricciones:


Restricciones unarias. Restricciones binarias. Restricciones mltiples o de alto orden.
Inteligencia Artificial. Gabriel Fiol 23

En este tema trataremos PSRs:


Con dominios finitos. Con restricciones de obligacin.

Todo problema con restricciones mltiples se puede reducir a uno equivalente con restricciones binarias.

Inteligencia Artificial. Gabriel Fiol

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

Formulacin del problema en trminos de un PSR


Variables del problema: cada una de las zonas a colorear. Estas son: Xi = {AO, TN, AS, Q, NGS, V, T }. Dominios de las variable: el conjunto Di={rojo, verde, azul}. Restricciones: P Q, para cada par de provincias vecinas P y Q. Problema con dominios finitos y restricciones binarias (de obligacin).

Inteligencia Artificial. Gabriel Fiol

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

Inteligencia Artificial. Gabriel Fiol

27

Ejemplo 2. El problema de las N reinas.


Situar N reinas en un tablero de ajedrez de tamao N x N, de manera que no exista jaque entre ellas. Variables: la ubicacin de cada reina. Hay en total N: {X1,..., Xn}. Dominios: los valores que cada variable puede adoptar. Se considera que cada reina est en una columna. Entonces el dominio de valores de cada reina ser la fila en la que la reina puede situarse: Di = {1,..., N}. Restricciones: Jaque horizontal: Xi Xj (dos reinas no pueden estar en la misma fila). Jaque diagonal: |Xi - Xj| |i - j| (la diferencia entre las filas y las columnas de las dos reinas debe ser diferente). Problema con dominios finitos y restricciones binarias (de obligacin).
Inteligencia Artificial. Gabriel Fiol 28

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.

Inteligencia Artificial. Gabriel Fiol

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?

Inteligencia Artificial. Gabriel Fiol

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?

Inteligencia Artificial. Gabriel Fiol

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

Formular el anterior problema en trminos de un PSR De qu tipo de problema se trata?


NOTA: considrese la posibilidad de usar restricciones de preferencia.
Inteligencia Artificial. Gabriel Fiol 32

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

Formular el anterior problema en trminos de un PSR De qu tipo de problema se trata?


NOTA: considrese la posibilidad de usar restricciones de preferencia.
Inteligencia Artificial. Gabriel Fiol 34

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.

Inteligencia Artificial. Gabriel Fiol

35

Grafo de restricciones
Ejemplo
AO AS V
TN Q AO NGS AS V T
Inteligencia Artificial. Gabriel Fiol 36

TN

NGS

Tipos de restricciones segn el nmero de variables implicadas


Restricciones unarias: son las ms simples, restringen los valores de una sola variable. Por ejemplo, en la coloracin de cuadros del anterior ejemplo podra establecerse que AS verde. Una restriccin unaria puede eliminarse preprocesando el dominio de la variable afectada, eliminando simplemente cualquier valor que viole la restriccin. Restricciones binarias: relacionan dos variables. Por ejemplo, en la coloracin de cuadros del ejemplo anterior podra exigirse que AS NGS. Un PSR binario es un problema con restricciones slo binarias, y puede representarse como un grafo de restricciones tal como el ilustrado en el ejemplo anterior.
Inteligencia Artificial. Gabriel Fiol 37

Restricciones mltiples o de alto orden: implican tres o ms variables. Ejemplo. Puzzles cripto-aritmticos.

Inteligencia Artificial. Gabriel Fiol

38

Ejemplo. Considrese la siguiente suma cripto-aritmtica:


(Xc3 Xc2 Xc1)

TWO + TWO FOUR


Variables principales del problema: (F, T, U, W, R, O). La restriccin que establece que todas las variables deben ser diferentes, todasdif(T, W, O, F, U, R), puede enfocarse diferentes perspectivas: a. Por una parte puede considerarse como una nica restriccin que afecta a las seis variables. b. Por otra puede considerarse como una coleccin de restricciones binarias.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

41

Restricciones de obligacin y de preferencia


En las restricciones de obligacin o restricciones absolutas-, cualquier solucin resulta igualmente aceptable. Las restricciones de preferencia se refieren a las soluciones preferidas. Por ejemplo, en el problema de los horarios de una escuela el profesor X prefiere ensear por la maana mientras que el profesor Y prefiere ensear por la tarde. Un horario en el que el profesor X deba ensear a las cuatro de la tarde constituye una solucin, pero no un ptimo. Las restricciones de preferencia pueden a veces codificarse como costos sobre las asignaciones de variables individuales por ejemplo, asignar un intervalo por la tarde al profesor X cuesta tres puntos sobre la funcin objetivo, mientras que asignrselo por la maana cuesta un punto.
Inteligencia Artificial. Gabriel Fiol 42

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.

Inteligencia Artificial. Gabriel Fiol

43

4. Resolucin de un PSR en trminos de una bsqueda


La resolucin de un PSR puede concebirse mediante un procedimiento de bsqueda en un espacio de restricciones establecidas sobre los parmetros de un conjunto de variables, de manera que cada valor susceptible de ser adoptado por un parmetro constituye una potencial restriccin sobre el mismo.

Inteligencia Artificial. Gabriel Fiol

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

Formulacin de un PSR entrminos de un problema de bsqueda estndar:


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. Toda solucin es una asignacin completa que aparece a profundidad n para un problema de n variables. Adems, el rbol/grafo de bsqueda se extiende slo a profundidad n. Por tanto, un algoritmo basado en una bsqueda primero en profundidad parece, en principio, adecuado para un PSR.
Inteligencia Artificial. Gabriel Fiol 46

Consideraciones generales sobre la eficiencia.


Si el tamao del dominio de toda variable en un PSR es d, entonces el nmero de posibles asignaciones completas es (dn), siendo n el nmero de variables. As, en el peor de los casos no puede esperarse la resolucin de un PSR con dominio finito con un tiempo menor al exponencial. Ejemplo. El problema de las n reinas con X1, X2,, Xn, que representan las posiciones de cada reina en las columnas 1, 2,, n respectivamente, cuyos dominios D1, D2,, Dn, son idnticos, con ocho valores, uno para cada fila del tablero, esto es, Di = {1, 2, 3, 4, ,n}, i = 1n. La eficiencia en el peor de los casos es (nn)
Inteligencia Artificial. Gabriel Fiol 47

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.

Inteligencia Artificial. Gabriel Fiol

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

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

50

Bsqueda con vuelta atrs para PSRs


En principio, cualquiera de los algoritmos de bsqueda vistos hasta el momento puede ser utilizado para resolver los PSRs; no obstante, su eficiencia puede variar sensiblemente de unos a otros.

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.

Inteligencia Artificial. Gabriel Fiol

51

Bsqueda primero en anchura.


Considrese la solucin de un PSR con n variables y dominios discretos finitos, con d valores cada dominio, como sigue: (1) Partiendo de la asignacin vaca, { }, como estado inicial, existen nd posibles operadores aplicables recurdese que un operador asigna un valor a una variable no asignada que no genere un conflicto con variables ya asignadas. (2) En el siguiente nivel el factor de ramificacin para cada uno de los nodos resultantes es (n-1)d, y as sucesivamente para n niveles. El resultado ser la generacin de un rbol con n!dn hojas, aunque slo haya dn asignaciones posibles completas !!!.

Inteligencia Artificial. Gabriel Fiol

52

Conmutatividad de los PSR.


La razn del elevadsimo coste del anterior algoritmo se encuentra en el hecho de que una misma asignacin aparece numerosas veces pero con el orden en que las variables han sido asignadas permutado. Como cualquier permutacin de una misma asignacin produce idnticos resultados, entonces con la aparicin de una sola de las permutaciones durante el proceso de bsqueda ser suficiente. Este hecho se conoce como la propiedad de conmutatividad de un problema. Se dice que un problema es conmutativo si el orden de aplicacin de cualquier conjunto de acciones no tiene ningn efecto sobre el resultado. Por tanto, los algoritmos de bsqueda debern tener en cuenta esta importante propiedad.
Inteligencia Artificial. Gabriel Fiol 53

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

AO = rojo TN = verde Q = rojo

AO = rojo TN = verde Q = azul

Inteligencia Artificial. Gabriel Fiol

54

Bsqueda primero en profundidad con vuelta atrs.


La bsqueda primero en profundidad con vuelta atrs proporciona una tcnica sencilla y til para superar la conmutatividad. En cada paso se eligen valores para una misma variable, volviendo atrs cuando una variable no tiene ningn valor legal para asignarle. El siguiente algoritmo constituye un modelo de lo dicho. Como la formulacin de los PSR est estandarizada, no hay ninguna necesidad de proporcionar al algoritmo un estado inicial del dominio especfico, una funcin sucesor o un test objetivo.
Inteligencia Artificial. Gabriel Fiol 55

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

Consideraciones sobre el algoritmo.


El nmero total de nodos hoja (asignaciones completas) es dn, para un PSR con n variables y d valores de los dominios. El anterior algoritmo no est informado, por lo cual su eficiencia es exponencial en n. Las funciones: Selecciona-variable-no-asignada y orden-valores-dominio pueden utilizarse para implementar heursticas que aceleren el proceso de bsqueda de una solucin. Existen heursticas generales, que no dependen del conocimiento especfico del dominio, que permiten resolver PSRs de manera eficiente.
Inteligencia Artificial. Gabriel Fiol 57

Bsqueda general no recursiva


Tambin puede aplicarse el algoritmo general de bsqueda no recursivo visto en el tema anterior. El algoritmo deber adaptarse a los criterios establecidos para los PSRs, para ello:
Deber usarse una lista de espera de tipo PILA, para almacenar los nodos a ser procesados. Los operadores se aplicarn segn los criterios mencionados, es decir, no causarn conflictos entre las variables asignadas.

Inteligencia Artificial. Gabriel Fiol

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? .

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

61

5. Tcnicas para la mejora de la eficincia.


En esta seccin se presentan diferentes tcnicas heursticas para:
A. La seleccin de variable y valor en cada paso del algoritmo. B. La propagacin de informacin a travs de las restricciones, con objeto de determinar los puntos de poda del algoritmo cuanto antes. Se conoce como propagacin de restricciones. C. La determinacin de los nodos que posiblemente sean los causantes de la prdida de consistencia cuando esto ocurre en un nodo generado posteriormente. Se conoce como vuelta atrs inteligente.
Inteligencia Artificial. Gabriel Fiol 62

A. Heursticas para la seleccin de variable y ordenamiento de valor


Recurdese la sentencia de asignacin de variable del anterior algoritmo:
var Selecciona-variable-no-asignada(variables(PSR), asignacin, PSR)

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).

Inteligencia Artificial. Gabriel Fiol

63

Heurstica de los mnimos valores restantes, MVR


Ejemplo. considrese el problema de colorear cuadrculas y obsrvese el rbol de la figura. Despus de las asignaciones para AO = rojo y TN = verde, hay un solo valor posible para AS AS = azul mientras que para Q existen dos posibles valores para asignar Q = rojo y Q = azul. Si se elige AS para asignarle un valor, las opciones de Q, NGS y V quedan restringidas. Obsrvese que al estar AS ms restringida que Q, parece ms conveniente seleccionar primero AS, pues Q tiene ms opciones alternativas.

{}

AO = rojo

AO = verde

AO = azul

AO = rojo TN = verde

AO = rojo TN = azul

AO = rojo TN = verde Q = rojo

AO = rojo TN = verde Q = azul

TN AO AS V
Inteligencia Artificial. Gabriel Fiol

NGS

64

Idea intuitiva. Escoger en cada paso de seleccin de variable aquella variable


cuya asignacin de valor tiene ms probabilidades de fallar. Esto es, aquella que con mayor probabilidad causar pronto un fracaso por lo que a la asignacin de un valor se refiere.

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

Otra ventaja de la heurstica MVR


La mencionada heurstica tambin favorece una menor ramificacin en los niveles inferiores del rbol, pues al seleccionar en cada paso la variable con menos valores restantes, el nmero mximo de nodos para visitar posteriormente se reduce, al expandirse menos el rbol de bsqueda. Por ejemplo, sea MVR(A)=1, MVR(B)=2, MVR(C)=3. Las figuras ilustran los dos rboles.
15 nodos visitados
Inteligencia Artificial. Gabriel Fiol

Asignacin de A Asignacin de B Asignacin de C 9 nodos visitados

Asignacin de C Asignacin de B Asignacin de A

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

68

Se conoce como grado heurstico GH la heurstica basada en la anterior idea.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

70

Heurstica de seleccin del valor de una variable


Una vez seleccionada una variable, el algoritmo debe seleccionar un valor para la misma. Una heurstica eficaz en algunos casos es la del valor menos restringido. En este caso se elige para la variable actualmente seleccionada el valor que menos afecta las opciones de las variables vecinas todava no asignadas, esto es, el valor que menos restringe las opciones de las variables vecinas todava no asignadas. Lo dicho se traduce en considerar el valor que elimine la mnima cantidad de valores de las variables por asignar.
Inteligencia Artificial. Gabriel Fiol 71

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

B. Propagacin de la informacin a travs de las restricciones


En el algoritmo de bsqueda con vuelta atrs visto, las restricciones sobre una variable slo se consideraban cuando la variable era elegida por Selecciona-variable-no-asignada. Entonces, cualquier bloqueo del camino de bsqueda debido a una inconsistencia de valores causada por las restricciones slo se detectaba en cuanto se produca. Es decir, en el momento en que se selecciona una variable y se comprueba que no existe ningn valor consistente de la misma con las variables ya asignadas. Es posible mejorar la eficiencia de la bsqueda si se prevn futuras inconsistencias, lo que equivale a <adelantar los procesos de poda> por aquellas ramas del rbol que se sabe causarn un bloqueo.
Inteligencia Artificial. Gabriel Fiol 73

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.

Inteligencia Artificial. Gabriel Fiol

74

A continuacin se estudian algunos mtodos que permiten observar por adelantado las consecuencias de las restricciones cuando se asignan valores a variables.

Inteligencia Artificial. Gabriel Fiol

75

B.1 Comprobacin hacia delante (forward checking)


Siempre que se asigne un valor a una variable, X, el proceso de comprobacin hacia delante mira cada variable no asignada, Y, que est relacionada con X por alguna restriccin y suprime del dominio de Y cualquier valor que sea inconsistente con el valor asignado a X. La siguiente figura muestra el progreso de la bsqueda para el ejemplo de coloracin de zonas.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

78

Ejercicio. Combnese la comprobacin hacia delante con las heursticas MVR y Grado heurstico en el ejemplo del coloreado de zonas.

Inteligencia Artificial. Gabriel Fiol

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

El forward checking no descubre todas las inconsistencias


Si se observa por ejemplo la tercera fila de la anterior tabla, se ve que cuando AO = rojo y Q = verde, tanto TN como AS nicamente pueden ser azules, pero como son adyacentes, no pueden por tanto tener el mismo valor. La comprobacin hacia delante no descubre esta inconsistencia porque no mira lo bastante lejos.

TN AO AS V

NGS

Dominios iniciales Despus de AO = rojo Despus de Q = verde Despus de V = azul

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

Inteligencia Artificial. Gabriel Fiol

B.2 Consistencia de arco (CA)


El forward checking no descubre todas las inconsistencias. Hace falta propagar las implicaciones de una restriccin sobre una variable en todas las otras variables, y no solamente en las que estn relacionadas directamente con ella a travs de alguna restriccin, lo que se conoce como propagacin de restricciones. En el anterior ejemplo se necesita propagar hacia delante las restricciones desde AO y Q a TN y AS tal como se hizo en la comprobacin hacia delante y luego se precisa la propagacin a la restriccin entre TN y AS para descubrir la inconsistencia. Existen tcnicas ms completas para propagar restricciones. La propagacin debe ser rpida i no alterar el requisito de completitud de la solucin.
Inteligencia Artificial. Gabriel Fiol 85

El concepto de consistencia de arco proporciona un mtodo rpido de propagacin de restricciones que es ms potente que la comprobacin hacia delante.

Inteligencia Artificial. Gabriel Fiol

86

Definicin formal de la consistencia de arco


Un arco se refiere a un arco dirigido y por tanto unidireccional en el grafo de restricciones, como el arco desde AS a NGS. Definicin (arco consistente). Un arco (A,B): AB es consistente si, para todo valor, x, de la variable A, existe un valor, y, de la variable B, que es consistente con x. La anterior definicin garantiza que, para cualquier asignacin a la variable A, existe una asignacin consistente para la variable B.

Inteligencia Artificial. Gabriel Fiol

87

Consistencia de arco en un PSR


La aplicacin de la consistencia de arco a un PSR con n variables se establece del siguiente modo: Un PSR mantiene la consistencia de arco PSR arco consistente- si todo arco XY es un arco consistente. No se garantiza una solucin para un PSR que no mantenga la consistencia de arco. En caso de que un PSR no mantenga la consistencia de arco, sta puede intentar restablecerse. Si ello no es posible, entonces no existe solucin para el PSR.

Inteligencia Artificial. Gabriel Fiol

88

EJEMPLO

TN AO AS V

NGS

Dominios iniciales Despus de AO = rojo Despus de Q = verde Despus de V = azul

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

D om inios iniciales D espus de AO = rojo D espus de Q = verde D espus de V = azul

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

Idea intuitiva para mantener la consistencia de arco de un PSR


Objetivo:
Actualizar los dominios de todas las variables de manera que todos los arcos sean consistentes.

Actualizacin de los dominios:


Si un arco es inconsistente, intentar hacerlo consistente eliminando del dominio de la variable inicial del arco aquellos valores para los que no existen valores en el dominio de la variable final del arco que satisfagan la condicin de consistencia. Si despus de aplicar la consistencia de arco el dominio de la variable inicial queda vacio, entonces no existe solucin para el PSR.
Inteligencia Artificial. Gabriel Fiol 91

Cmo se aplica la consistencia de arco?


Revisin de los arcos:
Siempre que se suprime un valor del dominio de una variable con objeto de eliminar una inconsistencia de un arco, una nueva inconsistencia de arco podra surgir en arcos que apuntan a dicha variable.

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.

Inteligencia Artificial. Gabriel Fiol

92

Ejemplo. Planificacin de las acciones de un robot


Un robot necesita planificar cinco actividades (A, B, C, D y E), donde cada actividad ha de comenzar en un momento en el tiempo (1, 2, 3, o 4) y dura exactamente una nidad de tiempo. Restricciones: La actividad B no puede realizarse en el momento nmero 3. La actividad C no puede realizarse en el momento nmero 2. Las actividades A y B no pueden realizarse simultneamente. Las actividades B y C no pueden realizarse simultneamente. La actividad C ha de realizarse antes de la D. Las actividades B y D no pueden realizarse simultneamente. Las actividades A y D han de realizarse simultneamente. La actividad E ha de ser la primera de todas.
Inteligencia Artificial. Gabriel Fiol 93

Paso 1. Definicin formal del problema en trminos de un PSR


Variables: {A, B, C, D, E} Dominios: Di = {1, 2, 3, 4}, para toda variable. Restricciones:
B 3. C 2. A B. B C. C < D. B D. A = D. E = 1. E < A. E < B. E < C. E < D.

Inteligencia Artificial. Gabriel Fiol

94

Grafo binario de restricciones

Inteligencia Artificial. Gabriel Fiol

95

Paso 2. Aplicacin de la consistencia de arco


DOMINIOS
A(1,2,3,4) A(2,3,4) B(1,2, 4) C(1,3,4) C(1,3) D(1,2,3,4) D(2,3,4) BC E(1) RESTRICCIONES AB ARCOS A REVISAR (A,B) (B,A) (B,C) (C,B) C<D (C,D) (D,C) (C,D) BC (B,C) (C,B) BD (B,D) (D,B) A=D (A,D) (D,A) Inteligencia Artificial. Gabriel Fiol
DOMINIOS RESULTANTES

-------------------------------------------------------------------C(1,3) D(2,3,4) -------------------------------------------------------------------------------------A(2,3,4) -----------------96

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)

DOMINIOS RESULTANTES ------------------------------------------------B(2,4) ----------------C(3) ---------------------------------------------------D(4) --------------------------------B(2) ----------------A(4) ------------------

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

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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;

Inteligencia Artificial. Gabriel Fiol

100

Complejidad de la consistencia de arco


Un PSR binario tiene a lo sumo (n2) arcos para un conjunto de n variables, cada variable contiene a lo sumo n-1 arcos hacia cada una de las dems variables; se tienen por tanto, n(n-1) arcos. Cada arco (Xk, Xi) se insertar en la cola d veces a lo sumo, pues Xi tiene como mximo d valores para suprimir. La comprobacin de la consistencia de un arco (Xk, Xi) puede hacerse en (d2) pasos, pues al tener cada variable d valores como mximo, entonces cada valor del dominio de Xk se compara con cada uno de los d valores del dominio de Xi con objeto de determinar la consistencia del valor de Xk. Por tanto, el tiempo total, en el peor de los casos, es (n2d3). Este coste es mayor que el de la comprobacin hacia delante, no obstante la diferencia, por lo general, vale la pena.
Inteligencia Artificial. Gabriel Fiol 101

Cundo se aplica la consistencia de arco?


Slo con AC-3 no es posible resolver un PSR. AC-3 puede combinarse con la bsqueda primero en profundidad, de la siguiente manera:
1. como un paso de preproceso antes de comenzar el proceso de bsqueda, y 2. como un paso de propagacin como la comprobacin hacia delante despus de cada asignacin durante la bsqueda. Este ltimo caso se conoce como MCA, mantenimiento de la consistencia del arco.

En ambos casos el proceso debe aplicarse repetidamente hasta que no permanezcan inconsistencias.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

103

La CA no revela todas las inconsistencias


La consistencia de arco no revela todas las inconsistencias posibles. Por ejemplo, en el problema de coloreado de zonas, la asignacin parcial {AO = rojo, NGS = rojo} es inconsistente, pero AC-3 no la encuentra.

TN AO AS V

NGS

Inteligencia Artificial. Gabriel Fiol

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

PSR Fuertemente n-consistente


El concepto de kconsistencia permite definir las formas ms potentes de la propagacin de consistencias. PSR kconsistente: si, para cualquier conjunto de k-1 variables y para cualquier asignacin consistente a esas variables, siempre se puede asignar un valor consistente a cualquier k-sima variable. Por ejemplo, la 1consistencia significa que cada variable individual, por s misma, es consistente, lo que se conoce como consistencia de nodo. La 2consistencia significa que, para cualquier conjunto de una variable y para cualquier asignacin consistente a la variable del conjunto, siempre se puede asignar un valor consistente a cualquier otra segunda variable. Por tanto, la 2consistencia es lo mismo que la consistencia de arco. La 3consistencia significa que cualquier par de variables adyacentes pueden siempre extenderse a una tercera variable, lo que se conoce tambin como consistencia de camino.
Inteligencia Artificial. Gabriel Fiol 106

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).

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

108

C. Manejo de restricciones especiales


Ciertas restricciones frecuentes en problemas reales pueden manejarse mediante algoritmos de propsito especial de manera ms eficiente que los mtodos de propsito general descritos hasta ahora. Ejemplo 1: considrese la restriccin todasdif que impone que el valor de todas las variables implicadas debe ser diferente, como en el problema criptoaritmtico. Una forma sencilla de deteccin de inconsistencias para la mencionada restriccin es como sigue: si hay m variables implicadas en la restriccin, y si entre todas tienen n posibles valores distintos, y si m > n, entonces la restriccin no puede satisfacerse.

Inteligencia Artificial. Gabriel Fiol

109

Algoritmo para detectar si se ha producido una inconsistencia:


Quitar cualquier variable en la restriccin que tenga un dominio con una sola posibilidad y suprmase el valor de esa variable de los dominios de las variables restantes. Reptase el proceso mientras existan variables con una sola posibilidad. Si en algn momento se produce un dominio vacio o hay ms variables que valores en sus dominios, entonces se ha descubierto una inconsistencia.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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]

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

117

D. Vuelta atrs inteligente: mirando hacia atrs


El algoritmo Bsqueda-Con-Vuelta-Atrs que se ha descrito implementa una poltica de vuelta atrs cronolgica que le indica lo que debe hacer cuando falla una rama: vuelve a la variable anterior e intenta un valor diferente para ella. No obstante, puede haber numerosos caminos de vuelta atrs que sean mejores que el mencionado.

Inteligencia Artificial. Gabriel Fiol

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

Ejemplo del coloreado de zonas con vuelta atrs cronolgica

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

124

Cmo calcular el conjunto conflicto de una variable?


La comprobacin hacia delante puede suministrar el conjunto conflicto sin trabajo suplementario, de la siguiente forma: Siempre que la comprobacin hacia delante, basada en una asignacin a X, suprima un valor del dominio de Y, se debera aadir X al conjunto conflicto de Y el conjunto conflicto generado as se llama conjunto conflicto directo Adems, siempre que se suprima el ltimo valor del dominio actual de Y a causa de la asignacin a X, como se ha mencionado, las variables en el conjunto conflicto de Y se aaden al conjunto conflicto de X. En resumen, en la vuelta atrs inteligente, cuando una variable, Y, queda sin valores en su dominio, se vuelve atrs a la variable del conjunto conflicto de Y ms recientemente asignada. Al algoritmo de salto atrs que hace uso de los conjuntos conflicto definidos de esta forma se le llama salto atrs dirigido por conflicto.

Inteligencia Artificial. Gabriel Fiol

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}

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

128

Detalles a tener en cuenta:


1. En la vuelta atrs, hay que actualizar los conjuntos conflicto
de las variables abandonadas bloqueadas- en la bsqueda. 2. Cuando la vuelta atrs alcanza una variable, X, para la que existe algn valor alternativo para probar y as continuar la bsqueda hacia delante, hay que mantener el conjunto conflicto no directo de esta variable (esto es, el conjunto conflicto de aquellas variables que han resultado bloqueadas causando la vuelta atrs a X), puesto que si en un futuro se vuelve atrs a la variable X, resultando sta bloqueada, hay que dar oportunidad a las variables previamente bloqueadas que causaron el retorno a X.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

130

6. Bsqueda local para problemas de satisfaccin de restricciones


Los algoritmos de bsqueda local resultan muy eficaces en la resolucin de muchos PSRs. Utilizan por lo general una formulacin de estados completa: en el estado inicial cada variable tiene un valor asignado.

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

132

Heurstica de los mnimos conflictos


Variable seleccionada para cambiar su valor:
Aquella (diferente de la ltima variable modificada) que participa en ms restricciones NO satisfechas en el estado (los empates se deciden aleatoriamente). Se trata de la variable cuyo valor asignado en el estado actual posee un mayor nmero de conflictos. Seleccionada aleatoriamente (diferente a la ltima) de entre las que posean conflictos.

Nuevo valor elegido:


El valor (diferente del que tenia) que produce el menor nmero de conflictos (restricciones incumplidas). Los empates de deciden aleatoriamente.

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

Implementacindel mtodo (seleccin aleatoria de variable)


Estructura de los nodos: los nodos estan compuestos de la asignacin actual y la ltima variable modificada.
Funcin MNIMOS-CONFLICTOS(psr,max_pasos) devuelve una solucin o fallo
variables: psr, un problema de satisfaccin de restricciones; max_pasos, nmero de pasos permitidos antes de abandonar; inicio actual una asignacin completa inicial para psr; para i = 1 hasta max_pasos hacer si actual es una solucin para psr entonces devolver actual sino var escoger aleatoriamente una variable conflictiva de VARIABLES(psr) valor el valor, v, para var que minimiza CONFLICTOS(var,v,actual,psr) ACTUALIZAR(actual) (*actual se actualiza con la nueva asignacin*) fin si fin para fin;
Inteligencia Artificial. Gabriel Fiol 134

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.

Inteligencia Artificial. Gabriel Fiol

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

Propiedades del algoritmo de bsqueda local


No es completo Complejidad en tiempo: lineal en el nmero de iteraciones Posible Aleatoriedad: En la asignacin del estado inicial, de variable y al deshacer empates. La bsqueda local tiene muy buenos resultados en algunos tipos de PSRs: PSRs cuyas soluciones estn distribuidas uniformemente a lo largo del espacio de estados PSRs en los que las restricciones pueden cambiar dinmicamente
Inteligencia Artificial. Gabriel Fiol 137

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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

7. La estructura de los problemas


En esta seccin se observan las formas por las cuales la estructura del problema, representada por el grafo de restricciones, puede utilizarse para encontrar soluciones de forma rpida. Ejemplo: observando el grafo de estados correspondiente al coloreado de zonas, se observa un hecho:

Inteligencia Artificial. Gabriel Fiol

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

Descomposicin del problema en subproblemas independientes


Dos subproblemas son independientes, si las caractersticas de la solucin de uno no afecta al otro. La independencia puede averiguarse buscando componentes conectados del grafo de restricciones. En trminos del grafo de restricciones, no existe arista que una dos subproblemas independientes. Cada componente corresponde a un subproblema PSRi. Si la asignacin, Si, es una solucin de PSRi, entonces i Si es una solucin de i PSRi.
Inteligencia Artificial. Gabriel Fiol 144

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

Descomposicin del problema en un grafo rbol


No obstante, los subproblemas completamente independientes son raros; en la mayora de los casos los subproblemas de un PSR estn relacionados. El caso ms simple es cuando el grafo de restricciones forma un rbol, lo que significa que dos variables cualesquiera estn relacionadas por, a lo sumo, un camino. La siguiente figura ilustra un ejemplo de un tal grafo, juntamente con una ordenacin lineal de las variables del grafo consistente con el rbol.
Inteligencia Artificial. Gabriel Fiol 146

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

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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)

Inteligencia Artificial. Gabriel Fiol

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

El algoritmo general es como sigue:


1. Elegir un subconjunto, S, de VARIABLES(psr) tal que el grafo de restricciones se convierta en un rbol despus de eliminarlas del mismo. S se denomina un ciclo de corte. 2. Para cada asignacin posible a las variables en S que satisface todas las restricciones sobre las mismas, (a) quitar de los dominios de las variables restantes cualquier valor que sea inconsistente con la asignacin para S, y (b) si el PSR restante tiene una solucin, devolverla junto con la asignacin para S.

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

155

TN AO
TN AO Q AO NGS AS V T SG

TN AS AS Q

Q AS NGS

NGS AS V T

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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}

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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

Inteligencia Artificial. Gabriel Fiol

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?

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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

Formular el anterior problema en trminos de un PSR De qu tipo de problema se trata?


NOTA: las restricciones pueden considerarse de preferencia

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

174

Soluciones a los problemas


Problema 13.
Este problema admite mltiples especificaciones. Especificacin 1. Podemos definir variables de la siguiente forma, por ejemplo, para la casa 1: o Casa 1- nacionalidad {noruego, ingles, ucraniano, japons, espaol} o Casa 1-animal {perro, caracol, reno, caballo, cebra} o Casa 1- fuma {kools, cravens, golds, gitanes, chesterfields} o Casa 1-bebida {fleche, caf, t, vino, agua} o Casa 1- color {azul, roja, verde, amarilla, blanca} o y sucesivamente para el resto de casas. Como hay 5 casas, en total habr 5 x 5 = 25 variables. Para resolver el problema se precisa de un rbol de profundidad 25 y ramificacin 5.
Inteligencia Artificial. Gabriel Fiol 175

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.

Inteligencia Artificial. Gabriel Fiol

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;

R13: chesterfields = reno + 1 chesterfields + 1 = reno;

R14: kools = caballo +1 kools + 1 = caballo;

(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);

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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.

Inteligencia Artificial. Gabriel Fiol

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

Por tanto, la permutacin P3, P1, P2 es la solucin adecuada.


Inteligencia Artificial. Gabriel Fiol 181

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.

Inteligencia Artificial. Gabriel Fiol

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

Inteligencia Artificial. Gabriel Fiol

183

S-ar putea să vă placă și