Sei sulla pagina 1di 129

Inteligencia Artificial

I.T. en Informtica de Sistemas, 3


Curso acadmico: 2010/2011
Profesores: Ramn Hermoso y Roberto Centeno

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 multi-agente

Inteligencia Artificial 3 ITIS


2010/11
Entorno: problemas bien definidos

Problemas bien definidos:


discreto:
se puede concebir el mundo en estados
en cada estado hay conjunto finito de percepciones y acciones
accesible: el agente puede acceder a las caractersticas relevantes del mundo
puede determinar el estado actual del mundo
puede determinar el estado del mundo que le gustara alcanzar
esttico y determinista: el agente puede planificar todas sus acciones, ya que
el mundo cambia slo cuando el agente acta
el resultado de cada accin est totalmente definido y previsible

Inteligencia Artificial 3 ITIS


2010/11
Ejemplo: las Torres de Hanoi
Objetivo: A B C
Trasladar los discos
de la aguja A a C en el
mismo orden

Restriccin: A B C
un disco mayor nunca
debe reposar sobre
uno de menor tamao

Cmo escribir el programa de agente correspondiente?

Inteligencia Artificial 3 ITIS


2010/11
Solucin 1: tablas de actuacin
Tablas de actuacin especficos del problema:

para cada situacin hay una entrada en una tabla de


actuacin;
dicha entrada compila la secuencia de acciones a emprender:

cuatro discos en A
disco 1 de A a C / disco 2 de A a B / disco 1 de C a B /
disco 3 de A a C / disco 1 de B a A / disco 2 de B a C /
disco 1 de A a C / disco 4 de A a B / disco 1 de C a B /
disco 2 de C a A / disco 1 de B a A / disco 3 de C a B /
disco 1 de A a C / disco 2 de A a B / disco 1 de C a B

problema: limitaciones de memoria


Inteligencia Artificial 3 ITIS
2010/11
Solucin 2: algoritmo

Algoritmos especficos del problema: PROCEDURE MoverDiscos(n:integer;


origen,destino,auxiliar:char);
el diseador del agente conoce un
{ Pre: n > 0
mtodo para resolver el problema
Post: output = [movimientos para pasar n
codifica este mtodo en un
discos de la aguja origen
algoritmos particular para el
problema a la aguja destino] }

mejorar la flexibilidad: BEGIN


parametrizar el algoritmo IF n = 0 THEN {Caso base}

problema: el diseador ha de writeln;


anticipar todos los escenarios ELSE BEGIN {Caso recurrente}
posibles MoverDiscos(n-1,origen,auxiliar,destino);
los entornos reales suelen ser write('Pasar disco',n,'de',origen,'a',destino);
demasiado complejos como para MoverDiscos(n-1,auxiliar,destino,origen)
anticipar todas las posibilidades END; {fin ELSE}
END; {fin MoverDiscos}
Inteligencia Artificial 3 ITIS
2010/11
Solucin 3: bsqueda
Mtodos independientes del problema :

modelo declarativo del problema:


inicialmente todos los discos reposan en A y su tamao decrece de abajo
hasta arriba
queremos que todos los discos estn en C en el mismo orden
podemos mover un disco I a la aguja X, si no hay otro disco por encima de I
y, si actualmente hay discos en X, entonces dichos discos han de ser ms
grandes que I
cuanto menos movimientos de discos hagamos mejor

algoritmo de bsqueda genrico:


genera una solucin a cualquier problema representado mediante el modelo
simblico

mayor flexibilidad:
el diseador no necesita conocer la solucin de antemano
es ms fcil adaptar el mtodo a nuevas caractersticas del problema

Inteligencia Artificial 3 ITIS


2010/11
Solucin 3: Modelo declarativo en
CLIPS
Escenario: 3 agujas (A, B, C) y 2 discos (uno, dos)
(deffacts nombre-agujas
"Lista con los nombres de las agujas"
(agujas A B C))
(deffacts situacion-inicial
"Lista describiendo la pos. inicial de los discos en las agujas"
(situacion (acciones ) (posicion A uno dos base B base C base)) )
(deffacts situacion-final
"Lista describiendo la pos. deseada de los discos en las agujas"
(meta A base B base C uno dos base ) )
(deffacts predicado-menor
"hechos que definen si un disco es menor que otro"
(menor uno dos) (menor uno base) (menor dos base))

Inteligencia Artificial 3 ITIS


2010/11
Solucin 3: Modelo declarativo en
CLIPS
(defrule mover-x-a-y
(agujas $? ?x $?)
(agujas $? ?y $?)
(situacion (acciones $?acciones)
(posicion $?inicio ?x ?disco-x $?medio ?y ?disco-y $?final) )
(menor ?disco-x ?disco-y)
=>
(assert (situacion
(acciones $?acciones (format nil "%s-%s->%s" ?x ?disco-x ?y))
(posicion $?inicio ?x $?medio ?y ?disco-x ?disco-y $?final) ) )
)
(defrule meta
(situacion (acciones $?acciones)(posicion $?s-final) )
(meta $?s-final)
=>
(printout t crlf "Solucin: " $?acciones crlf)
(halt)
)

Inteligencia Artificial 3 ITIS


2010/11
Solucin 3: Ajustes del Modelo
Declarativo
Resultados de la bsqueda:
3 agujas 2 discos:
("A-uno->B" "A-dos->C" "B-uno->C")
3 agujas 3 discos:
("A-uno->C" "A-dos->B" "C-uno->B" "A-tres->C" "B-uno->A"
"B-dos->C" "A-uno->C")
3 agujas 4 discos:
("A-uno->B" "A-dos->C" "B-uno->C" "A-tres->B" "C-uno->A"
"C-dos->B" "A-uno->B" "A-cuatro->C" "B-uno->C" "B-dos->A"
"C-uno->A" "B-tres->C" "A-uno->B" "A-dos->C" "B-uno->C")
4 agujas 4 discos:
("A-uno->B" "A-dos->D" "A-tres->C" "D-dos->C" "A-cuatro->D"
"C-dos->A" "C-tres->D" "A-dos->D" "B-uno->D")

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
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
A
A
B
B
C
C D E
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: Estado inicial

configuracin de n bloques
C
Operadores:
apilar(X,Y): poner X encima de Y A B
Prec.: bloques X e Y estn libres
Post.: bloque X est encima de Y
quitar(Y): poner Y en la mesa Estado meta
Prec.: bloque Y est libre
Post.: bloque Y est en la mesa A

Coste: B
la aplicacin de cada operador vale C
una unidad

Inteligencia Artificial 3 ITIS


2010/11
Representacin del problema
de
Ejemplo con 3 bloques
los bloques
A B C Plan ptimo: coste 3

A A C C B B
B C C B B A A B C A A C

C B A B A C
A A C C B B
B C B A C 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 } Conjunto finito de sucesores
1 n
de 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 ) Coste de un plan


