# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1327956534 -3600
# Node ID 6422da4647f2e4c74358640093c6e28183936aac
# Parent d3ea191c341258fddc1366953daefc8b1903073c
Use HartmannOrlinMmc instead of HowardMmc in CycleCanceling (#436)
to ensure strongly polynomial running time
diff --git a/lemon/cycle_canceling.h b/lemon/cycle_canceling.h
a
|
b
|
|
34 | 34 | #include <lemon/adaptors.h> |
35 | 35 | #include <lemon/circulation.h> |
36 | 36 | #include <lemon/bellman_ford.h> |
37 | | #include <lemon/howard_mmc.h> |
| 37 | #include <lemon/hartmann_orlin_mmc.h> |
38 | 38 | |
39 | 39 | namespace lemon { |
40 | 40 | |
… |
… |
|
922 | 922 | |
923 | 923 | // Execute the "Minimum Mean Cycle Canceling" method |
924 | 924 | void startMinMeanCycleCanceling() { |
925 | | typedef SimplePath<StaticDigraph> SPath; |
| 925 | typedef Path<StaticDigraph> SPath; |
926 | 926 | typedef typename SPath::ArcIt SPathArcIt; |
927 | | typedef typename HowardMmc<StaticDigraph, CostArcMap> |
| 927 | typedef typename HartmannOrlinMmc<StaticDigraph, CostArcMap> |
928 | 928 | ::template SetPath<SPath>::Create MMC; |
929 | 929 | |
930 | 930 | SPath cycle; |
… |
… |
|
1132 | 1132 | } |
1133 | 1133 | } |
1134 | 1134 | } else { |
1135 | | typedef HowardMmc<StaticDigraph, CostArcMap> MMC; |
| 1135 | typedef HartmannOrlinMmc<StaticDigraph, CostArcMap> MMC; |
1136 | 1136 | typedef typename BellmanFord<StaticDigraph, CostArcMap> |
1137 | 1137 | ::template SetDistMap<CostNodeMap>::Create BF; |
1138 | 1138 | |