Вы находитесь на странице: 1из 30

Inteligencia Artificial

Bsqueda no-informada

Ingeniera Informtica, 4
Curso acadmico: 2011/2012
Profesores: Ramn Hermoso y Matteo Vasirani

Inteligencia Artificial
1 4 Ing. Sup. Inf.
Tema 2: Agentes basados en Bsqueda

Resumen:

2. Agentes basados en bsqueda


2.1. Bsqueda en espacios de estados
2.2 Bsqueda no-informada
2.3. Bsqueda heurstica
2.4. Bsqueda con espacios estructurados

Inteligencia Artificial
2 4 Ing. Sup. Inf.
Agentes basados en bsqueda

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 4 Ing. Sup. Inf.
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
4 4 Ing. Sup. Inf.
Por qu bsqueda?

Ejemplo: Torres de Hanoi


A B C

Objetivo:
Trasladar los discos de
la aguja A a B en el
mismo orden
A B C

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

Cmo escribir el programa de agente correspondiente?

Inteligencia Artificial
5 4 Ing. Sup. Inf.
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

mejorar la flexibilidad: aprender nuevas entradas


problema: limitaciones de memoria

Inteligencia Artificial
6 4 Ing. Sup. Inf.
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 algoritmo discos de la aguja origen
particular para el problema a la aguja destino] }
mejorar la flexibilidad: BEGIN
parametrizar el algoritmo IF n = 0 THEN {Caso base}
writeln
problema: el diseador ha de
ELSE BEGIN {Caso recurrente}
anticipar todos los escenarios
MoverDiscos(n-1,origen,auxiliar,destino);
posibles write('Pasar disco',n,'de',origen,'a',destino);
los entornos reales suelen ser MoverDiscos(n-1,auxiliar,destino,origen)
demasiado complejos como para END; {fin ELSE}
anticipar todas las posibilidades END; {fin MoverDiscos}

Inteligencia Artificial
7 4 Ing. Sup. Inf.
Solucin 3: bsqueda

Mtodos independientes del problema :


modelo simblico 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
8 4 Ing. Sup. Inf.
Ejemplo: El mundo de los bloques

Situaciones: Situacin presente


n bloques en una mesa de longitud
ilimitada

Acciones:
apilar(X,Y): poner X encima de Y
Prec.: bloques X e Y estn libres
Efecto: bloque X est encima de Y
quitar(Y): poner Y en la mesa Objetivo
Prec.: bloque Y est libre
Efecto: bloque Y est en la mesa

Actitud del agente:


Objetivo: cierta configuracin de bloques
Slo la posicin vertical es relevante
El coste de cada accin es uno
Inteligencia Artificial
9 4 Ing. Sup. Inf.
Bsqueda en espacios de estados

Espacio de estados: modelo del mundo representado por un grafo


mundo modelo representacin
situacion estado nodo
situacin presente estado inicial nodo inicial
accin y sus efectos operador arco
secuencia de acciones plan camino

Problema de bsqueda: espacio de estados + actitud del agente


actitud representacin
estados meta conjunto de nodos
eficiencia de un plan coste de un camino

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


estado meta

Inteligencia Artificial
10 4 Ing. Sup. Inf.
Mundo de los bloques: espacio de estados

Ejemplo con 3 bloques


A B C

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

estado
inicial

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

estado
meta

Inteligencia Artificial
11 4 Ing. Sup. Inf.
Representacin del problema de los bloques

Ejemplo con 3 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
12 4 Ing. Sup. Inf.
Agentes especializados

Tareas:
1. Definir el modelo y generar los objetivos
Conocimiento a priori del agente facilitado por el diseador
2. Generar el espacio de estados:
ver Tema 3 (y, como introduccin, Tema 2.4)
3. Percibir y clasificar la situacin presente:
Agentes hardware: Visin artificial, Robtica
Agentes software: Algoritmos especficos del dominio
4. Buscar un plan de actuacin
5. Ejecutar el plan de actuacin
Agentes hardware: Robtica
Agentes software: Algoritmos especficos del dominio

Inteligencia Artificial
13 4 Ing. Sup. Inf.
Bsqueda en espacio de estados

Se trata slo de No podemos contar un


