anpcpp 0.1.0
Analytic Network Process computational library
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
anpcpp::AnpNetwork Class Reference

Root ANP model: structure, judgments, supermatrices, and priorities. More...

#include <network.hpp>

Public Member Functions

 AnpNetwork (bool create_alts_cluster=true)
 Constructs an empty network.
 
 AnpNetwork (AnpNetwork &&) noexcept=default
 Move constructor.
 
AnpNetworkoperator= (AnpNetwork &&) noexcept=default
 Move assignment.
 
AnpClusteradd_cluster (const std::string &name)
 Adds a cluster.
 
AnpClusterfind_cluster (const std::string &name)
 
const AnpClusterfind_cluster (const std::string &name) const
 Const overload of find_cluster.
 
AnpClustercluster (const std::string &name)
 
const AnpClustercluster (const std::string &name) const
 Const overload of cluster.
 
AnpClusteralternatives_cluster () const noexcept
 
void set_alternatives_cluster (const std::string &name)
 Marks name as the alternatives cluster.
 
AnpNodeadd_node (const std::string &cluster_name, const std::string &node_name)
 Adds a node to cluster_name.
 
void move_node (const std::string &name, std::size_t new_index)
 Reorders a node within its cluster.
 
AnpNodefind_node (const std::string &name)
 
const AnpNodefind_node (const std::string &name) const
 Const overload of find_node.
 
AnpNodenode (const std::string &name)
 
const AnpNodenode (const std::string &name) const
 Const overload of node.
 
void node_connect (const std::string &src, const std::string &dest)
 Connects two nodes by name.
 
void node_disconnect (const std::string &src, const std::string &dest)
 Disconnects two nodes.
 
void set_node_comparison (const std::string &wrt_node, const std::string &a, const std::string &b, double value)
 Sets node pairwise comparison (w.r.t.
 
void set_cluster_comparison (const std::string &wrt_cluster, const std::string &a, const std::string &b, double value)
 Sets cluster-level pairwise comparison.
 
void set_node_prioritizer_kind (const std::string &wrt_node, const std::string &dest_cluster, NodePrioritizerKind kind)
 Sets prioritizer kind for wrt_nodedest_cluster.
 
void set_node_rating (const std::string &wrt_node, const std::string &alt, const std::string &category_id)
 Sets a categorical rating (ensures connection; switches to ratings).
 
void set_node_rating_value (const std::string &wrt_node, const std::string &alt, double raw)
 Sets a numeric rating value (ensures connection; switches to ratings).
 
void remove_node (const std::string &name)
 Removes a node and its connections.
 
void remove_cluster (const std::string &name)
 Removes a cluster and its nodes.
 
void clear_subnetwork (const std::string &node_name)
 Clears a node's subnetwork.
 
const SynthesisOptionssynthesis_options () const noexcept
 
void set_synthesis_options (SynthesisOptions options)
 Sets synthesis options.
 
void set_cluster_position (const std::string &name, double x, double y)
 Stores GUI layout hint (ignored by calculations).
 
void set_node_position (const std::string &name, double x, double y)
 Stores node canvas position (ignored by calculations).
 
bool cluster_position (const std::string &name, double &x, double &y) const
 Retrieves cluster layout position.
 
bool node_position (const std::string &name, double &x, double &y) const
 Retrieves node layout position.
 
std::size_t nnodes () const
 
std::size_t nclusters () const noexcept
 
std::vector< std::string > cluster_names () const
 
std::vector< std::string > node_names () const
 
std::vector< AnpCluster * > clusters ()
 
std::vector< const AnpCluster * > clusters () const
 
std::vector< AnpNode * > nodes ()
 
std::vector< const AnpNode * > nodes () const
 
Matrix unscaled_supermatrix () const
 
Matrix cluster_weight_matrix () const
 
Matrix scaled_supermatrix () const
 
Matrix limit_matrix (const LimitMatrixOptions &options={}) const
 
Vector global_priority (const LimitMatrixOptions &options={}) const
 
bool has_subnet () const
 
AnpNetworksubnet (const std::string &node_name)
 
std::vector< std::string > alt_names () const
 
Vector priority (const LimitMatrixOptions &options={}) const
 
std::map< std::string, double > priority_map (const LimitMatrixOptions &options={}) const
 

Static Public Attributes

static constexpr const char * kDefaultAlternativesCluster = "Alternatives"
 Default name for the alternatives cluster when auto-created.
 

Detailed Description

Root ANP model: structure, judgments, supermatrices, and priorities.

Constructor & Destructor Documentation

◆ AnpNetwork()

anpcpp::AnpNetwork::AnpNetwork ( bool  create_alts_cluster = true)
explicit

Constructs an empty network.

Parameters
create_alts_clusterIf true, creates an "Alternatives" cluster.

Member Function Documentation

◆ add_cluster()

AnpCluster & anpcpp::AnpNetwork::add_cluster ( const std::string &  name)

Adds a cluster.

Exceptions
std::runtime_errorif the name already exists.

◆ alt_names()

std::vector< std::string > anpcpp::AnpNetwork::alt_names ( ) const
Returns
Alternative names (from subnetworks or flat alts cluster).

◆ alternatives_cluster()

AnpCluster * anpcpp::AnpNetwork::alternatives_cluster ( ) const
inlinenoexcept
Returns
The designated alternatives cluster, if any.

◆ cluster()

AnpCluster & anpcpp::AnpNetwork::cluster ( const std::string &  name)
Returns
Named cluster.
Exceptions
std::out_of_rangeif not found.

◆ cluster_names()

std::vector< std::string > anpcpp::AnpNetwork::cluster_names ( ) const
Returns
All cluster names.

◆ cluster_position()

bool anpcpp::AnpNetwork::cluster_position ( const std::string &  name,
double &  x,
double &  y 
) const

Retrieves cluster layout position.

Returns
False if no position stored.

◆ cluster_weight_matrix()

Matrix anpcpp::AnpNetwork::cluster_weight_matrix ( ) const
Returns
Cluster weight matrix.

◆ clusters() [1/2]

std::vector< AnpCluster * > anpcpp::AnpNetwork::clusters ( )
Returns
Cluster pointers.

◆ clusters() [2/2]

std::vector< const AnpCluster * > anpcpp::AnpNetwork::clusters ( ) const
Returns
Const cluster pointers.

◆ find_cluster()

AnpCluster * anpcpp::AnpNetwork::find_cluster ( const std::string &  name)
Returns
Cluster pointer or nullptr.

◆ find_node()

AnpNode * anpcpp::AnpNetwork::find_node ( const std::string &  name)
Returns
Node pointer or nullptr.

◆ global_priority()

Vector anpcpp::AnpNetwork::global_priority ( const LimitMatrixOptions options = {}) const
Returns
Global priority vector from the limit matrix.

◆ has_subnet()

bool anpcpp::AnpNetwork::has_subnet ( ) const
Returns
True if any node has a subnetwork.

◆ limit_matrix()

Matrix anpcpp::AnpNetwork::limit_matrix ( const LimitMatrixOptions options = {}) const
Returns
Limit matrix from scaled supermatrix.

◆ nclusters()

std::size_t anpcpp::AnpNetwork::nclusters ( ) const
inlinenoexcept
Returns
Cluster count.

◆ nnodes()

std::size_t anpcpp::AnpNetwork::nnodes ( ) const
Returns
Total node count in this network.

◆ node()

AnpNode & anpcpp::AnpNetwork::node ( const std::string &  name)
Returns
Named node.
Exceptions
std::out_of_rangeif not found.

◆ node_names()

std::vector< std::string > anpcpp::AnpNetwork::node_names ( ) const
Returns
All node names (global order).

◆ node_position()

bool anpcpp::AnpNetwork::node_position ( const std::string &  name,
double &  x,
double &  y 
) const

Retrieves node layout position.

Returns
False if no position stored.

◆ nodes() [1/2]

std::vector< AnpNode * > anpcpp::AnpNetwork::nodes ( )
Returns
Node pointers in global order.

◆ nodes() [2/2]

std::vector< const AnpNode * > anpcpp::AnpNetwork::nodes ( ) const
Returns
Const node pointers.

◆ priority()

Vector anpcpp::AnpNetwork::priority ( const LimitMatrixOptions options = {}) const
Returns
Alternative priority vector (synthesized when subnetworks exist).

◆ priority_map()

std::map< std::string, double > anpcpp::AnpNetwork::priority_map ( const LimitMatrixOptions options = {}) const
Returns
Alternative scores as a name -> value map.

◆ scaled_supermatrix()

Matrix anpcpp::AnpNetwork::scaled_supermatrix ( ) const
Returns
Cluster-weighted, column-normalized supermatrix.

◆ set_node_comparison()

void anpcpp::AnpNetwork::set_node_comparison ( const std::string &  wrt_node,
const std::string &  a,
const std::string &  b,
double  value 
)

Sets node pairwise comparison (w.r.t.

wrt_node's cluster links).

Exceptions
std::logic_errorif the link uses ratings.

◆ set_node_prioritizer_kind()

void anpcpp::AnpNetwork::set_node_prioritizer_kind ( const std::string &  wrt_node,
const std::string &  dest_cluster,
NodePrioritizerKind  kind 
)

Sets prioritizer kind for wrt_nodedest_cluster.

Exceptions
std::out_of_rangeif there is no link to that cluster.

◆ subnet()

AnpNetwork & anpcpp::AnpNetwork::subnet ( const std::string &  node_name)
Returns
Subnetwork owned by node_name.
Exceptions
std::out_of_rangeif the node has no subnetwork.

◆ synthesis_options()

const SynthesisOptions & anpcpp::AnpNetwork::synthesis_options ( ) const
inlinenoexcept
Returns
Synthesis options for subnetwork score combination.

◆ unscaled_supermatrix()

Matrix anpcpp::AnpNetwork::unscaled_supermatrix ( ) const
Returns
Unscaled supermatrix (columns = global node priorities).

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