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 |