Los métodos de búsquedas mas conocido en Inteligencia Artificial.
Búsquedas Sin Información del Dominio (A Ciegas)
· Búsqueda en Amplitud o Anchura
· Búsqueda en Profundidad
Búsquedas Informadas (Heurísticas)
· Búsqueda “Primero el Mejor”
· Búsqueda en Haz
· Algoritmo A*
Búsqueda con Adversario
· Método Minimax
· Método de Poda
1. Definición Características Ventajas Desventajas AlgoritmoBúsquedasSinInformacióndelDominio(ACiegas)
Búsqueda en
Amplitud o
Anchura
Recorre el árbol
nivel por nivel, es
decir, en el
primer paso
busca la solución
entre todos los
nodos del primer
nivel del árbol, si
no, entonces baja
un nivel y de esa
manera recorre
cada uno de los
niveles hasta
encontrar la
solución.
- Para cada uno de los
nodos de un nivel se
aplican todos los
posibles operadores.
- No se expande
ningún nodo de un
nivel antes de haber
expandido todos los
del nivel anterior.
- Se implementa con
una estructura FIFO
- Si existe la
solución, la
encuentra en la
menor profundidad
posible.
- Explosión
combinatoria
aparece
frecuentemente
debido a la alta
complejidad
espacial y
temporal de esta
técnica.
-La nomenclatura
adicional utilizada
es: Q = Estructura
de datos cola.
-El tiempo de
ejecución es
O(|V|+|E|). Nótese
que cada nodo es
puesto a la cola
una vez y su lista
de adyacencia es
recorrida una vez
también.
Búsqueda en
Profundidad
Trata de llegar
siempre lo más
profundo que
pueda, en cada
paso,si aún no ha
encontrado la
solución, trata de
bajar un nivel en
el árbol.
-Consiste en ir
expandiendo todos y
cada uno de los nodos
que va localizando,
de forma recurrente,
en un camino
concreto.
-Cuando ya no
quedan más nodos
que visitar en dicho
camino, regresa, de
modo que repite el
mismo proceso con
otros nodos.
-Expandir un
camino hasta su
máxima
profundidad puede
ser útil para acotar
la solución en
problemas de
optimización.
- Tiene menor
complejidad
espacial que
búsqueda en
amplitud.
-El requerimiento
de memoria es
limitado, aun si se
garantiza que no
cicle, ya que sólo
hace falta guardar
los datos de la
rama actual.
- Se pueden
encontrar
soluciones que
están más alejadas
de la raíz que
otras.
- Existe el riesgo
de presencia de
bucles infinitos.
-Algoritmo de
búsqueda no
informada.
BúsquedasInformadas(Heurísticas)
Búsqueda
“Primero el
Mejor”
La búsqueda
primero el mejor
es un caso en el
cual se selecciona
un nodo para la
expansión basada
en una función de
evaluación f(n).
- Esta función
evaluación devuelve
un número que sirve
para representar lo
deseable o indeseable
que sería la
expansión de un
nodo.
- Hay una familia
entera de algoritmos
de Búsqueda-
Primero-Mejor con
funciones de
evaluación diferentes.
- h(n) = coste
estimado del camino
más barato desde el
nodo n a un nodo
objetivo.
No depende en
exceso de la
función de
evaluación.
Excesiva
complejidad
espacial, pues se
deben guardar
todos los nodos
abiertos.
Es un algoritmo
recursivo.
Búsqueda en
Haz
Guardar sólo un
nodo en memoria
puede
parecer una
reacción extrema
al problema de
limitación de
memoria.
– Comienza con k
estados generados
aleatoriamente.
– En cada paso se
generan todos los
sucesores de los
k estados.
– Se comprueba si
alguno es un objetivo.
-más permisible.
-– Si un estado
genera varios
sucesores buenos,
el
algoritmo
rápidamente
abandona las
búsquedas
-la función de
evaluación se
complica.
-En su forma más
simple, puede
sufrir una
carencia de
diversidad entre
los k estados
algoritmos de
búsqueda en
grafos.
2. – Si no, se
seleccionan los k
mejores sucesores de
la
lista completa y se
repite el proceso.
infructuosas y
mueve sus recursos
allí donde se hace
la mayor parte del
progreso.
(concentrados en
una pequeña
región del
espacio de
estados)y
volverse en poco
más
que una versión
cara de la AdC.
Algoritmo A*
El algoritmo A*
encuentra,
siempre y cuando
se cumplan unas
determinadas
condiciones,el
camino de menor
coste entre un
nodo origen y
uno objetivo.
. El algoritmo es una
combinación entre
búsquedas deltipo
primero en anchura
con primero en
profundidad:
mientras que h'(n)
tiende a primero en
profundidad, g(n)
tiende a primero en
anchura. De este
modo, se cambia de
camino de búsqueda
cada vez que existen
nodos más
prometedores.
Como todo
algoritmo de
búsqueda en
amplitud, A* es un
algoritmo
completo: en caso
de existir una
solución, siempre
dará con ella.
De no cumplirse
la condición, el
algoritmo pasa a
denominarse
simplemente A, y
a pesar de seguir
siendo completo,
no se asegura que
el resultado
obtenido sea el
camino de coste
mínimo.
algoritmos de
búsqueda en
grafos.
BúsquedaconAdversario
Método
Minimax
Minimax es un
método de
decisión para
minimizar la
pérdida máxima
esperada en
juegos con
adversario y con
información
perfecta.
- El Minimax aporta
una herramienta de
proceso recursiva
muy útil.
- nformación
completa (cada
jugador conoce el
estado del otro).
- Elección del mejor
movimiento para
cada jugador,
suponiendo que el
contrincante escogerá
el peor.
-Capacidad de
aprender de acuerdo
a la información
que se consigue en
el momento en que
genera el árbol del
juego, es decir
aprende con
experiencia.
- Algoritmo casi
infalible o un gran
oponente a vencer. -
-Aprende del
oponente y al
tiempo le da
ventaja.
-Algoritmo de
complejidad
elevada a la hora
de implementar.
-Es de aprendizaje
lento, pues por
cada jugada
realizada y el
conjunto de las
que tiene
almacenadas lo
obliga a
implementar
algoritmos de
comparación,
búsqueda,
inserción, etc.
-Solo vale para
enfrentarse a un
oponente a la vez.
Es un algoritmo
recursivo.
Método de
Poda
Se aplica en
técnicas con
adversos y se usa
para reducir el
coste
computacional de
MINIMAX
podando las
ramas que nos
llevan a una
solución peor que
las ya
encontradas.
- Por debajo de
cualquier nodo min
que tenga
valores beta menores
o iguales a los valores
de cualquier nodo
max ascendiente
suyo.
-Por debajo de un
nodo max que tenga
un valor alfa
mayor o igual al valor
beta de cualquier
nodo min
ascendiente.
Como ha podido
verse, la poda alfa-
beta es aplicar
minimax, solo que
decidimos que
algunas ramas no
serán exploradas,
consiguiendo con
esto ahorrar algo de
espacio y de tiempo
computacional.
En algunos casos,
es posible podar
el árbol sin que
afecte
a la decisión que
se toma
finalmente.
Es un algoritmo
recursivo.