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

Erdős–Rényi random network generator. More...

#include <random_network_generator.H>

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

Public Member Functions

 ErdosRenyiGenerator (const NetworkGeneratorConfig &cfg)
 
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)
 
bool is_connected (const Net &net, Node *source, Node *sink)
 
void ensure_path (Net &net, Node *source, Node *sink, const std::vector< Node * > &nodes)
 

Private Attributes

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< 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::ErdosRenyiGenerator< Net >

Erdős–Rényi random network generator.

Generates G(n, p) random graphs where each possible arc exists with probability p (density).

Definition at line 216 of file random_network_generator.H.

Member Typedef Documentation

◆ Base

◆ Node

Constructor & Destructor Documentation

◆ ErdosRenyiGenerator()

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

Definition at line 227 of file random_network_generator.H.

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 
)
inlineprivate

◆ generate()

◆ insert_arc()

template<class Net >
void Aleph::Testing::RandomNetworkGenerator< Net >::insert_arc ( Net net,
Node src,
Node tgt 
)
inlineprivate

◆ is_connected()

template<class Net >
bool Aleph::Testing::RandomNetworkGenerator< Net >::is_connected ( const Net net,
Node source,
Node sink 
)
inlineprivate

Definition at line 145 of file random_network_generator.H.

◆ random_prob()

template<class Net >
double Aleph::Testing::RandomNetworkGenerator< Net >::random_prob ( )
inlineprivate

Member Data Documentation

◆ config


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