# Changes in lemon/circulation.h[735:1f08e846df29:956:141f9c0db4a3] in lemon

Ignore:
File:
1 edited

### Legend:

Unmodified
 r735 * This file is a part of LEMON, a generic C++ optimization library. * * Copyright (C) 2003-2009 * Copyright (C) 2003-2010 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport * (Egervary Research Group on Combinatorial Optimization, EGRES). /// \brief The type of supply map. /// /// The type of the map that stores the signed supply values of the /// nodes. /// The type of the map that stores the signed supply values of the /// nodes. /// It must conform to the \ref concepts::ReadMap "ReadMap" concept. typedef SM SupplyMap; /// It must conform to the \ref concepts::ReadWriteMap "ReadWriteMap" /// concept. #ifdef DOXYGEN typedef GR::ArcMap FlowMap; #else typedef typename Digraph::template ArcMap FlowMap; #endif /// \brief Instantiates a FlowMap. /// The elevator type used by the algorithm. /// /// \sa Elevator /// \sa LinkedElevator /// \sa Elevator, LinkedElevator #ifdef DOXYGEN typedef lemon::Elevator Elevator; #else typedef lemon::Elevator Elevator; #endif /// \brief Instantiates an Elevator. \geq sup(u) \quad \forall u\in V, \f] \f[ lower(uv) \leq f(uv) \leq upper(uv) \quad \forall uv\in A. \f] The sum of the supply values, i.e. \f$\sum_{u\in V} sup(u)\f$ must be zero or negative in order to have a feasible solution (since the sum constraints have to be satisfied with equality, i.e. all demands have to be satisfied and all supplies have to be used. If you need the opposite inequalities in the supply/demand constraints (i.e. the total demand is less than the total supply and all the demands \tparam SM The type of the supply map. The default map type is \ref concepts::Digraph::NodeMap "GR::NodeMap". \tparam TR The traits class that defines various types used by the algorithm. By default, it is \ref CirculationDefaultTraits "CirculationDefaultTraits". In most cases, this parameter should not be set directly, consider to use the named template parameters instead. */ #ifdef DOXYGEN /// able to automatically created by the algorithm (i.e. the /// digraph and the maximum level should be passed to it). /// However an external elevator object could also be passed to the /// However, an external elevator object could also be passed to the /// algorithm with the \ref elevator(Elevator&) "elevator()" function /// before calling \ref run() or \ref init(). /// \param graph The digraph the algorithm runs on. /// \param lower The lower bounds for the flow values on the arcs. /// \param upper The upper bounds (capacities) for the flow values /// \param upper The upper bounds (capacities) for the flow values /// on the arcs. /// \param supply The signed supply values of the nodes. } /// \brief Sets the tolerance used by algorithm. /// /// Sets the tolerance used by algorithm. /// \brief Sets the tolerance used by the algorithm. /// /// Sets the tolerance object used by the algorithm. /// \return (*this) Circulation& tolerance(const Tolerance& tolerance) { _tol = tolerance; /// \brief Returns a const reference to the tolerance. /// /// Returns a const reference to the tolerance. /// Returns a const reference to the tolerance object used by /// the algorithm. const Tolerance& tolerance() const { return _tol; /// \name Execution Control /// The simplest way to execute the algorithm is to call \ref run().\n /// If you need more control on the initial solution or the execution, /// first you have to call one of the \ref init() functions, then /// If you need better control on the initial solution or the execution, /// you have to call one of the \ref init() functions first, then /// the \ref start() function.