Skip to main content

Multi-Objective Optimisation Ontology

Optimisation
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Multi-Objective Optimisation Ontology within the Kireth Research Semantic Library. Multi-objective optimisation studies problems containing two or more competing objectives that cannot generally be minimised or maximised simultaneously by a single solution. This ontology supports Pareto optimality, dominance, Pareto fronts, efficient solutions, scalarisation, weighted sums, epsilon-constraint methods, achievement scalarising functions, lexicographic optimisation, reference-point methods, compromise programming, evolutionary multi-objective algorithms, diversity, preference articulation, knee points, hypervolume, convergence, decision making and relationships with optimisation, convex analysis, operations research and decision theory.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Multi-Objective Optimisation Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Optimisation / Multi-Objective Optimisation"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/optimisation/multi-objective-optimisation-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = MultiObjectiveOptimisation
 SYMBOLIC_FORMS = [
  "min_x [f_1(x),f_2(x),...,f_m(x)]",
  "x* is Pareto optimal",
  "F(x)=(f_1(x),...,f_m(x))"
 ]
 ENTITY_CLASS = MultipleCriteriaOptimisationFramework
 PRIMARY_CONTEXT = Optimisation
 DEFINITION = "Multi-objective optimisation is the optimisation of two or more objective functions over a common feasible set, typically producing a set of trade-off solutions rather than one universally best solution."
 SEMANTIC_ROLE = "Provides the machine-readable framework for multiple objectives, dominance, Pareto efficiency, trade-off surfaces, scalarisation, preference models, diversity, quality indicators and decision support."
}

SCOPE {
 INCLUDE = [
  MultiObjectiveOptimisation,
  MultiCriteriaOptimisation,
  VectorOptimisation,
  ObjectiveVector,
  MultipleObjectiveFunctions,
  FeasibleSet,
  Dominance,
  WeakDominance,
  StrictDominance,
  ParetoDominance,
  ParetoOptimality,
  ParetoOptimalSolution,
  ParetoSet,
  ParetoFront,
  EfficientSolution,
  WeaklyEfficientSolution,
  SupportedSolution,
  UnsupportedSolution,
  TradeOff,
  ConflictBetweenObjectives,
  UtopiaPoint,
  IdealPoint,
  NadirPoint,
  ReferencePoint,
  KneePoint,
  Scalarisation,
  WeightedSumMethod,
  EpsilonConstraintMethod,
  WeightedChebyshevMethod,
  AchievementScalarisingFunction,
  GoalProgramming,
  LexicographicOptimisation,
  CompromiseProgramming,
  PreferenceArticulation,
  AProriPreference,
  InteractivePreference,
  APosterioriPreference,
  EvolutionaryMultiObjectiveOptimisation,
  NSGAII,
  SPEA2,
  MOEAD,
  DiversityPreservation,
  CrowdingDistance,
  Hypervolume,
  GenerationalDistance,
  SpreadMetric,
  ConvergenceToParetoFront
 ]

 EXCLUDE_AS_PRIMARY = [
  SingleObjectiveOptimisation,
  MulticlassPredictionWithoutOptimisationGoal,
  MultiAttributeDecisionMakingWithoutSearchOrOptimisation,
  WeightedObjectiveModelWithoutExplicitMultipleCriteriaInterpretation
 ]

 DISAMBIGUATION_RULE =
  "When two or more objectives are optimised simultaneously and trade-offs between them matter, interpret the problem as multi-objective optimisation."
}

