6

I want to apply Dinic's algorithm with dynamic tree. But I find very few sources. especially about the dynamic tree. It would be great if there is a good source with detailed explains or some simple sources code which uses dynamic tree.

Any one come across something like that? Thanks in advance

Ami Tavory
  • 74,578
  • 11
  • 141
  • 185
arslan
  • 2,034
  • 7
  • 34
  • 61

1 Answers1

4

The basic idea for improvement is avoiding premature pessimization in Dinic's algorithm. As opposed to preflow/push algorithms, Dinic's algorithm searches for paths in the residual flow graph. Once such a flow is addressed, instead of starting a new search, the modified algorithm deals with paths found in the previous search.

You can find here a very readable introduction for this, including an implementation of the data structure itself. here is a more detailed lecture. Finally, A Data Structure for Dynamic Trees (by Sleator and Tarjan) is the original paper focussing on the implementation of the data structure itself.

Ami Tavory
  • 74,578
  • 11
  • 141
  • 185
  • Actually I have read first two sources quickly before, and did not understand much. But I do understand Dinic's algorithm. Maybe my problem is dynamic tree which I don't know at all. Seems like these are the best resources available, let me go over them again slowly. Thanks! :) – arslan Mar 24 '16 at 08:50
  • @alim Then check the third. I think it is the one you want. – Ami Tavory Mar 24 '16 at 08:51
  • It's good to give links descriptive titles (the third one is A Data Structure for Dynamic Trees, DANIEL D. SLEATOR AND ROBERT ENDRE TARJAN), so that, when links inevitably rot, Google can help find those things again. In the meantime, I have added those links to the wayback machine. (http://web.archive.org/web/*/http://www.arl.wustl.edu/~jst/cse/542/text/sec19.pdf, for example) – jbapple Mar 24 '16 at 13:55
  • @jbapple Thanks! Modified to a more descriptive link. You're right. – Ami Tavory Mar 24 '16 at 13:58