Crate mcdm

Crate mcdm 

Source
Expand description

The mcdm crate offers a set of utilities for implementing Multiple-Criteria Decision Making (MCDM) techniques in Rust, enabling users to analyze and rank alternatives based on multiple conflicting criteria.

§Example

use mcdm::{McdmError, Rank, Normalize, Weight, CriteriaTypes};
use nalgebra::dmatrix;

fn main() -> Result<(), McdmError> {
    // Define the decision matrix (alternatives x criteria)
    let alternatives = dmatrix![4.0, 7.0, 8.0; 2.0, 9.0, 6.0; 3.0, 6.0, 9.0];
    let criteria_types = CriteriaTypes::from_slice(&[-1, 1, 1])?;

    // Apply normalization using Min-Max
    let normalized_matrix = alternatives.normalize_min_max(&criteria_types)?;

    // Alternatively, use equal weights
    let equal_weights = normalized_matrix.weight_equal()?;

    // Apply the TOPSIS method for ranking
    let ranking = normalized_matrix.rank_topsis(&equal_weights)?;

    // Output the ranking
    println!("Ranking: {:.3}", ranking);
    // Ranking:
    //   ┌      ┐
    //   │ 0.626 │
    //   │ 0.414 │
    //   │ 0.500 │
    //   └      ┘

    Ok(())
}

Re-exports§

pub use crate::correlation::*;
pub use crate::criteria::*;
pub use crate::dmatrix_ext::*;
pub use crate::errors::*;
pub use crate::normalization::*;
pub use crate::ranking::*;
pub use crate::validation::*;
pub use crate::weighting::*;

Modules§

correlation
Correlation methods for the DMatrix type from the nalgebra crate.
criteria
Representations for the types of each criterion: either Cost or Profit.
dmatrix_ext
Extensions for the DMatrix type from the nalgebra crate.
errors
A set of errors that can occur in the mcdm crate.
normalization
Normalization methods for normalizing a decision matrix.
ranking
Techniques for ranking alternatives.
validation
Validation methods for bounded arrays and vectors.
weighting
Methods for weighting a decision matrix.