k=1

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: Arbol de bsqueda:
estrategia para explorar el
espacio de estados C
A B
en cada paso se expande un
estado
se desarrolla sucesivamente C
B
C A B C
un rbol de bsqueda B A A

Mtodo general de bsqueda:


A
B
1. seleccionar nodo hoja C A B C C A
B
2. comprobar si es nodo meta
3. expandir este nodo hoja
A
B B
A C C

Inteligencia Artificial 3 ITIS


2010/11
Algoritmo de bsqueda
Elementos del algoritmo {bsqueda general}
el rbol se representa en base abierta s0
a un registro del tipo nodo Repetir
Si vaca?(abierta) entonces
abierta es una lista de nodos,
devolver(negativo)
que rene las hojas del rbol
nodo primero(abierta)
vaca? determina si una lista
Si meta?(nodo) entonces
es vaca
devolver(nodo)
primero quita el primer
sucesores expandir(nodo)
elemento de una lista
Para cada nsucesores hacer
ordInsertar aade un nodo a n.padre nodo
una lista, clasificado segn
ordInsertar(n,abierta,<orden>)
una funcin de 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) (iv) bsqueda
bsqueda en de coste
amplitud uniforme
2.3 bsqueda
heurstica
2.2 bsqueda
no informada
bsqueda
(vii) IDA* (vi) A*
general

(iii) Bsqueda
profundidad
iterativa

(ii) bsqueda
(v) bsqueda
en
avara
profundidad

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
Nivel 1 A B

B
C
Nivel 2 B A
C A B C
A

Nivel 3 A
A A B C B
C A B C
B B C C B C A B A A C

... ... ... B


A
B
Nivel 4 C A C

Inteligencia Artificial 3 ITIS


2010/11
Algoritmo para bsqueda en amplitud
{bsqueda en amplitud}
Algoritmo: abierta s0
usar el algoritmo general de Repetir
bsqueda Si vaca?(abierta) entonces
aadir nuevos sucesores al final devolver(negativo)
de la lista abierta nodo primero(abierta)
abierta funciona como cola Si meta?(nodo) entonces
insercin al final devolver(nodo)
recuperacin desde la cabeza sucesores expandir(nodo)
estructura FIFO: Para cada n sucesores hacer
siempre expandir primero el n.padre nodo
nodo ms antiguo (es decir: ordInsertar(n,abierta,final)
menos profundo) Fin {repetir}

Inteligencia Artificial 3 ITIS


2010/11
rbol de bsqueda en amplitud
Lista abierta:
C
A B
C
A B B
C C
B A A B C
A

B B A
C C C C A B C
B A A B C A B C
A A B

A
A B C C A B C
A B
C A A B C B
A B C B C C B C A B A A C
B
A
C A A B C B
A B C B C C B C A B A A C
B

... ... ... B


A C
A
B
C
...
...
B C B
C A B A A C

A
C
B A
B
A C ... B
A C
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 Peor caso


0 0
0
1 1
1
... ... ...
d2 d2
d2
d1 d1
d1
d d d
1+b+...+bd-1 +1 O(bd) 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. A
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 D F G
estados meta
a) desarrolle el rbol de bsqueda H C E
que genera la bsqueda en
amplitud. Cul de los nodos
meta se encuentra primero?
b) indique el orden en que se B K Z W
expanden los nodos
c) ponga el estado de la lista abierta
en cada paso del algoritmo

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 C
(evitando ciclos simples): A B

B
C C
B A A B C
A

A
C A B C
B

B A A C B
C A C B B C B A A C

A
B B
C A C
Inteligencia Artificial 3 ITIS
2010/11
Bsqueda en profundidad
Algoritmo: {bsqueda en profundidad}
usar el algoritmo general de abierta s0
bsqueda Repetir
aadir nuevos sucesores en la Si vaca?(abierta) entonces
cabeza de la lista abierta devolver(negativo)
abierta funciona como pila nodo primero(abierta)
insercin en la cabeza de la lista Si meta?(nodo) entonces
recuperacin desde la cabeza devolver(nodo)
estructura LIFO: sucesores expandir(nodo)
siempre expandir primero el Para cada n sucesores hacer
nodo ms reciente (es decir: n.padre nodo
el ms profundo) ordInsertar(n,abierta,cabeza)
al guardar todos los sucesores de Fin {repetir}
un nodo expandido en abierta, se
permite la vuelta atrs
Inteligencia Artificial 3 ITIS
2010/11
rbol de bsqueda en profundidad
Lista abierta:
C
A B
C
A B

B C
C A B C B C
A B A C A B C
A B A

A C
B A A B C
C A B C
B
A
C A B C A B C
B
B A A C B
C A C B B C B A A C
A B C A B C

A B B A A C B
B C A C B B C B A A C A B C
C A C

A B A A C B
B A C C B B C B A A C A B C
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 A
operadores. Suponga que A es el estado inicial
y que K y E son estados meta
a) desarrolle el rbol de bsqueda que genera D F G
la bsqueda en profundidad. Cul de los
nodos meta se encuentra primero?
b) indique el orden en que se expanden los
H C E
nodos
c) ponga el estado de la lista abierta en cada
paso del algoritmo B K Z W
d) cmo cambiara el proceso de bsqueda si
aplicamos lmites de profundidad, p.ej.:
d*=2?

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 lmite d*=3

fallo fallo

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:
id b d +2 2b bd +d +1
N w (d ) ( b 1) 2
dl = b d +1 1
N w (d ) b 1

b d +2 2b bd + d +1 b 1
= 2 d +1
(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 A
un estado; los arcos modelan la aplicacin de
operadores. Suponga que A es el estado inicial
y que K y E son estados meta D F G
a) desarrolle la secuencia de rboles de
H C E
bsqueda generadas por la bsqueda de
profundizacin iterativa, indicando para
cada uno de ellos el orden en que se B K Z W
expanden los nodos
b) 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 Coste de un plan: suma de distancias
carretera a la ciudad vecina entre las ciudades visitadas

Oradea
Neamt 87
Zerind 71
75 151 Iasi
Arad
92
140 Sibiu 99
Fagaras Vaslui
118 80
Rimnicu
97 142
Timisoara 211
111 Pitesti
Lugoj 98
101 85 Hirsova
70 146 Urziceni
Mehadia Bucarest 86
75 138
90 Eforie
Dobreta 120
Craiova
Giurgiu

Inteligencia Artificial 3 ITIS


2010/11
Problema de encontrar rutas: ejemplo
O
N 87
Z 71 Ejemplo:
75 151 I
p1 = A-S-F-B
A 92
140 S 99 F c(p1) = 450
118 V
80
R 97 142 p2 = A-S-R-P-B
T 211
P
c(p2) = 418
111 L 98 H
70 146 101 85
U
M B 86
75 138
90 E
D 120
C
G

Problema:
los mtodos de bsqueda no informados encuentran el nodo meta de
menor profundidad; ste puede no ser el nodo meta de coste mnimo
prof.(Bp1) = 3 < 4 = prof.(Bp2) / c(p1) = 450 > 418=c(p2)
Inteligencia Artificial 3 ITIS
2010/11
Bsqueda de coste uniforme
Bsqueda de coste uniforme:
{bsqueda de coste uniforme}
Ingls: uniform cost search abierta s0
Idea: Repetir
guiar la bsqueda por el coste de los Si vaco?(abierta) entonces
operadores devolver(negativo)
nodo primero(abierta)
Mtodo:
Si meta?(nodo) entonces
g(n): coste mnimo para llegar
devolver(nodo)
del nodo inicial al nodo n
sucesores expandir(nodo)
expandir siempre el nodo de menor
coste g primero Para cada n sucesores hacer
n.padre nodo
Algoritmo:
ordInsertar(n,abierta,g)
almacenar cada nodo con su valor g
Fin {repetir}
insertar los nuevos nodos en abierta
en orden ascendente segn su valor g
Inteligencia Artificial 3 ITIS
2010/11
Ejemplo: Bsqueda de coste uniforme
g=0

S g=140 g= 118 Z g =75

R A O F L A O g=146
A g=150
g=220 g=280 g=291 g =239 g=229 g=236

g=300 g=317 g=366


S P C T M Z S S g=290
Z g=225
T g=268
g = 340 g= 299 g = 212 g= 292

B O A O A
g=283 g=287 g=296 g=300

...
Inteligencia Artificial 3 ITIS
2010/11
Lgica de la bsqueda de coste uniforme
O
N 87
Z 71
75 151 I
A 92
S 99
140 F
118 V
80
T R 97 142
211
111 P H
L 98
70 146 101 85
U
M B 86
75 138
90 E
D 120
C
G

g = 80 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
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
Heursticas
Heurstica (griego: heuriskein): encontrar, descubrir

Inteligencia Artificial:
compila conocimiento emprico sobre un problema / un entorno

Interpretacin fuerte:
una heurstica suele facilitar la resolucin de un problema, pero no garantiza
que se resuelva
una heurstica es una regla de tres para un problema
bsqueda: optimalidad o incluso completitud no garantizados

Interpretacin dbil:
mtodo riguroso + informacin heurstica
informacin heurstica puede mejorar el rendimiento medio de un mtodo de
resolucin de problemas, pero no garantiza una mejora en el peor caso
bsqueda: mejora de complejidad no garantizado
Inteligencia Artificial 3 ITIS
2010/11
Funciones heursticas
Funciones heursticas para bsqueda en el espacio de estados:
estiman de adecuacin de un nodo para ser expandido
mtodos de bsqueda el mejor primero eligen el nodo ms
prometedor para expandir

Heurstica usual: distancia hacia la meta


h :N mide el coste real desde el nodo n hasta el nodo meta ms
cercano
h*:N es una funcin heurstica que estima el valor de h(n)
una funcin heurstica h* es optimista, si h*(n) h(n) para todo nodo n
Ejemplos de funciones heursticas optimistas:
mundo de los bloques: nmero de bloques descolocados
encontrar rutas: distancia en lnea recta hasta un nodo meta

Inteligencia Artificial 3 ITIS


2010/11
Funcin heurstica para encontrar rutas
h*
A 366
B 0
O C 160
N 87
Z 71 D 242
75 151 I E 161
92 F 178
A S G 77
140 99 F
118 V H 151
80
R 142 I 226
T 97 211 L 244
111 P H M 241
L 98
70 146 101 85 N 234
U
M B 86 O 380
75 138 P 98
90 E
D 120 R 193
C S 253
G
T 329
U 80
V 199
Z 374

Inteligencia Artificial 3 ITIS


2010/11
Bsqueda avara
Bsqueda avara: {bsqueda avara}
Ingls: greedy search abierta s0
Idea: Repetir
minimizar el coste estimado para Si vaca?(abierta) entonces
llegar a la meta devolver(negativo)
Estrategia: nodo primero(abierta)
Entre las hojas del rbol de Si meta?(nodo) entonces
bsqueda, seleccionar el nodo que devolver(nodo)
minimice h*(n) sucesores expandir(nodo)
Algoritmo: Para cada nsucesores hacer
mantener la lista abierta ordenada n.padre nodo
por valores crecientes de h* ordInsertar(n,abierta,h* )
insertar nuevos nodos en abierta Fin {repetir}
segn sus valores h*

Inteligencia Artificial 3 ITIS


2010/11
Ejemplo 1: bsqueda avara
h* = 366

S h* = 253 T h* = 329 Z h* = 374

A F O R
h* = 366 h* = 178 h* = 380 h* = 193

Solucin subptima:
c(A-S-F-B) = 450
S h* = 253 B h* =0 c(A-S-R-P-B) = 418

Inteligencia Artificial 3 ITIS


2010/11
Ejemplo 2: bsqueda avara

hF* = 226
Ejemplo:
Nodo inicial: I (Iasi)
Nodo meta: F (Fagaras) N hF* = 201 V hF* =246
hF* estima la distancia hasta F
hF* = 226
hF*
F 0
I 226
N 201 N hF* = 201 V hF* =246
V 246
...
hF* = 226
...
Inteligencia Artificial 3 ITIS
2010/11
Bsqueda avara: anlisis
Anlisis:
en general, la bsqueda avara sufre los mismos problemas que la bsqueda en
profundidad
no es ptima (ejemplo 1)
no es completa (ejemplo 2)
sin embargo, suele encontrar una solucin aceptable de forma rpida

Comentarios:
problema fundamental de la bsqueda avara:
slo considera el coste para llegar al nodo actual
no se fija en la distancia restante desde el nodo actual
para asegurar la completitud habra que evitar todos los estados repetidos
el mtodo es ptimo slo en aquellos espacios de estados en los que el coste de un
nodo n es independiente del camino por el que se llega hasta l

Inteligencia Artificial 3 ITIS


2010/11
Ejercicio 2.8
Problema de las 4 reinas: Ntese:
4 reinas en un tablero 4x4 dado que el coste de cada operador es 0, el
camino por el cual se llega a un nodo no
estados: casillas de las 4 reinas
importa, siempre que al final se encuentre
metal?: ninguna reina amenazada
un nodo meta (ninguna reina esta
op.: mover una reina a otra casilla amenazada)
de su misma fila
a) encuentre una heurstica h* para el
coste: el coste de cada op. es cero
problema de las 4 reinas
estado inicial:
b) resuelve el problema aplicando la
bsqueda avara con dicho heurstica h*

Comentario:
si concebimos cada fila como una
variable, podemos replantear el ejercicio
como un problema de satisfaccin de
restricciones Inteligencia Artificial 3 ITIS
2010/11
Bsqueda A*
Idea:

minimizar el coste estimado total de un camino en el rbol de bsqueda


