Stochastic Expected Solution Point (SESP) approach.
SESP is an approach for the re-identification of MCDA/MCDM models based on a reference point called
the Expected Solution Point. This approach was presented alongside the SPOTIS method in [1].
method (callable) – A function used for optimization to find the best ESP. It should include ‘bounds’, which denote the
search boundaries for the point; these boundaries are projected onto a FloatVar object from the MealPy
library. The function should also include an argument to set ‘obj_func’, which is used according to the
ESP selection methodology. Additionally, it should have an argument to set ‘minmax’, which determines
whether the function is minimized or maximized. It should also have an argument to set ‘n_dims’, which
indicates the number of criteria in the decision-making problem.
base (object) – An object representing the MCDA/MCDM method for which the ESP will be found. It should have an ‘esp’
attribute and be callable for evaluating alternatives (in this case, the training set). The callable should
function similarly to the ‘SPOTIS’ method from the ‘pymcdm’ library.
types (ndarray) – Array defining the criteria types: 1 if the criterion is profit and -1 if the criterion is cost for each
criterion in the matrix.
weights (ndarray, optional) – Criteria weights. The sum of the weights should be 1 (e.g., sum(weights) == 1). If not provided, the weights
are assigned equally in ‘fit’ method.
Fitness method for finding the Expected Solution Point (ESP).
Parameters:
solutions (ndarray) – Matrix representing the ESPs.
correlation (callable, optional) – A correlation coefficient function used to compare rankings during the search for the optimal ESP.
The default is rw.
Returns:
The correlation value between the reference ranking and the ranking obtained from the base method with
the identified ESP.
Abstract class for Stochastic Fuzzy Normalization (SFN).
SFN is an approach for the re-identification of MCDA/MCDM models using fuzzy numbers. The main concept involves
finding values within the fuzzy numbers, known as cores, while keeping the boundary values of the fuzzy numbers
constant.
method (callable) – A function used for optimization to find the best cores. It should include ‘bounds’, which denote the
search boundaries for the cores; these boundaries are projected onto a FloatVar object from the MealPy
library. The function should also include an argument to set ‘obj_func’, which is used according to the
fuzzy normalization selection methodology. Additionally, it should have an argument to set ‘minmax’,
which determines whether the function is minimized or maximized. It should also have an argument to set
‘n_dims’, which indicates the number of criteria in the decision-making problem.
base (object) – An object representing the MCDA/MCDM method for which the cores will be found. It should have a
‘normalization’ attribute and be callable for evaluating alternatives (in this case, the training set).
weights (ndarray, optional) – Criteria weights. The sum of the weights should be 1 (e.g., sum(weights) == 1). If not provided, the weights
are assigned equally in the ‘fit’ method.
Method for training to find the best core for fuzzy normalization that matches the given ranking.
Parameters:
x_train (ndarray) – Decision matrix used for training to find the best core for fuzzy normalization. Alternatives are in
rows and criteria are in columns.
y_train (ndarray) – Ranking of the alternatives contained in ‘x_train’.
**kwargs_method – Dictionary of parameter settings for the optimization method ‘self.method’.
Fitness method for finding the cores for fuzzy normalization.
Parameters:
solutions (ndarray) – Matrix representing the cores for fuzzy numbers.
correlation (callable, optional) – A correlation coefficient function used to compare rankings during the search for the optimal cores.
The default is rw.
Returns:
The correlation value between the reference ranking and the ranking obtained from the base method with
fuzzy normalization based on the identified cores.
Stochastic IdenTification Of Models (SITCOM) approach.
SITCOM is an approach based on determining the preferences of characteristic objects using the COMET method
through stochastic optimization methods. The main advantage of this approach is the ability to re-identify the
COMET model without re-engaging the decision-making expert [2], [3].
method (callable) – A function used for optimization to find the best preferences of characteristic objects. It should include
‘bounds’, which denote the search boundaries for the preferences; these boundaries are projected onto a
FloatVar object from the MealPy library. The function should also include an argument to set ‘obj_func’,
which is used according to the preferences of characteristics objects selection methodology. Additionally,
it should have an argument to set ‘minmax’, which determines whether the function is minimized or maximized.
It should also have an argument to set ‘n_dims’, which indicates the number of characteristic objects in
the decision-making problem.
cvalues (list[list]) – A list of characteristic values based on which characteristic objects are created for the SITCOM model. Each
criterion should have at least two characteristic values, which should be provided in a nested list.
Trains the model to find the best preferences for characteristic objects in the COMET model, matching
the given ranking.
Parameters:
x_train (ndarray) – Decision matrix used for training to find the best preferences for characteristic objects. Alternatives
are in rows and criteria are in columns.
y_train (ndarray) – Ranking of the alternatives contained in ‘x_train’.
**kwargs_method – Dictionary of parameter settings for the optimization method ‘self.method’.
Fitness method for finding the preferences of characteristic objects in the COMET model.
Parameters:
solutions (ndarray) – Matrix representing the preferences of characteristic objects.
correlation (callable, optional) – A correlation coefficient function used to compare rankings during the search for the optimal preferences
of characteristic objects. The default is rw.
Returns:
The correlation value between the reference ranking and the ranking obtained from the COMET method with
the identified preferences of characteristic objects.
Stochastic Identification of Weights (SITW) approach.
The SITW approach involves finding the optimal weights for decision criteria in a given MCDA/MCDM method, so that
the resulting rankings of alternatives are as close as possible to a reference ranking. Stochastic optimization
methods are used to find these weights [4].
method (callable) – A function used for optimization to find the best weights for decision criteria. It should include
‘bounds’, which denote the search boundaries for the weights; these boundaries are projected onto a
FloatVar object from the MealPy library. The function should also include an argument to set ‘obj_func’,
which is used according to the criteria weights selection methodology. Additionally, it should have an
argument to set ‘minmax’, which determines whether the function is minimized or maximized. It should also
have an argument to set ‘n_dims’, which indicates the number of criteria in the decision-making problem.
base (object) – An object representing the MCDA/MCDM method for which the criteria weights will be found. This method should
be able to process a weight vector where the sum of the weights is equal to 1.
types (ndarray) – Array with definitions of criteria types:
1 if a criterion is a profit criterion and -1 if a criterion is a cost criterion for each criterion in the
decision matrix.
Stochastic Identification of Weights based Local weights (SITWLocal) approach.
The SITWLocal approach is designed to identify weights for an MCDA/MCDM model that evaluates characteristic
objects using the COMET method. This approach determines local weights for selected alternatives from the COMET
approach by finding weights for the MCDA/MCDM model that minimize the mean absolute error (MAE) between the
local weights derived from the model and the reference local weights [5].
method (callable) – A function used for optimization to find the best weights for decision criteria. It should include
‘bounds’, which denote the search boundaries for the weights; these boundaries are projected onto a
FloatVar object from the MealPy library. The function should also include an argument to set ‘obj_func’,
which is used according to the criteria weights selection methodology. Additionally, it should have an
argument to set ‘minmax’, which determines whether the function is minimized or maximized. It should also
have an argument to set ‘n_dims’, which indicates the number of criteria in the decision-making problem.
base (object) – An object representing the MCDA/MCDM method for which the criteria weights will be found. This method should
be able to process a weight vector where the sum of the weights is equal to 1.
types (ndarray) – Array with definitions of criteria types:
1 if a criterion is a profit criterion and -1 if a criterion is a cost criterion for each criterion in the
decision matrix.
Evaluate the fitness of a solution by comparing the preference it produces with the reference preference.
Parameters:
solutions (ndarray) – Array of unnormalized weights for the decision criteria. These weights are normalized within the
fitness function.
Returns:
The mean absolute error (MAE) value between the preference obtained using the Expert MCDA method with
the normalized weights in the COMET method and the reference preference.
STFN is an approach based on fuzzy normalization using triangular fuzzy numbers. This approach seeks the cores
of triangular fuzzy numbers used to normalize the decision matrix so that the MCDA/MCDM method combined with
STFN best reflects the reference ranking [6].
method (callable) – A function used for optimization to find the best cores. It should include ‘bounds’, which denote the
search boundaries for the cores; these boundaries are projected onto a FloatVar object from the MealPy
library. The function should also include an argument to set ‘obj_func’, which is used according to the
fuzzy normalization selection methodology. Additionally, it should have an argument to set ‘minmax’,
which determines whether the function is minimized or maximized. It should also have an argument to set
‘n_dims’, which indicates the number of criteria in the decision-making problem.
base (object) – An object representing the MCDA/MCDM method for which the cores will be found. It should have a
‘normalization’ attribute and be callable for evaluating alternatives (in this case, the training set).
fn_bounds (list[list]) – Nested lists containing the boundary values for the triangular fuzzy numbers used for normalization. These
boundaries are used to declare the search bounds for the cores.
weights (ndarray, optional) – Criteria weights. The sum of the weights should be 1 (e.g., sum(weights) == 1). If not provided, the weights
are assigned equally in the ‘fit’ method.
This method should be implemented in subclasses to perform the necessary training to identify the optimal
solution using the provided decision matrix and rankings.
Parameters:
x_train (ndarray) – Decision matrix used for training. Alternatives are in rows and criteria are in columns.
y_train (ndarray) – Ranking/preferences of the alternatives contained in ‘x_train’.
**kwargs_method (dict) – Dictionary of parameter settings for the optimization method ‘self.method’.
STRFN is an approach based on fuzzy normalization using trapezoidal fuzzy numbers. This approach seeks the cores
of trapezoidal fuzzy numbers used to normalize the decision matrix so that the MCDA/MCDM method combined with
STRFN best reflects the reference ranking.
method (callable) – A function used for optimization to find the best cores. It should include ‘bounds’, which denote the
search boundaries for the cores; these boundaries are projected onto a FloatVar object from the MealPy
library. The function should also include an argument to set ‘obj_func’, which is used according to the
fuzzy normalization selection methodology. Additionally, it should have an argument to set ‘minmax’,
which determines whether the function is minimized or maximized. It should also have an argument to set
‘n_dims’, which indicates the number of criteria in the decision-making problem.
base (object) – An object representing the MCDA/MCDM method for which the cores will be found. It should have a
‘normalization’ attribute and be callable for evaluating alternatives (in this case, the training set).
fn_bounds (list[list]) – Nested lists containing the boundary values for the trapezoidal fuzzy numbers used for normalization. These
boundaries are used to declare the search bounds for the cores.
weights (ndarray, optional) – Criteria weights. The sum of the weights should be 1 (e.g., sum(weights) == 1). If not provided, the weights
are assigned equally in the ‘fit’ method.
Method for training to find the best core for fuzzy normalization that matches the given ranking.
Parameters:
x_train (ndarray) – Decision matrix used for training to find the best core for fuzzy normalization. Alternatives are in
rows and criteria are in columns.
y_train (ndarray) – Ranking of the alternatives contained in ‘x_train’.
**kwargs_method – Dictionary of parameter settings for the optimization method ‘self.method’.