Changes in doc/groups.dox [879:25804ef35064:1366:abc24245d276] in lemon
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/groups.dox
r879 r1366 3 3 * This file is a part of LEMON, a generic C++ optimization library. 4 4 * 5 * Copyright (C) 2003-20 095 * Copyright (C) 2003-2013 6 6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 7 7 * (Egervary Research Group on Combinatorial Optimization, EGRES). … … 113 113 detailed documentation of particular adaptors. 114 114 115 Since the adaptor classes conform to the \ref graph_concepts "graph concepts", 116 an adaptor can even be applied to another one. 117 The following image illustrates a situation when a \ref SubDigraph adaptor 118 is applied on a digraph and \ref Undirector is applied on the subgraph. 119 120 \image html adaptors2.png 121 \image latex adaptors2.eps "Using graph adaptors" width=\textwidth 122 115 123 The behavior of graph adaptors can be very different. Some of them keep 116 124 capabilities of the original graph while in other cases this would be … … 264 272 265 273 /** 266 @defgroup matrices Matrices267 @ingroup datas268 \brief Two dimensional data storages implemented in LEMON.269 270 This group contains two dimensional data storages implemented in LEMON.271 */272 273 /**274 274 @defgroup auxdat Auxiliary Data Structures 275 275 @ingroup datas … … 318 318 This group contains the common graph search algorithms, namely 319 319 \e breadth-first \e search (BFS) and \e depth-first \e search (DFS) 320 \ refclrs01algorithms.320 \cite clrs01algorithms. 321 321 */ 322 322 … … 327 327 328 328 This group contains the algorithms for finding shortest paths in digraphs 329 \ refclrs01algorithms.329 \cite clrs01algorithms. 330 330 331 331 - \ref Dijkstra algorithm for finding shortest paths from a source node … … 349 349 350 350 This group contains the algorithms for finding minimum cost spanning 351 trees and arborescences \ refclrs01algorithms.351 trees and arborescences \cite clrs01algorithms. 352 352 */ 353 353 … … 358 358 359 359 This group contains the algorithms for finding maximum flows and 360 feasible circulations \ ref clrs01algorithms, \refamo93networkflows.360 feasible circulations \cite clrs01algorithms, \cite amo93networkflows. 361 361 362 362 The \e maximum \e flow \e problem is to find a flow of maximum value between … … 374 374 LEMON contains several algorithms for solving maximum flow problems: 375 375 - \ref EdmondsKarp Edmonds-Karp algorithm 376 \ refedmondskarp72theoretical.376 \cite edmondskarp72theoretical. 377 377 - \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm 378 \ refgoldberg88newapproach.378 \cite goldberg88newapproach. 379 379 - \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees 380 \ ref dinic70algorithm, \refsleator83dynamic.380 \cite dinic70algorithm, \cite sleator83dynamic. 381 381 - \ref GoldbergTarjan !Preflow push-relabel algorithm with dynamic trees 382 \ ref goldberg88newapproach, \refsleator83dynamic.382 \cite goldberg88newapproach, \cite sleator83dynamic. 383 383 384 384 In most cases the \ref Preflow algorithm provides the … … 387 387 problem of maximum flow. 388 388 389 \ref Circulation is a preflow push-relabel algorithm implemented directly 389 \ref Circulation is a preflow push-relabel algorithm implemented directly 390 390 for finding feasible circulations, which is a somewhat different problem, 391 391 but it is strongly related to maximum flow. … … 400 400 401 401 This group contains the algorithms for finding minimum cost flows and 402 circulations \ refamo93networkflows. For more information about this403 problem and its dual solution, see \ref min_cost_flow402 circulations \cite amo93networkflows. For more information about this 403 problem and its dual solution, see: \ref min_cost_flow 404 404 "Minimum Cost Flow Problem". 405 405 406 406 LEMON contains several algorithms for this problem. 407 407 - \ref NetworkSimplex Primal Network Simplex algorithm with various 408 pivot strategies \ ref dantzig63linearprog, \refkellyoneill91netsimplex.408 pivot strategies \cite dantzig63linearprog, \cite kellyoneill91netsimplex. 409 409 - \ref CostScaling Cost Scaling algorithm based on push/augment and 410 relabel operations \ ref goldberg90approximation, \refgoldberg97efficient,411 \ refbunnagel98efficient.410 relabel operations \cite goldberg90approximation, \cite goldberg97efficient, 411 \cite bunnagel98efficient. 412 412 - \ref CapacityScaling Capacity Scaling algorithm based on the successive 413 shortest path method \ refedmondskarp72theoretical.413 shortest path method \cite edmondskarp72theoretical. 414 414 - \ref CycleCanceling Cycle-Canceling algorithms, two of which are 415 strongly polynomial \ref klein67primal, \ref goldberg89cyclecanceling. 416 417 In general NetworkSimplex is the most efficient implementation, 418 but in special cases other algorithms could be faster. 415 strongly polynomial \cite klein67primal, \cite goldberg89cyclecanceling. 416 417 In general, \ref NetworkSimplex and \ref CostScaling are the most efficient 418 implementations. 419 \ref NetworkSimplex is usually the fastest on relatively small graphs (up to 420 several thousands of nodes) and on dense graphs, while \ref CostScaling is 421 typically more efficient on large graphs (e.g. hundreds of thousands of 422 nodes or above), especially if they are sparse. 423 However, other algorithms could be faster in special cases. 419 424 For example, if the total supply and/or capacities are rather small, 420 CapacityScaling is usually the fastest algorithm (without effective scaling). 425 \ref CapacityScaling is usually the fastest algorithm 426 (without effective scaling). 427 428 These classes are intended to be used with integer-valued input data 429 (capacities, supply values, and costs), except for \ref CapacityScaling, 430 which is capable of handling real-valued arc costs (other numerical 431 data are required to be integer). 432 433 For more details about these implementations and for a comprehensive 434 experimental study, see the paper \cite KiralyKovacs12MCF. 435 It also compares these codes to other publicly available 436 minimum cost flow solvers. 421 437 */ 422 438 … … 457 473 458 474 This group contains the algorithms for finding minimum mean cycles 459 \ ref clrs01algorithms, \ref amo93networkflows.475 \cite amo93networkflows, \cite karp78characterization. 460 476 461 477 The \e minimum \e mean \e cycle \e problem is to find a directed cycle … … 473 489 474 490 LEMON contains three algorithms for solving the minimum mean cycle problem: 475 - \ref Karp "Karp"'s original algorithm \ref amo93networkflows, 476 \ref dasdan98minmeancycle. 477 - \ref HartmannOrlin "Hartmann-Orlin"'s algorithm, which is an improved 478 version of Karp's algorithm \ref dasdan98minmeancycle. 479 - \ref Howard "Howard"'s policy iteration algorithm 480 \ref dasdan98minmeancycle. 481 482 In practice, the Howard algorithm proved to be by far the most efficient 483 one, though the best known theoretical bound on its running time is 484 exponential. 485 Both Karp and HartmannOrlin algorithms run in time O(ne) and use space 486 O(n<sup>2</sup>+e), but the latter one is typically faster due to the 487 applied early termination scheme. 491 - \ref KarpMmc Karp's original algorithm \cite karp78characterization. 492 - \ref HartmannOrlinMmc Hartmann-Orlin's algorithm, which is an improved 493 version of Karp's algorithm \cite hartmann93finding. 494 - \ref HowardMmc Howard's policy iteration algorithm 495 \cite dasdan98minmeancycle, \cite dasdan04experimental. 496 497 In practice, the \ref HowardMmc "Howard" algorithm turned out to be by far the 498 most efficient one, though the best known theoretical bound on its running 499 time is exponential. 500 Both \ref KarpMmc "Karp" and \ref HartmannOrlinMmc "Hartmann-Orlin" algorithms 501 run in time O(nm) and use space O(n<sup>2</sup>+m). 488 502 */ 489 503 … … 523 537 Edmond's blossom shrinking algorithm for calculating maximum weighted 524 538 perfect matching in general graphs. 525 526 \image html bipartite_matching.png 527 \image latex bipartite_matching.eps "Bipartite Matching" width=\textwidth 539 - \ref MaxFractionalMatching Push-relabel algorithm for calculating 540 maximum cardinality fractional matching in general graphs. 541 - \ref MaxWeightedFractionalMatching Augmenting path algorithm for calculating 542 maximum weighted fractional matching in general graphs. 543 - \ref MaxWeightedPerfectFractionalMatching 544 Augmenting path algorithm for calculating maximum weighted 545 perfect fractional matching in general graphs. 546 547 \image html matching.png 548 \image latex matching.eps "Min Cost Perfect Matching" width=\textwidth 528 549 */ 529 550 … … 541 562 542 563 /** 543 @defgroup planar Planarity Embedding and Drawing 564 @defgroup graph_isomorphism Graph Isomorphism 565 @ingroup algs 566 \brief Algorithms for testing (sub)graph isomorphism 567 568 This group contains algorithms for finding isomorph copies of a 569 given graph in another one, or simply check whether two graphs are isomorphic. 570 571 The formal definition of subgraph isomorphism is as follows. 572 573 We are given two graphs, \f$G_1=(V_1,E_1)\f$ and \f$G_2=(V_2,E_2)\f$. A 574 function \f$f:V_1\longrightarrow V_2\f$ is called \e mapping or \e 575 embedding if \f$f(u)\neq f(v)\f$ whenever \f$u\neq v\f$. 576 577 The standard <em>Subgraph Isomorphism Problem (SIP)</em> looks for a 578 mapping with the property that whenever \f$(u,v)\in E_1\f$, then 579 \f$(f(u),f(v))\in E_2\f$. 580 581 In case of <em>Induced Subgraph Isomorphism Problem (ISIP)</em> one 582 also requires that if \f$(u,v)\not\in E_1\f$, then \f$(f(u),f(v))\not\in 583 E_2\f$ 584 585 In addition, the graph nodes may be \e labeled, i.e. we are given two 586 node labelings \f$l_1:V_1\longrightarrow L\f$ and \f$l_2:V_2\longrightarrow 587 L\f$ and we require that \f$l_1(u)=l_2(f(u))\f$ holds for all nodes \f$u \in 588 G_1\f$. 589 590 */ 591 592 /** 593 @defgroup planar Planar Embedding and Drawing 544 594 @ingroup algs 545 595 \brief Algorithms for planarity checking, embedding and drawing … … 553 603 554 604 /** 555 @defgroup approx Approximation Algorithms 605 @defgroup tsp Traveling Salesman Problem 606 @ingroup algs 607 \brief Algorithms for the symmetric traveling salesman problem 608 609 This group contains basic heuristic algorithms for the the symmetric 610 \e traveling \e salesman \e problem (TSP). 611 Given an \ref FullGraph "undirected full graph" with a cost map on its edges, 612 the problem is to find a shortest possible tour that visits each node exactly 613 once (i.e. the minimum cost Hamiltonian cycle). 614 615 These TSP algorithms are intended to be used with a \e metric \e cost 616 \e function, i.e. the edge costs should satisfy the triangle inequality. 617 Otherwise the algorithms could yield worse results. 618 619 LEMON provides five well-known heuristics for solving symmetric TSP: 620 - \ref NearestNeighborTsp Neareast neighbor algorithm 621 - \ref GreedyTsp Greedy algorithm 622 - \ref InsertionTsp Insertion heuristic (with four selection methods) 623 - \ref ChristofidesTsp Christofides algorithm 624 - \ref Opt2Tsp 2-opt algorithm 625 626 \ref NearestNeighborTsp, \ref GreedyTsp, and \ref InsertionTsp are the fastest 627 solution methods. Furthermore, \ref InsertionTsp is usually quite effective. 628 629 \ref ChristofidesTsp is somewhat slower, but it has the best guaranteed 630 approximation factor: 3/2. 631 632 \ref Opt2Tsp usually provides the best results in practice, but 633 it is the slowest method. It can also be used to improve given tours, 634 for example, the results of other algorithms. 635 636 \image html tsp.png 637 \image latex tsp.eps "Traveling salesman problem" width=\textwidth 638 */ 639 640 /** 641 @defgroup approx_algs Approximation Algorithms 556 642 @ingroup algs 557 643 \brief Approximation algorithms. … … 559 645 This group contains the approximation and heuristic algorithms 560 646 implemented in LEMON. 647 648 <b>Maximum Clique Problem</b> 649 - \ref GrossoLocatelliPullanMc An efficient heuristic algorithm of 650 Grosso, Locatelli, and Pullan. 561 651 */ 562 652 … … 588 678 high-level interface. 589 679 590 The currently supported solvers are \ ref glpk, \ref clp, \refcbc,591 \ ref cplex, \refsoplex.680 The currently supported solvers are \cite glpk, \cite clp, \cite cbc, 681 \cite cplex, \cite soplex. 592 682 */ 593 683 … … 676 766 This group contains general \c EPS drawing methods and special 677 767 graph exporting tools. 768 769 \image html graph_to_eps.png 678 770 */ 679 771
Note: See TracChangeset
for help on using the changeset viewer.