crispyn.mcda_methods ==================== .. py:module:: crispyn.mcda_methods Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/crispyn/mcda_methods/mcda_method/index /autoapi/crispyn/mcda_methods/vikor/index /autoapi/crispyn/mcda_methods/vikor_smaa/index Classes ------- .. autoapisummary:: crispyn.mcda_methods.VIKOR crispyn.mcda_methods.VIKOR_SMAA Package Contents ---------------- .. py:class:: VIKOR(normalization_method=None, v=0.5) Bases: :py:obj:`crispyn.mcda_methods.mcda_method.MCDA_method` Helper class that provides a standard way to create an ABC using inheritance. .. py:attribute:: v :value: 0.5 .. py:attribute:: normalization_method :value: None .. py:method:: __call__(matrix, weights, types) Score alternatives provided in decision matrix `matrix` using criteria `weights` and criteria `types`. Parameters ----------- matrix : ndarray Decision matrix with m alternatives in rows and n criteria in columns. weights: ndarray Matrix containing vectors with criteria weights in subsequent rows. Sum of weights in each vector must be equal to 1. types: ndarray Vector with criteria types. Profit criteria are represented by 1 and cost by -1. Returns -------- ndrarray Matrix with vectors containing preference values of each alternative. The best alternative has the lowest preference value. Vectors are placed in subsequent columns of matrix. Examples --------- >>> vikor = VIKOR(normalization_method = minmax_normalization) >>> pref = vikor(matrix, weights, types) >>> rank = np.zeros((pref.shape)) >>> for i in range(pref.shape[1]): >>> rank[:, i] = rank_preferences(pref[:, i], reverse = False) .. py:method:: _vikor(matrix, weights, types, normalization_method, v) :staticmethod: .. py:class:: VIKOR_SMAA(normalization_method=None, v=0.5) .. py:attribute:: v :value: 0.5 .. py:attribute:: normalization_method :value: None .. py:method:: __call__(matrix, weights, types) Score alternatives provided in decision matrix `matrix` using criteria `weights` and criteria `types`. Parameters ----------- matrix : ndarray Decision matrix with m alternatives in rows and n criteria in columns. weights : ndarray Matrix with i vectors in rows of n weights in columns. i means number of iterations of SMAA types : ndarray Vector with criteria types. Profit criteria are represented by 1 and cost by -1. Returns -------- ndrarray, ndarray, ndarray Matrix with acceptability indexes values for each alternative in rows in relation to each rank in columns, Matrix with central weight vectors for each alternative in rows Matrix with final ranking of alternatives Examples --------- >>> vikor_smaa = VIKOR_SMAA(normalization_method = minmax_normalization) >>> rank_acceptability_index, central_weight_vector, rank_scores = vikor_smaa(matrix, weights, types) .. py:method:: _generate_weights(n, iterations) Function to generate multiple weight vectors Parameters ----------- n : int Number of criteria iterations : int Number of weight vector to generate Returns ---------- ndarray Matrix containing in rows vectors with weights for n criteria .. py:method:: _vikor_smaa(self, matrix, weights, types, normalization_method, v) :staticmethod: