Sie sind auf Seite 1von 114

Inteligencia Artificial

Bsqueda Ciega

Agenda


PARTE 1




Resolucin de Problemas
Representacin de Problemas / Modelizacin
Agente Solucionador de Problemas

PARTE 2


Bsqueda en Espacio de Estados:





Generacin y Testeo
Implementacin

Modelos de Bsqueda Ciega









En Anchura Primero (Breath - First)


Costo Uniforme (Uniform - Cost)
En Profundidad Primero (DepthFirst)
Profundidad Limitada (Depth Limited)
Inmersin Progresiva (Progresive Depth)
Bidireccional

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 comportamento,


orientado a alcanzar metas particulares se dice
que es un Agente solucionador de problemas.

Resolucin de Problemas


Este tipo de agente debe tener:







Una Representacin adecuada de su entorno.


Debe conocer las Acciones que puede efectuar.
Debe poder Razonar sobre los efectos de sus
acciones en el entorno.
El razonamiento en este caso queda reducido a
escoger las acciones ms ventajosas ya sea que
maximicen una ganancia o que minimicen un efecto
nocivo sobre el entorno.

El Problema de la Representacin


En un sentido general, concierne a la relacin


existente entre las distintas formas de formular
un problema y la eficiencia para alcanzar una
solucin del mismo.

Aunque un problema pueda ser expresado de


diversas formas, siempre ser posible
establecer una equivalencia formal entre ellas
respecto a ciertos aspectos.

El Problema de la Representacin


La representacin de un problema tiene una gran


influencia en el esfuerzo que es necesario para
resolverlo.
Un problema raramente se resuelve en los
mismos trminos en los que fue expresado al
comienzo.
Normalmente se utilizan un conjunto de
convenciones para representar la informacin.
Simplificaciones, generalizaciones, abstracciones,
etc.
Esto se llama modelar.

El Problema de la Representacin


Cuando representamos un problema


necesitamos crear un modelo del mismo.

Pero, Qu es un modelo?

Los modelos ...








Ayudan a visualizar un problema, a establecer


una situacin en el pasado, presente o en el
futuro;
Permiten especificar la estructura o la dinmica
de un problema;
Permiten controlar y guiar el proceso de
resolucin de un problema.
Hacen factible su resolucin por evitar detalles
innecesarios.

El Problema de la Representacin


Un modelo consiste en la interpretacin de un


dado dominio del problema siguiendo una
determinada estructura de conceptos. (ej.: plano
de una casa)
Un esquema es una especificacin de un
modelo usando un determinado lenguaje, el cual
puede ser formal o informal.
Un modelo es una representacin en pequea
escala, en una perspectiva particular, de un
problema.

Abstraccin


Abstraccin: accin de abstraer;


separacin mental de una de las partes de
un todo;

Abstracto: adj., que designa una cualidad


separada del objeto al que pertenece;

Un buen ejemplo de modelacin




Cuando el primer mapa de la lnea de subterrneos de


Londres fue publicado en 1908, segua fielmente su
geografa: todas las curvas y vueltas de los tneles, y la
distancia relativa entre las estaciones fueron fielmente
respetadas.

Entretanto el propsito del mapa era mostrar a los


pasajeros el ordenamiento de las estaciones en cada
lnea, y las conexiones entre ellas. Pero la fidelidad del
mapa dificultaba obtener esa informacin.

d
e
1
9
0
8

Mapa de 1933
En 1933, el mapa fue sustituido por una
representacin mas abstracta, que
mostraba solamente la conectividad entre
las estaciones.
 Fueron abstrados


Detalles relacionados con la superficie.


 Distancia entre las estaciones.
 Orientacin de las lneas.


M
a
p
a
d
e
1
9
3
3

Mapa de 1933


El Diagrama dio a las personas un buen modelo


conceptual; i.e., como ver el sistema del subterrneo
de Londres en una forma simplificada. Es una
especificacin que le permite a las personas entender
una situacin compleja.
A pesar de que sufre cambios y es revisado desde
1933, bsicamente continua siendo el mismo
diagrama propuesto por el ingeniero diseador Harry
Beck.
El xito del diagrama es debido a:



Una apropiada eleccin de la abstraccin


Una elegante representacin.

M
a
p
a
A
c
t
u
a
l

M
a
p
a
A
c
t
u
a
l

M
a
p
a
A
c
t
u
a
l

Caractersticas de una buena


Representacin



Claridad: Debe ser evidente la relacin entre el


modelo y el problema real.
Exactitud: El modelo debe ser fiel a la realidad
en los aspectos relevantes para la resolucin
del problema.
Completitud: El modelo debe representar todos
los aspectos relevantes para a resolucin del
problema.

Caractersticas de una buena


Representacin




Eficiencia: La representacin debe poder ser


utilizada en forma eficiente.
Concisin: Las caractersticas irrelevantes
deben ser omitidas y los detalles suprimidos.
Utilidad: Es importante avaliar se el modelo
sugiere un buen mtodo para resolver el
problema.

Hiptesis de Representacin de
Conocimiento (Brian Smith (1982))
Un sistema inteligente utiliza estructuras que:


Poden ser interpretadas como proposiciones


que representan el conocimiento del sistema.

Determinan el comportamiento del sistema.

Resolucin de Problemas
Algoritmos vs. Bsqueda


Algortmica: prescripcin exacta de una secuencia


determinada de acciones conducentes a la
solucin en un nmero finito de pasos.


Problemas: resolucin
complejidad, etc.

determinista,

infalible,

alta

Cmo resolver un problema si no se tiene un


algoritmos sistemtico o directo?


Propuesta: ensayar un nivel de abstraccin utilizando


un mtodo general de bsqueda exhaustiva y
sistemtica.

Resolucin de Problemas
(Acciones)


El agente debe escoger una secuencia de


acciones que conduzcan a alcanzar una meta
deseada.
La determinacin de escoger entre varias
metas posibles normalmente incluye la idea de
costo.
El proceso de seleccionar a secuencia de
acciones se denomina Bsqueda.

Resolucin de Problemas
Bsqueda





Conceptualmente, la resolucin mediante


bsqueda requiere establecer un isomorfismo
entre encontrar la secuencia de operadores
para resolver un problema y encontrar un
camino a travs de un grafo dirigido.
Cada nodo del grafo representar a un estado
de la representacin escogida del problema.
Cada arco orientado corresponder a la
existencia de un operador o accin que permite
pasar transformar el primer estado en el
segundo.

Agente solucionador de problemas




El agente reactivo


Escoge sus acciones en base a sus percepciones acta





No tiene estado interno


Por lo tanto, no puede pensar en el futuro

No sabe para donde va.

4 5 8
1 6
7 2 3


1 2
4 5
7 8

3
6

El Agente solucionador de problemas




Busca una secuencia de acciones que lo lleve a estados deseados


(objetivos).

Resolucin de Problemas: definiciones


Un problema en IA es definido en trminos de...
1) un espacio de estados posibles, incluido:


un estado inicial

un (o mas) estado final = objetivo

Ejemplo 1: ir de Funchal a Porto Moniz




espacio de estados: todas las ciudads de la Isla

Ejemplo 2: juego de 8-puzzle




inicio:

fin:

4 5 8
1 2 3
4 5 6
1 6
7 2 3
7 8
2) un conjunto de acciones (u operadores) que permiten pasar de un
estado a otro


Ej1.: ir de una ciudad a otra adyacente.

Ej2.: mover una pieza del juego de 8-puzzle

Resolucin de Problemas: definiciones




Definicin del objetivo:




Propiedad abstracta (compresin)




Conjunto de estados finales del mundo (extensin)




Ex.: estar en Porto Moniz

Solucin:


Ej.: condicin de jaque-mate en el Ajedrez

Camino (secuencia de acciones u operadores) que llevan del


estado inicial a un estado final (objetivo).

Espacio de Estados:


Conjunto de todos los estados alcanzables a partir del estado


inicial por cualquier secuencia de acciones.

Solucionando el problema:
Representacin, Bsqueda y Ejecucin


Representacin del problema y del objetivo:





Bsqueda (solucin del problema):






Cuales son los estados y las acciones a considerar?


Cual es (y como representar) el objetivo?

Proceso que genera/analiza secuencias de acciones para alcanzar un


objetivo.
Solucin = camino entre estado inicial y estado final.
Costo del camino = cualidad de la solucin.

Ejecucin:


Ejecutar la solucin completa encontrada, (bsqueda ciega, bsqueda


informada, estrategias con adversarios).

Intercalar ejecucin con bsqueda (planeamiento).

Reglas de Produccin


Representacin del conocimiento como pares de condicin 


accin
 Si la condicin (o premisa o antecedente) ocurre
 Entonces la accin (resultado, conclusin o consecuente)
deber ocurrir.



Si el agente percibe luz del freno del auto, entonces debe travar el carro
(regla de accin).
Si el vehculo tiene 4 ruedas y tiene un motor entonces el vehculo es un
automvil (nuevo conocimiento).

Son llamadas de reglas de produccin porque producen nuevos


hechos a partir de los hechos y reglas de la BC.
 Esos nuevos hechos pasan a ser parte de la BC.

Ejemplo: Problema de las Jarras




Tenemos dos jarras vacas con capacidad


