Logo Studenta

ACT5 INT ARTIFICIAL Y RN

¡Estudia con miles de materiales!

Vista previa del material en texto

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN 
“FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA” 
 
“INTELIGENCIA ARTIFICIAL Y REDES NEURONALES” 
 
 
ACTIVIDAD 5 
“EL ESTUDIANTE DEBERÁ DE HACER USO DE SOFTWARE O LENGUAJE DE 
PROGRAMACION PARA RESOLVER PROBLEMAS DE BUSQUEDA NO 
INFORMADA Y/O INFORMADA.” 
 
 
EQUIPO 07: 
 
 
SEMESTRE: ENERO-JUNIO 2023 
 
 
CATEDRÁTICO: 
 
 
FECHA DE ENTREGA: 15/05/2023 
 
 
Problema 
El código implementa el algoritmo de búsqueda en anchura (BFS) para resolver un 
problema de búsqueda en un espacio de estados. En particular, resuelve el 
problema de los botes, donde se tienen dos botes de capacidad 5 y 3 
respectivamente, y se busca encontrar una secuencia de acciones para llegar a un 
estado objetivo en el que uno de los botes contenga 4 unidades de agua. 
 
 
 
 
 
Comandos utilizados en la resolución 
- El algoritmo utiliza una cola (bfsQueue) para almacenar los estados a 
explorar y un conjunto (visitedStates) para almacenar los estados visitados. 
Comienza con un estado inicial específico (0, 0) que representa que ambos 
botes están vacíos. 
- La función isValidState verifica si un estado es válido, es decir, si se 
encuentra dentro de los límites del problema (los botes tienen capacidad de 
0 a 5 y de 0 a 3 respectivamente). 
- La función generateSuccessors genera los sucesores de un estado dado. 
Calcula todas las acciones posibles que se pueden realizar desde el estado 
actual y verifica si cada sucesor generado es válido. 
- La función isGoalState verifica si un estado es el estado objetivo, es decir, 
si uno de los botes contiene 4 unidades de agua. 
- La función printSolution muestra la secuencia de estados desde el estado 
inicial hasta el estado objetivo. 
- La función bfs implementa el algoritmo de búsqueda en anchura. Comienza 
insertando el estado inicial en la cola y en el conjunto de estados visitados. 
Luego, mientras la cola no esté vacía, extrae un estado de la cola y verifica 
si es el estado objetivo. Si es el estado objetivo, reconstruye la solución a 
partir de los estados visitados y la muestra utilizando la función 
printSolution. Si no es el estado objetivo, genera los sucesores del estado 
actual y los agrega a la cola y al conjunto de estados visitados si no han 
sido visitados previamente. 
- En el main, se crea el estado inicial (0, 0) y se llama a la función bfs para 
encontrar la solución. Finalmente, se retorna 0 para indicar que el programa 
se ejecutó correctamente. 
 
 
Flujo del programa 
Comienza en el estado inicial (0, 0) y lo asigna a la variable initialState. 
Llama a la función bfs y pasa initialState como argumento. 
Dentro de la función bfs: 
- Inicializa la cola bfsQueue y la inserta el estado inicial (initialState). 
- Inicializa el conjunto visitedStates y lo inserta el estado inicial. 
- Inicia un bucle mientras la cola no esté vacía: 
- Extrae el primer estado de la cola y lo asigna a currentState. 
- Verifica si currentState es el estado objetivo llamando a la función 
isGoalState. 
-Si es el estado objetivo: 
- Crea una cola solution y agrega currentState a ella. 
-Crea una variable previousState para almacenar el estado 
anterior en la solución. 
- Inicia un bucle mientras previousState se encuentre en 
visitedStates: 
- Agrega previousState a solution. 
-Obtiene el estado anterior desde la parte posterior de 
bfsQueue y lo asigna a previousState. 
-Extrae el estado anterior de bfsQueue. 
-Llama a la función printSolution y pasa solution como 
argumento para mostrar la solución encontrada. 
-Finaliza la función bfs. 
-Si no es el estado objetivo: 
-Genera los sucesores de currentState llamando a la función 
generateSuccessors y los asigna a successors. 
-Para cada sucesor en successors: 
-Si el sucesor no está en visitedStates: 
-Agrega el sucesor a bfsQueue. 
-Agrega el sucesor a visitedStates. 
-Si se completa el bucle sin encontrar una solución: 
-Imprime "No se encontró solución". 
-Regresa 0 desde la función main para indicar que el programa se ejecutó 
correctamente. 
 
 
 
Conclusión Equipo (Funcionamiento Programa) 
El código implementa de manera efectiva el algoritmo de búsqueda en anchura 
(BFS) para resolver el problema de los botes. Utiliza una cola para almacenar los 
estados a explorar y un conjunto para evitar la repetición de estados visitados. 
El algoritmo busca exhaustivamente todas las posibles acciones desde cada 
estado, evitando explorar estados inválidos y repitiendo estados ya visitados. 
Cuando encuentra el estado objetivo, reconstruye la solución utilizando los 
estados visitados y la muestra al usuario. En caso de no encontrar una solución, 
informa al usuario que no se encontró una solución. 
	“INTELIGENCIA ARTIFICIAL Y REDES NEURONALES”
	CATEDRÁTICO:
	Problema
	Flujo del programa
	Conclusión Equipo (Funcionamiento Programa)

Otros materiales