moptipy.mo.problem package¶
Routines and tools for defining multi-objective optimization problems. The base class for implementing multi-objective problems. Bases: The base class for implementing multi-objective optimization problems. This class allows to construct a simple python function for scalarizing a vector of objective values in its constructor and also determines the right datatype for the objective vectors. It therefore first obtains the type (integers or floats?) of the objective values as well as the bounds of the objective functions. This is used to determine the right numpy dtype for the objective vectors. We want to represent objective vectors as compact as possible and use an integer vector if possible. Once this information is obtained, we invoke a call-back function get_scalarizer which should return a python function that computes the scalarization result, i.e., the single scalar value representing the vector of objective values in single-objective optimization. This function must be monotonous. If the bounds are finite, it is applied to the vector of lower and upper bounds to get the lower and upper bounds of the scalarization result. Examples for implementing this class are class:~moptipy.mo.problem.weighted_sum.WeightedSum and Convert the multi-objective problem into a single-objective one. This function first evaluates all encapsulated objectives and then scalarizes the result. Obtain the number of objective functions. the number of objective functions Get the data type used in f_create. the data type used by Log the parameters of this function to the provided destination. logger ( Get the lower bound of the scalarization result. This function returns a theoretical limit for how good a solution could be at best. If no real limit is known, the function returns -inf. The weighted sum scalarization of multi-objective problems. Here we provide two simple methods to scalarize multi-objective problems by using weights, namely Bases: Base class for scalarizing objective values by a weighted sum. This class brings the basic tools to scalarize vectors of objective values by computing weighted sums. This class should not be used directly. Instead, use its sub-classes Log the parameters of this function to the provided destination. logger ( Bases: Prioritize the first objective over the second and so on. Bases: Scalarize objective values by computing their weighted sum.Submodules¶
moptipy.mo.problem.basic_mo_problem module¶
MOProblem
Prioritize
, which represent a multi-objective optimization problem either as weighted sum or by priorizing the objective value (via an internal weighted sum).moptipy.api.mo_problem.MOProblem.f_create()
.KeyValueLogSection
) – the logger for the parametersmoptipy.mo.problem.weighted_sum module¶
WeightedSum
, a sum with arbitrary, user-defined weights of the objective valuesPrioritize
, a weighted sum of the objective values where the weights are automatically determined such that the first objective function is prioritized over the second one, the second one over the third, and so on.BasicMOProblem
WeightedSum
and Prioritize
.KeyValueLogSection
) – the logger for the parametersBasicWeightedSum
BasicWeightedSum