MCDM Model for Supplier Selection
MCDM Model for Supplier Selection
2
ACKNOWLEDGEMENT
Dr. Dao Vu Truong Son assisted and supported Group 35 as they completed the
project. He spent much time watching us, offering advice, and helping us when we
encountered problems. Group 35 wants to express our beloved speaker's genuine and heartfelt
appreciation for his priceless advice. In addition, we appreciate Dr. Truong Son for allowing
us to collaborate, learn, and do research. Since then, we have learned a lot that will be helpful
to us in the future with our applications.
We are grateful for the excitement of our friends. Group 35 could only finish this
project with their cooperation and accountability. They took the time to rehearse together
extensively and offered insightful remarks. We performed a fantastic project and a powerful
presentation as a result. Ultimately, even for a short time, it is a tremendous honour for us to
work together. We learn from our errors and use those lessons to improve how well we finish
this assignment.
3
TABLE OF CONTENTS
ABSTRACT .............................................................................................................................. 2
ACKNOWLEDGEMENT ....................................................................................................... 3
REFERENCES ....................................................................................................................... 42
APPENDIX ............................................................................................................................. 45
5
A1. SURVEY FORM ........................................................................................................... 45
6
LIST OF TABLES
Table 1. Timeline project.......................................................................................................... 11
Table 3. Weighting scale for PAHP, PDEMATEL (Ilbahar et al. 2018) ................................. 22
7
CHAPTER 1: INTRODUCTION
1.1. MOTIVATION
Vietnam is witnessing rapid growth in its electronics industry, driven by rising
domestic demand, expanding export markets, and supportive government initiatives. This
thriving sector operates within a complex network of manufacturers and suppliers. A critical
challenge emerges amid this growth: selecting the most suitable suppliers for the diverse
electronic components required.
8
1.2. PROBLEM STATEMENT
Hanoi's growing electronics industry faces the critical challenge of selecting reliable
suppliers for electronic components. Traditional methods focused primarily on cost fail to
address the complexities of supplier evaluation, such as quality assurance, reliability, after-
sales service, and ethical sourcing.
9
1.3.2. REQUIREMENTS
Several key components include the requirements for developing a Multi-Criteria
Decision Making (MCDM) model to evaluate and select electronic constituent suppliers in
Hanoi.
1.4.2. LIMITATIONS
While the hybrid MCDM approach offers a structured framework for supplier
evaluation, these limitations highlight the need for ongoing data collection, model refinement,
and adaptability to industry changes.
10
Secondly, model uncertainty is inherent in the application of MCDM methods. There
is no single best MCDM model, meaning the solutions provided may need to be more robust
and conclusive. Different models may yield varying results, which can complicate the
decision-making process.
Lastly, future recommendations are constrained by the static nature of the data used.
The data and criteria applied in this study are primarily unchangeable and are only valid for a
limited period. This temporal limitation makes it challenging to make reliable
recommendations about future industry trends or long-term supplier suitability.
11
CHAPTER 2: DESIGN CONCEPTS
2.1. OVERVIEW
In the ever-evolving world of supply chain management, selecting the most suitable
supplier stands as a cornerstone decision (Kumari, M., Kanti De, P., Narang, P., & Shah, N.
H. 2023). A strategic supplier selection process can significantly reduce a company's bottom
line by minimizing material acquisition costs (Ecer 2022). However, the impact goes beyond
just cost savings. The right supplier can also enhance product quality and flexibility, leading
to a faster and more efficient purchasing process. Recognizing the growing importance of
environmental responsibility, supply chain management embraces a more sustainable
approach (Cheraghalipour, A., Paydar, M. M., & Hajiaghaei-Keshtelia, M. 2017).
The topic of "Multi-Criteria Decision Making Model (MCDM) to Evaluate and Select
Electronic Constituent Suppliers - A Case Study: CMC Corporation" addresses the critical
need for a sophisticated supplier selection process within Hanoi's rapidly evolving electronics
industry. We conducted our research across three regions: Hanoi, Thai Nguyen, and Bac
Ninh-Bac Giang. These areas are collectively known as the "Northern Economic
Development Triangle," characterized by substantial investments in high-quality industrial
zones and significant semiconductor component suppliers such as Intel, Samsung, and
Amkor...
This study proposes the use of an integrated MCDM approach, combining various
decision-making methods such as AHP, TOPSIS, DEMATEL, VIKOR, SWARA, and
PROMETHEE. These methods collectively facilitate a more comprehensive and nuanced
evaluation of potential suppliers, addressing factors such as quality assurance, delivery
reliability, after-sales service, and ethical sourcing. By adopting this advanced MCDM
framework, CMC Corporation Hanoi can make more informed and strategic decisions,
ultimately enhancing their competitiveness and sustainability in the global electronics market.
Disadvantages:
- Limited Quality Assessment: The system must thoroughly evaluate suppliers'
quality assurance practices, potentially leading to substandard components.
- Inadequate Ethical Considerations: There needs to be more emphasis on ethical
sourcing and social responsibility, which are increasingly important in the global
market.
- Minimal After-Sales Service Evaluation: Limited focus on after-sales service
capabilities can lead to unresolved post-purchase issues, affecting customer
satisfaction and brand loyalty.
- Narrow Criteria: The current system focuses heavily on price and delivery,
missing out on other critical factors such as reliability, quality, and service, which
are essential for long-term success.
13
2.3. LITERATURE REVIEW
2.3.1. MULTI-CRITERIA DECISION MAKING METHOD
Choosing the right supplier is crucial in supply chain management (SCM) because it
impacts a company's ability to avoid disruptions and shortages. It is a complex task due to the
many factors and options involved.
These ideal suppliers can provide good quality products at fair prices, adapt to
changing demand quickly, and maintain safety and environmental responsibility. Defining the
criteria for such suppliers, especially in uncertain times, is critical).
14
2.3.3. PYTHAGOREAN FUZZY SETS
Intuitionistic fuzzy sets (IFSs), introduced by Atanassov (1986), have gained traction
in various research fields as a tool to manage uncertainty. Membership functions, non-
membership functions, and hesitancy degrees characterize these sets. However, IFSs exhibit
limitations in specific scenarios where the sum of membership and non-membership grades
surpass unity. Consequently, these sets need help to capture such situations effectively
(Yager, 2014).
To address this shortcoming, (Yager, 2014) proposed Pythagorean fuzzy sets (PFSs).
PFSs leverage the Pythagorean theorem to define set membership. The membership degree of
an element in a PFS is determined by its distance from the set's centre, calculated using the
Pythagorean theorem (Büyük¨ozkan, G., & G¨oçer, F., 2021). PFSs generalize IFSs, offering
a solution in situations where IFSs fall short in uncertainty representation. PFSs possess
several advantages over traditional fuzzy sets. Notably, they provide a geometric
interpretation and facilitate a more natural representation of uncertain information (Yu, C.,
Shao, Y., Wang, K., & Zhang, L., 2019). The applicability of PFSs extends to various
domains, including pattern recognition, image processing, decision-making, and control
systems (Han, Q., Li, W., Xu, Q., Song, Y., Fan, C., & Zhao, M., 2022). Their ability to
handle uncertainty beyond the limitations of IFSs renders PFSs a more powerful and flexible
tool (Ak, M. F., & Gul, M., 2019; Ilbahar, E., Karas¸an, A., Cebi, S., & Kahraman, C., 2018).
It is crucial to note that, unlike IFSs, PFSs permit the sum of membership and non-
membership degrees to exceed 1, with the constraint that the sum of their squares remains less
than or equal to 1 (Ilbahar, E., Karas¸an, A., Cebi, S., & Kahraman, C., 2018; Zhang, X., &
Xu, Z., 2014; Zeng S, 2016).
The Fuzzy TOPSIS method extends the traditional TOPSIS by incorporating fuzzy
logic, which addresses the uncertainty and vagueness inherent in decision-making processes.
15
Introduced by Chen in 2000, Fuzzy TOPSIS applies fuzzy set theory to represent uncertain
data more effectively. This method follows steps similar to TOPSIS but incorporates fuzzy
numbers, usually triangular or trapezoidal fuzzy numbers, to handle imprecise information.
16
influence strength between them. This method helps decision-makers identify critical factors
and understand the feedback and causality in complex systems (Tzeng, 2007).
Fuzzy PROMETHEE integrates fuzzy set theory into the standard PROMETHEE
approach to better manage the vagueness inherent in decision-making processes (Ruan, 2007).
In Fuzzy PROMETHEE, decision-makers express their preferences using fuzzy linguistic
terms, such as "slightly preferred" or "very preferred," instead of exact numerical values.
These fuzzy linguistic terms are converted into fuzzy numbers, allowing for a more nuanced
18
representation of uncertainty in the preference functions. Fuzzy arithmetic operations are then
applied to the fuzzy preference values to compute fuzzy outranking flows. The resulting fuzzy
net flows provide a more robust and realistic ranking of alternatives by capturing the
ambiguity and imprecision of real-world decision-making scenarios. By incorporating fuzzy
set theory, Fuzzy PROMETHEE enhances the traditional PROMETHEE methodology's
ability to deal with complex and uncertain environments, offering a more comprehensive
decision-support tool for multi-criteria evaluations (Mareschal & Ruan, 2007).
20
criteria weights provided by decision-makers. To address these limitations, the Pythagorean
Fuzzy PROMETHEE methodology incorporates Pythagorean fuzzy sets (PFS), which extend
traditional fuzzy set theory by allowing the square sum of the membership and non-
membership degrees to be less than or equal to one. This extension offers a more flexible and
accurate representation of uncertainty and imprecision in decision-making (Yager, 2014).
21
Table 3. Weighting scale for PAHP, PDEMATEL (Ilbahar et al. 2018)
C21 Consistency
23
C24 Factory performance
C33 Experiences
C41 Responsiveness
C4 Service
C42 Warranty terms
24
CHAPTER 3: SYSTEM DESIGN
3.1. APPROACHES COMPARISON AND SELECTION
Based on the previous part, the MCDM can be solved by various Pythagorean Fuzzy
method. In this study, one approach including two types of method, one for calculating the
criteria weight while the other is used to ranking the alternatives.
Six methods that are compared a selected. The characteristics of them are listed in the
table below:
25
understand more about the numbers have to be deffuzyficated.
interdependent among attributes to
find their transformation trends.
- Best used in comparative
strength.
- Able to deal with problems that
- The appearance of S and R make
have various unit of measurement.
VIKOR the acceptable range of solution
- Ranking the alternatives by the
decrease.
ability to satisfy criteria of them.
- Best accurate in analyze the
expert opinion to find the rank of
- Only available with the first type
criteria.
when only provide the initial decision
- A more accurate result when it
matrix.
SWARA provides the link between experts.
- Easily to be wrong with the
- Make the policy for decision
unprofitable criteria.
maker to choose the suitable
- Not show much information.
criteria.
With the information listed above, three iterated methods are chosen. That are:
- Pythagorean Fuzzy AHP+ Pythagorean Fuzzy TOPSIS: The hybrid method that
makes the AHP method simpler when only weight criteria that are clustered while the
complex ranking alternative will be deal with the simple techniques of TOPSIS.
26
- Pythagorean Fuzzy SWARA + Pythagorean Fuzzy PROMETHEE: The last
method is combined based on two method that only used for specific role. If SWARA only
can weight criteria, PROMETHEE still ranking alternative without considered the accurate of
weight of criteria.
Step 1:
From the linguistic collected in the first stage of step 1. Create the compromised
(𝑘) 𝑝(𝑖)𝑘
matrix Ak=(𝑎𝑖𝑗 )𝑚∗𝑚 (1) with 𝑎𝑖𝑗 𝑘 = (2) where m represent the number of criteria,
p(j)𝑘
k is the set of expert and p(i) is the point that expert k give for the criteria i. Beacause for
each p we have 9 case which aij will have total of 81 numbers, we first classify them into 9
term in table (3) before transferring it into the fuzzy form. Finally, we will calculate the
aggregate compromised matrix A=∑𝑘 𝐴𝑘 ⨂ 𝑤 𝑘 .
Step 2:
Calculate the Difference matrix 𝐷 = (𝑑𝑖𝑘 )𝑚∗𝑚 (3) between the lower and upper
value of membership and non-membership function.
2 2
𝑑𝑖𝑘𝐿 = 𝜇𝑖𝑘𝐿 − 𝑣𝑖𝑘𝑈 (4)
2 2
𝑑𝑖𝑘𝑈 = 𝜇𝑖𝑘𝑈 − 𝑣𝑖𝑘𝐿 (5)
Step 3:
27
Step 4:
2 2 2 2
𝜏𝑖𝑘 = 1 − (𝜇𝑖𝑘𝑈 − 𝜇𝑖𝑘𝐿 ) − (𝑣𝑖𝑘𝑈 − 𝑣𝑖𝑘𝐿 ) (9)
Step 5:
The weight matrix before normalization is found by multiplying the τ with the average
of two matrix.
𝑠𝑖𝑘𝐿 + 𝑠𝑖𝑘𝑈
𝑡𝑖𝑘 = ∗ 𝜏𝑖𝑘 (10)
2
Step 6:
∑𝑚𝑘=1 𝑡𝑖𝑘
𝑤𝑖 = 𝑚 𝑚 (11)
∑𝑖=1 ∑𝑘=1 𝑡𝑖𝑘
Step 7:
Lastly, the global weight of each sub criteria is calculated by multiply the weight of
sub criteria on the previous step by the main weight.
Step 1:
From the linguistic data, transfer it into the fuzzy number form using table (2)
Step 2:
Calculate the weight level of expert among other experts by the formular below
𝜇𝑘
𝜇𝑘 + 𝜋𝑘 ∗ (𝜇 )
𝑘 +𝜗𝑘
𝜎𝑘 = 𝜇𝑘
(12)
∑𝑛𝑘=1(𝜇𝑘 + 𝜋𝑘 ∗ ( ))
𝜇 𝑘 +𝜗𝑘
28
Step 3:
Calculate the Combined Pythagorean Fuzzy Decision Matrix using the Pythagorean
Fuzzy Weighted Average operator (PFWA) by take product between the Pythagorean fuzzy
decision matrix and the weight level of expert:
𝑛 𝜎𝑘
(𝑘) 2
𝑥𝑖𝑗 = √1 − ∏ (1 − (𝜇𝑖𝑗 ) ) ,
𝑘=1
(
(13)
𝑛 𝑛 𝜎𝑘 𝑛
(𝑘) 𝜎𝑘 (𝑘) 2 (𝑘) 𝜎𝑘
∏(𝜗𝑖𝑗 ) , √1 − ∏ (1 − (𝜇𝑖𝑗 ) ) − ∏((𝜗𝑖𝑗 ) )2
𝑘=1 𝑘=1 𝑘=1
)
Step 4:
′
𝑥𝑖𝑗 = 𝑥𝑖𝑗 ∗ 𝑤𝑗 (14)
Step 5:
Identifying the Positive Ideal Solution and the Negative Ideal Solution: The
calculation process of the Pythagorean fuzzy positive ideal (PFPIS) and negative ideal
solution (PFNIS) is given in the equations below.
𝑥 + = {< (𝐶1 , 𝑃(𝜇1+ , 𝜗1+ )) >, < (𝐶2 , 𝑃(𝜇2+ , 𝜗2+ )) >, … , < (𝐶𝑚 , 𝑃(𝜇𝑚
+ +
, 𝜗𝑚 )) >} (15)
𝑥 − = {< (𝐶1 , 𝑃(𝜇1− , 𝜗1− )) >, < (𝐶2 , 𝑃(𝜇2− , 𝜗2− )) >, … , < (𝐶𝑚 , 𝑃(𝜇𝑚
− −
, 𝜗𝑚 )) >} (16)
Step 6:
For each alternative, determine the distance to the PFPIS and PFNIS using Euclidean
distance which D(xi,x+) is the distance from current alternative I to the PFPIS and D(xi,x-)
from PFNIS shown below:
29
𝑚
1 2 2 2
𝐷(𝑥𝑖 , 𝑥 + ) = √ ∗ ∑ 𝑤𝑗 (|(𝜇𝑖𝑗 ) − (𝜇 + )2 | + |(𝜗𝑖𝑗 ) − (𝜗 + )2 | + |(𝜋𝑖𝑗 ) − (𝜋 + )2 |) (18)
2
𝑗=1
𝑚
−)
1 2 2 2
𝐷(𝑥𝑖 , 𝑥 = √ ∗ ∑ 𝑤𝑗 (|(𝜇𝑖𝑗 ) − (𝜇 − )2 | + |(𝜗𝑖𝑗 ) − (𝜗 − )2 | + |(𝜋𝑖𝑗 ) − (𝜋 − )2 |) (19)
2
𝑗=1
Step 7:
After calculating the two distances, the Index of Relative Closeness of Alternative: the
Index determine how close is that alternative to the positive ideal solution and how far is it
from the negative ideal solution, is found in the given formular:
𝐷(𝑥𝑖 , 𝑥 − )
𝜚(𝑥𝑖 ) = ( ) (20)
𝐷(𝑥𝑖 , 𝑥 − ) + 𝐷(𝑥𝑖 , 𝑥 + )
Step 8:
Choosing the most suitable supplier. The alternative which the largest Index of
Relative Closeness of Alternative is the most suitable that experts choose for our case study.
Step 1:
Step 2:
From the linguistics collected in the first stage of step 1. Create the compromised
𝑝(𝑖)𝑘
matrix Ak=(𝑎𝑖𝑗 )𝑚∗𝑚 (𝑘) (21) with 𝑎𝑖𝑗 𝑘 = (22) where m represent the number of
p(j)𝑘
criteria, k is the set of expert and p(i) is the point that expert k give for the criteria i. Beacause
for each p we have 9 case which aij will have total of 81 numbers, we first classify them into
9 term in table (3) before transferring it into the fuzzy form. Finally, we will calculate the
aggregate compromised matrix A=∑𝑘 𝐴𝑘 ⨂𝑤 𝑘 (23)
30
Step 3:
Step 4:
𝑋 = 𝑠𝑍 (26)
1
𝑠= (27)
𝑚𝑎𝑥1≤𝑖≤𝑚 ∑𝑚
𝑗=1 𝑧𝑖𝑗
Step 5:
Step 6:
𝑟𝑖 = ∑ 𝑡𝑖𝑗 (29)
𝑗=1
𝑚
𝑐𝑗 = ∑ 𝑡𝑖𝑗 (30)
𝑖=1
Step 7:
√(𝑟𝑖 + 𝑐𝑖 )2 + (𝑟𝑖 − 𝑐𝑖 )2
𝑊𝑖 = (31)
∑𝑚 2
𝑖=1 √(𝑟𝑖 + 𝑐𝑖 ) + (𝑟𝑖 − 𝑐𝑖 )
2
31
[Link].2. FUZZY VIKOR
Step 1:
Because the limit of VIKOR is only deal with crisp value, so after aggregate the result,
the score function will be used to compute the crisp matrix 𝑓𝑖𝑗(𝑚∗𝐽) (32) with J is number of
alternatives.
Step 2:
Step 3:
Calculate the maximum group utility Sj and the minimum individual regret of the
opponent Rj:
Step 4:
Compute Qj
𝑣(𝑆𝑗 − 𝑆 − ) (1 − 𝑣)(𝑅𝑗 − 𝑅 − )
𝑄𝑗 = + + (36)
𝑆 − 𝑆− 𝑅+ − 𝑅−
Step 5:
The alternative with lowest Q is chosen. However, two conditions need to be checked:
1
C1: Where a” is the second lowest alternative and 𝐷𝑄 = 𝐽−1
32
- Two alternative a’ and a” if only C2 is satisfied.
- Set of alternative a’..am with Q(am) is the lowest value that satisfied:
Recheck C1:
Step 1:
The Criteria after being defuzzification is arrange based on their importance to make
the matrix C
Step 2:
𝐶𝑗−1 − 𝐶𝑗
𝑆𝑗 = ∨ 𝑗𝜖2: 𝑚 (39)
𝑟
Step 3:
𝐾1 = 1; 𝐾𝐽 = 𝑆𝑗 + 1 (40)
Step 4:
𝑊𝑗−1
𝑊𝑗 = ; 𝑊1 = 1 (41)
𝐾𝑗
Step 5:
Step 1:
𝑥𝑖𝑗 − min(𝑥𝑖𝑗 )
𝑅𝑖𝑗 = (42)
max(𝑥𝑖𝑗 ) − min (𝑥𝑖𝑗 )
where xij is the performance measure of ith alternative with respect to jth criterion.
max(𝑥𝑖𝑗 ) − 𝑥𝑖𝑗
𝑅𝑖𝑗 ′ = (43)
max(𝑥𝑖𝑗 ) − min (𝑥𝑖𝑗 )
Step 2:
Pairwise calculation of differences is done for all alternatives based on their criteria
values to obtain the evaluative differences for every alternative in comparison with other
alternatives.
Step 3:
While as per Brans [3] there exist six types of preference functions, it is usually
difficult for the decision maker to ascertain which preference function is suitable for each
factor. A simplified preference function is given as below:
Step 4:
Calculate the aggregated preference function considering the weights assigned to each
criteria. Aggregated preference function:
∑𝑚
𝑗=1 𝑤𝑗 ∗ 𝑃𝑗(𝑖,𝑖 ′ )
′)
𝜋(𝑖, 𝑖 = (46)
∑𝑚
𝑗=1 𝑤𝑗
34
Step 5:
𝑛
+ (𝑖)
1
𝜑 = ∑ 𝜋(𝑖 ′ , 𝑖) (47)
𝑛−1 ′
𝑖 =1
𝑛
1
𝜑 − (𝑖) = ∑ 𝜋(𝑖 ′ , 𝑖) (48)
𝑛−1 ′
𝑖 =1
Step 6:
Step 7:
Values of ϕ(i) are then used to rank all the alternatives. Higher value of ϕ(i) indicates
that the alternative is better than an alternative with lower ϕ(i) value. The best alternative is
thus the one which has the highest value of ϕ(i).
35
CHAPTER 4: PROTOTYPE DEVELOPMENT
AND IMPLEMENTATION
4.1. PROTOTYPE DEVELOPMENT
To gather data from potential suppliers, we will use a survey form (Appendix) that
captures information based on the identified parameters.
4.2. RESULTS
Base on the data collected, the result done by each method is listed in the tables below:
36
C42 0.111426 0.111426 0.108797
Alternative D+ D- q Rank
Alternative R S Q Rank
1 0.0491 0.3608 0 1
Alternative Φ Rank
1 0.3602 1
2 0.2413 2
3 -0.0398 3
Based on the tables, three methods present nearly the same result. In the weight of
criteria, we can see that only the two criteria C41 and C42 which are related to customer
37
service, have a proportion larger than 10 percent. The next important main criterion is the
trustfulness of the supplier. The other main criteria, although conclude more sub criteria, have
been pointed less important so their weight is not high, about 3 percent. The alternative 1 is
highly recommended by all method, followed by is the Thai Nguyen region and the worst one
which is far unsuitable than the others is the third alternative.
4.3. ANALYSIS
4.3.1. SENSITIVITY ANALYSIS
The current result is under the same proportion of weight of expert. In the real case,
the first five people in the list work directly on the procurement process, the rest two is only
the sale managers of garment industry so they do not really know clearly about the
semiconductor supplier. So, their choice will affect the final result. That is why some analysis
had to be done.
Besides that, the weight of the main criteria is another factor that needs to be
considered for change. The world is changed day to day so the important of these criteria is
only relative with current time. In the future, these numbers will be changed so the sensitivity
will help us to know what the comparative advantages of each company in our study is. With
the trend of sustainability, the last three main criteria are chosen to be tested.
The factors, changing points and the new results are listed below:
1 1 1(*) 2
Expert 6 Eliminate 2 2 2 1
Expert 3 3 3 3
weight 1 1 1(*) 2
Expert 2 Eliminate 2 2 2 1
3 3 3 3
38
1 1 2,1 2
3 3 3 3
1 1 1(*) 3
3 3 3 1
1 1 1(*) 1
0.3 2 3 3 2
3 2 2 3
Criteria 3
1 1 2(*) 2
0.4 2 2 3 1
3 3 1 3
1 1 1,2 1
0.3 2 2 - 2
3 3 3 3
Main Criteria 4
1 1 1,2 1
Criteria
0.4 2 2 - 2
3 3 3 3
1 1 1(*) 1
0.25 2 2 2 2
3 3 3 3
Criteria 5 1 1 1(*) 1
0.35 2 2 2 2
3 3 3 3
0.40 1 1 1,2 1
39
2 2 - 2
3 3 3 3
The table showed that in most cases there is a race between alternative 1 and 2,
especially by the strongly recognize by the procurement expert. On the main criteria side,
with the increase in proportion, the alternative 1 follows the sustainability strategy while the
trustfulness and the customer services sides are not as good as the second company. For the
third supplier, the only thing that is concluded is that they focus much on gaining the trust of
customers.
When selecting suppliers, it's crucial to consider environmental, social, and economic
impacts alongside traditional parameters like costs, quality, reliability, service, and
sustainability. Environmental impacts include resource utilization, emissions, and compliance
with standards like ISO 14001. Social impacts encompass labor practices, community
engagement, health and safety, and ethical conduct, ensuring suppliers adhere to ISO 26000
and OSHA standards. Economic impacts involve cost efficiency, financial stability,
innovation, and economic contribution. By incorporating these factors into the Multi-Criteria
Decision Making (MCDM) process, organizations can achieve a balanced and responsible
supplier selection, ensuring long-term sustainability and compliance with relevant standards
while optimizing costs and quality.
40
CHAPTER 5: CONCLUSION
5.1. SUMMARY
Based on the collected data, we applied it to the model to determine the most suitable
criteria for the case. Given the absence of random variables in our models, we ran only one
replication to obtain the results. Interestingly, the outcomes, influenced by expert opinions,
varied significantly across the different MCDM methods. AHP+TOPSIS recommended the
third alternative, DEMATEL+VIKOR did not provide a definitive result, and SWARA-
PROMETHEE suggested the first alternative. This divergence highlights the importance of
considering multiple methods in supplier selection processes and suggests further
investigation into the criteria and methodologies used to ensure robust decision-making.
5.2. RECOMMENDATION
To enhance the supplier selection process based on the findings, several
recommendations are proposed. Firstly, adopting a multi-methodology approach is crucial to
validate results across different MCDM techniques, ensuring robustness and reliability in
decision-making. Secondly, refining the criteria ranges and specifications is essential to
address observed fuzziness and inconsistencies in outcomes. Regularly incorporating expert
feedback will also help maintain the relevance and accuracy of criteria weighting. Improving
data collection practices to encompass a broader spectrum of supplier performance metrics
will provide a more comprehensive basis for analysis. Expanding sensitivity analyses to
include diverse variables and scenarios will further strengthen the model's resilience and
adaptability. Future research should focus on advanced fuzzy logic techniques to better
manage uncertainty in supplier selection criteria. Lastly, establishing a continuous
improvement framework will ensure the models remain effective and aligned with evolving
business needs.
41
REFERENCES
Ak, M. F., & Gul, M. 2019. "AHP–TOPSIS integration extended with Pythagorean fuzzy sets
for information security risk analysis." Complex & Intelligent Systems 5 (2).
[Link]
Atanassov, K.T. 1986. "Intuitionistic fuzzy sets." Fuzzy Sets Syst. 20 (1): 87–96.
Ayyildiz, E., & Taskin Gumus, A. 2021. "Pythagorean fuzzy AHP based risk assessment
methodology for hazardous material transportation: An application in Istanbul."
Environmental Science and Pollution Research 28 (27): 35798–35810.
[Link]
Boix-Cots, D., Pardo-Bosch, F., & Pujadas, P. 2023. "A hierarchical integration method under
social constraints to maximize satisfaction in multiple criteria group decision making
systems." Expert Systems with Applications 216.
[Link]
Büyük¨ozkan, G., & G¨oçer, F. 2021. "Evaluation of software development projects based on
integrated Pythagorean fuzzy methodology." Expert Systems with Applications 183.
[Link]
Cevik Onar, S., Oztaysi, B., & Kahraman, C. 2018. "Multicriteria evaluation of cloud service
providers using pythagorean fuzzy TOPSIS." Journal of Multiple-Valued Logic 30 (2-
3).
Cheraghalipour, A., Paydar, M. M., & Hajiaghaei-Keshtelia, M. 2017. "An integrated
approach for collection center selection in reverse logistics." International Journal of
Engineering, Transactions A: Basics 30 (7). [Link]
Ecer, F. 2022. "Multi-criteria decision making for green supplier selection using interval type-
2 fuzzy AHP: A case study of a home appliance manufacturer." Operational 22 (1).
[Link]
Gündo˘gdu, F. K., & Kahraman, C. 2019. "Spherical fuzzy sets and spherical fuzzy TOPSIS
method." Journal of Intelligent and Fuzzy Systems. [Link]
181401.
Han, Q., Li, W., Xu, Q., Song, Y., Fan, C., & Zhao, M. 2022. "Novel measures for linguistic
hesitant Pythagorean fuzzy sets and improved TOPSIS method with application to
contributions of system-of-systems." Expert Systems with Applications 199.
[Link]
Hwang, C. L., & Yoon, K. 1981. Multiple attribute decision making: Methods and
applications. Springer-Verlag.
42
Ilbahar, E., Karas¸an, A., Cebi, S., & Kahraman, C. 2018. "A novel approach to risk
assessment for occupational health and safety using Pythagorean fuzzy AHP & fuzzy
inference system." Safety Science 103: 124–136.
[Link]
Ishizaka, A., Balkenborg, D., & Kaplan, T. 2011. "Influenceofaggregation
andmeasurementscaleonranking a compromise alternative in AHP." Journal of the
Operational Research Society 62 (4): 700–710.
Jin, G. 2023. "Selection of virtual team members for smart port development projects through
the application of the direct and indirect uncertain TOPSIS method." Expert Systems
with Applications 217. [Link]
Kumar, S., & Barman, A. G. 2021. "Fuzzy TOPSIS and fuzzy VIKOR in selecting green
suppliers for sponge iron and steel manufacturing." Soft Computing 25 (8).
[Link]
Kumari, M., Kanti De, P., Narang, P., & Shah, N. H. 2023. "Integrated optimization of
inventory, replenishment, and vehicle routing for a sustainable supply chain utilizing a
novel hybrid algorithm with carbon emission regulation." Expert Systems.
[Link]
Pe´rez-Domı´nguez L, Rodrı´guez-Pico´n LA, Alvarado-Iniesta A, Luviano Cruz D, Xu Z.
2018. "MOORA under Pythagorean fuzzy set for multiple criteria decision making."
2018: 1-10.
Pınar, A., Erdebilli, B. D. R. B., & ¨Ozdemir, Y. S. 2021. "Q-rung orthopair fuzzy topsis
method for green supplier selection problem." Sustainability (Switzerland) 13 (2): 985.
[Link]
Smarandache, F. 1995. "Neutrosophic logic and set. mss."
TL, Saaty. 1990. How to make a decision: the analytic hierarchy process. Vol. 48. 1 vols. Eur
J Oper Res.
Wang, Q., Wang, H., Qi, Z. 2016. "An application of nonlinear fuzzy analytic hierarchy
process in safety evaluation of coal mine." Safety Science 86: 78–87.
Yager, R. R. 2014. "Pythagorean membership grades in multicriteria decision making." IEEE
Transactions on Fuzzy Systems 22 (4): 958–965.
[Link]
Yager, R.R., Abbasov, A.M.,. 2013. "Pythagorean membership grades, complex numbers, and
decision making." International Journal of Intelligent Systems 28 (5): 436–452.
Yager, R.R., Alajlan, N. 2017. "Approximate reasoning with generalized orthopair fuzzy
sets." Information Fusion 38: 65–73.
43
Yu, C., Shao, Y., Wang, K., & Zhang, L. 2019. "A group decision making sustainable
supplier selection approach using extended TOPSIS under interval-valued." Expert
Systems with Applications 121: 1-17. [Link]
Zeng S, Chen J, Li X. 2016. "A hybrid method for pythagorean fuzzy multiple-criteria
decision making." International Journal of Information Technology & Decision
Making 15 (02): 403–422.
Zhang, X., & Xu, Z. 2014. "Extension of TOPSIS to multiple criteria decision making with
pythagorean fuzzy sets." International Journal of Intelligent Systems 29 (12).
[Link]
44
APPENDIX
A1. SURVEY FORM
MAIN CRITERIA
How are ABILITY TO MEET PRODUCTION DEMANDS in the following areas evaluated?
How are WORK SAFETY & LABOR HEALTH in the following areas evaluated?
45
INDUSTRIAL ZONE YEN PHONG – VAN TRUNG
Difference
(BAC NINH – BAC GIANG)
Big Difference
Huge Difference
46
A2. MATLAB CODE
Main code
clear all
clc
c=18;% number of criterias
a=3;%number of alternatives
e=7; %number of expert
for i=1:e
for j=1:a
xi(:,:,j,i)=readmatrix('[Link]','Sheet','Result','Range',[3+c*(
i-1),2+j,3+c*(i-1)+17,2+j]);
for k=1:c
if xi(k,:,j,i)==1
x(k,:,j,i)=readmatrix('[Link]','Sheet','Fuzzyfication','Range',
[2,2,2,4]);
elseif xi(k,:,j,i)==2
x(k,:,j,i)=readmatrix('[Link]','Sheet','Fuzzyfication','Range',
[3,2,3,4]);
elseif xi(k,:,j,i)==3
x(k,:,j,i)=readmatrix('[Link]','Sheet','Fuzzyfication','Range',
[4,2,4,4]);
elseif xi(k,:,j,i)==4
x(k,:,j,i)=readmatrix('[Link]','Sheet','Fuzzyfication','Range',
[5,2,5,4]);
else
x(k,:,j,i)=readmatrix('[Link]','Sheet','Fuzzyfication','Range',
[6,2,6,4]);
end
end
end
end
47
P=readmatrix('[Link]','Sheet','Expert
weight','Range',[3,2,2+e,4]);
ro=calro(P,e);
AHP
for i=1:e
Xtest(:,1,:,i)=(1-x(:,1,:,i).^2).^ro(1,i);
Xtest(:,2,:,i)=x(:,2,:,i).^ro(1,i);
end
for i=1:a
X(:,1,i)=sqrt(1-prod(Xtest(:,1,i,:),4));
X(:,2,i)=prod(Xtest(:,2,i,:),4);
X(:,3,i)=sqrt(prod(Xtest(:,1,i,:),4)-
(prod(Xtest(:,2,i,:),4)).^2);
end
Xend(:,1,:)=X(:,1,:).^2-X(:,2,:).^2;
% Xend(:,1,:)=sqrt(1-(1-X(:,1,:).^2).^(w'));
% Xend(:,2,:)=X(:,2,:).^(w');
% Xend(:,3,:)=sqrt(X(:,1,:).^2+X(:,2,:).^2);
s(:,1,:)=Xend(:,1,:).*(w');
[x,y]=max(s,[],3);
[x1,y1]=min(s,[],3);
for i=1:c
Xpos(i,:)=Xend(i,:,y(i,1));
Xneg(i,:)=Xend(i,:,y1(i,1));
end
[Dpos,Dneg]=Discal(Xend,Xpos,Xneg,w);
for i=1:a
q(i)=Dneg(:,:,i)./(Dpos(:,:,i)+Dneg(:,:,i));
end
[~,position]=max(q);
fprintf('The Best Alternative is: %f',position);
48
AHP SCRIPT
nummain=5;
numsub1=4;
numsub2=4;
numsub3=3;
numsub4=2;
numsub5=5;
scale=readmatrix('[Link]','Sheet','Fuzzyfication','Range',[3
,2,12,5]);
for i=1:e
main(:,:,i)=readmatrix('[Link]','Sheet','Result','Range',[i+
1,2,i+1,nummain+2-1]);
sub1(:,:,i)=readmatrix('[Link]','Sheet','Result','Range',[i+
10,2,i+10,numsub1+2-1]);
sub2(:,:,i)=readmatrix('[Link]','Sheet','Result','Range',[i+
19,2,i+19,numsub2+2-1]);
sub3(:,:,i)=readmatrix('[Link]','Sheet','Result','Range',[i+
28,2,i+28,numsub3+2-1]);
sub4(:,:,i)=readmatrix('[Link]','Sheet','Result','Range',[i+
37,2,i+37,numsub4+2-1]);
sub5(:,:,i)=readmatrix('[Link]','Sheet','Result','Range',[i+
46,2,i+46,numsub5+2-1]);
fuzzymain(:,:,:,i)=paircal(main(:,:,i),scale,ro(i));
fuzzysub1(:,:,:,i)=paircal(sub1(:,:,i),scale,ro(i));
fuzzysub2(:,:,:,i)=paircal(sub2(:,:,i),scale,ro(i));
fuzzysub3(:,:,:,i)=paircal(sub3(:,:,i),scale,ro(i));
fuzzysub4(:,:,:,i)=paircal(sub4(:,:,i),scale,ro(i));
fuzzysub5(:,:,:,i)=paircal(sub5(:,:,i),scale,ro(i));
end
pairwisemain=fuzzymain(:,:,:,1);
pairwisesub1=fuzzysub1(:,:,:,1);
pairwisesub2=fuzzysub2(:,:,:,1);
pairwisesub3=fuzzysub3(:,:,:,1);
pairwisesub4=fuzzysub4(:,:,:,1);
49
pairwisesub5=fuzzysub5(:,:,:,1);
for z=2:e
for zz=1:2
pairwisemain(:,:,2*(zz-1)+1)=sqrt(pairwisemain(:,:,2*(zz-
1)+1).^2+fuzzymain(:,:,2*(zz-1)+1,z).^2-pairwisemain(:,:,2*(zz-
1)+1).^2.*fuzzymain(:,:,2*(zz-1)+1,z).^2);
pairwisemain(:,:,2*(zz-1)+2)=pairwisemain(:,:,2*(zz-
1)+2).*fuzzymain(:,:,2*(zz-1)+1,z);
pairwisesub1(:,:,2*(zz-1)+1)=sqrt(pairwisesub1(:,:,2*(zz-
1)+1).^2+fuzzysub1(:,:,2*(zz-1)+1,z).^2-pairwisesub1(:,:,2*(zz-
1)+1).^2.*fuzzysub1(:,:,2*(zz-1)+1,z).^2);
pairwisesub1(:,:,2*(zz-1)+2)=pairwisesub1(:,:,2*(zz-
1)+2).*fuzzysub1(:,:,2*(zz-1)+1,z);
pairwisesub2(:,:,2*(zz-1)+1)=sqrt(pairwisesub2(:,:,2*(zz-
1)+1).^2+fuzzysub2(:,:,2*(zz-1)+1,z).^2-pairwisesub2(:,:,2*(zz-
1)+1).^2.*fuzzysub2(:,:,2*(zz-1)+1,z).^2);
pairwisesub2(:,:,2*(zz-1)+2)=pairwisesub2(:,:,2*(zz-
1)+2).*fuzzysub2(:,:,2*(zz-1)+1,z);
pairwisesub3(:,:,2*(zz-1)+1)=sqrt(pairwisesub3(:,:,2*(zz-
1)+1).^2+fuzzysub3(:,:,2*(zz-1)+1,z).^2-pairwisesub3(:,:,2*(zz-
1)+1).^2.*fuzzysub3(:,:,2*(zz-1)+1,z).^2);
pairwisesub3(:,:,2*(zz-1)+2)=pairwisesub3(:,:,2*(zz-
1)+2).*fuzzysub3(:,:,2*(zz-1)+1,z);
pairwisesub4(:,:,2*(zz-1)+1)=sqrt(pairwisesub4(:,:,2*(zz-
1)+1).^2+fuzzysub4(:,:,2*(zz-1)+1,z).^2-pairwisesub4(:,:,2*(zz-
1)+1).^2.*fuzzysub4(:,:,2*(zz-1)+1,z).^2);
pairwisesub4(:,:,2*(zz-1)+2)=pairwisesub4(:,:,2*(zz-
1)+2).*fuzzysub4(:,:,2*(zz-1)+1,z);
pairwisesub5(:,:,2*(zz-1)+1)=sqrt(pairwisesub5(:,:,2*(zz-
1)+1).^2+fuzzysub5(:,:,2*(zz-1)+1,z).^2-pairwisesub5(:,:,2*(zz-
1)+1).^2.*fuzzysub5(:,:,2*(zz-1)+1,z).^2);
pairwisesub5(:,:,2*(zz-1)+2)=pairwisesub5(:,:,2*(zz-
1)+2).*fuzzysub5(:,:,2*(zz-1)+1,z);
end
50
end
mainw=weightcalAHP(pairwisemain,nummain);
mainw=readmatrix('[Link]','Sheet','Result','Range',[3,9,3,8+
nummain]);
sub1w=weightcalAHP(pairwisesub1,numsub1);
sub2w=weightcalAHP(pairwisesub2,numsub2);
sub3w=weightcalAHP(pairwisesub3,numsub3);
sub4w=weightcalAHP(pairwisesub4,numsub4);
sub5w=weightcalAHP(pairwisesub5,numsub5);
w=[];
w=[w sub1w.*mainw(1,1);];
w=[w sub2w.*mainw(1,2);];
w=[w sub3w.*mainw(1,3);];
w=[w sub4w.*mainw(1,4);];
w=[w sub5w.*mainw(1,5);];
51
FUNCTION TO CALCULATE THE PAIRWISE COMPARISION
function fuzzypair=paircal(X,scale,ro)
le=length(X);
for i=1:le
for j=1:le
crisppair(i,j)=X(1,i)/X(1,j);
if crisppair(i,j)<=0.25
for k=1:4
fuzzypair(i,j,k)=scale(1,k);
end
elseif crisppair(i,j)<=0.4
for k=1:4
fuzzypair(i,j,k)=scale(2,k);
end
elseif crisppair(i,j)<=0.5
for k=1:4
fuzzypair(i,j,k)=scale(3,k);
end
elseif crisppair(i,j)<=2/3
for k=1:4
fuzzypair(i,j,k)=scale(4,k);
end
elseif crisppair(i,j)<=4/3 && crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(5,k);
end
elseif crisppair(i,j)<=5/3&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(6,k);
end
elseif crisppair(i,j)<=2&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(7,k);
end
52
elseif crisppair(i,j)<=3&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(8,k);
end
elseif crisppair(i,j)<=5&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(9,k);
end
elseif crisppair(i,j)==1
for k=1:4
fuzzypair(i,j,k)=scale(10,k);
end
end
end
end
for j=1:2
fuzzypair(:,:,2*(j-1)+1)=sqrt(1-((1-fuzzypair(:,:,2*(j-
1)+1).^2).^ro));
fuzzypair(:,:,2*(j-1)+2)=fuzzypair(:,:,2*(j-1)+2).^ro;
end
[Link](i).Weight=readmatrix('[Link]','Sheet','Expert
weight','Range',[i+2,2,i+2,4]);
expertmatrix(i,:)= [Link](i).Weight;
end
weigthofexpert=calro(expertmatrix,e);
for i =1:e
for j=1:c
for k=1:a
[Link](i).Criteria(j).Alternative(k).Point=readmatrix('Rating.
xlsx','Sheet','Result','Range',[c*(i-1)+j+2, k+2,c*(i-1)+j+2,k+2]);
if [Link](i).Criteria(j).Alternative(k).Point==1
54
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix('Ra
[Link]','Sheet','Fuzzyfication','Range',[2,2,2,3]);
elseif
[Link](i).Criteria(j).Alternative(k).Point==2
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix('Ra
[Link]','Sheet','Fuzzyfication','Range',[3,2,3,3]);
elseif
[Link](i).Criteria(j).Alternative(k).Point==3
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix('Ra
[Link]','Sheet','Fuzzyfication','Range',[4,2,4,3]);
elseif
[Link](i).Criteria(j).Alternative(k).Point==4
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix('Ra
[Link]','Sheet','Fuzzyfication','Range',[5,2,5,3]);
else
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix('Ra
[Link]','Sheet','Fuzzyfication','Range',[6,2,6,3]);
end
end
end
[Link](i).[Link]=readmatrix('[Link]','Sheet','Re
sult','Range',[1+i,2,1+i,2+nummain-1]);
[Link](i).[Link]=paircal([[Link](i).[Link]
int],scale,weigthofexpert(i));
for j=1:nummain
[Link](i).Sub(j).Point=readmatrix('[Link]','Sheet','
Result','Range',[1+9*j+i,2,1+9*j+i,2+numsub(j)-1]);
[Link](i).Sub(j).Fuzzypoint=paircal([[Link](i).Sub(j
).Point],scale,weigthofexpert(i));
end
end
%DEMATEL
[Link](:,:,1)=([[Link](1).[Link](:,:
,1)]+[[Link](1).[Link](:,:,2)])/2;
55
[Link](:,:,2)=([[Link](1).[Link](:,:
,3)]+[[Link](1).[Link](:,:,4)])/2;
for i=1:nummain
[Link](i).Pairwise(:,:,1)=([[Link](1).Sub(i).Fuzzypoint
(:,:,1)]+[[Link](1).Sub(i).Fuzzypoint(:,:,2)])/2;
[Link](i).Pairwise(:,:,2)=([[Link](1).Sub(i).Fuzzypoint
(:,:,3)]+[[Link](1).Sub(i).Fuzzypoint(:,:,4)])/2;
end
for i=2:e
[Link](:,:,1)=sqrt([[Link](:,:,1)].^2+
([[Link](i).[Link](:,:,1)]+[[Link](i).Main.
Fuzzypoint(:,:,2)]).^2-
(([[Link](i).[Link](:,:,1)]+[[Link](i).Main
.Fuzzypoint(:,:,2)]).^2.*[[Link](:,:,1)].^2));
[Link](:,:,2)=[[Link](:,:,2)].*([DEMAT
[Link](i).[Link](:,:,3)]+[[Link](i).[Link]
int(:,:,4)])/2;
for j=1:nummain
[Link](j).Pairwise(:,:,1)=sqrt([[Link](j).Pairwise(:,:,1)]
.^2+([[Link](i).Sub(j).Fuzzypoint(:,:,1)]+[[Link](i)
.Sub(j).Fuzzypoint(:,:,2)]).^2-
(([[Link](i).Sub(j).Fuzzypoint(:,:,1)]+[[Link](i).Su
b(j).Fuzzypoint(:,:,2)]).^2.*[[Link](j).Pairwise(:,:,1)].^2));
[Link](j).Pairwise(:,:,2)=[[Link](j).Pairwise(:,:,2)].*([D
[Link](i).Sub(j).Fuzzypoint(:,:,3)]+[[Link](i).Sub(j)
.Fuzzypoint(:,:,4)])/2;
end
end
[Link]=[[Link](:,:,1)].^2-
[[Link](:,:,2)].^2;
[Link]=weightcalDEMATEL([Link],nummain);
[Link]=readmatrix('[Link]','Sheet','Result','Ra
nge',[3,9,3,8+nummain]);
56
for i=1:nummain
[Link](i).Crisp=[[Link](i).Pairwise(:,:,1)].^2-
[[Link](i).Pairwise(:,:,2)].^2;
[Link](i).Weigth=weightcalDEMATEL([Link](i).Crisp,numsub(i
));
end
weigth=[];
for i=1:nummain
weigth=[weigth [Link](i).Weigth.*[Link](i)];
end
%VIKOR
for i=1:a
for j=1:c
[Link](i).Criteria(j).Aggregate(:,1)=sqrt(1-(1-
[Link](1).Criteria(j).Alternative(i).Fuzzypoint(:,1)^2)^weigth
ofexpert(1));
[Link](i).Criteria(j).Aggregate(:,2)=[Link](1).Crit
eria(j).Alternative(i).Fuzzypoint(:,2).^weigthofexpert(1);
for k=2:e
[Link](i).Criteria(j).Aggregate(1)=sqrt([[Link]
e(i).Criteria(j).Aggregate(1)].^2+1-(1-
[Link](k).Criteria(j).Alternative(i).Fuzzypoint(:,1)^2)^weigth
ofexpert(k)-((1-(1-
[Link](k).Criteria(j).Alternative(i).Fuzzypoint(:,1)^2)^weigth
ofexpert(k)).*[[Link](i).Criteria(j).Aggregate(1)].^2));
[Link](i).Criteria(j).Aggregate(2)=[[Link](i).
Criteria(j).Aggregate(2)].*([[Link](1).Criteria(j).Alternative
(i).Fuzzypoint(2)]^weigthofexpert(k));
end
[Link](i).Criteria(j).Crisp=[Link](i).Criteria
(j).Aggregate(1).^2-
[Link](i).Criteria(j).Aggregate(2).^2;
end
Crispmatrix(i,:)= [[Link](i).[Link]];
57
end
[S,R,Q]=findvikor(Crispmatrix,weigth,a,v);
DQ=1/(a-1);
[valueq ,posq]=sort(Q);
[values ,poss]=sort(S);
[valuer ,posr]=sort(R);
if Q(posq(2))-Q(posq(1))>=DQ
if S(posq(1))==S(poss(1))&&R(posq(1))==R(posq(1))
fprintf('The Best Alternative is: %f ',posq(1));
else
fprintf('The Best Alternative are: %f and
%f',posq(1),posq(2));
end
else
if posq(1)==poss(1)&&posq(1)==posr(1)
i=3;
while i<=length(posq)
if Q(posq(i))-Q(posq(1))<=DQ
i=i+1;
else
break
end
end
out=posq(1:i-1);
fprintf('The best alternative are %f ',posq(1));
for kk=2:length(out)
fprintf('and %f',posq(kk));
end
else
fprintf('no alternative is strongly suggested by this
method');
end
end
58
FUNCTION TO CALCULATE THE PAIRWISE COMPARISION
function fuzzypair=paircal(X,scale,ro)
le=length(X);
for i=1:le
for j=1:le
crisppair(i,j)=X(1,i)/X(1,j);
if crisppair(i,j)<=0.25
for k=1:4
fuzzypair(i,j,k)=scale(1,k);
end
elseif crisppair(i,j)<=0.4
for k=1:4
fuzzypair(i,j,k)=scale(2,k);
end
elseif crisppair(i,j)<=0.5
for k=1:4
fuzzypair(i,j,k)=scale(3,k);
end
elseif crisppair(i,j)<=2/3
for k=1:4
fuzzypair(i,j,k)=scale(4,k);
end
elseif crisppair(i,j)<=4/3 && crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(5,k);
end
elseif crisppair(i,j)<=5/3&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(6,k);
end
elseif crisppair(i,j)<=2&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(7,k);
end
59
elseif crisppair(i,j)<=3&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(8,k);
end
elseif crisppair(i,j)<=5&&crisppair(i,j)~=1
for k=1:4
fuzzypair(i,j,k)=scale(9,k);
end
elseif crisppair(i,j)==1
for k=1:4
fuzzypair(i,j,k)=scale(10,k);
end
end
end
end
for j=1:2
fuzzypair(:,:,2*(j-1)+1)=sqrt(1-((1-fuzzypair(:,:,2*(j-
1)+1).^2).^ro));
fuzzypair(:,:,2*(j-1)+2)=fuzzypair(:,:,2*(j-1)+2).^ro;
end
60
FUNCTION TO RANK ALTERNATIVE
function [S,R,Q]=findvikor(Crispmatrix,weigth,a,v)
fmax=max(Crispmatrix);
fmin=min(Crispmatrix);
for i=1:a
S(i)=sum((fmax-Crispmatrix(i,:))./(fmax-fmin).*weigth);
R(i)=max((fmax-Crispmatrix(i,:))./(fmax-fmin).*weigth);
end
for i=1:a
Q(i)=v*(S(i)-min(S))/(max(S)-min(S))+(1-v)*(R(i)-
min(R))/(max(R)-min(R));
end
[[Link](i).[Link](j,:)]=fuzzyfication([Link](i)
.[Link](j));
[Link](i).Sub(j).Point=readmatrix('[Link]','Sheet','Re
sult','Range',[1+9*j+i,2,1+9*j+i,2+numsub(j)-1]);
for k=1:numsub(j)
[[Link](i).Sub(j).Fuzzypoint(k,:)]=fuzzyfication([[Link]
(i).Sub(j).Point(k)]);
end
end
end
[Link](:,1)=sqrt(1-(1-
[[Link](1).[Link](:,1)].^2).^weigthofexpert(1));
[Link](:,2)=[[Link](1).[Link](:,2)].^we
igthofexpert(1);
for i=1:nummain
[Link](i).Aggregate(:,1)=sqrt(1-(1-
[[Link](1).Sub(i).Fuzzypoint(:,1)].^2).^weigthofexpert(1));
[Link](i).Aggregate(:,2)=[[Link](1).Sub(i).Fuzzypoint(:,2)]
.^weigthofexpert(1);
end
for i=2:e
[Link](:,1)=sqrt([[Link](:,1)].^2+1-
(1-[[Link](i).[Link](:,1)].^2).^weigthofexpert(i)-(1-
62
(1-
[[Link](i).[Link](:,1)].^2).^weigthofexpert(i)).*[SWA
[Link](:,1)].^2);
[Link](:,2)=[[Link](:,2)].*([[Link]
t(i).[Link](:,2)].^weigthofexpert(i));
for j=1:nummain
[Link](j).Aggregate(:,1)=sqrt([[Link](j).Aggregate(:,1)].^2+1-
(1-[[Link](i).Sub(j).Fuzzypoint(:,1)].^2).^weigthofexpert(i)-
(1-(1-
[[Link](i).Sub(j).Fuzzypoint(:,1)].^2).^weigthofexpert(i)).*[S
[Link](j).Aggregate(:,1)].^2);
[Link](j).Aggregate(:,2)=[[Link](j).Aggregate(:,2)].*([SWARA.E
xpert(i).Sub(j).Fuzzypoint(:,2)].^weigthofexpert(i));
end
end
[Link]=[Link](:,1).^2-
[Link](:,2).^2;
[Link]=SWARAWeigth([[Link]],nummain);
[Link]=readmatrix('[Link]','Sheet','Result','Rang
e',[3,9,3,8+nummain]);
weigth=[];
for i=1:nummain
[Link](i).Crisp=[Link](i).Aggregate(:,1).^2-
[Link](i).Aggregate(:,2).^2;
[Link](i).Weigth=SWARAWeigth([[Link](i).Crisp],numsub(i));
weigth=[weigth [Link](i).Weigth.*[Link](i)];
end
%PROMETHEE
for i =1:e
for j=1:c
for k=1:a
63
[Link](i).Criteria(j).Alternative(k).Point=readmatrix('Rat
[Link]','Sheet','Result','Range',[c*(i-1)+j+2, k+2,c*(i-
1)+j+2,k+2]);
if
[Link](i).Criteria(j).Alternative(k).Point==1
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix
('[Link]','Sheet','Fuzzyfication','Range',[2,2,2,3]);
elseif
[Link](i).Criteria(j).Alternative(k).Point==2
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix
('[Link]','Sheet','Fuzzyfication','Range',[3,2,3,3]);
elseif
[Link](i).Criteria(j).Alternative(k).Point==3
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix
('[Link]','Sheet','Fuzzyfication','Range',[4,2,4,3]);
elseif
[Link](i).Criteria(j).Alternative(k).Point==4
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix
('[Link]','Sheet','Fuzzyfication','Range',[5,2,5,3]);
else
[Link](i).Criteria(j).Alternative(k).Fuzzypoint=readmatrix
('[Link]','Sheet','Fuzzyfication','Range',[6,2,6,3]);
end
end
end
end
for i=1:a
for j=1:c
[Link](i).Criteria(j).Aggregate(1)=sqrt(1-(1-
([Link](1).Criteria(j).Alternative(i).Fuzzypoint(1))^2).^w
eigthofexpert(1));
[Link](i).Criteria(j).Aggregate(2)=([Link](
1).Criteria(j).Alternative(i).Fuzzypoint(2)).^weigthofexpert(1);
for k=2:e
64
[Link](i).Criteria(j).Aggregate(1)=sqrt([[Link]
ternative(i).Criteria(j).Aggregate(1)].^2+1-(1-
([Link](k).Criteria(j).Alternative(i).Fuzzypoint(1))^2).^w
eigthofexpert(k)-(1-(1-
([Link](k).Criteria(j).Alternative(i).Fuzzypoint(1))^2).^w
eigthofexpert(k)).*[[Link](i).Criteria(j).Aggregate(1
)].^2);
[Link](i).Criteria(j).Aggregate(2)=[[Link]
tive(i).Criteria(j).Aggregate(2)].*([[Link](1).Criteria(j)
.Alternative(i).Fuzzypoint(2)]^weigthofexpert(k));
end
[Link](i).Criteria(j).Crisp=[Link](i).
Criteria(j).Aggregate(1)^2-
[Link](i).Criteria(j).Aggregate(2)^2;
end
Crispmatrix(i,:)= [[Link](i).[Link]];
end
Phi=findprom(Crispmatrix,a,c,weigth);
[~,position]=max(Phi);
fprintf('The Best Alternative is: %f',position);
FUZZYFICATION FUNCTION
function b=fuzzyfication(a)
if a==1
b=readmatrix('[Link]','Sheet','Fuzzyfication','Range',[2,2,2,3]
);
elseif a==2
b=readmatrix('[Link]','Sheet','Fuzzyfication','Range',[3,2,3,3]
);
elseif a==3
b=readmatrix('[Link]','Sheet','Fuzzyfication','Range',[4,2,4,3]
);
elseif a==4
b=readmatrix('[Link]','Sheet','Fuzzyfication','Range',[5,2,5,3]
);
65
else
b=readmatrix('[Link]','Sheet','Fuzzyfication','Range',[6,2,6,3]
);
end
66
[Link].
Altera(i).Alterb(j).Criteria(k)=[Link].
Altera(i).Alterb(j).Criteria(k);
else
[Link].
Altera(i).Alterb(j).Criteria(k)=0;
end
[Link](i).Alterb(j).Value=[Link](i).Alterb(j).Value+
[Link]. Altera(i).Alterb(j).Criteria(k).*weigth(k);
end
end
end
end
for i=1:a
phiplus(i)=sum([[Link](i).[Link]])/(a-1);
end
phiminus=zeros([a,1]);
for i=1:a
for j=1:a
if j~=i
phiminus(i)=phiminus(i)+[Link](j).Alterb(i).Value;
end
phiminus(i)=phiminus(i)/(a-1);
end
end
out=phiplus'-phiminus;
67