Helping data structure that holds set S_node of nodes in the range [0, G.number_of_nodes()-1] (needed for class Multilevel) for randomly choosing nodes (with uniform or weighted probability!) More...
#include <ogdf/energybased/fmmm/Set.h>
Public Member Functions | |
Set () | |
constructor | |
~Set () | |
destructor | |
void | set_seed (int rand_seed) |
the the random seed to rand_seed | |
for set of nodes | |
void | init_node_set (Graph &G) |
Inits S_node[0,...,G.number_of_nodes()-1] and stores the i-th node of P at position S_node[i] and in position_in_node_set for each node its index in S_node. | |
bool | empty_node_set () |
Returns whether S_node is empty or not. | |
bool | is_deleted (node v) |
Returns true if and only if v is deleted from S_node. | |
void | delete_node (node v) |
Deletes the node v from S_node. | |
for set of nodes with uniform probability | |
node | get_random_node () |
Selects a random element from S_node with uniform probability and updates S_node and position_in_node_set. | |
for set of nodes with weighted probability | |
void | init_node_set (Graph &G, NodeArray< NodeAttributes > &A) |
Same as init_node_set(G), but additionally the array mass_of_star is caculated. | |
for set of nodes with `‘lower mass’' probability | |
node | get_random_node_with_lowest_star_mass (int rand_tries) |
Gets rand_tries random elements from S_node and selects the one with the lowest mass_of_star and updates S_node and position_in_node_set. | |
for set of nodes with `‘higher mass’' probability | |
node | get_random_node_with_highest_star_mass (int rand_tries) |
Gets rand_tries random elements from S_node and selects the one with the highest mass_of_star and updates S_node and position_in_node_set. | |
Protected Member Functions | |
node | get_random_node_common (int, int &) |
Common updates for each get_random_node method. | |
template<typename Comp > | |
node | get_random_node_with_some_star_mass (int rand_tries, Comp comp=Comp()) |
Helper function for get_random_node methods with lowest or highest star mass. | |
Private Attributes | |
int | last_selectable_index_of_S_node |
index of the last randomly choosable element in S_node (this value is decreased after each select operation) | |
NodeArray< int > | mass_of_star |
the sum of the masses of a node and its neighbours | |
NodeArray< int > | position_in_node_set |
holds for each node of G the index of its position in S_node | |
node * | S_node |
representation of the node set S_node[0,G.number_of_nodes()-1] | |
Helping data structure that holds set S_node of nodes in the range [0, G.number_of_nodes()-1] (needed for class Multilevel) for randomly choosing nodes (with uniform or weighted probability!)
ogdf::energybased::fmmm::Set::Set | ( | ) |
constructor
ogdf::energybased::fmmm::Set::~Set | ( | ) |
destructor
|
inline |
node ogdf::energybased::fmmm::Set::get_random_node | ( | ) |
Selects a random element from S_node with uniform probability and updates S_node and position_in_node_set.
Common updates for each get_random_node method.
Gets rand_tries random elements from S_node and selects the one with the highest mass_of_star and updates S_node and position_in_node_set.
Gets rand_tries random elements from S_node and selects the one with the lowest mass_of_star and updates S_node and position_in_node_set.
|
protected |
Helper function for get_random_node methods with lowest or highest star mass.
Inits S_node[0,...,G.number_of_nodes()-1] and stores the i-th node of P at position S_node[i] and in position_in_node_set for each node its index in S_node.
void ogdf::energybased::fmmm::Set::init_node_set | ( | Graph & | G, |
NodeArray< NodeAttributes > & | A | ||
) |
Same as init_node_set(G), but additionally the array mass_of_star is caculated.
|
private |
|
private |