# 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 | |