MyNixOS website logo
Description

Ranking of Alternatives with the RAFSI Method.

Ranking of Alternatives through Functional mapping of criterion sub-intervals into a Single Interval Method is designed to perform multi-criteria decision-making (MCDM), developed by Mališa Žižovic in 2020 (<doi:10.3390/math8061015>). It calculates the final sorted rankings based on a decision matrix where rows represent alternatives and columns represent criteria. The method uses: - A numeric vector of weights for each criterion (the sum of weights must be 1). - A numeric vector of ideal values for each criterion. - A numeric vector of anti-ideal values for each criterion. - Numeric values representing the extent to which the ideal value is preferred over the anti-ideal value, and the extent to which the anti-ideal value is considered worse. The function standardizes the decision matrix, normalizes the data, applies weights, and returns the final sorted rankings.

RAFSI: Ranking of Alternatives Through Functional Mapping of Criterion Sub-Intervals Into a Single Interval

This package provides an R implementation of the RAFSI method, which addresses the rank reversal problem in Multi-Attribute Decision-Making (MADM). Rank reversal occurs when unexpected changes in the ranking of alternatives happen due to the addition or deletion of a non-optimal alternative. This issue indicates significant mathematical inconsistencies in many MADM methods.

The RAFSI method is designed to produce stable rankings by mapping criterion sub-intervals into a single interval, ensuring that the final rankings remain consistent. The method returns a sorted ranking of alternatives based on a matrix of criteria values, where rows represent alternatives, and columns represent criteria. Key Features:

Criteria Matrix: A matrix where each row is an alternative, and each column represents a criterion.
Criterion Weights: A numeric vector representing the weights for each criterion. The sum of these weights must equal 1.
Ideal and Anti-Ideal Values: Numeric vectors representing the ideal and anti-ideal values for each criterion.
Preference Relations: Numeric values n_i and n_k, which define the extent to which the ideal value is preferred over the anti-ideal value and the extent to which the anti-ideal value is considered the worst.

The function processes this data to generate a standardized decision matrix, normalizes it, applies the given weights, and returns the final sorted rankings.

More information about the method can be found at https://doi.org/10.3390/math8061015. More information about the implementation at https://github.com/mateusvanzetta/rafsi.

Installation:

Option 1: From CRAN

install.packages("rafsi") library(rafsi)

Option 2: From GitHub

Install devtools if you haven't already

install.packages("devtools")

Install the latest version of rrafsir from GitHub

devtools::install_github("mateusvanzetta/rafsi")

Example Calculation Using Data from DOI Reference

Here’s how you can use the RAFSI method with sample data:

library(rafsi)

Example dataset

dataset <- matrix(c( 180, 165, 160, 170, 185, 167, 10.5, 9.2, 8.8, 9.5, 10, 8.9, 15.5, 16.5, 14, 16, 14.5, 15.1, 160, 131, 125, 135, 143, 140, 3.7, 5, 4.5, 3.4, 4.3, 4.1 ), nrow = 6, ncol = 5) rownames(dataset) <- c("A1", "A2", "A3", "A4", "A5", "A6")

Define weights and criterion types

weights <- c(0.35, 0.25, 0.15, 0.15, 0.10) criterion_type <- c('max', 'max', 'min', 'min', 'max') ideal <- c(200, 12, 10, 100, 8) anti_ideal <- c(120, 6, 20, 200, 2) n_i <- 1 n_k <- 6

Apply the RAFSI method

result <- rafsi_method(dataset, weights, criterion_type, ideal, anti_ideal, n_i, n_k)

Print results

print(result$Standardized_matrix) print(result$Normalized_matrix) print(result$Ranking)

Metadata

Version

0.0.2

License

Unknown

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows