JMcDM: A Julia package for multiple-criteria decision making tools

Hey guys,

I am happy to announce that I have just prepared the skeleton of the Julia package JMcDM which basically implements Topsis, Electre, Dematel, Moora, Vikor, and AHP (Analytical hierarchy process) as multiple criteria decision making tools. The package also implements single criterion tools such as maximin, minimax, MLE, Savage, Laplace, and Expected Regret. A game solver is also implemented for zero sum games using JuMP and Cbc back-ends.

There is a list of unimplemented methods including PROMETHEE, MACBETH, COMET, etc. in the project repository.

I am planning to have a comprehensive tool for this subject and prepare the high quality documentation for developers. I am also planning to write a journal article, possibly for SoftwareX, of course with all of the developers and contributors.

So, this is an announcement and an open invitation for both package development and submitting a journal paper after it gets a mature level.

The repository is

We are in Julia Slack channel, #jmcdm.

Thank you in advance!


After a long time, and again, I am happy to announce that the package JMcDM covers a wide subset of the literature in the area of multiple-criteria decision-making. The package now includes

  • TOPSIS (Technique for Order Preference by Similarity to Ideal Solutions)
  • ELECTRE (Elimination and Choice Translating Reality)
  • DEMATEL (The Decision Making Trial and Evaluation Laboratory)
  • MOORA (Multi-Objective Optimization By Ratio Analysis)
  • VIKOR (VlseKriterijumska Optimizcija I Kaompromisno Resenje in Serbian)
  • AHP (Analytic Hierarchy Process)
  • DEA (Data Envelopment Analysis)
  • GRA (Grey Relational Analysis)
  • Non-dominated Sorting
  • SAW (Simple Additive Weighting) (aka WSM)
  • ARAS (Additive Ratio Assessment)
  • WPM (Weighted Product Model)
  • WASPAS (Weighted Aggregated Sum Product ASsessment)
  • EDAS (Evaluation based on Distance from Average Solution)
  • MARCOS (Measurement Alternatives and Ranking according to COmpromise Solution)
  • MABAC (Multi-Attributive Border Approximation area Comparison)
  • MAIRCA (Multi Attributive Ideal-Real Comparative Analysis)
  • COPRAS (COmplex PRoportional ASsessment)
  • PROMETHEE (Preference Ranking Organization METHod for Enrichment of Evaluations)
  • CoCoSo (Combined Compromise Solution)
  • CRITIC (CRiteria Importance Through Inter-criteria Correlation)
  • Entropy
  • CODAS (COmbinative Distance-based ASsessment)

for MCDM tools, methods for single-criterion tools and other stuff for developing new methods.

An academic paper of the package is also published in Journal of Open Source Software. Here is the link: Paper link

Any contributions and issues are welcome!


We are happy to announce that v0.2.9 version of JMcDM has just been released with these updates:

  • entropy() returns a result even though there are NaNs for some criterion.
  • Default optimizer is now GLPK (Cbc removed).
  • Direction of optimization added for nds().
  • Bug in Moora fixed.
  • Bug in Marcos fixed.
  • Bug in Electre fixed.
  • New test added.
  • A Jupyter notebook added for sample usage.

Please use the package manager to update the package:

] update

or install:

] add JMcDM

Please cite using the paper if you use in your research.