Graph & Network Algorithms to solve complex problems. This project was created with the aim of improving the quality of academic studies and education, especially in Operations Research (OR) and Computer Science (CS). With this GUI (Graphical User Interface), the developer can create a directed graph (network) containing nodes (including source and destination) and arcs, and run algorithms that can solve certain problems efficiently (polynomial) on the network created. In addition, functionalities such as Excel Import, Excel Export and Logging have been developed within the application to enable the developer to work more efficiently.
Covered Problems & Corresponding Algorithms:
-
Search Problem:
- Breadth-First-Search Algorithm
- Depth-First-Search Algorithm
-
Shortest Path Problem:
- Dijkstra's Algorithm
- Topological Ordering Algorithm
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- LP Optimization Model of SPP
-
Maximum Flow Problem:
- Generic Augmenting Path Algorithm
- Capacity Scaling Algorithm
- PreFlow Push Algorithm
- LP Optimization Model of MFP
-
Note that after downloading the source code or forking the repository to a working environment such as VSCode. Make sure that:
- You have an installed Java on your computer, if it is not download through browser.
- You have an installed Java Development Kit (JDK 20 or Latest).
- Add the .jar files under the "lib" folder to the project build path to use Import/Export Excel functionality.
- Note that to run the "Optimization Algorithms", you must have a valid Gurobi License under C:/[user]/Documents/ (or /Users/[user]/Documents/ for Mac) folder.
There will be template Excel files under "TemplateExcelFiles" folder, you can see what kind of input is expected from the application.
Also, if you enable logging, it will create a txt file under Documents/GraphAlgorithmsOnGUI folder.
If you have comments/questions, feel free to ask me.
Best,
Anil.