encontrar el camino de una representacin
menor coste
s1
explicita del grafo!
en un grafo dirigido?

s2 s3 s4 s5 s6 s7

s8 s9 s10 s11 s12 s13

Inteligencia Artificial
14 4 Ing. Sup. Inf.
Conocimientos a priori de nuestro 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 de
1 n
un estado
meta?: s verdad | falso Prueba de xito en un estado
c: (si, sj ) v, v Coste de un operador
n 1
( ) (
c si1 si2 sin = c sik , sik +1 ) Coste de un plan
k =1

Inteligencia Artificial
15 4 Ing. Sup. Inf.
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 B
C C
B A A B C
un rbol de bsqueda 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
16 4 Ing. Sup. Inf.
Algoritmo de bsqueda
Elementos del algoritmo
{bsqueda general}
el rbol se representa en base a
abierta s0
un registro del tipo nodo
Repetir
abierta es una lista de nodos, Si vaca?(abierta) entonces
con las hojas actuales del rbol devolver(negativo)
vaca? determina si una lista es nodo primero(abierta)
vaca Si meta?(nodo) entonces
primero quita el primer devolver(nodo)
elemento de una lista sucesores expandir(nodo)
Para cada nsucesores hacer
ordInsertar aade un nodo a
n.padre nodo
una lista, clasificado segn una
ordInsertar(n,abierta,<orden>)
funcin de orden
Fin {repetir}
expandir devuelve los hijos de
un nodo
Inteligencia Artificial
17 4 Ing. Sup. Inf.
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
18 4 Ing. Sup. Inf.
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 (Sesiones 2 y 3)
utilizan slo los conocimientos mnimos (bsqueda en amplitud, bsqueda
de coste uniforme, )
Heursticos (Sesiones 3-5)
adems utilizan informacin aproximada, y especfica del problema, para
guiar la bsqueda (Algoritmo A* y extensiones, bsqueda multiagente)
Con estados estructurados (Sesiones 6 y 7)
Se aprovechan de caractersticas de los estados para combatir la complejidad
(Planificacin lineal, Satisfaccin de restricciones, )
Inteligencia Artificial
19 4 Ing. Sup. Inf.
Tema 2: Agentes basados en Bsqueda

Resumen:

2. Agentes basados en bsqueda


2.1. Bsqueda en espacios de estados
2.2 Bsqueda no-informada
2.3. Bsqueda heurstica
2.4. Bsqueda con espacios estructurados

Inteligencia Artificial
20 4 Ing. Sup. Inf.
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
21 4 Ing. Sup. Inf.
rbol de bsqueda en amplitud
Bsqueda en amplitud
(evitando ciclos simples):
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 A C C

Inteligencia Artificial
22 4 Ing. Sup. Inf.
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
23 4 Ing. Sup. Inf.
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
24 4 Ing. Sup. Inf.
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
25 4 Ing. Sup. Inf.
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

d nodos tiempo memoria


0 1 1 ms 100 Bytes
2 111 100 ms 11 KB
4 11.111 11 s 1 MB
6 106 18 min 111 MB
8 108 31 horas 11 GB
10 1010 128 das 1 TB
12 1012 35 aos 111 TB
14 1014 3500 aos 11.111 TB

Inteligencia Artificial
26 4 Ing. Sup. Inf.
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
27 4 Ing. Sup. Inf.
Ejercicio 2.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 echar 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 postcondiciones), 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
28 4 Ing. Sup. Inf.
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 A
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 que
genera la bsqueda en amplitud. Indique H C E
el orden en que se expanden los nodos
Cul de los nodos meta se encuentra
primero? B K Z W
b) Instancie el algoritmo de bsqueda
general para que realice una bsqueda
en amplitud. Ponga el estado de la lista
abierta en cada paso del algoritmo.

Inteligencia Artificial
29 4 Ing. Sup. Inf.
Ejercicio 2.3

Bsqueda en profundidad:

Cmo se podra utilizar el algoritmo de la


transparencia 17 para implementar una
bsqueda en profundidad? Haga un anlisis
de complejidad de dicho algoritmo, similar al
de la transparencia 25, asumiendo un lmite de
profundidad d* fijado a priori.

Inteligencia Artificial
30 4 Ing. Sup. Inf.

Вам также может понравиться