The repository contains a program to calculate maximum flows in flow networks. The project implements Dinic's augmenting path algorithm and Goldberg-Tarjan's push-relabel algorithm with a comprehensive GUI and several example networks.
A documentation about all classes is included in the subfolder doc and can be accessed via the website https://christiangebhardt.github.io/MFA/.
- Install git on the computer and chose a project folder
- Checkout the GitHub project:
- open a git bash in the project folder (right click > 'Git Bash Here')
- initialize the repository with the command:
git init
- clone the repository with the command:
git clone https://github.com/ChristianGebhardt/MFA.git
- Install a Java runtime environment (JRE) - minimum version required: 1.7.0
- Run the EXE-file
MFA.exe
(double click or console commandMFA.exe
) - Alternative: Run the JAR-file
MFA.jar
(double click or console commandjava MFA.jar
)
The screen should support a minimum resolution of 1200 x 800 to display the user interface correctly. The user interface shows some help information at the start of the program ('Getting started'). They can be reloaded with the help menu item. The program includes an example flow network that can be loaded.
- Install git on the computer and chose a project folder
- Checkout the GitHub project:
- open a git bash in the project folder (right click > 'Git Bash Here')
- initialize the repository with the command:
git init
- clone the repository with the command:
git clone https://github.com/ChristianGebhardt/MFA.git
- Install a Java development kit (JDK) - minimum version required: 1.7.0, recommended version: 1.8.0
- Install Eclipse - minimum version required: 4.2 (Juno), recommended version: 4.6 (Neon)
- Open the project in Eclipse: 'File' > 'Open project from file system ...'
- src: The source files of the code and ressource files for the program
- package
de.lmu.ifi.mfa
contains the model with the implementation of the maximum flow algorithms - package
de.lmu.ifi.mfa_gui
contains a graphical user interface to manipulate the model and apply the maximum flow algorithms - class
Main.java
is the main class of the program that starts the program - folder resources contains an example flow network and icons for the program
- package
- doc: The javadoc documentation of the packages and classes
- lib: The 'JGraphX Swing Component - Java Graph Visualization Library' for the flow network visualization
- examples: Some template flow networks to test the maximum flow algorithms
thesis_example.mfa
default example of the thesis (total flow: F=7)large_network.mfa
example with more than 20 vertices (total flow: F=8)dense_graph.mfa
example with arc circuits (total flow: F=6)
Version: 1.0.1 Author: Christian Gebhardt Date: 2016-09-03
The MFA-project is part of the bachelor thesis "Efficient Transport System Scheduling based on Maximum Flow Algorithms" by Christian Gebhardt submitted at the Institute of Informatics at LMU Munich (submission date: 2016-09-27).
The thesis can be accessed via the link https://www.cip.ifi.lmu.de/~gebhardta/publication/thesis_mfa.pdf.