Sie sind auf Seite 1von 41

BUSQUEDA HEURSTICA

Universidad Nacional de San Antonio Abad del Cusco


Departamento Acadmico de Informtica
Ing. Luis Palma

Ing. Luis Palma Inteligencia Artificial


BUSQUEDA HEURISTICA

Los mtodos de bsqueda heurstica disponen de alguna


informacin sobre la proximidad de cada estado a un estado
objetivo, lo que permite explorar en primer lugar los caminos
ms prometedores.
Son CARACTERSTICAS de los mtodos heursticos:
No garantizan que se encuentre una solucin, aunque
existan soluciones.
Si encuentran una solucin, no se asegura que sta tenga
las mejores propiedades (que sea de longitud mnima o de
coste ptimo).
En algunas ocasiones no encontrar una solucin en un
tiempo razonable.

Ing. Luis Palma Inteligencia Artificial


BUSQUEDA HEURISTICA

Los mtodos heursticos son preferibles a los mtodos


no informados en la solucin de problemas difciles para los
que una bsqueda exhaustiva necesitara un tiempo
demasiado grande. Esto cubre prcticamente la totalidad de
los problemas reales que interesan en Inteligencia Artificial.
La informacin del problema concreto que estamos
intentando resolver se suele expresar por medio de
heurstica.
Segn Newell, Shaw y Simon Heurstica es Un proceso
que puede resolver un problema dado, pero que no
ofrece ninguna garanta de que lo har, se llama una
heurstica para ese problema 1963.

Ing. Luis Palma Inteligencia Artificial


BUSQUEDA HEURISTICA

Una funcin de evaluacin heurstica asocia a cada


estado del espacio de estados una cierta cantidad
numrica que evala de algn modo lo prometedor
que es ese estado para acceder a un estado objetivo.

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURSTICA
EJEMPLOS

Ing. Luis Palma Inteligencia Artificial


FNCIN HEURISTICA

Para plantear una heursticas de un problema se suele


aplicar la regla general siguiente:

Amonestar por NO cumplir con restricciones del problema


Bonificar SI cumple con la restriccin del problema

Heurstica = (Ponderacin de Bonificaciones)


(Ponderacin de Amonestaciones)

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURSTICA 8 PUZZLE

El 8 puzzle es un problema que consiste en un tablero de 9


posiciones dispuestos como una matriz de 3x3 en el que
hay 8 posiciones ocupadas por fichas numeradas del 1 al 8
y una posicin vaca. Las fichas se pueden mover horizontal
o verticalmente ocupando la posicin vaca, si la tiene
adyacente. El objetivo es partir de una posicin cualquiera
de las fichas, para obtener una disposicin de stas en el
orden especfico. Tal como muestra la figura:

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURSTICA 8 PUZZLE

H1 (casillas Fuera de sitio): contar el nmero de casillas


que estn fuera de su sitio respecto al estado objetivo.

H2 (distancia de manhattan): suma de distancias


horizontal y vertical a su posicin en el tablero objetivo (esto
es la suma de diferencias de sus coordenadas x, y)

Ing. Luis Palma Inteligencia Artificial


HEURISTICA - BLOQUES

H1: Sumar 1 por cada


bloque que este colocado
sobre el bloque que debe.
Y restar 1 si el bloque no
esta colocado sobre el que
debe.
H2: Si la estructura de
apoyo es correcta sumar 1
por cada bloque de dicha
estructura. Si la estructura
de apoyo no es correcta
restar 1 por cada bloque
de dicha estructura

Ing. Luis Palma Inteligencia Artificial


HEURSTICA VIAJERO DE COMERCIO

El problema del viajante de comercio consiste en encontrar


una ruta mnima que pase por un grupo de ciudades, de
manera que cada ciudad se visite una sola vez, salvo la
ltima ciudad que ha de ser la de partida.
H1: Se elige una ciudad como siguiente en el camino
cuando la suma de la distancia a la ciudad actual ms la
distancia area a la meta sea la menor

Ing. Luis Palma Inteligencia Artificial


EJEMPLO CUADRADO LATINO

El cuadrado latino consiste en iniciar el juego con un tablero


vacio 3x3 en cada posicin colocamos un nmero del 1 al 9,
ninguno de los cuales puede repetirse, el objetivo es tener el
tablero completo, es decir, un nmero en cada posicin del
mismo, y es necesario que el valor de la suma de cada fila,
columna y diagonales sea siempre el mismo valor (15).
Considerar que la posicin inicial en la que se tiene algunos
valores ya en el tablero.
H1: nmero de fila + nmero de columnas + nmero de
diagonales cuya suma de sus nmeros sea 15.

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA
VIAJAR DE ESPINAR A QUILLABAMBA
Un persona debe viajar
de Espinar a
Quillabamba a pie.
H1: Distancia ms
corta entre 2 puntos

800
km

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA
VIAJAR DE ESPINAR A QUILLABAMBA
Un persona debe viajar
de Espinar a
Quillabamba a pie.
H1: Distancia ms
corta entre 2 puntos

700
km

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA: N REINAS

El problema de la N reinas consiste en colocar N reinas en


un tablero de ajedrez de N x N de manera que NO se
ataquen entre si. En este problema no nos interesa la
manera de hallar la solucin, sino el estado final, en la figura
tenemos la representacin para un problema de 8 reinas

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA: JARRAS DE AGUA

H1: Cantidad de par de reinas sin ataque

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA: JARRAS DE AGUA

Disponemos de dos jarras de agua, una de 4 litros de


capacidad y otra de 3 litros de capacidad. Inicialmente estn
ambas vacas. El estado objetivo es que la jarra de 4 litros
de capacidad contenga dos litros de agua,
independientemente el contenido de la otra, sabiendo que
en ninguna de las jarras hay una seal de volumen distinta
de su capacidad.

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA: AJEDREZ

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA: TRES EN RAYA

Ing. Luis Palma Inteligencia Artificial


FUNCION HEURISTICA: SUDOKU

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA: MISIONERO-CANIBAL

En la orilla de un ro hay 3 misioneros y 3 canbales y todos


ellos pretenden cruzar al otro lado. La barca que se utiliza
para cruzarlo slo tiene capacidad para dos personas, con
lo que alguien ha de estar volviendo siempre a la orilla inicial
mientras quede gente sin cruzar. Adems, si en alguna
ocasin y en cualquiera de las orillas se encuentran un
nmero mayor de canbales que de misioneros, los primeros
se comern a los segundos.

Ing. Luis Palma Inteligencia Artificial


ALGORITMO: PRIMERO EL MEJOR

Ing. Luis Palma Inteligencia Artificial


ALGORITMO PRIMERO EL MEJOR AVARICIOSO

El algoritmo primero el mejor avaricioso


utiliza una cola de prioridad en la lista de
nodos abiertos, la prioridad esta en funcin
a la estimacin de costo del nodo actual al
nodo objetivo. Este comportamiento NO
necesariamente permite encontrar la solucin
ms optima.

Ing. Luis Palma Inteligencia Artificial


ALGORITMO Primero el Mejor Avaricioso

Insertar(Est_Inicial, Lista_Est_Abiertos)
Est_Actual Primero(Lista_Est_Abiertos)
Mientras Est_Actual Est_Final y
No(Es_Vacia(Lista_Est_Abiertos)) hacer
Borra_Primero(Lista_Est_Abiertos)
Insertar(Est_Actual,Lista_Est_Cerrados)
Hijos Generar_Sucesores(Est_Actual)
Hijos
Tratar_Repetidos(Hijos,Lista_Est_Cerrados,
Lista_Est_Abiertos)
Insertar(Hijos,Lista_Est_Abiertos)
Est_Actual Primero(Lista_Est_Abiertos)
Fin_Mientras

Ing. Luis Palma Inteligencia Artificial


EJERCICIO PRCTICO: 8 Puzzle

En la figura se muestra el estado inicial y estado objetivo


del 8-Puzzle, aplique el algoritmo PRIMERO EL MEJOR
AVARICIOSO y dibuje el grafo respectivo. Aplique el
heurstico: de distancia de Manhattan.

Ing. Luis Palma Inteligencia Artificial


SOLUCIN

Ing. Luis Palma Inteligencia Artificial


EJERCICIO PRCTICO: Robot Caminante

En la figura se tiene un plano en el que debe mover robot a partir de


la coordenada (4,4) a la coordenada (3,1), utilizando el heurstico
distancia de manhattan aplique el algoritmos primero el mejor
avaricioso.

Ing. Luis Palma Inteligencia Artificial


ALGORITMO A*

Ing. Luis Palma Inteligencia Artificial


ALGORITMO A*

A* permite encontrar el camino lo ms


rpido posible y el camino de menor
costo. Y para ello debemos tomar en
cuenta el costo de todo el camino y no
solo del camino que falta por recorrer.

Ing. Luis Palma Inteligencia Artificial


CONCEPTOS PRELIMINARES

Costo de un arco c(ni, nj): denominamos costo de un arco,


al costo del operador que permite pasar de un nodo al otro.
Costo de un camino C(ni, nj): es la suma de costos de
todos los arcos que llevan desde un nodo a otro
1

, = ( , +1 )
=
Costo de camino mnimo K(ni, nj): es el camino de menor
costo que lleva desde un nodo al otro entre:

, = =1 ( , )

Ing. Luis Palma Inteligencia Artificial


FUNCIN HEURISTICA

Los conceptos anteriores permiten definir el costo del


