Inteligencia Artificial Oscar Bedoya [email protected] 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 AradSibiuFagarasBucarest 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 AradSibiuFagarasBucarest 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 AradSibiuFagarasBucarest 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 AradSibiuRimnicuPitestiBucarest 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 SibiuRimnicuPitestiBucarest 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