9 typedef std::vector<Path *> PathVector;
24 template<
class Tannotation,
class Tedge_iterator>
25 void Dijkstra(NodeID from, PathVector &paths);
52 bool EliminateCycles();
53 bool EliminateCycles(PathVector &path, NodeID origin_id, NodeID next_id);
54 void EliminateCycle(PathVector &path,
Path *cycle_begin, uint flow);
55 uint FindCycleFlow(
const PathVector &path,
const Path *cycle_begin);
Multi-commodity flow calculating base class.
virtual void Run(LinkGraphJob &job) const
Run the calculation.
Link graph handler for MCF.
uint PushFlow(Edge &edge, Path *path, uint accuracy, uint max_saturation)
Push flow along a path and update the unsatisfied_demand of the associated edge.
First pass of the MCF calculation.
virtual ~MCFHandler()
Destructor.
A leg of a path in the link graph.
Second pass of the MCF calculation.
uint max_saturation
Maximum saturation for edges.
void Dijkstra(NodeID from, PathVector &paths)
A slightly modified Dijkstra algorithm.
A handler doing "something" on a link graph component.
void CleanupPaths(NodeID source, PathVector &paths)
Clean up paths that lead nowhere and the root path.
LinkGraphJob & job
Job we're working with.
Some typedefs for component handlers.
MultiCommodityFlow(LinkGraphJob &job)
Constructor.
Class for calculation jobs to be run on link graphs.