2. Tipos Básicos de Búsqueda
Búsqueda
Una ruta
Ruta optima
Juegos
Profundidad primero
Amplitud primero
Ascenso de colina
Búsqueda en haz
Primero el mejor
Museo británico
Ramificación y cota
Programación dinámica
A*
Minimax
Poda Alfa-beta
Continuación heurística
Profundidad progresiva
A tientas
Heuristicos
3. Redes y Búsqueda
s
a
d e
b c
f
g
3
3
44
4 4
55
2
Encontrar una trayectoria del punto S al punto G involucra dos
costos:
El costo del cálculo para encontrar la trayectoria
El costo del viaje cuando se sigue la trayectoria
4. Árbol de búsqueda
Es una representación que considera
todas las trayectorias posibles en la red:
◦ Los nodos representan trayectorias, y las
ramas conectan trayectorias a extensiones
de trayectoria de un solo paso.
Idea es construir al vuelo este árbol,
siguiendo una estrategia de búsqueda.
El número total de trayectorias de un
árbol con factor de ramificación b y
profundidad d es bd.
5. Gráfico 1
s
a d
a eb d
c e b fbe
d f b f d e a c g
g c g f
gTrayectoria s-d-a-b-e-f-g
6. Búsqueda en profundidad
primero
Para llevar a cabo una búsqueda en
profundidad,
1. Inserte en una pila el elemento raíz (nodo de
partida)
2. Hasta que el elemento tope sea el nodo
meta, o se vacié la pila
1. Si nodo tope tiene hijos, insertar el hijo siguiente aun
no visitado, según ordenamiento.
2. Si no, entonces eliminar nodo tope.
3. Si el nodo meta se alcanza, mencione éxito, de
lo contrario, notifique el fracaso.
7. Búsqueda en profundidad
primero (cont)
La búsqueda por profundidad se usa
cuando queremos probar si una
solución entre varias posibles cumple
con ciertos requisitos
8. Gráfico 2
s
a d
a eb d
c e b fbe
d f b f d e a c g
g c g f
g
1
2
3 4
5
6
7
9. Búsqueda en amplitud
primero
Para llevar a cabo una búsqueda en
profundidad,
1. Inserte en una pila el elemento raíz (nodo de
partida)
2. Hasta que el elemento tope sea el nodo
meta, o se vacié la pila
1. Si nodo tope tiene hijos, insertar el hijo siguiente aun
no visitado, según ordenamiento.
2. Si no, entonces eliminar nodo tope.
3. Si el nodo meta se alcanza, mencione éxito, de
lo contrario, notifique el fracaso.
10. Búsqueda en amplitud primero
(cont)
Sirve para cualquier estado, sin
embargo para algunos es muy
tardado
Es una estrategia sencilla en la que se
expande el nodo raíz, a continuación
se expande todos los sucesores del
nodo raíz, después sus sucesores etc.
11. Gráfico 3
s
a d
a eb d
c e b fbe
d f b f d e a c g
g c g f
g
1 2
3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18 19 20 21
12. Ramificación y cota
Menos sacrificado para encontrar la ruta
óptima.
Idea básica es expandir en cada ocasión la
ruta parcial con el menor costo hasta el
momento.
◦ Es decir, todos los nodos abiertos hasta el
momento entran en consideración.
Similar a método “primero el mejor”, pero al
revés.
◦ En lugar de seguir el trayecto que
aparentemente tiene la menor distancia hacia el
13. Algoritmo básico
Formar una cola de trayectos parciales.
Inicialmente sólo tiene el elemento raíz.
Hasta que la cola se vacié o se alcance el
nodo objetivo, determinar si el primer elemento
alcanza el nodo objetivo.
◦ Si alcanza el objetivo, salir.
◦ Si no, entonces;
Borrar el nodo de la cola
Agregar sus hijos a la cola
Ordenar los nodos por costo acumulado
Si el nodo objetivo fue encontrado mencionar
éxito, de lo contrario anunciar falla.
14. Gráfico 4
a d
a eb d
c e b fbe
d f b f d e a c g
g c g f
g
s
3 4
7 8 9 6
11 1011 12 10 13
13
1 2
4 5 6 3
87
9
15 14
15. Procedimiento A*
Es una búsqueda de ramificación y cota
con:
◦ Estimación de distancia restante
◦ Eliminación de trayectorias redundantes
Si la estimación de la distancia restante
es un limite inferior de la distancia
real, entonces A* produce soluciones
16. Búsqueda Heurística
Sirve para asignar a cada estado una
estimación del coste optimo a la solución.
Se usa para resolver muchos problemas
difíciles (explosión combinatoria), es necesario
muchas veces llegar a un compromiso de los
requerimientos de movilidad y sistematicidad y
construir una estructura de control que no
necesariamente garantiza el encontrar la mejor
respuesta, sino que casi siempre encuentra una
buena respuesta.
Una técnica heurística mejora la eficiencia del
proceso de búsqueda
sacrificando, usualmente, exhaustividad.
18. Algoritmo básico
Formar una cola de trayectos parciales.
Inicialmente sólo tiene el elemento raíz.
Hasta que la cola se vacié o se alcance el
nodo objetivo, determinar si el primer elemento
alcanza el nodo objetivo.
◦ Si alcanza el objetivo, salir.
◦ Si no, entonces;
Borrar el nodo de la cola
Agregar sus hijos a la cola
Ordenar los nodos por costo acumulado
Si el nodo objetivo fue encontrado mencionar
éxito, de lo contrario anunciar falla.
19. Gráfico 6
a d
a eb d
c e b fbe
d f b f d e a c g
g c g f
g
s
3 4
7 8 9 6
11 1011 12 10 13
13
1 2
4 5 6 3
87
9
15 14
20. Asegurar la ruta optima
¿cuál es la respuesta del método?
¿cómo podemos asegurar encontrar la ruta
óptima?
¿cuándo debemos terminar el algoritmo?
◦ Cuando todas las rutas parciales tengan
igual o mayor peso que la trayectoria
s
b
a g2
3
5
1
s
b
a g2
3
3
1