INTRODUCCIÓN.
Estos algoritmos de búsqueda
local son eficientes en resolución de problemas y su principal ventaja es que usa
poca memoria es decir una cantidad constante y encuentra soluciones en estados
grandes.
MARCO
TEÓRICO
Algoritmos de búsqueda local y problemas de
optimización
Los algoritmos de búsqueda
local funcionan con un solo estado actual (más que múltiples
caminos) y generalmente se mueve solo a los vecinos del estado. Típicamente,
los caminos seguidos por la búsqueda no se retienen. Aunque los algoritmos de búsqueda
local no son sistemáticos, tienen dos ventajas claves: usan muy poca memoria
(por lo general una cantidad constante) y pueden encontrar a menudo soluciones
razonables en espacios de estados grandes o infinitos (continuos) para los
cuales son inadecuados los algoritmos sistemáticos.
Además de encontrar
los objetivos, los algoritmos de búsqueda local son útiles para resolver problemas
de optimización puros, en los cuales el objetivo es encontrar el mejor estado
según una función objetivo Muchos problemas de optimización no encajan en
el modelo <estándar> de búsqueda.
Para entender la búsqueda
local, encontraremos muy útil considerar la forma o el paisaje del espacio
de estados. El paisaje tiene <posición> (definido por el estado) y
<elevación> (definido por el valor de la función de coste heurística o función
objetivo). Si la elevación corresponde al costo, entonces el objetivo es
encontrar el valle más bajo (un mínimo global); si la elevación
corresponde a una función objetivo, entonces el objetivo es encontrar el pico más
alto (un máximo global) (Puedes convertir uno en el otro solamente al
insertar un signo menos.) Los algoritmos de búsqueda local exploran este
paisaje. Un algoritmo de búsqueda local completo siempre encuentra un objetivo
si existe; un algoritmo optimo siempre encuentran un mínimo/máximo global.
Búsqueda de Ascensión de Colinas
el algoritmo de
busqueda de ascensión de colinas es simplemente un bucle que
continuamente se mueve en dirección del valor creciente, es decir cuesta arriba.
Termina cuando alcanza <un pico> en donde ningún vecino tiene un valor más
alto. El algoritmo no mantiene un árbol de búsqueda, sino una estructura de datos
del nodo actual que necesita solo el registro del estado y su valor de función
objetivo. La ascensión de colinas no mira delante más allá de los vecinos inmediatos
del estado actual.
A veces a la ascensión
de colinas se le llama búsqueda local voraz porque toma un estado vecino
bueno sin pensar hacia donde ir después. Aunque la avaricia sea considerada uno
de los siete pecados mortales, resulta que los algoritmos avaros a menudo funcionan
bastante bien. La ascensión de colinas a menudo hace el progreso muy rápido hacia
una solución, porque es por lo general bastante fácil mejorar un estado malo. Lamentablemente,
la ascensión de colinas a menudo se atasca por los motivos siguientes:
v Máximo local: un máximo local es un
pico que es más alto que cada uno de sus estados vecinos, pero más abajo que el
máximo global. Los algoritmos de ascensión de colinas que alcanzan la vecindad
de un máximo local irán hacia el pico, pero entonces se atascaran y no podrán
ir a ninguna otra parte.
v Crestas: las crestas causan una
secuencia de máximos locales que hace muy difícil la navegación para los
algoritmos avaros.
v Meseta una meseta es un área
del paisaje del espacio de estados donde la función de evaluación es plana.
Puede ser un máximo local plano, del que no existe ninguna salida ascendente, o
una tarraza
por
la que se pueda avanzar. Una búsqueda de ascensión de colinas podría ser
incapaz de encontrar su camino en la meseta.
El éxito de la ascensión
de colinas depende muchísimo de la forma del paisaje del espacio de estados: si
hay pocos máximos locales y mesetas, la ascensión de colinas con reinicio aleatorio
encontrara una solución buena muy rápidamente.
Búsqueda de Temple Simulado.
Un algoritmo de ascensión
de colinas que nunca hace movimientos <cuesta abajo> hacia estados con un
valor inferior (o coste más alto) garantiza ser incompleto, porque puede estancarse
en un máximo local. En contraste, un camino puramente aleatorio, es decir moviéndose
a un sucesor elegido uniformemente aleatorio de un conjunto de sucesores, es completo,
pero sumamente ineficaz. Por lo tanto, parece razonable intentar combinar la
ascensión de colinas con un camino aleatorio de algún modo que produzca tanta
eficacia como completitud.
El bucle interno del
algoritmo del temple simulado es bastante similar a la ascensión de colinas. En
vez de escoger el mejor
movimiento,
sin embargo, escoge un movimiento aleatorio. Si el movimiento mejora la situación,
es siempre aceptado. Por otra parte, el algoritmo acepta el movimiento con una
probabilidad menor que uno. La probabilidad se disminuye exponencialmente con
la <maldad> de movimiento (la cantidad ΔE por la que se empeora la evaluación).
La probabilidad también disminuye cuando <la temperatura> T baja: los
<malos> movimientos son más probables al comienzo cuando la temperatura
es alta, y se hacen más improbables cuando T disminuye. Uno puede demostrar que
si el esquema
disminuye
Tbastante despacio, el algoritmo encontrara un óptimo global con probabilidad
cerca de uno.
Búsqueda por Haz Local
Guardar solamente un
nodo en la memoria podría parecer una reacción extrema para el problema de
limitaciones de memoria. El algoritmo^10 de búsqueda por haz local guarda
la pista de K estados (no solo uno). Comienza con estados generados
aleatoriamente. En cada paso, se generan todos los sucesores de los K estados.
Si alguno es un objetivo, paramos el algoritmo. Por otra parte, se seleccionan
los K mejores sucesores de la lista completa y repetimos.
A primera vista, una búsqueda
por haz local con K estados podría parecerse a ejecutar K reinicios aleatorios
en paralelo en vez de en secuencia. De hecho, los dos algoritmos son bastantes
diferentes. En una búsqueda de reinicio aleatorio, cada proceso de búsqueda se
ejecuta independientemente de los demás. En una búsqueda por haz local la información útil
es pasada entre los k hilos paralelos de búsqueda. Por ejemplo, si un
estado genera varios sucesores buenos y los otros K-1 estados generan sucesores
malos, entonces el efecto es que el primer estado dice a los demás, <£Venid aquí, la hierba es
más verde!> El algoritmo rápidamente abandona las búsquedas infructuosas y
mueve sus recursos a donde se hace la mayor parte del progreso.
Algoritmos Genéticos
Un algoritmo genético
(o AG) es una variante de la búsqueda de haz estocástica en la que los estados
sucesores se generan combinando dos estados padres, más que modificar un solo
estado. La analogía a la selección natural es la misma que con la búsqueda de
haz estocástica, excepto que ahora tratamos con reproducción sexual más que con
la reproducción asexual.
Como en la búsqueda de
haz, los AGs comienzan con un conjunto de K estados generados aleatoriamente,
llamados población Cada estado, o individuo está representado como
una cadena sobre un alfabeto finito (el más común, una cadenas de 0s y 1s).
CONCLUSIÓN.
Los
métodos de búsqueda local manteniendo sólo un número pequeño de
nodos en menoría. Los algoritmos de búsqueda local Iniciar con una solución
inicial generada aleatoriamente, o hallada con algún otro algoritmo.
BIBLIOGRAFÍA
Russell, S. y Norvig, P.
2004. INTELIGENCIA ARTIFICIAL. UN ENFOQUE MODERNO. PEARSON EDUCACION. 2 ed.
Madrid.
No hay comentarios:
Publicar un comentario