A Method to Infer AHP Missing Pairwise Comparisons

# pyMissingAHP

## Introduction

The multi-criteria technique Analytic Hierarchy Process (AHP) needs a complete Pairwise Comparison Matrix (PCM) to generate results. With an incomplete PCM, our algorithm can infer the best (continuous or discrete) values to complete the missing data. The values can be calculated based on the minimum inconsistency (f0), target rank preservation (f1), or both (f0_f1). The target rank preservation can be total (when all criteria are ranked) or partial (when only a set of criteria are ranked). We also allow ties in ranks (criteria with the same rank). For small problems with discrete scale, we offer a brute force method that can find all available solutions.

It's worth noting that our implementation can deal with AHP and Fuzzy AHP. The Fuzzy AHP needs a fuzzy triangular scale to work, and although the user can define his scale, we have implemented a default fuzzy triangular scale that can be used in most problems:

Crisp Number Fuzzy Number
1/9 (1/9, 1/9, 1/9)
1/8 (1/9, 1/8, 1/7)
1/7 (1/8, 1/7, 1/6)
1/6 (1/7, 1/6, 1/5)
1/5 (1/6, 1/5, 1/4)
1/4 (1/5, 1/4, 1/3)
1/3 (1/4, 1/3, 1/2)
1/2 (1/3, 1/2, 1)
1 ( 1, 1, 1)
2 ( 1, 2, 3)
3 ( 2, 3, 4)
4 ( 3, 4, 5)
5 ( 4, 5, 6)
6 ( 5, 6, 7)
7 ( 6, 7, 8)
8 ( 7, 8, 9)
9 ( 9, 9, 9)

## Citation

HEYMANN, M.C., PEREIRA, V. & CAIADO, R.G.G. (2023). PyMissingAHP: An Evolutionary Algorithm for Filling Missing Values in Incomplete Pairwise Comparisons Matrices with Real or Fuzzy Numbers via Mono and Multiobjective Approaches. Arabian Journal for Science and Engineering. DOI: https://doi.org/10.1007/s13369-023-08227-4

## Usage

1. Install
pip install pyMissingAHP

1. Try it in Colab:

Single Objective AHP:

• Example 1a - (AHP; f0; Discrete): ( Colab Demo )
• Example 1b - (AHP; f0; Continuous): ( Colab Demo )
• Example 1c - (AHP; f1; Discrete; Different Rank Positions): ( Colab Demo )
• Example 1d - (AHP; f1; Continuous; Different Rank Positions): ( Colab Demo )
• Example 1e - (AHP; f1; Discrete; Same Rank Positions): ( Colab Demo )
• Example 1f - (AHP; f1; Continuous; Same Rank Positions): ( Colab Demo )
• Example 1g - (AHP; f1; Discrete; Partial Rank Positions): ( Colab Demo )
• Example 1h - (AHP; f1; Continuous; Partial Rank Positions): ( Colab Demo )
• Example 1 - Brute Force - (AHP; Discrete): ( Colab Demo )

Single Objective Fuzzy AHP:

• Example 2a - (Fuzzy AHP; f0; Discrete): ( Colab Demo )
• Example 2b - (Fuzzy AHP; f1; Discrete): ( Colab Demo )
• Example 2c - (Fuzzy AHP; f0; Discrete; Custom Fuzzy Scale): ( Colab Demo )
• Example 2d - (Fuzzy AHP; f1; Discrete; Custom Fuzzy Scale): ( Colab Demo )
• Example 2 - Brute Force - (Fuzzy AHP; Discrete): ( Colab Demo )

Multiobjective AHP:

Multiobjective Fuzzy AHP:

• Example 4a - (Fuzzy AHP; f0 & f1; Discrete): ( Colab Demo )
• Example 4b - (Fuzzy AHP; f0 & f1; Discrete; Custom Fuzzy Scale): ( Colab Demo )
1. Others
• pyDecision - A library for many MCDA methods
• 3MOAHP - Inconsistency Reduction Technique for AHP and Fuzzy-AHP Methods
• ELECTRE-Tree - Algorithm to infer the ELECTRE Tri-B method parameters
• Ranking-Trees - Algorithm to infer the ELECTRE II, III, IV and PROMETHEE I, II, III, IV method parameters

## Project details

Uploaded Source
Uploaded Python 3