# topsis_nitanshjain_102017025

## What is TOPSIS
Technique for Order Preference by Similarity to Ideal Solution (TOPSIS) originated in the 1980s as a multi-criteria decision making method.<br> TOPSIS chooses the alternative of shortest Euclidean distance from the ideal solution, and greatest distance from the negative-ideal solution.

## Installation
```pip install topsis-nitanshjain-102017025```

## Input csv format
Input file contain three or more columns<br>
First column is the object/variable name <br>
From 2nd to last columns contain numeric values only

## How to use it
Command Prompt<br>
```topsis <InputDataFile> <Weights> <Impacts> <ResultFileName>```<br>
Example:<br>
```topsis inputfile.csv “1,1,1,1,2” “+,+,+,+,-” result.csv```<br><br>
<i>Note: The weights and impacts should be ',' seperated, input file should be in pwd.</i> 

## Functions, Parameters and Return Values

```
function = check_input()
parameters = none for this function
return values = input_file, weights (string), impacts (string), output_file
```

```
function = read_data()
parameters = input_file, weights, impacts
return values = dataframe, weights (list), impacts (list)
```

```
function = topsis_solve()
parameters = dataframe, weights, impacts, output_file
return values = dataframe, creates a csv file with the topsis rank and performance score
```



## Sample input data
| Model       | P1 | P2 | P3 | P4 | P5 |
| ------------- |:-------------:| -----:|-----:|-----:|-----:|
| M1    | 0.62 | 0.38 | 3.8 | 33.8 | 9.65  | 
 | M2    | 0.75 | 0.56 | 5.7 | 50.3 | 14.33 | 
 | M3    | 0.95 | 0.90 | 6.5 | 65.6 | 18.49 | 
 | M4    | 0.61 | 0.37 | 6.2 | 43.6 | 12.70 | 
 | M5    | 0.60 | 0.36 | 6.4 | 61.2 | 17.14 | 
 | M6    | 0.76 | 0.58 | 5.3 | 68.0 | 18.66 | 
 | M7    | 0.66 | 0.44 | 6.2 | 47.2 | 13.63 | 
 | M8    | 0.80 | 0.64 | 5.7 | 37.1 | 11.06 | 


## Sample output data
| Model       | P1 | P2 | P3 | P4 | P5 | Performance Score | Topsis Rank |
| ------------- |:-------------:| -----:|-----:|-----:|-----:| ---: | ---: |
| M1    | 0.62 | 0.38 | 3.8 | 33.8 | 9.65  |  0.317272185       | 8           | 
| M2    | 0.75 | 0.56 | 5.7 | 50.3 | 14.33 |  0.452068871       | 4           | 
| M3    | 0.95 | 0.90 | 6.5 | 65.6 | 18.49 |  0.689037307       | 1           | 
| M4    | 0.61 | 0.37 | 6.2 | 43.6 | 12.70 |  0.340383903       | 7           | 
| M5    | 0.60 | 0.36 | 6.4 | 61.2 | 17.14 |  0.367206376       | 6           |
| M6    | 0.76 | 0.58 | 5.3 | 68.0 | 18.66 |  0.481350901       | 3           | 
| M7    | 0.66 | 0.44 | 6.2 | 47.2 | 13.63 |  0.372999972       | 5           | 
| M8    | 0.80 | 0.64 | 5.7 | 37.1 | 11.06 |  0.51226635        | 2           | 

 
 




 




