AI INTERPRETATION NOTE
This Flow Algebra defines the Optimisation Ontology within the Kireth Research Semantic Library. It formalises optimisation as a machine-readable ontology of objectives, decision variables, feasible sets, constraints, optimality conditions, local and global solutions, convexity, duality, numerical methods, uncertainty, sensitivity and solution certification. It sits beneath the Optimisation parent layer and provides a structured reasoning framework for representing, classifying, solving and validating optimisation problems across continuous, discrete, stochastic and multiobjective settings.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Optimisation Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Applied Mathematics"
SPECIALISATION = "Optimisation / Core Optimisation Ontology"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/optimisation/optimisation-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = OptimisationOntology
ENTITY_CLASS = FormalOptimisationProblemOntology
PRIMARY_CONTEXT = Optimisation
DEFINITION = "The Optimisation Ontology is a formal semantic framework for representing optimisation problems, objectives, decision variables, feasible sets, constraints, optimality conditions, algorithms, duality, uncertainty and solution status."
SEMANTIC_ROLE = "Provides machine-readable entities and reasoning relations for formulating, classifying, solving, checking and interpreting optimisation problems."
}
SCOPE {
INCLUDE = [
OptimisationOntology,
OptimisationProblem,
ObjectiveFunction,
DecisionVariable,
Parameter,
FeasibleSet,
Constraint,
EqualityConstraint,
InequalityConstraint,
BoundConstraint,
IntegralityConstraint,
UnconstrainedOptimisation,
ConstrainedOptimisation,
ContinuousOptimisation,
DiscreteOptimisation,
ConvexOptimisation,
NonconvexOptimisation,
LinearProgramming,
QuadraticProgramming,
NonlinearProgramming,
IntegerProgramming,
MixedIntegerProgramming,
MultiobjectiveOptimisation,
StochasticOptimisation,
RobustOptimisation,
DynamicOptimisation,
OptimalControl,
LocalOptimum,
GlobalOptimum,
StationaryPoint,
SaddlePoint,
Gradient,
Hessian,
LagrangeMultiplier,
KarushKuhnTuckerConditions,
ConstraintQualification,
PrimalProblem,
DualProblem,
StrongDuality,
WeakDuality,
OptimalityGap,
SensitivityAnalysis,
SolverStatus
]
EXCLUDE_AS_PRIMARY = [
RootFindingWithoutObjective,
EquationSolvingWithoutOptimisationSemantics,
GenericDecisionMakingWithoutFormalObjective,
StatisticalEstimationWithoutExplicitOptimisationInterpretation
]
DISAMBIGUATION_RULE =
"When a formal problem seeks the best feasible values of one or more decision variables under an objective function and optional constraints, interpret the context through the Optimisation Ontology."
}
CORE_CONCEPTS {
OptimisationOntology {
definition = "The ontology organising the formal entities and relations of optimisation."
}
OptimisationProblem {
definition = "A formal problem consisting of decision variables, an objective and an admissible or feasible domain."
}
ObjectiveFunction {
definition = "A function assigning a scalar or ordered performance value to candidate solutions."
}
DecisionVariable {
definition = "A quantity whose value is chosen by the optimisation process."
}
FeasibleSet {
definition = "The set of candidate solutions satisfying all declared constraints and domain restrictions."
}
Constraint {
definition = "A condition restricting admissible decision-variable values."
}
LocalOptimum {
definition = "A feasible solution that is optimal within a neighbourhood."
}
GlobalOptimum {
definition = "A feasible solution that is optimal over the entire feasible set."
}
StationaryPoint {
definition = "A point satisfying first-order stationarity conditions in an appropriate differentiable context."
}
LagrangeMultiplier {
definition = "A dual variable associated with a constraint in a Lagrangian formulation."
}
KarushKuhnTuckerConditions {
definition = "First-order constrained optimality conditions combining primal feasibility, dual feasibility, complementary slackness and stationarity."
}
DualProblem {
definition = "An optimisation problem derived from the primal problem whose value bounds or characterises the primal optimum."
}
OptimalityGap {
definition = "A quantitative difference between a candidate objective value and a valid optimal bound."
}
}
RELATIONS {
OptimisationOntology --is_child_of--> Optimisation
OptimisationProblem --has--> ObjectiveFunction
OptimisationProblem --has--> DecisionVariable
OptimisationProblem --may_have--> Constraint
Constraint --defines--> FeasibleSet
LocalOptimum --is_solution_candidate_of--> OptimisationProblem
GlobalOptimum --is_optimal_solution_of--> OptimisationProblem
StationaryPoint --may_be_candidate_for--> LocalOptimum
ConvexOptimisation --is_special_case_of--> OptimisationProblem
NonconvexOptimisation --is_special_case_of--> OptimisationProblem
LinearProgramming --is_special_case_of--> ConvexOptimisation
QuadraticProgramming --may_be_special_case_of--> ConvexOptimisation
IntegerProgramming --is_special_case_of--> DiscreteOptimisation
MixedIntegerProgramming --combines--> ContinuousAndDiscreteVariables
MultiobjectiveOptimisation --has_multiple--> ObjectiveFunction
LagrangeMultiplier --is_associated_with--> Constraint
KarushKuhnTuckerConditions --characterise--> ConstrainedOptimality
PrimalProblem --has_associated--> DualProblem
WeakDuality --relates--> PrimalAndDualObjectiveValues
StrongDuality --equates--> OptimalPrimalAndDualValues
SensitivityAnalysis --uses--> LagrangeMultiplier
}
OPERATORS {
FORM_PROBLEM(objective,variables,constraints,domains) :=
formal_optimisation_problem
CHECK_FEASIBILITY(x,constraints,domains) :=
all_constraints_and_domains_satisfied
EVALUATE_OBJECTIVE(f,x) :=
f(x)
FIRST_ORDER_STATIONARITY(f,x) :=
grad f(x)=0
for unconstrained differentiable problems
HESSIAN_CLASSIFICATION(H) :=
positive_definite_negative_definite_indefinite_or_semidefinite
LAGRANGIAN(f,g,h,lambda,nu) :=
f(x)+sum_i lambda_i*g_i(x)+sum_j nu_j*h_j(x)
KKT_SYSTEM(f,g,h,x,lambda,nu) :=
stationarity
AND primal_feasibility
AND dual_feasibility
AND complementary_slackness
DUAL_FUNCTION(lambda,nu) :=
inf_x L(x,lambda,nu)
OPTIMALITY_GAP(primal_value,dual_bound) :=
primal_value-dual_bound
for minimisation under consistent conventions
PARETO_DOMINATES(x,y) :=
x_no_worse_than_y_in_all_objectives
AND x_strictly_better_in_at_least_one
SENSITIVITY(value,parameter) :=
local_change_in_optimum_or_solution_under_parameter perturbation
}
DEFINITIONS {
D1 = "Optimisation problems are defined by objectives, variables, domains and constraints."
D2 = "Feasibility precedes optimality."
D3 = "A stationary point is not necessarily an optimum."
D4 = "Local and global optimality are distinct."
D5 = "Convex structure can convert local optimality into global optimality."
D6 = "KKT conditions require suitable regularity assumptions for their strongest interpretations."
D7 = "Dual problems provide bounds and sensitivity interpretation."
D8 = "Integer variables create discrete feasible structures."
D9 = "Multiobjective problems may yield sets of nondominated solutions."
D10 = "Solver convergence and mathematical optimality are distinct."
}
AXIOMS {
A1_OBJECTIVE_EXISTENCE:
Every OptimisationProblem has at least one objective
A2_DECISION_VARIABLES:
Every OptimisationProblem acts over one or more decision variables
A3_FEASIBILITY:
A candidate is feasible iff it satisfies all constraints and domain restrictions
A4_OPTIMALITY_RELATIVITY:
Optimality is defined relative to a feasible set and objective ordering
A5_LOCAL_GLOBAL_DISTINCTION:
Local optimality does not imply global optimality without additional structure
A6_CONVEXITY:
In convex minimisation every local optimum is global
A7_WEAK_DUALITY:
Feasible dual solutions provide valid bounds on primal objective values under standard primal-dual conventions
A8_CONSTRAINT_QUALIFICATION:
Strong first-order constrained optimality statements may require a constraint qualification
}
REASONING {
R1_ENTITY_EXTRACTION {
INPUT = optimisation_description
IDENTIFY = objective
IDENTIFY = decision_variables
IDENTIFY = domains
IDENTIFY = constraints
IDENTIFY = uncertainty_or_multiple_objectives
RETURN = structured_optimisation_entities
}
R2_PROBLEM_CLASSIFICATION {
INPUT = structured_problem
CLASSIFY = unconstrained_or_constrained
CLASSIFY = continuous_or_discrete
CLASSIFY = convex_or_nonconvex
CLASSIFY = linear_quadratic_or_nonlinear
CLASSIFY = deterministic_stochastic_robust_or_multiobjective
RETURN = optimisation_class
}
R3_FEASIBILITY_REASONING {
INPUT = candidate_solution
CHECK = bounds
CHECK = equality_constraints
CHECK = inequality_constraints
CHECK = integrality
RETURN = feasibility_status
}
R4_FIRST_ORDER_OPTIMALITY {
INPUT = differentiable_problem_and_candidate
IF unconstrained
CHECK = gradient_zero
ELSE
FORM = Lagrangian
CHECK = KKT_conditions
RETURN = first_order_status
}
R5_SECOND_ORDER_OPTIMALITY {
INPUT = candidate_and_Hessian_information
ANALYSE = objective_or_Lagrangian curvature
RESTRICT = feasible_or_tangent directions_when_constrained
RETURN = minimum_maximum_saddle_or_inconclusive
}
R6_CONVEXITY_REASONING {
INPUT = objective_and_constraints
TEST = convex_objective_and_convex_feasible_set
IF convex
PROMOTE = suitable_local_optimum_to_global
RETURN = convexity_profile
}
R7_DUALITY_REASONING {
INPUT = primal_problem
FORM = Lagrangian
DERIVE = dual_function
DERIVE = dual_problem
COMPUTE = dual_bound
RETURN = duality_profile
}
R8_SOLVER_SELECTION {
INPUT = optimisation_class
IF smooth_unconstrained
CONSIDER = gradient_Newton_quasiNewton_trustRegion
IF constrained_smooth
CONSIDER = interiorPoint_SQP_augmentedLagrangian
IF linear
CONSIDER = simplex_or_interiorPoint
IF integer_or_mixed_integer
CONSIDER = branchAndBound_branchAndCut
IF stochastic
CONSIDER = stochastic_gradient_sampleAverage_or_robust methods
RETURN = solver_strategy
}
R9_MULTIObjective_REASONING {
INPUT = objectives_and_preferences
IDENTIFY = dominance_relations
COMPUTE = Pareto_candidates
RETURN = Pareto_front_or_selected compromise
}
R10_SOLUTION_CERTIFICATION {
INPUT = candidate_solver_status_bounds_and_optimality conditions
CHECK = feasibility
CHECK = stationarity_or_KKT
CHECK = convexity_or_global bound
CHECK = optimality_gap
RETURN = local_global_approximate_infeasible_or_uncertain status
}
}
CONSTRAINTS {
C1 = "Objective direction must be explicit."
C2 = "Decision variables and parameters must be distinguished."
C3 = "Feasibility must be checked before optimality."
C4 = "Stationarity alone does not establish optimality."
C5 = "Second-order tests require appropriate curvature information."
C6 = "KKT conditions may require constraint qualifications."
C7 = "Strong duality is not universal."
C8 = "Integer constraints alter both theory and solver choice."
C9 = "Numerical tolerances affect reported feasibility and optimality."
C10 = "Global optimality claims for nonconvex problems require valid certification."
}
SEMANTIC_EQUIVALENCE {
"OptimisationOntology" <=> "FormalMathematicalOptimisationOntology"
"OptimizationOntology" <=> "OptimisationOntology"
"ObjectiveFunction" <=> "OptimisationCriterion"
"DecisionVariable" <=> "ChoiceVariable"
"FeasibleSet" <=> "ConstraintSatisfyingDomain"
"KKTConditions" <=> "KarushKuhnTuckerConditions"
"OptimalityGap" <=> "DistanceFromCertifiedOptimalBound"
}
VALIDATION {
V1 = "Objective direction and function are defined."
V2 = "Decision-variable domains are defined."
V3 = "Constraints are complete."
V4 = "Candidate feasibility is checked."
V5 = "Convexity classification is justified."
V6 = "Optimality conditions match the problem class."
V7 = "Constraint qualifications are considered."
V8 = "Dual bounds use consistent conventions."
V9 = "Solver tolerances are reported."
V10 = "Local, global and approximate statuses are distinguished."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
OPTIMISATION_ONTOLOGY_DEFINITION = 0.99
ENTITY_EXTRACTION_REASONING = 0.99
PROBLEM_CLASSIFICATION_REASONING = 0.99
FEASIBILITY_REASONING = 0.99
FIRST_ORDER_REASONING = 0.98
SECOND_ORDER_REASONING = 0.98
CONVEXITY_REASONING = 0.99
DUALITY_REASONING = 0.98
SOLUTION_CERTIFICATION_REASONING = 0.98
POLICY =
"Reduce confidence when objective, domains, constraints, differentiability, convexity, constraint qualifications, solver tolerances, uncertainty model or global-optimality evidence are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
OptimisationOntologyReasoning,
OptimisationProblemExtraction,
FeasibilityChecking,
ConvexityReasoning,
FirstOrderOptimalityReasoning,
SecondOrderOptimalityReasoning,
KKTReasoning,
DualityReasoning,
SolverSelection,
IntegerOptimisationReasoning,
MultiobjectiveReasoning,
StochasticOptimisationReasoning,
RobustOptimisationReasoning,
OptimalityCertification,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"optimisation ontology" -> OptimisationOntology
"optimization ontology" -> OptimisationOntology
"optimisation problem" -> OptimisationProblem
"objective function" -> ObjectiveFunction
"decision variable" -> DecisionVariable
"constraint" -> Constraint WHEN optimisation_context
"feasible set" -> FeasibleSet
"stationary point" -> StationaryPoint
"KKT" -> KarushKuhnTuckerConditions
"dual problem" -> DualProblem
"optimality gap" -> OptimalityGap
}
INTERPRETATION_ORDER = [
detect_optimisation_ontology_context,
extract objective_decision_variables_domains_constraints_uncertainty_and_preferences,
classify optimisation_problem,
test feasibility,
analyse convexity_and_optimality conditions,
select compatible solver_or_reasoning pathway,
evaluate candidate_solution,
assess duality_optimality_gap_and_sensitivity,
certify local_global_approximate_or_infeasible status,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("optimisation ontology")
OR formal_objective_constraint_decision_variable semantics
THEN activate(OptimisationOntology)
E2:
IF candidate_solution_supplied
THEN test feasibility_before optimality
E3:
IF smooth_unconstrained_problem
THEN inspect gradient_and_Hessian
E4:
IF constrained_differentiable_problem
THEN inspect constraint_qualifications_and_KKT conditions
E5:
IF convex_problem
THEN exploit global_optimality implications
E6:
IF integer_or_mixed_integer variables
THEN route to discrete optimisation semantics
E7:
IF multiple_objectives
THEN use Pareto dominance_or_declared preference model
E8:
IF dual_bound_available
THEN compute optimality_gap
E9:
IF solver_reports_success_without_certificate
THEN preserve approximate_or_local status unless stronger evidence exists
}
RECURSION {
ENTRY = OptimisationOntology
EXPAND(OptimisationOntology) -> [
OptimisationProblem,
ObjectiveFunction,
DecisionVariable,
Parameter,
FeasibleSet,
Constraint,
EqualityConstraint,
InequalityConstraint,
BoundConstraint,
IntegralityConstraint,
UnconstrainedOptimisation,
ConstrainedOptimisation,
ContinuousOptimisation,
DiscreteOptimisation,
ConvexOptimisation,
NonconvexOptimisation,
LinearProgramming,
QuadraticProgramming,
NonlinearProgramming,
IntegerProgramming,
MixedIntegerProgramming,
MultiobjectiveOptimisation,
StochasticOptimisation,
RobustOptimisation,
DynamicOptimisation,
OptimalControl,
LocalOptimum,
GlobalOptimum,
StationaryPoint,
SaddlePoint,
Gradient,
Hessian,
LagrangeMultiplier,
KarushKuhnTuckerConditions,
ConstraintQualification,
PrimalProblem,
DualProblem,
OptimalityGap,
SensitivityAnalysis,
SolverStatus
]
EXPAND(OptimalityStructure) -> [
FirstOrderNecessaryCondition,
SecondOrderNecessaryCondition,
SecondOrderSufficientCondition,
Stationarity,
LagrangeMultiplier,
KarushKuhnTuckerConditions,
ComplementarySlackness,
ConstraintQualification
]
EXPAND(ProblemFamilies) -> [
LinearProgramming,
QuadraticProgramming,
NonlinearProgramming,
IntegerProgramming,
MixedIntegerProgramming,
ConvexOptimisation,
NonconvexOptimisation,
StochasticOptimisation,
RobustOptimisation,
MultiobjectiveOptimisation
]
EXPAND(SolutionStatus) -> [
FeasibleSolution,
InfeasibleSolution,
LocalOptimum,
GlobalOptimum,
ApproximateOptimum,
StationaryPoint,
SaddlePoint,
SolverFailure
]
STOP_CONDITION =
"Stop when the objective, variables, constraints, feasible set, problem class, optimality conditions, solver pathway, duality, optimality gap and solution status are sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Optimisation"
IMMEDIATE_CONTEXTS = [
"Optimisation",
"Applied Mathematics Ontologies",
"Numerical Analysis Ontologies",
"Operations Research Ontologies"
]
RELATED_ONTOLOGIES = [
"Optimisation",
"Applied Mathematics Ontologies",
"Numerical Analysis Ontologies",
"Mathematical Modelling",
"Parameter Estimation Ontology",
"Linear Algebra Ontologies",
"Calculus & Analysis Ontologies",
"Convex Geometry Ontology",
"Probability & Statistics Ontologies",
"Operations Research Ontologies",
"Game Theory Ontologies",
"Optimal Control Ontologies",
"Combinatorial Optimisation Ontologies",
"Scientific Computing Ontologies"
]
ROUTE_RULES = [
"Optimisation Ontology -> Optimisation for parent semantics",
"Optimisation Ontology -> Numerical Analysis for numerical solver behaviour",
"Optimisation Ontology -> Mathematical Modelling for model-based decision problems",
"Optimisation Ontology -> Parameter Estimation for data-fitting objectives",
"Optimisation Ontology -> Linear Algebra for quadratic and matrix problems",
"Optimisation Ontology -> Calculus & Analysis for derivatives and curvature",
"Optimisation Ontology -> Convex Geometry for feasible-set structure",
"Optimisation Ontology -> Probability & Statistics for stochastic objectives",
"Optimisation Ontology -> Operations Research for resource and planning problems",
"Optimisation Ontology -> Optimal Control for time-dependent decision trajectories"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible optimisation entities, constraints, solvers or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve objective-variable-constraint semantics.",
"Preserve feasibility-before-optimality semantics.",
"Preserve local-versus-global distinction.",
"Preserve convex-versus-nonconvex distinction.",
"Preserve KKT and constraint-qualification semantics.",
"Preserve primal-dual semantics.",
"Preserve solver-status versus mathematical-certification distinction.",
"Preserve machine-readable optimisation ontology semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"The Optimisation Ontology formally represents optimisation problems, decision variables, objectives, constraints, feasible sets, optimality conditions and solution status."
PROBLEM_SUMMARY =
"An optimisation problem combines decision variables, an objective, domains and optional constraints."
FEASIBILITY_SUMMARY =
"Feasibility means satisfying every declared constraint and variable-domain restriction."
STATIONARITY_SUMMARY =
"Stationarity is a first-order condition and does not by itself establish optimality."
CONVEXITY_SUMMARY =
"Convex optimisation permits strong global optimality conclusions from local conditions."
KKT_SUMMARY =
"KKT conditions combine stationarity, primal feasibility, dual feasibility and complementary slackness."
DUALITY_SUMMARY =
"Duality provides bounds, certificates and sensitivity information for primal problems."
GAP_SUMMARY =
"An optimality gap compares a candidate objective value with a valid bound."
STATUS_SUMMARY =
"Optimisation outputs should distinguish feasible, infeasible, local, global, approximate and uncertified solutions."
}
FLOW {
INPUT
-> detect_optimisation_ontology_context
-> identify objective_decision_variables_parameters_domains_constraints_uncertainty_and_preference structure
-> classify unconstrained_constrained_continuous_discrete_linear_quadratic_nonlinear_convex_nonconvex_stochastic_robust_or_multiobjective problem
-> construct feasible_set
-> test candidate_feasibility_if_candidate supplied
-> derive first_order_second_order_KKT_or_problem_specific optimality conditions
-> select compatible analytical_numerical_combinatorial_or_dynamic solver pathway
-> compute_or_assess candidate_solution
-> derive primal_dual bounds_and_optimality gap where available
-> assign local_global_approximate_infeasible_or_uncertain status
-> route to optimisation applied_mathematics numerical_analysis mathematical_modelling parameter_estimation linear_algebra calculus convex_geometry probability_statistics operations_research game_theory optimal_control_or_scientific_computing ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Optimisation Ontology provides the formal semantic layer beneath optimisation. It represents objective functions, decision variables, parameters, feasible sets, equality, inequality, bound and integrality constraints, continuous and discrete optimisation, convex and nonconvex problems, linear, quadratic and nonlinear programming, stochastic and robust optimisation, multiobjective optimisation, first- and second-order conditions, KKT conditions, duality, optimality gaps, sensitivity and explicit solution status."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-APPLIED-MATHEMATICS-OPTIMISATION-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard