Changes in / [757:9fbbd802020f:770:432c54cec63c] in lemon-1.2
- Files:
-
- 4 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/groups.dox
r755 r770 454 454 455 455 /** 456 @defgroup min_mean_cycle Minimum Mean Cycle Algorithms 457 @ingroup algs 458 \brief Algorithms for finding minimum mean cycles. 459 460 This group contains the algorithms for finding minimum mean cycles. 461 462 The \e minimum \e mean \e cycle \e problem is to find a directed cycle 463 of minimum mean length (cost) in a digraph. 464 The mean length of a cycle is the average length of its arcs, i.e. the 465 ratio between the total length of the cycle and the number of arcs on it. 466 467 This problem has an important connection to \e conservative \e length 468 \e functions, too. A length function on the arcs of a digraph is called 469 conservative if and only if there is no directed cycle of negative total 470 length. For an arbitrary length function, the negative of the minimum 471 cycle mean is the smallest \f$\epsilon\f$ value so that increasing the 472 arc lengths uniformly by \f$\epsilon\f$ results in a conservative length 473 function. 474 475 LEMON contains three algorithms for solving the minimum mean cycle problem: 476 - \ref Karp "Karp"'s original algorithm. 477 - \ref HartmannOrlin "Hartmann-Orlin"'s algorithm, which is an improved 478 version of Karp's algorithm. 479 - \ref Howard "Howard"'s policy iteration algorithm. 480 481 In practice, the Howard algorithm proved to be by far the most efficient 482 one, though the best known theoretical bound on its running time is 483 exponential. 484 Both Karp and HartmannOrlin algorithms run in time O(ne) and use space 485 O(n<sup>2</sup>+e), but the latter one is typically faster due to the 486 applied early termination scheme. 487 */ 488 489 /** 456 490 @defgroup matching Matching Algorithms 457 491 @ingroup algs -
lemon/Makefile.am
r708 r770 87 87 lemon/graph_to_eps.h \ 88 88 lemon/grid_graph.h \ 89 lemon/hartmann_orlin.h \ 90 lemon/howard.h \ 89 91 lemon/hypercube_graph.h \ 92 lemon/karp.h \ 90 93 lemon/kary_heap.h \ 91 94 lemon/kruskal.h \ -
test/CMakeLists.txt
r698 r770 33 33 min_cost_arborescence_test 34 34 min_cost_flow_test 35 min_mean_cycle_test 35 36 path_test 36 37 preflow_test -
test/Makefile.am
r698 r770 31 31 test/min_cost_arborescence_test \ 32 32 test/min_cost_flow_test \ 33 test/min_mean_cycle_test \ 33 34 test/path_test \ 34 35 test/preflow_test \ … … 79 80 test_min_cost_arborescence_test_SOURCES = test/min_cost_arborescence_test.cc 80 81 test_min_cost_flow_test_SOURCES = test/min_cost_flow_test.cc 82 test_min_mean_cycle_test_SOURCES = test/min_mean_cycle_test.cc 81 83 test_path_test_SOURCES = test/path_test.cc 82 84 test_preflow_test_SOURCES = test/preflow_test.cc -
test/test_tools.h
r440 r763 38 38 ///print something like this (and then exits). 39 39 ///\verbatim file_name.cc:123: error: This is obviously false. \endverbatim 40 #define check(rc, msg) \ 41 if(!(rc)) { \ 42 std::cerr << __FILE__ ":" << __LINE__ << ": error: " << msg << std::endl; \ 43 abort(); \ 44 } else { } \ 40 #define check(rc, msg) \ 41 { \ 42 if(!(rc)) { \ 43 std::cerr << __FILE__ ":" << __LINE__ << ": error: " \ 44 << msg << std::endl; \ 45 abort(); \ 46 } else { } \ 47 } \ 48 45 49 46 50 #endif
Note: See TracChangeset
for help on using the changeset viewer.