de 4 y 3 litros cada una. Como podemos
obtener exactamente 2 litros en la primera
jarra? Las jarras pueden ser llenadas,
vaciadas o se puede pasar el contenido
de una jarra a la otra.

Ejemplo: Problema de las Jarras




El estado inicial es [0,0]

La condicin de solucin es [2,Z], ya que


no importa el contenido de la segunda
jarra.

Ejemplo: Problema de las Jarras


Las reglas de produccin son:
R1. Llenar jarra 1: [X,Y]  [4,Y]
R2. Llenar jarra 2: [X,Y]  [X,3]
R3. Vaciar jarra 1: [X,Y]  [0,Y]
R4. Vaciar jarra 2: [X,Y]  [X,0]
R5. Pasar el contenido de 1 a 2 hasta llenar 2
[X,Y] / X+Y>=3  [W,3] / W = X+Y-3
R6. Pasar todo el contenido de 1 a 2
[X,Y] / X+Y<=3  [0,X+Y]
R7. Pasar el contenido de 2 a 1 hasta llenar 1
[X,Y] / X+Y>=4  [4,Z] / Z = X+Y-4
R8. Pasar todo el contenido de 2 a 1
[X,Y] / X+Y<=4  [X+Y,0]

Ejemplo: Problema de las Jarras


R3. Vaciar jarra 1: [X,Y]  [0,Y]
Podemos colocar una precondicin X>0 para
evitar de usar la regla innecesariamente.
R3. Vaciar jarra 1: [X,Y] / X > 0  [0,Y]
Ejercicio:
Hallar la solucin del Problema de las jarras en
los prximos 10 minutos.

Sistemas de Produccin



Son sistemas basados en reglas de produccin.


Consisten en 3 mdulos principales:


Una Base de Reglas (BR): permanente




Reglas de produccin.

Una Memoria de Trabajo: temporaria


Base de hechos derivados durante la vida del agente.
 Percepciones del agente y hechos generados a partir
de la BR por el mecanismo de inferencia.


El Mecanismo (mquina) de inferencia


Determina el mtodo de racionamiento utilizado
(progresivo o regresivo).
 Utiliza estrategias de bsqueda (unificacin).
 Resuelve conflictos y ejecuta acciones.


Arquitectura de los Sistemas de


Produccin
Memoria de Trabajo

Base de Reglas

conocimiento voltil

conocimiento Permanente
hechos
reglas de producin

Meta-conocimiento
estrategias para resolucin de
conflito

Mecanismo
de
inferencia

descripcin de la instancia
del problema actual
hiptesis actual
objetivos actuales
resultados intermedios

Conjunto de conflito
conjunto de posibles
reglas a ser disparadas

Ventajas y Limitaciones de los


Sistemas de Produccin


Ventajas
 Las reglas son de fcil comprensin.
 inferencia y explicaciones son fcilmente derivadas.
 Mantenimiento es relativamente simples, debido a modularidad.
 Son mas eficientes que los sistemas de programacin en lgica,
aunque menos expresivos.
Desventajas
 conocimiento complejo requiere muchas (millares de) reglas.
 Ese exceso de reglas crea problemas para la utilizacin y
mantenimiento del sistema.
 No son robustos (inestables por tratamiento de incerteza).
 No aprenden.

Ejemplos de formulacin de
problema


Juego de 8-puzzle:





estados = cada posible configuracin del tablero.


estado inicial = cualquiera de los estados posibles.
Objetivo = ordenado, con blanco en la posicin [3,3].
costo del camino = nmero de pasos de la solucin.

Ejercicio:
Pensar las reglas de produccin (5 minutos).

Importancia de la Formulacin


Solucin 1:




R1. mover 1 para arriba


R2. mover 1 para la derecha
etc., 32 reglas

Solucin 2 (lo que se mueve es el vaco)






R1. mover vaco para arriba


R2. mover vaco para la derecha
etc., solamente 4 reglas

rboles de bsqueda para el juego del 8-puzzle

arriba

4 5 8
1 6
7 2 3

abajo

derecha

5 8
4 1 6
7 2 3
abajo

4 5 8
1
6
7 2 3

derecha

1 2
4 5
7 8

3
6

4 5 8
7 1 6
2 3

Importancia de la formulacin


Juego de las 8 Reinas




distribuir 8 reinas en un tablero de ajedrez de forma que


no se ataquen entre si.


No puede haber mas de una reina en una misma lnea, columna o


diagonal.

Existen diferentes estados y operadores posibles.




Esa eleccin puede tener consecuencias buenas o


nefastas en la complejidad de la bsqueda o en el tamao
del espacio de estados.

Formulaciones para 8 Reinas




Formulacin A
 estados: cualquier disposicin con n (n 8) reinas.
 operadores: agregar una reina a cualquier cuadro.
 648 posibilidades: voy hasta el final para testear solucin.
Formulacin B
 estados: disposicin con (n 8) reinas sin ataque mutuo (testeo
gradual).
 operadores: agregar una reina en la columna vaca mas a la
izquierda en que no pueda ser atacada.
 mejor (2057 posibilidades), mas puede no haber accin posible.
Formulacin C
 estados: disposicin con 8 reinas, una en cada columna.
 operadores: mover una reina atacada para otra casilla en la
misma columna.

Medida de Desempeo en la
Bsqueda


Desempeo de un algoritmo de bsqueda:





1. El algoritmo encuentra alguna solucin?


2. Es una buena solucin?


3. Es una solucin computacionalmente barata?




costo de la bsqueda (tiempo y memoria).

Costo total


costo de camino (cualidad de la solucin).

costo del camino + costo de bsqueda

Espacio de estados grande:




compromiso (conflicto) entre la mejor solucin y la


solucin mas barata.

Costo diferente => Solucin diferente




Funcin de costo de camino






(1) nmero de casillas visitadas,


(2) distancia entre las casillas,
(3) tiempo de viaje, etc.

Solucin mas barata:






(1) Funchal, (va Paul de la Serra), Porto Moniz


(2) Funchal, So Vicente, Porto Moniz
(3) Funchal, So Vicente (viaducto), Porto Moniz

Problemas clsicos











Torre de Hanoi
Misioneros y Canbales
Jarras de agua
Juego del 8-puzzle
Mundo de bloques
Viajante de comercio.
Laberinto
Lobo, oveja y verdura
Travesa del puente
...

Problemas clsicos








Ajedrez
Bagamond
Damas
Go
Mancala
Damas
...

SEND
+ MORE
------MONEY

Aplicaciones: Problemas Reales




Clculo de rutas





rutas en redes de computadores.


sistemas de planeamiento de viajes.
planeamiento de rutas de aviones.
Cartero/viajante.

Planificacin (Scheduling)



Distribucin de aula.
Mquinas industriales en lneas de produccin
(job shop).

Aplicaciones: Problemas Reales




Navegacin de robots:



generalizacin del problema de la navegacin.


Los robots se mueven en espacios continuos, con un
conjunto (infinito) de posibles acciones y estados


Montaje de objetos complejos por robots:




controlar los movimientos del robot no cho, de sus


brazos y piernas requiere espacio multi-dimensional.

ordenar a montaje de las diversas partes del objeto

etc...

FIN PRIMERA PARTE

Agenda


PARTE 1




Resolucin de Problemas
Representacin de Problemas / Modelizacin
Agente Solucionador de Problemas

PARTE 2


Bsqueda en Espacio de Estados:





Generacin y Testeo
Implementacin

Modelos de Bsqueda Ciega









En Anchura Primero (Breath - First)


Costo Uniforme (Uniform - Cost)
En Profundidad Primero (DepthFirst)
Profundidad Limitada (Depth Limited)
Inmersin Progresiva (Progresive Depth)
Bidireccional

Bsqueda en Espacio de
Estados



Una vez que el problema esta bien formulado...


el estado final debe ser buscado.
En otras palabras, se debe usar un mtodo de
bsqueda para obtener un orden correcto de
aplicacin de los operadores que vayan del
estado inicial al final.
Una vez que la bsqueda ha terminado con
xito, se ejecuta la
solucin (= conjunto
ordenado de operadores a aplicar).

Bsqueda en Espacio de Estados:


Generacin y Testeo


Frontera del espacio de estados




nodos (estados) a ser expandidos en algn momento.

Algoritmo:
Obs.: el algoritmo comienza con la frontera conteniendo el estado inicial
del problema.
1. Seleccionar el primer nodo (estado) de la frontera del espacio de estados;
- si la frontera est vaca, el algoritmo termina con falla.
2. Testear si el nodo es un estado final (solucin):
- entonces retornar nodo - la bsqueda termina con xito.
3. Generar un nuevo conjunto de estados por la aplicacin de los operadores al
estado seleccionado;
4. Insertar los nodos generados a la frontera, de acuerdo con la estrategia de
bsqueda usada, y volver al paso (1).

Bsqueda en Espacio de

Estados: Implementacin


Espacios de Estados


pueden ser representados como un rbol donde los estados son


nodos y las operaciones son arcos.

Los nodos del rbol pueden guardar mas informacin


adems del estado:
suelen ser una estructura con 5 componentes:
1. el estado correspondiente
2. un puntero al nodo padre
3. el operador aplicado para generar el nodo (a partir del padre)
4. la profundidad del nodo
5. el costo del nodo (desde la raz)

