Busquedas IA
Busquedas IA
"
'.
Búsqueda
FOTOCOPIADORA
'C& F
.Apuntes
D ReIIe favalorO
DnCarlOlS. Menem y r.
~.
embargo una red puede reducirse a un árbol mediante la repetición de algunos nodós, con lo
cual no perdemos generalidad si nos abocamos al estudio de búsquedas en árboles.
.1
Los distintos métodos pueden clasificarse de la siguiente manera:
No Informados
Búsqueda Primero en Anchura (BP A)
Búsqueda Primero en Profundidad (BPP)
Ramificación y Acotación (BPP acotado)
:3
Estos métodos pueden diferir en muchos aspectos tales como, la forma de seleccionar un
estado para expandirlo, la forma de seleccionar los operadores, si puede garantizarse la
solución óptima, si un cierto estado puede ser considerado más de una vez, cuantas
descripciones de los estados deben mantenerse desde el principio hasta el final del proceso de
"
búsqueda, Bajo que circunstancias debe abandonarse un camino de búsqueda, la dirección de
,
..••.
!'.
la búsqueda (hacia delante o hacia atrás), la forma de seleccionar las reglas a aplicar
La mayoría de las veces no se recorre el árbol de búsqueda de forma completa, se utilizan las
reglas para' restringir la exploración. Los detalles del uso de reglas para cambio de estado se
explican en el capítulo sobre Planificación.
Si es muy probable que un mismo nodo se genere de distintas formas entonces el espacio de
búsqueda se representa mejor con un grafo. Para evitar añadir un nuevo nodo a un grafo, debe
"'emplearse un algoritmo de control de nodos duplicados. Por precaución, también debería
añadirse un algoritmo de control de ciclos.
Para cádá nodo se generan todas las posibles situaciones resultantes' de la aplicación de todas
las reglas adecuadas. Se continúa con este proceso hasta que alguna regla produce algún
estado objetivo.
Algoritmo
l. Crear una Pila (u otra estruc~a dinámica) y asignarle el estado inicial
2. Mientras la Pila no esté vacía, hacer:
3. Extraer el primer elemento de la Pila.
4. Generar nuevos estados derivados del actual
5. Explorar si los nuevos nodos son estado objetivo, si alguno es objetivo salir.
6. En caso contrario, añadir nuevos nodos a la Pila y volver a 3.
Sus ventajas son que no queda atrapado en callejones sin salida, si existe una solución se
garantiza que se logra encontrarla, si existen múltiples soluciones permite hallar la solución
optima. Su desventaja es su mala performance. (mucha memoria y poca velocidad, dada su
explosión combinatoria).
Continúa po; una sola rama del árbol hasta encontrar una solución o hasta que se to~e la
decisión de terminar la búsqueda por esa dirección.-'
Terminar la búsqueda por una ruta 'tiene sentido cuando se ha llegado a un callejón sin salida,
se produce un estado ya alcanzado o la ruta se alarga más de lo especificado en algún límite,
por lo que se produce una vuelta atrás.
Presenta como ventaja que asegura hallar una solución si existe.
Se suelen mencionar también como ventaja, que eventualmente se puede encontrar una
solución sin tener que examinar gran parte del espacio de estados. Pero esto es por azar, lo
que no supone una caracteÍistica confiable ni mucho menos, por el contrario podría ocurrir a
la inversa.
Ramificación y Acotación
Comienza generando rutas completas, manteniéndose la ruta más corta encontrada hasta ese
momento. Deja de explorar una ruta tan pronto como su distancia total, hasta ese moment¿,
sea mayor que la que se ha marcado como la ruta más corta.
Heurística
Una regla heurística sería por ejemplo, considerar que debemos realizar una
presentación ante un auditorio, y aplicar la regla de que para que la presentación sea un éxito,
si hay menos de 20 asistentes debe ser mas informal y dialogada, y en caso contrario deben
seguirse las pautas de una exposición formal y sin interrupciones. Esto podría dar buenos
resultados, pero podría haber excepciones, por ejemplo, que pasaría ante un'auditorio de 16
personas de diferentes países que tuvieran un nivel de ingles diferente? o que pasaría ante un
auditorio de 16 personas de muy diferentes niveles de conocimiento del tema a presentar?
No podría generarse un diálogo animado en la presentación, aunque el número de
asistentes fuera inferior a 20 con lo cual no seria válida la regla para ese caso particular.
Asi, una regla heurística, es una regla que podría permitirnos resolver perfectamente
un problema particular, pero que podría arrojar un resultado erróneo al aplicarla en otro
problema similar.
Por lo anterior, la heurística suele ser despreciada por algunos científicos, pero a pesar
de eso, permite, en ciertos casos alcanzar resultados de aplicación práctica notables.
.. ,
5
Dentro del campo de los algoritmos de búsqueda, suele decirse que una heurística es
una técnica que aumenta la eficiencia de un proceso. de búsqueda, proporcionando una guía
para este y posiblemente sacrificando demandas de completitud.
La búsqueda heurística es una familia de algoritmos que resuelve problemas
complicados con eficiencia comprometiendo requisitos de movilidad y sistematicidad, y
permiten construir una estructura de control que no garantiza la mejor respuesta pero que casi
.siempre encuentra una buena solución.
• Normallflente no se necesita una solución óptima, con frecuencia una buena solución
es adecuada
• Si bien las aproximaciones que se logran a través de una heurística pueden no ser inuy
buenas en los .PC?orescasos, ,estqs peores casos raramente ocurren en el mundo real
• Intentar comprender heurísticas· sirve para' profundizar nuestra comprensión del
dominio del problema, dado que estas representan conocimiento' del mupdo.
. Otro ejemplo podría ser la heurística. del vecino más próximo (de orden cuadrático) del
Problema del Viajante de Comercio.
Generación y Prueba
Este algoritmo es un procedimiento de BPP ya que las .soluciones completas deben generarse
antes de que se comprueben.
,.
~
Si es sistemático, y la solución existe, puede encontrarla, pero puede tardar más de lo
admisible, dado que se transforma en una búsqueda exhaustiva.
Al usar heurísticas, la solución puede encontrarse más rápidamente y si se combina con otras
técnicas puede ser muy eficaz, dado que se restringe el espacio de búsqueda.
Escalada Simple
Los métodos de Escalada constituyen una variante del de Generación y Prueba, existe
realimentación a partir del procedimiento de prueba, que se usa para ayudar al generador a
decidirse por cual dirección mOVerse por el espacio de búsqueda.
La función de prueba se amplia con una función heurística que ayuda a evaluar los
estados y proporciona una estimáción de lo cerca que nos encontramos del objetivo. Los mas
comunes son, Escalada Simple y Escalada por la Máxima Pendiente. .
Algoritmo:
Si el estado inicial es solución, devolverlo y tenninar
Hacer EA = Estado Inicial
Hasta que se encuentre un objetivo o no existan operadores que aplicar sobre EA
Seleccionar un operador y aplicarlo sobre él estado actual para obtener un nuevo estado N
EvalúeN
Si es objetivo, devolverlo y tenninar
Si no es objetivo, pero es mejor que EA, hacer EA = N
Si no, pero es peor que EA, repetir el ciclo.
Es una variación del método anterior, que considera todos los movimientos posibles a
partir del estado actual, y elige el mejor de ellos como nuevo estado.
El algoritmo:
Si el estado inicial es solución, devolverlo y terminar
Hacer EA = Estado Inicial
Hasta que se encuentre un objetivo:
Aplicar todos los operadores al estado actual, para obtener los estados NI, N2; ...., Nk
EA = mejor_hasta_ahora
Para todo i = I ..k '
Si es objetivo, devolverlo y terminar
Si no es objetivo, pero es mejor, mejor_hasta_ahora = Ni
Si es peor, seguir
Si el mejor_hasta_ahora es el EA
Informar fa¡lo~ y devolver' ei' EA" ,
Si no: EA = mejor_hasta_ahora y continuar en 2)
Notas:
Escalada por Máxima Pendiente tarda más en seleccionar wí movimiento
Escalada Simple necesita más movimientos para alcanzar una solución
Existen casos en los que no se halla solución, dado que no se pueden generar estados mejores:
Máximo Local:
Meseta:
Cresta:
..•..•••....
; Il~)
8
Enfriamiento Simulado
El objetivo es disminuir la probabilidad de caer en un máximo local, una meseta o una cresta.
Por lo tanto se realiza una exploración con saltos amplios al principio, que se van reduciendo
paulatinamente.
Para lograr esto se plantea minimizar una función objetivo, para alcanzar un estado final de
mínima energía, basando el método en los procesos de enfriamiento de metales, en los que las
sustancias fisicas evolucionan hacia configuraciones de más baja energía.
La probabilidad de modificar loo~estados de energía viene dada por:
p = e/\(AE/k*T)
¡ .
Primero el Mejor
Combina las ventajas de BP A Y BPP en un solo método, siguiendo un solo camino a la vez, y
cambiándolo cuando alguna ruta parezca más prometedora, además utiliza árboles de tipo O
Estrategia:
Se selecciona el nodo más prometedor, utilizando algunafunción heurística apropiada.
Se expande el nodo elegido aplicando las reglas para generar a sus sucesores
Si algún sucesor es solución, el proceso tennina
Si no:
Se añaden los nodos a' la lista
Se vuelve al punto inicial
Búsqueda A * (A-star)
Se modifica el anterior empleando una función heurística para estimar el costo desde un nodo
(actual) hasta el nodo objetivo. -
Realiza una estimación de los méritos de cada uno de los nodos que se van generando, esto
permite que el algoritmo examine primero los caminos más prometedores.
Supongamos que una función f representa el costo exacto de llegar desde el estado inicial al
estado final, como esa función no es conocida, debemos aproximarla o estimarla, por medio
de una función f '.
Supongamos-que se sabe cual es la medida exacta del costo de llegar desde el estado inicial al
estado actual, por medio de una función g, cuyo valor es la suma de los costes de aplicación
de las reglas que se han ido eligiendo a través del mejor camino hasta el nodo, por lo tanto
deberá ser NO NEGATIV A. --
Supongamos que una. función h representa .el coste necesario para alcanzar el nodo objetiyo,
en realidad esta función también se estima, por medio de una función h' que representa una
estimación del coste adicional necesario para alcanzar un nodo objetivo a partir del nodo
actual.
Corno es una estimación de· la cercanía del objetivo, este es el lugar donde se emplea, el
c-onocimiento acerca del dominio del problema. -
Por lo tanto, se tiene que la función f' representa una estimación del coste necesario para
alcanzar un estado objetivo por el camino que se ha seguido para generar el nodo actual.
~
JO
Algoritmo:
Puede darse el caso en que v~rios caminos cond~can a un nodo. Si tomamos a cada nodo
como una tarea que un sistema debe realizar, entonces surgen dos interesantes cuestiones:
4! Al realizar una tarea, se expande un nodo
• Si por, muchos caminos sé sugiere una tarea, esta résulta ser más interesante.
A todas las incidencias en un nodo tarea se les llama razones (o también justificaciones,
recomendaciones) por la cual realizarla.
Cada camino que recomienda una tarea proporciona una razón de por que la tarea debería
4 conducir a un resultado interesante.
V
Cuanto más razones haya, aumenta la probabilidad de que la tarea lleve a algo adecuado.
Para almacenar las tar~as, se propone el concepto de agenda que en definitiva es el conjunto
de tareas que un sistema debe realizar.
A cada tarea se le asocian dos objetos: _
Una lista de las razones por las que se propone la tarea
Un peso asignado a la tarea
A cada justificación también se le asocia una medida de su valor.
A cada taraa se le asignan recursos, generalmente medidos en términos de espacio / tiempo.
Reducción de problemas
Es una técnica que consiste en dividir un problema en sub. problemas hasta llegar al nivel de
módulos. "
Se escoge como representación los grafos Y/O.
En este caso, un nodo no es mejor por si
mismo, si no por pertenecer a una ruta más
, prometedora.
Debe defInirse un límite de INUTILIDAD e;n
términos de espacio o de tiempo.
El recalculo es hacia atrás, es costoso pero
"
necesano.
Si existe interacción entre sub-objetivos el
Para resolver el probleIlla A, es preciso método no funciona.
resolver el subproblema B, o los Tenemos dos variantes algorítmicas:
subproblemas C y D Reducción de Problemas Simple
Elalgóritmo AO·
Verificación de Restricciones
Define los estados como un conjunto' de restricciones que deben satisfacerse para resqlver
completamente el problema, de este modo lo que se busca es un estado .que satisfaga un
conjunto de restricciones impuestas por el problema.
Es una técnica que permite razonar tanto hacia del~te como hacia atrás; permite resolver las
partes más importantes del problema y, después, volver atrás y resolver los pequeños
problemas que surgen al "pegar" los trozos más grandes.
Se centra en la detección de diferencias entre el estado actual y el estado objetivo.
Una vez que se ha aislado la diferencia, debe encontrarse un operador que pueda reducirla, si
tal operador no puede aplicarse en el estado actual, se crea el s.ubproblema que consiste en
alsanzar un estado en el que se satisfaga la precondición del operador, y este pueda ser
aplicado.
Si el estado objetivo no es alcanzado, se crea un subproblema que permita alcanzar un estado
intermedio tal que desde el cual, el estado objetivo pueda ser alcanzado.
Inteligencia Artificial Destefanis/04 11
.lt.N
[~
1)
6
r------,----
I I , '1
T--
I
I I 1 I
I I I I
I I I 1 I
1
_L1 1
-1...:.
__ I I
4 ~----
1
1
1
1
1
--t------t--------·
I I
I I I I
I I 1 I
1 1 I I
_..J I I I 1
2 L__ ...L_ _ __ '_.L _
I I I I
I I ¡
I I I
I I I
I I I
O IL I
....l_ __LI I
L _
.0 2 4 6 . 8 10
Fig.1
1. Crear cola inicial de trayectorias parciales..' Tiene solo una trayectoria parcial
correspondiente al nodo inicial.
2. Extender la trayectoria hasta los vecinos del -nodo terminal de la trayectoria, y
reemplazar la trayectoria original por las encontradas.
3. Se repite el proceso hasta que alguna trayectoria parcial sea una trayectoria completa.
La palabra vecino en este contexto significa que dos nodos son vecinos si están conectados
por un arco.
Búsqueda Primero en Profundidad. Codificación Lisp:
este código puede ser guardado en un archivo de texto, por ejemplo "bus.lsp" y c.argado en el
editor de Lisp mediante:
(defun pep ( inicial final &optional (cola (list (list inicial))) ); primero en profundi~ad .
(cond « endp cola) nil) ; esta vacia la cola?
«eq final (first (first cola))) ; encuentra el final?
(reverse (frrst cola))) ; devuelve trayectoria
(t (pep inicial final (append (extiende (first cola)) (rest cola) )))
)
)
deberíamos obtener el resultado excepto que aún falta definir la función EXTIENDE. Por lo
tanto escribimos esta función en nuestro archivo y lo cargamos nu~vamente.
En el apartado anterior quisinws mostrar la:fonna de operar en Lisp, y lo reducido que puede
ser su código, así como un marco general de búsqueda que aplicamos en primer lugar al caso
primero en profundidad. Basta una sencilla modificación para transfonnar el código para
realizar la búsqueda en amplitud. Simplemente debemos agregar las nuevas trayectorias
parciales al fmal de la cola como se ve en el siguiente código.
~'~"'. (defun pea (inicial final &optional (cola (list (list inicial))) ); primero en amplitud'
i::D (cond ((endp cola) nil) ; esta vacía la cola?
((eq'ftnal (first (first cola))) ; encuentra el final?
(reverse (frrst cola))) ; devuelve trayectoria
; intenta otra vez, salta la trayectoria extendida y agrega las nuevas en la parte posterior
(t (pea inicial final (append (rest cola) (extieI?-de(first cola)) ) ))
)
)
• no infonnadas, ciegas
• infonnadas, heurísticas
(defun pem ( inicial final &optíonal (cola (list (list inicial») ); primero el mejor
(cond «endp cola) ni!) ; esta vacía la cola?
«eq final (first (first cola») ; encuentra el fmal?
(reverse (first cola») ; devuelve trayectoria
(t (pem-inicial [mal
(sort (append (extiende (frrst cola» (rest cola) )
#'(lambda (pI p2) (cercanop pI p2 fmal»
)
)
)
.)
~.-.
.. Inteligencia Artificial Destefanis/04 16
t;~··,-.
~
g,
(defun esc (.inicial final &optional (cola (list (list inicial») ); primero el mejor
(cond ((endp cola) nil) ; esta vacia la cola?
((eq final (first (first cola») ; encuentra el final?
(reverse (first cola») ; devuelve trayectoria
(t (esc inicial final
(append (sort(extiende (fust cola» #'(lambda (pI p2)
(cercanop pI p2 final)))
(rest cola)
)
)
)
:-;.
)
"
Este es un procedimiento similar a primero en amplitud pero que solo extiende una cantidad
especificada de las mejores trayectorias de cada longitud, donde mejor .significa .terminar lo
mas cercano al nodo objetivo. El nombre proviene de que ve una cantidad pequeña de
caminos por donde continuar, de la misma manera que una persona al usar una linterila ve una
fración de lo que podria ver si la escena estuviera completamente iluminada.
·... -'i
...
-,R., . ' .