Anda di halaman 1dari 56

Inteligencia

Artificial
Clase 05

Departamento de Ciencias e Ingeniera


de la Computacin
UNIVERSIDAD NACIONAL DEL SUR
2016
Resolucin de
Problemas usando
Bsqueda
Resolucin de Problemas

Veremos como un agente inteligente puede


resolver problemas considerando las
diferentes secuencias de acciones que
puede realizar.
Cuando un agente exhibe este
comportamiento orientado a alcanzar metas
particulares se dice que es un agente de
resolucin de problemas.

[G.R.Simari] 3
Resolucin de Problemas

Este tipo de agente debe tener una


Representacin adecuada de su entorno.
Debe conocer las Acciones que tiene
disponibles.
Debe poder Razonar acerca del efecto de sus
acciones sobre el entorno.
Esto lleva a un modelo de agencia en donde el
estado del entorno es discreto.

[G.R.Simari] 4
Resolucin de Problemas

El razonamiento en este caso se reduce a la


consideracin de las acciones y su efecto sobre el
entorno en un tipo de simulacin introspectiva.
El agente elegir la secuencia de acciones que lo
lleve a una de las metas deseadas.
La determinacin de cual de las metas posibles
tratar de alcanzar involucrar la idea de costo.
El proceso de seleccionar la secuencia de acciones
se denomina Bsqueda.

[G.R.Simari] 5
Bsqueda: Definiciones
Representacin usando Grafos
Propiedades de los Grafos y Bsqueda
Mtodos de bsqueda a ciegas:
Primero en profundidad (Depth First)
Primero a lo ancho (Breadth First)
Profundidad incrementada gradualmente (Iterative
Deepening)
Ramificacin incrementada gradualmente
(Iterative Broadening)
Bi-direccional

[G.R.Simari] 6
Resolucin de Problemas y Bsqueda

Se utilizan Estados y Operadores que


transforman un estado en otro.

Operadores

S1

S2

Estados
S3

[G.R.Simari] 7
Resolucin de Problemas y Bsqueda

Una Solucin de un Problema es una secuencia de operadores


que transforman un Estado Inicial en un Estado Meta.

Op1 Op2 Opn

S0 S1 Sn

Estado Inicial Estado Meta

En general, ni el Estado Inicial ni el Estado Meta son


necesariamente nicos, pero supondremos por convencin que
hay un solo estado inicial.

[G.R.Simari] 8
Definiciones y Conceptos Bsicos

Estado: es una representacin finita del mundo


en un momento dado en un dado formalismo.
Operador: una funcin que transforma un
estado en otro (tambin se lo llama regla,
transicin, funcin sucesor produccin, accin).
Estado inicial: el estado del mundo al
comenzar.
Estado Meta: el estado deseado del mundo
(puede no ser nico).
Test de Meta: test para determinar si se ha
alcanzado la meta.

[G.R.Simari] 9
Definiciones y Conceptos Bsicos

Estado Alcanzable: es un estado para el que existe


una secuencia de operadores que partiendo de un
estado inicial llega a l.
Espacio de Estados: es el conjunto de todos los
estados alcanzables desde el estado inicial.
Meta Alcanzable: es una meta que es un estado
alcanzable.
Funcin de Costo: es una funcin que asigna un
costo a la aplicacin de los operadores.
Perfomance: Costo de la secuencia de operadores,
Costo de encontrar dicha secuencia.

[G.R.Simari] 10
Definiciones y Conceptos Bsicos

El Grafo est formado por Nodos que representan los


Estados y por Arcos que representan la aplicacin de los
Operadores.
Este Grafo se genera de manera dinmica a medida que
la bsqueda avanza.
Este grafo puede ser un rbol (grafo dirigido acclico) o
un grafo genrico.
El nmero de estados posibles puede ser infinito.
El factor de ramificacin est determinado por el nmero
de operadores que pueden aplicarse en cada estado.
El nivel de profundidad de un nodo es el nmero de
arcos desde el estado inicial hasta dicho nodo.
[G.R.Simari] 11
Problemas
Formulacin del Problema

La primera tarea es formular el problema en


trminos de estados y operadores.
No siempre es posible lograr una
formulacin adecuada.
En general, existen muchas formulaciones
diferentes que dependen de la como se
considera el problema.
De manera que tambin la forma de
plantear los problemas es extremadamente
relevante.

[G.R.Simari] 13
Ejemplo: 8 Reinas

[G.R.Simari] 14
Y Como mueve una Reina?

[G.R.Simari] 15
Y Como mueve una Reina?

[G.R.Simari] 16
Ejemplo

[G.R.Simari] 17
Ejemplo: 8 Reinas

[G.R.Simari] 18
Ejemplo: 8 Reinas

Una solucin
[G.R.Simari] 19
Ejemplo: 8 Reinas

Finding una solucin (fuerza bruta)


[G.R.Simari] 20
Estado: de 1 a 8 Operador: colocar 1
reinas en el tablero reina en el tablero
Espacio de Estados: Meta: 8 reinas en el
todas las posibles tablero sin jaque
configuraciones de 8
reinas en el tablero
(648)


42
sucesores
[G.R.Simari] 21
Ejemplo: El Mundo de Bloques

Mesa Bloques

B
A
C

[G.R.Simari] 22
B Posibles
A C Movimientos

C
B B
A
A C

B
A C

[G.R.Simari] 23
Secuencia de
Operadores

B
A
C

Estado Inicial
A
B
C

Estado Final

[G.R.Simari] 24
Estado: una configuracin de Operadores:
los bloques sobre la mesa. reposicionamiento de los
bloques sobre la mesa o
sobre otro bloque, a partir
Espacio de Estados: de su posicin sobre la
todas las posibles mesa o sobre otro bloque.
configuraciones de los
bloques sobre la mesa.
Meta: un estado especfico.

B
A
C

[G.R.Simari] 25
8-puzzle

2 4 1
7 3 6
5
7 5
8 8
Un caso en donde la representacin es importante

[G.R.Simari] 26
Estado: Cada uno de los Meta: Un Estado especfico.
posibles arreglos de los
nmeros en el cuadrado.

Espacio de Estados: Operadores: Deslizar un


Todas las posibles nmero al lugar vaco o...
configuraciones. Intercambiar el lugar vaco
con una de las posiciones
adyacentes.

2 4 8 2 3 4
7 3 5 1 5
1 6 8 7 6
Estado Inicial Estado Final

[G.R.Simari] 27
2 4 8 2 4 8 2 4
7 3 5 7 3 7 3 8
1 6 1 6 5 1 6 5

2 4 8
7 3
2 4 8
1 6 5
7 3 5
1 6

2 4 8 2 4 8
7 5 7 3 5
1 3 6 1 6

[G.R.Simari] 28
Buscando

vecinos(1, [2, 3]).


vecinos(2, [4, 5]).
vecinos(3, [6, 7, 8]).
vecinos(4, [ ]).
vecinos(5, [ ]).
vecinos(6, [ ]).
vecinos(7, [ ]).
vecinos(8, [ ]).
es_meta( 7 ).

[G.R.Simari] 29
Nodos
Explorados

Nodos sin explorar

[G.R.Simari] 30
Un Algoritmo de Bsqueda Genrico
buscar(F0 )
seleccionar(Nodo, F0 , F1 ),
es_meta(Nodo).
buscar(F0 )
seleccionar(Nodo, F0 , F1 ),
vecinos(Nodo, NN),
agregar_frontera(NN, F1 , F2 ),
buscar(F2 ).

% buscar(Frontera) es verdadero si existe un paso desde un


% elemento de la frontera a un nodo meta.
% seleccionar(Nodo, F0 , F1 ), Nodo pertenece a F0 y F1 es F0 {Nodo}
% vecinos(Nodo, NN), NN es el conjunto de vecinos de Nodo.
% agregar_frontera(NN, F1 , F2 ), F2 es el conjunto NN unido F1.
% La relaciones seleccionar y agregar_frontera definen la estrategia
% de bsqueda
% La relacin vecinos define el grafo.
% La relacin es_meta define qu es una solucin.

[G.R.Simari] 31
Ejemplo
Definicin de vecinos y es_meta
vecinos(1, [2, 3]).
vecinos(2, [4, 5]).
vecinos(3, [6, 7, 8]).
vecinos(4, [ ]).
vecinos(5, [ ]).
vecinos(6, [ ]).
vecinos(7, [ ]).
vecinos(8, [ ]).
es_meta( 7 ).

seleccionar y agregar_frontera no
han sido definidos.

[G.R.Simari] 32
Costos
En algunos casos se asigna a los arcos en los grafos una cierta
longitud o peso.
Esto permite calcular el costo de un paso desde la raz a un
nodo meta.
Existen diferentes maneras de representar este costo.
Por ejemplo, costo(n1, n2, 6) representa el costo de recorrer el
arco que va de n1 a n2 es 6.

costo(n1, n2, 6).


costo(n2, n3, 4).
costo(n1, n3, 10).
[G.R.Simari] 33
Estrategias de
Bsqueda
Encontrando Pasos

Un problema interesante al implementar un


algoritmo de bsqueda es poder devolver el paso
encontrado como solucin.
Para hacer esto necesitamos darle a los nodos en
la frontera alguna estructura que conserve
informacin.
El dato que necesitamos es el paso parcial desde
la raz a un nodo en la frontera.
De esta manera al encontrar la meta tambin
tendremos el paso hasta ella.

