tÉcnicas de bÚsqueda(1)

38
TÉCNICAS DE BÚSQUEDA Y SUS APLICACIONES

Upload: alejandro-crispin-rico-gonzalez

Post on 30-Nov-2015

29 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TÉCNICAS DE BÚSQUEDA(1)

TÉCNICAS DE BÚSQUEDA Y SUS APLICACIONES

Page 2: TÉCNICAS DE BÚSQUEDA(1)

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

Page 3: TÉCNICAS DE BÚSQUEDA(1)

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

Page 4: TÉCNICAS DE BÚSQUEDA(1)

¿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.

Page 5: TÉCNICAS DE BÚSQUEDA(1)

¿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.

Page 6: TÉCNICAS DE BÚSQUEDA(1)

¿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.

Page 7: TÉCNICAS DE BÚSQUEDA(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.

Page 8: TÉCNICAS DE BÚSQUEDA(1)

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

Page 9: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 10: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 11: TÉCNICAS DE BÚSQUEDA(1)

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

Page 12: TÉCNICAS DE BÚSQUEDA(1)

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 )

Page 13: TÉCNICAS DE BÚSQUEDA(1)

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”

Page 14: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 15: TÉCNICAS DE BÚSQUEDA(1)

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 )

Page 16: TÉCNICAS DE BÚSQUEDA(1)

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

Page 17: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 18: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 19: TÉCNICAS DE BÚSQUEDA(1)

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)

Page 20: TÉCNICAS DE BÚSQUEDA(1)

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

Page 21: TÉCNICAS DE BÚSQUEDA(1)

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 Ahttp://www.lsi.upc.es/~bejar/ia/material/teoria/2-BH2-Busqueda_heuristica.pdfhttp://www.secyt.frba.utn.edu.ar/gia/IIA-mod2-Procedimientos.pdf

Page 22: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 23: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 24: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 25: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 26: TÉCNICAS DE BÚSQUEDA(1)

Búsqueda con adversos

La búsqueda con adversos (juego contra un oponente) analizalos 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)

Page 27: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 28: TÉCNICAS DE BÚSQUEDA(1)

Pasos del algoritmo Minimax1. Generación del árbol de juego. Se generarán todos los

nodos hasta llegar a un estado terminal.2. Cálculo de los valores de la función de evaluación para

cada nodo terminal.3. Calcular el valor de los nodos superiores a partir del valor

de los inferiores.4. 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.

Page 29: TÉCNICAS DE BÚSQUEDA(1)

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

Page 30: TÉCNICAS DE BÚSQUEDA(1)

Ejemplo MINIMAXA

B C D

E F G H I J

7 8 0 6 5 9

Min(7,8) Min(0,6) Min(5,9)

7 0 5

Max(7,0,5)7

Otros ejemplos:Ejemplo de árbol MINIMAX para el juego del ajedrezEjemplo para el juego de las 3 en raya

Page 31: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 32: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 33: TÉCNICAS DE BÚSQUEDA(1)

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

Page 34: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 35: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 36: TÉCNICAS DE BÚSQUEDA(1)

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.

Page 37: TÉCNICAS DE BÚSQUEDA(1)

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)

Page 38: TÉCNICAS DE BÚSQUEDA(1)

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)