556 embedding and drawing. |
556 embedding and drawing. |
557 |
557 |
558 \image html planar.png |
558 \image html planar.png |
559 \image latex planar.eps "Plane graph" width=\textwidth |
559 \image latex planar.eps "Plane graph" width=\textwidth |
560 */ |
560 */ |
|
561 |
|
562 /** |
|
563 @defgroup tsp Traveling Salesman Problem |
|
564 @ingroup algs |
|
565 \brief Algorithms for the symmetric traveling salesman problem |
|
566 |
|
567 This group contains basic heuristic algorithms for the the symmetric |
|
568 \e traveling \e salesman \e problem (TSP). |
|
569 Given an \ref FullGraph "undirected full graph" with a cost map on its edges, |
|
570 the problem is to find a shortest possible tour that visits each node exactly |
|
571 once (i.e. the minimum cost Hamiltonian cycle). |
|
572 |
|
573 These TSP algorithms are intended to be used with a \e metric \e cost |
|
574 \e function, i.e. the edge costs should satisfy the triangle inequality. |
|
575 Otherwise the algorithms could yield worse results. |
|
576 |
|
577 LEMON provides five well-known heuristics for solving symmetric TSP: |
|
578 - \ref NearestNeighborTsp Neareast neighbor algorithm |
|
579 - \ref GreedyTsp Greedy algorithm |
|
580 - \ref InsertionTsp Insertion heuristic (with four selection methods) |
|
581 - \ref ChristofidesTsp Christofides algorithm |
|
582 - \ref Opt2Tsp 2-opt algorithm |
|
583 |
|
584 \ref NearestNeighborTsp, \ref GreedyTsp, and \ref InsertionTsp are the fastest |
|
585 solution methods. Furthermore, \ref InsertionTsp is usually quite effective. |
|
586 |
|
587 \ref ChristofidesTsp is somewhat slower, but it has the best guaranteed |
|
588 approximation factor: 3/2. |
|
589 |
|
590 \ref Opt2Tsp usually provides the best results in practice, but |
|
591 it is the slowest method. It can also be used to improve given tours, |
|
592 for example, the results of other algorithms. |
|
593 |
|
594 \image html tsp.png |
|
595 \image latex tsp.eps "Traveling salesman problem" width=\textwidth |
|
596 */ |
561 |
597 |
562 /** |
598 /** |
563 @defgroup approx_algs Approximation Algorithms |
599 @defgroup approx_algs Approximation Algorithms |
564 @ingroup algs |
600 @ingroup algs |
565 \brief Approximation algorithms. |
601 \brief Approximation algorithms. |