Вы находитесь на странице: 1из 8

Búsqueda Heurística

Autor: Tommy Daniel Gonzales Alvarado


Escuela “Ingeniería Informática y de Sistemas”, Universidad Privada San Pedro
Chimbote, Perú
amorporsiempre11@outlook.com

II. DESARROLLO TEMATICO


I. INTRODUCCIÓN 2.1. DEFINICION
La búsqueda es una de las técnicas más utilizadas En este caso una heurística es una función
para resolver los problemas de pathfinding o matemática, definida en los nodos de un árbol
planificación que se presentan en la inteligencia de búsqueda, que sirve como una estimación
artificial en los juegos de vídeo. del coste del camino más económico de un
nodo dado hasta el nodo objetivo. Las
En particular, la búsqueda es utilizada para resolver el heurísticas se usan en los algoritmos de
problema de la navegación. La constante evolución de búsqueda informada como la búsqueda
los juegos de vídeo ha llevado a que la inteligencia egoísta.
artificial constituya uno de los aspectos más
importantes; es fundamental que los agentes .2.2. METODOS DE BUSQUEDA HEURISTICA
(entidades autónomas) controlados por la
computadora se comporten en forma inteligente. Un Los métodos de búsqueda heurística
problema característico es la navegación que consiste disponen de alguna información sobre la
en determinar el camino más conveniente entre una proximidad de cada estado a un estado
posición inicial y una posición de destino. Si bien el objetivo, lo que permite explorar en primer
planteo del problema es sencillo, el mismo está lejos lugar los caminos más prometedores.
de ser trivial debido a la creciente complejidad de los
entornos simulados y los requerimientos de tiempo En general, los métodos heurísticos son
real de los juegos modernos. preferibles a los métodos no informados en
la soluci6n de problemas difíciles para los
En Inteligencia Artificial (IA) se emplea el calificativo que una búsqueda exhaustiva necesitaría
heurístico, en un sentido muy genérico, para aplicarlo un tiempo demasiado grande. Esto cubre
a todos aquellos aspectos que tienen que ver con el prácticamente la totalidad de los problemas
empleo de conocimiento en la realización dinámica de reales que interesan en Inteligencia
tareas. Artificial.

Se habla de heurística para referirse a una técnica, La información del problema concreto que
método o procedimiento inteligente de realizar una estamos intentando resolver se suele
tarea que no es producto de un riguroso análisis expresar por medio de heurísticas.
formal, sino de conocimiento experto sobre la tarea. En
especial, se usa el término heurístico para referirse a 2.2.1. CARACTERISTICAS DE METODOS
un procedimiento que trata de aportar soluciones a un HEURISTICOS
problema con un buen rendimiento, en lo referente a la
calidad de las soluciones y a los recursos empleados. • No garantizan que se encuentre una
soluci6n, aunque existan soluciones.
En la resolución de problemas específicos han surgido • Si encuentran una soluci6n, no se
procedimientos heurísticos exitosos, de los que se ha asegura que esta tenga las mejor
tratado de extraer lo que es esencial en su éxito para esas propiedades (que sea de
aplicarlo a otros problemas o en contextos más longitud mínima o de coste optimo).
extensos. • En algunas ocasiones (que, en
general, no se podrán determinar a
Esta búsqueda también es conocida como búsqueda priori), encontrarán una soluci6n
respaldada con información que puede dividir en los (aceptablemente buena) en un
siguientes tipos de búsqueda: tiempo razonable.
2.3. TIPOS DE BUSQUEDA - BÚSQUEDA A*:

2.3.1. BÚSQUEDA PREFERENTE POR LO Esta búsqueda es una búsqueda


MEJOR: preferente por lo mejor en la que se utiliza
f como función de evaluación.
Esta búsqueda consiste en expandir primero
aquel nodo con mejor evaluación. Dicha La función f calcula el costo estimado de
evaluación es el resultado de aplicar la la solución más barata, pasando por n y
función de evaluación al nodo, la cual se calcula de la siguiente manera:
devuelve un número que sirve para f=g(n) + h(n)
representar lo deseable que sería la
expansión de un nodo. Siendo g(n) el costo de ruta y h(n) una
heurística admisible (que nunca
Dentro de este tipo de búsqueda se sobreestima el costo que implica
encuentran: alcanzar la meta).

- BÚSQUEDA AVARA.  En esta búsqueda la cantidad de


memoria necesaria crece
Consiste en reducir al mínimo el costo exponencialmente con respecto
estimado para alcanzar una meta. a la profundidad. Pero la elección
Para ello se utiliza una función llamada de una buena función heurística
heurística, la cual estima el costo que permite disminuir notablemente
implica llegar a una meta desde un la complejidad tanto en tiempo
estado determinado, y elige cual es el como en espacio.
siguiente nodo que se va a expandir  Es óptima y completa.
aplicando esta función a cada nodo.
 En esta búsqueda el tiempo y la
cantidad de memoria necesaria
crece exponencialmente con
respecto a la profundidad. Pero la
elección de una buena función
heurística permite disminuir
notablemente la complejidad
tanto en tiempo como en espacio.
 No es óptima ni completa.

2.3.2. BÚSQUEDA LIMITADA POR LA CAPACIDAD


DE LA MEMORIA:

Cuando se implementan las búsquedas vistas hasta el


momento, hay ciertos problemas muy difíciles de
resolver y por lo tanto siempre hay que dar algo a
cambio para resolverlos, y lo primero que se cede es
la memoria disponible.

Para poder conservar la memoria existen:

- BÚSQUEDA A* POR PROFUNDIZACIÓN


ITERATIVA (A*PI):

 En este algoritmo, cada iteración es una


búsqueda preferente por profundidad, la
cual se modifica para utilizar un límite de
costo f en vez de un límite de profundidad.
En esta búsqueda el espacio requerido en 2.4. FUNCION HEURISTICA:
memoria crece en forma lineal con respecto
a la profundidad, mientras que la La funci6n heurística puede tener dos
complejidad temporal depende de la interpretaciones. Por una parte, la funci6n puede
cantidad de distintos valores que adopte la ser una estimaci6n de lo pr6ximo que se encuentra
función heurística. el estado de un estado objetivo. Bajo esta
 Es óptima y completa. perspectiva, los estados de menor valor heurístico
son los preferidos. Pero en otros casos puede
- BÚSQUEDA A* ACOTADA POR MEMORIA suceder que lo que convenga sea maximizar esa
SIMPLIFICADA (A*SRM): función.

 Tiene las siguientes características: 2.4.1. EJEMPLOS DE FUNCIONES


 Hace uso de toda la memoria que puede HEURISTICAS:
disponer
 En la medida que se lo facilite la memoria, - Veamos ejemplos de heurísticas para
evitará los estados repetidos algunos problemas concretos. Para el
 Es completa si la memoria disponible tiene problema del 8-puzzle tenemos las
capacidad suficiente para guardar la ruta de siguientes heurísticas:
solución más cercana a) La basada en la distancia Manhattan (o
 Es óptima si dispone de suficiente memoria distancia taxi). Se asocia a cada casilla un
para guardar la ruta de solución óptima más número que es la suma de las distancias
cercana. De lo contrario produce la mejor horizontal y vertical a su posici6n en el
solución que sea posible obtener con la tablero objetivo (esto es, la suma de
memoria disponible. diferencias de sus coordenadas x e y). La
función heurística es la suma de las
2.3.3. BÚSQUEDA DE MEJORAMIENTO distancias de cada una de las casillas
ITERATIVO: excluyendo la que se encuentra vacía).

La idea básica de los algoritmos de estos tipos de 2 3


búsqueda consiste en empezar con una configuración
completa y efectuar modificaciones para mejorar su 1 8 4
calidad. 7 6 5
Entre estas búsquedas se pueden encontrar:

- BÚSQUEDA POR ASCENSO DE CIMA: Fig. 1


H(Ei)=2 (1 de la casilla 1 más 1 de la casilla 8)
Esta búsqueda se trata de un bucle que
constantemente se desplaza en la dirección b) Otra heurística, mucho más simple,
de un valor ascendente. Como el algoritmo consiste en contar el número de casillas
no mantiene un árbol de búsqueda, la que están fuera de su sitio (respecto al
estructura de datos del nodo sólo tiene que tablero objetivo). Es una heurística más
registrar el estado y su evaluación, pobre que la anterior, puesto que no usa
denominado VALOR. la informaci6n relativa al esfuerzo (número
Cuando el algoritmo llega a un punto más allá de movimientos) necesario para llevar una
del cual no se logra ningún avance, es obvio pieza a su lugar.
que debe empezarse de nuevo en otro punto.
Ejercicio. Otra heurística posible para el 8-
- BÚSQUEDA POR ENDURECIMIENTO puzzle, si el estado objetivo es el recogido en
SIMULADO: la figura 1, es la siguiente: h(e) = 3 * seq(e),
donde seq(e) cuenta 1 si hay un digito central
Esta búsqueda es muy similar a la búsqueda en e y 2 por cada digito x no central que no es
por ascenso a la cima, pero con la diferencia seguido (en el sentido de las agujas del reloj)
de que en vez de empezar otra vez al azar por su sucesor x+1 (imponemos por convenio
luego de quedarse atorado en un máximo que 8 + 1 = 1).
local, sería conveniente descender unos Calcular el valor de esta heurística para los
cuantos pasos y así escapar del máximo local estados que aparecen en la figura 1.
en cuestión.
- El problema del viajante. se cumplan una serie de condiciones.
 Estado inicial: un viajante se Este algoritmo goza de una aceptable y continua
