![Page 1: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/1.jpg)
Algoritmos de BúsquedaConsideraciones de Diseño e Implementación
Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur
Inteligencia Artificial2º cuatrimestre de 2008
![Page 2: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/2.jpg)
Formulación de un Problema de Búsqueda
• estado inicial
• conjunto de acciones
• test de meta (goal test)
• función de costo de camino
Juntos definen el espacio de estados
Se usa el término operador para denotar la descripción de una acción en términos de qué estado se alcanzará al llevar a cabo la acción en un estado particular.
Permite determinar si un dado estado es meta.
Asigna un costo a un camino. En gral.se define como la suma de los costos de las acciones a lo largo del camino
A
B C
D E
F
GH
Igrafo de estados
• Problema: Hallar un camino desde el estado inicial hasta una meta.
![Page 3: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/3.jpg)
Ejemplo
2 4 17 3 65 8 857
8-puzzle
![Page 4: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/4.jpg)
• estado inicial:espacio de estados:
• conjunto de operadores:
2 4 87 3 51 6
intercambiar el lugar vacío con una de las posiciones adyacentes.
• test de meta: 2 3 41
65
8 7
• función de costo de camino:la cantidad de movimientos(acciones) efectuadas a lo largo del camino.
todas las posiblesconfiguraciones.
2 4 87 3 51 6
2 4 87 3 51 6
2 4 87 3
51 6
2 487 351 6
2 4 87 3
51 6
2 4 87
35
1 6
2 4 87 3 5
1 6
(parte del) grafo de estados
Ejemplo
![Page 5: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/5.jpg)
5
Formulación del Problema de Búsqueda:
Algoritmo de Búsqueda
Solución:un camino
desde el estadoinicial a
una meta
• estado inicial
• conj. de acciones
• test de meta
• fc. de costo de camino
El valor asociado a la soluciónpor la función de costo determina la calidad de la misma.
Cuanto MENOR el costo, MEJOR la solución
Algoritmos de Búsqueda
![Page 6: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/6.jpg)
6
Representación de grafos
A
B
C D
E
Matriz de adyacencia
Listas de adyacencia (incidencia)
E
D
C
B
A
E
D
C
B
A
C D EC D E
BB
AA
C
EDCBA
1
E1D
1C11B
1AEDCBA
1
E1D
1C11B
1A
![Page 7: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/7.jpg)
7
• El grafo es una colección de hechos que modelan explícitamente cada uno de sus arcos.
arc(a,b).arc(b,c).arc(b,d).arc(b,e).arc(c,a).arc(d,c).
• Así la consulta por un arco en particular se resuelve en forma directa.
Una posible representación en PROLOG
![Page 8: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/8.jpg)
8
• Un algoritmo de búsqueda va generando y explorando los nodos (estados) del espacio de estados.
• Podría pensarse en el proceso de búsqueda como construyendo un árbol de búsqueda.
• El estado inicial es la raíz del árbol y los nodos hoja corresponden a estados que no tienen sucesores en el espacio/grafo de estados o no fueron expandidos aún.
Algoritmos de Búsqueda
![Page 9: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/9.jpg)
9
Arbol asociado a una Búsqueda
A
B C
DE
F
A
Grafo de Estados Arbol de Búsqueda
![Page 10: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/10.jpg)
10
A
B C
A
B C
DE
F
Grafo de Estados Arbol de Búsqueda
Arbol asociado a una Búsqueda
generados pero aún no explorados
(Frontera de la Búsqueda)
![Page 11: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/11.jpg)
11
A
B C
CD
A
B C
DE
F
Grafo de Estados Arbol de Búsqueda
Arbol asociado a una Búsqueda
![Page 12: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/12.jpg)
12
A
B C
CD F
A
B C
DE
F
Grafo de Estados Arbol de Búsqueda
Arbol asociado a una Búsqueda
![Page 13: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/13.jpg)
13
A
B C
C FD
EB
A
B C
DE
F
Grafo de Estados Arbol de Búsqueda
Arbol asociado a una Búsqueda
![Page 14: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/14.jpg)
14
A
B C
C FD
EB F
A
B C
DE
F
Grafo de Estados Arbol de Búsqueda
Arbol asociado a una Búsqueda
Selecciona un nodo meta,por lo tanto,
encuentra una solución
![Page 15: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/15.jpg)
15
• El algoritmo de búsqueda mantiene en todo momento una lista representando la Frontera de la búsqueda, es decir, aquellos nodos generados pero aún no explorados.
• Utilizaremos nodo(Estado, Camino) para representar un nodo de la frontera de la búsqueda (hoja del árbol de búsqueda) etiquetado con Estado, y donde Camino es el camino desde el estado inicial hasta dicho nodo en el árbol.
Algoritmos de Búsqueda
![Page 16: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/16.jpg)
16
A
B C
CD
[nodo(C, [A]), nodo(D, [B,A]), nodo(C, [B,A]) ]
Árbol de Búsquedaen un instante dado de la ejecución del algoritmo.
Representación mantenidapor el algoritmo (lista Front).
Representación de la Frontera
![Page 17: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/17.jpg)
17
Algoritmo general de búsqueda
buscar(Front, ):-
?- buscar([nodo_inicial], Solución)
seleccionar(Nodo, Front, _FrontSinNodo),Nodo = nodo(Estado, Camino),es_meta(Estado).
seleccionar(Nodo, Front, FrontSinNodo),vecinos(Nodo, Vecinos),agregar_frontera(Vecinos, FrontSinNodo, NewFront),buscar(NewFront, Solucion).
% buscar(+Front, -Solucion)
Determinan la estrategia de búsqueda
buscar(Front, Solucion):-
test de meta
[Estado|Camino]
![Page 18: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/18.jpg)
18
Generación de Vecinos
vecinos(Nodo, Vecinos):-
Nodo = nodo(N, Camino),
findall(nodo(V,[N|Camino]),arc(N,V),Vecinos).
% vecinos(+Nodo, -Vecinos)
![Page 19: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/19.jpg)
19
A
B E
CD
Árbol de Búsqueda en un instante dado de la ejecucióndel algoritmo.
Control de Visitados
Front
Visitados
![Page 20: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/20.jpg)
20
buscarV(Front, _Vis, [Estado|Camino]):-
?- buscarV([nodo_inicial],[], Solución)
seleccionar(Nodo, Front, _FrontSinNodo),Nodo = nodo(Estado, Camino),es_meta(Estado).
seleccionar(Nodo, Front, FrontSinNodo),vecinosV(Nodo, Front, Vis, Vecinos),agregar_frontera(Vecinos, FrontSinNodo, NewFront),buscarV(NewFront, [Nodo|Vis], Solucion).
% buscarV(+Front, +Vis, -Solucion)
No genera nodos que ya
fueron generados antesbuscarV(Front, Vis, Solucion):-
Control de Visitados
![Page 21: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/21.jpg)
21
vecinos(Nodo, Front, Vis, Vecinos):-
Nodo = nodo(N, Camino),
findall(nodo(V,[N|Camino]), (arc(N, V),not member (V, Vis),not member (nodo(V,_), Front)),Vecinos).
• ¿Cómo chequear que un nodo V no esté en Frontni en Vis?
not member(V, Front),not member(node(V,_), Vis)
% vecinosV(+Nodo, +Front, +Vis -Vecinos)
Generación de Vecinos
![Page 22: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/22.jpg)
Búsqueda Ciega
![Page 23: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/23.jpg)
23
Depth-first search (DFS)• DFS siempre selecciona para expandir el nodo de la fronteramás profundo.
• De esta manera:la búsqueda se extiende en profundidad sobre uno de los
caminos del grafo.
cuando este camino no puede extenderse más, la búsqueda continúa desde el nodo no explorado (ie, en la frontera) que se encuentre a mayor profundidad.
• Es decir, DFS toma de la Frontera el nodo que ha sido agregado último.
• Esto sugiere la manipulación de la Frontera como una pila.
![Page 24: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/24.jpg)
24
Depth-first search (DFS)
• Sobre grafos sin ciclos no tiene ninguna complicación.
• Sobre grafos con ciclos debe evitar la exploraciónrepetida de nodos.
• Por esta razón utilizaremos la versión de buscar que controla visitados para implementar DFS.
![Page 25: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/25.jpg)
25
Implementación de DFS
seleccionar(Nodo, [Nodo|RestoFront], RestoFront).
% seleccionar(-Nodo, +Front, -FrontSinNodo)
% agregar(+Vecinos, +FrontSinNodo, -NewFront)
agregar(Vecinos, FrontSinNodo, NewFront):-
append(Vecinos, FrontSinNodo, NewFront).
La selección de un nodo a explorar consiste en tomar el primero de la Frontera:
Los vecinos se agregan al comienzo de la frontera:
• La implementación de DFS (con control de ciclos) se obtiene a partir de buscarV/3 implementando seleccionar/3 y agregar/3 como se muestra a continuación:
![Page 26: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/26.jpg)
26
DFS: Traza
A
B C
D E
F GH
I
A
Front Vis
A - []
![Page 27: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/27.jpg)
27
A
B C
Front Vis
B – [A] A
C – [A]
A
B C
D E
F GH
I
DFS: Traza
![Page 28: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/28.jpg)
28
Front Vis
D – [B,A] A
E – [B,A]
A
B C
DE
B
C – [A]
A
B C
D E
F GH
I
DFS: Traza
![Page 29: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/29.jpg)
29
Front Vis
F – [D,B,A] A
B
A
B C
D E
F GH
I
A
B C
DE
F
D
E – [B,A]
C – [A]
DFS: Traza
![Page 30: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/30.jpg)
30
Front Vis
F – [D,B,A] A
B
A
B C
D E
F GH
I
A
B C
DE
F E – [B,A]
DFS: Traza
D
DC – [A]D es vecino de F, pero no volvemos a considerarlo debido a que D ya fue generado antes (Recordar que, de acuerdo al alg. de búsqueda con control de Visitados, si un nodo ya está en Front o en Vis nodebemos volver a considerarlo)
![Page 31: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/31.jpg)
31
Front Vis
A
B
A
B C
D E
F GH
I
A
B C
DE
FD
F
E – [B,A]
C – [A]
DFS: Traza
![Page 32: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/32.jpg)
32
A
B C
DE
F GH
Front Vis
A
E
B
A
B C
D E
F GH
I
D
F
H – [E,B,A]
G – [E,B,A]
C – [A]
DFS: Traza
![Page 33: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/33.jpg)
33
A
B C
DE
F GH
Front Vis
A
E
B
A
B C
D E
F GH
I
D
F
HG es meta!!! DFS termina
G – [E,B,A]
C – [A]
SOLUCIÓN
DFS: Traza
![Page 34: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/34.jpg)
34
Breadth-first search (BFS)
• BFS explora el grafo por niveles. Esto evita que la exploración entre en ciclos y garantiza encontrar el caminomás corto (en cantidad de arcos) a una meta.
• Es decir, BFS toma de la Frontera el nodo que hace más tiempo se encuentra en ella, lo que sugiere la implemen-taciónde la Frontera como una cola.
• Aunque BFS no puede entrar en ciclos, podría resultar útil controlar visitados por cuestiones de eficiencia.
![Page 35: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/35.jpg)
35
Implementación de BFS
seleccionar(Nodo, [Nodo|RestoFront], RestoFront).
% seleccionar(-Nodo, +Front, -FrontSinNodo)
% agregar(+Vecinos, +FrontSinNodo, -NewFront)
agregar(Vecinos, FrontSinNodo, NewFront):-
append(FrontSinNodo, Vecinos, NewFront).
La selección de un nodo a explorar consiste en tomar el primero de la Frontera:
Los vecinos se agregan al final de la frontera:
• La implementación de BFS se obtiene a partir de buscar/2(o buscarV/3) implementando seleccionar/3 y agregar/3 como se muestra a continuación:
![Page 36: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/36.jpg)
36
A
B C
D E
F GH
I
A
Front Vis
A - []
BFS: Traza
![Page 37: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/37.jpg)
37
A
B C
Front Vis
B – [A] A
C – [A]
A
B C
D E
F GH
I
BFS: Traza
![Page 38: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/38.jpg)
38
Front Vis
D – [B,A]
A
E – [B,A]
A
B C
DE
B
C – [A]
A
B C
D E
F GH
I
BFS: Traza
![Page 39: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/39.jpg)
39
Front VisD – [B,A] AE – [B,A] B
A
B C
D E
F GH
I
A
B C
DE
I
CI – [C,A]
BFS: Traza
![Page 40: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/40.jpg)
40
Front Vis
AE – [B,A]
B
A
B C
D E
F GH
I
C
I – [C,A]
A
B C
DE
F
I
D
BFS: Traza
F – [D,B,A]
![Page 41: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/41.jpg)
41
Front Vis
F – [D,B,A]
A
B
A
B C
D E
F GH
I
C
I – [C,A]
D
A
B C
DE
F GH
I
E
H – [E,B,A]
I es meta!!! BFS terminaSOLUCIÓN
BFS: Traza
G – [E,B,A]
![Page 42: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/42.jpg)
Búsqueda Heurística
![Page 43: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/43.jpg)
43
Búsqueda Informada o Heurística
• En búsqueda informada o heurística consideramosinformación específica acerca del problema paraguiar la exploración hacia una (buena) solución.
• Desventaja de búsqueda ciega: se explorasistemáticamente el espacio de búsqueda sin ninguna guía. Por lo tanto, en la mayoría de loscasos, es extremadamente ineficiente.
• Una heurística es una función h/1 que, aplicada a un estado E, provee una estimación del costo de alcanzar una meta a partir de E.
![Page 44: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/44.jpg)
44
Algoritmo A* • Al momento de seleccionar un nodo a expandir, A* eligeaquel que promete arribar a una mejor solución.
Nodo inicial
NMeta
g(N) h(N)
• Para cada nodo N en la frontera, A* conoce:el costo del camino usado para alcanzar N: g(N)la estimac. del costo del camino desde N hasta una meta: h(N).
• Entonces f(N)= g(N)+h(N) es una estimación del costo total de un camino a la meta (i.e., de una solución) que pasa por N.
• A* selecciona el nodo que tenga menor valor asociado por f.
(ya explorado) (sin explorar)
![Page 45: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/45.jpg)
45
• Al efectuar búsqueda A* puede efectuarse control de ciclos por razones de eficiencia, podando aquellas ramas del árbol correspondientes a estados ya generados previamente.
• No obstante, un mismo estado E puede pertenecer a distintos caminos, con distintos costos.
Algoritmo A*
• Por lo tanto si un estado es generado nuevamente pero sobre un mejor camino, vale la pena volver a considerarlo.
![Page 46: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/46.jpg)
46
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
A - [ ] - 5
A:5
![Page 47: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/47.jpg)
47
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
B - [A] - 6
A:5
B:1
C:2
5 km3 km
A - [ ] - 5
C - [A] - 5
A - [ ] - 5
![Page 48: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/48.jpg)
48
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
B - [A] - 6 A - [ ] - 5
C - [A] - 5
A - [ ] - 5
A:5
B:1C:2
E:1
5 km3 km
3 km
B:1
1 km
C - [A] - 5
B ya estáen Front!!!¿que hago?
Como B es alzanzado por un mejorcamino, (con valor f igual a 5) entoncesDESCARTO B - [A] – 6 y pongo el nodorecién generado: B - [C,A] – 5.
![Page 49: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/49.jpg)
49
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
B - [A] - 6 A - [ ] - 5
C - [A] - 5
A - [ ] - 5
A:5
B:1C:2
E:1
5 km3 km
3 km
B:1
1 km
C - [A] - 5 Descartamos B - [A]- 6 para quedarnos con B - [C,A] -5 ya que si para llegar a la meta hay que pasar por B, conviene tomar por el camino que pasa por C. Notar que llegar a B por el camino A,C,B cuesta menos (en términos de g) que llegar a B por el camino A, B!!!
B - [C,A] - 5 E - [C,A] - 7
![Page 50: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/50.jpg)
50
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
B - [A] - 6 A - [ ] - 5
C - [A] - 5
A - [ ] - 5
A:5
B:1C:2
E:1
5 km3 km
3 km
B:1
1 km
C - [A] - 5
B - [C,A] - 5 E - [C,A] - 7
![Page 51: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/51.jpg)
51
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
B - [A] - 6 A - [ ] - 5
C - [A] - 5
A - [ ] - 5
A:5
B:1C:2
E:1
5 km3 km
3 km
B:1
1 km
C - [A] - 5
B - [C,A] - 5 E - [C,A] - 7
D:0
2 km
B - [C,A] - 5
D - [B,C,A] - 6
![Page 52: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/52.jpg)
52
A*: f(n) = g(n) + h(n)
A:5
B:1
C:2
E:1
D:0
5 km3 km
1 km
2 km
3 km
2 km
Front Vis
B - [A] - 6 A - [ ] - 5
C - [A] - 5
A - [ ] - 5
A:5
B:1C:2
E:1
5 km3 km
3 km
B:1
1 km
C - [A] - 5
B - [C,A] - 5 E - [C,A] - 7
D:0
2 km
B - [C,A] - 5
D - [B,C,A] - 6
SOLUCIÓN
![Page 53: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/53.jpg)
53
• Si existe en Front un nodo N etiquetado con un estado E, y generamos E por un mejor camino que el representado por N, entonces reemplazamos N en Front por un nodo N’ para E con este nuevo camino.
• Si existe en Vis un nodo N etiquetado con un estado E, y generamos E por un mejor camino, entonces N es eliminado de Vis y se agrega a Front un nuevo nodo N’para E con este nuevo camino.
• De esta forma, E podrá ser ser reconsiderado en el futuro.
Generación repetida de un nodo
![Page 54: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/54.jpg)
54
A*: f(n) = g(n) + h(n)
Front VisA - [ ] - 25
A:25 A:25
B:5
C:12
D:0
20 km15 km
4 km
10 km 20 km
Quedacomo
ejercicio
![Page 55: Algoritmos de Búsqueda Consideraciones de Diseño e ...grs/InteligenciaArtificial/Implementacion.de... · • En búsqueda informada o heurística consideramos información específica](https://reader033.vdocuments.net/reader033/viewer/2022060220/5f0731947e708231d41bc5bd/html5/thumbnails/55.jpg)
FIN