Are any of the state of the art Maximum Flow algorithms practical? For the maximum flow problem, there seem to be a number of very sophisticated algorithms, with at least one developed as recently as last year.  Orlin's Max flows in O(mn) time or better gives an algorithm that runs in O(VE).

On the other hand, the algorithms I most commonly see implemented are (I don't claim to have done an exhaustive search; this is just from casual observation):


Edmonds-Karp: $O(VE^2)$,
Push-relabel: $O(V^2 E)$ or $O(V^3)$ using FIFO vertex selection,
Dinic's Algorithm: $O(V^2 E)$.


Are the algorithms with better asymptotic running time just not practical for the problem sizes in the real world?  Also, I see "Dynamic Trees" are involved in quite a few algorithms; are these ever used in practice?

Note: this question was originally asked on stack overflow, here, but I was told it would be a better fit here.

EDIT: I asked a related question on cs.stackexchange, specifically about the algorithms that use dynamic trees (aka link-cut trees), which may be of interest for people following this question.
I am one of the authors of the paper linked above. 

Just want to mention that we used ``state-of-the-art'' to mean algorithms (with publicly available implementations) that perform well on max-flow instances arising in computer vision. 

I would also like to add that within that narrow (yet practical) context, often the algorithms that perform well are the ones with poor theoretical guarantees. For instance, ref [5] from our paper (Boykov-Kolmogorov algorithm) is widely used in the computer vision community, but does not have a strongly polytime runtime bound. 

Finally, in case anyone is interested, the data from our experiments is available here:
http://ttic.uchicago.edu/~dbatra/research/mfcomp/index.html

The code will also soon be available too.