grey and fuzzy TOPSIS

28 visualizaciones (últimos 30 días)
Ali Naeemah
Ali Naeemah el 18 de Oct. de 2021
Comentada: Walter Roberson el 27 de Mzo. de 2025
Hello ladies and gentlemen,
Please Kindly, can someone help me find a MATLAB code to solve the grey-TOPSIS method and the fuzzy-TOPSIS method?
Thank you so much

Respuestas (2)

Balavignesh
Balavignesh el 24 de Mayo de 2024
Editada: Balavignesh el 24 de Mayo de 2024
Hi Ali,
The Technique for Order Preference by Similarity to Ideal Solution (TOPSIS) is a method used in multi-criteria decision making (MCDM). Grey-TOPSIS integrates the Grey System Theory with TOPSIS to deal with incomplete or uncertain information, where as Fuzzy-TOPSIS uses fuzzy numbers to represent decision matrix and weights, which allows to handle vagueness and subjectivity in the evaluation process.
Here is a rough implementation of the above mentioned concepts :
% Example Grey-TOPSIS Implementation in MATLAB
% This is a simplified example. Adapt it based on your specific criteria and alternatives.
% Define the decision matrix (alternatives x criteria)
% Assuming 3 alternatives and 4 criteria
D = [0.6 0.5 0.7 0.8; 0.9 0.7 0.6 0.5; 0.7 0.8 0.5 0.6];
% Define the weight for each criterion
W = [0.25 0.25 0.25 0.25]; % Equal weights for simplicity
% Normalize the decision matrix
row_sums = sqrt(sum(D.^2, 1));
N = D ./ row_sums;
% Calculate the weighted normalized decision matrix
V = N .* W;
% Determine the positive ideal (A+) and negative ideal (A-) solutions
A_plus = max(V, [], 1);
A_minus = min(V, [], 1);
% Calculate the distance to the positive ideal solution
D_plus = sqrt(sum((V - A_plus).^2, 2));
% Calculate the distance to the negative ideal solution
D_minus = sqrt(sum((V - A_minus).^2, 2));
% Calculate the similarity to the ideal solution
S = D_minus ./ (D_plus + D_minus);
% Rank the alternatives based on the similarity score
[~, rankIndex] = sort(S, 'descend');
% Display the ranking of alternatives
disp('Ranking of Alternatives:');
Ranking of Alternatives:
disp(rankIndex);
2 1 3
% Example Fuzzy-TOPSIS Implementation in MATLAB
% This is a simplified example. You'll need to adapt it to your specific fuzzy numbers and context.
% Define the fuzzy decision matrix (alternatives x criteria)
% For simplicity, using direct numbers, but in practice, these should be fuzzy numbers
D = [0.6 0.5 0.7 0.8; 0.9 0.7 0.6 0.5; 0.7 0.8 0.5 0.6];
% Define the fuzzy weights for each criterion
W = [0.25 0.25 0.25 0.25]; % Equal weights for simplicity, should be fuzzy numbers
% Normalize the fuzzy decision matrix
% Note: The normalization process might be different based on the fuzzy number operations
row_sums = sqrt(sum(D.^2, 1));
N = D ./ row_sums;
% Calculate the fuzzy weighted normalized decision matrix
V = N .* W;
% Determine the fuzzy positive ideal (A+) and fuzzy negative ideal (A-) solutions
A_plus = max(V, [], 1);
A_minus = min(V, [], 1);
% Calculate the distance to the fuzzy positive ideal solution
D_plus = sqrt(sum((V - A_plus).^2, 2));
% Calculate the distance to the fuzzy negative ideal solution
D_minus = sqrt(sum((V - A_minus).^2, 2));
% Calculate the similarity to the ideal solution
S = D_minus ./ (D_plus + D_minus);
% Rank the alternatives based on the similarity score
[~, rankIndex] = sort(S, 'descend');
% Display the ranking of alternatives
disp('Ranking of Alternatives:');
Ranking of Alternatives:
disp(rankIndex);
2 1 3
Kindly note that these examples are simplified and intended to provide a basic structure. For both Grey-TOPSIS and Fuzzy-TOPSIS, the handling of grey numbers and fuzzy numbers, respectively, needs more detailed implementation based on your specific criteria, alternatives, and the nature of uncertainty or fuzziness in your decision-making context.
Kindly have a look at the following documentation links to have more information on:
Hope that helps!
Balavignesh
  1 comentario
Paul Terkumbur
Paul Terkumbur el 25 de Mzo. de 2025
Hello Balavignesh, I am interested in this topic. I have followed your code as posted, however, the ranked answers did not display.
Also, I have an excel file with decision matrix where values are entered in cell; it has about 16 columns and 300 rows. how can i execut the FUZZY TOPSIS on it?
Thank you.

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 25 de Mzo. de 2025
Fuzzy TOPSIS MATLAB code is available from https://github.com/simoG265/FuzzyTopsis
  3 comentarios
Paul Terkumbur
Paul Terkumbur el 27 de Mzo. de 2025
Walter Roberson
Walter Roberson el 27 de Mzo. de 2025
I do not see anywhere in that code where it reads from an excel file. It is not obvious to me where there is room to read an excel file and use it in the process.

Iniciar sesión para comentar.

Categorías

Más información sobre Fuzzy Logic Toolbox en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by