camino mnimo que pasa por cualquier nodo como una
combinacin del costo del camino mnimo desde el nodo
inicial mas el costo del nodo hasta el nodo final
= + ()
Dado que el valor de h(n) lo desconocemos lo sustituiremos
por una funcin que nos aproximar, a esta funcin la
denotamos como h(n) y le daremos el nombre de funcin
heurstica. De esta manera tendremos una estimacin del
costo del camino mnimo que pasa por cierto nodo
= + ()
Sera este el valor el que utilizaremos para decidir en nuestro
algoritmo de bsqueda cual es el siguiente nodo a explorar.

Ing. Luis Palma Inteligencia Artificial


ALGORITMO A*

Algoritmo A*
Insertar(Est_Inicial, Lista_Est_Abiertos)
Est_Actual Primero(Lista_Est_Abiertos)
Mientras Est_Actual Est_Final y
No(Es_Vacia(Lista_Est_Abiertos)) hacer
Borra_Primero(Lista_Est_Abiertos)
Insertar(Est_Actual,Lista_Est_Cerrados)
Hijos Generar_Sucesores(Est_Actual)
Hijos
Tratar_Repetidos(Hijos,Lista_Est_Cerrados,
Lista_Est_Abiertos)
Insertar(Hijos,Lista_Est_Abiertos)
Est_Actual Primero(Lista_Est_Abiertos)
Fin_Mientras

Ing. Luis Palma Inteligencia Artificial


ALGORITMO A*

El algoritmo es el mismo que el algoritmo de bsqueda


general, lo nico que cambia es que ahora la ordenacin
de los nodos se realiza utilizando el valor de f. Como
criterio de ordenacin consideraremos que a igual valor de f
los nodos con h mas pequea se exploran antes (ya que
si h es ms pequea es que son nodos ms cerca de la
solucin)

Ing. Luis Palma Inteligencia Artificial


EJEMPLO PUZZLE 8

= + = [g + h']
h: distancia Manhattan

Ing. Luis Palma Inteligencia Artificial


EJEMPLO PUZZLE 8

= + = [g + h']
h: distancia Manhattan

Ing. Luis Palma Inteligencia Artificial


= + = [g + h']
h: Nmero de piezas fuera de lugar

Ing. Luis Palma Inteligencia Artificial


Ing. Luis Palma Inteligencia Artificial
A* - Bloques

Dibujar el grafo generado por el algoritmo A* para el juego


de bloques aplicando el Heurstico: nmero de bloques que
no estn encima del bloque sobre el que deben estar.

Ing. Luis Palma Inteligencia Artificial


A* Robot caminante

Aplicando el algoritmo A* completar la tabla de la fig. para


mover un robot de la coordenada (2,6) a la coordenada (9,4)
utilizando el Heurstico: distancia de Manhattan, y
asumiendo que el robot puede moverse: arriba, derecha,
abajo, izquierda.

Ing. Luis Palma Inteligencia Artificial


A* - Viajero Comerciante

Utilizando el algoritmo A* aplicar al grafo para el problema de viajero


comerciante, utilizar el Heurstico: Vecino ms cercano, sabiendo que los
pesos de los arcos corresponde a la distancia entre ciudades y que los
viajes se realiza en avin, el viajero se encuentra en Cusco

Ing. Luis Palma Inteligencia Artificial


ALGORITMO IDA*

Cuando se tiene problema de falta de espacio de memoria.


Una solucin es utilizar IDA*.
IDA* es ampliacin al algoritmo de Profundidad Iterativa,
solo que aplicado a A*.
En este caso reemplazamos la funcin f (heurstico) como
el valor que controla la profundidad a la que llegamos en
cada iteracin.
Es decir buscamos imponiendo un lmite al costo del camino
que queremos hallar (en la primera iteracin f del nodo
raz).
El algoritmo al necesitar una cantidad de espacio lineal,
permite hallar soluciones de mayor profundidad

Ing. Luis Palma Inteligencia Artificial


ALGORITMO IDA*
Algoritmo IDA*
Prof f(Est_Inicial)
Inicializar(Lista_Est_Abiertos)
Mientras Est_Actual Est_Final hacer
Insertar(Est_Inicial, Lista_Est_Abiertos)
Est_Actual Primero(Lista_est_abiertos)
Mientras Est_Actual Est_Final y No_vacia(Lista_est_Abiestos) hacer
Borra_Primero(Lista_Est_Abiertos)
Insertar(Est_Actual,Lista_Est_Cerrados)
// Generar_sucesores: solo retorna nodos con costo inferior
// o igual a la iteracin actual
Hijos Generar_Sucesores(Est_Actual, Prof)
Hijos Tratar_Repetidos(Hijos,Lista_Est_Cerrados,
Lista_Est_Abiertos)
Insertar(Hijos,Lista_Est_Abiertos)
Est_Actual Primero(Lista_Est_Abiertos)
Fin Mientras
Prof Prof + 1
Inicializar(Lista_Est_Abiertos)
Fin_Mientras
Ing. Luis Palma Inteligencia Artificial

Das könnte Ihnen auch gefallen