CORE_CONCEPTS {

 MultiObjectiveOptimisation {
  definition = "Optimisation involving multiple potentially conflicting objective functions."
 }

 ObjectiveVector {
  definition = "The vector of objective values associated with a feasible decision."
 }

 ParetoDominance {
  definition = "A relation in which one feasible solution is no worse in every objective and strictly better in at least one objective."
 }

 ParetoOptimality {
  definition = "The property of a feasible solution that is not Pareto-dominated by any other feasible solution."
 }

 ParetoSet {
  definition = "The set of Pareto-optimal decision-variable solutions."
 }

 ParetoFront {
  definition = "The image of the Pareto set in objective space."
 }

 TradeOff {
  definition = "A compromise in which improving one objective worsens another."
 }

 IdealPoint {
  definition = "A vector composed of the individually best achievable value for each objective."
 }

 NadirPoint {
  definition = "A vector representing the worst objective values among Pareto-optimal solutions, under a declared convention."
 }

 KneePoint {
  definition = "A Pareto-front region where small improvement in one objective causes relatively large deterioration in others."
 }

 Scalarisation {
  definition = "Transformation of a multi-objective problem into one or more scalar optimisation problems."
 }
}

RELATIONS {
 MultiObjectiveOptimisation --is_special_case_of--> Optimisation
 MultiObjectiveOptimisation --has--> ObjectiveVector
 ObjectiveVector --contains--> ObjectiveFunction
 ParetoOptimalSolution --is_element_of--> ParetoSet
 ParetoSet --maps_to--> ParetoFront
 ParetoDominance --defines--> ParetoOptimality
 EfficientSolution --is_equivalent_to--> ParetoOptimalSolution
 TradeOff --occurs_between--> ObjectiveFunction
 WeightedSumMethod --is_type_of--> Scalarisation
 EpsilonConstraintMethod --is_type_of--> Scalarisation
 AchievementScalarisingFunction --is_type_of--> Scalarisation
 LexicographicOptimisation --uses--> ObjectivePriority
 GoalProgramming --uses--> TargetValue
 PreferenceArticulation --guides--> SolutionSelection
 NSGAII --is_type_of--> EvolutionaryMultiObjectiveOptimisation
 CrowdingDistance --supports--> DiversityPreservation
 Hypervolume --measures--> ParetoApproximationQuality
}

OPERATORS {
 OBJECTIVE_VECTOR(x) :=
  [f_1(x),f_2(x),...,f_m(x)]

 PARETO_DOMINATES(x,y) :=
  forall_i f_i(x)<=f_i(y)
  AND exists_j f_j(x)<f_j(y)
  for minimisation convention

 WEAKLY_DOMINATES(x,y) :=
  forall_i f_i(x)<=f_i(y)

 PARETO_OPTIMAL(x,F) :=
  feasible(x)
  AND NOT exists y in F such_that PARETO_DOMINATES(y,x)

 WEIGHTED_SUM(x,w) :=
  sum_i w_i*f_i(x)
  with w_i>=0

 EPSILON_CONSTRAINT(primary_objective,other_objectives,epsilon) :=
  optimise primary_objective
  subject_to f_i(x)<=epsilon_i

 WEIGHTED_CHEBYSHEV(x,w,z_ref) :=
  max_i w_i*abs(f_i(x)-z_ref_i)

 ACHIEVEMENT_SCALARISING(x,w,z_ref,rho) :=
  max_i w_i*(f_i(x)-z_ref_i)
  + rho*sum_i w_i*(f_i(x)-z_ref_i)

 HYPERVOLUME(P,r) :=
  measure_of_region_dominated_by_P_and_bounded_by_reference_point_r

 CROWDING_DISTANCE(point,neighbours) :=
  objective_space_density_estimate

 GENERATIONAL_DISTANCE(P,reference_front) :=
  aggregate_distance_from_approximation_to_reference_front
}

DEFINITIONS {
 D1 = "Multi-objective optimisation usually has no single solution that is best in every objective."
 D2 = "Pareto-optimal solutions represent nondominated trade-offs."
 D3 = "The Pareto set lives in decision space; the Pareto front lives in objective space."
 D4 = "Weighted-sum scalarisation may fail to recover unsupported Pareto points in nonconvex objective spaces."
 D5 = "Epsilon-constraint methods can recover unsupported efficient points."
 D6 = "Preference information may be supplied before, during or after optimisation."
 D7 = "Diversity and convergence are separate goals in Pareto-front approximation."
 D8 = "Hypervolume captures both convergence and spread relative to a reference point."
 D9 = "Knee points can represent high-value compromise solutions."
 D10 = "Objective scaling strongly affects scalarisation and distance-based methods."
}

