PaGMO  1.1.5
Public Member Functions | Protected Member Functions | Friends
pagmo::topology::rim Class Reference

Wheel rim topology. More...

#include <rim.h>

Inheritance diagram for pagmo::topology::rim:
Inheritance graph
[legend]

Public Member Functions

 rim ()
 Default 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...
 
baseoperator= (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_typeget_v_adjacent_vertices (const vertices_size_type &) const
 Return vector of adjacent vertices. More...
 
std::vector< vertices_size_typeget_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_iteratorget_adjacent_vertices (const vertices_size_type &) const
 Return iterator range to adjacent vertices. More...
 
std::pair< ia_iterator, ia_iteratorget_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_iteratorget_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.
 

Detailed Description

Wheel rim topology.

rim.png
Wheel rim topology with 7 nodes.

A wheel rim topology is a bidirectional ring topology with an additional node in the middle, fully connected to all the nodes in the ring. The first node created is the central one.

Author
Francesco Biscani (blues.nosp@m.carn.nosp@m.i@gma.nosp@m.il.c.nosp@m.om)

Definition at line 46 of file rim.h.

Member Function Documentation

base_ptr pagmo::topology::rim::clone ( ) const
virtual

Clone method.

Provided that the derived topology implements properly the copy constructor, virtually all implementations of this method will look like this:

return base_ptr(new derived_topology(*this));
Returns
topology::base_ptr to a copy of this.

Implements pagmo::topology::base.

Definition at line 36 of file rim.cpp.

void pagmo::topology::rim::connect ( const vertices_size_type idx)
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.

Parameters
[in]idxindex of the newly-added vertex.

Implements pagmo::topology::base.

Definition at line 41 of file rim.cpp.

std::string pagmo::topology::rim::get_name ( ) const
virtual

Get name of the topology.

Default implementation will return the class' mangled C++ name.

Returns
name of the topology.

Reimplemented from pagmo::topology::base.

Definition at line 93 of file rim.cpp.


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