Vous êtes sur la page 1sur 47

Agentes de resolucin de problemas

  mantienen un modelo simblico del mundo


  desean modificar el estado del mundo de acuerdo con sus objetivos
  con tal fin, anticipan los efectos esperados de sus acciones sobre el

modelo

B
C

C
D
E

Inteligencia Artificial 3 ITIS


2010/11

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

Los agentes son especializados:


 el diseador dota al agente a priori con conocimientos
especficos
que definen el modelo
que definen los objetivos

 se supone una percepcin y una ejecucin ideal


Inteligencia Artificial 3 ITIS
2010/11

Bsqueda en espacios de estados


Espacio de estados: modelo del mundo representado por un grafo

Problema de bsqueda: espacio de estados + actitud del agente

Objetivo: encontrar el plan ms eficiente que lleve del estado inicial a un


estado meta
Inteligencia Artificial 3 ITIS
2010/11

El problema de los bloques


Estado:
 configuracin de n bloques
Operadores:
 apilar(X,Y): poner X encima de Y

Estado inicial

C
A

 Prec.: bloques X e Y estn libres


 Post.: bloque X est encima de Y

 quitar(Y): poner Y en la mesa


 Prec.: bloque Y est libre
 Post.: bloque Y est en la mesa

Coste:
 la aplicacin de cada operador vale
una unidad

Estado meta

A
B
C
Inteligencia Artificial 3 ITIS
2010/11

Representacin del problema


de
los
bloques
Ejemplo con 3 bloques
Plan ptimo: coste 3

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

Inteligencia Artificial 3 ITIS


2010/11

Conocimientos del agente


 Representacin implcita del problema de bsqueda
 Conocimientos mnimos a priori de un agente:
 s0

Estado inicial

 expandir: s  {si , ..., si }


1

de

Conjunto finito de sucesores


un estado

 meta?: s  verdad | falso

Prueba de xito en un estado

 c: (si, sj )  v, v  

Coste de un operador

n1

 c ( si1 si2 sin ) =  c ( sik ,sik+1


k=1

Coste de un plan

Inteligencia Artificial 3 ITIS


2010/11

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

Inteligencia Artificial 3 ITIS


2010/11

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)

 vaca? determina si una lista


es vaca

Si meta?(nodo) entonces

 primero quita el primer


elemento de una lista

sucesores  expandir(nodo)

 ordInsertar aade un nodo a


una lista, clasificado segn
una funcin de orden

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

 evitar ciclos generales:


 no aadir un antecesor de un nodo al conjunto de sucesores

 evitar todos los estados repetidos:


 no aadir ningn nodo existente en el rbol al conjunto de sucesores

Inteligencia Artificial 3 ITIS


2010/11

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?

Tipos de mtodos de bsqueda:


no informados: utilizan slo los conocimientos mnimos
heursticos: adems utilizan informacin aproximada, y especfica
del problema, para guiar la bsqueda

Inteligencia Artificial 3 ITIS


2010/11

Resumen de los mtodos de bsqueda


(i)
bsqueda en
amplitud

(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

Inteligencia Artificial 3 ITIS


2010/11

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

rbol de bsqueda en amplitud


Bsqueda en amplitud:
C
A B

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

Inteligencia Artificial 3 ITIS


2010/11

Algoritmo para bsqueda en amplitud


Algoritmo:
 usar el algoritmo general de
bsqueda
 aadir nuevos sucesores al final
de la lista abierta
 abierta funciona como cola
 insercin al final
 recuperacin desde la cabeza

 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}

Inteligencia Artificial 3 ITIS


2010/11

rbol de bsqueda en amplitud


Lista abierta:
C
A B
C
A B

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

Suponemos que en el rbol de bsqueda


 el factor de ramificacin es b
 el mejor nodo meta tiene profundidad d
Mejor caso

Caso medio
1

...

d2
d1
d

1+b+...+bd-1 +1  O(bd)

0
1

Peor caso
1

...

d2

d2

d1

d1

1+b+...+bd-1 +bd/2  O(bd)

...

1+b+...+bd-1 +bd  O(bd)


Inteligencia Artificial 3 ITIS
2010/11

Requerimientos de tiempo y memoria


Requerimientos de recursos de una bsqueda en amplitud exponencial
 factor de ramificacin efectivo: 10
 tiempo: 1000 nodos/segundo
 memoria: 100 bytes/nodo

Inteligencia Artificial 3 ITIS


2010/11

Bsqueda en amplitud: anlisis


Ventajas:
 completo:


siempre se encuentra un nodo meta si existe

 ptimo (para operadores de coste uno):




siempre se encuentra el nodo meta menos profundo

Problemas:
 complejidad
 exponencial incluso en el mejor caso
 los problemas de espacio son an ms graves que los
problemas de tiempo

Inteligencia Artificial 3 ITIS


2010/11

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)

desarrolle el rbol de bsqueda


que genera la bsqueda en
amplitud. Cul de los nodos
meta se encuentra primero?
indique el orden en que se
expanden los nodos
ponga el estado de la lista abierta
en cada paso del algoritmo

A
D

G
E

Inteligencia Artificial 3 ITIS


2010/11

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

rbol de bsqueda en profundidad


bsqueda en profundidad
(evitando ciclos simples):

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

Inteligencia Artificial 3 ITIS


2010/11

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)

 al guardar todos los sucesores de


un nodo expandido en abierta, se
permite la vuelta atrs

{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}

Inteligencia Artificial 3 ITIS


2010/11

rbol de bsqueda en profundidad


Lista abierta:
C
A B

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

Inteligencia Artificial 3 ITIS


2010/11

Lmites de profundidad
Problema:
 la bsqueda en profundidad slo es completa en el

caso de rboles de bsqueda finitos


 si existen caminos infinitos sin nodo meta, es posible

que la bsqueda en profundidad no termine

Solucin:
 bsqueda en profundidad limitada:
 ingls: depth limited search
 bsqueda en profundidad con lmite de profundidad d*
 expandir slo nodos con profundidad d  d*

 incompleto si la profundidad del mejor nodo meta es mayor


que d*

...
Inteligencia Artificial 3 ITIS
2010/11

Bsqueda en profundidad limitada:


complejidad
Complejidad en tiempo:
 proporcional al nmero de nodos expandidos
 factor de ramificacin b / lmite de profundidad d* /

nodo meta con profundidad dd*


 mejor caso: O(d) (se expanden slo los nodos del camino meta)
 peor caso: O(bd*) (se expanden todos los nodos de prof.  d*)

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

Inteligencia Artificial 3 ITIS


2010/11

Bsqueda en profundidad limitada:


anlisis
Ventajas:
 mejora significativa de la complejidad en espacio con respecto a

la bsqueda en amplitud (lineal frente a exponencial):


 completo para lmites de profundidad d* adecuados

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)

desarrolle el rbol de bsqueda que genera


la bsqueda en profundidad. Cul de los
nodos meta se encuentra primero?
indique el orden en que se expanden los
nodos
ponga el estado de la lista abierta en cada
paso del algoritmo
cmo cambiara el proceso de bsqueda si
aplicamos lmites de profundidad, p.ej.:
d*=2?

A
D

G
E

Inteligencia Artificial 3 ITIS


2010/11

Ejercicio 2.4
Bsqueda en profundidad (limitada):
La bsqueda en profundidad puede
implementarse fcilmente con un programa
recursivo.
a)

Especifique una implementacin recursiva de


la bsqueda en profundidad en pseudocdigo.

b)

Modifique el pseudocdigo del ejercicio a)


para incorporar lmites de profundidad.

Inteligencia Artificial 3 ITIS


2010/11

Bsqueda de profundizacin iterativa


 Ingls: iterative deepening search
 Idea:
 esquivar el problema de elegir d*, al probar todos los posibles lmites
de profundidad

 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

Bsqueda de profundizacin iterativa


lmite d*=1

lmite d*=2

fallo

fallo

lmite d*=3

xito

...

...

...
Inteligencia Artificial 3 ITIS
2010/11

Bsqueda de profundizacin iterativa:


complejidad
Complejidad en espacio:
 igual que la bsqueda en profundidad: slo se almacenan los nodos

vecinos del camino actual


 lineal en la profundidad del rbol de bsqueda: peor caso O(bd)

Complejidad en tiempo:
 normalmente el coste adicional es relativamente pequeo
 argumento intuitivo:






suponga un rbol de bsqueda de profundidad d


los nodos interiores (prof. <d) se expanden varias veces
los nodos hoja (prof. = d) se expanden slo una vez
en un rbol de bsqueda exponencial casi todos los nodos son hojas
en consecuencia, para rboles de bsqueda grandes, la bsqueda de
profundizacin iterativa no expande muchos ms nodos que la bsqueda en
profundidad limitada
Inteligencia Artificial 3 ITIS
2010/11

Bsqueda de prof. iterativa: complejidad en


tiempo
Complejidad en tiempo en el peor caso:
 n de nodos expandidos por la bsqueda en prof. limitada hasta prof. d:

 n de nodos expandidos por la bsqueda de prof. iterativa hasta prof. d:

Inteligencia Artificial 3 ITIS


2010/11

Bsqueda de prof. iterativa: complejidad en


tiempo
Coste adicional de tiempo de la bsqueda de profundizacin iterativa:

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
=

b d +1 b  b2bd +1  bbdd +1 + b dd +1 + b d1+1


b

d +1

(b 

b d +1
b d +1

 b db+1 + b d1+1

b  b2d  bdd + b dd +1 + b d1+1


b 1  b1d + b d1+1
Inteligencia Artificial 3 ITIS
2010/11

Bsqueda en prof. iterativa: complejidad en


tiempo
Coste adicional de tiempo de la bsqueda de profundizacin iterativa:
 para d se obtiene:

 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

Bsqueda no informada: resultados


Resultados del peor caso:
 factor de ramificacin b / profundidad de la mejor solucin d /
lmite de profundidad d*

Mtodo no
informado
preferido

Inteligencia Artificial 3 ITIS


2010/11

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)

desarrolle la secuencia de rboles de


bsqueda generadas por la bsqueda de
profundizacin iterativa, indicando para
cada uno de ellos el orden en que se
expanden los nodos

A
D

G
E

Cul de los nodos meta se encuentra


primero?
Inteligencia Artificial 3 ITIS
2010/11

Ejercicio 2.6

Bsqueda de profundizacin iterativa:


Describa caractersticas relevantes de los
espacios de bsqueda en los que el
rendimiento de la bsqueda de
profundizacin iterativa es mucho peor
que el de la bsqueda en profundidad
estndar. Ponga un problema ejemplo que
ilustre dichas caractersticas.

Inteligencia Artificial 3 ITIS


2010/11

Problema de encontrar rutas


Estado: estancia en una ciudad

Operadores: ir a una ciudad vecina

Coste de un operador: distancia por


carretera a la ciudad vecina

Coste de un plan: suma de distancias


entre las ciudades visitadas

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

Inteligencia Artificial 3 ITIS


2010/11

Problema de encontrar rutas: ejemplo


O

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

Bsqueda de coste uniforme


Bsqueda de coste uniforme:
 Ingls: uniform cost search
 Idea:


guiar la bsqueda por el coste de los


operadores

 Mtodo:



g(n): coste mnimo para llegar


del nodo inicial al nodo n
expandir siempre el nodo de menor
coste g primero

 Algoritmo:

almacenar cada nodo con su valor g


 insertar los nuevos nodos en abierta
en orden ascendente segn su valor g


{bsqueda de coste uniforme}


abierta  s0
Repetir
Si vaco?(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,g)
Fin {repetir}

Inteligencia Artificial 3 ITIS


2010/11

Ejemplo: Bsqueda de coste uniforme


g=0

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

Lgica de la bsqueda de coste uniforme


O

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

Caractersticas de la bsqueda de coste


uniforme
Dinmica:
 la bsqueda de coste uniforme desarrolla sucesivamente todos los caminos por

orden de valor g creciente


 igual que la bsqueda en amplitud si g(n) = prof.(n) para todos los n

La bsqueda de coste uniforme es ptima:


 suponga que se encuentra un camino a un nodo meta ng con g(ng) = k
 los valores de g crecen de forma montona la largo de todos los caminos del
rbol de bsqueda
 por tanto, la bsqueda de coste uniforme expande todos los nodos ng con g(n)
<k
 en particular, si hubiera un nodo meta ng' con g(ng') < k , ste se habra
expandido antes que ng
 contradiccin; en consecuencia ng es el nodo meta de menor coste (valor de g)
Inteligencia Artificial 3 ITIS
2010/11

Caractersticas de la bsqueda de coste


uniforme
La bsqueda de coste uniforme es completa:
 sea ng un nodo meta con g(ng) = k
 suponga que no es encontrado por la bsqueda de coste uniforme
 debe haber un nmero infinito de nodos ni con g(ni)  k
 ya que el nmero de sucesores de un nodo es finito, debe haber un camino
infinito p, tal que para todos los nodos ni de p se cumple que g(ni)  k
 pero la funcin de coste c asigna un entero positivo a cada operador,
y todas las sucesiones crecientes de enteros no tienen lmite

 contradiccin; en consecuencia el nodo meta ng ser encontrado


Complejidad en tiempo y espacio:
 exponencial, al igual que la bsqueda en amplitud
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.

Inteligencia Artificial 3 ITIS


2010/11

Vous aimerez peut-être aussi