[G.R.Simari] 35
Encontrando Pasos
Una estructura posible sera la siguiente:
nodo( Nodo, Paso, Costo_del_paso ).
donde
Nodo es un nodo en el grafo
Paso es una lista de nodos desde la raz a
Nodo sin incluirlo
Costo_del_paso es el costo total del paso
hasta Nodo
Agregar un nodo al paso parcial implica ponerlo al
frente de la lista.

[G.R.Simari] 36
Encontrando Pasos
pbuscar(F0 , [ N | P ] )
seleccionar(nodo(N, P, C), F0 , F1 ),
es_meta(N ).
pbuscar(F0 , Paso )
seleccionar(nodo(N, P, C ), F0 , F1 ),
vecinos(N, Vecinos),
agregar_pasos(Vecinos, nodo(Nodo, P, C ), NF ),
agregar_frontera(NF, F1 , F2 ),
pbuscar(F2 , Paso ).
agregar_pasos([ ], FE, [ ] ).
agregar_pasos([M | R ], nodo(N, P, CP ), [nodo(M, [ N | P ], NCP) | FR] )
costo(N, M, C ),
NCP is CP + C,
agregar_pasos(R, node(N, P, CP ), FR ).

[G.R.Simari] 37
Bsqueda
A partir del problema se define el grafo y la
meta que se desea alcanzar.
Al definir el grafo queda definido cuales son
los vecinos de un nodo dado.
Una estrategia de bsqueda define la forma en
como se seleccionan elementos de la
frontera.
La forma de seleccionar el nodo a expandir y
la forma como agregar un nodo a la frontera
estn indefinidas y al hacerlo aparecen
diferentes estrategias de bsqueda.
[G.R.Simari] 38
Estrategias de Bsqueda: Propiedades

Completitud: garantiza encontrar la meta si


esta existe o retorna falla si no existiera.
Optimalidad: garantiza encontrar siempre la
mejor meta.
Complejidad Temporal: nmero de
operaciones aplicadas en la bsqueda.
Complejidad Espacial: nmero de nodos
almacenados durante la bsqueda.

[G.R.Simari] 39
Bsqueda Primero en Profundidad

Depth-First
a

h
c

b
g

f
Secuencia de
e exploracin
a,b,d,e,c,f,g,h

[G.R.Simari] 40
Bsqueda Primero en Profundidad

seleccionar(Nodo, [ Nodo | Frontera ], Frontera).

agregar_frontera(Vecinos, Frontera1, Frontera2 )


concatenar(Vecinos, Frontera1, Frontera2 ).

De esta manera, el algoritmo de bsqueda al expandir


un nodo en la frontera coloca todos sus vecinos al
comienzo de la misma.
La frontera se comporta como una Pila.
Esta estrategia involucra backtracking como se ve en
la figura anterior.

[G.R.Simari] 41
Anlisis de Primero en Profundidad

Completitud: no

Optimalidad: no
b es el factor de
Complejidad Temporal: bm
ramificacin
m es la mxima
Complejidad Espacial: bm profundidad

[G.R.Simari] 42
Completitud

h
c

b
g

[G.R.Simari] 43
Completitud

Meta
h
c

b
g

[G.R.Simari] 44
Completitud

Meta
h
c

b
g

f
i
e

[G.R.Simari] 45
Optimalidad

Meta
h
c

b
g Supongamos
f que el costo de
los arcos es
e uniforme

Meta
[G.R.Simari] 46
Bsqueda Primero a lo Ancho

Breadth-First
a

h
c

b
g

f
Secuencia de
e
exploracin
a,b,c,d,e,f,g,h

[G.R.Simari] 47
Bsqueda Primero a lo Ancho

seleccionar(Nodo, [ Nodo | Frontera ], Frontera ).

agregar_frontera(Vecinos, Frontera1, Frontera2 )


concatenar(Frontera1, Vecinos, Frontera2).

De esta manera, el algoritmo de bsqueda al


expandir un nodo en la frontera coloca todos sus
vecinos al final de la misma.
La frontera se comporta como una cola.
Esta estrategia no involucra backtracking.

[G.R.Simari] 48
Anlisis de Primero a lo Ancho

Completitud: si

Optimalidad: si
b es el factor de
Complejidad Temporal: bd ramificacin
d es la profundidad
Complejidad Espacial: bd de la meta

[G.R.Simari] 49
Completitud

Meta
h
c

b
g

[G.R.Simari] 50
Completitud

Meta
h
c

b
g

f
i
e

[G.R.Simari] 51
Otros Mtodos de Bsqueda

Profundizacin Iterativa.

Expansin Iterativa

Bidireccional

[G.R.Simari] 52
Profundizacin Iterativa

[G.R.Simari] 53
Expansin Iterativa

[G.R.Simari] 54
Bidireccional

Meta
Raz

[G.R.Simari] 55
Fin

Anda mungkin juga menyukai