Proyecto desarrollado en Java que implementa los algoritmos de búsqueda BFS, DFS, UCS y A* sobre grafos y laberintos. Incluye visualización gráfica mediante Swing y lectura de datos desde archivos CSV.
La explicacion de los algoritmos, del codigo y demas... Se encuentran en la carpeta de "
finder/doc/*"
- Implementación de BFS (Breadth-First Search).
- Implementación de DFS (Depth-First Search).
- Implementación de UCS (Uniform Cost Search).
- Implementación de A* (A-Star).
- Visualización gráfica de grafos.
- Visualización gráfica de laberintos.
- Carga de datos desde archivos CSV personalizados.
- Animación del recorrido realizado por cada algoritmo.
- Java 17 o superior.
- Maven 3.8 o superior.
Desde la carpeta raíz del proyecto (finder):
mvn compile
mvn exec:java "-Dexec.mainClass=main.Solvers.Main"mvn exec:java "-Dexec.mainClass=main.Solvers.Main"Al iniciar el programa se mostrará un menú en la terminal:
========================================
Manual de uso en README.md
¿Que tipo de estructura desea indagar?
[0] : Grafo
[1] : Laberinto
========================================
Opciones disponibles:
0→ Analizar grafos.1→ Analizar laberintos.
Después de elegir el tipo de estructura, se mostrará una lista con los archivos CSV disponibles.
Ejemplo:
========================================
Seleccione el archivo que desea aplicar al algoritmo:
[0] Graph1.csv
[1] Graph2.csv
[2] Graph3.csv
========================================
Los archivos CSV deben ubicarse en:
src/main/resources/CSVs/
y dentro de una de las siguientes carpetas:
Graphs/
Mazes/
Source;Target;Weight
A;B;2
A;C;5
A;D;2
B;G;3
C;D;3
C;E;4
C;G;2
D;E;4
G;F;80;0;0;1;0;0;0
0;0;0;1;0;0;0
0;0;0;1;0;0;0
0;0;0;0;0;0;0
0;0;0;1;0;0;0
...Se recomienda generar los archivos CSV utilizando Excel u otra herramienta similar y exportarlos directamente en formato CSV.
Una vez seleccionado un archivo de grafos, se abrirá una ventana de visualización.
- Start Node → Nodo inicial.
- End Node → Nodo objetivo.
- BFS
- DFS
- UCS
- A*
Presione Find Path para iniciar la búsqueda.
Se mostrará una animación que representa el recorrido realizado por el algoritmo.
Para realizar una nueva búsqueda basta con cambiar los parámetros y volver a presionar Find Path.
Dependiendo del algoritmo seleccionado se mostrará:
- Costo total del camino.
- Cantidad de nodos del camino encontrado.
Una vez seleccionado un archivo de laberinto, se abrirá la ventana correspondiente.
Las coordenadas utilizan el formato:
fila,columna
Ejemplos:
0,20
20,0
Donde (0,0) corresponde a la esquina superior izquierda del laberinto.
- BFS
- DFS
- UCS
- A*
- Asignar → Guarda las posiciones inicial y final.
- Iniciar → Ejecuta el algoritmo seleccionado.
- Clear → Limpia la visualización actual.
- Confirmación de si se encontró un camino.
- Longitud del camino encontrado.
El proyecto utiliza las siguientes librerías:
- Apache Commons CSV
- Lombok
- Para cargar un nuevo archivo CSV es necesario reiniciar la ejecución del programa.
- Los algoritmos BFS y DFS ignoran los pesos de las aristas.
- UCS y A* consideran los costos definidos en el grafo.

