Sunteți pe pagina 1din 39

ALGORITMOS DE BÚSQUEDA

REALIZADO POR:

TATIANA ORDEN
GEOVANNY PULLAS
ALEX ZURITA
Búsqueda informada o heurística 
• Se denomina búsqueda informada a aquella que trata de encontrar una 
solución al problema, basado en un conocimiento del problema.
• El conocimiento vendrá dado por una función que estima la bondad de los 
estados: 
 Dar preferencia a los estados mejores.
 Ordenando la cola de abiertos, comprando su bondad estimada.
 Objetivo: reducir el árbol de búsqueda, ganando eficiencia en la practica. 
Búsqueda no Informada 
• No dependen de información propia del problema a la hora de resolverlo, 
sino que proporciona métodos generales para recorrer los arboles de 
búsqueda asociados a la representación del problema, por lo que se pueden 
aplicar en cualquier circunstancia. 
 Búsqueda en Anchura

• La solución encontrada por estos algoritmos no es la mas optima. 
ALGORITMOS DE 
BUSQUEDA 
NO INFORMADA
ALGORITMO DE BÚSQUEDA 
A*
• Se clasifica dentro de los algoritmos de búsqueda en gafos.
• Fue presentado por primera vez en 1968 por Peter E. Hartz, Nils J. Nilsson y Bertram 
Raphael.
• Evita expandir rutas que ya son costosas
• El algoritmo A* encuentra, siempre y cuando se cumplan unas determinadas condiciones, el 
camino de menor coste entre un nodo origen y uno objeto. 
• Función de evaluación: 
 f(n) =g(n)+h(n)
 La búsqueda A* utiliza heurísticos admisibles (h*(n)): 
 h*(n)≤hp(n) donde hp(n) es el heurístico perfecto
Ejemplo 

Arad
366=0+366
Arad
 

Sibiu Timisoara Zerind


393=140+253 447=118+329 449=75+374
Arad
 

Timisoara Zerind
 
Sibiu
 

Arad Fagaras  Ordea Riminio Vicea


646=280+366 415=239+176 671=291+380 413=220+193
Arad
 

Timisoara Zerind
 
Sibiu
 

Arad Fagaras  Ordea


646=280+366 Riminio Vicea
415=239+176 671=291+380
413=220+193

Craiova Pitesti Sibiu


525=366+16 417=317+10 553=300+25
0 0 3
Arad
 

Zerind
Timisoara  
Sibiu
 

Arad Fagaras  Ordea Riminio Vicea


646=280+366 415=239+176 671=291+380 413=220+193

Craiova Pitesti Sibiu


525=366+160 417=317+100 553=300+253

Bucharest Craiova Riminio Vicea


418=418+0 615=455+160 607=414+193
ALGORITMO DE 
ANCHURA 
• También llamado Best Firts (Primero el mejor)
• Es un algoritmo de búsqueda no informada utilizado para recorrer o buscar elementos en un 
grafo (usado frecuentemente sobre arboles).
• Utiliza una función de evaluación para cada nodo (estimación de idoneidad de expandir ese 
nodo).
• Expandir siempre el nodo no expandido mas idóneo.
Diferencias entre la búsqueda 
informada y no informada
• Búsqueda no informada: achura, profundidad, entre otras.
• No cuenta con ningún conocimiento sobre como llegar al objetivo.
• Búsqueda informada: aplica conocimiento al proceso de búsqueda para 
hacerlos mas eficiente.
ALGORITMO DE 
PROFUNDIDAD
DFS (DEPTH­FIRST SEARCH)
DESCRIPCIÓN
• Es un algoritmo que permite recorrer todos 
los  vértices  de  un  grafo  o  árbol  de  manera 
ordenada.
• Un grafo G es un par (V, A) 

   donde:

V:  es  un  conjunto  finito  y  no  vacío,  cuyos 


elementos reciben el nombre de vértices.

  A:  es  un  conjunto  de  arcos  representados 


por pares no ordenados elementos de V.
• Un ejemplo de grafo sería G = ( V, A ) dado por los conjuntos:  

V = {1, 2, 3, 4, 5, 6} 

A = { {1,4}, {1,5}, {1,6}, {2,4}, {2,6}, {3,5}, {4,5} }

