Giter Club home page Giter Club logo

decision-making-promethee2's Introduction

PROMETHEE II - A Method Of Multi Criteria Decision Support|Analysis|Making (MCDM)

🔗 Live Demo: https://mouradsidhoumi.github.io/promethee2/

📘 If you understand french, here is a report that I did about this project 🎓.

(⌨️ This is my first JS project, so the code is very bad)


🧭 Two case scenarios are covered in this readme for using the method :


📜 𝘉𝘳𝘪𝘦𝘧 ℑ𝔫𝔱𝔯𝔬𝔡𝔲𝔠𝔱𝔦𝔬𝔫 𝔱𝔬 𝔐𝔲𝔩𝔱𝔦 ℭ𝔯𝔦𝔱𝔢𝔯𝔦𝔞 𝔇𝔢𝔠𝔦𝔰𝔦𝔬𝔫 𝔐𝔞𝔎𝔦𝔫𝔤:

As it says, ~ 𝕿𝖍𝖊 𝖍𝖆𝖗𝖉𝖊𝖘𝖙 ..𝖎𝖘 𝖙𝖔 𝖈𝖍𝖔𝖔𝖘𝖊 ~
Decision support is a set of techniques and methods used during the decision-making process, when confronted to uncertainty, multiple & contradictory goals.. In the old days, it was based on consultant experience, historical analysis, mathematics such as statistical, optimization or probabilistic tools⁽¹⁾. With the development of computing, it progressed and became part of operational research and business intelligence.
Desicion support include many methods each family depend on the approche as the number (big/limited) of decision-makers and alternatives(actions to choose from). Multi criteria desicion support|making|analysis is one of the approches, with limited number of decision-makers & alternatives which is the most common case.

Basic elements:

  • Action : or alternative, one of the possible solutions for the treated problem, there are several types of actions, among them: real action which is executable, or imaginary action that is made idealist for the study⁽²⁾.
  • Criteria : qualitative or quantitative expression that evaluates actions⁽³⁾, it also can be a function, taking its values in a ordered set and representing the decision-maker's preferences according to a certain point of view⁽⁴⁾.
  • Objectives : or goals, are what the decision-maker wants to optimize by using decision support, each one can be to maximize, minimize or to maintain in a certain state⁽²⁾.
  • Performance Matrix : or evaluation matrix, is a 2-dimensional table "action×criteria" (or the reverse), each intersection represents the evaluation of action i in relation to criteria j.

Important concepts/notions:

  • Multi-criteria problem : what has to be done ⁽⁵⁾:
    α - Choice : select the smallest possible set of "best actions".
    β - Sorting (classification) : assign actions to predefined categories.
    γ - Ranking : total or partial ordering of actions according to their relative qualities.
    δ - Description (scoring) : describe the actions and their consequences in a formalized way.

  • Aggregation of preferences :
    A crucial process, which allows to obtain information on the global preference between potential actions⁽⁶⁾. Taking into account two operations:

    • Multi-criteria aggregation : synthesize n values into a single one.
    • Comparison : compare two given performances⁽²⁾.

    According to their order, two approaches follow from this, "aggregate then compare" & "compare then aggregate", both generate different results and rise several methods.

    What also takes part in the diversity of methods is the type of the multi-criteria aggregation, including: total, partial and local iterative.

PROMETHEE family:

Preference Ranking Organization METHode for Enrichment of Evaluations
Family of multi-criteria decision support methods. Characterizing six types of criteria; makes possible to define relations of outranking, indifference and incomparability between actions and to rank them from the best to the least good⁽⁷⁾. The basic elements of these methods were first proposed in 1982 by Professor Jean-Pierre Brans in Brussels⁽⁸⁾. These methods are popular and there are several variants of them (at least five). They have been used successfully in many decision-making contexts around the world. A non-exhaustive list of scientific publications on extensions, applications and discussions related to the PROMETHEE methods has been published⁽⁹⁾.

PROMETHEE Ⅱ method:

Give a total order of the potential actions (solves ranking problem γ), using the "compare then aggregate" approach, with partial aggregation.
post-script : PROMETHEE Ⅰ arranges actions to a partial order and accepting incomparability relation⁽¹⁰⁾.


ℹ: Here, to assimilate better and avoid repetition, I'm gona break the sequencing of this reading by bringing the usage of the PROMETHEE Ⅱ demo webapp, with abstraction of how it works under the hood, which we will come back to it after.

⚡ How to use it :

❶ - Identify which desision you want to make.
❷ - Define what are the possible actions(alternatives) to choose between, and the criterias that you gona evaluate each action on.
❸ - Dress a table (Actions⨯Criterias) with the collected data, on an Excel file(recommanded), or by filling the table in the website.

(Easy until here, now it time for 🔥)

*If you choosed to fill an Excel file, make sure to have this formating so it can works on the website. The optional part (which we gona discuss in a jiff) is not required on the Excel file because you can fill it in the website, but it is still required for the method to operate.

*If you have qualitative values for a criteria, for example: "exellent, very good, good, bad", turn them into numeric values as "4, 3, 2, 1". And 1/0 for yes/no.

❹ - Give for each criteria a :

  • Weigth, aka. coefficient.
  • Boolean for maximize (yes|1) or minimize (no|0). An example in a purchase, benefits (as quality) are to maximize, and expenses (as price) are to minimize.
  • Prefrence function, if you want to keep it simple while staying realistic, make them all "Linear" (putting number "5" in the Excel file), because it is the general case that includes almost all of prefrence functions.

Now, imagine that there is a score diffrence between two actions on a criteria, that diffrence value can be significant or insignificant depanding on how you see the criteria.

  • Indifference threshold, the highest value for that diffrence so it still insignificant (negligible), meaning that they are as same.
  • Prefrence threshold, the minimum value for that diffrence where the superior action is definitely better over the other one (just on that particular criteria, which does not imply that it is the final action decision).

The prefrence threshold have to be superior or equal to the indifference threshold, one or both can also be zero.

❺ - That's it, now you can execute the method directly or after importing the Excel file and revising the data.

⬆ Go to the top


Prefrence Fuctions :

Allows to personalize the prefrence of an action over an other according their diffrence on the criteria.
d : diffrence.
𝑷 = f(d) : prefrence (function).
q : indifference threshold.
p : prefrence threshold.

For d the diffrence between actions pair (A𝒊, A𝒋) (not the reverse) on an criteria, if:

  • d ≤ 0 or d < q ⇔ P = 0 : action 𝒊 is indifferent to action 𝒋.
  • q < d << p ⇔ P ≈ 0 : A𝒊 is weakly preferred over A𝒋.
  • q << d < p ⇔ P ≈ 1 : A𝒊 is strongly preferred over A𝒋.
  • p < d ⇔ P = 1 : A𝒊 is absolutely(or strictly) preferred over A𝒋. ⁽¹⁰⁾

Here are the 6 types:⁽¹¹⁾(you can determine d and 𝑷 from the graphs)

Type 1: Usual
graph1
• Absolute preference once there is positive diffrence.
• Good for criterias with qualitative or binary values.
• No parameter to define.
Type 2: U-shape
graph2
• As type 1 with an indiffrence zone (but not for binary values).
• Indifference threshold q needs to be defined (p is merged with it).
Type 3: V-shape
graph3
• Prefrence threshold p needs to be defined (q = 0).
• According to d, when it is below p, A𝒊 is preferred progressively/gradually over A𝒋.
• Good for real numbers measured on a continuous scale, where the gap values are possible.
Type 4: Level
graph4
• When you can affirm, for d between q & p, that A𝒊 is neither strictly preferred over A𝒋 nor indifferent, but be given ½ point.
q & p needs to be defined.
Type 5: Linear
graph5
• As type 3 including room for indifference with q to be define.
• This type includes types 1, 2 and 3.
Type 6: Gaussian
graph6
• The standard deviation σ(sigma) (also called gaussian threshold S) is to define (it is the position of the inflexion point of the preference function curve), it is recommended to choose q & p first then set it between (or just their average, the ideal value corresponds to a weak preference degree of 0.39).
• Compared to type 3 (or type 5 with q=0, so no flat indiffrence area), the prefrence is more nearby p (after σ) and is less nearby q (before σ), and it grows continuously not lineraly.⁽¹²⁾

🚧 In the demo website, the gaussian type will be added soon.


⚙ PROMETHEE II Process :

After having all data (covered in how to use it) here is how it works:

Step 0 (optionnal): Normalize the action⨯criteria evaluations and criterias weights, making the values concise, between 0 & 1 (with the consideration of the criteria if it is to maximize or minimize, which reverse values in the second case).
⁽¹³⁾

Step 1: In a new matrix, calculate for every action ordered pair, the diffrence between each of their criterias evaluations.

⁽¹⁴⁾

Step 2: Apply prefrence function on diffrences values according to each criteria pref. func, here we get a matrix that is called prefrence degrees.

Step 3: Sum for every action ordered pair: the respectives prefrence degrees, each one multiplied by its weight criteria (if you didn't do step 0 then devide each result on sum of weights). Here we get prefrence indexes .

= 0 ⇔ action 𝒊 is indifferent to action 𝒋 for all criterias.
= 1 ⇔ action 𝒊 is absolutely preferred over action 𝒋 for all criterias.⁽¹⁴⁾

Step 4:

  • Sum each action ordered pairs that starts with the same action. Here we get for every action a positive outranking flow. The positive flow of action 𝒊 : represents the superiority of action 𝒊 over the n-1 other actions.

  • Sum each action ordered pairs that ends with the same action. Here we get for every action a negative outranking flow. The negative flow of action 𝒊 : represents the weakness of action 𝒊 over the n-1 other actions⁽¹⁵⁾.

  • (optionnal: devide each flow on the number of actions - 1)

Step 5: For every action subtract their negative flow from positive flow, we get the net flows.

Step 6 Sort the net flows from biggest to smallest. Here we get the final ranking with PROMETHEE II method!🎉👏

🎦 If you still don't get it here is a Ytb video to get done with it: https://youtu.be/dPQgOX45I_I 🍿🎞


🎰 Advantages and disadvantages of the Promethee method:🩺

Soon 🚧🏗🛠


📚 Bibliography:🧬🔍

⁽¹⁾ Évolution historique de l'aide à la décision - Aide à la décision - Wikipédia
⁽²⁾ E. ALNAFIE - Fondement de la décision - Support de cours master1 RSID
⁽³⁾ ALNAFIE Emdjed - Vers une nouvelle approche pour l’élicitation des préférences dans la méthodologie multicritères d’aide à la décision - 2016.
⁽⁴⁾ P. VINCKE, "L’aide multicritère à la décision", Édition de l’Université de Bruxelles, Bruxelles, 1989
⁽⁵⁾ Michel Grabisch, Patrice Perny - Agrégation Multicritère - 12 mars 2002
⁽⁶⁾ Lucien Yves Maystre, Jacques Pictet, Jean Simos - Méthodes multicritères ELECTRE: description, conseils pratiques et cas d'application à la gestion environnementale
⁽⁷⁾ Optimisation multicritère de la fiabilité: Application du modèle de goal programming avec les fonctions de satisfactions dans l’industrie de traitement de gaz (tel-00738462, v1)
⁽⁸⁾ J.P. Brans (1982) - L'ingénierie de la décision: élaboration d'instruments d'aide à la décision «La méthode PROMETHEE» - Presses de l’Université Laval
⁽⁹⁾ M. Behzadian, R. B. Kazemzadeh, A. Albadvi et M. Aghdasi - PROMETHEE: A comprehensive literature review on methodologies and applications - European Journal of Operational Research 2010
⁽¹⁰⁾ TAIBI BOUMEDYEN - L'analyse Multicritère comme outil d'aide à la décision: Application de la méthode PROMETHEE
⁽¹¹⁾ Farouk Aissanou - Décisions multicritères dans les réseaux de télécommunications autonomes - Institut National des Télécommunications, 2012
⁽¹²⁾ Bertrand Mareschal - Preference functions and thresholds, June 14, 2018
⁽¹³⁾📌 Nivetha Martin - PROMETHEE Method - REST Society for Research International - Youtube 💚 (this one is a video that helps a lot to understand easly)
⁽¹⁴⁾ Hela Moalla FRIKHA, Habib CHABCHOUB, Jean-Marc MARTEL - Inférence des coefficients d’importance relative des critères dans Promethee II, 2008 008 - Université Laval.
⁽¹⁵⁾ Hela Moalla FRIKHA, Habib CHABCHOUB, Jean-Marc MARTEL - Une approche interactive pour la détermination des seuils d’indifférence dans Promethee, 2007 013 - Université Laval

⬆ Go to the top 🚀

decision-making-promethee2's People

Contributors

mouradsidhoumi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.