You are on page 1of 17

 

Materia:

Inteligencia Artificial

Catedrático:

M.S.I. Patricia Horta Rosado

 
Unidad 4

Alumnos:

Delgado Cázares Jessica

García Rodríguez Michel

Polanco Quiroz William Eduardo

Rodríguez Viveros Lady Silec


BÚSQUEDA Y SATISFACCIÓN DE RESTRICCIONES

Problemas de satisfacción de restricciones es un tipo especial de problemas que


satisfacen algunas propiedades adicionales.

Las restricciones pueden involucrar una o varias variables al mismo tiempo. A veces en
estos problemas conviene hacer una verificación hacia adelante (_forward checking_)
para detectar estados sin solución. Muchas veces lo que conviene es analizar la variable
más restringida, esto es, asignarle un valor a la variable que está involucrada en la mayor
cantidad de restricciones.

4.1 PROBLEMAS Y ESPACIOS DE ESTADOS

Definición de Problema y Espacio de Estados

• Un problema se define por:


o Estado inicial, conjunto de operadores, predicado meta, función de coste
del camino
• Solución
o Camino del estado inicial a un estado que satisface el predicado meta
• Espacio de Estados
o Conjunto de todos los estados alcanzables desde el estado inicial por
cualquier secuencia de operadores

Formulación de Espacio de Estados

• La formulación de espacio de estado utiliza:


o Estado: descripción de un problema (configuración de)
o Operadores: describen acciones que transforman un estado en otro

• Terminología adicional
o Estado inicial: problema inicial
o Estado meta: estado en el que se ha resuelto el problema
o Predicado meta: test que se puede aplicar a un estado para determinar si
es meta
§ Conjunto de estados, propiedades del estado o del camino hasta el
o Función de coste del camino: suma de los costes de las acciones
individuales

Resolución de problemas

Deseamos definir cualquier tipo de problema de búsqueda de manera que se pueda


resolver automáticamente.
Necesitamos:
• Una representación común para todos los problemas de búsqueda que podamos
definir.
• Algoritmos que trabajen sobre esa representación.
Definición de un problema

• Elementos de un problema
o Un punto de partida
o Un objetivo a alcanzar
o Acciones para resolver el problema
o Puede haber también
• Restricciones sobre el objetivo
• Elementos particulares sobre el dominio del problema

Representación de problemas

• Representaciones generales

o Espacio de estados: resolver un problema consiste en un conjunto de


