Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Testing::RandomNetworkGenerator< Net > Class Template Referenceabstract

Base class for random network generators. More...

#include <random_network_generator.H>

Inheritance diagram for Aleph::Testing::RandomNetworkGenerator< Net >:
[legend]
Collaboration diagram for Aleph::Testing::RandomNetworkGenerator< Net >:
[legend]

Public Member Functions

 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)
 
virtual void generate (Net &out)=0
 

Protected Types

using Node = typename Net::Node
 
using Arc = typename Net::Arc
 

Protected Member Functions

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

NetworkGeneratorConfig config
 
std::mt19937 rng
 
std::uniform_real_distribution< doublecapacity_dist
 
std::uniform_real_distribution< doublecost_dist
 
std::uniform_real_distribution< doubleprob_dist {0.0, 1.0}
 

Detailed Description

template<class Net>
class Aleph::Testing::RandomNetworkGenerator< Net >

Base class for random network generators.

Definition at line 84 of file random_network_generator.H.

Member Typedef Documentation

◆ Arc

◆ Node

Constructor & Destructor Documentation

◆ RandomNetworkGenerator()

template<class Net >
Aleph::Testing::RandomNetworkGenerator< Net >::RandomNetworkGenerator ( const NetworkGeneratorConfig cfg)
inline

Definition at line 99 of file random_network_generator.H.

◆ ~RandomNetworkGenerator()

Member Function Documentation

◆ ensure_path()

template<class Net >
void Aleph::Testing::RandomNetworkGenerator< Net >::ensure_path ( Net net,
Node source,
Node sink,
const std::vector< Node * > &  nodes 
)
inlineprotected

◆ generate()

◆ insert_arc()

◆ is_connected()

◆ random_capacity()

◆ random_cost()

◆ random_prob()

◆ reseed() [1/2]

template<class Net >
void Aleph::Testing::RandomNetworkGenerator< Net >::reseed ( )
inline

Reset the random number generator to the original seed.

Call this before generate() to get reproducible networks.

Definition at line 110 of file random_network_generator.H.

References Aleph::Testing::RandomNetworkGenerator< Net >::config, Aleph::Testing::RandomNetworkGenerator< Net >::rng, and Aleph::Testing::NetworkGeneratorConfig::seed.

◆ reseed() [2/2]

Member Data Documentation

◆ capacity_dist

template<class Net >
std::uniform_real_distribution<double> Aleph::Testing::RandomNetworkGenerator< Net >::capacity_dist
protected

◆ config

◆ cost_dist

template<class Net >
std::uniform_real_distribution<double> Aleph::Testing::RandomNetworkGenerator< Net >::cost_dist
protected

◆ prob_dist

template<class Net >
std::uniform_real_distribution<double> Aleph::Testing::RandomNetworkGenerator< Net >::prob_dist {0.0, 1.0}
protected

◆ rng


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