SlideShare una empresa de Scribd logo
Inteligencia Artificial – Prácticas 2004/2005
3ra. Practica
Algoritmos de Búsqueda
Algoritmos
Básicos:
(búsqueda no
informada)
Algoritmos
Heurísticos:
(búsqueda
informada)
Búsqueda preferente por amplitud
Búsqueda preferente por profundidad
(en gral. la solución encontrada por estos
algoritmos no es óptima)
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmo A*
Greedy best-first search (busqueda GBFS)
Algoritmo de escalada (Hill-Climbing)
Algoritmos de Búsqueda
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda
Mapa de Rumania (ej. encontrar la ruta de Arad a Bucharest)
Oradea
Arad
Zerind
Timisoara
Lugoj
Dobreta
Mehadia
Craiova
Pitesti
Rimnicu
Sibiu Fagaras
Neamt
Iasi
Vaslui
Eforie
Hirsova
Urziceni
Bucharest
Giurgiu
71
75 151
140
118
111
70
75
120
138
146
97
99
80
211
142
87
92
85
86
98
90
101
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda
Profundidad Prioritaria (búsqueda NO INFORMADA)
Arad
ZerindTimisoara Sibiu
OradeaRimnicu Fagaras
Bucharest
LugojArad
Mehadia Timisoara
DobretaLugoj
CraiovaMehadia
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda (Profundidad Prioritaria)
1. Crear una lista con un solo elemento: el nodo raíz
2. Hasta que (el primer camino de la lista arribe al nodo
objetivo) o se arribe (a la lista vacía) HACER
(a) Extraer el primer camino de la lista
(b) Expandir el nodo final de este camino.
(c) Eliminar los ciclos de los caminos expandidos.
(d) Insertar estos nuevos caminos al INICIO de la lista.
3. FIN HACER
4. Si la lista está vacía, entonces NO hay solución
5. Sino el primer camino de la lista es la solución
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda (Profundidad Prioritaria)
(defun busqueda_profundidad_prior (problem_name)
(setq list-of-paths NIL)
(setq camino (list (problem-initial-state problem_name)))
(setq city (problem-goal problem_name))
(setq n 0)
(loop
(progn
(if (string-equal (first camino) city)(return (list n camino)) )
(setq llista (successors problem_name (first camino)) )
(setq novel-paths (inserta_sucesores llista camino))
(setq novel-path-without-loops (eliminate-loops novel-paths))
(setq list-of-paths (append novel-path-without-loops list-of-paths))
(setq camino (first list-of-paths))
(setq list-of-paths (rest list-of-paths))
(setq n (+ n 1))
) ) )
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda (Profundidad Prioritaria)
> (setq p (make-romanian-problem))
> (busqueda_profundidad_prior p)
> (5 (BUCHAREST FAGARAS SIBIU ORADEA ZERIND ARAD))
> (busqueda_amplitud_prior p)
> (11 (BUCHAREST FAGARAS SIBIU ARAD))
Oradea
Arad
Zerind
Pitesti
Rimnicu
Sibiu
Fagaras
Bucharest
7175 151
140
97
99
80
211
101
Algoritmos de Búsqueda
Preferente por lo Mejor – GBFS -(búsqueda INFORMADA)
Se escoge el nodo que parece ser el mejor
Reduce al mínimo el costo estimado para lograr una meta,
por ejemplo elegir el nodo más cercano a la meta.
La distancia a la meta se estima mediante una función
heurística h
h = distancia en línea recta entre el nodo n y la meta
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Arad
Pitesti
Rimnicu
Sibiu
Fagaras
Bucharest
140
97
99
80
211
101
Distancia a Bucharest
(en linea recta)
Sibiu: 253; Rimnicu: 193;
Fagaras: 178
Distancia a Bucharest (por carre-
tera) por: Rimnicu Fagaras
Sibiu: 278 310
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda (A*)
Algoritmo A*: Utilizando una función heurística
f(nodo actual) = g(camino recorrido) + h (nodo actual)
expande solamente el mejor de todos los caminos
g(camino recorrido): costo acumulado desde el nodo inicial
al nodo actual
h(nodo actual): estimación del costo del camino que queda por
recorrer (nodo actual al nodo objetivo)
A* (búsqueda INFORMADA)
Algoritmos de Búsqueda (A*)
1. Crear una lista con un solo elemento: el nodo raíz
2. Hasta que (el primer camino de la lista arribe al nodo
objetivo) o se arribe (a la lista vacía) HACER
(a) Extraer el primer camino de la lista
(b) Expandir el nodo final de este camino.
(c) Eliminar los ciclos de los caminos expandidos.
(d) Insertar estos nuevos caminos en la lista.
(e) Ordenar la lista resultante de menor a mayor f
3. FIN HACER
4. Si la lista está vacía, entonces NO hay solución
5. Sino el primer camino de la lista es la solución
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
Algoritmos de Búsqueda (A*)
Heurísticas dominantes: dadas dos funciones heurísticas
admisibles: hi, hj, diremos que la función hi domina a hj si:
d
bbbN *)(......*)(*1 2
++++=
Factor de ramificación efectiva b*: si la cantidad total de
nodos expandida por A* para un problema determinado es
N, y la profundidad de la solución es d, entonces b* es el
factor de ramificación que deberá tener un árbol uniforme
de profundidad d para que pueda contener N nodos:
nhh njni ∀≥ )()(
Inteligencia Artificial – 3ra Práctica - Curso2004/2005
1. Implementar el método de búsqueda A* para encontrar la trayectoria
óptima. El argumento de entrada debe de ser una estructura del tipo
route-finding-problem y debe retornar el número de iteraciones
utilizadas para encontrar el camino óptimo, el costo del camino
encontrado y las ciudades que lo componen:
> (defun ASTAR (problem)
> ………………….)
> retorna (n cost camino)
2. Implementar el método de búsqueda por amplitud prioritaria utilizando
el ejemplo dado (profundidad prioritaria).
3. Utilizando Dobreta como ciudad inicial (initial-state) y Fagaras como
ciudad destino (goal) presentar los resultados obtenidos por cada uno de
los métodos; esto es: lista de ciudades que componen cada camino,
costo en kilómetros y número de iteraciones. Note que el código dado
como ejemplo (profundidad prioritaria) no calcula el costo en kilómetros.
4. Explicar las ventajas y desventajas de cada uno de los métodos.
3ra. Práctica (entrega antes del 29 de noviembre)
Inteligencia Artificial – 3ra Práctica - Curso2004/2005

Más contenido relacionado

La actualidad más candente

Busquedas Heuristicas vs Busquedas Ciegas
Busquedas Heuristicas vs Busquedas CiegasBusquedas Heuristicas vs Busquedas Ciegas
Busquedas Heuristicas vs Busquedas Ciegas
luisilva18
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
TAtiizz Villalobos
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialJuank Grifin
 
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
Luis Alfredo Moctezuma Pascual
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
jose_torres123
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
compumet sac
 
Recursividad
RecursividadRecursividad
Recursividad
TAtiizz Villalobos
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
José Antonio Sandoval Acosta
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
José Antonio Sandoval Acosta
 
Tipos de búsqueda en inteligencia artificial
Tipos de búsqueda  en inteligencia artificialTipos de búsqueda  en inteligencia artificial
Tipos de búsqueda en inteligencia artificialHenry Cambal
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Héctor Estigarribia
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
REDES NEURONALES ADALINE
REDES NEURONALES ADALINEREDES NEURONALES ADALINE
REDES NEURONALES ADALINE
ESCOM
 
Quicksort
QuicksortQuicksort
Quicksort
Rodolfo Delgado
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
Angel Vázquez Patiño
 
Busquedas a Heuristicas
Busquedas a HeuristicasBusquedas a Heuristicas
Busquedas a Heuristicas
Bryan Coronel
 
Io 3ra modelo de transporte
Io 3ra modelo de transporteIo 3ra modelo de transporte
Io 3ra modelo de transporte
Augusto Javes Sanchez
 
Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
Benjamín Joaquín Martínez
 

La actualidad más candente (20)

Busquedas Heuristicas vs Busquedas Ciegas
Busquedas Heuristicas vs Busquedas CiegasBusquedas Heuristicas vs Busquedas Ciegas
Busquedas Heuristicas vs Busquedas Ciegas
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Tipos de búsqueda en inteligencia artificial
Tipos de búsqueda  en inteligencia artificialTipos de búsqueda  en inteligencia artificial
Tipos de búsqueda en inteligencia artificial
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
 
Problemas redes
Problemas redesProblemas redes
Problemas redes
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
REDES NEURONALES ADALINE
REDES NEURONALES ADALINEREDES NEURONALES ADALINE
REDES NEURONALES ADALINE
 
Quicksort
QuicksortQuicksort
Quicksort
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Busquedas a Heuristicas
Busquedas a HeuristicasBusquedas a Heuristicas
Busquedas a Heuristicas
 
Io 3ra modelo de transporte
Io 3ra modelo de transporteIo 3ra modelo de transporte
Io 3ra modelo de transporte
 
Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
 

Destacado

Búsqueda no informada - Backtracking/Hacia atrás
Búsqueda no informada - Backtracking/Hacia atrásBúsqueda no informada - Backtracking/Hacia atrás
Búsqueda no informada - Backtracking/Hacia atrás
Laura Del Pino Díaz
 
Redes Neuronales Monocapa con Conexiones en Cascada PERCEPTRON
Redes Neuronales Monocapa con Conexiones en Cascada PERCEPTRONRedes Neuronales Monocapa con Conexiones en Cascada PERCEPTRON
Redes Neuronales Monocapa con Conexiones en Cascada PERCEPTRON
ESCOM
 
SCSJ3553 - Artificial Intelligence Final Exam paper - UTM
SCSJ3553 - Artificial Intelligence Final Exam paper - UTMSCSJ3553 - Artificial Intelligence Final Exam paper - UTM
SCSJ3553 - Artificial Intelligence Final Exam paper - UTM
Abdul Khaliq
 
Problemas Linealmente Separables
Problemas Linealmente SeparablesProblemas Linealmente Separables
Problemas Linealmente Separablesmbmora
 
KBS Lecture Notes
KBS Lecture NotesKBS Lecture Notes
KBS Lecture Notesbutest
 
UHB 3022 / ULAB 3122 - Final Exam Paper
 UHB 3022 / ULAB 3122 - Final Exam Paper UHB 3022 / ULAB 3122 - Final Exam Paper
UHB 3022 / ULAB 3122 - Final Exam Paper
Abdul Khaliq
 
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoPerceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Andrea Lezcano
 

Destacado (8)

Búsqueda no informada - Backtracking/Hacia atrás
Búsqueda no informada - Backtracking/Hacia atrásBúsqueda no informada - Backtracking/Hacia atrás
Búsqueda no informada - Backtracking/Hacia atrás
 
Redes Neuronales Monocapa con Conexiones en Cascada PERCEPTRON
Redes Neuronales Monocapa con Conexiones en Cascada PERCEPTRONRedes Neuronales Monocapa con Conexiones en Cascada PERCEPTRON
Redes Neuronales Monocapa con Conexiones en Cascada PERCEPTRON
 
AI Lesson 04
AI Lesson 04AI Lesson 04
AI Lesson 04
 
SCSJ3553 - Artificial Intelligence Final Exam paper - UTM
SCSJ3553 - Artificial Intelligence Final Exam paper - UTMSCSJ3553 - Artificial Intelligence Final Exam paper - UTM
SCSJ3553 - Artificial Intelligence Final Exam paper - UTM
 
Problemas Linealmente Separables
Problemas Linealmente SeparablesProblemas Linealmente Separables
Problemas Linealmente Separables
 
KBS Lecture Notes
KBS Lecture NotesKBS Lecture Notes
KBS Lecture Notes
 
UHB 3022 / ULAB 3122 - Final Exam Paper
 UHB 3022 / ULAB 3122 - Final Exam Paper UHB 3022 / ULAB 3122 - Final Exam Paper
UHB 3022 / ULAB 3122 - Final Exam Paper
 
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoPerceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
 

Más de Jonathan Sarmiento

Influencia del internet en el siglo xxi
Influencia del internet en el siglo xxiInfluencia del internet en el siglo xxi
Influencia del internet en el siglo xxi
Jonathan Sarmiento
 
Sistema de coordenadas
Sistema de coordenadasSistema de coordenadas
Sistema de coordenadas
Jonathan Sarmiento
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizaje
Jonathan Sarmiento
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizaje
Jonathan Sarmiento
 
Francisco rodríguez inteligencia artificial
Francisco rodríguez   inteligencia artificialFrancisco rodríguez   inteligencia artificial
Francisco rodríguez inteligencia artificial
Jonathan Sarmiento
 
La evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectosLa evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectosJonathan Sarmiento
 

Más de Jonathan Sarmiento (8)

Influencia del internet en el siglo xxi
Influencia del internet en el siglo xxiInfluencia del internet en el siglo xxi
Influencia del internet en el siglo xxi
 
Sistema de coordenadas
Sistema de coordenadasSistema de coordenadas
Sistema de coordenadas
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizaje
 
Documentacion
DocumentacionDocumentacion
Documentacion
 
Formato hoja vida
Formato hoja vidaFormato hoja vida
Formato hoja vida
 
Curso de tecnicas de aprendizaje
Curso de tecnicas de aprendizajeCurso de tecnicas de aprendizaje
Curso de tecnicas de aprendizaje
 
Francisco rodríguez inteligencia artificial
Francisco rodríguez   inteligencia artificialFrancisco rodríguez   inteligencia artificial
Francisco rodríguez inteligencia artificial
 
La evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectosLa evaluacion en_la_gestion_de_proyectos
La evaluacion en_la_gestion_de_proyectos
 

Tercera practica

  • 1. Inteligencia Artificial – Prácticas 2004/2005 3ra. Practica Algoritmos de Búsqueda
  • 2. Algoritmos Básicos: (búsqueda no informada) Algoritmos Heurísticos: (búsqueda informada) Búsqueda preferente por amplitud Búsqueda preferente por profundidad (en gral. la solución encontrada por estos algoritmos no es óptima) Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmo A* Greedy best-first search (busqueda GBFS) Algoritmo de escalada (Hill-Climbing) Algoritmos de Búsqueda
  • 3. Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmos de Búsqueda Mapa de Rumania (ej. encontrar la ruta de Arad a Bucharest) Oradea Arad Zerind Timisoara Lugoj Dobreta Mehadia Craiova Pitesti Rimnicu Sibiu Fagaras Neamt Iasi Vaslui Eforie Hirsova Urziceni Bucharest Giurgiu 71 75 151 140 118 111 70 75 120 138 146 97 99 80 211 142 87 92 85 86 98 90 101
  • 4. Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmos de Búsqueda Profundidad Prioritaria (búsqueda NO INFORMADA) Arad ZerindTimisoara Sibiu OradeaRimnicu Fagaras Bucharest LugojArad Mehadia Timisoara DobretaLugoj CraiovaMehadia
  • 5. Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmos de Búsqueda (Profundidad Prioritaria) 1. Crear una lista con un solo elemento: el nodo raíz 2. Hasta que (el primer camino de la lista arribe al nodo objetivo) o se arribe (a la lista vacía) HACER (a) Extraer el primer camino de la lista (b) Expandir el nodo final de este camino. (c) Eliminar los ciclos de los caminos expandidos. (d) Insertar estos nuevos caminos al INICIO de la lista. 3. FIN HACER 4. Si la lista está vacía, entonces NO hay solución 5. Sino el primer camino de la lista es la solución
  • 6. Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmos de Búsqueda (Profundidad Prioritaria) (defun busqueda_profundidad_prior (problem_name) (setq list-of-paths NIL) (setq camino (list (problem-initial-state problem_name))) (setq city (problem-goal problem_name)) (setq n 0) (loop (progn (if (string-equal (first camino) city)(return (list n camino)) ) (setq llista (successors problem_name (first camino)) ) (setq novel-paths (inserta_sucesores llista camino)) (setq novel-path-without-loops (eliminate-loops novel-paths)) (setq list-of-paths (append novel-path-without-loops list-of-paths)) (setq camino (first list-of-paths)) (setq list-of-paths (rest list-of-paths)) (setq n (+ n 1)) ) ) )
  • 7. Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmos de Búsqueda (Profundidad Prioritaria) > (setq p (make-romanian-problem)) > (busqueda_profundidad_prior p) > (5 (BUCHAREST FAGARAS SIBIU ORADEA ZERIND ARAD)) > (busqueda_amplitud_prior p) > (11 (BUCHAREST FAGARAS SIBIU ARAD)) Oradea Arad Zerind Pitesti Rimnicu Sibiu Fagaras Bucharest 7175 151 140 97 99 80 211 101
  • 8. Algoritmos de Búsqueda Preferente por lo Mejor – GBFS -(búsqueda INFORMADA) Se escoge el nodo que parece ser el mejor Reduce al mínimo el costo estimado para lograr una meta, por ejemplo elegir el nodo más cercano a la meta. La distancia a la meta se estima mediante una función heurística h h = distancia en línea recta entre el nodo n y la meta Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Arad Pitesti Rimnicu Sibiu Fagaras Bucharest 140 97 99 80 211 101 Distancia a Bucharest (en linea recta) Sibiu: 253; Rimnicu: 193; Fagaras: 178 Distancia a Bucharest (por carre- tera) por: Rimnicu Fagaras Sibiu: 278 310
  • 9. Inteligencia Artificial – 3ra Práctica - Curso2004/2005 Algoritmos de Búsqueda (A*) Algoritmo A*: Utilizando una función heurística f(nodo actual) = g(camino recorrido) + h (nodo actual) expande solamente el mejor de todos los caminos g(camino recorrido): costo acumulado desde el nodo inicial al nodo actual h(nodo actual): estimación del costo del camino que queda por recorrer (nodo actual al nodo objetivo) A* (búsqueda INFORMADA)
  • 10. Algoritmos de Búsqueda (A*) 1. Crear una lista con un solo elemento: el nodo raíz 2. Hasta que (el primer camino de la lista arribe al nodo objetivo) o se arribe (a la lista vacía) HACER (a) Extraer el primer camino de la lista (b) Expandir el nodo final de este camino. (c) Eliminar los ciclos de los caminos expandidos. (d) Insertar estos nuevos caminos en la lista. (e) Ordenar la lista resultante de menor a mayor f 3. FIN HACER 4. Si la lista está vacía, entonces NO hay solución 5. Sino el primer camino de la lista es la solución Inteligencia Artificial – 3ra Práctica - Curso2004/2005
  • 11. Algoritmos de Búsqueda (A*) Heurísticas dominantes: dadas dos funciones heurísticas admisibles: hi, hj, diremos que la función hi domina a hj si: d bbbN *)(......*)(*1 2 ++++= Factor de ramificación efectiva b*: si la cantidad total de nodos expandida por A* para un problema determinado es N, y la profundidad de la solución es d, entonces b* es el factor de ramificación que deberá tener un árbol uniforme de profundidad d para que pueda contener N nodos: nhh njni ∀≥ )()( Inteligencia Artificial – 3ra Práctica - Curso2004/2005
  • 12. 1. Implementar el método de búsqueda A* para encontrar la trayectoria óptima. El argumento de entrada debe de ser una estructura del tipo route-finding-problem y debe retornar el número de iteraciones utilizadas para encontrar el camino óptimo, el costo del camino encontrado y las ciudades que lo componen: > (defun ASTAR (problem) > ………………….) > retorna (n cost camino) 2. Implementar el método de búsqueda por amplitud prioritaria utilizando el ejemplo dado (profundidad prioritaria). 3. Utilizando Dobreta como ciudad inicial (initial-state) y Fagaras como ciudad destino (goal) presentar los resultados obtenidos por cada uno de los métodos; esto es: lista de ciudades que componen cada camino, costo en kilómetros y número de iteraciones. Note que el código dado como ejemplo (profundidad prioritaria) no calcula el costo en kilómetros. 4. Explicar las ventajas y desventajas de cada uno de los métodos. 3ra. Práctica (entrega antes del 29 de noviembre) Inteligencia Artificial – 3ra Práctica - Curso2004/2005