Algoritmos de Búsqueda en IA: Informados y No Informados
Algoritmos de Búsqueda en IA: Informados y No Informados
Algoritmos de búsqueda:Universidad
Informada y no
Nacional de Trujillo
Informada
Encuentra la solución más “cercana” al estado
Resumen— inicial
En esta investigación se explorarán los diferentes algoritmos Siempre encuentra una solución si esta existe
de búsqueda utilizados en inteligencia artificial (IA),
centrándose en las categorías de búsqueda informada y no
informada. La búsqueda es una técnica esencial en IA para
encontrar soluciones a problemas donde se necesita determinar A.3. Ejemplo de Búsqueda en Amplitud:
una secuencia de acciones desde un estado inicial hasta un estado Estado Inicial: A
objetivo. Estado Final: E
I. INTRODUCCIÓN
Crear un conjunto vacío para nodos visitados. AÑADIR: Se marca el vecino como
Insertar el nodo inicial en la pila. visitado.
Marcar el nodo inicial como visitado. APILAR: Se inserta el vecino en la pila.
b) Proceso de búsqueda 3. Finalización
Mientras la pila no esté vacía: DEVOLVER None: Si la pila se vacía sin haber
Extraer el nodo en la parte superior de la pila. encontrado el objetivo, se devuelve una indicación
Si el nodo actual es el objetivo: de que no se encontró.
Detener la búsqueda y devolver el camino
encontrado. C. Búsqueda Por Costo Uniforme
Para cada vecino no visitado del nodo actual:
Marcar el vecino como visitado. La búsqueda de costo uniforme es una estrategia de
Insertar el vecino en la pila. búsqueda que explora un espacio de estados expandiendo los
c) Finalización nodos con el costo acumulado más bajo desde el nodo inicial.
Si la pila se vacía sin encontrar el objetivo: A diferencia de la búsqueda en amplitud, donde se prioriza la
Indicar que el objetivo no se encontró. expansión de nodos según su profundidad, la búsqueda de
costo uniforme prioriza nodos en función del costo total
B.4. Pseudocódigo del Algoritmo acumulado para alcanzarlos. Esto permite encontrar la
solución con el menor costo posible en términos de la suma
ALGORITMO (grafo, nodo_inicial, objetivo) de los costos de las acciones tomadas para llegar a la
PILA ← nueva pila vacía solución.
VISITADOS ← nuevo conjunto vacío
APILAR(PILA, nodo_inicial) C.1. Características.
AÑADIR(VISITADOS, nodo_inicial)
Garantiza alcanzar el estado objetivo.
brinda una solución óptima de costo de ruta para la
MIENTRAS PILA no esté vacía HACER
nodo_actual ← DESAPILAR(PILA) búsqueda si el problema se define sobre los costos
de las transiciones.
SI nodo_actual = objetivo ENTONCES La complejidad de instrucciones y memoria de la
DEVOLVER camino desde nodo_inicial hasta búsqueda de costo uniforme es:
nodo_actual
COLA_PRIORIDAD: Se crea una cola de prioridad “Arriba” es aplicable a un estado si existe una casilla
vacía para manejar los nodos a explorar según su arriba y no está separada por barrera; el resultado de
valor heurístico. aplicarlo es la casilla de arriba y su coste es 1
VISITADOS: Se crea un conjunto vacío para rastrear El resto de operadores, análogamente
los nodos visitados. Consideraremos que los sucesores están ordenados
ENCOLAR_PRIORIDAD: Se inserta el nodo inicial alfabéticamente
en la cola de prioridad con su valor heurístico.
2. Bucle Principal
MIENTRAS COLA_PRIORIDAD no esté vacía: Se
repite el proceso mientras haya nodos en la cola de
prioridad.
DESENCOLAR_PRIORIDAD: Se extrae el nodo
con el menor valor heurístico.
SI nodo_actual = objetivo: Si el nodo extraído es el
objetivo, se devuelve el camino encontrado.
SI nodo_actual NO está en VISITADOS: Si el nodo Fig11. Problema del laberinto
actual no ha sido visitado, se realiza lo siguiente:
AÑADIR: Se marca el nodo actual como visitado.
PARA cada vecino EN vecinos(nodo_actual): Se
exploran todos los vecinos del nodo actual.
SI vecino NO está en VISITADOS: Si el vecino no
ha sido visitado, se realiza lo siguiente:
ENCOLAR_PRIORIDAD: Se inserta el vecino en
la cola de prioridad con su valor heurístico.
3. Finalización
DEVOLVER None: Si la cola de prioridad se vacía
sin haber encontrado el objetivo, se devuelve una
indicación de que no se encontró.
D. Búsqueda A*
Fig12. Solución del laberinto
A* es un algoritmo de búsqueda informada utilizado en
inteligencia artificial para encontrar el camino más corto o la Solución encontrada: I-W-K-M-F
solución óptima en un espacio de estados. Utiliza una función Óptima (heurística admisible)
de evaluación f(n)=g(n)+h(n), donde g(n) es el costo
Nodos analizados: 8
acumulado desde el estado inicial hasta el nodo n y h(n) es
una heurística que estima el costo restante desde n hasta el Aunque en este caso se analizan más nodos (se ha
objetivo. A* expande los nodos de manera que minimiza f(n), explorado parcialmente un camino equivocado), la
lo que permite encontrar una solución óptima si la heurística solución óptima está asegurada
es admisible (no sobreestima el costo real) y consistente Nótese que se generan dos nodos distintos con el
(satisface la desigualdad de triangularidad). mismo estado K (pero distinto camino)
C.1 Características
El problema principal se descompone en
subproblemas más manejables, formando una
estructura de árbol de posibles soluciones donde cada
nodo representa un subproblema con restricciones SI nodo_actual = objetivo ENTONCES
adicionales. MEJOR_COSTO ← costo_actual
Se calcula una cota para cada subproblema que DEVOLVER reconstruir_camino(desde
representa el mejor valor posible que se puede nodo_inicial hasta nodo_actual)
obtener dentro de ese subproblema. Si la cota no
puede mejorar la mejor solución encontrada hasta el SI nodo_actual NO está en VISITADOS ENTONCES
momento, el subproblema se descarta. AÑADIR(VISITADOS, nodo_actual)
El proceso de acotación permite eliminar
PARA cada (vecino, costo) EN
subproblemas no prometedores sin necesidad de
vecinos(nodo_actual) HACER
explorarlos exhaustivamente, reduciendo así el
costo_total ← costo_actual + costo
espacio de búsqueda y mejorando la eficiencia del SI vecino NO está en VISITADOS O costo_total
algoritmo. < COSTOS[vecino] ENTONCES
COSTOS[vecino] ← costo_total
costo_estimado_vecino ← costo_total +
C.2. Algoritmo heurística[vecino]
ENCOLAR_PRIORIDAD(COLA_PRIORIDAD,
a) Inicialización vecino, costo_estimado_vecino)
Crear una cola de prioridad vacía. FIN SI
FIN PARA
Crear un conjunto vacío para nodos visitados.
FIN SI
Insertar el nodo inicial en la cola de prioridad con un FIN MIENTRAS
costo de 0 y su valor heurístico.
b) Proceso de búsqueda DEVOLVER (None: es una indicación de que no se
Mientras la cola de prioridad no esté vacía: encontró el objetivo
Extraer el nodo con el menor costo estimado FIN ALGORITMO
(costo actual + heurística) de la cola de prioridad.
Si el nodo actual es el objetivo:
Detener la búsqueda y devolver el camino C.4. Descripción del Pseudocódigo
encontrado.
Si el nodo actual no ha sido visitado: 1. Inicialización
Marcar el nodo actual como visitado. COLA_PRIORIDAD: Se crea una cola de prioridad
Para cada vecino del nodo actual: vacía para manejar los nodos a explorar según su
Calcular el costo total para alcanzar el vecino. costo estimado (costo actual + heurística).
Si el vecino no ha sido visitado o el nuevo VISITADOS: Se crea un conjunto vacío para rastrear
costo es menor que el costo registrado los nodos visitados.
anteriormente: MEJOR_COSTO: Se inicializa con un valor infinito
Actualizar el costo del vecino. para rastrear el mejor costo encontrado.
Insertar el vecino en la cola de ENCOLAR_PRIORIDAD: Se inserta el nodo inicial
prioridad con el costo estimado (costo en la cola de prioridad con un costo de 0 más su
total + heurística). valor heurístico.
c) Poda COSTOS: Se inicializa un diccionario para
Si un nodo en la cola tiene un costo mayor que el almacenar los costos acumulados desde el nodo
menor costo encontrado hasta ahora: inicial hasta cada nodo.
Ignorar ese nodo (podar). 2. Bucle Principal
d) Finalización MIENTRAS COLA_PRIORIDAD no esté vacía: Se
Si la cola de prioridad se vacía sin encontrar el repite el proceso mientras haya nodos en la cola de
objetivo: prioridad.
Indicar que el objetivo no se encontró. DESENCOLAR_PRIORIDAD: Se extrae el nodo
con el menor costo estimado.
C.3. Pseudocodigo SI nodo_actual = objetivo: Si el nodo extraído es el
objetivo, se actualiza el mejor costo y se devuelve el
camino encontrado.
ALGORITMO BRPM(grafo, nodo_inicial, objetivo, heurística)
COLA_PRIORIDAD ← nueva cola de prioridad vacía SI nodo_actual NO está en VISITADOS: Si el nodo
VISITADOS ← nuevo conjunto vacío actual no ha sido visitado, se realiza lo siguiente:
MEJOR_COSTO ← infinito AÑADIR: Se marca el nodo actual como visitado.
ENCOLAR_PRIORIDAD(COLA_PRIORIDAD,
nodo_inicial, 0 + heurística[nodo_inicial])
COSTOS[nodo_inicial] ← 0
PARA cada (vecino, costo) EN Los algoritmos de búsqueda informada son generalmente
vecinos(nodo_actual): Se exploran todos los más eficientes que los no informados porque utilizan
vecinos del nodo actual. información heurística para guiar la búsqueda. Sin
costo_total: Se calcula el costo total para alcanzar embargo, los algoritmos no informados son útiles cuando
el vecino. no se dispone de una heurística fiable.
SI vecino NO está en VISITADOS O costo_total
< COSTOS[vecino]: Si el vecino no ha sido Requerimientos de Información:
visitado o el nuevo costo es menor, se realiza lo Los algoritmos informados requieren una heurística bien
siguiente: diseñada y adecuada para ser efectivos. Sin una buena
COSTOS[vecino]: Se actualiza el costo heurística, pueden perder su ventaja en eficiencia sobre
acumulado del vecino en el diccionario de los métodos no informados.
costos.
ENCOLAR_PRIORIDAD: Se inserta el Balance entre Recursos y Precisión:
vecino en la cola de prioridad con el costo La elección del algoritmo depende del balance entre la
estimado (costo total + heurística). precisión de la heurística y el coste computacional. Es
3. Poda esencial considerar las limitaciones de memoria y tiempo
SI costo_actual > mejor_costo: Si un nodo en la cola de procesamiento, especialmente en aplicaciones
tiene un costo mayor que el mejor costo encontrado prácticas donde estos recursos pueden ser limitados.
hasta ahora, se ignora ese nodo.
4. Finalización
DEVOLVER None: Si la cola de prioridad se vacía
sin haber encontrado el objetivo, se devuelve una
indicación de que no se encontró. REFERENCIAS
IV. CONCLUSIONES
Eficiencia y Aplicabilidad: