Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Criterios de Búsqueda en Inteligencia Artificial
1. República Bolivariana De Venezuela
Ministerio del Poder Popular Para La Defensa
Universidad Nacional Experimental Politécnica De La Fuerza
Armada
UNEFA-NUCLEO LARA
Alumno:
Hilario Pérez
C.I: 25.138.442
Mat: Inteligencia Artificial
Barquisimeto, Junio 2018
7D01IS
2. Búsquedas Sin Información del Dominio (A Ciegas)
Este tipo de búsqueda intenta encontrar la primer solución sin importar que tan optima sea, no detecta si esta aproximado o alojada de la solución.
Búsqueda en Amplitud o
Anchura
Búsqueda en Profundidad Búsqueda General en Grafos
Definición
Es un algoritmo para recorrer o
buscar elementos de un grafo. Se
comienza por la raíz y se explora
todos los hijos de este nodo.
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.
Partiendo del nodo inicial, se extendie la
búsqueda a sus nodos vecinos, y así
hasta que uno de los nodos a los que se
expande la búsqueda es el nodo
objetivo. La búsqueda se realiza en
forma de árbol.
Características
• El conjunto open se maneja
como una lista FIFO (cola),
asegurando que los nodos
primeros visitados serán los
primeros expandidos.
• El recorrido del espacio de
estados se hace por niveles de
profundidad.
• Se expanden todos los nodos a
una profundidad en el árbol de
búsqueda antes de expandir
cualquier nodo del próximo nivel.
• siempre expande el nodo más
profundo en la frontera actual del árbol
de búsqueda.
• Puede implementarse por la
BÚSQUEDA-ÁRBOLES con una cola
último en entrar primero en salir
(LIFO), también conocida como una
pila
• Necesita almacenar sólo un camino
desde la raíz a un nodo hoja, junto con
los nodos hermanos restantes no
expandidos para cada nodo del camino
• Consta de dos listas, Abierta, y
Cerrada
• Cada nodo, almacenará información
a cerca de quien es su nodo
predecesor
• En un grafo de reducción, cada uno
de los nodos representan un
subproblema del problema original.
3. Ventajas
• es óptima si el costo del camino es
una función no decreciente de la
profundidad del nodo
• es óptima cuando todos los costos
son iguales
• es completa si el nodo objetivo más
superficial está en una cierta
profundidad finita
• Una vez que un nodo se ha expandido,
se puede quitar de la memoria tan pronto
como todos su descendientes han sido
explorados.
• requiere almacenar sólo bm+1 nodos.
• Una vez que la expansión alcanza el
nodo destino, se genera un camino
siguiendo la cadena de predecesores.
• el algoritmo procesará primero los
nodos de la lista abierta que tengan
una menor distancia al origen,
evitando así expansiones
innecesarias.
Desventajas
• Hay que considerar la cantidad de
tiempo y memoria que utiliza para
completar una búsqueda.
• Los problemas de búsqueda de
complejidad-exponencial no
pueden resolverse por métodos sin
información, salvo casos
pequeños.
• Puede hacer una elección equivocada y
obtener un camino muy largo (o infinito)
aun cuando una elección diferente
llevaría a una solución cerca de la raíz
del árbol de búsqueda
• Puede "perderse" en una rama sin
encontrar la solución
• Si se encuentra una solución no se
puede garantizar que sea el camino más
corto
• Una vez calculada la ruta, si un
obstáculo se interpone en el camino
obtenido no se hará absolutamente
nada por evitarlo.
• No tiene capacidad para resolver
cambios inesperados en el mapa.
• A pesar de haber alcanzado el nodo
destino, el algoritmo no finaliza hasta
que lo procesa.
4. Algoritmo
asociado
procedure Búsqueda_en_amplitud {
open [estado_inicial]
closed {}
while (open no está vacía) {
remover el primer estado X de la lista open
if (X es un estado objetivo)
return éxito
else {
generar el conjunto de sucesores del estado X
agregar el estado X al conjunto closed
eliminar sucesores que ya están en open o en closed
agregar el resto de los sucesores al final de open }
}
return fracaso
}
procedure Búsqueda_en_profundidad {
open [estado_inicial]
closed {}
while (open no está vacía) {
remover el primer estado X de la lista open
if (X es un estado objetivo)
return éxito
else {
generar el conjunto de sucesores del estado X
agregar el estado X al conjunto closed
eliminar sucesores que ya están en open o en closed
agregar el resto de los sucesores al principio de open
}
}
return fracaso
}
5. Búsquedas Informadas (Heurísticas)
Busca soluciones aceptables, reduce el espacio de búsqueda y es capaz de determinar su proximidad a una solución y la calidad de la misma
utilizando conocimiento.
Búsqueda “Primero el Mejor” Búsqueda en Haz Algoritmo A*
Definición
Trata de expandir el nodo más
cercano al objetivo, alegando que
probablemente conduzca
rápidamente a una solución.
Guarda solamente un nodo en la memoria
podría parecer una reacción extrema para
el problema de limitaciones de memoria.
Forma más ampliamente conocida de la
búsqueda primero el mejor.
Características
• Elige como siguiente nodo a
aquel con mayor función de
evaluación.
• Se parece a la búsqueda primero
en profundidad en el modo que
prefiere seguir un camino hacia el
objetivo, pero volverá atrás
cuando llegue a un callejón sin
salida.
• Elige un conjunto de nodos como los
siguientes a expandir, y hacerlo de
forma irrevocable.
• Irrevocable/tentativo.
• Ponderar a la vez lo cerca que
estamos del nodo meta y lo lejos que
estamos del nodo inicial.
• Se usa con la BÚSQUEDA-
ÁRBOLES.
• A* es óptima si h(n) es una heurística
admisible.
6. Ventajas
• No depende en exceso de la
función de evaluación.
• Pueden reducir la complejidad
considerablemente
• En vez de elegir los k mejores del
conjunto de sucesores candidatos, la
búsqueda de haz estocástica escoge a k
sucesores aleatoriamente, con la
probabilidad de elegir a un sucesor como
una función creciente de su valor.
• Más permisible.
• A* es óptimamente eficiente para
cualquier función heurística.
• Da soluciones más cercanas a la raíz.
Desventajas
• Puede ir hacia abajo en un camino
infinito y nunca volver para intentar
otras posibilidades.
• Excesiva en complejidad espacial,
pues se deben guardar los nodos
abiertos.
• Se pueden concentrar rápidamente en
una pequeña región del espacio de
estados, haciendo de la búsqueda un
poco más que una versión cara de la
ascensión de colinas
• En caso de que el sistema sea
irrevocable, este método no actúa con
eficacia.
• El número de nodos dentro de la
curva de nivel del objetivo en el
espacio de búsqueda es todavía
exponencial en la longitud de la
solución.
• La función de evaluación se complica.
7. Búsquedas con Adversario
Analiza los problemas en los que existe mas de un adversario modificando el estado del sistema.
Método Minimax Método de Poda
Definición
Realiza una exploración primero en profundidad
completa del árbol de juegos.
Cuando lo aplicamos a un árbol minimax estándar, devuelve
el mismo movimiento que devolvería minimax, ya que podar
las ramas no puede influir, posiblemente, en la decisión final.
Características
• Es un algoritmo recursivo.
• Minimiza la pérdida máxima esperada en juegos
con adversario y con información perfecta.
• Es un algoritmo recursivo.
• Elige el mejor movimiento para ti mismo
suponiendo que tu contrincante escogerá el peor
para ti.
• Se usa para reducir el coste computacional de MINIMAX
podando las ramas que nos llevan a una solución peor
que las ya encontradas.
• Se aplica en técnicas con adversos.
8. Ventajas
• 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.
• Realiza una exploración primero en profundidad
completa del árbol de juegos.
• Puede mirar hacia delante aproximadamente dos veces más
que minimax en la misma cantidad del tiempo
Desventajas
• Es exponencial en el número de movimientos
• Puede haber otras estrategias contra oponentes
subóptimos que lo hagan mejor que la estrategia
minimax.
• Si m es mejor que n para el Jugador, nunca iremos a n en el
juego
• La eficacia de la poda alfa-beta es muy dependiente del
orden en el que se examinan los sucesores.
9. Algoritmo
asociado
Pseudocodigo minimax
miniMax (posActual,profundidad,jugador)
si
nodoTerminal(posActual,profundidad)
resultado.valor=funHeuristica(posActual,jugador);
resultado.camino=nulo;
return resultado;
sino
sucesor=generaMov(posActual,jugador);
si esta vacio (sucesor) entonces
resultado.valor=funHeuristica(PosActual,jugador);
resultado.camino=nulo;
return resultado;
sino
mejorResultado.valor=minInt; //Para cada
sucesor//
resultado.sucesor=miniMax(sucesor,profundidad-
1,contrario(jugador);
si
mejorResultado.valor < - resultado.sucesor.valor
entonces
mejorResultdo.valor=resultadoSucesor.valor;
mejorResultado.camino=sucesor +
resultado.sucesor.camino;
fin si;
fin por;
return mejorResultado;
fin sino;
fin sino;
fin miniMax
función BÚSQUEDA-ALFA-BETA(estado) devuelve una
acción
variables de entrada: estado, estado actual del juego
V MAX-VALOR (estado,-infinito, +Infinito)
devolver la acción de SUCESORES(estado) con valor v