Trabajo

14

Transcript of Trabajo

Page 1: Trabajo
Page 2: Trabajo

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 3: Trabajo

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.

Page 4: Trabajo

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.

Page 5: Trabajo

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.

Page 6: Trabajo

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 7: Trabajo

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 8: Trabajo

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.

Page 9: Trabajo

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

Page 10: Trabajo

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 11: Trabajo

Búsqueda en espacios de estados

Espacio de estados: modelo del mundo representado por un grafo

Page 12: Trabajo

Búsqueda en amplitud

Este método va construyendo un grafo de estados explicito mediante la aplicación de los operadores disponibles al nodo inicial, después aplica los operadores disponibles a los nodos sucesores directos del nodo inicial, y así sucesivamente. Este procedimiento de búsqueda actúa de manera uniforme a partir del nodo inicial.Este tipo de búsqueda consiste en ir explorando el árbol por ramas del mismo nivel, es decir, no se podrá explorar una rama superior si la rama inferior no se ha explorado por completo.

Page 13: Trabajo
Page 14: Trabajo

Búsqueda en profundidad

En este proceso de búsqueda se genera sólo un sucesor del nodo en cada paso, es decir, cada vez que se obtiene un nuevo sucesor, se le aplica a este un nuevo operador y se obtiene un nuevo sucesor, y así sucesivamente. En este tipo de búsqueda se avanza por una sola rama del árbol hasta que se encuentre una solución o hasta que se llegue a un callejón sin salida [3]. En el caso de llegar a un callejón sin salida se retorna hasta la raíz para iniciar una nueva búsqueda. La búsqueda en profundidad necesita menos memoria ya que sólo almacena los nodos del camino que se siguen en ese instante. Esto contrasta con la búsqueda en anchura en la cual debe almacenarse todo el árbol que haya sido generado hasta ese momento.