combinar
el coste para llegar al nodo n (se conoce exactamente: g), y
el coste aproximado para llegar a un nodo meta desde el nodo n
(estimado por la funcin heurstica h* )

Funcin heurstica de A*:


f (n) = g(n) + h(n): coste real del plan de mnimo coste que pasa por n
f *(n) = g(n) + h*(n): estimacin de f

Estrategia A* :
entre las hojas del rbol de bsqueda, elegir el nodo de valor f * mnimo

Inteligencia Artificial 3 ITIS


2010/11
El Algoritmo A*
{A*}
abierta s0
Algoritmo A* : Repetir
Si vaco?(abierta) entonces
se basa en la bsqueda general
devolver(negativo)
almacenar el valor g de cada nodo nodo primero(abierta)
expandido
Si meta?(nodo) entonces
mantener la lista abierta ordenada devolver(nodo)
por valores crecientes de f * sucesores expandir(nodo)
insertar nuevos nodos en abierta Para cada nsucesores hacer
segn sus valores f * n.padre nodo
ordInsertar(n,abierta, f *)
Fin {repetir}

Inteligencia Artificial 3 ITIS


2010/11
Ejemplo 1: Bsqueda A*
f * = 0+366
= 366

S f * = 140+253 T f * = 118+329 Z f * = 75+374


= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 291+380
= 646 = 417 = 671

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Ejemplo 2: Bsqueda A*
hF*
Ejemplo: B 180
F 0
Nodo inicial: I (Iasi) / nodo meta: F (Fagaras) I 226
hF* estima la distancia hasta F N 201
U 151
fF * = 0+226
V 246
= 226 ...

N fF * = 87+201 V fF * = 92+246
= 288 = 338

fF * = 174+226 U fF * = 234+151 I fF * = 184+226


= 400 = 385 = 410

f * = 376+246 f * = 319+180 f * = 332+350


V = 622 B = 499 H = 682
...
Inteligencia Artificial 3 ITIS
2010/11
Valores de f * en rboles de bsqueda A*
Posibles tipos de variacin de los valores de f * a lo largo de un
camino desde la raz hasta un nodo nj

f* f*

f *(nj) f *(nj)

n1 nj n1 nj

(a) variable (b) montono creciente

Inteligencia Artificial 3 ITIS


2010/11
Funciones heursticas consistentes
Definicin:
Si para todo nodo ni y todo sucesor nj de ni se cumple que
h*(ni ) h*(nj ) c(ni,nj)
entonces h* es consistente

nj
Interpretacin intuitiva:
h*(nj )
h* es consistente si cumple la c(ni,nj)
desigualdad triangular ni h*(ni )
ng

Nota: Si h* es consistente, entonces tambin es optimista

Inteligencia Artificial 3 ITIS


2010/11
Monotona de f * con funcin
heurstica consistente
Lema 1: Si h* es consistente, entonces f * crece de forma montona en
todos los caminos del rbol de bsqueda, es decir: si nj es
sucesor de ni, entonces
f *(nj ) f *(ni )

Prueba:
h*(nj ) h*(ni ) c(ni,nj)
h*(nj ) + g(nj ) h*(ni ) + g(nj ) c(ni,nj)
h*(nj ) + g(nj ) h*(ni ) + g(ni ) + c(ni,nj) c(ni,nj)
f *(nj ) f *(ni )

Inteligencia Artificial 3 ITIS


2010/11
Valores de f * en rboles de bsqueda A*
h* consistente h* consistente
f* f*

f *(nj) f *(nj)

n1 nj n1 nj
(a) variable (b) montono creciente

Corolario 1: Sea nm el mejor nodo meta. Si h* es consistente, entonces el


conjunto de nodos expandidos por el algoritmo A * es
{ni | f *(ni ) f *(nm ) }
Inteligencia Artificial 3 ITIS
2010/11
Lgica de la bsqueda A* con funcin
heurstica consistente
O
N 87
Z 71
75 151 I
A 92
140 S 99 F V
118 80
R 97 142
T 211
111 P H
L 98
70 146 101 85
U
M B 86
75 138
90 E
D 120
C
G

f * = 380 f * = 400 f * = 420

Inteligencia Artificial 3 ITIS


2010/11
Optimalidad de A*
Teorema 1: Si h* es consistente, entonces el mtodo A* es ptimo

Prueba:

1. Debido a la consistencia de h*, la bsqueda se realiza por las curvas de nivel correspondientes a
f * (lema 1). Se expanden sucesivamente los nodos de menor a mayor valor de f *

2. Por tanto, el primer nodo meta encontrado n tendr el valor mnimo de f *


(e.d. la misma argumentacin que en el caso de la bsqueda de coste uniforme)

3. Un nodo meta con valor mnimo de f * tambin tiene el valor mnimo de g.


f *(n ) = g(n )+ h*(n )
Si h* es consistente tambin es optimista, y entonces h*(n ) = 0
para todo nodo meta

4. En consecuencia, el camino en el rbol de bsqueda desde la raz hasta el primer nodo meta n es
de coste mnimo, y A* es ptimo

Nota: se puede demostrar el siguiente teorema ms general:


Si h* es optimista, entonces el mtodo A* es ptimo
Inteligencia Artificial 3 ITIS
2010/11
Completitud de A*
Teorema 2: Si h* es consistente, entonces el mtodo A* es completo

Prueba:

sea ng un nodo meta con f *(ng) = k. Suponga que ng no es encontrado por el mtodo
A*
ya que el nmero de sucesores de un nodo es finito, debe haber un camino infinito p
debido al lema 1 (monotona de f *) todos los nodos ni de p han de cumplir f *(ni) k
pero la secuencia de valores de g a lo largo de p no tiene lmite
(vase la prueba de completitud de la bsqueda de coste uniforme)
por definicin h *(n) 0, por lo que la secuencia de f *(ni) = g(ni) + h*(ni) tampoco tiene
lmite para los nodos ni a lo largo de p
contradiccin; en consecuencia, el mtodo A* encuentra el nodo meta ng

Nota: se puede demostrar que A* es completo para cualquier funcin heurstica


positiva h*

Inteligencia Artificial 3 ITIS


2010/11
Encontrar Funciones Heursticas: Aprendizaje
Idea: generar informacin heurstica sobre la marcha
realizar varias bsquedas (ligeramente diferentes) en el mismo dominio
(p.e. siempre a Bucarest, pero desde diferentes ciudades iniciales)
En cada paso de una bsqueda, usar el coste real de un paso parar mejorar el valor de h*
En la prxima bsqueda se utilizan los valores de h* actualizadas

Mtodo:
Inicialmente, se realiza una bsqueda con h*(n) = 0 para todos los nodos n
En cada paso de ni a nj: h * (n i ) min [h (n ) + c(n ,n )]
n j expandir(n i )
*
j i j

Al visitar un nodo por segunda vez, se utilizan los valores de h* actualizados

Problema:

Hay que almacenar los valores h* de todos los nodos en una tabla (memoria!)
Inteligencia Artificial
3 ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Funcin
Heurstica
A fL * = 0+0 Ejemplo: ir de A a L
=0
140 Inicialmente hL*(n) = 0 para todo nodo n
118 75

S fL * = 140+0 fL * = 118+0 Z fL * = 75+0


= 140 = 118 = 75
80 118 75
151 111 71
140 99

R Af *= 280O F L A fL*=146+0 fL * = 150+75


fL*=220+0 L fL* = 239+0 fL *=229+0 fL *=236+75
O = 146 A = 225
=220 +75 fL*= 291 = 239 =229 =311
= 355 +0
+142 140 118
= 433
291 71 151 75
80 97 146
fL*=290 fL*=225 fL*=268
Z S S +80 Z +71 T +111
fL*=300 fL*=317 fL*=366
S +80 P +0 C +0
fL*=217 fL*=297 =370 =296 =379
+71 +80
=380 =317 =366 =288 =377

n A B C D E F G H I L M N O P R S T U V Z
hL* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
75 142 97 80 111 71
146
Inteligencia Artificial
3 ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Funcin
Heurstica
Ejemplo: ir de Z a L
Z fL * = 0+71
= 71 Inicialmente hL*(n) aprendido anteriormente
71

75
O fL * = 71+142
A fL * = 75+146 = 213
= 221
151
140 118 75 71

fL * = 215+80 fL * = 193+111 Z fL * = 150+213 Z S


S = 295 = 304 = 363 fL*=142 ffLL*=222
*=222
80 +213 +99
+80
99 111 118 =355 =321
=302
140
151
R A O F L A
fL*=295+97 fL*= 355 fL*= 366 fL* = 314+0 fL *=304+0 fL *=311+220
=392 +220 +231 = 314 =304 =531
= 575 = 597
n A B C D E F G H I L M N O P R S T U V Z
hL* 146 0 0 0 0 0 0 0 0 0 0 0 142 0 97 80 111 0 0 71
220 231 99 111 213
Inteligencia Artificial
3 ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Funcin
Heurstica
Ejemplo: ir de A a L
Inicialmente hL*(n) aprendido anteriormente
A fL * = 0+220
= 220
140
75
118

S fL * = 140+99 fL * = 118+111 Z fL * = 75+213


= 239 = 229 = 288
118
111

L A
fL *=229+0 fL *=236+229
=229 =465

n A B C D E F G H I L M N O P R S T U V Z
hL* 220 0 0 0 0 0 0 0 0 0 0 0 231 0 97 99 111 0 0 213
229 111

Inteligencia Artificial
3 ITIS 2010/11
Encontrar de Funciones Heursticas:
Diseo
El problema del 8-puzzle:
Estado inicial
Estados:
posicin de cada una de las piezas 2 7 3

1 8 4
Operadores:
6 5
mover pieza adyacente a la posicin
del hueco
de 2 a 4 operadores aplicables, Estado meta
segn el estado
1 2 3
Coste:
8 4
La aplicacin de cada operador vale
una unidad
7 6 5

Inteligencia Artificial 3 ITIS


2010/11
Encontrar de Funciones Heursticas: Diseo
Problemas relajados:
Estado inicial
menos restricciones para cada operador
2 7 3 h*: distancia h exacta en el problema relajado

1 8 4 8 Puzzle: una pieza puede moverse de A a B...


a) siempre
6 5 b) si B est vaci
c) si A es adyacente a B
Estado meta
Funciones heursticas:
1 2 3 a) nmero de piezas descolocadas
ha*(s0) = 5
8 4 b) suma de saltos necesarios
hb*(s0) = 5
7 6 5 c) suma de las distancias de Manhattan
hc*(s0) = 1+1+1+3+1=7

Inteligencia Artificial 3 ITIS


2010/11
Ejercicio 2.9
Heursticas A* :
Estado inicial
Considere el 8-puzzle cuyo estado inicial y
1 2 3
estado meta se muestra al lado:
6 4 a) desarrolle el rbol de bsqueda del
algoritmo A* usando la heurstica ha*
8 7 5
(nmero de piezas descolocadas)
b)desarrolle el rbol de bsqueda del
Estado meta
algoritmo A* usando la heurstica hc*
1 2 3 (suma de distancias Manhattan)
c)Cul de las heurstica expande menos
8 4 nodos? Por qu? Puede sacar una
conclusin general con respecto a la
7 6 5
calidad de la funciones heursticas?

Inteligencia Artificial 3 ITIS


2010/11
Calidad de las Funciones Heursticas
Definicin:
Sean h1* y h2* dos funciones heursticas optimistas.
h1* es ms informada que h2*, si para todo nodo n se cumple que
h1*(n ) h2*(n )

Ejemplo:
en el 8-puzzle, hc* es ms informada que ha*
las piezas bien colocadas no cuenta en ha* ni en hc*
la distancia Manhattan de cada pieza descolocada es al menos 1
en consecuencia, en toda posible configuracin n del 8-puzzle la suma de
las distancias distancias es igual o mayor que la suma de piezas
descolocadas
para todas las configuraciones n se cumple hc*(n ) ha*(n )

Inteligencia Artificial 3 ITIS


2010/11
Calidad de las Funciones Heursticas
Lema 2: Sean h1* y h2* dos funciones heursticas consistentes. Si h1* es ms
informada que h2*, entonces A*(h2* ) expande al menos tantos nodos
como A*(h1* )
Prueba:
1. Para el mejor nodo meta nm se cumple que f *(nm) = f1*(n!m) = f2*(nm)
2. Ya que h1* es ms informada que h2*, para todos los nodos n se cumple que
h1*(n ) h2*(n ), y por tanto f1*(n ) f2*(n )
3. Por (1) y el Corolario 1 se sigue que
A*(h1* ) expande todos los nodos nj con f1*(nj ) f *(nm )
A*(h2* ) expande todos los nodos nj con f2*(nj ) f *(nm )
4. Por (2), se verifica que f1*(nj ) f *(nm ) f2*(nj ) f *(nm )
5. Por (3) y (4) se concluye que cualquier nodo expandido por A*(h1*) tambin
ser expandido por A*(h2* )

Inteligencia Artificial 3 ITIS


2010/11
Calidad de las Funciones Heursticas

Nota:
Se puede demostrar que el lema 2 tambin se cumple si se
asume slo que h1* y h2* sean funciones heursticas optimistas.

Conclusin:
preferir grandes valores de h*, siempre que se mantenga
optimista
si hay varias funciones heursticas optimistas:

( )
h * ( n ) = max h *1 ( n ),h2* ( n ),,hm* ( n )

Inteligencia Artificial 3 ITIS


2010/11