pasos de resolución desde el inicio hasta el objetivo.
o Reducción a subproblemas: un problema se expresa mediante una
jerarquía de subproblemas (Representaciones para problemas
específicos
o Juegos
o Satisfacción de restricciones (en algorítmica)

Representación de problemas: estados

• Estado: la representación de los elementos que describen el problema en un


momento concreto de su resolución.
• Estados especiales: estado inicial, estado final.
• Mi problema: ¿qué incluir en el estado?

Modificación del estado

• Para movernos entre los diferentes estados necesitamos operadores de


transformación
• Operador: función que transforma un estado en otro.
• Representación de un operador:
o Condiciones de aplicabilidad
o Función de transformación

Espacio de estados

• Los estados y las relaciones de accesibilidad entre ellos conforman lo que se llama
el espacio de estados.
• Solución: Secuencia de pasos que llevan del estado inicial al final o también el
estado final.
• Tipo de solución: una cualquiera, la mejor en algún sentido, todas.
• Coste de la solución: gasto en recursos de aplicar los operadores a los estados

Descripción de un problema mediante espacio de estados


• Definir el espacio de estados
• Especificar el estado inicial
• Especificar el estado final
• Especificar los operadores
• Especificar el tipo de solución
o La secuencia de operadores o el estado final
o Una solución cualquiera, le mejor o todas.

Resolución

Representación del espacio de estados

• Estructuras de datos: árboles y grafos.


• Estados: nodos.
• Operadores: arcos entre nodos.
• Árboles: un solo camino lleva a un nodo.
• Grafos: varios caminos pueden llevar a un nodo.

4.2 ESPACIOS DE ESTADOS DETERMINISTICOS Y ESPACIOS NO


DETERMINISTICOS

Un ambiente determinístico es aquel en el cual cualquier acción tiene un solo efecto


garantizado, no hay incertidumbre acerca del estado que resultará de la realización de la
acción. El mundo físico puede ante todos los intentos y propósitos, ser considerado como
no determinístico. Un ambiente no determinístico presente problemas más grandes para
el agente
Un sistema es determinístico si, para un estado dado, al menos aplica una regla a él y de
solo una manera. Si más de una regla aplica a cualquier estado particular del sistema, o si
una regla aplica a un estado particular del sistema en más de una manera, entonces el
sistema es no determinístico

Los modelos deterministicos caracterizan fenómenos cuyo resultado puede predecirse


con seguridad, si conocemos las condiciones en las cuales se presentan. Con mayor
precisión, si conocemos las condiciones iniciales de un experimento, que da lugar a un
fenómeno, entonces podemos prever los resultados posteriores de éste.

Los modelos probabilísticos o no deterministicos caracterizan fenómenos aleatorios


“fortuitos, al azar” o inciertos, con la propiedad de que al observarlos en determinado
conjunto de condiciones, no siempre se obtiene el mismo resultado, es decir que no
presentan la regularidad de los fenómenos deterministicos (clásicos) el conjunto de todos
los resultados posibles de un experimento aleatorio se llama espacio muestral. Lo
denotaremos S.

4.3 BÚSQUEDA SISTEMÁTICA

Sistemática: si existe una solución la encuentra

• recorrido ordenado del espacio de estados


• si un estado no puede ser solución --> poda

• No sistemática: pueden no encontrar la solución

Los problemas de búsquedas, que generalmente encontramos en Ciencias


Computacionales, son de un estado determinístico. Por ejemplo, en los algoritmos de
búsqueda de anchura y de búsqueda de profundidad, uno sabe la secuencia de los nodos
visitados en un árbol.

Sin embargo, los problemas de búsqueda, los cuales siempre tendremos que tratar en
Inteligencia artificial, son no determinísticos y el orden de elementos visitados en el
espacio de búsqueda depende completamente en el conjunto de datos.

Dependiendo de la metodología de expansión de un espacio de estado y


consecuentemente el orden de los estados visitados los problemas de búsqueda se
nombran diferentes: Búsqueda de Metas a Profundidad, Búsqueda de Metas en Anchura,
Búsqueda Óptima.
4.3.1 BÚSQUEDA DE METAS A PROFUNDIDAD

Funcionamiento

• Expandir un camino hasta llegar al final


• Si no es solución y no tiene expansión posible, volver a un nodo no expandido del
nivel anterior
• Menor exigencia de memoria
o Basta con almacenar los nodos de la ruta que se está expandiendo
Algoritmo

añadir ESTADO_INICIAL a ABIERTOS


inicializar CERRADOS a VACIO
RESUELTO:= false
while (ABIERTOS no VACIO and no RESUELTO) do
ACTUAL:= primer nodo de ABIERTOS
if ACTUAL es ESTADO_FINAL then
RESUELTO:= true
else
añadir ACTUAL a CERRADOS
/* expandir ACTUAL */
for all (OPERADOR aplicable a ACTUAL) do
generar NUEVO_ESTADO aplicando OPERADOR
añadir NUEVO_ESTADO al principio de ABIERTOS
end for
end if
end while

Características búsqueda en profundidad

• No es completa: Puede no acabar nunca si encuentra una rama sin fin en el


espacio de estados
o En ciertos casos nunca se volvería atrás
§ Si hay ciclos bucle infinito
§ si espacio de estados es infinito

o Muy dependiente del orden de aplicación de los operadores


• No es optima: Encuentra una solución (la primera que aparezca) que no tiene por
qué ser la mejor (la más cercana)

• Complejidad

o Complejidad espacial: O(b × m)

§ b, factor de ramificación
§ m, profundidad máxima de cualquier solución
• Complejidad temporal: O(bm)
o si no hay solución (o es el ´ultimo estado) examinará todos los estados
(como en anchura)
• En general, suele ser más rápida que búsqueda en anchura
o es cuestión de suerte”
o puede funcionar bien si hay muchos estados finales
• ventajas:
o Menores requisitos de memoria
o Mayor rapidez (en promedio)
• inconvenientes:
o Posibilidad de que se estanque
o No asegura solución óptima
Variantes

• Profundidad Acotada
o Fijar un límite máximo de profundidad (cota c)
§ Cuando un camino alcanza la profundidad c sin ser solución,
desecharlo
o Es completo
§ Asegura encontrar solución si c es mayor que la profundidad de la
solución
o No asegura solución óptima
o Complejidad: espacial (O(b × c)), temporal (O(bc))
o PROBLEMA: elección cota c

§ Pequeña Ahorra tiempo y espacio


Puede impedir encontrar solución
§ Grande
Desperdicio de tiempo y espacio
Aumenta posibilidades de encontrar solución

• Profundidad Iterativa
o Secuencia de búsquedas por profundidad acotada, incrementando el valor
de la cota hasta encontrar solución
o ventajas:

§ Evita problema elección de la cota


§ Es completa y optima
§ Siempre da una solución (si la hay)
§ Encuentra la mejor (a menor profundidad) → Agota todos los
nodos bajo la cota c antes de incrementarla

o Funcionamiento intermedio (anchura-profundidad)


o Uso de memoria reducido (como búsqueda profundidad)
• inconvenientes:
o Repetición de cálculos
§ No excesivamente importante (afecta principalmente a estados en
niveles superiores)
§ Mayoría de nodos situados en niveles inferiores

4.3.2 BÚSQUEDA DE METAS EN ANCHURA

Una alternativa para la búsqueda de profundidad es la búsqueda de metas de anchura (o


amplitud).

Búsqueda en anchura (en inglés BFS - Breadth First Search) es un algoritmo para
recorrer o buscar elementos en un grafo (usado frecuentemente sobre árboles). Atraviesa
un árbol por anchura más que por profundidad. Como puede ser visto en la figura mas
adelante, el algoritmo de anchura empieza examinando todos los nodos de un nivel (a
veces llamado hebra uno) abajo del nodo raíz.
Si un estado meta es alcanzado aquí, el éxito es reportado. De otra forma, la búsqueda
continúa ampliando caminos de todos los nodos del nivel en curso, para posteriormente
bajar al próximo nivel. De este modo, la búsqueda continúa revisando nodos en un nivel
especial, e informará sobre el éxito cuando un nodo meta es encontrado, y reportar una
falla si todos los nodos han sido revisados y ningún nodo meta ha sido encontrado.

Funcionamiento

• Recorrer árbol/grafo de búsqueda en anchura


o Expandir estado raíz
o Expandir todos sus sucesores
o Expandir todos los sucesores de los sucesores.....
• Realiza un ordenamiento de los estados a estudiar en base a su profundidad
o Todos los nodos de profundidad d se estudiarán antes que cualquier nodo
a profundidad d + 1

Algoritmo

ABIERTOS: Lista ordenada de nodos generados aun no expandidos (no se han generado
sus sucesores)
→ almacena nodos”frontera”, en espera de ser expandidos

añadir ESTADO_INICIAL a ABIERTOS


RESUELTO:= false
while (ABIERTOS no VACIO and no RESUELTO) do
ACTUAL:= primer nodo de ABIERTOS
if ACTUAL es ESTADO_FINAL then
RESUELTO:= true
else
/* expandir ACTUAL */
for all (OPERADOR aplicable a ACTUAL) do
generar NUEVO_ESTADO aplicando OPERADOR
añadir NUEVO_ESTADO al final de ABIERTOS
end for
end if
end while

ABIERTOS: Funciona como una cola (fifo)


→mayor profundidad al final de la lista

MEJORA: En espacios de estados con estructura de grafo evitar examinar un estado en


múltiples ocasiones

• Lista cerrados: Almacena estados ya examinados


• Expandir solo estados que no parezcan en abiertos (ya generados) ni en cerrados
(ya examinados)
• Tipos de estados
No generados: no aparecen en ABIERTOS ni en
CERRADOS
Generados no Examinados: en ABIERTOS
Examinados no Expandidos: el estado actual
Examinados: en CERRADOS

añadir ESTADO_INICIAL a ABIERTOS


inicializar CERRADOS a VACIO
RESUELTO:= false
while (ABIERTOS no VACIO and no RESUELTO) do
ACTUAL:= primer nodo de ABIERTOS
if ACTUAl es ESTADO_FINAL then
RESUELTO:= true
else
añadir ACTUAL a CERRADOS
/* expandir ACTUAL */
for all (OPERADOR aplicable a ACTUAL) do
generar NUEVO_ESTADO aplicando OPERADOR
if (NUEVO_ESTADO no en ABIERTOS ni en CERRADOS) then
añadir NUEVO_ESTADO al final de ABIERTOS
end if
end for
end if
end while
Incrementa el coste computacional
• Gestión de las listas
• Comprobación pertenencia (inspeccionar ABIERTOS y CERRADOS)

Características búsqueda en anchura

• Es completa: Garantiza que se encuentra la solución


o Si esta existe
o Si el espacio de búsqueda es finito (sin ciclos)
• Es óptima: Siempre encuentra la solución más corta
o Se asegura que la solución encontrada es la de menor profundidad
o nota: Si los operadores tienen asociado un coste, la solución menos
profunda puede no ser la menos costosa.
• Complejidad
o Dos factores
§ b, factor de ramificación: n° promedio de estados generados desde
un estado dado
§ p, profundidad estado objetivo: n° mínimo de operadores necesarios
para alcanzar la solución encontrada
o Complejidad espacial: O(bp)
o Complejidad temporal: O(bp)
o En el peor de los casos examina todos los nodos posible
o Complejidad exponencial: se saca 1 de ABIERTOS y se añaden b de
media
• Muy ineficaz (explosión combinatoria), sobre todo en requisitos de espacio.

4.3.3 BÚSQUEDA ÓPTIMA


 
La búsqueda optima también es llamada búsqueda heurística, trata de resolver los
problemas mediante un nueva técnica.

Podemos expandir nodos por selección seleccionando el nodo más prometedor, donde
estos nodos estarán identificados por el valor de su fuerza comparada con sus
competidores homólogos, con la ayuda de funciones intuitivas especializadas, llamadas
funciones heurísticas.

La búsqueda heurística generalmente trabaja para dos tipos distintos de problemas:

Forward reasoning (razonamiento hacia delante)


Backward reasoning (razonamiento hacia atrás)

Funcionamiento

• Analizar primero los nodos con menor coste.


• Ordenar la cola de abiertos por coste, de menor a mayor
• De esta manera, cuando se llega por primera vez a un estado final, se llega con el
menor costo posible.
• Se trata de una búsqueda ciega:
• No usa conocimiento para guiar la búsqueda hacia el objetivo
• Caso particular: búsqueda en anchura.

Propiedades de la búsqueda óptima

• Complejidad:
o r: factor de ramificación.
o p: profundidad de la solución.
o Complejidad en espacio: O(rp).
o Complejidad en tiempo: O(rp).
• Es completa.
• Es óptima.
• Salvo en espacios de estados pequeños, en la práctica esta búsqueda no es
posible, debido a la cantidad de tiempo y espacio consumidos

Implementación de la búsqueda óptima

FUNCION BUSQUEDA-OPTIMA ()

1. Hacer ABIERTOS la cola formada por el nodo inicial (es decir, el nodo cuyo estado
es *ESTADO-INICIAL*, cuyo camino es vacío y cuyo coste es 0); Hacer
CERRADOS vacío.

2. Mientras que ABIERTOS no esté vacía,


2.1 Hacer ACTUAL el primer nodo de ABIERTOS y ABIERTOS el resto de
ABIERTOS
2.2 Poner el nodo ACTUAL en CERRADOS.
2.3 Si ES-ESTADO-FINAL (ESTADO (ACTUAL)),
2.3.1 devolver el nodo ACTUAL y terminar.
2.3.2 en caso contrario,
2.3.2.1 Hacer NUEVOS-SUCESORES la lista de nodos de
SUCESORES (ACTUAL) que o bien tienen un estado que no aparece
en los nodos de ABIERTOS ni de CERRADOS, o bien su coste es
menor que cualquier otro nodo con el mismo estado que apareciera en
ABIERTOS o en CERRADOS
2.3.2.2 Hacer ABIERTOS el resultado de incluir NUEVOS-
SUCESORES en ABIERTOS y ordenar todo en orden creciente de los
costes de los caminos de los nodos
3. Devolver FALLO.

4.4 SATISFACCIÓN DE RESTRICCIONES

Los problemas pueden resolverse buscando en un espacio de estados, estos estados


pueden evaluarse por heurísticas específicas para el dominio y probados para verificar si
son estados meta. Los componentes del estado, son equivalentes a un grafo de
restricciones, los cuales están compuestos de:

• Variables.
• Dominios (valores posibles para las variables).
• Restricciones (binarias) entre las variables
La satisfaccion de restricciones s la asignación de valores a un conjunto de variables para
satisfacer las restricciones dadas.

Definición: red de restricciones P = (X, D, C)

X = { X1, X2,. . ., Xn } variables


D = { D1, D2,. . ., Dn } dominios
C = { C1, C2,. . ., Ce } restricciones

Dada una restricción Ci,

var (Ci ) = {Xi1,..., Xik } relaciona k variables (restricción k-aria)


rel (Ci ) Í Di1´ Di2 ´ ... ´ Dik tuplas de valores permitidos

CSP: problema de resolver la red de restricciones


Solución: asignación de valores a variables satisfaciendo todas las restricciones
Complejidad: NP-completo algoritmos exponenciales (caso peor)

• Un problema de satisfacción de restricciones (o PSR) se define por un conjunto


de variables, X1, X2, …, Xn, y un conjunto de restricciones, C1, C2, …, Cm.

• Cada variable Xi tiene un dominio no vacío Di de posibles valores.

• Cada restricción Ci involucra algún subconjunto de las variables y especifica las


combinaciones permisibles de valores de ese subconjunto.

• Un estado del problema se define por una asignación de valores a alguna o todas
las variables, {Xi = vi, Xj = vj, …}.

• Una asignación que no viola ninguna restricción es llamada consistente o legal.

• Una asignación completa es una en la cual cada variable es mencionada.

• Una solución a un PSR es una asignación completa que satisface todas las
restricciones.

Objetivo: encontrar un estado que satisface las restricciones

Representación

• Estado = Grafo de restricciones


o Variables = etiquetas de nodos
o Dominios = contenido de nodos
o Restricciones = arcos dirigidos y etiquetados entre nodos
• Ejemplo: colorear mapa
Algoritmos

• Generación y prueba: enormemente ineficiente


• Búsqueda heurística
o Búsqueda en profundidad con backtracking cronológico
• Propagación de restricciones
o Antes de la búsqueda
o Durante la búsqueda

Propagación de restricciones

• Cuestiones técnicas sobre la comprobación hacia adelante:


o Cada nodo del ´árbol debe contener el estado junto la lista de valores
posibles en las variables por asignar
o Muy fácil de usar en conjunción con la heurística MRV
• La comprobación hacia adelante es un caso particular de propagación de
restricciones:
o Propagar las implicaciones de las restricciones sobre una variable sobre
otras variables
o Existen técnicas más completas para propagar restricciones que la
comprobación hacia adelante
o la propagación debe ser rápida: completitud vs rapidez
• La consistencia de arcos proporciona un método con un buen compromiso entre
eficiencia y completitud

Un conjunto de restricciones puede inducir otras que estaban implícitas. La propagación


de restricciones es el proceso de hacerlas explícitas

El papel de la PR es disminuir el espacio de búsqueda. Debemos realizar la propagación:


• Preproceso (eliminar zonas del espacio donde no hay soluciones)
• 2 durante el proceso: podar el espacio a medida que la búsqueda progresa
(Forward Checking)

Cada ciclo tiene dos partes:


• Se propagan las restricciones
Se podrían utilizar de reglas de inferencia.
Tener en cuenta que las restricciones no tienen por qué ser independientes
(Muchas restricciones implican a varias variables, una variable participa en
muchas restricciones)

• Se analiza el resultado:
o Solución encontrada
o Solución imposible
o Seguir buscando: proceso heurístico de búsqueda

Propiedades sobre grafos de restricciones

• Se pueden definir propiedades sobre los grafos de restricciones que permiten


reducir el espacio de búsqueda
o K-consistencia: Poda de valores que no sean posibles para un grupo de k
variables
o Arco consistencia (2-consistencia): Eliminamos valores imposibles para
parejas de variables
o Camino consistencia (3-consistencia): Eliminamos valores imposibles para
ternas de variables
• Comenzar con un grafo k-consistente (2, 3, ...) reduce el número de backtrackings

Preproceso de arco-consistencia

• Un PSR es arco-consistente si para cada par de variables (Xi , Xj ) y para


cualquier valor vk de Di existe un valor vl de Dj tal que se satisfacen las
restricciones. Es decir, se busca que los valores posibles de Xi sean consistentes
con la restricción asociada al arco.
• Lo que realmente pretendemos es que todas las variables sean arco consistentes
para todos los arcos que inciden en ellas. Es decir, que los dominios actuales de
cada variable sean consistentes con todas las restricciones.

Consistencia de arcos

• En un PSR, por arco entendemos un arco dirigido en el grafo que lo representa


o Equivalentemente, un arco es una restricción en la que hay una variable
distinguida
o Notación: B > E, CO 6= SE, |Vi − Vj| 6= |i − j|
• Arco consistente respecto a un conjunto de dominios asociados a un conjunto de
variables:
o Para cualquier valor del dominio asociado a la variable distinguida del arco,
existen valores en los dominios de las restantes variables que satisfacen la
restricción del arco

Propagación durante la búsqueda (forward checking)

• Modificación del algoritmo de búsqueda en profundidad con backtracking


cronológico (introducimos la propagación de restricciones después de cada
asignación)
• Anticipación: detectar cuanto antes caminos sin solución y podarlos.
o Asignar un valor y consultar las restricciones sobre las variables futuras
con arco desde la actual
o Se eliminan valores no compatibles de los dominios correspondientes a
dichas variables futuras
• Equivale a hacer arco-consistente la variable actual con las futuras en cada paso
• La eficiencia dependerá del problema (incrementamos el coste de cada iteración)

4.5 RESOLUCIÓN DE PROBLEMAS DE JUEGOS

La resolución de juegos y la planificación así como la construcción de agentes inteligentes


constituyen amplios campos que abarca la rama de la Inteligencia Artificial. A
continuación, veremos algunos ejemplos de resolución de juegos y problemas típicos de
planificación implementados en Prolog. Podremos observar la facilidad con la que
podemos plasmar las especificaciones de los problemas directamente, utilizando una
sintaxis que nos proporciona un alto grado de abstracción. Esto nos aporta una gran
ventaja a la hora de realizar el desarrollo de la aplicación una vez analizado el problema y
diseñada su solución.

La resolución de problemas es uno de los procesos básicos de razonamiento que la


inteligencia artificial trata de abordar. El objetivo consiste en lograr que la máquina ayude
a un experto humano a encontrar la solución a un determinado problema (de forma más
rápida, más exacta, más fiable...)

Es el proceso que partiendo de unos datos iníciales y utilizando un conjunto de


procedimientos escogidos, es capaz de determinar el conjunto de pasos o elementos que
llevan a una solución óptima o semi-óptima de un problema de planificación.

¿Por qué utilizar juegos?

Por que través de los juegos es muy fácil medir el éxito o el fracaso, por lo que podemos
comprobar si las técnicas y algoritmos empleados son los óptimos.

Funcionamiento

• Deseamos definir cualquier tipo de problema de manera que se pueda resolver


automáticamente
• Necesitamos:
o Una representación común para todos los problemas
o Algoritmos que usen alguna estrategia para resolver problemas definidos
en esa representación común.  

Ejemplo: N reinas
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
• Espacio de estados: Configuraciones de 0 a n reinas en el tablero con sólo una por
fila y columna
• Estado inicial: Configuración sin reinas en el tablero
• Estado final: Configuración en la que ninguna reina se mata entre si
• Operadores: Colocar una reina en una fila y columna
o Condiciones: La reina no es matada por ninguna ya colocada
o Transformación: Colocar una reina mas en el tablero en una fila y columna
determinada
• Solución: Una solución, pero no nos importan los pasos

BIBLIOGRAFIAS

1. http://www.cs.us.es/cursos/ia1/temas/tema-02.pdf

2. http://ccia.ei.uvigo.es/docencia/IA/Tema2.pdf

3. http://www.infor.uva.es/~calonso/IAI/Tema3-
BusquedaNoInformada/FormulacionEspacioEstado08-09.pdf

4. http://www.matesco.unican.es/informacion_academica/2006_2007/informatica/Intel
igenciaArtificial/tema2-intro.pdf

5. http://www.iiia.csic.es/~pedro/busqueda1-introduccion.pdf

6. http://daparoan.webcindario.com/43_busqueda_sistematica.html

7. http://www.cs.us.es/cursos/ia1/temas/tema-04.pdf
8. http://www.cs.us.es/cursos/iia-2004/temas/tema-03.pdf

9. http://www.lsi.upc.es/~bejar/ia/transpas/teoria/2-BH5-CSP.pdf

10. http://www.cs.us.es/cursos/ia1/temas/tema-05.pdf

11. www.wiphala.net/.../class_07_constrain_satisfaction_problems.ppt

12. http://www.infor.uva.es/~jjalvarez/asignaturas/IA_teoria/lectures/CSP.pdf

13. http://www.it.uc3m.es/jvillena/irc/material/02.pdf

14. http://www.lsi.upc.es/~bejar/ia/transpas/teoria/2-BH1-introduccion_busqueda.pdf

15. http://www.buenastareas.com/ensayos/Hola/289708.html

You might also like