apply.TODIM: Apply TODIM (TOmada de Decisao Interativa e Multicriterio)

View source: R/TODIM.R

apply.TODIMR Documentation

Apply TODIM (TOmada de Decisao Interativa e Multicriterio)

Description

Implements the core TODIM logic in R

Usage

apply.TODIM(mat, weights, beneficial.vector, teta = 1)

Arguments

mat

A numeric matrix where each row is an alternative and each column is a criterion.

weights

A numeric vector of weights for each criterion (same length as number of columns of mat).

beneficial.vector

A vector of column indices corresponding to beneficial criteria (i.e., the larger the value, the better). Columns not listed here will be treated as non-beneficial.

teta

A numeric scalar in TODIM). Default is 1.

Details

In the TODIM formula, theta acts as an “attenuation factor” or penalty for negative dominance differences. This parameter allows you to adjust how severely negative differences weigh in the final scoring. A common default is 1, but you could experiment with other values if you want to amplify or reduce the penalty effect.

If you set teta = 1, it uses the standard TODIM approach. If you do not want to vary this parameter, you can leave it at its default value of 1.

Value

A numeric vector of rescaled scores, one per alternative (row).

Examples

# Small synthetic example
mat <- matrix(c(75.5, 95, 770, 187, 179, 239, 237,
420, 91, 1365, 1120, 875, 1190, 200,
74.2, 70, 189, 210, 112, 217, 112,
2.8, 2.68, 7.9, 7.9, 4.43, 8.51, 8.53,
21.4, 22.1, 16.9, 14.4, 9.4, 11.5, 19.9,
0.37, 0.33, 0.04, 0.03, 0.016, 0.31, 0.29,
0.16, 0.16, 0.08, 0.08, 0.09, 0.07, 0.06), nrow=7)

colnames(mat)<-c("Toughness Index",	"Yield Strength",	"Young's Modulus",
"Density",	"Thermal Expansion",	"Thermal Conductivity","Specific Heat")
rownames(mat)<-c("AI 2024-T6", "AI 5052-O","SS 301 FH",
"SS 310-3AH","Ti-6AI-4V","Inconel 718","70Cu-30Zn")
weights <- c(0.28, 0.14, 0.05, 0.24, 0.19, 0.05, 0.05)
beneficial.vector<-c(1,2,3)

apply.TODIM(mat, weights, beneficial.vector, teta=1)


RMCDA documentation built on June 8, 2025, 11:14 a.m.