Inteligencia artificial

Slides:



Advertisements
Presentaciones similares
Ing. Victor Jaime Polo Romero
Advertisements

Branch-and-bound Search
ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
INTELIGENCIA ARTIFICIAL
Damas Chinas Condori Mollehuara Miguel Montenegro Rubio Willy
Inteligencia Artificial
Diseño y análisis de algoritmos
Inteligencia Artificial
Inteligenica Artificial I Alejandro Permingeat Inteligencia Artificial de Russell y Norving 1° edición 1996 Parte II Capítulo V.
REDES SEMANTICAS Y BUSQUEDAS
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
Grupo 4 Matías Melgar Pablo Carbonell
Inteligencia Artificial Búsqueda informada y exploración
La regla de la esquina noroeste
Métodos básicos de Búsqueda
Investigación de Operaciones II
Operaciones sobre un árbol
Investigación de Operaciones II
Tema 4 Árboles. Conceptos Generales..
ESTRUCTURAS DE DATOS AVANZADAS
Cap 4 Búsqueda Heurística
Búsqueda Informada Heurísticas.
Algoritmos Aleatorizados
Inteligencia Artificial Búsqueda informada y exploración
Solución de problemas por búsqueda inteligente
METODO DE BUSQUEDA ALGORITMO DE COSTO UNIFORME
Inteligencia Artificial Resolver problemas mediante búsqueda
Tema Nº4.
Inteligencia Artificial Resolver problemas mediante búsqueda
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Temas importantes para el desarrollo de la segunda parte del TPE
Universidad de los Andes-CODENSA
Árboles, montículos y grafos Cola de prioridades, montículos
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
Ordenamiento, Heapsort y Colas de prioridad
Capítulo 4 BUSQUEDA INFORMADA.
Optimización, Búsqueda Heurística
Agentes de resoluciones d problemas Parte I. Un agente puede adoptar una meta o un propósito para satisfacer.
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
A LGORITMO DE BÚSQUEDA POR COSTO UNIFORME Dorian López.
Diseño y análisis de algoritmos
Parte II. Algorítmica. 3. Algoritmos voraces.
Algoritmo Poda Alpha-Beta
Surge cuando se necesita un modelo costo-efectividad que permita transportar ciertos bienes desde un lugar de origen a un destino que necesita aquellos.
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Diseño y análisis de algoritmos
Tema 13: Ramificación y poda
INTRODUCCIÓN A JUEGOS (BÚSQUEDA CON ADVERSARIOS)
Búsqueda en profundidad Se elige la primera alternativa (por convención la de más a la izquierda) y se sigue hacia abajo hasta alcanzar la meta o hasta.
Diseño y análisis de algoritmos
Teoría de lenguajes y compiladores
Optimización Combinatoria y Grafos Búsqueda Tabú
ANALISIS DE REDES UNIDAD PROCEDIMIENTO DE OPTIMIZACION
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
Toribio Sarmiento Miguel Sesarego Cruz Rosmery. BUSQUEDA DE LA SOLUCION EN UN ESPACIO ESTADO BUSQUEDA SISTEMATICA O CIEGA EN PROFUNDIDAD EN AMPLITUD NO.
VILLAHERMOSA, TAB. A 11 OCTUBRE DEL 2011 ING. SISTEMAS MATERIA: INVESTIGACION DE OPERACIONES CATEDRATICO: I.I ZINATH JAVIER GERONIMO TEMA: ANÁLISIS DE.
Matemáticas Discretas MISTI
Búsqueda de ascensión de colinas (BLv)
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
M.C. Meliza Contreras González
IV. Métodos de Búsqueda Estudiaremos los métodos de búsqueda para resolver problema de la IA.
Transcripción de la presentación:

Inteligencia artificial Métodos de Búsqueda Ciega e Informados Inteligencia artificial

Temas Métodos de Búsqueda Ciega Métodos Informados Amplitud Profundidad No determinístico Métodos Informados La función Evaluadora Ascenso a la Colina Primero el Mejor A* Ramificación y Acotación

Métodos de búsqueda ciega Son procedimientos de búsqueda del estado meta sobre el árbol de estado. Sólo consideran la relación de precedencia entre estados. No se considera información de beneficio o utilidad de pasar de un estado a otro.

Métodos de búsqueda ciega Implementación con Listas: LE  Lista de nodos en espera de proceso LV  Lista de nodos ya procesados

Métodos de búsqueda ciega: búsqueda en amplitud El procedimiento consiste en: Iniciar en el nodo raíz. Mientras que el nodo no corresponde al nodo meta Generar nodos sucesores no redundantes a este Terminar si se encontró el estado meta o no hay más nodos para verificar.

Métodos de búsqueda ciega: búsqueda en amplitud Implementación con listas: Se compara el primer elemento de LE Se registran los sucesores al final de LE P Q R Q R Hijos(P)

Métodos de búsqueda ciega: búsqueda en amplitud Algoritmo: Inicio 1. LE := (Estado_Inicial); 2. LV:= (); Test de Parada 3. Si (LE = ()) entonces Escribir («No hay solución»), PARE; 4. LISTA := Primer (LE); 5. P := Ultimo (LISTA); 6. Si (P es meta) entonces Escribir («Solución: », P), PARE; Genera Sucesores 7. Adiciona_ultimo (P, LV); 8. Elimina_primer (LE); 9. Para (Nodos  (Hijos(P) - LV)) W_LISTA := LISTA; Adiciona_ultimo (Nodo, W_LISTA); Adiciona_ultimo(W_LISTA, LE); Fin_Para 10. Ir para 3

Métodos de búsqueda ciega: búsqueda en amplitud Ejemplo: Determine un camino para a-k

Métodos de búsqueda ciega: búsqueda en amplitud # LE P LV 1 ((a)) a () 2 ((a b) (a d) (a c)) b (a) 3 ((a d) (a c) (a b i) (a b h)) d (a b) 4 ((a c) (a b i) (a b h) (a d e)) c (a b d) 5 ((a b i) (a b h) (a d e) (a c f) (a c g)) i (a b d c) 6 ((a b h) (a d e) (a c f) (a c g)) h 7 ((a d e) (a c f) (a c g) (a b h k)) e (a b d c h) 8 ((a c f) (a c g) (a b h k) (a d e b)) f (a b d c h e) 9 ((a c g) (a b h k) (a d e b) (a c f j) g (a b d c h e f) 10 ((a b h k) (a d e b) (a c f j) k (a b d c h e f g) La ruta solución es a-b-h-k

Métodos de búsqueda ciega: Búsqueda en Profundidad Conceptos: Hoja Nodo del árbol que no tiene sucesores. Rama Camino que inicia en el nodo raíz y termina en un nodo hoja.

Métodos de búsqueda ciega: Búsqueda en Profundidad El procedimiento consiste en: Buscar por las ramas del árbol de estados. Mientras que en la rama no se encuentra el estado meta Generar nodos sucesores no redundantes a este Terminar si se encontró el estado meta o no hay más ramas para investigar.

Métodos de búsqueda ciega: búsqueda en profundidad Implementación con listas: Se compara el primer elemento de LE Se registran los sucesores al inicio de LE P Q R Hijos(P) Q R

Métodos de búsqueda ciega: búsqueda en profundidad Algoritmo: Inicio 1. LE := (Estado_Inicial); 2. LV:= (); Test de Parada 3. Si (LE = ()) entonces Escribir («No hay solución»), PARE; 4. LISTA := Primer (LE); 5. P := Ultimo (LISTA); 6. Si (P es meta) entonces Escribir («Solución: », P), PARE; Genera Sucesores 7. Adiciona_ultimo (P, LV); 8. Elimina_primer (LE); 9. Para (Nodos  (Hijos(P) - LV)) W_LISTA := LISTA; Adiciona_ultimo (Nodo, W_LISTA); Adiciona_primero (W_LISTA, LE); Fin_Para 10. Ir para 3

Métodos de búsqueda ciega: búsqueda en profundidad Ejemplo: Determine un camino para a-k

Métodos de búsqueda ciega: búsqueda en profundidad # LE P LV 1 ((a)) a () 2 ((a b) (a d) (a c)) b (a) 3 ((a b i) (a b h) (a d) (a c)) i (a b) 4 ((a b h) (a d) (a c)) h (a b i) 5 ((a b h k) (a d) (a c)) k (a b i h) La ruta solución es a-b-h-k

Métodos de búsqueda ciega: búsqueda No determinística El procedimiento consiste en seleccionar un nodo aleatoriamente de la lista LE. Los nodos sucesores pueden ser colocados tanto al inicio como el final.

Métodos de búsqueda ciega: búsqueda no determinista Algoritmo: Inicio 1. LE := (Estado_Inicial); 2. LV:= (); Test de Parada 3. Si (LE = ()) entonces Escribir («No hay solución»), PARE; 4. P := Aleatorio(LE); 5. Si (P es meta) entonces Escribir («Solución: », P), PARE; Genera Sucesores 6. Adiciona_ultimo (P, LV); 7. Elimina_Aleatorio(LE); 8. Adiciona_inicio (Hijos(P)-LV, LE); 9. Ir para 3

Métodos informados Se aplica un conocimiento al proceso de búsqueda para hacerlo más eficiente. El conocimiento esta dado por una función que estima lo deseable de expandir un nodo.

La función evaluadora Mapea cada nodo de búsqueda N a un número real f(N). Mide la utilidad de la información adicional asociado a cada estado. h(N)  Función Heurística, costo real del camino mínimo que une N y un nodo objetivo. g(N)  costo del camino de mínimo costo que une el nodo inicial y N. f(N)  costo del camino de mínimo costo que pasa por N, entre el nodo inicial y un nodo objetivo. f(N) = h(N)  búsqueda Primero el Mejor f(N) = g(N) + h(N)

Métodos informados de búsqueda: Ascenso a la colina Procedimiento semejante a la búsqueda en profundidad. La diferencia es que los nodos sucesores son ordenados del mejor al peor valor de su función de evaluación antes de adicionarse a la lista LE. Minimización  menor a mayor valor Maximización  mayor a menor valor

Implementación con listas: Métodos informados de búsqueda: Ascenso a la colina Implementación con listas: Se compara el primer elemento de LE Se registran los sucesores al inicio de LE luego de haberlos ordenado. P Q R Hijos(P) Q R

Métodos informados de búsqueda: Ascenso a la colina Algoritmo: 8. Elimina_primero (LE); Inicio 9. Hijos_diferentes := Hijos (P) – LV; 1. LE := (Estado_Inicial); 10. Ordena(Hijos_diferentes); 2. LV:= (); 11. Para (Nodo  Hijos_diferentes) Test de Parada 3. Si (LE = ()) entonces W_LISTA := LISTA; Escribir («No hay solución»), PARE; Adiciona_final(Nodo,W_LISTA); 4. LISTA := Primer o(LE); Adiciona_inicio(W_LISTA, LE); 5. P := Ultimo(LISTA); Fin_Para 6. Si (P es meta) entonces 12. Ir para 3 Escribir («Solución: », P), PARE; Genera Sucesores 7. Adiciona_ultimo (P, LV);

Métodos informados de búsqueda: Ascenso a la colina Ejemplo: Considerar el siguiente laberinto, en el cual se puede pasar desde una casilla a cualquiera de las posibles adyacentes (arriba, abajo, izquierda o derecha), salvo si hay una barrera entre ellas: Se trata de encontrar el camino más corto para ir desde la casilla I a la casilla F. A B C D E W M N G P Q R T I F

Métodos informados de búsqueda: Ascenso a la colina Función de evaluación: F(n) = Distancia Manhattan a la casilla F La ruta es I-Q-R-T-K-M-F # LE P LV 1 ((I)-4) (I-4) () 2 ((I Q)-3 (I W)-3 (I G)-5) (Q-3) (I) 3 ((I Q R)-2 (I Q P)-4 (I W)-3 (I G)-5) (R-2) (I Q) 4 ((I Q R T)-1 (I Q P)-4 (I W)-3 (I G)-5) (T-1) (I Q R) 5 ((I Q R T K)-2 (I Q P)-4 (I W)-3 (I G)-5) (K-2) (I Q R T) 6 ((I Q R T K M)-1 (I Q R T K W)-3 (I Q R T K C)-3 (I Q P)-4 (I W)-3 (I G)-5) (M-1) (I Q R T K) 7 ((I Q R T K M F)-0 (I Q R T K M N)-2 (I Q R T K M D)-2 (I Q R T K W)-3 (I Q R T K C)-3 (I Q P)-4 (I W)-3 (I G)-5) (F-0) (I Q R T K M)

Métodos informados de búsqueda: Primero el mejor En este procedimiento se ordenan los nodos después de insertarlos a LE. De esta manera el criterio de selección es dado por el nodo LE que presenta el «mejor» valor de la función de evaluación.

Métodos informados de búsqueda: Primero el mejor Implementación con listas: Se compara el primer elemento de LE Se registran los sucesores en LE. Se ordenan los elementos de LE. P Q R Hijos(P) Q R

Métodos informados de búsqueda: Primero el mejor Algoritmo: 8. Elimina_primero (LE); Inicio 9. Hijos_diferentes := Hijos (P) – LV; 1. LE := (Estado_Inicial); 10. Para (Nodo  Hijos_diferentes) 2. LV:= (); Test de Parada W_LISTA := LISTA; 3. Si (LE = ()) entonces Adiciona_final(Nodo,W_LISTA); Escribir («No hay solución»), PARE; Adiciona_inicio(W_LISTA, LE); 4. LISTA := Primer o(LE); Fin_Para 5. P := Ultimo(LISTA); 11. Ordena(LE); 6. Si (P es meta) entonces 12. Ir para 3 Escribir («Solución: », P), PARE; Genera Sucesores 7. Adiciona_ultimo (P, LV);