encuentra en una capital de provincia. implementación gracias a su desempeño y
 Estado meta: quiere viajar a otra capital precisión. Fue descrito en 1968 como una
por la mejor ruta posible (la más corta) extensión del algoritmo de Dijkstra (1959), el
 Medios: Las capitales de provincia algoritmo utiliza una función heurística para
colindantes están unidas por carreteras; encontrar no solo un camino sino el más óptimo
se dispone de un mapa con la disposici6n
de las provincias y sus "coordenadas" en 2.5.2. CARACTERISTICAS:
kil6metros respecto al "centro" (por
ejemplo, Madrid, con coordenadas (0,0)).  El algoritmo es una combinación entre
- Una funcion heurística para ese problema búsquedas del tipo primero en anchura con
consiste en asignar a cada estado un valor que es primero en profundidad: mientras que h(n)
la distancia aérea (en línea recta) con el estado tiende a primero en profundidad, g(n) tiende a
objetivo. Dicha distancia es la distancia euclídea primero en anchura.
entre las coordenadas de dos ciudades.  De este modo, se cambia de camino de
- Se elige una ciudad como siguiente en el camino búsqueda cada vez que existen nodos más
cuando la suma de la distancia a la ciudad actual prometedores.
más la distancia aérea a la meta sea la menor.  Utilizando una función heurística, se trata de
- métodos exploratorios durante la resolución del
Una persona quiere viajar de Madrid a Santander problema en el cual la solución se descubre por
considerando el mapa de carreteras de la fig. 2. la evaluación del progreso logrado en la
búsqueda de un resultado final

2.5.3. REPRESENTACION

La representación es la siguiente:

 f(n)=g(n) + h(n).
 g(n) es la distancia total que se toma de ir de la
Fig. 2 posición inicial a la posición actual.
 h(n) es la distancia estimada desde la posición
Cuatro alternativas en la primera etapa: Cáceres, inicial a la posición de destino de final, en este
Palencia, Zaragoza y Valencia. caso se usa una función heurística para calcular
- Función heurística considerando la distancia el valor estimado.
aérea:  El Resultado final f(n) es la suma de g(n) y h(n),
Distancia (Madrid, Santander) =Distancia y es el valor calculado más corto.
(Madrid, Palencia) +Distancia aérea (Palencia,
Santander) que es más pequeña que la 2.5.4. COMPONENTES DEL ALGORITMO:
obtenida a través de Cáceres
Distancia (Madrid, Santander) =Distancia
 Un nodo o punto inicial
(Madrid, Cáceres) +Distancia aérea (Cáceres,
 Un nodo final que representa el final del
Santander)
algoritmo
- Función heurística considerando distancias
 Un método para identificar los nodos:
parciales:
traspasables y sólidos
Distancia (Madrid, Santander) =Distancia (Madrid,
Palencia) +Distancia (Palencia, Santander)  Un método para determinar el costo directo (g)
de moverse entre los nodos
2.5. ALGORITMO A*  Un método para determinar el costo indirecto (h)
identificado como posibles movimientos, pero
2.5.1. DEFINICION: aún no han sido evaluados
 Una lista de nodos cerrados, donde se
El algoritmo A* (A estrella o A asterisco) es un guardarán todos los nodos evaluados y
algoritmo de búsqueda que encuentra la ruta de descartados
menor coste entre dos puntos siempre y cuando  Una forma de identificar que nodo procede a
otro, para poder retornar la cadena de los nodos
2.5.5. ALGORITMO 2.5.8. EJEMPLO

1. Si el nodo inicial es igual al nodo final, se


retorna el nodo inicial como solución
2. Si no, se adiciona el nodo inicial a la lista
abierta
3. Mientras la lista abierta no esté vacía, se
recorre cada nodo que haya en la lista abierta
y se toma el que tenga el costo total más bajo
4. Si el nodo obtenido es igual al nodo final, se
retornan los sucesores, al encontrado
5. Si no, se toma el nodo y se elimina de la lista
abierta para guardarse en la lista cerrada y se
buscan todos los nodos adyacentes al nodo
obtenido y se adicionan a la lista abierta a
menos que el nodo se encuentre en la lista
cerrada o que el nodo sea sólido
6. Si el nodo adyacente ya se encuentra en la
lista abierta se verifica que el costo sea menor,
si es menor se cambian los valores de costo,
sino se ignora DATOS DEL EJEMPLO
7. Se vuelve al paso 3 y se repite hasta que el
punto 4 sea verdadero o que la lista abierta
quede vacía

2.5.6. ANALISIS DEL ALGORITMO

 Completo: si el problema tiene una solución,


este algoritmo la encuentra siempre.
 Óptimo: Si. Si f(n) es admisible, se garantiza
que la solución encontrada es la óptima (la de
menor coste).
 Complejidad temporal: Exponencial. Si f(n) es
consistente, se garantiza que este algoritmo
es el que menos nodos expande de todos los
anteriores.
 Complejidad espacial: Mantiene todos los
nodos en memoria.

2.5.7. APLICACIONES PASO 1

Se tiene a S0 como nodo inicial y a S1, S4, S5 y S6


 Aplicativos para encontrar rutas entre de
como los nodos directamente conectados a él.
desplazamiento entre localidades.
 Minería de datos, búsqueda de
comportamiento en los datos.
 Procesamiento de imágenes.
 Medicina humana, softwares médicos, control
de tumores, problemas cancerígenos.
 En la aeronavegación y transporte, el pilotaje
automático, búsquedas de rutas más
próximas.
 Video juegos de estrategia, camino más corto,
ejemplo: Pacman: Los fantasmas que
persiguen a Pacman buscan el camino más
corto, en lugar de aparecer en forma aleatoria
en el Mapa del Juego.
PASO 2 (PARTE 1) PASO 4 (PARTE 1)

Se agregan al recorrido los nodos directamente Es necesario evaluar si existe una mejor forma de hacer
conectados a S0 junto con sus costes (función g(s) y el recorrido hasta el nodo S2. para esto es necesario
con los valores de la función heurística h(s). saber si existen otros nodos conectados con S2, en este
caso existe uno el cual es S4.

PASO 2 (PARTE 2) PASO 4 (PARTE 2)

Se obtienen los valores para la función f(s) sumando Se evalúa la función f(s) para el recorrido desde S4
los valores de g(s) y h(s) que en este caso serian: f(s1) hasta S2 calculando la suma de g(s) + h(s). El resultado
= 30, f(s4) = 50, f(s5) = 120 y f(s6) = 130. de la operación es 80+ 20 = f(S2) = 100.

PASO 3 (PARTE 1) PASO 5 (PARTE 1)

El recorrido se continua por el nodo cuya función f(s) Se comprueba que el recorrido entre S4 y S2 es mejor
haya sido la menor. En este caso es el nodo S1 con y se descarta el recorrido de S1 a S2. Se agregan los
función f(s) = 30. nodos directamente conectados a S2.

PASO 3 (PARTE 2) PARTE 5(PARTE 2)

Se agregan los nodos directamente conectados a S1. Para este caso se tiene que S3 está directamente
El nodo agregado fue S2. Se evalúa la función f(s) conectado. Se evalúa la función f(S3) que resulta tener
que da como resultado f(S2) = 120. un valor de 35.
PASO 6 (PARTE 1) III. PERSPECTIVA DE LA BUSQUEDA HEURISTICA

Como en el caso anterior es necesario evaluar si El poder de juego de BuhoChess se logró gracias a la
búsqueda bibliográfica de los valores recomendados
existen rutas alternas para llegar a S3. Existe una
para la función de evaluación y, sobre todo, a la
ruta que va desde S5 hasta S3. experiencia en el juego del autor para ajustar estos
pesos. Estos criterios son subjetivos y es necesaria una
experimentación intensiva para validarlos. Por otra
parte, el uso de una función de evaluación lineal es una
simplificación de la manera en que un humano evalúa
las posiciones de un tablero.

Como trabajo futuro entonces, es primordial el


PASO 6 (PARTE 2) desarrollo de una función de evaluación más compleja y
que tome en cuenta aspectos no lineales. Dicha función
puede desarrollarse como una red neuronal, donde las
Se calcula el valor para f(s) en el recorrido de S5 a neuronas de entrada son los valores (en centipawns) de
S3. el resultado es f(S3) = 30. las diferentes características, y como neurona de salida
el valor de la posición. El uso de una red neuronal
permite el uso de técnicas de aprendizaje supervisado y
aprendizaje reforzado para ajustar la función de
evaluación.

IV. CONCLUSIONES

 Los métodos de búsquedas heurísticas son más


PASO 7
utilizados ya que aplican un conocimiento previo
sobre los problemas para obtener mejores
Al existir una mejor ruta para llegar a S3 se descarta resultados en la búsqueda.
la que fue anteriormente encontrada y se sigue la  El método A* es el más utilizado ya que brinda
nueva ruta. Se agregan los nodos conectados a S3 y mejores resultados y a partir de este, se
se encuentra el nodo S8 el cual es una meta con originan otros métodos de búsquedas
valor h(S8) = 8 y cuyo recorrido desde S3 da como heurísticas.
resultado 5 para la función f(s).
V. REFERENCIAS BIBLIOGRAFICAS

PASO 8

El algoritmo termina cuando se encuentra una meta.


El coste total del recorrido es de 20 + 20 + 5 = 45.

Вам также может понравиться