Você está na página 1de 43

Unidad II Técnicas de Búsqueda

Competencia Especifica: Definir y resolver problemas en base a


técnicas de búsqueda en espacio de estado.
Criterios de evaluación

Foro de discusión 10%


Portafolio de ejercicios 30%
Investigación 20%
Caso practico 40%
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
 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)
¿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.
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.
- 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.
Por ejemplo, imagine que ha perdido las llaves de su coche.

Sabe que están en algún lugar de la casa, cuyo plano esta en

la figura 1.1.

La X indica que usted está en la puerta principal.


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
Un buen solucionador será aquel que realice su función a bajo
costo 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.
Resolver: Realizar todos los posibles movimientos de tal forma que
quede ordenado como se muestra en la figura.
Actividad

•Investigar los tipos de problemas que se


resuelven con las técnicas de búsqueda.

•Investigar información sobre los métodos de


búsqueda (primero en anchura, primero en
profundidad, grafos O y grafos A).
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.
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.
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.
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.
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
• Lasté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.
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.
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
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
1. 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.
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.
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.
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.

Você também pode gostar