0
19
0
1
1
22
18
9
11
15
15
10
10
25
26
2
2
| ... | ... |
@@ -604,3 +604,3 @@ |
| 604 | 604 |
|
| 605 |
/// \name Base |
|
| 605 |
/// \name Base Iteration |
|
| 606 | 606 |
/// |
| ... | ... |
@@ -656,3 +656,3 @@ |
| 656 | 656 |
|
| 657 |
/// \name Class |
|
| 657 |
/// \name Class Based Iteration |
|
| 658 | 658 |
/// |
| ... | ... |
@@ -781,3 +781,3 @@ |
| 781 | 781 |
|
| 782 |
/// \name Base |
|
| 782 |
/// \name Base Iteration |
|
| 783 | 783 |
/// |
| ... | ... |
@@ -820,3 +820,3 @@ |
| 820 | 820 |
|
| 821 |
/// \name Class |
|
| 821 |
/// \name Class Based Iteration |
|
| 822 | 822 |
/// |
| ... | ... |
@@ -73,5 +73,5 @@ |
| 73 | 73 |
enum State {
|
| 74 |
IN_HEAP = 0, ///< The "in heap" state constant. |
|
| 75 |
PRE_HEAP = -1, ///< The "pre heap" state constant. |
|
| 76 |
|
|
| 74 |
IN_HEAP = 0, ///< = 0. The "in heap" state constant. |
|
| 75 |
PRE_HEAP = -1, ///< = -1. The "pre heap" state constant. |
|
| 76 |
POST_HEAP = -2 ///< = -2. The "post heap" state constant. |
|
| 77 | 77 |
}; |
| ... | ... |
@@ -39,6 +39,11 @@ |
| 39 | 39 |
{
|
| 40 |
///File type enum |
|
| 41 |
enum Type |
|
| 42 |
{
|
|
| 43 |
NONE, MIN, MAX, SP, MAT |
|
| 40 |
///\brief DIMACS file type enum |
|
| 41 |
/// |
|
| 42 |
///DIMACS file type enum. |
|
| 43 |
enum Type {
|
|
| 44 |
NONE, ///< Undefined type. |
|
| 45 |
MIN, ///< DIMACS file type for minimum cost flow problems. |
|
| 46 |
MAX, ///< DIMACS file type for maximum flow problems. |
|
| 47 |
SP, ///< DIMACS file type for shostest path problems. |
|
| 48 |
MAT ///< DIMACS file type for plain graphs and matching problems. |
|
| 44 | 49 |
}; |
| ... | ... |
@@ -51,3 +56,3 @@ |
| 51 | 56 |
int lineShift; |
| 52 |
/// |
|
| 57 |
///Constructor. It sets the type to \c NONE. |
|
| 53 | 58 |
DimacsDescriptor() : type(NONE) {}
|
| ... | ... |
@@ -57,6 +62,6 @@ |
| 57 | 62 |
|
| 58 |
///It starts seeking the beginning of the file for the problem type |
|
| 59 |
///and size info. The found data is returned in a special struct |
|
| 60 |
///that can be evaluated and passed to the appropriate reader |
|
| 61 |
///function. |
|
| 63 |
///This function starts seeking the beginning of the given file for the |
|
| 64 |
///problem type and size info. |
|
| 65 |
///The found data is returned in a special struct that can be evaluated |
|
| 66 |
///and passed to the appropriate reader function. |
|
| 62 | 67 |
DimacsDescriptor dimacsType(std::istream& is) |
| ... | ... |
@@ -98,4 +103,3 @@ |
| 98 | 103 |
|
| 99 |
|
|
| 100 |
/// DIMACS minimum cost flow reader function. |
|
| 104 |
/// \brief DIMACS minimum cost flow reader function. |
|
| 101 | 105 |
/// |
| ... | ... |
@@ -255,3 +259,3 @@ |
| 255 | 259 |
|
| 256 |
/// DIMACS maximum flow reader function. |
|
| 260 |
/// \brief DIMACS maximum flow reader function. |
|
| 257 | 261 |
/// |
| ... | ... |
@@ -289,3 +293,3 @@ |
| 289 | 293 |
|
| 290 |
/// DIMACS shortest path reader function. |
|
| 294 |
/// \brief DIMACS shortest path reader function. |
|
| 291 | 295 |
/// |
| ... | ... |
@@ -315,3 +319,3 @@ |
| 315 | 319 |
|
| 316 |
/// DIMACS capacitated digraph reader function. |
|
| 320 |
/// \brief DIMACS capacitated digraph reader function. |
|
| 317 | 321 |
/// |
| ... | ... |
@@ -361,7 +365,7 @@ |
| 361 | 365 |
|
| 362 |
/// DIMACS plain (di)graph reader function. |
|
| 366 |
/// \brief DIMACS plain (di)graph reader function. |
|
| 363 | 367 |
/// |
| 364 |
/// This function reads a (di)graph without any designated nodes and |
|
| 365 |
/// maps from DIMACS format, i.e. from DIMACS files having a line |
|
| 366 |
/// |
|
| 368 |
/// This function reads a plain (di)graph without any designated nodes |
|
| 369 |
/// and maps (e.g. a matching instance) from DIMACS format, i.e. from |
|
| 370 |
/// DIMACS files having a line starting with |
|
| 367 | 371 |
/// \code |
| ... | ... |
@@ -270,3 +270,2 @@ |
| 270 | 270 |
///\image latex nodeshape_1.eps "SQUARE shape (1)" width=2cm |
| 271 |
/// |
|
| 272 | 271 |
SQUARE=1, |
| ... | ... |
@@ -275,3 +274,2 @@ |
| 275 | 274 |
///\image latex nodeshape_2.eps "DIAMOND shape (2)" width=2cm |
| 276 |
/// |
|
| 277 | 275 |
DIAMOND=2, |
| ... | ... |
@@ -279,4 +277,3 @@ |
| 279 | 277 |
///\image html nodeshape_3.png |
| 280 |
///\image latex nodeshape_2.eps "MALE shape (4)" width=2cm |
|
| 281 |
/// |
|
| 278 |
///\image latex nodeshape_3.eps "MALE shape (3)" width=2cm |
|
| 282 | 279 |
MALE=3, |
| ... | ... |
@@ -284,4 +281,3 @@ |
| 284 | 281 |
///\image html nodeshape_4.png |
| 285 |
///\image latex nodeshape_2.eps "FEMALE shape (4)" width=2cm |
|
| 286 |
/// |
|
| 282 |
///\image latex nodeshape_4.eps "FEMALE shape (4)" width=2cm |
|
| 287 | 283 |
FEMALE=4 |
| ... | ... |
@@ -250,3 +250,3 @@ |
| 250 | 250 |
/// |
| 251 |
/// \brief Kruskal algorithm |
|
| 251 |
/// \brief Kruskal's algorithm for finding a minimum cost spanning tree of |
|
| 252 | 252 |
/// a graph. |
| ... | ... |
@@ -254,3 +254,3 @@ |
| 254 | 254 |
/// This function runs Kruskal's algorithm to find a minimum cost |
| 255 |
/// spanning tree. |
|
| 255 |
/// spanning tree of a graph. |
|
| 256 | 256 |
/// Due to some C++ hacking, it accepts various input and output types. |
| ... | ... |
@@ -266,5 +266,5 @@ |
| 266 | 266 |
/// - An STL compatible 'Forward Container' with |
| 267 |
/// <tt>std::pair<GR::Arc,X></tt> or |
|
| 268 |
/// <tt>std::pair<GR::Edge,X></tt> as its <tt>value_type</tt>, where |
|
| 269 |
/// |
|
| 267 |
/// <tt>std::pair<GR::Arc,C></tt> or |
|
| 268 |
/// <tt>std::pair<GR::Edge,C></tt> as its <tt>value_type</tt>, where |
|
| 269 |
/// \c C is the type of the costs. The pairs indicates the arcs/edges |
|
| 270 | 270 |
/// along with the assigned cost. <em>They must be in a |
| ... | ... |
@@ -275,4 +275,4 @@ |
| 275 | 275 |
/// \retval out Here we also have a choice. |
| 276 |
/// - It can be a writable \c bool arc/edge map. After running the |
|
| 277 |
/// algorithm it will contain the found minimum cost spanning |
|
| 276 |
/// - It can be a writable arc/edge map with \c bool value type. After |
|
| 277 |
/// running the algorithm it will contain the found minimum cost spanning |
|
| 278 | 278 |
/// tree: the value of an arc/edge will be set to \c true if it belongs |
| ... | ... |
@@ -303,4 +303,4 @@ |
| 303 | 303 |
#ifdef DOXYGEN |
| 304 |
template <class Graph, class In, class Out> |
|
| 305 |
Value kruskal(GR const& g, const In& in, Out& out) |
|
| 304 |
template <typename Graph, typename In, typename Out> |
|
| 305 |
Value kruskal(const Graph& g, const In& in, Out& out) |
|
| 306 | 306 |
#else |
| ... | ... |
@@ -316,4 +316,2 @@ |
| 316 | 316 |
|
| 317 |
|
|
| 318 |
|
|
| 319 | 317 |
template <class Graph, class In, class Out> |
| ... | ... |
@@ -595,3 +595,3 @@ |
| 595 | 595 |
|
| 596 |
/// \name Reading |
|
| 596 |
/// \name Reading Rules |
|
| 597 | 597 |
/// @{
|
| ... | ... |
@@ -700,3 +700,3 @@ |
| 700 | 700 |
|
| 701 |
/// \name Select |
|
| 701 |
/// \name Select Section by Name |
|
| 702 | 702 |
/// @{
|
| ... | ... |
@@ -729,3 +729,3 @@ |
| 729 | 729 |
|
| 730 |
/// \name Using |
|
| 730 |
/// \name Using Previously Constructed Node or Arc Set |
|
| 731 | 731 |
/// @{
|
| ... | ... |
@@ -1118,3 +1118,3 @@ |
| 1118 | 1118 |
|
| 1119 |
/// \name Execution of the |
|
| 1119 |
/// \name Execution of the Reader |
|
| 1120 | 1120 |
/// @{
|
| ... | ... |
@@ -1391,3 +1391,3 @@ |
| 1391 | 1391 |
|
| 1392 |
/// \name Reading |
|
| 1392 |
/// \name Reading Rules |
|
| 1393 | 1393 |
/// @{
|
| ... | ... |
@@ -1542,3 +1542,3 @@ |
| 1542 | 1542 |
|
| 1543 |
/// \name Select |
|
| 1543 |
/// \name Select Section by Name |
|
| 1544 | 1544 |
/// @{
|
| ... | ... |
@@ -1571,3 +1571,3 @@ |
| 1571 | 1571 |
|
| 1572 |
/// \name Using |
|
| 1572 |
/// \name Using Previously Constructed Node or Edge Set |
|
| 1573 | 1573 |
/// @{
|
| ... | ... |
@@ -1961,3 +1961,3 @@ |
| 1961 | 1961 |
|
| 1962 |
/// \name Execution of the |
|
| 1962 |
/// \name Execution of the Reader |
|
| 1963 | 1963 |
/// @{
|
| ... | ... |
@@ -2160,3 +2160,3 @@ |
| 2160 | 2160 |
|
| 2161 |
/// \name Section |
|
| 2161 |
/// \name Section Readers |
|
| 2162 | 2162 |
/// @{
|
| ... | ... |
@@ -2259,3 +2259,3 @@ |
| 2259 | 2259 |
|
| 2260 |
/// \name Execution of the |
|
| 2260 |
/// \name Execution of the Reader |
|
| 2261 | 2261 |
/// @{
|
| ... | ... |
@@ -2441,3 +2441,3 @@ |
| 2441 | 2441 |
|
| 2442 |
/// \name Node |
|
| 2442 |
/// \name Node Sections |
|
| 2443 | 2443 |
/// @{
|
| ... | ... |
@@ -2467,3 +2467,3 @@ |
| 2467 | 2467 |
|
| 2468 |
/// \name Arc/Edge |
|
| 2468 |
/// \name Arc/Edge Sections |
|
| 2469 | 2469 |
/// @{
|
| ... | ... |
@@ -2525,3 +2525,3 @@ |
| 2525 | 2525 |
|
| 2526 |
/// \name Attribute |
|
| 2526 |
/// \name Attribute Sections |
|
| 2527 | 2527 |
/// @{
|
| ... | ... |
@@ -2551,3 +2551,3 @@ |
| 2551 | 2551 |
|
| 2552 |
/// \name Extra |
|
| 2552 |
/// \name Extra Sections |
|
| 2553 | 2553 |
/// @{
|
| ... | ... |
@@ -2627,3 +2627,3 @@ |
| 2627 | 2627 |
|
| 2628 |
/// \name Execution of the |
|
| 2628 |
/// \name Execution of the Contents Reader |
|
| 2629 | 2629 |
/// @{
|
| ... | ... |
@@ -540,3 +540,3 @@ |
| 540 | 540 |
|
| 541 |
/// \name Writing |
|
| 541 |
/// \name Writing Rules |
|
| 542 | 542 |
/// @{
|
| ... | ... |
@@ -643,3 +643,3 @@ |
| 643 | 643 |
|
| 644 |
/// \name Section |
|
| 644 |
/// \name Section Captions |
|
| 645 | 645 |
/// @{
|
| ... | ... |
@@ -670,3 +670,3 @@ |
| 670 | 670 |
|
| 671 |
/// \name Skipping |
|
| 671 |
/// \name Skipping Section |
|
| 672 | 672 |
/// @{
|
| ... | ... |
@@ -887,3 +887,3 @@ |
| 887 | 887 |
|
| 888 |
/// \name Execution of the |
|
| 888 |
/// \name Execution of the Writer |
|
| 889 | 889 |
/// @{
|
| ... | ... |
@@ -1108,3 +1108,3 @@ |
| 1108 | 1108 |
|
| 1109 |
/// \name Writing |
|
| 1109 |
/// \name Writing Rules |
|
| 1110 | 1110 |
/// @{
|
| ... | ... |
@@ -1257,3 +1257,3 @@ |
| 1257 | 1257 |
|
| 1258 |
/// \name Section |
|
| 1258 |
/// \name Section Captions |
|
| 1259 | 1259 |
/// @{
|
| ... | ... |
@@ -1284,3 +1284,3 @@ |
| 1284 | 1284 |
|
| 1285 |
/// \name Skipping |
|
| 1285 |
/// \name Skipping Section |
|
| 1286 | 1286 |
/// @{
|
| ... | ... |
@@ -1501,3 +1501,3 @@ |
| 1501 | 1501 |
|
| 1502 |
/// \name Execution of the |
|
| 1502 |
/// \name Execution of the Writer |
|
| 1503 | 1503 |
/// @{
|
| ... | ... |
@@ -1653,3 +1653,3 @@ |
| 1653 | 1653 |
|
| 1654 |
/// \name Section |
|
| 1654 |
/// \name Section Writers |
|
| 1655 | 1655 |
/// @{
|
| ... | ... |
@@ -1720,3 +1720,3 @@ |
| 1720 | 1720 |
|
| 1721 |
/// \name Execution of the |
|
| 1721 |
/// \name Execution of the Writer |
|
| 1722 | 1722 |
/// @{
|
| ... | ... |
@@ -54,3 +54,3 @@ |
| 54 | 54 |
enum SolveExitStatus {
|
| 55 |
/// |
|
| 55 |
/// = 0. It means that the problem has been successfully solved: either |
|
| 56 | 56 |
///an optimal solution has been found or infeasibility/unboundedness |
| ... | ... |
@@ -58,4 +58,4 @@ |
| 58 | 58 |
SOLVED = 0, |
| 59 |
///Any other case (including the case when some user specified |
|
| 60 |
///limit has been exceeded) |
|
| 59 |
/// = 1. Any other case (including the case when some user specified |
|
| 60 |
///limit has been exceeded). |
|
| 61 | 61 |
UNSOLVED = 1 |
| ... | ... |
@@ -73,11 +73,11 @@ |
| 73 | 73 |
enum MessageLevel {
|
| 74 |
/// |
|
| 74 |
/// No output (default value). |
|
| 75 | 75 |
MESSAGE_NOTHING, |
| 76 |
/// |
|
| 76 |
/// Error messages only. |
|
| 77 | 77 |
MESSAGE_ERROR, |
| 78 |
/// |
|
| 78 |
/// Warnings. |
|
| 79 | 79 |
MESSAGE_WARNING, |
| 80 |
/// |
|
| 80 |
/// Normal output. |
|
| 81 | 81 |
MESSAGE_NORMAL, |
| 82 |
/// |
|
| 82 |
/// Verbose output. |
|
| 83 | 83 |
MESSAGE_VERBOSE |
| ... | ... |
@@ -1007,3 +1007,3 @@ |
| 1007 | 1007 |
|
| 1008 |
///\name Build |
|
| 1008 |
///\name Build Up and Modify the LP |
|
| 1009 | 1009 |
|
| ... | ... |
@@ -1790,11 +1790,11 @@ |
| 1790 | 1790 |
enum ProblemType {
|
| 1791 |
///Feasible solution hasn't been found (but may exist). |
|
| 1791 |
/// = 0. Feasible solution hasn't been found (but may exist). |
|
| 1792 | 1792 |
UNDEFINED = 0, |
| 1793 |
///The problem has no feasible solution |
|
| 1793 |
/// = 1. The problem has no feasible solution. |
|
| 1794 | 1794 |
INFEASIBLE = 1, |
| 1795 |
///Feasible solution found |
|
| 1795 |
/// = 2. Feasible solution found. |
|
| 1796 | 1796 |
FEASIBLE = 2, |
| 1797 |
///Optimal solution exists and found |
|
| 1797 |
/// = 3. Optimal solution exists and found. |
|
| 1798 | 1798 |
OPTIMAL = 3, |
| 1799 |
///The cost function is unbounded |
|
| 1799 |
/// = 4. The cost function is unbounded. |
|
| 1800 | 1800 |
UNBOUNDED = 4 |
| ... | ... |
@@ -1854,3 +1854,3 @@ |
| 1854 | 1854 |
|
| 1855 |
///\name Obtain the |
|
| 1855 |
///\name Obtain the Solution |
|
| 1856 | 1856 |
|
| ... | ... |
@@ -1976,13 +1976,12 @@ |
| 1976 | 1976 |
enum ProblemType {
|
| 1977 |
///Feasible solution hasn't been found (but may exist). |
|
| 1977 |
/// = 0. Feasible solution hasn't been found (but may exist). |
|
| 1978 | 1978 |
UNDEFINED = 0, |
| 1979 |
///The problem has no feasible solution |
|
| 1979 |
/// = 1. The problem has no feasible solution. |
|
| 1980 | 1980 |
INFEASIBLE = 1, |
| 1981 |
///Feasible solution found |
|
| 1981 |
/// = 2. Feasible solution found. |
|
| 1982 | 1982 |
FEASIBLE = 2, |
| 1983 |
///Optimal solution exists and found |
|
| 1983 |
/// = 3. Optimal solution exists and found. |
|
| 1984 | 1984 |
OPTIMAL = 3, |
| 1985 |
///The cost function is unbounded |
|
| 1986 |
/// |
|
| 1987 |
///The |
|
| 1985 |
/// = 4. The cost function is unbounded. |
|
| 1986 |
///The Mip or at least the relaxed problem is unbounded. |
|
| 1988 | 1987 |
UNBOUNDED = 4 |
| ... | ... |
@@ -2008,3 +2007,3 @@ |
| 2008 | 2007 |
|
| 2009 |
///\name |
|
| 2008 |
///\name Set Column Type |
|
| 2010 | 2009 |
///@{
|
| ... | ... |
@@ -2013,5 +2012,5 @@ |
| 2013 | 2012 |
enum ColTypes {
|
| 2014 |
///Continuous variable (default) |
|
| 2013 |
/// = 0. Continuous variable (default). |
|
| 2015 | 2014 |
REAL = 0, |
| 2016 |
///Integer variable |
|
| 2015 |
/// = 1. Integer variable. |
|
| 2017 | 2016 |
INTEGER = 1 |
| ... | ... |
@@ -2036,3 +2035,3 @@ |
| 2036 | 2035 |
|
| 2037 |
///\name Obtain the |
|
| 2036 |
///\name Obtain the Solution |
|
| 2038 | 2037 |
| ... | ... |
@@ -2730,4 +2730,4 @@ |
| 2730 | 2730 |
/// |
| 2731 |
/// PotentialMap returns the difference between the potentials of the |
|
| 2732 |
/// source and target nodes of each arc in a digraph, i.e. it returns |
|
| 2731 |
/// PotentialDifferenceMap returns the difference between the potentials of |
|
| 2732 |
/// the source and target nodes of each arc in a digraph, i.e. it returns |
|
| 2733 | 2733 |
/// \code |
| ... | ... |
@@ -92,6 +92,6 @@ |
| 92 | 92 |
/// |
| 93 |
/// \brief |
|
| 93 |
/// \brief Minimum Cost Arborescence algorithm class. |
|
| 94 | 94 |
/// |
| 95 | 95 |
/// This class provides an efficient implementation of |
| 96 |
/// |
|
| 96 |
/// Minimum Cost Arborescence algorithm. The arborescence is a tree |
|
| 97 | 97 |
/// which is directed from a given source node of the digraph. One or |
| ... | ... |
@@ -392,3 +392,3 @@ |
| 392 | 392 |
|
| 393 |
/// \name Named |
|
| 393 |
/// \name Named Template Parameters |
|
| 394 | 394 |
|
| ... | ... |
@@ -632,3 +632,3 @@ |
| 632 | 632 |
|
| 633 |
/// \name Execution |
|
| 633 |
/// \name Execution Control |
|
| 634 | 634 |
/// The simplest way to execute the algorithm is to use |
| ... | ... |
@@ -661,3 +661,3 @@ |
| 661 | 661 |
|
| 662 |
///\name Uniform |
|
| 662 |
///\name Uniform Distributions |
|
| 663 | 663 |
/// |
| ... | ... |
@@ -764,3 +764,3 @@ |
| 764 | 764 |
|
| 765 |
///\name Non-uniform |
|
| 765 |
///\name Non-uniform Distributions |
|
| 766 | 766 |
/// |
| ... | ... |
@@ -940,3 +940,3 @@ |
| 940 | 940 |
|
| 941 |
///\name Two |
|
| 941 |
///\name Two Dimensional Distributions |
|
| 942 | 942 |
/// |
| ... | ... |
@@ -289,3 +289,3 @@ |
| 289 | 289 |
|
| 290 |
///\name Control the |
|
| 290 |
///\name Control the State of the Timer |
|
| 291 | 291 |
///Basically a Timer can be either running or stopped, |
| ... | ... |
@@ -397,3 +397,3 @@ |
| 397 | 397 |
|
| 398 |
///\name Query Functions for the |
|
| 398 |
///\name Query Functions for the Ellapsed Time |
|
| 399 | 399 |
0 comments (0 inline)