C++ Reference
C++ Reference: Graph
ArcIndexArray first_admissible_arc_
Definition: max_flow.h:584
void GetSinkSideMinCut(std::vector< NodeIndex > *result)
virtual ~GenericMaxFlow()
Definition: max_flow.h:335
bool IsActive(NodeIndex node) const
Definition: max_flow.h:437
QuantityArray node_excess_
Definition: max_flow.h:550
FlowQuantity Capacity(ArcIndex arc) const
Definition: max_flow.h:375
void PushActiveNode(const NodeIndex &node)
Definition: max_flow.h:468
Definition: graph.h:548
std::vector< NodeIndex > bfs_queue_
Definition: max_flow.h:611
NodeIndex Tail(ArcIndex arc) const
Definition: max_flow.h:533
void SetUseTwoPhaseAlgorithm(bool value)
Definition: max_flow.h:418
void RefineWithGlobalUpdate()
void GetSourceSideMinCut(std::vector< NodeIndex > *result)
void Refine()
bool process_node_by_height_
Definition: max_flow.h:629
ZVector< ArcIndex > ArcIndexArray
Definition: max_flow.h:323
bool SaturateOutgoingArcsFromSource()
FlowQuantity Flow(ArcIndex arc) const
Definition: max_flow.h:365
Definition: christofides.h:33
FlowQuantity Flow(ArcIndex arc) const
void GlobalUpdate()
ZVector< FlowQuantity > QuantityArray
Definition: ebert_graph.h:209
void GetSinkSideMinCut(std::vector< NodeIndex > *result)
bool IsEmpty() const
Definition: max_flow.h:661
NodeIndex GetAndRemoveFirstActiveNode()
Definition: max_flow.h:460
void InitializePreflow()
void ProcessNodeByHeight(bool value)
Definition: max_flow.h:421
NodeHeightArray node_potential_
Definition: max_flow.h:563
bool AugmentingPathExists() const
FlowQuantity Capacity(ArcIndex arc) const
void SetArcCapacity(ArcIndex arc, FlowQuantity capacity)
void Push(Element element, IntegerPriority priority)
Definition: max_flow.h:673
Definition: max_flow.h:152
Graph::OutgoingArcIterator OutgoingArcIterator
Definition: max_flow.h:319
void PushFlowExcessBackToSource()
Status Solve(NodeIndex source, NodeIndex sink)
FlowQuantity OptimalFlow() const
Graph::IncomingArcIterator IncomingArcIterator
Definition: max_flow.h:322
bool Solve()
ArcIndex NumArcs() const
void SetArcFlow(ArcIndex arc, FlowQuantity new_flow)
MaxFlow(const StarGraph *graph, NodeIndex source, NodeIndex target)
Definition: max_flow.h:654
FlowQuantity GetOptimalFlow() const
Definition: max_flow.h:361
NodeIndex Head(ArcIndex arc) const
ZVector< NodeHeight > NodeHeightArray
Definition: max_flow.h:328
void ComputeReachableNodes(NodeIndex start, std::vector< NodeIndex > *result)
QuantityArray residual_arc_capacity_
Definition: max_flow.h:581
bool use_two_phase_algorithm_
Definition: max_flow.h:621
bool IsArcDirect(ArcIndex arc) const
SimpleMaxFlow()
ArcIndex AddArcWithCapacity(NodeIndex tail, NodeIndex head, FlowQuantity capacity)
void SetArcCapacity(ArcIndex arc, FlowQuantity new_capacity)
Definition: max_flow.h:652
void Relabel(NodeIndex node)
bool CheckRelabelPrecondition(NodeIndex node) const
PriorityQueueWithRestrictedPush< NodeIndex, NodeHeight > active_node_by_height_
Definition: max_flow.h:597
void GetSourceSideMinCut(std::vector< NodeIndex > *result)
void InitializeActiveNodeContainer()
static const FlowQuantity kMaxFlowQuantity
Definition: max_flow.h:544
bool CheckResult() const
void Discharge(NodeIndex node)
void SetCheckInput(bool value)
Definition: max_flow.h:419
NodeIndex GetSinkNodeIndex() const
Definition: max_flow.h:349
NodeIndex Head(ArcIndex arc) const
Definition: max_flow.h:532
void SetCheckResult(bool value)
Definition: max_flow.h:420
std::vector< NodeIndex > active_nodes_
Definition: max_flow.h:590
NodeIndex NumNodes() const
void SetCapacityAndClearFlow(ArcIndex arc, FlowQuantity capacity)
Definition: max_flow.h:442
FlowModel CreateFlowModel()
bool CheckInputConsistency() const
ArcIndex Opposite(ArcIndex arc) const
bool IsAdmissible(ArcIndex arc) const
Definition: max_flow.h:430
bool IsArcValid(ArcIndex arc) const
void PushFlow(FlowQuantity flow, ArcIndex arc)
bool IsEmptyActiveNodeContainer()
Definition: max_flow.h:477
std::string DebugString(const std::string &context, ArcIndex arc) const
bool use_global_update_
Definition: max_flow.h:614
FlowModel CreateFlowModelOfLastSolve()
NodeIndex Tail(ArcIndex arc) const
GenericMaxFlow(const Graph *graph, NodeIndex source, NodeIndex sink)
NodeIndex GetSourceNodeIndex() const
Definition: max_flow.h:346
PriorityQueueWithRestrictedPush()
Definition: max_flow.h:266
void SetUseGlobalUpdate(bool value)
Definition: max_flow.h:414
std::vector< bool > node_in_bfs_queue_
Definition: max_flow.h:610
Graph::OutgoingOrOppositeIncomingArcIterator OutgoingOrOppositeIncomingArcIterator
Definition: max_flow.h:321