Búsqueda informada

Anuncio
Inteligencia Artificial
Oscar Bedoya
oscar.bedoya@correounivalle.edu.co
http://eisc.univalle.edu.co/~oscarbed/IA/
*
*
*
*
Algoritmos de búsqueda informada
Heurísticas
Búsqueda Avara
Algoritmo A*
Búsqueda informada
• Búsqueda no informada:
- Costo en tiempo
- Costo en espacio
Búsqueda informada
Neamt
Iasi
Oradea
Zerind
Arad
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
Neamt
Iasi
Oradea
Zerind
Arad
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
• Búsqueda no informada:
- Costo en tiempo
- Costo en espacio
• ¿Cómo mejorar la búsqueda?
- Seleccionar mejor entre los nodos de un árbol
Búsqueda informada
Función heurística
• Una heurística es una función que asigna a cada nodo un
valor que corresponde al costo estimado de llegar a la
meta estando en dicho nodo
• Se denota por h(n)
Búsqueda informada
• El análisis clínico es de tipo heurístico, se da una
estimación de su estado actual con respecto a la meta que
corresponde al de una persona saludable
• No es 100% seguro
Búsqueda informada
Heurística
• Problemas:
- Decidir qué ruta tomar para ir a algún sitio*
- Decidir el lugar para estacionarse
La heurística estima el valor real
Búsqueda informada
h1
h2
h3
Búsqueda informada
h1: costo estimado
de llegar a la meta
desde este nodo
h1
h2
h3
Búsqueda informada
h1
h2
Si conociera los valores de
h, cuál de los tres nodos
escogería
h3
Búsqueda informada
h1=6
h2=4
Si conociera los valores de
h, cuál de los tres nodos
escogería
h3=10
Búsqueda informada
h1
h3
h4
h5
h6
Suponga que se llega a un
nodo meta, cuál debería ser
el valor de la heurística en
este nodo?
Búsqueda informada
h1
h3
h4
La heurística h(n) debe
ser 0 cuando n es un
nodo meta
h5
h6
Suponga que se llega a un
nodo meta, cuál debería ser
el valor de la heurística en
este nodo?
Búsqueda informada
• Las heurísticas son criterios para decidir cuál entre
varias acciones promete ser la mejor para alcanzar una
meta
Arquímedes (287 – 212 a.c)
Hierón - Monarca de Siracusa
Búsqueda informada
8-puzzle
7
8
3
1
2
3
2
1
6
4
5
6
4
7
8
5
¿Cuál podría ser una heurística?
Búsqueda informada
8-puzzle
7
8
3
1
2
2
1
6
4
5
6
4
7
8
3
5
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
8-puzzle
7
8
3
1
2
2
1
6
4
5
4
7
8
5
1
2
3
6
4
5
6
3
7
8
¿Cuál está más distante de la meta? ¿Cómo lo sabe?
¿Cuál es el valor de la heurística en la meta?
Búsqueda informada
8-puzzle
7
8
3
1
2
2
1
6
4
5
4
7
8
5
1
2
3
6
4
5
6
3
7
8
h(n): cantidad de placas en la posición incorrecta
Búsqueda informada
8-puzzle
7
8
3
1
2
2
1
6
4
5
4
7
8
5
h(n)=7
h(n)=2
1
2
3
6
4
5
6
3
7
8
h(n)=0
Búsqueda informada
• Defina una heurística
Búsqueda informada
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
h(n): cantidad de pares de reinas que se atacan
Búsqueda informada
• Defina una heurística
3m 3c L
0m 0c
Búsqueda informada
• Defina una heurística
3m 2c
0m 1c L
0m 2c
3m 1c L
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
• Defina una heurística
3m 2c
0m 1c L
0m 2c
3m 1c L
0m 0c
3m 3c L
h(n): misioneros + caníbales en el lado inicial del rio
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
Lugoj
Mehadia
75
Dobreta
Urziceni
Rimnicu
111
70
142
211
Timisoara
Vaslui
Fagaras
99
85
Pitesti
101
146
138
98
BUCHAREST
90
Hirsova
86
Giurgiu
Craiova
¿Cuál podría ser una heurística?
Se cuenta con las coordenadas de las ciudades
Eforie
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
Lugoj
Mehadia
75
Dobreta
Urziceni
Rimnicu
97
111
70
142
211
Timisoara
Vaslui
Fagaras
99
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
¿Cuál está más distante de la meta? ¿Cómo lo sabe?
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
Lugoj
Mehadia
75
Dobreta
Urziceni
Rimnicu
97
111
70
142
211
Timisoara
Vaslui
Fagaras
99
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
h(n): distancia en línea recta entre n y la ubicación de la meta
Búsqueda informada
Neamt
87
Oradea
Zerind
71
Iasi
92
151
75
Sibiu
Arad
140
80
118
Timisoara
97
70
Lugoj
Mehadia
75
Dobreta
142
211
Rimnicu
Vilcea
111
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
h(n): distancia en línea recta entre n y la ubicación de la meta
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
• Defina una heurística
El triángulo mágico. Utilizando el operador intercambio(a,b) que
cambia de posición los números a y b, colocarlos de tal forma que la
suma sobre cada lado sea 20.
1
9
2
8
7
3
6
5
4
Búsqueda informada
5
1
1
4
9
2
9
6
7
3
2
8
8
7
3
6
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
5
4
Búsqueda informada
5
1
1
4
9
2
9
6
7
3
2
8
8
7
3
6
5
4
Búsqueda informada
5
1
1
4
9
2
9
6
7
3
2
8
8
7
3
6
h(n): cantidad de lados que no suman 20
5
4
5
1
1
h=2
4
9
2
h=3
6
7
9
8
3
8
3
7
6
5
4
h=0
1
9
2
2
6
7
3
8
5
4
Búsqueda informada
Heurística
• La utilización de heurísticas en los métodos de búsqueda
permiten reducir el espacio de estados a expandir en la
construcción del árbol
Búsqueda informada
Cubo de Rubik
¿Cuál podría ser una heurística?
Entre diferentes estados del ambiente, ¿cómo
saber cuál está más distante de la meta?
Búsqueda informada
Cubo de Rubik
¿Cuál podría ser una heurística?
Entre diferentes estados del ambiente, ¿cómo
saber cuál está más distante de la meta?
Búsqueda informada
Cubo de Rubik
¿Cuál podría ser una heurística?
Entre diferentes estados del ambiente, ¿cómo
saber cuál está más distante de la meta?
Búsqueda informada
Estrategias de búsqueda informada
• Avara
• A*
Búsqueda informada
Búsqueda Avara
• Expandir el nodo con menor h(n), esto es, aquel que
parece estar más cerca de la meta sin importar a qué
profundidad esté
Búsqueda informada
Búsqueda Avara
• Expandir el nodo con menor h(n), esto es, aquel que
parece estar más cerca de la meta sin importar a qué
profundidad esté
- Intenta reducir al mínimo el costo estimado para lograr
una meta
Búsqueda informada
Neamt
Iasi
Oradea
Zerind
Sibiu
Arad
Vaslui
Fagaras
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Hirsova
BUCHAREST
Mehadia
Giurgiu
Eforie
Craiova
Dobreta
h(n): distancia en línea recta entre n y la ubicación de la meta
No evite devolverse
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
No evite devolverse
Arad
h=366
Búsqueda informada
Arad
h=366
Sibiu
h=253
Timisoara
h=329
Zerind
h=374
Búsqueda informada
Arad
h=366
Sibiu
h=253
Arad
h=366
Fagaras
h=178
Timisoara
h=329
Oradea
h=380
Rimnicu
h=193
Zerind
h=374
Búsqueda informada
Arad
h=366
Sibiu
h=253
Arad
h=366
Fagaras
h=178
Sibiu
h=253
Timisoara
h=329
Oradea
h=380
Rimnicu
h=193
Bucharest
h=0
Zerind
h=374
Búsqueda informada
Arad
h=366
Sibiu
h=253
Arad
h=366
Fagaras
h=178
Sibiu
h=253
Timisoara
h=329
Oradea
h=380
Zerind
h=374
Rimnicu
h=193
* Bucharest
h=0
El camino obtenido es
AradSibiuFagarasBucarest
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
111
70
Lugoj
Mehadia
75
Dobreta
142
211
Urziceni
Rimnicu
Timisoara
Vaslui
Fagaras
99
97
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
El camino obtenido es
AradSibiuFagarasBucarest
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
111
70
Lugoj
Mehadia
75
Dobreta
142
211
Urziceni
Rimnicu
Timisoara
Vaslui
Fagaras
99
97
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
El costo real de la solución
AradSibiuFagarasBucarest es 450
Búsqueda informada
Arad
h=366
Sibiu
h=253
Arad
h=366
Fagaras
h=178
Sibiu
h=253
Timisoara
h=329
Oradea
h=380
Zerind
h=374
Rimnicu
h=193
* Bucharest
h=0
¿Es ésta la solución óptima?
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
111
70
Lugoj
Mehadia
75
Dobreta
142
211
Urziceni
Rimnicu
Timisoara
Vaslui
Fagaras
99
97
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
El camino óptimo es
AradSibiuRimnicuPitestiBucarest
porque tiene costo 418
Búsqueda informada
• La búsqueda avara no es óptima
Búsqueda informada
El ratón inteligente
0
1
2
3
4
5
0
1
2
3
4
h(n): suma de las distancias horizontales y verticales
para alcanzar la salida. Distancia de Manhattan
Búsqueda informada
• Construya el árbol para ir de Iasi a Fagaras
No evite devolverse
Búsqueda informada
• Construya el árbol para ir de Iasi a Fagaras
No evite devolverse
Neamt
87
Iasi
Oradea
Zerind 71
92
151
75
Sibiu
Arad
140
80
118
Timisoara
111
70
Lugoj
Mehadia
75
Rimnicu
97
142
211
Urziceni
85
Pitesti
101
146
138
Craiova
Dobreta
Vaslui
Fagaras
99
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Distancia en
línea recta a
Fagaras:
Fagaras
0
Iasi
160
Neamt
150
Urziceni 155
Vaslui
170
Búsqueda informada
Iasi
h=160
Búsqueda informada
Iasi
h=160
Neamt
h=150
Vaslui
h=170
Búsqueda informada
Iasi
h=160
Neamt
h=150
Iasi
h=160
Vaslui
h=170
Búsqueda informada
Iasi
h=160
Neamt
h=150
Vaslui
h=170
Iasi
h=160
Neamt
h=150
Vaslui
h=170
Búsqueda informada
• La búsqueda avara no es completa
Búsqueda informada
8-puzzle
7
4
3
1
2
3
2
5
6
4
5
6
8
7
8
1
h(n): cantidad de piezas ubicadas en el lugar incorrecto
(teniendo en cuenta la placa vacía)
Búsqueda informada
1
5
4
7
1
7
5
2
1
4
3
4
8
6
7
2
3
8
6
2
1
5
5
3
4
3
8
6
7
8
2
6
1
5
2
4
8
3
7
6
Búsqueda informada
1
5
4
7
1
7
5
2
1
4
3
4
8
6
7
h=?
2
3
8
6
2
1
5
5
3
4
3
8
6
7
8
h=?
2
6
1
5
2
4
8
3
7
6
Búsqueda informada
1
5
4
7
1
7
5
2
1
4
3
4
8
6
7
h=6
2
3
8
6
2
1
5
5
3
4
3
8
6
7
8
2
6
h=4
Complete el árbol de búsqueda
No evite devolverse
1
5
2
4
8
3
7
6
1
5
2
4
7
1
7
1
5
2
1
4
3
4
8
6
6
1
2
4
5
3
7
8
6
1
2
4
5
5
5
3
4
3
7
8
6
7
8
1
5
2
7
8
5
3
7
8
6
1
2
3
1
2
4
5
6
4
5
3
7
8
7
8
6
*
0
4
3
8
6
5
1
2
4
5
3
7
8
6
3
4
4
6
1
7
2
8
2
4
3
3
6
2
1
2
4
3
7
3
5
8
6
3
5
2
6
5
1
5
2
4
8
3
7
6
6
Búsqueda informada
• Aplicar búsqueda avara
No evite devolverse
0m 3c L
3m 0c
Búsqueda informada
• Aplicar búsqueda avara
0m 3c L
3m 0c
<0,1>
<0,2>
0m 1c
3m 2c L
<0,2>
0m 3c L
3m 0c
0m 2c
3m 1c L
1
<0,1>
<1,0>
0m 2c L
3m 1c
3
<0,1>
<0,2>
*
0m 0c
3m 3c L
2
1m 1c L
2m 2c
0
0m 1c
3m 2c L
1
2
2
Búsqueda informada
• Definir una heurística
• Aplicar búsqueda avara
1
2
3
4
5
Operadores
• I(x,y). Intercambiar los símbolos en las posiciones X y Y.
Estos símbolos debe estar adyacentes. Se pueden hacer
intercambios con la casilla vacía
• S(x). Saltar, permite que el símbolo en la casilla x llegue a la
casilla vacía. No se puede saltar a una casilla adyacente
Búsqueda informada
• Definir una heurística
Meta:
Búsqueda informada
• Definir una heurística
Meta:
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
• Definir una heurística
Meta:
h: cantidad de símbolos en el lugar incorrecto
h: 1
h: 2
Búsqueda informada
• Aplicar búsqueda avara
Meta:
1
2
3
4
5
Operadores
• I(x,y). Intercambiar los símbolos en las posiciones X y Y.
Estos símbolos debe estar adyacentes. Se pueden hacer
intercambios con la casilla vacía
• S(x). Saltar, permite que el símbolo en la casilla x llegue a la
casilla vacía. No se puede saltar a una casilla adyacente
Búsqueda informada
S(5)
I(1,2)
I(2,3)
I(3,4)
2
I(4,5)
3
3
S(3)
1
2
S(4)
2
1
S(5)
2
I(1,2)
I(2,3)
1
I(3,4)
1
I(4,5)
2
S(4)
S(3)
1
*
0
2
Búsqueda informada
• Definir una heurística
• Aplicar búsqueda avara
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
• Definir una heurística
• Aplicar búsqueda avara
0
1
2 3
4
5
6
0
1
M
2
3
4
5
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
• Definir una heurística
• Aplicar búsqueda avara
0
1
2 3
4
5
6
0
1
M
2
3
4
5
h(n): suma de las distancias horizontales y verticales
para alcanzar la salida. Distancia de Manhattan
Búsqueda informada
• Definir una heurística
• Aplicar búsqueda avara
0
1
2 3
4
5
6
0
1
2
3
4
5
M
Búsqueda informada
Aplicar búsqueda Avara
0
1
2
3
0
Agente Minero. Indique el
camino que sigue el agente.
1
2
No evite devolverse
Punto de inicio
Lingote
• Utilice Manhattan
(0,1)
(0,0)5
(0,2)3
Búsqueda informada
0
(0,1)
(0,0)5
0
(0,2)3
(0,1) 4
(0,3)2
(0,2)3
(0,1) 4
(0,3)
2
1
2
1
2
3
Búsqueda informada
0
(0,1)
(0,0)5
2
3
0
(0,2)3
(0,1) 4
1
1
2
(0,3)2
Búsqueda avara se queda en un ciclo
(0,2)3
(0,1) 4
(0,3)
2
Búsqueda informada
Aplicar búsqueda Avara
El ratón inteligente.
0
0
- Llegar a una casilla libre cuesta 1
1
- Llegar a una casilla donde hay gato
cuesta 5
2
- Llegar a una casilla donde hay
ratonera cuesta 3
4
Evite devolverse
• Utilice Manhattan
3
1
2
(0,2)
(0,1) 4
(1,2) 4
(1,1) 3
0
0
1
2
(2,2)3
(2,1)2
(3,2)2
1
2
3
4
(3,1)1
(4,2)
1
(4,1)*0
Búsqueda informada
Implementación
• Se puede implementar considerando la lista de nodos a
expandir como una cola de prioridad, donde la prioridad
es el valor de la heurística
Búsqueda informada
• Completitud: no, puede caer en ciclos
• Complejidad temporal: O(bd), exponencial
• Complejidad espacial: O(bd), exponencial
• Solución óptima: no, la función heurística no garantiza
la solución óptima
Búsqueda informada
• ¿Cuál es la diferencia entre costo uniforme y avara?
Búsqueda informada
• ¿Cuál es la diferencia entre costo uniforme y avara?
g1
g2
g3
h1
h2
h3
Búsqueda informada
• ¿Cuál es la diferencia entre costo uniforme y avara?
g1
g3
g4
g5
g6
h1
h2
h4
h5
h6
Búsqueda informada
g1
g3
g4
g5
h1
h2
h4
g6
0
0
1
2
3
4
1
2
3
h5
h6
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
Neamt
Iasi
Oradea
Zerind
Arad
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
g=170
Neamt
Oradea
g=239
Zerind
Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
g=170
Neamt
Oradea
g=239
Zerind
Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
h=420
Neamt
Oradea
h=178
Zerind
Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
h=420
Neamt
Oradea
h=178
Zerind
Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
g+h
Neamt
g+h
Oradea
239+178=417
Zerind
170+420=590 Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
g+h
Neamt
g+h
Oradea
239+178=417
Zerind
170+420=590 Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Costo estimado de una solución
Bacau
Brasov
Iulia
Adamclisi
g+h
Neamt
g+h
Oradea
239+178=417
Zerind
170+420=590 Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
g =15.000, h =60.000
g =10.000, h =80.000
g =20.000, h =50.000
g =180.000, h =10.000
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
g+h
Neamt
g+h
Oradea
239+178=417
Zerind
170+420=590 Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
g+h
Neamt
g+h
Oradea
220+178=417
Zerind
170+420=590 Arad
Iasi
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
Neamt
Iasi
Oradea
Zerind
Arad
Vaslui
Fagaras
Sibiu
239+193=432
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
Neamt
Iasi
Oradea
Zerind
Arad
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
317+98=415
Timisoara
Lugoj
Pitesti
Bucarest
Mehadia
Giurgiu
Dobreta
Craiova
Hirsova
Eforie
Búsqueda informada
Cisnadie
Bacau
Brasov
Iulia
Adamclisi
Neamt
Iasi
Oradea
Zerind
Arad
Vaslui
Fagaras
Sibiu
Urziceni
Rimnicu
Timisoara
Lugoj
Pitesti
Bucarest
418+0=418
Mehadia
Giurgiu
Dobreta
Hirsova
Craiova
Eforie
Búsqueda informada
Algoritmo A*
• Tiene en cuenta que:
- La búsqueda de costo uniforme reduce g(n), el
costo de llegar hasta el nodo n
- La búsqueda avara reduce h(n), el costo hacia la
meta
Búsqueda informada
Algoritmo A*
• Expandir el nodo con menor f(n), esto es, aquel con el
menor costo estimado para la solución
f(n) = g(n) + h(n)
Búsqueda informada
Aplicar A*
0
1
2
3
0
Agente Minero. Indique el
camino que sigue el agente.
1
2
No evite devolverse
Punto de inicio
Lingote
(0,1)
(0,0)1+5
(0,2) 1+3
(0,1)
(0,0)1+5
(1,0)2+4
(2,0) 3+3
(1,0)4+4
(0,2)1+3
(0,1)2+4
(0,1)2+4
(0,3)2+2
(0,2)3+3
(0,0)3+5
0
(2,1)4+2
0
1
(2,0)5+3
2
(2,2)5+1
(2,1)6+2
(2,3)*6+0
1
2
3
(0,1)
(0,0)1+5
(1,0)2+4
(2,0) 3+3
(1,0)4+4
(0,2)1+3
(0,1)2+4
(0,1)2+4
(0,3)2+2
(0,2)3+3
(0,0)3+5
(0,1)4+4
(2,1)4+2
0
(2,0)5+3
0
(2,2)5+1
1
2
(2,1)6+2
(2,3)*6+0
1
2
(0,3)4+2
3
(0,2)5+3
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
70
75
Lugoj
Mehadia
142
211
Rimnicu
Timisoara
Urziceni
85
Pitesti
101
146
138
Aplique A*
98
BUCHAREST
90
Giurgiu
Craiova
Problema: ir de Sibiu a Bucarest
Evite devolverse
Vaslui
Fagaras
99
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
Sibiu
Rimnicu
f=80+193
f=273
Fagaras
f=99+178
f=277
Arad
Oradea
f=140+366 f=151+380
f=506
f=531
Búsqueda informada
Sibiu
Rimnicu
f=80+193
f=273
Craiova
f=226+160
f=386
Fagaras
f=99+178
f=277
Pitesti
f=177+98
f=275
Arad
Oradea
f=140+366 f=151+380
f=506
f=531
Búsqueda informada
Sibiu
Rimnicu
f=80+193
f=273
Craiova
f=226+160
f=386
Craiova
f=315+160
f=475
Fagaras
f=99+178
f=277
Pitesti
f=177+98
f=275
Bucarest
f=278+0
f=278
Arad
Oradea
f=140+366 f=151+380
f=506
f=531
Búsqueda informada
Sibiu
Rimnicu
f=80+193
f=273
Craiova
f=226+160
f=386
Craiova
f=315+160
f=475
Fagaras
f=99+178
f=277
Pitesti
f=177+98
f=275
Bucarest
f=278+0
f=278
Arad
Oradea
f=140+366 f=151+380
f=506
f=531
Bucarest
f=310+0
f=310
Búsqueda informada
Sibiu
Rimnicu
f=80+193
f=273
Craiova
f=226+160
f=386
Craiova
f=315+160
f=475
Fagaras
f=99+178
f=277
Pitesti
f=177+98
f=275
Bucarest*
f=278+0
f=278
Arad
Oradea
f=140+366 f=151+380
f=506
f=531
Bucarest
f=310+0
f=310
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
70
Lugoj
Mehadia
75
Dobreta
142
211
Rimnicu
Timisoara
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
98
BUCHAREST
90
Hirsova
86
Giurgiu
Craiova
La solución obtenida es
SibiuRimnicuPitestiBucarest que tiene
costo 278 y es la óptima
Eforie
Búsqueda informada
Aplicar A*
El ratón inteligente.
0
0
- Llegar a una casilla libre cuesta 1
1
- Llegar a una casilla donde hay gato
cuesta 5
2
- Llegar a una casilla donde hay
ratonera cuesta 3
4
Evite devolverse
Compare el resultado con Avara
3
1
2
(0,2)
(0,1) 3+4
(1,2) 1+4
0
0
1
2
3
4
1
2
(0,2)
(0,1) 3+4
(1,2) 1+4
(1,1) 6+3
(2,2)2+3
(2,1)7+2
0
0
1
2
3
4
1
2
(3,2)5+2
(3,1)10+1 (4,2)10+1
(0,2)
(0,1) 3+4
(1,2) 1+4
(0,0)4+5
(1,1) 8+3
(1,1) 6+3
(1,0)5+4
(1,1) 10+3
(2,1)7+2
(2,0)6+3
0
0
(2,1) 11+2
(2,2)2+3
(3,0) 7+2
(4,0)8+1
*
(4,1)9+0
(3,1)12+1
1
2
3
4
1
2
(3,2)5+2
(3,1)10+1 (4,2)10+1
Búsqueda informada
Aplique A* para ir de Iasi a Fagaras
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
Timisoara
97
70
75
Lugoj
Mehadia
142
211
Rimnicu
Vilcea
111
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
Craiova
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Distancia en
línea recta a
Fagaras:
Bucarest 185
Fagaras
0
Giurgiu
182
Iasi
160
Hirsova
190
Pitesti
170
Neamt
150
Urziceni 178
Vaslui
170
Búsqueda informada
• Aplicar A*
0
1
2 3
4
5
6
0
1
2
3
4
5
M
Búsqueda informada
Aplicar A*
Meta:
1
2
3
4
5
Operadores
• I(x,y). Intercambiar los símbolos en las posiciones X y Y.
Estos símbolos debe estar adyacentes. Se pueden hacer
intercambios con la casilla vacía. Costo 1.
• S(x). Saltar, permite que el símbolo en la casilla x llegue a la
casilla vacía. Costo 1.
I(1,2)
1+2
I(2,3)
1+2
I(3,4)
1+2
I(4,5)
S(1)
1+2
1+3
S(5)
1+3
I(1,2)
1+2
I(2,3)
1+2
I(1,2)
2+2
I(2,3)
2+3
I(3,4)
I(4,5)
1+2
I(3,4)
2+2
S(1)
1+2
1+3
I(4,5)
S(1)
2+2
2+2
S(5)
1+3
S(5)
2+3
I(1,2)
1+2
I(2,3)
1+2
I(1,2)
2+2
I(1,2)
2+2
I(3,4)
1+2
I(2,3)
2+3
I(2,3)
2+2
I(4,5)
I(3,4)
2+2
I(3,4)
2+1
S(1)
1+2
1+3
I(4,5)
S(1)
2+2
2+2
I(4,5)
2+2
S(5)
S(4)
2+1
1+3
S(5)
2+3
S(5)
2+3
I(1,2)
1+2
I(2,3)
1+2
I(1,2)
2+2
2+3
I(1,2)
3+1
I(2,3)
2+2
I(2,3)
3+0
I(4,5)
1+2
I(2,3)
I(1,2)
2+2
I(3,4)
I(3,4)
2+2
I(3,4)
2+1
I(3,4)
3+2
S(1)
1+2
1+3
I(4,5)
S(1)
2+2
2+2
I(4,5)
2+2
I(4,5)
3+1
S(5)
S(4)
2+1
S(4)
3+2
1+3
S(5)
2+3
S(5)
2+3
S(5)
3+2
I(1,2)
1+2
I(2,3)
1+2
I(1,2)
2+2
2+3
I(1,2)
3+1
I(2,3)
2+2
I(2,3)
3+0
I(4,5)
1+2
I(2,3)
I(1,2)
2+2
I(3,4)
I(3,4)
2+2
I(3,4)
2+1
I(3,4)
3+2
S(1)
1+2
1+3
I(4,5)
S(1)
2+2
2+2
I(4,5)
2+2
I(4,5)
3+1
S(5)
S(4)
2+1
S(4)
3+2
1+3
S(5)
2+3
S(5)
2+3
S(5)
3+2
Búsqueda informada
Implementación
• Se puede implementar considerando la lista de nodos a
expandir como una cola de prioridad, donde la prioridad
es el valor de f(n) y se selecciona aquel con menor
prioridad
Búsqueda informada
Algoritmo A*
• La estrategia es completa y óptima si se cumple que la
heurística h(n) sea admisible
Búsqueda informada
• Una heurística es admisible si nunca asigna un valor
mayor al real, es decir, se cumple que
h(n)
costo_real(n)
• Las heurísticas admisibles se conocen como heurísticas
optimistas
Búsqueda informada
h=2. ¿Qué significa el valor
de la heurística?
1
2
4
5
6
7
8
3
Búsqueda informada
h=2. Estima que en 2 movimientos
puede encontrar una solución
1
2
4
5
6
7
8
3
¿h(n)
costo_real(n)?
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
70
75
Lugoj
Mehadia
142
211
Rimnicu
Timisoara
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Craiova
¿La distancia en línea recta es admisible?
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
70
75
Lugoj
Mehadia
142
211
Rimnicu
Timisoara
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Craiova
¿La distancia en línea recta es admisible?
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
70
75
Lugoj
Mehadia
142
211
Rimnicu
Timisoara
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
Craiova
La heurística es menor al valor real
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
• Una heurística es admisible si nunca asigna un valor
mayor al real, es decir, se cumple que
h(n)
costo_real(n)
Búsqueda informada
• Una heurística es admisible si nunca asigna un valor
mayor al real
-Construya el árbol de búsqueda para ir de Sibiu a
Bucarest utilizando h1(n)=distancia en línea recta
-Construya el árbol de búsqueda para ir de Sibiu a
Bucarest utilizando h2(n)=distancia en línea recta*2
Evite devolverse
Búsqueda informada
Neamt
87
Iasi
92
Sibiu
80
Vaslui
Fagaras
99
142
211
Urziceni
Rimnicu
97
85
Pitesti
101
146
138
Craiova
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
• h1(n)=distancia en línea recta
Sibiu
Fagaras
f=99+178
f=277
Rimnicu
f=80+193
f=273
Craiova
f=226+160
f=386
Craiova
f=315+160
f=475
Pitesti
f=177+98
f=275
Bucarest*
f=278+0
f=278
Bucarest
f=310+0
f=310
Búsqueda informada
• Una heurística es admisible si nunca asigna un valor
mayor al real
-Construya el árbol de búsqueda para ir de Sibiu a
Bucarest utilizando h1(n)=distancia en línea recta
-Construya el árbol de búsqueda para ir de Sibiu a
Bucarest utilizando h2(n)=distancia en línea recta*2
Evite devolverse
Búsqueda informada
Neamt
87
Iasi
92
Sibiu
80
Vaslui
Fagaras
99
142
211
Urziceni
Rimnicu
97
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Craiova
h2(n)=h1(n)*2=386, no es admisible
Distancia en
línea recta a
Bucarest*2:
Arad
732
Bucarest 0
Craiova
320
Dobreta 484
Eforie
322
Fagaras
356
Giurgiu
154
Hirsova
302
Iasi
452
Lugoj
488
Mehadia 482
Neamt
468
Oradea
760
Pitesti
196
Rimnicu
386
Sibiu
506
Timisoara 658
Urziceni 160
Vaslui
398
Zerind
748
Búsqueda informada
• h2(n)=distancia en línea recta*2
Sibiu
Rimnicu
Fagaras
Búsqueda informada
• h2(n)=distancia en línea recta*2
Sibiu
Rimnicu
f=80+386
f=466
Fagaras
f=99+356
f=455
Bucarest*
f=310+0
f=310
Búsqueda informada
• h(n): número de placas en la posición incorrecta
(incluyendo la placa vacía)
• Cada movimiento de la placa vacía cuesta 1
1
2
3
4
5
6
7
8
¿Es h(n) admisible?
Búsqueda informada
• h(n): número de placas en la posición incorrecta
(incluyendo la placa vacía)
• Cada movimiento de la placa vacía cuesta 1
1
2
3
4
5
6
7
8
h=2 pero el costo real es 1,
por lo tanto h no es admisible
Búsqueda informada
• h(n): número de placas en la posición incorrecta
(sin incluir la placa vacía)
es admisible
Búsqueda informada
Algoritmo A*
3m 3c L
0m 0c
<1m,1c>
2m 2c
1m 1c L
<0m,1c>
3m 2c
0m 1c L
• Cada viaje cuesta 1
• Indique si la heurística es admisible
<0m,2c>
3m 1c
0m 2c L
Búsqueda informada
Algoritmo A*
2m 2c
1m 1c L
3m 2c
0m 1c L
3m 1c
0m 2c L
3m 3c L
0m 0c
1m 1c L
2m 2c
Búsqueda informada
Algoritmo A*
2m 2c
1m 1c L
3m 2c
0m 1c L
3m 1c
0m 2c L
3m 3c L
0m 0c
1m 1c L
2m 2c
h=2 pero el valor real es 1,
por lo tanto la heurística
sobrestima el valor real.
No es admisible
Búsqueda informada
Diseño de heurísticas
• Los aros mágicos. Utilizando el operador
intercambio(a,b) que cambia de posición los números a y
b, colocar los cuatro números sobre cada aro de tal forma
que la suma sea 14. Cada intercambio cuesta 1
Búsqueda informada
Diseño de heurísticas
meta
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
Diseño de heurísticas
x x
x
x
meta
x
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
Diseño de heurísticas
x x
x
x
x
h(n) = cantidad de aros que no suman 14
meta
es admisible?
Búsqueda informada
Diseño de heurísticas
x x
x
x
x
h(n) = cantidad de aros que no suman 14
meta
?
Búsqueda informada
Diseño de heurísticas
x x
x
x
x
h(n) = cantidad de aros que no suman 14
meta
2
Búsqueda informada
Diseño de heurísticas
h(n) = cantidad de aros que no suman 14
meta
2
Se divide entre el mejor
avance posible en un solo paso
Búsqueda informada
Diseño de heurísticas
h(n) = cantidad de aros que no suman 14
meta
100
Búsqueda informada
Diseño de heurísticas
• El número 26. Utilizando el operador intercambio(a,b)
que cambia de posición los números a y b, colocar los
números de tal forma que sobre cada lado la suma sea 26
Búsqueda informada
Diseño de heurísticas
¿Cuál está más distante de la meta?
meta
¿Cómo lo sabe?
Búsqueda informada
Diseño de heurísticas
¿Cuál está más distante de la meta?
meta
¿Cómo lo sabe?
Búsqueda informada
Diseño de heurísticas
h(n) = cantidad de lados que no suman 26
meta
?
Búsqueda informada
Diseño de heurísticas
h(n) = cantidad de lados que no suman 26
meta
4
Búsqueda informada
Diseño de heurísticas
h(n) = cantidad de lados que no suman 26
meta
100
Búsqueda informada
• Completitud: si
• Complejidad temporal: número de nodos con una f(n)
más pequeña que el costo óptimo
• Complejidad espacial: número de nodos con una f(n)
más pequeña que el costo óptimo
• Solución óptima: si
Búsqueda informada
Heurísticas y desempeño
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
Lugoj
70
75
Mehadia
142
211
Rimnicu
Timisoara
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
98
BUCHAREST
90
Giurgiu
Craiova
Problema: ir de Sibiu a Bucarest
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Búsqueda informada
Sibiu
Rimnicu
f=80+193
f=273
Craiova
f=226+160
f=386
Craiova
f=315+160
f=475
Fagaras
f=99+178
f=277
Pitesti
f=177+98
f=275
Bucarest*
f=278+0
f=278
Arad
Oradea
f=140+366 f=151+380
f=506
f=531
Bucarest
f=310+0
f=310
Búsqueda informada
Neamt
87
Oradea
Zerind 71
Iasi
92
151
75
Sibiu
Arad
140
80
118
97
111
70
75
Lugoj
Mehadia
142
211
Rimnicu
Timisoara
Vaslui
Fagaras
99
Urziceni
85
Pitesti
101
146
138
Craiova
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Distancia
mínima a
Bucarest:
Arad
1
Bucarest 0
Craiova
1
Dobreta 1
Eforie
1
Fagaras
1
Giurgiu
1
Hirsova
1
Iasi
1
Lugoj
1
Mehadia 1
Neamt
1
Oradea
1
Pitesti
1
Rimnicu
1
Sibiu
1
Timisoara 1
Urziceni 1
Vaslui
1
Zerind
1
Búsqueda informada
Sibiu
Rimnicu
f=80+1
f=81
Fagaras
f=99+1
f=100
Craiova
f=226+1
f=227
Pitesti
f=177+1
f=178
...
Bucarest
f=310+0
f=310
Arad
f=140+1
f=141
...
Oradea
f=151+1
f=152
...
Búsqueda informada
Sibiu
Rimnicu
f=80+1
f=81
Fagaras
f=99+1
f=100
Craiova
f=226+1
f=227
Pitesti
f=177+1
f=178
...
Bucarest
f=310+0
f=310
Arad
f=140+1
f=141
...
Oradea
f=151+1
f=152
...
Búsqueda informada
Sibiu
Rimnicu
f=80+1
f=81
Fagaras
f=99+1
f=100
Craiova
f=226+1
f=227
Pitesti
f=177+1
f=178
...
Bucarest
f=310+0
f=310
Arad
f=140+1
f=141
...
Si los valores de la heurística son muy
pequeños, A* se vuelve como Costo uniforme
Oradea
f=151+1
f=152
...
Búsqueda informada
8-puzzle
7
4
3
1
2
3
2
5
6
4
5
6
8
7
8
1
h1(n): cantidad de piezas ubicadas en el lugar incorrecto
(sin incluir la placa vacía)
Búsqueda informada
8-puzzle
7
4
3
1
2
3
2
5
6
4
5
6
8
7
8
1
h1(n): 5
Búsqueda informada
8-puzzle
7
4
3
1
2
3
2
5
6
4
5
6
8
7
8
1
h1(n): 5
Realmente son muchos más que 5 movimientos
El valor estimado está muy por debajo del valor real
Búsqueda informada
8-puzzle
7
4
3
1
2
3
2
5
6
4
5
6
8
7
8
1
h2(n): suma de las distancias de Manhattan de cada pieza
a su posición correcta (sin incluir la placa vacía)
Búsqueda informada
8-puzzle
7
4
3
1
2
3
2
5
6
4
5
6
8
7
8
1
h2(n): 2+2+0+2+0+0+2+1=9
Búsqueda informada
8-puzzle
h1(n): cantidad de piezas ubicadas en el lugar incorrecto
h2(n): suma de la distancias horizontales y verticales que
separan a las placas de las posiciones meta (excluyendo
la vacía). Distancia de Manhattan
Búsqueda informada
7
4
3
2
5
6
1
7
4
2
1
5
f=?
8
3
7
4
3
7
4
3
6
2
5
6
2
5
6
1
8
1
8
8
f=?
f=?
Búsqueda informada
7
4
3
2
5
6
1
7
4
2
1
5
8
3
7
4
3
7
4
3
6
2
5
6
2
5
6
1
8
1
8
8
f=1+(2+2+2+1+2+1)
f=11
f=1+(3+2+2+2+1)
f=11
f=1+(2+2+2+2)
f=9
Búsqueda informada
Heurísticas y desempeño
f=7
f=4
f=5
meta
f=3
Búsqueda informada
Heurísticas y desempeño
f=7
f=4
f=5
f=3
meta
f=6
Búsqueda informada
Heurísticas y desempeño
f=7
f=4
f=5
f=3
meta
f=6
f=6
Búsqueda informada
Heurísticas y desempeño
f=7
f=4
f=5
f=3
meta
f=6
f=6
Búsqueda informada
Heurísticas y desempeño
f=7
f=4
f=5
f=3
meta
f=6
¿Cuál es el factor de
ramificación del árbol?
f=6
Búsqueda informada
Heurísticas y desempeño
N=7
d=2
1 + b*+
f=7
(b*)2
f=4
f=5
f=3
meta
=7
f=6
f=6
Búsqueda informada
Heurísticas y desempeño
equivale a
f=7
f=4
f=5
f=3
meta
f=6
f=6
b* = 2
Búsqueda informada
Heurísticas y desempeño
Calcule b*
meta
Búsqueda informada
Heurísticas y desempeño
N = 13
d=2
1 + b*+ (b*)2 = 13
meta
Búsqueda informada
Heurísticas y desempeño
meta
b* = 3
Búsqueda informada
Heurísticas y desempeño
meta
Búsqueda informada
Heurísticas y desempeño
N = 12
d=3
1 + b*+(b*)2+(b*)3 = 12
meta
Búsqueda informada
Heurísticas y desempeño
• b* es el factor de ramificación de A* y se conoce como
factor de ramificación efectiva
• Si en total el árbol generado tiene N nodos (d es la
profundidad del árbol generado), se tendría que:
1 + b* + (b*)2 + . . . + (b*)d=N
Búsqueda informada
Heurísticas y desempeño
• b* es el factor de ramificación de A* y se conoce como
factor de ramificación efectiva
• Si en total el árbol generado tiene N nodos (d es la
profundidad del árbol generado), se tendría que:
1 + b* + (b*)2 + . . . + (b*)d=N
¿Qué valor para el factor de
ramificación cree que es más
eficiente en una búsqueda?
Búsqueda informada
Heurísticas y desempeño
• En una heurística bien diseñada, b* se aproxima a 1
Búsqueda informada
8-puzzle
h1(n): cantidad de piezas ubicadas en el lugar incorrecto
h2(n): suma de las distancias de Manhattan
Nodos expandidos
d
A*(h1)
Factor de ramificación
efectivo
A*(h2)
A*(h1)
A*(h2)
2
6
6
1.79
1.79
4
13
12
1.48
1.45
6
20
18
1.34
1.30
8
39
25
1.33
1.24
10
93
39
1.38
1.22
12
227
73
1.42
1.24
14
539
113
1.44
1.23
16
1,301
211
1.45
1.25
18
3,056
363
1.46
1.26
20
7,276
676
1.47
1.27
22
18,094
1,219
1.48
1.28
24
39,135
1,641
1.48
1.26
Búsqueda informada
Heurísticas y desempeño
• Si para todo nodo n, h2(n)
h1(n), se dice que h2 domina a h1
• En general, conviene más emplear una función heurística
con valores más altos, siempre y cuando no dé lugar a una
sobreestimación
Búsqueda informada
Neamt
87
Iasi
92
Sibiu
80
Vaslui
Fagaras
99
142
211
Urziceni
Rimnicu
97
85
Pitesti
101
146
138
Craiova
98
BUCHAREST
90
Giurgiu
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Distancia
mínima
Bucarest:
Arad
1
Bucarest 0
Craiova
1
Dobreta 1
Eforie
1
Fagaras
1
Giurgiu
1
Hirsova
1
Iasi
1
Lugoj
1
Mehadia 1
Neamt
1
Oradea
1
Pitesti
1
Rimnicu
1
Sibiu
1
Timisoara 1
Urziceni 1
Vaslui
1
Zerind
1
Búsqueda informada
Neamt
87
Iasi
92
Sibiu
80
Vaslui
Fagaras
99
142
211
Urziceni
Rimnicu
97
85
Pitesti
101
146
98
BUCHAREST
90
138
Giurgiu
Craiova
h1 domina a h2
Hirsova
86
Eforie
Distancia en
línea recta a
Bucarest:
Arad
366
Bucarest 0
Craiova
160
Dobreta 242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia 241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu
193
Sibiu
253
Timisoara 329
Urziceni 80
Vaslui
199
Zerind
374
Distancia
mínima
Bucarest:
Arad
1
Bucarest 0
Craiova
1
Dobreta 1
Eforie
1
Fagaras
1
Giurgiu
1
Hirsova
1
Iasi
1
Lugoj
1
Mehadia 1
Neamt
1
Oradea
1
Pitesti
1
Rimnicu
1
Sibiu
1
Timisoara 1
Urziceni 1
Vaslui
1
Zerind
1
Búsqueda informada
Heurísticas dominantes
h1(n) = cantidad de aros que no suman 14
meta
2
h2(n) = cantidad de aros que no suman 14
100
Búsqueda informada
Heurísticas dominantes
h1(n) = cantidad de aros que no suman 14
meta
2
h2(n) = cantidad de aros que no suman 14
h1 domina a h2
100
Búsqueda informada
Heurísticas dominantes
meta
h1(n) = cantidad de lados que no suman 26
4
h2(n) = cantidad de lados que no suman 26
5
Búsqueda informada
Heurísticas dominantes
meta
h1 domina a h2
h1(n) = cantidad de lados que no suman 26
4
h2(n) = cantidad de lados que no suman 26
5
Búsqueda informada
• Defina la heurística admisible más dominante
El triángulo mágico. Utilizando el operador intercambio(a,b) que
cambia de posición los números a y b, colocarlos de tal forma que la
suma sobre cada lado sea 20.
1
9
2
8
7
3
6
5
4
Búsqueda informada
5
4
5
1
9
2
4
6
7
3
meta
2
9
8
1
6
7
3
8
Búsqueda informada
5
4
5
1
9
2
4
6
7
3
2
9
8
1
6
7
3
8
meta
h(n) = cantidad de lados que no suman 20
?
Búsqueda informada
5
4
5
1
9
2
4
6
7
3
2
9
8
1
6
7
3
8
meta
h(n) = cantidad de lados que no suman 20
3
Búsqueda informada
ABSOLVER
Búsqueda informada
Simulación A* ejecutando 8-puzzle
• http://scalab.uc3m.es/~docweb/ia/transpas/8puzzle/Web/index.html
Búsqueda informada
Problema. El cuadrado mágico
La suma de cada fila, columna y las diagonales debe ser 15.
Los números en las celdas coloreadas no se pueden mover.
En cada avance del juego se puede realizar la operación
intercambiar(x,y) que permite intercambiar de posición
los números x y y. Cada avance tiene costo de una unidad.
7
1
8
2
6
5
9
3
4
Búsqueda informada
Problema. El cuadrado mágico
6
7
2
1
5
9
meta
8
3
4
7
1
2
8
6
5
9
3
4
6
8
2
1
5
9
7
3
4
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
Búsqueda informada
Problema. El cuadrado mágico
6
7
2
1
5
9
meta
8
3
4
x x
x 7
x 8
x 6
x
1
2
5
9
3
4
x
x
x 6
x 8
2
1
5
9
x
7
3
4
¿Cuál está más distante de la meta?
¿Cómo lo sabe?
x
Búsqueda informada
Problema. El cuadrado mágico
6
7
2
1
5
9
8
3
4
x x
x 7
x 8
x 6
meta
h(n)=
x
1
2
5
9
3
4
x
x
x 6
x 8
2
1
5
9
x
7
3
4
cantidad de filas, columnas y
diagonales que no suman 15
?
x
Búsqueda informada
Problema. El cuadrado mágico
6
7
2
1
5
9
8
3
4
x x
x 7
x 8
x 6
meta
h(n)=
x
1
2
5
9
3
4
x
x
x 6
x 8
2
1
5
9
x
7
3
4
cantidad de filas, columnas y
diagonales que no suman 15
5
x
Búsqueda informada
I(7,8)
I(7,2)
I(6,7)
7
1
8
2
5
3
6
9
4
I(2,8)
I(6,8)
Construya el árbol por
búsqueda avara
I(2,6)
Búsqueda informada
I(7,8)
I(7,2)
I(6,7)
7
1
8
2
5
3
6
9
4
I(6,8)
I(2,8)
I(2,6)
8
1
7
2
1
8
6
1
8
7
1
2
7
1
6
7
1
8
2
5
3
7
5
3
2
5
3
8
5
3
2
5
3
6
5
3
6
9
4
6
9
4
7
9
4
6
9
4
8
9
4
2
9
4
7/5
4/5
I(6,8)
I(2,6)
3/5
I(2,8)
7/5
7/5
I(6,7)
I(2,7)
3/5
I(7,8)
7
1
6
7
1
8
7
1
2
2
1
8
6
1
8
8
1
7
8
5
3
2
5
3
6
5
3
6
5
3
7
5
3
6
5
3
2
9
4
6
9
4
8
9
4
7
9
4
2
9
4
2
9
4
6/5
5/5
6/5
5/5
*
0
6/5
Descargar