Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Find_Aumenting_Path< Net, Q > Class Template Reference

Augmenting-path search over a directed network. More...

#include <tpl_net.H>

Collaboration diagram for Aleph::Find_Aumenting_Path< Net, Q >:
[legend]

Public Member Functions

SemiPath< Netfind_aum_path (typename Net::Flow_Type min_slack=0.0)
 Find an augmenting semi-path with at least min_slack.
 
SemiPath< Netfind_dec_path (typename Net::Flow_Type min_slack=0.0)
 Find a decrementing semi-path with at least min_slack.
 
 Find_Aumenting_Path (const Net &__g)
 Construct a finder for net.
 
Path< Netoperator() (typename Net::Node *start, typename Net::Node *end, typename Net::Flow_Type min_slack=0)
 Find a concrete Path with at least min_slack.
 
SemiPath< Netoperator() (typename Net::Flow_Type min_slack=0)
 Find an augmenting semi-path from the network source to sink.
 
Net::Flow_Type semi_path (typename Net::Node *start, typename Net::Node *end, DynList< Parc< Net > > &semi_path, const typename Net::Flow_Type &min_slack=0)
 Fill semi_path and return the slack value.
 

Private Member Functions

Net::Nodesearch (typename Net::Node *start, typename Net::Node *end, typename Net::Flow_Type min_slack)
 
Path< Netfind (typename Net::Node *start, typename Net::Node *end, const typename Net::Flow_Type &min_slack=typename Net::Flow_Type{0})
 Build a Path from start to end with minimum slack.
 
SemiPath< Netfind_path (typename Net::Node *start, typename Net::Node *end, typename Net::Flow_Type min_slack=typename Net::Flow_Type{0})
 Build a SemiPath from start to end with minimum slack.
 

Private Attributes

const Netnet
 

Detailed Description

template<class Net, template< typename T > class Q>
class Aleph::Find_Aumenting_Path< Net, Q >

Augmenting-path search over a directed network.

The network is modeled with a graph class (not a digraph class).

Definition at line 1025 of file tpl_net.H.

Constructor & Destructor Documentation

◆ Find_Aumenting_Path()

Construct a finder for net.

Definition at line 1184 of file tpl_net.H.

Member Function Documentation

◆ find()

template<class Net , template< typename T > class Q>
Path< Net > Aleph::Find_Aumenting_Path< Net, Q >::find ( typename Net::Node start,
typename Net::Node end,
const typename Net::Flow_Type min_slack = typename Net::Flow_Type{0} 
)
inlineprivate

Build a Path from start to end with minimum slack.

Definition at line 1100 of file tpl_net.H.

Referenced by Aleph::Find_Aumenting_Path< Net, Q >::operator()().

◆ find_aum_path()

◆ find_dec_path()

◆ find_path()

template<class Net , template< typename T > class Q>
SemiPath< Net > Aleph::Find_Aumenting_Path< Net, Q >::find_path ( typename Net::Node start,
typename Net::Node end,
typename Net::Flow_Type  min_slack = typename Net::Flow_Type{0} 
)
inlineprivate

◆ operator()() [1/2]

Find an augmenting semi-path from the network source to sink.

Definition at line 1198 of file tpl_net.H.

References Aleph::Find_Aumenting_Path< Net, Q >::find_aum_path(), and Aleph::maps().

◆ operator()() [2/2]

template<class Net , template< typename T > class Q>
Path< Net > Aleph::Find_Aumenting_Path< Net, Q >::operator() ( typename Net::Node start,
typename Net::Node end,
typename Net::Flow_Type  min_slack = 0 
)
inline

Find a concrete Path with at least min_slack.

Definition at line 1190 of file tpl_net.H.

References Aleph::Find_Aumenting_Path< Net, Q >::find(), and Aleph::maps().

◆ search()

◆ semi_path()

template<class Net , template< typename T > class Q>
Net::Flow_Type Aleph::Find_Aumenting_Path< Net, Q >::semi_path ( typename Net::Node start,
typename Net::Node end,
DynList< Parc< Net > > &  semi_path,
const typename Net::Flow_Type min_slack = 0 
)
inline

Fill semi_path and return the slack value.

Returns 0 if no path is found.

Definition at line 1208 of file tpl_net.H.

References Aleph::Find_Aumenting_Path< Net, Q >::find_path(), Aleph::maps(), and Aleph::Find_Aumenting_Path< Net, Q >::semi_path().

Referenced by Aleph::Find_Aumenting_Path< Net, Q >::semi_path().

Member Data Documentation

◆ net


The documentation for this class was generated from the following file: