GLNF {PrometheeTools} | R Documentation |
Global and Local Searches for Net Flows to Sort
Description
This function applies the GLNF Sorting (Global Local Net Flow Sorting) algorithm to classify the alternatives into ordered groups according to the decision-maker's preferences in multiple criteria context. GLNF sorting is based on PROMETHEE net flows and a set of limiting profiles. This algorithm starts from a global classification (global search) that is enhanced by two local searches, intra-categorical and inter-categorical.
Usage
GLNF(matrix_evaluation, data_criteria)
Arguments
matrix_evaluation |
The matrix includes the values for all alternatives. The alternatives and limiting profiles are row and columns correspond to the evaluation criteria. |
data_criteria |
Matrix with the parameter information (rows) for each criterion (columns). The rows of parameters are in the following order: Function Type, Indifference Threshold, Preference Threshold, Objective and Weight. |
Details
The Limiting Profiles should be presented as rows in the matrix_evaluation. The name must start with the letter "r" followed by the profile number (e.g., "r1", "r2").
For k categories, there should be k + 1 limiting profiles. To create k groups the set of limit profiles are defined, where r1 is preferred to r2,...,preferred to r(k+1).
The types of preference function are as follows: "linear", "v-shape", "usual", "u-shape", "level" and "gaussian".
The preference and indifference thresholds depend on the type of function selected. The preference threshold requires definition (is non-zero) for all functions except for "usual" and "u-shaped". The indifference threshold is non-zero for "linear", "level" and "u-shaped" functions.
In the objective write "max" to maximize or "min" to minimize.
The sum of the weights of all criteria must be equal to 1.
Value
-Global
Matrix with the results of the global search where positive,
negative and net flow, and its preclassification are defined for each
alternative.
-Local1
Matrices with the results of the first local search. PROMETHEE is
applied to each group obtained in the global search. The alternatives are
divided according to their positive or negative sign from the net flows
obtained from PROMETHEE.
-Local2
Matrices with the results of the second local search, where the
alternatives are divided according to their sign from net flows are obtained
after applying PROMETHEE between each pair of neighbour categories.
-Class
Final classification of the alternatives results.
References
Barrera, F., Segura, M., & Maroto, C. (2023) Online. Multicriteria sorting method based on global and local search for supplier segmentation. International Transactions in Operational Research. DOI:10.1111/itor.13288
See Also
Examples
matrix_evaluation <- data.frame (
Alternative = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
"r1", "r2", "r3", "r4", "r5"),
Monetary = c(21.52, 68.09, 184.94, 237.62, 14.29, 12.78, 91.53, 11.39, 264.79, 12.74,
274.41, 3.75, 47.92, 34.5, 45.89, 39.92, 31.18, 273.23, 16.39, 3.91,
20.09, 6.52, 26.62, 28.47, 7.57, 69.2, 420.95, 12.01, 85.88, 8.78,
6816.80, 120, 40, 20, 0),
Recency = c(0, 0, 0, 0, 3, 5, 0, 6, 0, 3,
1, 0, 1, 0, 0, 0, 0, 0, 2, 1,
0, 0, 0, 0, 5, 1, 0, 0, 1, 4,
0, 1, 7, 8, 12),
Frequency = c(7, 5, 12, 12, 1, 3, 9, 2, 12, 4,
11, 3, 10, 10, 11, 11, 12, 12, 7, 1,
5, 2, 9, 11, 4, 10, 12, 3, 10, 2,
12, 10, 8, 4, 1),
Financial_score = c(66, 58, 83, 68, 68, 69, 77, 55, 77, 53,
78, 35, 84, 75, 71, 64, 56, 55, 52, 30,
66, 50, 65, 53, 54, 82, 68, 53, 62, 43,
100, 80, 75, 65, 0),
Length = c(4, 3, 3, 2, 2, 2, 2, 3, 2, 4,
3, 3, 1, 1, 2, 5, 4, 2, 2, 5,
4, 5, 1, 4, 2, 1, 5, 1, 1, 2,
5, 4, 3, 2, 1))
data_criteria <- data.frame(
Parameter = c("Function Type", "Indifference Threshold",
"Preference Threshold","Objetive", "Weight"),
Frequency = c("linear", 0, 3, "max", 0.2),
Monetary = c("linear", 30.00, 120, "max", 0.4),
Recency = c("usual", 0.00, 0.00, "min", 0.1),
Financial_score = c("linear", 0.00, 10, "max", 0.2),
Length = c("usual", 0.00, 0.00, "max", 0.1))
RS <- GLNF(matrix_evaluation, data_criteria)
RS$Class
RS$Global
RS$Local1
RS$Local2