AXIOMS {
 A1_MULTIPLE_OBJECTIVES:
  MultiObjectiveOptimisation has at least two objectives

 A2_COMMON_FEASIBILITY:
  All objective evaluations refer to a common feasible decision set

 A3_DOMINANCE:
  Pareto dominance compares objective vectors componentwise under a declared direction convention

 A4_NONDOMINATION:
  Pareto-optimal solutions are feasible and undominated

 A5_TRADEOFF:
  Distinct Pareto-optimal solutions may encode different objective trade-offs

 A6_SCALARISATION:
  Scalarisation maps multiple objectives into a single optimisation criterion under declared parameters

 A7_PREFERENCE:
  Selecting one final solution from a Pareto set requires preference, policy or external decision criteria

 A8_QUALITY:
  Approximate Pareto sets should be assessed for both convergence and diversity
}

REASONING {

 R1_MULTI_OBJECTIVE_IDENTIFICATION {
  INPUT = optimisation_problem
  COUNT = objective_functions
  IF count>=2
   RETURN = MultiObjectiveOptimisation
  ELSE
   RETURN = SingleObjectiveOptimisation
 }

 R2_OBJECTIVE_DIRECTION_NORMALISATION {
  INPUT = objectives_with_min_or_max directions
  CONVERT = all_to_common minimisation_or_maximisation convention
  RETURN = normalised_objective_vector
 }

 R3_DOMINANCE_ANALYSIS {
  INPUT = candidate_set
  FOR each_pair(x,y)
   CHECK = Pareto_dominance
  RETURN = dominated_and_nondominated partitions
 }

 R4_PARETO_FRONT_CONSTRUCTION {
  INPUT = feasible_candidate_set
  REMOVE = dominated solutions
  MAP = nondominated_decisions_to_objective space
  RETURN = Pareto_set_and_front
 }

 R5_WEIGHTED_SUM_SCALARISATION {
  INPUT = objectives_weights
  NORMALISE = objectives_if_required
  SOLVE = scalar weighted_sum problem
  RETURN = supported_Pareto_candidate
 }

 R6_EPSILON_CONSTRAINT_REASONING {
  INPUT = primary_objective_other_objectives_epsilon values
  FORM = constrained_scalar problem
  SOLVE = scalar optimisation
  RETURN = efficient_candidate
 }

 R7_REFERENCE_POINT_REASONING {
  INPUT = aspiration_or_reference point
  FORM = achievement_scalarising_or_Chebyshev criterion
  SOLVE = scalarised problem
  RETURN = preference-guided candidate
 }

 R8_EVOLUTIONARY_MULTI_OBJECTIVE {
  INPUT = population
  EVALUATE = objective_vectors
  RANK = nondomination_levels
  PRESERVE = diversity
  SELECT_MUTATE_RECOMBINE = new_population
  RETURN = Pareto_approximation
 }

 R9_QUALITY_ASSESSMENT {
  INPUT = approximate_front
  COMPUTE = hypervolume_spread_generational_distance_or_other indicators
  RETURN = front_quality_profile
 }

 R10_FINAL_DECISION_SELECTION {
  INPUT = Pareto_front_and_preferences
  APPLY = weighting_reference_point_knee_point_lexicographic_or_decision rule
  RETURN = selected_compromise_solution
 }
}