Bsqueda en Espacio de

Estados: implementacin
Algoritmo:
Funcin-Insertar: controla el orden de insercin de nodos en la
frontera del espacio de estados.
funcin Bsqueda-Genrica (problema, Funcin-Insertar)
retorna una solucin o falla

frontera Armar-Lista(Estado-Inicial [problema] )


loop do
si frontera est vaca entonces retorna falla
nodo Remover-Primero (frontera)
si Testeo-Terminal[problema] aplicado a Estado [nodo] retornar
xito con nodo.
frontera Funcin-Insertar(frontera, Operadores [problema])
end do

Mtodos de Bsqueda


Bsqueda exhaustiva - ciega




No sabe cual es el mejor nodo de la frontera a ser expandido = menor costo de


camino desde ese nodo a un nodo final (objetivo).

Estrategias de Bsqueda (orden de expansin de los nodos):

Direccin de Bsqueda:




Del estado inicial al objetivo


Del objetivo al estado inicial
Bsqueda Bidireccional

Bsqueda heurstica informada

Estima cual es el mejor nodo de la frontera a ser expandido en base a


funciones heursticas => conocimiento.
Estrategia de Bsqueda: (mejor eleccin basada en la funcin heurstica).

Direccin de Bsqueda: dem a bsqueda ciega.

Criterios de evaluacin de las


Estrategias de Bsqueda


Completitud:


Costo temporal:


Cuanto tiempo insume encontrar una solucin?

Costo espacial:


La estrategia, encuentra siempre una solucin?

Cuanta memoria es necesaria para realizar una


bsqueda?

Optimizacin/calidad (optimality):


La estrategia, encuentra la mejor solucin cuando


existen diferentes soluciones?

Bsqueda Ciega
En Anchura Primero (Breath - First)
 Costo Uniforme (Uniform - Cost)
 En Profundidad Primero (DepthFirst)
 Profundidad Limitada (Depth Limited)
 Inmersin Progresiva (Progresive Depth)
 Bidireccional


Bsqueda Ciega
Notacin
 b = factor de ramificacin;
 d = profundidad de la solucin;
 m = profundidad mxima del rbol de
bsqueda;
 l = lmite de profundidad.

Bsqueda en Anchura (1)





Bsqueda a lo ancho: el nodo de menor profundidad,


ms a la izquierda es elegido para generar sucesores.
El nodo raz es expandido primero




todos los nodos generados son explorados;


todos los sucesores de los antecesores son explorados;
y as sucesivamente.

los nodos de profundidad d son explorados antes que


los nodos de profundidad d+1

function BREADTH-FIRST-SEARCH (problem) return


solution
return GENERAL-SEARCH(problem, ENQUEUE-ATEND)

Bsqueda en Anchura (2)


Si existe solucin ser encontrada.
 La solucin encontrada primero ser la de
menor profundidad.
 Completa.
 ptima cuando el costo es la profundidad.
 Costo con factor de ramificacin (b)


se debe considerar tiempo y memoria;


 solucin con profundidad d.


1 + b2+ b3+ ... + bd

Bsqueda en Anchura (3)

Bsqueda en Anchura (4)

Bsqueda en Anchura (5)

Bsqueda en Anchura (6)

Bsqueda en Anchura (7)

Bsqueda en Anchura (8)

Algoritmo Bsqueda en Anchura


Primero
Funcin BsquedaAnchuraPrimero (problema, insertar_lista): solucin
o falla
1. i_nodos  armar_lista(estado_inicial(problema))
2. repetir
2.1 si vaca_lista(i_nodos) entonces
2.1.1 devolver falla
fin_de_si
2.2 nodo  retirar_lista(i_nodos)
2.3 si testeo_objetivo(nodo) entonces
2.3.1 devolver nodo solucin
2.3.2 insertar_lista
(i_nodos,espancion(nodo,operadores(problema)))
fin_de_si
fin_de_repetir
fin_de_funcin

Costo Anchura (9)


Anlisis de la Complejidad
El costo de espacio y tiempo, referente a estrategia de bsqueda uniforme,
puede ser visualizado en el cuadro siguiente cuando b = 10 :
Profundidad

Nodos

Tiempo

Memoria

1 milisegundo

100 bytes

111

0.1 segundos

11 kilobytes

11,111

11 segundos

1 megabytes

106

18 minutos

111 megabytes

108

31 horas

11 gigabytes

10

1010

128 dias

1 terabyte

12

1012

35 aos

111 terabytes

14

1014

3500 aos

11,111 terabytes

Cuadro 1: Tiempo, memoria y nodos generados para llegar al estado meta


Se computan 1000 nodos por segundo y un nodo ocupa 100 bytes.

Bsqueda Ciega
En Anchura Primero (Breath - First)
 Costo Uniforme (Uniform - Cost)
 En Profundidad Primero (DepthFirst)
 Profundidad Limitada (Depth Limited)
 Inmersin Progresiva (Progresive Depth)
 Bidireccional


Costo Uniforme (1)


A estrategia de bsqueda uniforme es una
pequea modificacin de la estrategia de
bsqueda en anchura.
En la bsqueda en anchura, primero se
expande el nodo raz, despus todos los nodos
generados por este, y as sucesivamente hasta
que se llegue al estado meta, o sea, todos los
nodos que estn a una profundidad d del rbol
sern expandidos y visitados antes que los
nodos que estn a una profundidad d+1.

Costo Uniforme (2)


Una estrategia de bsqueda uniforme es bsicamente la
misma cosa.


En lugar de comenzar con el primer nodo expandido, que est en la


lista aguardando procesamiento, usar el nodo que posee el menor
costo (g(N)) para ser expandido.

Si ciertas condiciones son cumplidas, se garantiza que la


primera solucin encontrada ser la mas barata.
Una de las condiciones es la siguiente:


el costo del camino nunca debe ir diminuyendo conforme


avanzamos, en otras palabras, es importante que:

g (Sucesor(N)) >= g (N)


en todos los nodos N, g (N) es el costo conocido de ir de la raz hasta
el ndulo N.

Costo Uniforme (3)


Algoritmo Bsqueda Uniforme
1. Definir un conjunto L de nodos iniciales
2. Ordenar L en orden creciente de costo
3. si L es vaca
entonces la Bsqueda no fue exitosa
Sino sea n el primer nodo de L;
4. si n es un nodo objetivo
entonces
Retornar camino del nodo inicial hasta N;
Parar
Sino
Remover n de L;
Adicionar en L todos los nodos hijos de n, rotulando cada nodo con el
su camino hasta el nodo inicial;
Ordenar L en orden creciente de costo;
Volver al paso 3.

Costo Uniforme (4)


Resumen


Principio: expandir siempre el nodo de la frontera con


menor costo (dado por la funcin g (n)).

Este mtodo es equivalente a bsqueda en anchura


primero cuando g (n) = profundidad (n).

Caractersticas:



Es completo
Es ptimo

function UNIFORM-COST-SEARCH (problem) returns solution


return GENERAL-SEARCH (problem, COST-FN,ENQUEUE-AT-END)

Costo Uniforme (6)

Algoritmo Bsqueda Costo


Uniforme
Funcin BsquedaCostoUniforme (problema, insertar_orden_lista): solucin o
falla
1. i_nodos  armar_lista(estado_inicial(problema))
2. repetir
2.1 si vaca_lista (i_nodos) entonces
2.1.1 devolver falla
fin_de_si
2.2 nodo  retirar_lista(i_nodos)
2.3 si testeo_objetivo(nodo) entonces
2.3.1 r nodo sino
2.3.2 insertar_orden_lista
(i_nodos,espansion(nodo,operadores(problema)))
fin_de_si
fin_de_repetir
fin_de_funcin


Bsqueda Ciega
En Anchura Primero (Breath - First)
 Costo Uniforme (Uniform - Cost)
 En Profundidad Primero (DepthFirst)
 Profundidad Limitada (Depth Limited)
 Inmersin Progresiva (Progresive Depth)
 Bidireccional


Profundidad Primero (1)




Orden de expansin de los nodos:




siempre expande el nodo en el nivel mas profundo del rbol:


1. nodo raz
2. primer nodo de profundidad 1
3. primer nodo de profundidad 2, etc.

Cuando un nodo final no es solucin, el algoritmo retrocede para


expandir los nodos que estn en la frontera del espacio de estados.

(problema, Insertar-al-Comienzo)

Algoritmo:
funcin Bsqueda-en-Profundidad (problema)

retorna una solucin o falla


Bsqueda-Genrica

Profundidad primero (2)


El nodo de mayor profundidad mas a la izquierda es
escogido para generar sucesores.
Cuando es expandido un nodo de mayor profundidad,
y la bsqueda llega a un nodo sin sucesor, entonces el
algoritmo expande el prximo nodo con menor
profundidad.

Profundidad primero (2)

Profundidad primero (3)

Profundidad primero (4)

Profundidad primero (5)

Profundidad primero (6)

Profundidad primero (7)

Profundidad primero (8)

Profundidad primero (9)

Profundidad primero (10)

Profundidad primero (11)




Esta estrategia no es completa ni es ptima.

Costo de memoria:


Mantener en la memoria el camino que est siendo expandido en el


momento, y los nodos hermanos de los nodos en el camino (para
posibilitar el backtracking)
necesita almacenar apenas b * m nodos para un espacio de
estados con factor de expansin b y profundidad m, donde m
puede ser mayor que d (profundidad de la 1ra. solucin).

Costo de tiempo:


El (b m), en el peor caso.

Para problemas con varias soluciones, esta estrategia puede


ser mas rpida que bsqueda en anchura.

Esta estrategia debe ser evitada cuando las rboles generados


son muy profundos o generan caminos infinitos.

Profundidad primero (12)


Ventajas:
Requieren poca memoria
- El nodo objetivo puede llegar a ser encontrado sin
examinar el rbol por completo.

Desventaja:
Es importante que cada secuencia posible pueda
terminar.
- sino el algoritmo desciende indefinidamente.

Algoritmo Bsqueda en
Profundidad primero
Funcin BsquedaProfundidadprimero (problema, insertar_lista): solucin o
falla
1. i_nodos  armar_lista(estado_inicial(problema))
2. repetir
2.1 si vaca_lista (i_nodos) entonces
2.1.1 devolver falla
fin_de_si
2.2 nodo  retirar_lista (i_nodos)
2.3 si testeo_objetivo(nodo) entonces
2.3.1 devolver nodo sino
2.3.2 insertar_lista (i_nodos,espansion(nodo,operadores(problema)))
fin_de_si
fin_de_repetir
fin_de_funcin

Bsqueda Ciega
En Anchura primero (Breath - First)
 Costo Uniforme (Uniform - Cost)
 En Profundidad primero (DepthFirst)
 Profundidad Limitada (Depth Limited)
 Inmersin Progresiva (Progresive Depth)
 Bidireccional


Profundidad Limitada (1)


Acabamos de ver que uno de los grandes problemas de la
Bsqueda en Profundidad primero se debe a su
incapacidad para lidiar con caminos infinitos.
El algoritmo de Bsqueda en Profundidad Limitada
bsqueda evitar este problema fijando el nvel mximo de
bsqueda.

Profundidad Limitada (2)


En este proceso de bsqueda se genera un sucesor del
nodo en cada paso.
Por Ejemplo, en el primer paso se genera el sucesor del nodo
inicial.

As decidimos que cada vez que tiene un nodo sucesor,


aplicamos a este un nuevo operador, de modo de obtener
un nuevo sucesor, y as sucesivamente.

Profundidad Limitada (3)


En cada nodo tenemos que dejar una marca, que indiquen
que los operadores adicionales pueden utilizar y especificar
a orden en que deben ser aplicados.
Una vez alcanzada la profundidad lmite, la bsqueda para
el proceso de sucesores.
- Este lmite nos permite alcanzar las partes del grafo,
en que se supone que no encontramos un nodo objetivo.

Algoritmo Bsqueda en
Profundidad Limitada
Funcin BsquedaProfundidadLimitada (problema, insertar_lista,nivel_mx):
solucin o falla
1. i_nodos  armar_lista(estado_inicial(problema))
2. repetir
2.1 si vaca_lista (i_nodos) entonces
2.1.1 devolver falla
fin_de_si
2.2 nodo  retirar_lista (i_nodos)
2.3 si testeo_objetivo(nodo) entonces
2.3.1 devolver nodo sino
2.3.2 insertar_lista(i_nodos,espansion(nodo,operadores_Nmx(problema)))
fin_de_si
fin_de_repetir
fin_de_funcin

Bsqueda Ciega
En Anchura primero (Breath - First)
 Costo Uniforme (Uniform - Cost)
 En Profundidad primero (DepthFirst)
 Profundidad Limitada (Depth Limited)
 Inmersin Progresiva (Progresive Depth)
 Bidireccional


Inmersin Progresiva (1)


Como ya vimos, si no conocemos el valor del lmite
mximo, estaremos condenados a una estratgia de
bsqueda en profundidad primero y tenemos que lidiar
con el problema de los caminos infinitos.
La respuesta a este problema pasa por la alteracin del
principio de la bsqueda limitada haciendo variar ese
lmite entre cero e infinito.

Inmersin Progresiva (2)


As, el algoritmo consiste en la llamada repetida del
algoritmo de bsqueda limitada para valores crecientes
del lmite mximo.
Este algoritmo combina los aspectos positivos de la
bsqueda en anchura y de la bsqueda en profundidad.
As el problema de los caminos infinitos desaparece.

Inmersin Progresiva (3)

Inmersin Progresiva (4)

Inmersin Progresiva (5)

Inmersin Progresiva (6)

Inmersin Progresiva (7)


El algoritmo de bsqueda por Inmersin progresiva es
una excelente opcin para problemas en que estamos
obligados a utilizar un mtodo ciego.
El espacio de bsqueda es grande, si no sabemos cual
es el nvel mximo en que puede estar una solucin.

Algoritmo Bsqueda en Inmersin


Progresiva
Funcin BsquedaInmersinProgresiva (problema, insertar_lista):
solucin o falla
1. para nivl  0 hasta infinito hacer
1.1 si bsqueda BsquedaProfundidadLimitada (problema,
insertar_lista,nivl) entonces
1.1.1 devolver solucin
fin_de_si
fin_de_para
fin_de_funcin


Bsqueda Ciega
En Anchura primero (Breath - First)
 Costo Uniforme (Uniform - Cost)
 En Profundidad primero (DepthFirst)
 Profundidad Limitada (Depth Limited)
 Inmersin Progresiva (Progresive Depth)
 Bidireccional


Bsqueda Bidireccional (1)




Bsqueda en dos direcciones:








Hacia adelante, a partir del nodo inicial, y


Hacia atrs, a partir del nodo final (objetivo).

La bsqueda para cuando los dos procesos generan un


mismo estado intermedio.
Es posible utilizar estrategias diferentes en cada
direccin de la bsqueda.

Bsqueda forward para el juego del 8-puzzle

arriba

4 5 8
1 6
7 2 3

abajo

derecha

5 8
4 1 6
7 2 3
abajo

4 5 8
1
6
7 2 3

derecha

1 2
4 5
7 8

3
6

4 5 8
7 1 6
2 3

Bsqueda backward para el juego del 8-puzzle


1 2
4 5
7 8

arriba

1 2
4 5
7 8
arriba

3
6
abajo

3
6

abajo

derecha

izquierda

1 2
4 5
7
abajo

4 5 8
1 6
7 2 3

3
6
8
izquierda

Direccin de Bsqueda
Notar que en el 8-puzzle puede simularse la
direccionalidad, debido a la reversibilidad del
problema.
 Qu es ms eficiente: forward o backward?






Hay ms estados iniciales o finales?


En que direccin hay mayor factor de
ramificacin?
Debe justificarse el razonamiento?

Bsqueda Bidireccional (2)




Costo temporal:





Si el factor de expansin b en las dos direcciones, y la


profundidad del ltimo nodo generado es d: O(bd/2)

Costo espacial: O(bd/2)


Bsqueda para atrs genera antecesores del nodo final


si los operadores son reversibles:




esos operadores pueden generar rboles infinitos!

caso contrario, la generacin de antecesores es muy difcil





conjunto de antecesores del nodo = conjunto de sucesores del nodo

descripcin de ese conjunto es una propiedad abstracta


Ej.: como determinar exactamente todos los estados que preceden
un estado de jaque-mate?

Dificultades tambin cuando existen muchos estados finales


(objetivos) en el problema.

Comparacin de las Diversas


Estrategias de Bsqueda
Critrio

Anchura

Costo
Uniforme

Profundidad

Inmersion
Iterativo

Tiempo

bd

bd

bm

bd

Espacio

bd

bd

bm

bd

Optima?

Si

Si

No

Si

Completa?

Si

Si

No

Si

b = factor de ramificacin; d = profundidad de la solucin;


m = profundidad mxima de la rbol de bsqueda; l = limite de profundidad.

Conclusiones


Los Algoritmos de bsqueda bidireccional son de


especial inters, porque tienen gran potencial para
buscar
en
pequeos
espacios
y
reducen
significativamente el tiempo de funcionamiento por
implementacin paralela. En cuanto lo ltimo es
generalmente verdad, lo primero puede ser falso cuando
existen mltiplos caminos de solucin comparables.

Aplicado de forma incorrecta el mtodo de bsqueda


bidireccional, puede originar los peores casos de
bsqueda, transformndose en casos de bsqueda
unidireccionales donde los espacios de bsqueda son
distantes entre si.

Fuentes Consultadas







Rusel, Norvig, Artificial Intelligence: A Modern


Approach, Cap. 3.
Costa, Simes, Inteligncia Artificial.
Fundamentos y Aplicaciones. Cap 3.2.
Kvitca, Adolfo Resolucin de problemas con
inteligencia artificial. Editorial Kapeluz.
Acetatos Prof. Guillermo Simari. Universidad
Nacional del Sur, Argentina
Acetatos Alunos IIA semestre 2005/2006
Acetatos Prof. Geber Ramalho. CIN.
Universidad Federal de Pernambuco, Brasil.

Lecturas
LIVROS
 Rusel, Norvig, Artificial Intelligence: A
Modern Approach, Cap. 3.
 Costa, Simes, Inteligncia Artificial.
Fundamentos y Aplicaciones. Cap 3.2.

FIN

Das könnte Ihnen auch gefallen