Git Product home page Git Product logo

preflowpush's Introduction

1. Programmieraufgabe, SoSe 2012

This project aims to implement the Preflow-Push algorithm 
to find maximum flows in networks. We follow the description of the
algorithm found in Gerhart Reinelt's lecture script for "Effiziente
Algorithm I", chapter 6.3.

We implement three variants of this algorithm, with the main difference
being the order of the application of the two main operations: Push and Lift:

PreflowPushRandom:       Push and Lift are applied in random order until
                         none of the operations can be applied anymore.
PreflowPushFIFO:         Push(u,v) is applied for a node u until no further 
                         push operations can take place. 
PreflowPushHighestLabel: Nodes with highest height values will be 
                         push()'ed first

To build the code, run "make". To calculate the maximum amount of flow
for a graph file with a given algorithm, run the executable as follows:

./preflowpush -f myGraph.file -a Random

Possible values for the -a switch are: Random, FIFO, HighestLabel

In addition, it is possible to run the executable in test mode,
which will calculate max flow for all test problems given as part
of the assignment and compare against the optimal values:

./preflowpush -a Run-Tests

But be aware that this will take some time.

Further documentation can be found in the source code itself and in the
included PDF file.

~~ Tilman Wittl <[email protected]>, Michael Haas <[email protected]>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.