Académique Documents
Professionnel Documents
Culture Documents
modelo
B
C
C
D
E
Agentes especializados
Ciclo de actuacin:
1. Definir el modelo
2. Generar los objetivos
3. Percibir y clasificar la situacin presente
4. Buscar un plan de actuacin
5. Ejecutar el plan de actuacin
Estado inicial
C
A
Coste:
la aplicacin de cada operador vale
una unidad
Estado meta
A
B
C
Inteligencia Artificial 3 ITIS
2010/11
A B C
A
B C
A
C B
C
B A
C
A B
B
C A
B
A C
C
A
B
B
A
C
A
C
B
B
C
A
A
B
C
C
B
A
Estado inicial
de
c: (si, sj ) v, v
Coste de un operador
n1
Coste de un plan
Ejercicio 1
Problema de bsqueda / conocimiento del agente:
En una mesa se encuentran dos jarras, una con una capacidad de 3 litros
(llamada Tres), y la otra con una capacidad de 4 litros (llamada Cuatro).
Inicialmente, Tres y Cuatro estn vacas. Cualquiera de ellas puede llenarse con
el agua de un grifo G. Asimismo, el contenido tanto de Tres como de Cuatro
puede vaciarse en una pila P. Es posible verter todo el agua de una jarra a la otra.
No se dispone de dispositivos de medicin adicionales. Se trata de encontrar una
secuencia de operadores que deje exactamente dos litros de agua en Cuatro.
a) Modele este problema como un problema de bsqueda. Con tal fin, defina el
estado inicial, el conjunto de estados meta, los operadores (especificando sus
precondiciones y post-condiciones), as como el coste de cada operador.
b) Caracterice el conocimiento a priori del agente de resolucin del problema
correspondiente? Facilite ejemplos de los resultados de la funcin expandir.
c) Encuentre una solucin al problema.
Inteligencia Artificial 3 ITIS
2010/11
Mtodo de bsqueda
Mtodo de bsqueda:
estrategia para explorar el
espacio de estados
en cada paso se expande un
estado
se desarrolla sucesivamente
un rbol de bsqueda
Mtodo general de bsqueda:
1. seleccionar nodo hoja
2. comprobar si es nodo meta
3. expandir este nodo hoja
Arbol de bsqueda:
C
A B
B
C
A
C
B A
A
C
B
A B C
B
C A
A B C
B
A C
A
B
C
Algoritmo de bsqueda
Elementos del algoritmo
el rbol se representa en base
a un registro del tipo nodo
abierta es una lista de nodos,
que rene las hojas del rbol
{bsqueda general}
abierta s0
Repetir
Si vaca?(abierta) entonces
devolver(negativo)
nodo primero(abierta)
Si meta?(nodo) entonces
sucesores expandir(nodo)
devolver(nodo)
Para cada nsucesores hacer
n.padre nodo
ordInsertar(n,abierta,<orden>)
Fin {repetir}
Inteligencia Artificial 3 ITIS
2010/11
Estados repetidos
Problema:
el mismo estado puede repetirse varias veces en el rbol de bsqueda
puede generarse el mismo subrbol varias veces
Soluciones:
ignorarlo
evitar ciclos simples:
no aadir el padre de un nodo al conjunto de sucesores
Clasificacin de mtodos
Caractersticas:
completitud: se encuentra una solucin si existe
optimalidad: se encuentra la mejor solucin si hay varias
complejidad en tiempo: cunto se tarda en encontrar la solucin?
complejidad en espacio: cunta memoria se utiliza en la bsqueda?
(iv) bsqueda
de coste
uniforme
2.3 bsqueda
heurstica
2.2 bsqueda
no informada
bsqueda
general
(vii) IDA*
(vi) A*
(iii) Bsqueda
profundidad
iterativa
(ii) bsqueda
en
profundidad
(v) bsqueda
avara
Inteligencia Artificial 3 ITIS
2010/11
Tema 2: Bsqueda
2. Bsqueda
2.1. Agentes de resolucin de
problemas
2.2. Bsqueda no informada
2.3. Bsqueda heurstica
2.4. Bsqueda multiagente
Bsqueda en amplitud
Bsqueda en amplitud:
ingls: breadth first search
Estrategia:
generar el rbol por niveles de
profundidad
expandir todos los nodos de nivel
i, antes de expandir nodos de
nivel i+1
Resultado:
considera primero todos los
caminos de longitud 1, despus
los caminos de longitud 2, etc.
Se encuentra el estado meta de
menor profundidad
Inteligencia Artificial 3 ITIS
2010/11
Nivel 1
Nivel 2
Nivel 3
B
C
A
C
B A
A
C
B
A B C
...
Nivel 4
A
B C
...
A B C
A
C B
...
B
C A
C
B A
B
C A
A
B
C
B
A C
estructura FIFO:
siempre expandir primero el
nodo ms antiguo (es decir:
menos profundo)
{bsqueda en amplitud}
abierta s0
Repetir
Si vaca?(abierta) entonces
devolver(negativo)
nodo primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores expandir(nodo)
Para cada n sucesores hacer
n.padre nodo
ordInsertar(n,abierta,final)
Fin {repetir}
B
C
A
C
B A
A
C
B
B
C
A
B C
A
A
B C
A
B C
A
C B
B
C A
C
B A
...
...
B
A C
B
A C
A
B C
A
C
B
B C
A
C
B
B C
A
C
B
...
B
C
A
C
B A
B C
A
B C
B C
B C
A
C B
B
C A
C
B A
B
A C
...
A
B
C
B
C A
C
B A
C
B A
B
A C
B
A C
...
...
B
A C
A
B
C
...
Inteligencia Artificial 3 ITIS
2010/11
Complejidad
Complejidad en tiempo y espacio:
proporcional al nmero de nodos expandidos
Caso medio
1
...
d2
d1
d
1+b+...+bd-1 +1 O(bd)
0
1
Peor caso
1
...
d2
d2
d1
d1
...
Problemas:
complejidad
exponencial incluso en el mejor caso
los problemas de espacio son an ms graves que los
problemas de tiempo
Ejercicio 2.2
Bsqueda en amplitud:
El grafo que se muestra al lado
determina un problema de bsqueda.
Cada nodo representa un estado; los
arcos modelan la aplicacin de
operadores. Suponga que A es el
estado inicial y que K y E son
estados meta
a)
b)
c)
A
D
G
E
Bsqueda en profundidad
Bsqueda en profundidad:
ingls: depth first search
Estrategia:
expandir los nodos ms
profundos primero
si se llega a un nodo sin
sucesores, dar vuelta atrs y
expandir el siguiente nodo ms
profundo
Resultado:
el mtodo va explorando un
camino actual
no siempre se encuentra el
nodo de profundidad mnima
Inteligencia Artificial 3 ITIS
2010/11
C
A B
B
C
A
C
B A
A
C
B
A B C
A B C
B
C A
A
C B
A
B
C
B
A C
A
B C
C
B A
B
A C
Bsqueda en profundidad
Algoritmo:
usar el algoritmo general de
bsqueda
aadir nuevos sucesores en la
cabeza de la lista abierta
abierta funciona como pila
insercin en la cabeza de la lista
recuperacin desde la cabeza
estructura LIFO:
siempre expandir primero el
nodo ms reciente (es decir:
el ms profundo)
{bsqueda en profundidad}
abierta s0
Repetir
Si vaca?(abierta) entonces
devolver(negativo)
nodo primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores expandir(nodo)
Para cada n sucesores hacer
n.padre nodo
ordInsertar(n,abierta,cabeza)
Fin {repetir}
C
A B
B
C
A
C
B A
A
C
B
A B C
B
C
A
C
B A
A B C
A
C
B
B
C A
A
C B
A
B C
C
B A
C
B A
A B C
A B C
A B C A B C
B
A C
A B C A B C
A
B
C
B
A C
B
C A
A
B
C
A
C B
B
A C
A
B C
A
C B
C
B A
A
B C
B
A C
A B C
C
B A
B
A C
A B C
Lmites de profundidad
Problema:
la bsqueda en profundidad slo es completa en el
Solucin:
bsqueda en profundidad limitada:
ingls: depth limited search
bsqueda en profundidad con lmite de profundidad d*
expandir slo nodos con profundidad d d*
...
Inteligencia Artificial 3 ITIS
2010/11
Complejidad en espacio:
slo los nodos del camino actual y sus vecinos (sucesores) necesitan
almacenarse en la memoria
lineal en la profundidad del rbol de bsqueda
mejor caso: O(bd) / peor caso: O(bd*)
Problemas:
no es ptima: el nodo meta que se encuentra puede no ser de
profundidad mnima
es comn que unos lmites buenos de profundidad slo pueden
establecerse cuando el problema ya haya sido resuelto
en general, no se puede asegurar que la profundidad d de un nodo
meta sea d d*, es decir no se puede garantizar la completitud.
Inteligencia Artificial 3 ITIS
2010/11
Ejercicio 2.3
Bsqueda en profundidad:
El grafo que se muestra al lado determina un
problema de bsqueda. Cada nodo representa
un estado; los arcos modelan la aplicacin de
operadores. Suponga que A es el estado inicial
y que K y E son estados meta
a)
b)
c)
d)
A
D
G
E
Ejercicio 2.4
Bsqueda en profundidad (limitada):
La bsqueda en profundidad puede
implementarse fcilmente con un programa
recursivo.
a)
b)
Estrategia:
enumerar todos los lmites de profundidad d, empezando por 0
realizar bsqueda de profundidad limitada hasta d
Algoritmo:
{bsqueda de profundizacin iterativa}
abierta s0
desde d 0 hasta hacer
si bsqueda-en-prof-limitada(problema, d) = xito entonces
devolver(nodo-meta)
fin {desde}
Inteligencia Artificial 3 ITIS
2010/11
lmite d*=2
fallo
fallo
lmite d*=3
xito
...
...
...
Inteligencia Artificial 3 ITIS
2010/11
Complejidad en tiempo:
normalmente el coste adicional es relativamente pequeo
argumento intuitivo:
N
N
id
w
dl
w
(d )
=
(d )
b d +2 2b bd +d +1
( b 1) 2
b d +1 1
b 1
b d +2 2b bd + d +1 b 1
=
d +1
2
b 1
(b 1)
b d +2 2b bd + d +1
=
b d +2 b d +1 b +1
=
d +1
(b
b d +1
b d +1
b db+1 + b d1+1
Ejemplo: b= 10
para b=10 y nodos meta profundos, la bsqueda de profundizacin
iterativa expande slo 11% ms nodos que la bsqueda en
profundidad limitada
complejidad en tiempo en el peor caso de la bsqueda de
profundizacin iterativa : O(bd)
Inteligencia Artificial 3 ITIS
2010/11
Mtodo no
informado
preferido
Ejercicio 2.5
Bsqueda de profundizacin iterativa:
El grafo que se muestra al lado determina un
problema de bsqueda. Cada nodo representa
un estado; los arcos modelan la aplicacin de
operadores. Suponga que A es el estado inicial
y que K y E son estados meta
a)
b)
A
D
G
E
Ejercicio 2.6
Oradea
Zerind
Neamt
71
Iasi
151
75
Arad
Sibiu 99
140
118
87
Rimnicu
Timisoara
111
Vaslui
97
142
211
Pitesti
Mehadia
120
98
85
101
146
75
Dobreta
Fagaras
80
Lugoj
70
92
Bucarest
138
90
Craiova
Urziceni
Hirsova
86
Eforie
Giurgiu
71
87
151
75
92
140
118
99
80
T
111
97
85
138
75
98
101
146
120
90
p2 = A-S-R-P-B
c(p2) = 418
142
211
L
70
Ejemplo:
p1 = A-S-F-B
c(p1) = 450
U
86
Problema:
los mtodos de bsqueda no informados encuentran el nodo meta de
menor profundidad; ste puede no ser el nodo meta de coste mnimo
/ c(p1) = 450 > 418=c(p2)
prof.(Bp1) = 3 < 4 = prof.(Bp2)
Inteligencia Artificial 3 ITIS
2010/11
Mtodo:
Algoritmo:
S
R
g=220
g=300
g=280
g=317
g=140
g= 118
g=291
g=229
g =239
g=366
g = 340 g= 299
g =75
g=236
g=290
g=150
g=225
g=268
g = 212 g= 292
g=146
g=283
A
g=287
g=296
g=300
...
Inteligencia Artificial 3 ITIS
2010/11
71
87
151
75
92
140
118
99
80
T
111
97
L
138
75
g = 80
85
M
D
98
101
146
70
142
211
120
90
U
86
g = 120
g = 160
Inteligencia Artificial 3 ITIS
2010/11
Ejercicio 2.7
Bsqueda de coste uniforme:
Aplique la bsqueda de coste uniforme para encontrar
una ruta de Craiova (C) a Fagaras (F). Desarrolle el
rbol de bsqueda generado por dicho algoritmo,
asumiendo que se evitan ciclos simples. Indique el
valor g de cada nodo, as como el orden en el que se
expanden los nodos.