desdeo_emo.problem

Submodules

Package Contents

Classes

IOPISProblem

A problem class for the IOPIS formulation for interactive optimization.

class desdeo_emo.problem.IOPISProblem(objectives: List[desdeo_problem.ScalarObjective | desdeo_problem.VectorObjective], variables: List[desdeo_problem.Variable], nadir: numpy.ndarray, ideal: numpy.ndarray, PIS_type: str, initial_preference: List | Dict, constraints: List[desdeo_problem.ScalarConstraint] = None)[source]

Bases: desdeo_problem.MOProblem

A problem class for the IOPIS formulation for interactive optimization.

This variant uses the classification kind of preference information for the creation of the Preference incorporated space (PIS).

Parameters:
  • objectives (List[Union[ScalarObjective, VectorObjective]]) – A list containing the objectives of the problem.

  • variables (List[Variable]) – A list containing the variables of the problem.

  • nadir (np.ndarray) – Nadir point of the problem.

  • ideal (np.ndarray) – Ideal point of the problem.

  • PIS – An instantiated classificationPIS class from desdeo-tools.

  • constraints (List[ScalarConstraint], optional) – A list of the constraints of the problem. Defaults to None.

evaluate_fitness(objective_vectors: numpy.ndarray) numpy.ndarray

Evaluate objective fitness.

Parameters:

objective_vectors (np.ndarray) – objective vectors

Returns:

Objective fitness

Return type:

np.ndarray

reevaluate_fitness(objective_vectors: numpy.ndarray) numpy.ndarray

Re-evaluate objective fitness.

Calls update_ideal with objective_vectors.

Parameters:

objective_vectors (np.ndarray) – objective vectors

Returns:

Objective fitness

Return type:

np.ndarray

update_preference(preference: Dict | List)

Update PIS preference

Parameters:

preference (Dict) – PIS preferences

update_ideal(objective_vectors: numpy.ndarray, fitness: numpy.ndarray)

Update ideal vector.

Parameters:
  • objective_vectors (np.ndarray) – Objective vectors

  • fitness (np.ndarray) – Fitness values for objective vectors

request_preferences(pop)
manage_preferences(population: desdeo_emo.population.Population.Population, preference=None)