Implementation of TOPSIS decision making
Project description
TOPSIS-Python
Inspired by TOPSIS-Python (python2) Our python 3 code follows the same strucutre, definign a topsis class, but uses numpy linear algebra in order to modernise, optimise, and remove redundant code.
What is TOPSIS
Technique for Order Preference by Similarity to Ideal Solution (TOPSIS) originated in the 1980s as a multi-criteria decision making method. TOPSIS chooses the altenrative of shortest Euclidean distance from the idael solution, and fartherst distance from the negative-ideal solution. More details at wikipedia. The TOPSIS algorithm is succintly explained in this paper comparing TOPSIS and VIKOR methods
Installing TOPSIS-Python
The TOPSIS class can be installed using
pip install --no-deps topsis-python-jamesfallon
Using TOPSIS-Python
TOPSIS-Python can be run as in the following example:
>>> import numpy as np
>>> from topsis import topsis
>>> a = [[7, 9, 9, 8], [8, 7, 8, 7], [9, 6, 8, 9], [6, 7, 8, 6]]
>>> w = [0.1, 0.4, 0.3, 0.2]
>>> I = np.array([1, 1, 1, 0]
>>> decision = topsis.topsis(a, w, I)
The decision matrix (a
) should be constructed with each row representing
an alternative, and each column representing a criterion. We have used an
example given in TOPSIS Method in MADM (Dr. Farhad Faez)
Weights (w
) is not already normalised will be normalised upon
initialisation. Information on benefit (1) cost (0) criteria should be provided
in I
.
By default, the optimisation (TOPSIS calculation) does not take place. No values
are stored in decision.C
or decision.optimum_choice
.
These can be calculated, either by calling decision.calc()
, or by calling a
representation of the decision (which will itself call decision.calc()
):
>>> decision
Alternatives ranking C:
[0.74269409 0.40359933 0.17586999 0.44142927]
Best alternative
a[0]: [7. 9. 9. 8.]
The rankings are saved in decision.C
, with the highest ranking $0.74269409
$
offering us the best decision, and lowest ranking $0.17586999
$ offering the
worst decision making, according to TOPSIS method.
We are also then shown the best alternative index (which happens to be index 0 in this example), and the associated criteria coefficients of this alternative.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for topsis_jamesfallon-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76e34a1020eb0e336fb57bee227ef506f1b9b259bc0517548c2fe5fd59b03fba |
|
MD5 | 0998c1ba2f88f5cabfb6eec116919a70 |
|
BLAKE2b-256 | 9e111bbe02dfe10cb602d97c40da209058e46bd2974af3c79701883295c09109 |