390 likes | 859 Views
TÉCNICAS DE BÚSQUEDA Y SUS APLICACIONES. Introducción. ¿Qué son las técnicas de búsqueda y cuáles son sus elementos? Tipos de solucionadores - Búsqueda ciega - Búsqueda heurística Búsqueda sin información del dominio o ciega - Búsqueda en amplitud - Búsqueda en profundidad
E N D
Introducción • ¿Qué son las técnicas de búsqueda y cuáles son sus elementos? • Tipos de solucionadores • - Búsqueda ciega • - Búsqueda heurística • Búsqueda sin información del dominio o ciega - Búsqueda en amplitud - Búsqueda en profundidad - Búsqueda en profundidad progresiva - Búsqueda bidireccional • Sistemas de reducción
Introducción • Búsqueda heurística • - Definiciones - Función de evaluación heurística - Estrategias • - Búsqueda con adversos • - Algoritmo MINIMAX • - Poda Alfa-Beta • Aplicaciones - GPS (General Problem Solver) • Enlaces de interés
¿Qué son las técnicas de búsqueda y cuáles son sus elementos? Las técnicas de búsqueda son una serie de esquemas de representación del conocimiento, que mediante diversos algoritmos nos permite resolver ciertos problemas desde el punto de vista de la I.A.
¿Qué son las técnicas de búsqueda y cuáles son sus elementos? Los elementos que integran las técnicas de búsqueda son: - Conjunto de estados: todas las configuraciones posibles en el dominio. - Estados iniciales: estados desde los que partimos. - Estados finales: las soluciones del problema. - Operadores: se aplican para pasar de un estado a otro.
¿Qué son las técnicas de búsqueda y cuáles son sus elementos? - Solucionador: mecanismo que nos permite evolucionar de un estado a otro mediante un algoritmo aplicando los siguientes pasos: 1. Elegir el estado a explorar 2. Establecer un operador que trabaje sobre el estado elegido en el paso 1 3. Comprobar si el resultado obtenido es un estado final (es una solución del problema). Sino ir al paso 1.
¿Qué son las técnicas de búsqueda y cuáles son sus elementos? Ejemplo con 8-puzzle: este juego consiste en, dada una matriz de 3x3 elementos, tenemos 8 números que deben de ser ordenados dejando la casilla central vacía. Para resolverlo usaremos técnicas de búsqueda: - El conjunto de estados son todas las combinaciones posibles de ordenación de las 9 piezas. - El estado inicial es el estado en el que nos dan el puzzle, en desorden. - El estado final es el puzzle ordenado. - Los operadores son mover una ficha en cualquier dirección: arriba, abajo, izquierda o derecha.
Tipos de solucionadores Para decidir como contestar a las preguntas del solucionador podemos usar dos tipos de búsqueda: - Búsqueda ciega: - Se hace crecer el árbol de forma sistemática - No se realiza análisis entre el estado obtenido y la solución - Búsqueda heurística: - El crecimiento del árbol se hace inyectando conocimiento. - Este conocimiento permite calcular la distancia entre el estado obtenido y el estado final
Tipos de solucionadores Un buen solucionador será aquel que realice su función a bajo coste según los siguientes parámetros: - Complejidad temporal: tiempo empleado en obtener la solución - Complejidad espacial: cantidad de recursos necesarios para obtener la solución. Por ejemplo: memoria. La explosión combinatoria es un fenómeno que hace que el problema no se pueda abordar computacionalmente.
BÚSQUEDA CIEGA • Sólo utiliza información acerca de si un estado es o no objetivo para guiar su proceso de búsqueda. Antes de explicar los tipos de búsqueda ciega, convendría dar una serie de definiciones: • Expandir un nodo: obtener los posibles hijos de un nodo a partir de la aplicación de los distintos operadores sobre él. • Nodo cerrado: Se han aplicado todos los posibles operadores sobre él, obteniéndose todos sus posibles hijos.
BÚSQUEDA CIEGA • Nodo abierto: No han actuado todos los posibles operadores, con lo que podrían obtenerse nuevos hijos aplicando los operadores restantes. • TIPOS DE BÚSQUEDA CIEGA: • Búsqueda en amplitud. • Búsqueda en profundidad. • Búsqueda en profundidad progresiva. • Búsqueda bidireccional. • http://decsai.ugr.es/~lcv/Docencia/itmia/Clases/Practicas/BUSQUEDA_SIN.HTM Resumen de los tipos de búsq. ciega
BÚSQUEDA CIEGA (TIPOS) • Búsqueda en amplitud: - Procedimientos de búsqueda nivel a nivel. - Para cada uno de los nodos de un nivel se aplican todos los posibles operadores. - No se expande ningún nodo de un nivel antes de haber expandido todos los del nivel anterior. - Se implementa con una estructura FIFO. • Ejemplo de movimiento de caballo dirigido con búsqueda en amplitud ( Archivo flash )
BÚSQUEDA CIEGA (TIPOS) - Ventajas: - Si existe la solución, la encuentra en la menor profundidad posible. - Desventajas: - Explosión combinatoria aparece frecuentemente debido a la alta complejidad espacial y temporal de esta técnica. Referencia a ésta y otras técnicas de búsqueda ciega: [Fernández, González y Mira, 1998] Cap. 1 “Búsqueda sin información del dominio”
BÚSQUEDA CIEGA (TIPOS) • Búsqueda en profundidad: - La búsqueda se realiza por una sola rama del árbol hasta encontrar una solución o hasta que se tome la decisión de terminar la búsqueda por esa dirección. - Terminar la búsqueda por una dirección se debe a no haber posibles operadores que aplicar sobre el nodo hoja o por haber alcanzado un nivel de profundidad muy grande. - Si esto ocurre se produce una vuelta atrás (backtracking) y se sigue por otra rama hasta visitar todas las ramas del árbol si es necesario.
BÚSQUEDA CIEGA (TIPOS) - Ventajas: - Tiene menor complejidad espacial que búsqueda en amplitud. - Desventajas: - Se pueden encontrar soluciones que están mas alejadas de la raíz que otras. - Existe el riesgo de presencia de bucles infinitos. Un ejemplo de uso de distintos tipos de búsqueda ciega ( Problema de las jarras )
BÚSQUEDA CIEGA (TIPOS) • Búsqueda en profundidad progresiva: - Se define una profundidad predefinida. - Se desarrolla el árbol realizando una búsqueda en profundidad hasta el límite definido en el punto anterior. - Si se encuentra la solución FIN - En caso contrario, se establece un nuevo límite y volvemos al segundo paso. • Un artículo sobre la historia de esta técnica
BÚSQUEDA CIEGA (TIPOS) • Búsqueda bidireccional: - Se llevan a la vez dos búsquedas: una descendente desde el nodo inicial y otra ascendente desde el nodo meta. - Al menos una de estas dos búsquedas debe ser en anchura para que el recorrido ascendente y descendente puedan encontrarse en algún momento. - Cuando se llegue a un nodo que ya había sido explorado con el otro tipo de búsqueda, el algoritmo acaba. - El camino solución es la suma de los caminos hallados por cada búsqueda desde el nodo mencionado hasta el nodo inicial y hasta el nodo meta.
Sistemas de reducción • Objetivo: reducir un problema en subproblemas más sencillos que el problema original. • Ejemplo: integrales por partes. • Grafos: en un grafo de reducción, cada uno de los nodos representan un subproblema del problema original.
Búsqueda heurística • Las técnicas de búsqueda heurística usan el conocimiento del dominio para adaptar el solucionador y, de esta manera, éste sea más potente y consiga llegar a la solución con mayor rapidez. Por tanto, estas técnicas utilizan el conocimiento para avanzar buscando la solución al problema. • Definiciones: • - Costo del camino: coste necesario para ir del nodo raíz al nodo meta por dicho camino. • - Costo para hallar la solución: coste necesario para encontrar el camino anteriormente definido. • Potencia heurística: capacidad de un método de exploración para obtener la solución con un coste lo más bajo posible. • http://es.wikipedia.org/wiki/Heur%C3%ADstica_(computaci%C3%B3n)
Función de evaluación heurística • Definición: es una aplicación del espacio de estados con el espacio de los números reales • F(estado) => n • n representa lo cercano que esta el estado con el que se ha aplicado la función de evaluación de la solución final. • Es muy importante mantener un equilibrio entre la eficiencia de la función y su complejidad. No debemos tener una función de evaluación demasiado complicada, ni tampoco una demasiado sencilla pero que no avance prácticamente nada en el problema. En caso de no mantener este equilibrio se podría producir explosión combinatoria. • http://www.infor.uva.es/~arancha/IA/busqueda/busq2.pdf
Estrategias de búsqueda heurística • Tipos: • Estrategias tentativas: aquellas en las que se puede abandonar la exploración de una rama y pasar a explorar otra en cualquier momento del problema. • Estrategias irrevocables: aquellas en las que no se puede abandonar la exploración de la rama por la que se comenzó. • Métodos: • Gradiente • Primero el mejor • Búsqueda en haz • Algoritmo A • http://www.lsi.upc.es/~bejar/ia/material/teoria/2-BH2-Busqueda_heuristica.pdf • http://www.secyt.frba.utn.edu.ar/gia/IIA-mod2-Procedimientos.pdf
Estrategias de búsqueda heurística • Gradiente: • Metodología: elegir el camino de máxima pendiente, usando para ello la función de evaluación. • Tipo: irrevocable. • Ventajas: se llega a la solución con poco coste computacional. • Inconvenientes: puede ser que el problema no sea compatible con este método, y, por lo tanto, no conseguiremos obtener la solución.
Estrategias de búsqueda heurística • Primero el mejor: • Metodología: elegir como siguiente nodo aquel con mayor función de evaluación. • Tipo: tentativo. • Ventajas: no depende en exceso de la función de evaluación. • Inconvenientes: excesiva complejidad espacial, pues se deben guardar todos los nodos abiertos.
Estrategias de búsqueda heurística • Búsqueda en haz: • Metodología: elegir un conjunto de nodos como los siguientes a expandir, y hacerlo de forma irrevocable. • Tipo: irrevocable/tentativo. • Ventajas: más permisible. • Inconvenientes: en caso de que el sistema sea irrevocable, este método no actúa con eficacia.
Estrategias de búsqueda heurística • Algoritmo A: • Metodología: Ponderar a la vez lo cerca que estamos del nodo meta y lo lejos que estamos del nodo inicial. • Tipo: tentativo. • Ventajas: soluciones más cercanas a la raíz. • Inconvenientes: la función de evaluación se complica.
Búsqueda con adversos La búsqueda con adversos (juego contra un oponente) analiza los problemas en los que existe mas de un adversario modificando el estado del sistema. Hay dos operadores: - el que lleva el problema a la mejor situación (jugada nuestra) - el que lleva el problema a la peor situación (jugada de nuestro adversario)
Búsqueda con adversos: Algoritmo MINIMAX • Minimax es un método de decisión para minimizar la pérdida máxima esperada en juegos con adversario y con información perfecta. • Minimax es un algoritmo recursivo. • El funcionamiento de Minimax puede resumirse como elegir mejor movimiento para ti mismo suponiendo que tu contrincante escogerá el peor para ti.
Pasos del algoritmo Minimax • Generación del árbol de juego. Se generarán todos los nodos hasta llegar a un estado terminal. • Cálculo de los valores de la función de evaluación para cada nodo terminal. • Calcular el valor de los nodos superiores a partir del valor de los inferiores. • Desde los nodos de nivel n, buscar la mejor situación para mi y la peor para mi rival. Elegir la jugada valorando los valores que han llegado al nivel superior, es decir, obtengo la mejor rama.
Búsqueda con adversos: Algoritmo MINIMAX El algoritmo explorará los nodos del árbol asignándoles un valor numérico mediante una función de evaluación, empezando por los nodos terminales y subiendo hacia la raíz. La función de evaluación definirá lo buena que es la posición para un jugador cuando la alcanza. Ejemplo: en el ajedrez los posibles valores son (+1,0,-1) que se corresponden con ganar, empatar y perder respectivamente. Esto será diferente para cada juego. Más información sobre MINIMAX y ejemplo
Ejemplo MINIMAX A 7 Max(7,0,5) C D B 0 5 Min(5,9) Min(0,6) 7 Min(7,8) E F G H I J 7 8 0 6 5 9 Otros ejemplos: Ejemplo de árbol MINIMAX para el juego del ajedrez Ejemplo para el juego de las 3 en raya
Búsqueda con adversos: Poda Alfa-Beta Se aplica en técnicas con adversos y se usa para reducir el coste computacional de MINIMAX podando las ramas que nos llevan a una solución peor que las ya encontradas. Llamaremos valores alfa a los valores calculados hacia atrás de los nodos max. Los valores alfa de los nodos max nunca pueden decrecer. Llamaremos valores beta a los valores calculados hacia atrás en los nodos min. Los valores min nunca pueden crecer.
Funcionamiento de la Poda Alfa-Beta Puede suspenderse la exploración por debajo de un nodo en cualquiera de los casos siguientes: A. Por debajo de cualquier nodo min que tenga valores beta menores o iguales a los valores de cualquier nodo max ascendiente suyo. B. Por debajo de un nodo max que tenga un valor alfa mayor o igual al valor beta de cualquier nodo min ascendiente.
Funcionamiento de la Poda Alfa-Beta Como ha podido verse, la poda alfa-beta es aplicar minimax, solo que decidimos que algunas ramas no serán exploradas, consiguiendo con esto ahorrar algo de espacio y de tiempo computacional. Ejemplo de la poda Alfa-Beta Más información sobre la poda Alfa-Beta y su eficiencia
Aplicaciones: GPS (General Problem Solver) • Alan Newell y Herbert Simon, trabajando la demostración de teoremas y el ajedrez por ordenador logran crear un programa llamado GPS (Solucionador General de Problemas) en los años 60. • Se trataba de un programa que por medio de una serie de algoritmos basados en análisis, más o menos exhaustivos, fuera capaz de resolver toda clase de problemas relativos a juegos de estrategias y demostraciones automáticas. • Se le podían ofrecer pequeños problemas (como el típico del mono que debe coger un plátano que se encuentra colgado del techo), y éste deberá describir todos los pasos que realiza hasta conseguir su objetivo.
Aplicaciones: GPS (General Problem Solver) • El usuario definía un entorno en función de una serie de objetos y los operadores que se podían aplicar sobre ellos. • Se basaba en el análisis medios-fines que consiste en detectar las diferencias entre un objetivo deseado y la situación actual y reducir después esas diferencias. • Se aplicó por primera vez el Backtracking (vuelta atrás) (probar si funciona y si no, volver atrás y probar otra cosa) que se convirtió desde aquel momento en una herramienta básica de la I.A. De forma similar a las técnicas explicadas anteriormente.
Aplicaciones: GPS (General Problem Solver) • El GPS manejaba reglas heurísticas (aprender a partir de sus propios descubrimientos) que la conducían hasta el destino deseado mediante el método del ensayo y el error. • La ambición era grande, así como lo fue la decepción que tuvieron al ver que a pesar de los progresos teóricos y de algunos programas espectaculares, no obtuvieron los resultados que se esperaban.
Aplicaciones: GPS (General Problem Solver) • Fue entonces cuando algunos investigadores decidieron cambiar por completo el enfoque del problema: restringieron sus ambiciones a un dominio especifico e intentaron reproducir la forma en que los expertos efectuaban su razonamiento. • Así fue como nacieron los sistemas expertos. Ejemplo de funcionamiento en pseudocódigo de GPS (inglés)
Enlaces de interés Técnicas de búsqueda heurística (información detallada sobre técnicas de búsqueda heurística) General Problem Solver (programa que representa una version simplificada del General Problem Solver) Técnicas heurísticas de resolución de problemas (descripción de técnicas de búsqueda y aplicaciones tradicionales) Estudio de técnicas de búsqueda (Estudio de técnicas de búsqueda por vecindad a muy gran escala)