PaGMO
1.1.5
|
Pan graph topology. More...
#include <pan.h>
Public Member Functions | |
pan () | |
Constructor. | |
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... | |
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... | |
virtual std::string | human_readable_extra () const |
Return extra information for human readable representation. 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. | |
Pan graph topology.
The n-pan graph is the graph obtained by joining a cycle graph (i.e., a topology::ring topology) to a singleton graph with a bridge. This implementation has bidirectional edges in the ring and a single edge towards the singleton, so that communication can flow from the ring to the singleton, but not vice-versa. The index of the singleton vertex is always 0.
|
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.
|
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.
|
virtual |
Get name of the topology.
Default implementation will return the class' mangled C++ name.
Reimplemented from pagmo::topology::base.