Complejidad de A*
El nmero de nodos expandidos por A* depende de la precisin de h*:
si h*(n) = h(n) para todos los nodos n:
informacin completa: complejidad lineal (sin contar la complejidad de computar h*!)
calcular h*(n) suele equivaler a resolver el problema completo
si h*(n) = 0 para todos los nodos n:
A* degenera a la bsqueda de coste uniforme
resultados generales [Russell, pg. 101]:
en el peor caso, A* es lineal slo si para todos los nodos n,
| h (n) h*(n) | O(c)
en el peor caso, A* es polinomial slo si para todos los nodos n,
| h (n) h*(n) | O(log h(n))
en escenarios reales, el error heurstico |h (n) h*(n) | crece, al menos, de forma
proporcional al coste h (n)
an as, suele haber una mejora notable en comparacin con mtodos no informados

Inteligencia Artificial 3 ITIS


2010/11
Resultados experimentales
Comparacin experimental:
nmero de nodos expandidos en el problema del 8-puzzle
varias profundidades d de la solucin
media sobre 100 instancias del problema

Inteligencia Artificial 3 ITIS


2010/11
Anlisis de A*
Resultados acerca de A*:
A* es completo y ptimo para funciones heursticas consistentes (optimistas)

la complejidad en espacio y tiempo de A* es proporcional al nmero de nodos


expandidos

A* es de eficiencia ptima [vase Russell y Norvig]


para todo heurstica optimista h*, se verifica que no existe otro algoritmo que
asegure optimalidad y a la vez garantice expandir menos nodos
sin embargo, al igual que en el caso de la bsqueda en amplitud (vase la tabla
correspondiente), en situaciones lmite los problemas de espacio de A* son ms
graves que los problemas de tiempo

Inteligencia Artificial 3 ITIS


2010/11
IDA*
IDA*: Iterative Deepening A* (Korf 1985)

Idea:
aplicar bsqueda de profundizacin iterativa, pero en vez de usar sucesivos
lmites de profundidad, usar sucesivos lmites f *
Estrategia:
usar inicialmente el valor f * de la raz como limite f *
realiza bsqueda en profundidad estndar hasta llegar al limite f * actual
(es decir: los valores f * no influyen en el orden de expandir los nodos)
curiosear encima del lmite f * por el nodo con el siguiente valor f * ms
bajo
repetir el proceso con dicho valor f * como nuevo limite f *
Caractersticas:
al igual que la bsqueda en profundidad, IDA* desarrolla un camino
actual
slo los nodos vecinos de dicho camino actual se mantienen en le memoria
Inteligencia Artificial 3 ITIS
2010/11
Bsqueda IDA*: Ejemplo (1)
f * = 0+366
= 366
lmite f * = 366

S f *= 140+253 T f * = 118+329 Z f * = 75+374


= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Bsqueda IDA*: Ejemplo (2) f * = 0+366
= 366
lmite f * = 393

S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Bsqueda IDA*: Ejemplo (3) f * = 0+366
= 366
lmite f * = 413

S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Bsqueda IDA*: Ejemplo (4) f * = 0+366
*
lmite f = 415 = 366

S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Bsqueda IDA*: Ejemplo (5) f * = 0+366
*
lmite f = 417 = 366

S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Bsqueda IDA*: Ejemplo (6) f * = 0+366
*
lmite f = 418 = 366

S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449

A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526

S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450

f * = 414+193 f * = 455+160 f * = 418+0


R = 607 C = 615 B = 418

Inteligencia Artificial 3 ITIS


2010/11
Algoritmo IDA*
Algoritmo: {bp-limite-f}
abierta s0
un subprograma bp-limite-f que f-siguiente
realiza bsqueda en profundidad Repetir
*
hasta un lmite f dado Si vacia?(abierta) entonces
*
devuelve el siguiente f ms bajo devolver(f-siguiente) {fallo}
un subprograma IDA* que actualiza nodo primero(abierta)
el lmite f * y detecta xito/fallo Si meta?(nodo) entonces
devolver(nodo) {xito}
{IDA*}
sucesores expandir(nodo)
limite-f f*(s0 ) Para cada n sucesores hacer
Repetir Si f*(n ) lmite-f entonces
limite-f bp-limite-f(limite-f) n.padre nodo
Si xito ent. devolver(solucin) ordInsertar(n,abierta,cabeza)
Si limite-f = ent. devolver(fallo) Sino
Fin {repetir} f-siguiente min(f-siguiente, f*(n ))
Fin {repetir}
Inteligencia Artificial 3 ITIS
2010/11
Ejercicio 2.10

Algoritmo IDA* :

Aplique el algoritmo IDA* al problema del 8-


puzzle del ejercicio 2.8. Simule a mano el
proceso de bsqueda. Cuntos diferentes lmites
f * son explorados ?

Inteligencia Artificial 3 ITIS


2010/11
Anlisis de IDA*
Algunos resultados sobre IDA*:

completo y ptimo para funciones heursticas optimistas, al igual que A*


complejidad en espacio:
: coste de un operador / m: mejor nodo meta / b: factor de ramificacin /
d: profundidad de m

complejidad en tiempo:
muchos valores diferentes de f * (p.e. bsqueda de rutas):
puede elevar la complejidad en tiempo de A* al cuadrado
pocos valores diferentes de f * (p.e. 8 puzzle):
proporcional a la complejidad en tiempo de A*

mejoras: equilibrar expansin repetida y uso de memoria


SMA* (Simplified Memory-bounded A*) [Russell 1992]
RBFS (Recursive Best First Search) [Korf 1992] Inteligencia Artificial 3 ITIS
2010/11
Resumen

Resultado clave:
algoritmos A* e IDA* la informacin heurstica puede mejorar la
eficiencia de un mtodo de bsqueda sin sacrificar su optimalidad

Extensiones:
Bsqueda aproximada:
acotar el espacio de bsqueda con informacin heurstica fuerte (e.d. sacrificando
las garantas de optimalidad y completitud
bsqueda guiada por subobjetivos (island-driven search), bsqueda jerrquica,
Bsqueda en lnea:
engranar bsqueda (eleccin de acciones) y accin/percepcin ejemplos
bsqueda de horizonte (limited-horizon search), A* en tiempo real (RTA*),

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
Resolucin de problemas con mltiples
agentes

Inteligencia Artificial 3 ITIS


2010/11
Agentes especializados

Situacin:
Mltiples agentes de resolucin de problemas actan en el mismo entorno
Las acciones de los dems agentes influyen en la medida de rendimiento
de cada agente
Ningn agente puede controlar las acciones de los dems agentes
Hasta cierto punto, un agente puede predecir las acciones de los dems

Tipos de problemas multiagente :


Escenarios cooperativos: metas compartidas
Escenarios parcialmente cooperativos: algunas metas compartidas,
otras opuestas
Escenarios antagnicos: metas opuestas

Inteligencia Artificial 3 ITIS


2010/11
Ejemplo: el mundo sncrono de los bloques
Dos agentes conviven en el mundo de los bloques:
cada agente tiene sus propia situacin meta
los agentes evalan la situacin actual respecto a su distancia a su meta
dicha distancia viene dada por el plan ms corto que lleva a la meta del agente

1 situacin inicial 2 1 metas 2


: 4
1 2 1 3 3
4 3 4 2 1 2
distancia 2 distancia 4

Actuacin simultnea:
los agentes pueden actuar en paralelo (de modo sncrono)
las acciones (planes) pueden ejecutarse simultneamente, siempre que no accedan
al mismo bloque a la vez
el coste de un plan viene dado por el tiempo necesario para ejecutarlo
Inteligencia Artificial 3 ITIS
2010/11
Escenarios cooperativos
1 Estado inicial 2 1 Estados meta 2

1 2 4 3 4 3
4 3 1 2 1 2

Potencial para la cooperacin:


metas compartidas:
los dos agentes desean alcanzar la misma situacin
acuerdo respecto a realizar un plan conjunto P:
un agente trabaja en la pila izquierda, y el otro simultneamente el la pila
derecha:
P = ( [quitar(1), quitar(2)], [apilar(4,1), apilar(3,2)] )
los dos agentes sacan provecho si se ejecuta el plan conjunto
Inteligencia Artificial 3 ITIS
2010/11
Escenarios antagnicos
situacin inicial metas
1 2 3 4
1 2
2 1
1 2 1 2
4 3 4 3

Potencial para el conflicto:


metas totalmente antagnicas:
todos los bloques deben colocarse en sitios diferentes, dependiendo del agente
no hay acuerdo, ni siquiera respecto a partes de un plan conjunto:
Pa1 = ( [apilar(2,1), NOP], [apilar(3,2), NOP] )
Pa2 = ( [apilar(1,2), NOP], [apilar(4,1), NOP] )
todo lo que es bueno para a1 es malo para a2, y viceversa
Inteligencia Artificial 3 ITIS
2010/11
Escenarios parcialmente cooperativos
1 2 metas
1 2
6 5
situacin 4 3 2 2
inicial 2 1 1 4 3 ... 1 4... 3 ...

Potencial para la cooperacin y el conflicto:

metas parcialmente compartidas:


los dos agentes desean que los bloques 1, 3 y 4 estn en la mesa, sin embargo a1 prefiere que el
bloque 2 est encima de 3, mientras que a2 prefiere que est encima de 4

acuerdo slo sobre partes de un plan conjunto P :


Pa1 = ( [quitar(5), quitar(6)], [quitar(4), quitar(3)], [apilar(2,3), NOP ] )
Pa2 = ( [quitar(5), quitar(6)], [quitar(4), quitar(3)], [apilar(2,4), NOP ] )

los dos agentes sacan provecho si se ejecuta un plan conjunto, pero dependiendo del plan un
agente gana ms que otro Inteligencia Artificial 3 ITIS
2010/11
Escenarios antagnicos: Juegos
Juegos:
ejemplo clsico de escenarios antagnicos (juegos de suma nula)
el escenario est totalmente definido por las reglas del juego, y los agentes
jugadores los conocen completamente

Tipos de juegos:
nmero de jugadores :
bipersonales (damas) / mltiples jugadores (Monopoly)
elementos de azar:
con elementos de azar (backgammon) / juegos bipersonales con
sin elementos de azar (damas)
informacin perfecta y
informacin: sin elementos de azar
informacin perfecta (damas) /
informacin incompleta (pker)
Inteligencia Artificial 3 ITIS
2010/11
Ejemplo: Tres en Raya
Tres en Raya:
dos jugadores (min y max)
los jugadores van poniendo fichas en las casillas gana max
de un tablero 3x3
max usa las fichas X / min usa las fichas O
una casilla puede contener como mucho una ficha
Reglas:
gana min
Inicialmente el tablero est vaco
max empieza y los jugadores se van alternando en
poner sus fichas
max gana si obtiene una raya de tres fichas X
min gana si obtiene una raya de tres fichas O
si todas las casillas estn ocupadas sin que haya empate
una raya de 3 fichas del mismo tipo, hay empate

Inteligencia Artificial 3 ITIS


2010/11
Modelo de juegos bipersonales
Conocimientos mnimos a priori de los agentes max y de min :
s0 posicin inicial (estado inicial)
expandir: s {si1, ..., sin} cjto. finito de posiciones sucesores
terminal?: s true | false prueba terminal
U: s k, k funcin parcial de utilidad del juego

Ntese:
la funcin expandir

codifica las jugadas (acciones) permitidas en una posicin s

supone implcitamente que los jugadores se alternan en realizar las jugadas

la funcin de utilidad est definida slo en los estados terminales s

juegos de suma nula: max gana si slo si min pierde

gana max: U(s) = + / gana min : U(s) = / empate: U(s) = 0


Inteligencia Artificial 3 ITIS
2010/11
Ejemplo: rbol de juego para Tres en Raya
max

min
...
max
...
min
... ... ...
terminal
0 + utilidad
Inteligencia Artificial 3 ITIS
2010/11
rboles de juego
Definicin:
Sea N un conjunto de nodos, E NN, L = { max, min }, y G = ( N, E, L ) un
rbol etiquetado. G es un rbol de juego si
G no es vaco
la raz est etiquetada max
todos los sucesores de max son etiquetados min
todos los sucesores de min son etiquetados max

Observaciones:
cada nivel del rbol de juego representa un ply (media jugada)
en los nodos etiquetados max, es el turno del agente max
en los nodos etiquetados min, es el turno del agente min
las hojas de un rbol de juego (completamente desarrollado)
representan las posiciones terminales del juego

Inteligencia Artificial 3 ITIS


2010/11
Estrategias
Problema del agente max: cmo determinar su mejor jugada?
max podra aplicar mtodos de bsqueda estndar, usando las posiciones en
las que l gana como estados meta
pero min no querra realizar las acciones que el plan de max prev para l !

Estrategia:
define las jugadas de max para cada posible jugada de min
un subrbol del rbol de juego

Estrategia ptima (o racional) :


la estrategia que implica el mejor resultado garantizado para max
escenarios totalmente antagnicos con agentes racionales:
max puede asumir que min har lo mejor para s mismo, lo que a su vez es lo peor para
max
la estrategia ptima para max es la estrategia minimax:
maximizar la utilidad mnima en cada jugada
Inteligencia Artificial 3 ITIS
2010/11
Ejemplo: estrategia minimax

estrategia ptima: mejor jugada de max: a1

max 0
a1 a2 a3

min 0 - -
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3

terminal

utilidad 0 0 + + + 0 0

Inteligencia Artificial 3 ITIS


2010/11
Mtodo minimax

Mtodo Minimax:
1. Generar el rbol de juego completo
2. Aplicar la funcin de utilidad en cada nodo terminal
3. Propagar las utilidades hacia arriba
en los nodos max, usar la utilidad mxima de los sucesores
en los nodos min, usar la utilidad mnima de los sucesores
4. Eventualmente los valores de utilidad llegan al nodo raz (max)
5. La jugada ptima de max es la que lleva al sucesor de utilidad mxima

Inteligencia Artificial 3 ITIS


2010/11
Algoritmo Minimax bsico
Algoritmo: : mximo de la utilidad de los
funciones mutuamente recursivas sucesores de un nodo max
estado es el estado actual : mnimo de la utilidad de los
sucesores de un nodo min

{MaxValor en el Minimax bsico} {MinValor en el Minimax bsico}

Funcin MaxValor(estado) Funcin MinValor(estado)


Si terminal?(estado) entonces Si terminal?(estado) entonces
devolver(U(estado)) devolver(U(estado))
sucesores expandir(estado) sucesores expandir (estado)
- +
Para cada ssucesores hacer Para cada ssucesores hacer
max(, MinValor(s)) min(,MaxValor(s))
devolver() devolver()
Fin {MaxValor} Fin {MinValor}
Inteligencia Artificial 3 ITIS
2010/11
Decisiones imperfectas
Problema: crecimiento exponencial del rbol de juego
incluso en juegos muy simples, es imposible desarrollar el rbol de
juego completo hasta todos sus nodos terminales

Solucin: Heursticas
sustituir la prueba terminal por una prueba suspensin que detiene la
bsqueda an sin llegar a una posicin terminal:
lmite de profundidad fijo (nmero de plys fijo)
posiciones en reposo

aplicar una funcin de evaluacin e, que estime la utilidad esperada


del juego correspondiente a una posicin s determinada
e debe coincidir con la funcin de utilidad u en los nodos terminales
suele ser funcin lineal ponderada : e(s) = w1 f1(s) + w2 f2(s) + . . . + wn fn(s)
Ajedrez: e(s) = suma de los valores materiales en s
Tres en Raya: e(s) = n de lnea abiertas para lneas max en s
n de lnea abiertas para lneas min en s
Inteligencia Artificial 3 ITIS
2010/11
Ejemplo: minimax con suspensin

estrategia ptima: mejor jugada de max: a1

max 3
a1 a2 a3

min 3 2 2
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3

evaluacin e 3 12 8 2 4 6 14 5 2

Inteligencia Artificial 3 ITIS


2010/11
Algoritmo Minimax con suspensin
Algoritmo: : mximo de la evaluacin de los
funciones mutuamente recursivas sucesores de un nodo max
estado es el estado actual : mnimo de la evaluacin de los
sucesores de un nodo min

{MaxValor: Minimax con suspensin} {MinValor: Minimax con suspensin}

Funcin MaxValor(estado) Funcin MinValor(estado)


Si suspensin?(estado) entonces Si suspensin?(estado) entonces
devolver(e(estado)) devolver(e(estado))
sucesores expandir(estado) sucesores expandir (estado)
- +
Para cada ssucesores hacer Para cada ssucesores hacer
max(, MinValor(s)) min(,MaxValor(s))
devolver() devolver()
Fin {MaxValor} Fin {MinValor}
Inteligencia Artificial 3 ITIS
2010/11
Ejemplo: Tres en Raya
Suspensin en ply 3
max

min
...

...
...
... 2

max
1 + +

0 1 1 1 1 + 1 1 +
Inteligencia Artificial 3 ITIS
2010/11
Ejercicio 2.11
Considrese el siguiente rbol de juego desarrollado hasta ply 3. Los nodos
estn etiquetados con los valores de la funcin de evaluacin e.
a) Evale el rbol del juego en base al algoritmo minimax.
b) Cul es la mejor jugada para el agente max?

7 6 8 5 2 3 0 2 6 2 5 8 9 2
Inteligencia Artificial 3 ITIS
2010/11
Poda -
Ntese:
a veces es posible calcular la utilidad de un nodo sin tener que evaluar
todos sus sucesores

max 3
a1 a2 a3

min 3 2 2
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3

3 12 8 2 14 5 2

Inteligencia Artificial 3 ITIS


2010/11
Poda -
Utilidad ms alta encontrada en un nodo max hasta el momento:

max Condicin de poda:


La utilidad Umin del nodo min
ser como mucho
min ... La utilidad Umax del nodo max
ser al menos
No es necesario explorar los
sucesores restantes de min, ya
que se cumple en todo caso:
Umin Umax

Inteligencia Artificial 3 ITIS


2010/11
Poda -
Utilidad ms baja encontrada en un nodo min hasta el momento:

min Condicin de poda:


La utilidad Umax del nodo max
ser al menos
max ... La utilidad Umin del nodo min
ser como mucho
No es necesario explorar los
sucesores restantes de max, ya
que se cumple en todo caso:
Umin Umax

Inteligencia Artificial 3 ITIS


2010/11
Minimax con poda -
Algoritmo: es el mejor valor de evaluacin
funciones mutuamente recursivas para max en el camino hasta estado
estado es el estado actual es el mejor valor de evaluacin
para min en el camino hasta estado

{MaxValor: Minimax con poda -} {MinValor: Minimax con poda -}

Funcin MaxValor(estado,,) Funcin MinValor(estado,,)


Si suspensin?(estado) entonces Si suspensin?(estado) entonces
devolver(e(estado)) devolver(e(estado))
sucesores expandir(estado) sucesores expandir (estado)
Para cada ssucesores hacer Para cada ssucesores hacer
max(, MinValor(s,, )) min(,MaxValor(s,, ))
Si entonces devolver() Si entonces devolver()
devolver() devolver()
Fin {MaxValor} Fin {MinValor}
Inteligencia Artificial 3 ITIS
2010/11
Ejercicio 2.12
Considerese el rbol de juego del ejercicio anterior. Evale el rbol
utilizando el algoritmo minimax con poda -. Cuando aplica una poda,
indique la condicin de poda correspondiente.

7 6 8 5 2 3 0 2 6 2 5 8 9 2

Inteligencia Artificial 3 ITIS


2010/11
Resumen
Anlisis:
la eficiencia de minimax con poda - depende del orden en el que se
exploran los nodos
en promedio, la poda - permite expandir 50% menos nodos que
minimax
Problemas:
efecto horizonte:
la bsqueda se suspende justo cuando el jugador est por hacer una gran jugada
suposicin de racionalidad perfecta:
suponga que max est a punto de perder si min juega de forma ptima
sin embargo, hay una jugada que hacer ganar max, si min hace un solo error
Extensiones:
juegos con elementos de azar (p.e. backgammon)
expectminimax: aadir niveles de nodos azar y calcular su utilidad esperada
aprender funciones de evaluacin y de suspensin
heursticas fuertes basados en meta-razonamiento
algoritmos de bsqueda guiados por la utilidad esperada de expandir un nodo
Inteligencia Artificial 3 ITIS
2010/11

Potrebbero piacerti anche