项目作者: DynGraphLab

项目描述 :
The is the dynamic matching code for the paper ``Dynamic Matching in Practice''.
高级语言: C++
项目地址: git://github.com/DynGraphLab/DynMatch.git
创建时间: 2019-10-21T11:30:16Z
项目社区:https://github.com/DynGraphLab/DynMatch

开源协议:MIT License

下载


Dynamic Matching in Practice

Codacy Badge
Build Status
License: MIT
FOSSA Status

In recent years, significant advances have been made in the design and analysis of fully dynamic maximal matching algorithms. However, these theoretical results have received very little attention from the practical perspective. Few of the algorithms are implemented and tested on real datasets, and their practical potential is far from understood. Here, we provide a start to bridge the gap between theory and practice that is currently observed for the fully dynamic maximal matching problem. We engineer several algorithms and empirically study those algorithms on an extensive set of dynamic instances. We provide an overview talk over the algorithms contained in the framework here. If you just want to have a look at slides explaining the algorithms, you can click here. Experimental results and indepth descriptions of the algorithms can be found here.


framework overview

Downloading DynMatch:

You can download DynMatch with the following command line:

  1. git clone https://github.com/DynGraphLab/DynMatch

Compiling DynMatch:

To compile the codes, just type

  1. ./compile_withcmake.sh.

In this case, all binaries, libraries and headers are in the folder ./deploy/

Alternatively use the standard cmake build process:

  1. mkdir build
  2. cd build
  3. cmake ../ -DCMAKE_BUILD_TYPE=Release
  4. make
  5. cd ..

Usage DynMatch

dynmatch FILE [options].

Options

This is a brief overview of the most important options.

FILE
Path to graph file that you maintain a dynamic matching for.

-help
Print help.

-seed=<int>
Seed to use for the random number generator.

--algorithm=TYPE
One of {staticblossom, dynblossom, randomwalk, neimansolomon, baswanaguptasen}

-eps=<double>
Epsilon. Limit search depth of random walk or augmenting path search in dynblossom to 2/eps-1.

--dynblossom_lazy
Only start augmenting path searchs after x newly inserted edges on an endpoint.

--dynblossom_maintain_opt
Maintain optimum in dynblossom. (Without this option the algorithm is called UNSAFE)

-measure_graph_only
Only measure graph construction time.

File Format

The main folder contains example dynamic sequences in the example folder.
Here are the first couple of lines of munmun_digg.undo.0.1.seq. The first number after the # is the number of nodes that the graph has (at most) and the next number is the number of updates that are performed. Then in each line is one operation. The first number is 1 if an edge is inserted and 0 if an edge is deleted. The two numbers after that are the corresponding end points of the respective edge.

  1. # 30399 87627
  2. 1 1 2
  3. 1 51 52
  4. 1 91 92
  5. 1 124 125
  6. 1 34 35
  7. 1 152 153

Licence

The program is licenced under MIT licence.
If you publish results using our algorithms, please acknowledge our work by quoting the following paper:

  1. @inproceedings{DBLP:conf/esa/Henzinger0P020,
  2. author = {Monika Henzinger and
  3. Shahbaz Khan and
  4. Richard Paul and
  5. Christian Schulz},
  6. title = {Dynamic Matching Algorithms in Practice},
  7. booktitle = {28th Annual European Symposium on Algorithms, {ESA} 2020, September
  8. 7-9, 2020, Pisa, Italy (Virtual Conference)},
  9. pages = {58:1--58:20},
  10. year = {2020},
  11. crossref = {DBLP:conf/esa/2020},
  12. url = {https://doi.org/10.4230/LIPIcs.ESA.2020.58},
  13. doi = {10.4230/LIPIcs.ESA.2020.58},
  14. timestamp = {Wed, 26 Aug 2020 16:56:07 +0200},
  15. biburl = {https://dblp.org/rec/conf/esa/Henzinger0P020.bib},
  16. bibsource = {dblp computer science bibliography, https://dblp.org}
  17. }
  18. @proceedings{DBLP:conf/esa/2020,
  19. editor = {Fabrizio Grandoni and
  20. Grzegorz Herman and
  21. Peter Sanders},
  22. title = {28th Annual European Symposium on Algorithms, {ESA} 2020, September
  23. 7-9, 2020, Pisa, Italy (Virtual Conference)},
  24. series = {LIPIcs},
  25. volume = {173},
  26. publisher = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik},
  27. year = {2020},
  28. isbn = {978-3-95977-162-7},
  29. timestamp = {Wed, 26 Aug 2020 16:29:43 +0200},
  30. biburl = {https://dblp.org/rec/conf/esa/2020.bib},
  31. bibsource = {dblp computer science bibliography, https://dblp.org}
  32. }

FOSSA Status