PaGMO
1.1.5
|
Barabási-Albert graph topology. More...
#include <barabasi_albert.h>
Public Member Functions | |
barabasi_albert (int m0=3, int m=2) | |
Constructor from kernel size and number of edges. More... | |
base_ptr | clone () const |
Clone method. More... | |
std::string | get_name () const |
Get name of the topology. More... | |
Public Member Functions inherited from pagmo::topology::base | |
base () | |
Default constructor. More... | |
base (const base &) | |
Copy constructor. More... | |
base & | operator= (const base &) |
Assignment operator. More... | |
virtual | ~base () |
Trivial destructor. More... | |
vertices_size_type | get_number_of_vertices () const |
Get number of vertices. More... | |
edges_size_type | get_number_of_edges () const |
Get number of edges. More... | |
void | push_back () |
Push back vertex. More... | |
double | get_average_shortest_path_length () const |
Calculate average path length. More... | |
double | get_clustering_coefficient () const |
Calculate clustering coefficient. | |
std::vector< double > | get_degree_distribution () const |
Constructs the Degree Distribution. | |
bool | are_adjacent (const vertices_size_type &, const vertices_size_type &) const |
Return true if two vertices are adjacent. More... | |
bool | are_inv_adjacent (const vertices_size_type &, const vertices_size_type &) const |
Return true if two vertices are inversely adjacent. More... | |
std::vector< vertices_size_type > | get_v_adjacent_vertices (const vertices_size_type &) const |
Return vector of adjacent vertices. More... | |
std::vector< vertices_size_type > | get_v_inv_adjacent_vertices (const vertices_size_type &) const |
Return vector of inversely adjacent vertices. More... | |
edges_size_type | get_num_adjacent_vertices (const vertices_size_type &) const |
Return the number of adjacent vertices. More... | |
edges_size_type | get_num_inv_adjacent_vertices (const vertices_size_type &) const |
Return the number of inversely adjacent vertices. More... | |
void | set_weight (double) |
Sets the migration probability. More... | |
void | set_weight (const vertices_size_type &, double) |
Sets the migration probability. More... | |
void | set_weight (const vertices_size_type &, const vertices_size_type &, double) |
Sets the migration probability. More... | |
double | get_weight (const vertices_size_type &, const vertices_size_type &) const |
Get the migration probability. More... | |
std::string | human_readable_terse () const |
Return terse human readable representation. More... | |
std::string | human_readable () const |
Return complete human readable representation. More... | |
Protected Member Functions | |
void | connect (const vertices_size_type &) |
Establish connections between islands during a push_back() operation. More... | |
std::string | human_readable_extra () const |
Topology-specific human readable info. More... | |
Protected Member Functions inherited from pagmo::topology::base | |
void | add_vertex () |
Add a vertex. More... | |
std::pair< a_iterator, a_iterator > | get_adjacent_vertices (const vertices_size_type &) const |
Return iterator range to adjacent vertices. More... | |
std::pair< ia_iterator, ia_iterator > | get_inv_adjacent_vertices (const vertices_size_type &) const |
Return iterator range to inversely adjacent vertices. More... | |
void | add_edge (const vertices_size_type &, const vertices_size_type &) |
Add an edge. More... | |
void | remove_edge (const vertices_size_type &, const vertices_size_type &) |
Remove an edge. More... | |
void | remove_all_edges () |
Remove all edges. More... | |
std::pair< v_iterator, v_iterator > | get_vertices () const |
Return iterator range to vertices. More... | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Public Types inherited from pagmo::topology::base | |
typedef graph_type::vertices_size_type | vertices_size_type |
Vertices size type. | |
typedef graph_type::edges_size_type | edges_size_type |
Edges size type. | |
Protected Types inherited from pagmo::topology::base | |
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, boost::no_property, edge_properties, boost::no_property, boost::listS > | graph_type |
typedef boost::graph_traits< graph_type >::vertex_iterator | v_iterator |
Iterator over the vertices. | |
typedef boost::graph_traits< graph_type >::edge_iterator | e_iterator |
Iterator over the edges. | |
typedef boost::graph_traits< graph_type >::adjacency_iterator | a_iterator |
Iterator over adjacent vertices. | |
typedef graph_type::inv_adjacency_iterator | ia_iterator |
Iterator over inversely adjacent vertices. | |
typedef boost::graph_traits< graph_type >::vertex_descriptor | v_descriptor |
Vertex descriptor. | |
typedef boost::graph_traits< graph_type >::edge_descriptor | e_descriptor |
Edge descriptor. | |
Barabási-Albert graph topology.
Topology based on the Barabási-Albert (BA) model for the generation of random undirected scale-free networks. The construction of this topology consists internally of two phases:
Definition at line 54 of file barabasi_albert.h.
pagmo::topology::barabasi_albert::barabasi_albert | ( | int | m0 = 3 , |
int | m = 2 |
||
) |
Constructor from kernel size and number of edges.
Build a BA network in which the initial kernel has size m0 and the elements being inserted after the construction of the kernel is completed are connected randomly to m nodes. Will fail if m0 < 2, if m < 1 or if m > m0.
[in] | m0 | size of the kernel |
[in] | m | number of random connections to be established when a new node is added. |
Definition at line 49 of file barabasi_albert.cpp.
|
virtual |
Clone method.
Provided that the derived topology implements properly the copy constructor, virtually all implementations of this method will look like this:
Implements pagmo::topology::base.
Definition at line 58 of file barabasi_albert.cpp.
|
protectedvirtual |
Establish connections between islands during a push_back() operation.
This method will be called by push_back() after a vertex has been added to the graph. The purpose of this method is to connect the newly-added vertex to other vertices according to the properties of the topology.
[in] | idx | index of the newly-added vertex. |
Implements pagmo::topology::base.
Definition at line 63 of file barabasi_albert.cpp.
|
virtual |
Get name of the topology.
Default implementation will return the class' mangled C++ name.
Reimplemented from pagmo::topology::base.
Definition at line 158 of file barabasi_albert.cpp.
|
protectedvirtual |
Topology-specific human readable info.
Will return a formatted string containing the size of the kernel and the number of connections for newly-inserted nodes.
Reimplemented from pagmo::topology::base.
Definition at line 150 of file barabasi_albert.cpp.