|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Augmenting-path search over a directed network. More...
#include <tpl_net.H>
Public Member Functions | |
| SemiPath< Net > | find_aum_path (typename Net::Flow_Type min_slack=0.0) |
Find an augmenting semi-path with at least min_slack. | |
| SemiPath< Net > | find_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< Net > | operator() (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< Net > | operator() (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::Node * | search (typename Net::Node *start, typename Net::Node *end, typename Net::Flow_Type min_slack) |
| Path< Net > | find (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< Net > | find_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 Net & | net |
Augmenting-path search over a directed network.
The network is modeled with a graph class (not a digraph class).
|
inline |
|
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()().
|
inline |
Find an augmenting semi-path with at least min_slack.
Definition at line 1172 of file tpl_net.H.
References Aleph::Find_Aumenting_Path< Net, Q >::find_path(), Aleph::Net_Graph< NodeT, ArcT >::get_sink(), Aleph::Net_Graph< NodeT, ArcT >::get_source(), Aleph::maps(), and Aleph::Find_Aumenting_Path< Net, Q >::net.
Referenced by Aleph::Find_Aumenting_Path< Net, Q >::operator()().
|
inline |
Find a decrementing semi-path with at least min_slack.
Definition at line 1178 of file tpl_net.H.
References Aleph::Find_Aumenting_Path< Net, Q >::find_path(), Aleph::Net_Graph< NodeT, ArcT >::get_sink(), Aleph::Net_Graph< NodeT, ArcT >::get_source(), Aleph::maps(), and Aleph::Find_Aumenting_Path< Net, Q >::net.
|
inlineprivate |
Build a SemiPath from start to end with minimum slack.
Definition at line 1122 of file tpl_net.H.
Referenced by Aleph::Find_Aumenting_Path< Net, Q >::find_aum_path(), Aleph::Find_Aumenting_Path< Net, Q >::find_dec_path(), and Aleph::Find_Aumenting_Path< Net, Q >::semi_path().
|
inline |
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().
|
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().
|
inlineprivate |
Definition at line 1030 of file tpl_net.H.
References GraphCommon< GT, Node, Arc >::get_connected_node(), GraphCommon< GT, Node, Arc >::get_src_node(), GraphCommon< GT, Node, Arc >::get_tgt_node(), Aleph::HTList::is_empty(), Aleph::maps(), Aleph::Find_Aumenting_Path< Net, Q >::net, NODE_COOKIE, Aleph::Processed, Aleph::Processing, GraphCommon< GT, Node, Arc >::reset_arcs(), GraphCommon< GT, Node, Arc >::reset_nodes(), and Aleph::Unprocessed.
|
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().
|
private |
Definition at line 1027 of file tpl_net.H.
Referenced by Aleph::Find_Aumenting_Path< Net, Q >::find_aum_path(), Aleph::Find_Aumenting_Path< Net, Q >::find_dec_path(), and Aleph::Find_Aumenting_Path< Net, Q >::search().