|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Layered (staged) network generator. More...
#include <random_network_generator.H>
Public Member Functions | |
| LayeredNetworkGenerator (const NetworkGeneratorConfig &cfg, size_t layers=4, size_t per_layer=5) | |
| void | generate (Net &net) override |
Public Member Functions inherited from Aleph::Testing::RandomNetworkGenerator< Net > | |
| RandomNetworkGenerator (const NetworkGeneratorConfig &cfg) | |
| virtual | ~RandomNetworkGenerator ()=default |
| void | reseed () |
| Reset the random number generator to the original seed. | |
| void | reseed (unsigned new_seed) |
| Reset with a specific seed (also updates config.seed) | |
Private Types | |
| using | Base = RandomNetworkGenerator< Net > |
| using | Node = typename Net::Node |
Private Member Functions | |
| double | random_prob () |
| void | insert_arc (Net &net, Node *src, Node *tgt) |
Private Attributes | |
| size_t | num_layers |
| size_t | nodes_per_layer |
| NetworkGeneratorConfig | config |
Additional Inherited Members | |
Protected Types inherited from Aleph::Testing::RandomNetworkGenerator< Net > | |
| using | Node = typename Net::Node |
| using | Arc = typename Net::Arc |
Protected Member Functions inherited from Aleph::Testing::RandomNetworkGenerator< Net > | |
| double | random_capacity () |
| double | random_cost () |
| double | random_prob () |
| bool | is_connected (const Net &net, Node *source, Node *sink) |
| void | ensure_path (Net &net, Node *source, Node *sink, const std::vector< Node * > &nodes) |
| void | insert_arc (Net &net, Node *src, Node *tgt) |
Protected Attributes inherited from Aleph::Testing::RandomNetworkGenerator< Net > | |
| NetworkGeneratorConfig | config |
| std::mt19937 | rng |
| std::uniform_real_distribution< double > | capacity_dist |
| std::uniform_real_distribution< double > | cost_dist |
| std::uniform_real_distribution< double > | prob_dist {0.0, 1.0} |
Layered (staged) network generator.
Generates networks with distinct layers where arcs only go from layer i to layer i+1. Good for testing path-based algorithms.
Definition at line 274 of file random_network_generator.H.
|
private |
Definition at line 276 of file random_network_generator.H.
Definition at line 90 of file random_network_generator.H.
|
inline |
Definition at line 286 of file random_network_generator.H.
References Aleph::Testing::LayeredNetworkGenerator< Net >::config, Aleph::maps(), and Aleph::Testing::NetworkGeneratorConfig::num_nodes.
|
inlineoverridevirtual |
Implements Aleph::Testing::RandomNetworkGenerator< Net >.
Definition at line 295 of file random_network_generator.H.
References Aleph::Testing::LayeredNetworkGenerator< Net >::config, Aleph::Testing::NetworkGeneratorConfig::density, Aleph::Testing::NetworkGeneratorConfig::ensure_connected, GraphCommon< GT, Node, Arc >::get_tgt_node(), Aleph::Digraph_Iterator< GT, Filter >::has_curr(), Aleph::Testing::LayeredNetworkGenerator< Net >::insert_arc(), Aleph::Net_Graph< NodeT, ArcT >::insert_node(), Aleph::maps(), Aleph::next(), Aleph::Testing::LayeredNetworkGenerator< Net >::nodes_per_layer, Aleph::Testing::LayeredNetworkGenerator< Net >::num_layers, and Aleph::Testing::LayeredNetworkGenerator< Net >::random_prob().
|
inlineprivate |
Definition at line 195 of file random_network_generator.H.
Referenced by Aleph::Testing::LayeredNetworkGenerator< Net >::generate().
|
inlineprivate |
Definition at line 139 of file random_network_generator.H.
Referenced by Aleph::Testing::LayeredNetworkGenerator< Net >::generate().
|
private |
Definition at line 87 of file random_network_generator.H.
Referenced by Aleph::Testing::LayeredNetworkGenerator< Net >::LayeredNetworkGenerator(), and Aleph::Testing::LayeredNetworkGenerator< Net >::generate().
|
private |
Definition at line 283 of file random_network_generator.H.
Referenced by Aleph::Testing::LayeredNetworkGenerator< Net >::generate().
|
private |
Definition at line 282 of file random_network_generator.H.
Referenced by Aleph::Testing::LayeredNetworkGenerator< Net >::generate().