This repository is a module of the alternatives ranking system based on the methods of V.V. Podinovksiy (DASS program). This system uses a method of sequential preference refinement. It consists of gradually eliminating options and increasing the rigor of their evaluation methods.
Algorithms for clarifying preferences were implemented using the manual. The table below maps code sections to manual theory for better understanding.
№ | Preference clarification stage | Code | V.V. Porinovski textbook (ISBN 978-5-02-040241-6) |
---|---|---|---|
1 | Edgeworth-Pareto method | def pareto(variants: list[Variant]): |
§1.2, point 3 |
2 | Qualitative importance (QI) | def quality_domination(variants: list[Variant]...): |
§2.5 |
3 | QI: criteria importance vector | for imp in importances: |
formula 2.6 |
4 | QI: sort importance vector | for pos, value in zip(importance.positions, importance_vector): |
formula 2.3 |
5 | QI: B^Omega matrix | v.matrix = quality_domination_matrix(v.scores, importance_vector_new, scale.gradeCount) |
formula 2.4 and table 2.2 (last row) |
6 | QI: B^Omega matrix comparison | res = v1.matrix - v2.matrix |
formula 2.5 |
7 | Count importance (CI) | def count_domination(variants: list[Variant]...): |
§3.3 (example) |
8 | CI: N-model | n_model.append(coefs[i] * n_model[i]) |
§3.1 (theory), point 2 (begin) |
9 | CI: long scores from N-model | for n, s in zip(n_model, v.scores): |
§3.1, point 2 (end) |
10 | CI: Pareto for sorted long scores | for i in range(len(b.long_scores)): |
§3.3, point 1 (begin) |
The main contributor of the project is Maxim A. Lopatin, a student of SPbPU ICSC.
The advisor and minor contributor is Vladimir A. Parkhomenko a seniour lecturer of SPbPU ICSC.
The dass.py file contains the algorithms. The main.py file contains the reading of the data and the order in which the algorithms are applied. The input directory contains two examples of XML input data from the DASS program.
The contributors give no warranty for the using of the software.
This program is open to use anywhere and is licensed under the MIT license.