Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::energybased::fmmm::Set Class Reference

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 More...
 
 ~Set ()
 destructor More...
 
void set_seed (int rand_seed)
 the the random seed to rand_seed More...
 
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. More...
 
bool empty_node_set ()
 Returns whether S_node is empty or not. More...
 
bool is_deleted (node v)
 Returns true if and only if v is deleted from S_node. More...
 
void delete_node (node v)
 Deletes the node v from S_node. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Protected Member Functions

node get_random_node_common (int, int &)
 Common updates for each get_random_node method. More...
 
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. More...
 

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) More...
 
NodeArray< int > mass_of_star
 the sum of the masses of a node and its neighbours More...
 
NodeArray< int > position_in_node_set
 holds for each node of G the index of its position in S_node More...
 
nodeS_node
 representation of the node set S_node[0,G.number_of_nodes()-1] More...
 

Detailed Description

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

Definition at line 47 of file Set.h.

Constructor & Destructor Documentation

◆ Set()

ogdf::energybased::fmmm::Set::Set ( )

constructor

◆ ~Set()

ogdf::energybased::fmmm::Set::~Set ( )

destructor

Member Function Documentation

◆ delete_node()

void ogdf::energybased::fmmm::Set::delete_node ( node  v)

Deletes the node v from S_node.

◆ empty_node_set()

bool ogdf::energybased::fmmm::Set::empty_node_set ( )
inline

Returns whether S_node is empty or not.

Definition at line 64 of file Set.h.

◆ get_random_node()

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.

◆ get_random_node_common()

node ogdf::energybased::fmmm::Set::get_random_node_common ( int  ,
int &   
)
protected

Common updates for each get_random_node method.

◆ get_random_node_with_highest_star_mass()

node ogdf::energybased::fmmm::Set::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.

◆ get_random_node_with_lowest_star_mass()

node ogdf::energybased::fmmm::Set::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.

◆ get_random_node_with_some_star_mass()

template<typename Comp >
node ogdf::energybased::fmmm::Set::get_random_node_with_some_star_mass ( int  rand_tries,
Comp  comp = Comp() 
)
protected

Helper function for get_random_node methods with lowest or highest star mass.

◆ init_node_set() [1/2]

void ogdf::energybased::fmmm::Set::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.

◆ init_node_set() [2/2]

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.

◆ is_deleted()

bool ogdf::energybased::fmmm::Set::is_deleted ( node  v)
inline

Returns true if and only if v is deleted from S_node.

Definition at line 67 of file Set.h.

◆ set_seed()

void ogdf::energybased::fmmm::Set::set_seed ( int  rand_seed)

the the random seed to rand_seed

Member Data Documentation

◆ last_selectable_index_of_S_node

int ogdf::energybased::fmmm::Set::last_selectable_index_of_S_node
private

index of the last randomly choosable element in S_node (this value is decreased after each select operation)

Definition at line 115 of file Set.h.

◆ mass_of_star

NodeArray<int> ogdf::energybased::fmmm::Set::mass_of_star
private

the sum of the masses of a node and its neighbours

Definition at line 120 of file Set.h.

◆ position_in_node_set

NodeArray<int> ogdf::energybased::fmmm::Set::position_in_node_set
private

holds for each node of G the index of its position in S_node

Definition at line 118 of file Set.h.

◆ S_node

node* ogdf::energybased::fmmm::Set::S_node
private

representation of the node set S_node[0,G.number_of_nodes()-1]

Definition at line 114 of file Set.h.


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