Representación gráfica:
Ventajas:
• Tiene  menor  complejidad  espacial  que 
búsqueda en amplitud. 

Desventajas
• Se pueden encontrar soluciones que están mas 
alejadas de la raíz que otras.
• Existe  el  riesgo  de  presencia  de  bucles 
infinitos. 
EJEMPLO

• En cada etapa, se genera un 
conjunto de vértices 
adyacentes no visitados del 
vértice actual.
APLICACIONES
• Encontrar un camino desde un nodo U a un nodo V
• Detectar ciclos
• Encontrar componentes conexas en grafos no dirigidos
• Contar, colorear componentes conexas.
BÚSQUEDA POR PROFUNDIDAD 
LIMITADA 

• Se establece una profundidad máxima p, con diámetro del espacio de estados 
(caminos máximos).
• Se expande el nodo mas profundo de frontera hasta un limite.
• Su búsqueda no es óptima.
• El tiempo es exponencial pero tiempo un tiempo límite definido.
BÚSQUEDA POR PROFUNDIDAD 
ITERATIVA 
• Ampliación de profundidad 
limitada.
• Se va ampliando de forma gradual 
el limite.
• La solución es la más optima.
• La solución se encuentra en el 
nivel b­1.
• Es el mejor algoritmo de búsqueda 
yaque contiene DFS y BFS.
ALGORITMOS DE 
BUSQUEDA 
INFORMADA
Características:
 No garantizan que se encuentre una solución aunque 
existan soluciones.
 Si se encuentra una solución, no se garantiza que tenga las 
mejores propiedades
 En algunas ocasiones encontrarán una solución 
aceptablemente buena en un tiempo razonable
 En general los métodos heurísticos son preferibles a los 
métodos no informados en la solución de problemas difíciles 
para los que una búsqueda exhaustiva necesitaría un tiempo 
demasiado grande. Esto cubre prácticamente la totalidad de 
problemas reales que interesan en inteligencia artificial.
HEURISTICA 
• Es un proceso que puede resolver un problema dado, pero que no ofrece 
ninguna garantía que lo hará

• Los estados de menor valor heurístico sulen ser los preferidos.
10
2 1 2
2 b d 45 20
3
55
s 4 40 25
1 t 30
5 3
3 25
3 2
a c 50 15
4

Algoritmos de caminos más cortos
Grafos con pesos
• Cada arista lleva asociado un valor numérico no 
negativo, w(e), que representar un costo que varía 
linealmente a lo largo de la arista (distancia, tiempo). 
• El costo de un camino es la suma de los costos de las 
aristas del camino.  COR
SAN
2 BIL
0.9
· Ejemplo: grafo que 1.5
1 1.1 1
1.2 BAR
representa las rutas 1.2

entre ciudades de una MAD


1

aerolínea. El peso de las 1.2 2 VAL

aristas es el tiempo de
1.3 1.5
vuelo. SEV

MAL
Algoritmo de Dijkstra
• La idea principal es realizar una búsqueda a lo ancho 
“ponderada” empezando por el vértice inicial f.
• De manera iterativa se construye un conjunto de vértices 
seleccionados S que se toman del conjunto de vértices 
candidatos C según el menor peso (distancia) desde f. 
• El algoritmo termina cuando no hay más vértices de G 
fuera del conjunto formado.
• El paradigma usado corresponde al método voraz, en el 
que se trata de optimizar una función sobre una colección 
de objetos (menor peso). 
• Se usa un vector  d[v] para almacenar la distancia de v a 
f.
Explicación del algoritmo de Dijkstra
Ejemplo: Ruta mas corta desde el 
origen O hasta el destino T
Solución.
Aplicaciones del algoritmo de 
Dijkstra.
• En múltiples aplicaciones donde se aplican los grafos, es necesario conocer el 
camino de menor costo entre dos vértices dados:
• Distribución de productos a una red de establecimientos comerciales.
• Distribución de correos postales.
• Sea G = (V, A) un grafo dirigido ponderado.
• El problema del camino más corto de un vértice a otro consiste en 
determinar el camino de menor costo, desde un vértice u a otro vértice v. El 
costo de un camino es la suma de los costos (pesos) de los arcos que lo 
conforman.

S-ar putea să vă placă și