Métodos informados de búsqueda: Primero el mejor Ejemplo: Considerar el siguiente laberinto, en el cual se puede pasar desde una casilla a cualquiera de las posibles adyacentes (arriba, abajo, izquierda o derecha), salvo si hay una barrera entre ellas: Se trata de encontrar el camino más corto para ir desde la casilla I a la casilla F. A B C D E W M N G P Q R T I F

Métodos informados de búsqueda: Primero el mejor Función de evaluación: F(n) = Distancia Manhattan a la casilla F La ruta es I-Q-R-T-K-M-F # LE P LV 1 ((I)-4) (I-4) () 2 ((I Q)-3 (I W)-3 (I G)-5) (Q-3) (I) 3 ((I Q R)-2 (I W)-3 (I Q P)-4 (I G)-5) (R-2) (I Q) 4 ((I Q R T)-1 (I W)-3 (I Q P)-4 (I G)-5) (T-1) (I Q R) 5 ((I Q R T K)-2 (I W)-3 (I Q P)-4 (I G)-5) (K-2) (I Q R T) 6 ((I Q R T K M)-1 (I Q R T K C)-3 (I W)-3 (I Q R T K W)-3 (I Q P)-4 (I G)-5) (M-1) (I Q R T K) 7 ((I Q R T K M F)-0 (I Q R T K M D)-2 (I Q R T K M N)-2 (I Q R T K C)-3 (I W)-3 (I Q R T K W)-3 (I Q P)-4 (I G)-5) (F-0) (I Q R T K M)

Métodos informados de búsqueda: búsqueda a* Se considera la siguiente función de evaluación: f(N) = g(N) + h(N) donde: g(N) = costo de la mejor ruta a N encontrada hasta aquí h(N) = función heurística admisible

Métodos informados de búsqueda: búsqueda a* Ejemplo: Considerar el siguiente laberinto, en el cual se puede pasar desde una casilla a cualquiera de las posibles adyacentes (arriba, abajo, izquierda o derecha), salvo si hay una barrera entre ellas: Se trata de encontrar el camino más corto para ir desde la casilla I a la casilla F. A B C D E W M N G P Q R T I F

Métodos informados de búsqueda: búsqueda a* Función de evaluación: F(n) = g(n) + h(n) Donde: g(n): Número de Casillas que ha avanzado h(n): Distancia Manhattan a la casilla F

Métodos informados de búsqueda: búsqueda a* La ruta es I-W-K-M-F # LE P LV 1 ((I)-4) (I-4) () 2 ((I Q)-4 (I W)-4 (I G)-6) (Q-4) (I) 3 ((I Q R)-4 (I W)-4 (I G)-6 (I Q P)-6) (R-4) (I Q) 4 ((I Q R T)-4 (I W)-4 (I G)-6 (I Q P)-6) (T-4) (I Q R) 5 ((I W)-4 (I G)-6 (I Q R T K)-6 (I Q P)-6) (W-4) (I Q R T) 6 ((I W K)-4 (I G)-6 (I Q R T K)-6 (I Q P)-6) (K-4) (I Q R T W) 7 ((I W K M)-4 (I W K T)-4 (I W K C)-6 (I G)-6 (I Q R T K)-6 (I Q P)-6) (M-4) (I Q R T W K) 8 ((I W K M F)-4 (I W K T)-4 (I W K C)-6 (I W K M D)-6 (I G)-6 (I Q R T K)-6 (I W K M N)-6 (I Q P)-6) (F-4) (I Q R T W K M)

Ramificación y acotación Ramificar: Proceso de generar los nodos sucesores de cierto nodo de un árbol. Criterios de Ramificación: Primero el mejor FIFO LIFO

Ramificación y acotación Proceso de simplificación de la búsqueda a través de la poda de ramas o subárboles que presentan peores soluciones. Actualización de la Cota Cota del nodo es el valor de la función de evaluación que tiene un nodo ya procesado. Si en la ramificación se genera un nodo con mejor valor, entonces la cota se actualiza.

Ramificación y acotación Algoritmo: Inicio 1. LE := (Estado_Inicial); LV:= (Estado_Inicial); Cota(Estado_Inicial) :=0; Test de Parada 3. Si (LE = ()) entonces Escribir («No hay solución»), PARE; 4. LISTA := Primer o(LE); P := Ultimo(LISTA); 5. Si (P es meta) entonces Escribir («Solución: », P), PARE; Ramificación y Acota 6. Elimina_Mejor(LE); 7 Para (Nodo  Hijos(P)) W_LISTA := LISTA; Si (Nodo  LV) Adiciona_final(Nodo,W_LISTA); Adiciona_inicio(W_LISTA, LE); Cota(nodo) := f(W_LISTA); Adiciona_ultimo (Nodo, LV); sino Si (f(W_LISTA) < Cota(Nodo)) Fin_Si Fin_Para 8. Ordena(LE); 9. Ir para 2