CONSTRAINTS {
 C1 = "Objective directions must be normalised or explicitly tracked."
 C2 = "Dominance comparisons require compatible objective meanings and directions."
 C3 = "Weighted sums are sensitive to objective scaling."
 C4 = "Weighted sums may miss unsupported Pareto points."
 C5 = "Hypervolume requires a valid reference point."
 C6 = "Approximate nondomination does not prove exact Pareto optimality."
 C7 = "Evolutionary algorithms provide approximate, not automatically certified, fronts."
 C8 = "Preference parameters must be disclosed."
 C9 = "A Pareto front does not determine the final decision without external preference information."
 C10 = "High-dimensional objective spaces can make dominance and visual interpretation difficult."
}

SEMANTIC_EQUIVALENCE {
 "MultiObjectiveOptimisation" <=> "MultiCriteriaOptimisation"
 "VectorOptimisation" <=> "MultiObjectiveOptimisation"
 "ParetoOptimality" <=> "NondominatedOptimality"
 "ParetoSet" <=> "SetOfNondominatedDecisionSolutions"
 "ParetoFront" <=> "ObjectiveSpaceImageOfParetoSet"
 "Scalarisation" <=> "MultipleObjectiveToSingleCriterionTransformation"
}

VALIDATION {
 V1 = "At least two objectives are identified."
 V2 = "Objective directions are explicit."
 V3 = "All solutions satisfy common feasibility constraints."
 V4 = "Dominance logic uses consistent direction conventions."
 V5 = "Objective scaling is considered."
 V6 = "Scalarisation parameters are explicit."
 V7 = "Approximate fronts are checked for convergence and diversity."
 V8 = "Hypervolume reference point is valid."
 V9 = "Final selection preferences are disclosed."
 V10 = "Exact-versus-approximate Pareto status is distinguished."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 MULTI_OBJECTIVE_DEFINITION = 0.99
 DOMINANCE_REASONING = 0.99
 PARETO_FRONT_REASONING = 0.99
 WEIGHTED_SUM_REASONING = 0.98
 EPSILON_CONSTRAINT_REASONING = 0.98
 REFERENCE_POINT_REASONING = 0.98
 EVOLUTIONARY_REASONING = 0.96
 QUALITY_METRIC_REASONING = 0.97

 POLICY =
  "Reduce confidence when objective directions, scaling, feasible-set definition, scalarisation parameters, preference model, reference point or approximation quality evidence are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  MultiObjectiveOptimisationReasoning,
  ParetoDominanceReasoning,
  ParetoSetReasoning,
  ParetoFrontReasoning,
  WeightedSumReasoning,
  EpsilonConstraintReasoning,
  ReferencePointReasoning,
  GoalProgrammingReasoning,
  LexicographicOptimisationReasoning,
  EvolutionaryMultiObjectiveReasoning,
  DiversityReasoning,
  HypervolumeReasoning,
  KneePointReasoning,
  PreferenceArticulation,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "multi-objective optimisation" -> MultiObjectiveOptimisation
  "multiobjective optimisation" -> MultiObjectiveOptimisation
  "multi-criteria optimisation" -> MultiObjectiveOptimisation
  "vector optimisation" -> MultiObjectiveOptimisation
  "Pareto optimal" -> ParetoOptimality
  "Pareto front" -> ParetoFront
  "Pareto set" -> ParetoSet
  "nondominated solution" -> ParetoOptimalSolution
  "weighted sum" -> WeightedSumMethod
  "epsilon-constraint" -> EpsilonConstraintMethod
 }

 INTERPRETATION_ORDER = [
  detect_multi_objective_context,
  identify objectives_directions_constraints_domains_and_preferences,
  normalise objective directions_and_scales,
  classify exact_scalarised_evolutionary_or_reference_point solution pathway,
  compute candidate_solutions,
  evaluate dominance_and_construct Pareto set/front,
  assess convergence_diversity_and_quality indicators,
  apply preference_information_if_final_selection required,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("multi-objective optimisation")
  OR two_or_more_competing_objectives_present
  THEN activate(MultiObjectiveOptimisationOntology)

 E2:
  IF objectives_have_mixed_min_max directions
  THEN normalise_or_preserve direction metadata explicitly

 E3:
  IF weighted_sum_used
  THEN normalise scales_when_needed_and_note supported_solution limitation

 E4:
  IF unsupported_Pareto_points_may_matter
  THEN consider epsilon_constraint_or_reference_point methods

 E5:
  IF evolutionary_method_used
  THEN assess both nondomination_and diversity

 E6:
  IF Pareto_front_approximate
  THEN avoid claiming exact Pareto completeness

 E7:
  IF final_single_solution_requested
  THEN require or infer declared preference rule

 E8:
  IF knee_point_requested
  THEN analyse local tradeoff curvature_or_loss ratios

 E9:
  IF hypervolume_used
  THEN verify reference_point_worse_than_relevant objective vectors
}

RECURSION {
 ENTRY = MultiObjectiveOptimisation

 EXPAND(MultiObjectiveOptimisation) -> [
  MultiCriteriaOptimisation,
  VectorOptimisation,
  ObjectiveVector,
  MultipleObjectiveFunctions,
  FeasibleSet,
  Dominance,
  WeakDominance,
  StrictDominance,
  ParetoDominance,
  ParetoOptimality,
  ParetoOptimalSolution,
  ParetoSet,
  ParetoFront,
  EfficientSolution,
  WeaklyEfficientSolution,
  SupportedSolution,
  UnsupportedSolution,
  TradeOff,
  ConflictBetweenObjectives,
  UtopiaPoint,
  IdealPoint,
  NadirPoint,
  ReferencePoint,
  KneePoint,
  Scalarisation,
  WeightedSumMethod,
  EpsilonConstraintMethod,
  WeightedChebyshevMethod,
  AchievementScalarisingFunction,
  GoalProgramming,
  LexicographicOptimisation,
  CompromiseProgramming,
  PreferenceArticulation,
  EvolutionaryMultiObjectiveOptimisation,
  NSGAII,
  SPEA2,
  MOEAD,
  DiversityPreservation,
  CrowdingDistance,
  Hypervolume,
  GenerationalDistance,
  SpreadMetric
 ]

 EXPAND(ParetoStructure) -> [
  Dominance,
  ParetoOptimality,
  ParetoSet,
  ParetoFront,
  SupportedSolution,
  UnsupportedSolution,
  KneePoint
 ]

 EXPAND(ScalarisationMethods) -> [
  WeightedSumMethod,
  EpsilonConstraintMethod,
  WeightedChebyshevMethod,
  AchievementScalarisingFunction,
  GoalProgramming,
  LexicographicOptimisation,
  CompromiseProgramming
 ]

 EXPAND(EvolutionaryMethods) -> [
  NSGAII,
  SPEA2,
  MOEAD,
  NondominatedSorting,
  CrowdingDistance,
  DiversityPreservation
 ]

 STOP_CONDITION =
  "Stop when the objective vector, feasible set, dominance relation, Pareto set or front, scalarisation or evolutionary method, approximation quality and preference-based final selection are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Optimisation"

 IMMEDIATE_CONTEXTS = [
  "Optimisation Ontology",
  "Convex Optimisation Ontology",
  "Operations Research Ontologies",
  "Decision Theory Ontologies"
 ]

 RELATED_ONTOLOGIES = [
  "Optimisation Ontology",
  "Optimisation",
  "Convex Optimisation Ontology",
  "Nonlinear Optimisation Ontology",
  "Integer Programming Ontology",
  "Operations Research Ontologies",
  "Decision Theory Ontologies",
  "Game Theory Ontologies",
  "Evolutionary Computation Ontologies",
  "Probability & Statistics Ontologies",
  "Numerical Analysis Ontologies",
  "Scientific Computing Ontologies"
 ]

 ROUTE_RULES = [
  "Multi-Objective Optimisation -> Optimisation Ontology for formal optimisation semantics",
  "Multi-Objective Optimisation -> Convex Optimisation when objectives and feasible sets are convex",
  "Multi-Objective Optimisation -> Nonlinear Optimisation for nonlinear scalarised subproblems",
  "Multi-Objective Optimisation -> Integer Programming for discrete multi-criteria decisions",
  "Multi-Objective Optimisation -> Operations Research for planning and resource tradeoffs",
  "Multi-Objective Optimisation -> Decision Theory for preference articulation and final selection",
  "Multi-Objective Optimisation -> Game Theory for strategic multi-criteria structures",
  "Multi-Objective Optimisation -> Evolutionary Computation for population-based Pareto approximation",
  "Multi-Objective Optimisation -> Numerical Analysis for solver convergence and quality metrics",
  "Multi-Objective Optimisation -> Scientific Computing for large Pareto-search workloads"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible scalarisation methods, Pareto metrics or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve multiple-objective semantics.",
  "Preserve Pareto-dominance semantics.",
  "Preserve Pareto-set versus Pareto-front distinction.",
  "Preserve exact-versus-approximate frontier distinction.",
  "Preserve scalarisation parameter semantics.",
  "Preserve preference-articulation semantics.",
  "Preserve convergence-versus-diversity distinction.",
  "Preserve machine-readable multi-objective optimisation semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Multi-objective optimisation seeks trade-off solutions for two or more objective functions over a common feasible set."

 DOMINANCE_SUMMARY =
  "A solution Pareto-dominates another if it is no worse in every objective and strictly better in at least one."

 PARETO_SUMMARY =
  "Pareto-optimal solutions are feasible solutions not dominated by any other feasible solution."

 FRONT_SUMMARY =
  "The Pareto front is the objective-space image of the Pareto-optimal decision set."

 SCALARISATION_SUMMARY =
  "Scalarisation converts multiple objectives into scalar optimisation problems using weights, constraints, goals or reference points."

 EVOLUTIONARY_SUMMARY =
  "Evolutionary multi-objective algorithms approximate Pareto fronts using population search, nondominated sorting and diversity preservation."

 QUALITY_SUMMARY =
  "Pareto-front approximations should be judged for both convergence to the true front and coverage or diversity."

 PREFERENCE_SUMMARY =
  "Selecting one final compromise from the Pareto set requires preference information or an external decision rule."

 CERTIFICATION_SUMMARY =
  "Exact Pareto optimality and approximate nondomination should be reported separately."
}

FLOW {
 INPUT
 -> detect_multi_objective_optimisation_context
 -> identify objective_functions_directions_decision_variables_domains_constraints_and_preference information
 -> normalise objective directions_and_scales
 -> classify convex_nonconvex_continuous_discrete_deterministic_or_stochastic multiobjective structure
 -> choose weighted_sum_epsilon_constraint_reference_point_goal_lexicographic_evolutionary_or_other pathway
 -> solve or sample candidate_solutions
 -> compute objective_vectors
 -> evaluate dominance
 -> construct Pareto_set_and_Pareto_front approximation
 -> assess supported_unsupported_solutions_knee_points_convergence_diversity_and_quality metrics
 -> apply preference_articulation_for_final_selection if required
 -> route to optimisation_ontology convex_optimisation nonlinear_optimisation integer_programming operations_research decision_theory game_theory evolutionary_computation numerical_analysis_or_scientific_computing ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Multi-Objective Optimisation Ontology defines optimisation with multiple competing objectives. It supports objective vectors, Pareto dominance, weak and strict dominance, Pareto-optimal sets and fronts, supported and unsupported solutions, ideal and nadir points, knee points, weighted-sum, epsilon-constraint, Chebyshev, achievement-scalarising, goal and lexicographic methods, evolutionary algorithms such as NSGA-II, SPEA2 and MOEA/D, diversity preservation, hypervolume, generational distance, preference articulation and trade-off-based decision support."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-MULTI-OBJECTIVE-OPTIMISATION-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