AI INTERPRETATION NOTE
This Flow Algebra defines the Nonlinear Optimisation Ontology within the Kireth Research Semantic Library. Nonlinear optimisation studies optimisation problems in which the objective function, one or more constraints, or both are nonlinear functions of the decision variables. This ontology supports unconstrained and constrained nonlinear programming, first- and second-order conditions, gradient and Hessian methods, line search, trust-region methods, quasi-Newton methods, sequential quadratic programming, interior-point methods, augmented Lagrangians, penalty and barrier methods, nonconvexity, local and global optima, constraint qualifications, KKT conditions, saddle points, basin dependence, numerical convergence and relationships with optimisation, calculus, numerical analysis and mathematical modelling.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Nonlinear Optimisation Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Applied Mathematics"
SPECIALISATION = "Optimisation / Nonlinear Optimisation"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/optimisation/nonlinear-optimisation-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = NonlinearOptimisation
SYMBOLIC_FORMS = [
"min_x f(x)",
"min_x f(x) subject to g_i(x)<=0, h_j(x)=0",
"grad f(x*)=0"
]
ENTITY_CLASS = NonlinearMathematicalProgrammingFramework
PRIMARY_CONTEXT = Optimisation
DEFINITION = "Nonlinear optimisation is the optimisation of an objective or feasible region involving nonlinear functions of the decision variables."
SEMANTIC_ROLE = "Provides the machine-readable framework for nonlinear objectives, nonlinear constraints, gradient and Hessian reasoning, local and global optima, KKT systems, line-search and trust-region methods, SQP, interior-point methods, penalties, barriers and nonconvex solution interpretation."
}
SCOPE {
INCLUDE = [
NonlinearOptimisation,
NonlinearProgramming,
NonlinearObjective,
NonlinearConstraint,
UnconstrainedNonlinearOptimisation,
ConstrainedNonlinearOptimisation,
SmoothOptimisation,
NonsmoothOptimisation,
LocalOptimum,
GlobalOptimum,
StationaryPoint,
SaddlePoint,
Gradient,
Hessian,
Jacobian,
SearchDirection,
StepLength,
LineSearch,
WolfeConditions,
ArmijoCondition,
TrustRegionMethod,
GradientDescent,
NewtonMethod,
ModifiedNewtonMethod,
QuasiNewtonMethod,
BFGS,
LBFGS,
NonlinearConjugateGradient,
GaussNewtonMethod,
LevenbergMarquardtMethod,
SequentialQuadraticProgramming,
InteriorPointMethod,
PenaltyMethod,
BarrierMethod,
AugmentedLagrangianMethod,
Lagrangian,
LagrangeMultiplier,
KarushKuhnTuckerConditions,
ConstraintQualification,
ActiveSet,
FeasibleDirection,
MeritFunction,
FilterMethod,
Nonconvexity,
BasinOfAttraction,
MultiStart,
GlobalisationStrategy,
ConvergenceRate,
SolverStatus
]
EXCLUDE_AS_PRIMARY = [
LinearProgramming,
PureRootFindingWithoutObjective,
IntegerProgrammingWithoutNonlinearContinuousStructure,
GenericMachineLearningTrainingWithoutOptimisationSemantics
]
DISAMBIGUATION_RULE =
"When an optimisation problem contains a nonlinear objective, nonlinear constraint, nonlinear feasible geometry or nonlinear optimality system, interpret the context as nonlinear optimisation."
}
CORE_CONCEPTS {
NonlinearOptimisation {
definition = "Optimisation involving one or more nonlinear functions."
}
NonlinearProgramming {
definition = "A constrained optimisation problem with nonlinear objective or constraints."
}
StationaryPoint {
definition = "A point satisfying first-order stationarity conditions under the chosen formulation."
}
Gradient {
definition = "The vector of first derivatives of a scalar objective with respect to decision variables."
}
Hessian {
definition = "The matrix of second derivatives of a scalar objective or Lagrangian."
}
LineSearch {
definition = "A procedure for choosing a step length along a search direction."
}
TrustRegionMethod {
definition = "A method that optimises a local model within a region where that model is considered reliable."
}
QuasiNewtonMethod {
definition = "A method approximating Hessian or inverse-Hessian information from successive gradient differences."
}
SequentialQuadraticProgramming {
definition = "A constrained nonlinear optimisation method that solves a sequence of quadratic programming subproblems."
}
AugmentedLagrangianMethod {
definition = "A constrained method combining Lagrange multipliers with penalty terms."
}
ConstraintQualification {
definition = "A regularity condition supporting validity of KKT or multiplier-based optimality conditions."
}
Nonconvexity {
definition = "The presence of geometry or curvature allowing multiple local optima, saddle points or disconnected feasible regions."
}
}
RELATIONS {
NonlinearOptimisation --is_special_case_of--> Optimisation
NonlinearProgramming --is_type_of--> NonlinearOptimisation
UnconstrainedNonlinearOptimisation --is_type_of--> NonlinearOptimisation
ConstrainedNonlinearOptimisation --is_type_of--> NonlinearOptimisation
GradientDescent --is_type_of--> IterativeOptimisationMethod
NewtonMethod --uses--> Gradient
NewtonMethod --uses--> Hessian
QuasiNewtonMethod --approximates--> HessianOrInverseHessian
BFGS --is_type_of--> QuasiNewtonMethod
LBFGS --is_type_of--> QuasiNewtonMethod
LineSearch --chooses--> StepLength
TrustRegionMethod --restricts--> LocalModelStep
SequentialQuadraticProgramming --uses--> QuadraticProgrammingSubproblem
InteriorPointMethod --uses--> BarrierOrPrimalDualSystem
PenaltyMethod --penalises--> ConstraintViolation
BarrierMethod --penalises--> BoundaryApproach
AugmentedLagrangianMethod --combines--> LagrangianAndPenalty
KarushKuhnTuckerConditions --characterise--> ConstrainedStationarity
ConstraintQualification --supports--> KKTValidity
MultiStart --explores--> MultipleBasinsOfAttraction
}
OPERATORS {
GRADIENT(f,x) :=
vector_of_partial_derivatives
HESSIAN(f,x) :=
matrix_of_second_partial_derivatives
GRADIENT_STEP(x,alpha,g) :=
x-alpha*g
NEWTON_DIRECTION(H,g) :=
solve H*p=-g
NEWTON_UPDATE(x,p) :=
x+p
LINE_SEARCH_UPDATE(x,p,alpha) :=
x+alpha*p
ARMIJO_TEST(f,x,p,alpha,c1) :=
f(x+alpha*p)<=f(x)+c1*alpha*grad_f(x)^T*p
WOLFE_TEST(f,x,p,alpha,c1,c2) :=
Armijo_condition
AND abs(grad_f(x+alpha*p)^T*p)<=c2*abs(grad_f(x)^T*p)
TRUST_REGION_SUBPROBLEM(g,B,Delta) :=
min_p g^T*p + 0.5*p^T*B*p
subject_to ||p||<=Delta
LAGRANGIAN(f,g,h,lambda,nu) :=
f(x)+sum_i lambda_i*g_i(x)+sum_j nu_j*h_j(x)
KKT_SYSTEM(x,lambda,nu) :=
stationarity
AND primal_feasibility
AND dual_feasibility
AND complementary_slackness
PENALISED_OBJECTIVE(f,constraints,rho) :=
f(x)+rho*constraint_violation_measure
BARRIER_OBJECTIVE(f,g,mu) :=
f(x)-mu*sum_i log(-g_i(x))
for interior points with g_i(x)<0
}
DEFINITIONS {
D1 = "Nonlinear optimisation permits nonlinear objectives or constraints."
D2 = "Stationarity is necessary for many smooth local optima but is not sufficient in general."
D3 = "The Hessian provides local curvature information."
D4 = "Positive-definite Hessian at an unconstrained stationary point supports a strict local minimum."
D5 = "Line-search methods choose a direction and then a step length."
D6 = "Trust-region methods restrict steps to regions where a local model is credible."
D7 = "Quasi-Newton methods approximate curvature from gradient changes."
D8 = "SQP approximates a constrained nonlinear problem through quadratic subproblems."
D9 = "Nonconvex problems may possess multiple local optima and saddle points."
D10 = "Globalisation strategies improve robustness of locally fast methods."
}
AXIOMS {
A1_NONLINEARITY:
At least one objective or constraint relation is nonlinear
A2_FEASIBILITY:
Constrained nonlinear candidates must satisfy declared constraints
A3_FIRST_ORDER:
Smooth unconstrained local optima satisfy first-order stationarity
A4_SECOND_ORDER:
Curvature determines local minimum, maximum or saddle classification under suitable regularity
A5_GLOBALISATION:
Local Newton-like methods generally require line-search, trust-region or related safeguards for robust convergence
A6_KKT:
Constrained local optimality is characterised by KKT conditions under suitable constraint qualifications
A7_NONCONVEXITY:
Local solver convergence does not imply global optimality in nonconvex problems
A8_TOLERANCE:
Numerical solution status depends on feasibility, stationarity and solver tolerances
}
REASONING {
R1_PROBLEM_CLASSIFICATION {
INPUT = optimisation_problem
IDENTIFY = objective_nonlinearity
IDENTIFY = nonlinear_constraints
IDENTIFY = smoothness
IDENTIFY = convexity_or_nonconvexity
RETURN = nonlinear_problem_class
}
R2_UNCONSTRAINED_FIRST_ORDER {
INPUT = f_and_candidate
COMPUTE = gradient
IF gradient_near_zero
LABEL = stationary_candidate
RETURN = first_order_status
}
R3_UNCONSTRAINED_SECOND_ORDER {
INPUT = stationary_candidate
COMPUTE = Hessian
IF positive_definite
RETURN = strict_local_minimum
IF negative_definite
RETURN = strict_local_maximum
IF indefinite
RETURN = saddle_point
ELSE
RETURN = inconclusive
}
R4_LINE_SEARCH_REASONING {
INPUT = x_search_direction
SELECT = initial_step
REDUCE_OR_EXPAND = step_until_Armijo_or_Wolfe conditions
RETURN = accepted_step_length
}
R5_TRUST_REGION_REASONING {
INPUT = local_model_and_radius
SOLVE = approximate_trust_region_subproblem
COMPARE = actual_vs_predicted reduction
UPDATE = trust_region_radius
RETURN = accepted_or_rejected step
}
R6_QUASI_NEWTON {
INPUT = x_k_gradient_history
UPDATE = Hessian_approximation_or_inverse
COMPUTE = search_direction
APPLY = line_search
RETURN = next_iterate
}
R7_CONSTRAINED_OPTIMALITY {
INPUT = constrained_problem_and_candidate
CHECK = feasibility
CHECK = constraint_qualification
FORM = Lagrangian
TEST = KKT_conditions
RETURN = constrained_stationarity profile
}
R8_SQP_REASONING {
INPUT = nonlinear_constrained_problem
LINEARISE = constraints
QUADRATISE = Lagrangian_or_objective
SOLVE = QP_subproblem
APPLY = merit_or_filter globalisation
RETURN = updated iterate
}
R9_INTERIOR_POINT_REASONING {
INPUT = inequality_constrained_problem
FORM = barrier_or_primal_dual equations
REDUCE = barrier_parameter
SOLVE = Newton systems
RETURN = interior_point trajectory_and_candidate
}
R10_NONCONVEX_GLOBAL_REASONING {
INPUT = nonconvex_problem
APPLY = multi_start_global_bounds_branching_metaheuristics_or_structure-specific method
COMPARE = local minima_and_bounds
RETURN = global_or_best_known status
}
}
CONSTRAINTS {
C1 = "Gradient-based methods require differentiability or valid derivative surrogates."
C2 = "Hessian-based methods require correct curvature information."
C3 = "Newton directions may fail to be descent directions when the Hessian is indefinite."
C4 = "Line-search conditions depend on a descent direction under standard formulations."
C5 = "KKT conditions may require constraint qualifications."
C6 = "Penalty parameters that are too small may permit excessive infeasibility."
C7 = "Barrier methods require strictly interior iterates for logarithmic barriers."
C8 = "Local convergence does not certify global optimality."
C9 = "Scaling can materially affect nonlinear solver performance."
C10 = "Stopping criteria should include both feasibility and stationarity for constrained problems."
}
SEMANTIC_EQUIVALENCE {
"NonlinearOptimisation" <=> "NonlinearOptimization"
"NonlinearProgramming" <=> "NonlinearConstrainedOptimisation"
"TrustRegionMethod" <=> "LocalModelRadiusOptimisationMethod"
"QuasiNewtonMethod" <=> "ApproximateCurvatureNewtonMethod"
"SequentialQuadraticProgramming" <=> "SQP"
"AugmentedLagrangianMethod" <=> "MultiplierPenaltyMethod"
}
VALIDATION {
V1 = "Nonlinearity source is identified."
V2 = "Variable domains and constraints are explicit."
V3 = "Derivative information is correct or appropriately approximated."
V4 = "Feasibility is assessed."
V5 = "Stationarity tolerance is explicit."
V6 = "Hessian or curvature assumptions are checked."
V7 = "Constraint qualifications are considered."
V8 = "Globalisation method is documented."
V9 = "Nonconvex global-optimality claims are supported by evidence."
V10 = "Solver termination status is separated from mathematical optimality."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
NONLINEAR_OPTIMISATION_DEFINITION = 0.99
FIRST_ORDER_REASONING = 0.99
SECOND_ORDER_REASONING = 0.98
LINE_SEARCH_REASONING = 0.98
TRUST_REGION_REASONING = 0.98
QUASI_NEWTON_REASONING = 0.98
CONSTRAINED_KKT_REASONING = 0.98
SQP_REASONING = 0.97
NONCONVEX_GLOBAL_REASONING = 0.95
POLICY =
"Reduce confidence when smoothness, derivative quality, curvature, constraint qualification, scaling, globalisation strategy, nonconvexity or global-optimality evidence are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
NonlinearOptimisationReasoning,
NonlinearProgrammingReasoning,
GradientReasoning,
HessianReasoning,
LineSearchReasoning,
TrustRegionReasoning,
NewtonOptimisationReasoning,
QuasiNewtonReasoning,
BFGSReasoning,
SQPReasoning,
InteriorPointReasoning,
KKTReasoning,
PenaltyMethodReasoning,
BarrierMethodReasoning,
AugmentedLagrangianReasoning,
NonconvexReasoning,
GlobalisationReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"nonlinear optimisation" -> NonlinearOptimisation
"nonlinear optimization" -> NonlinearOptimisation
"nonlinear programming" -> NonlinearProgramming
"line search" -> LineSearch
"trust region" -> TrustRegionMethod
"quasi-Newton" -> QuasiNewtonMethod
"BFGS" -> BFGS
"L-BFGS" -> LBFGS
"SQP" -> SequentialQuadraticProgramming
"augmented Lagrangian" -> AugmentedLagrangianMethod
}
INTERPRETATION_ORDER = [
detect_nonlinear_optimisation_context,
identify objective_constraints_variables_domains_smoothness_derivative_information_and_convexity,
classify unconstrained_constrained_smooth_nonsmooth_convex_or_nonconvex problem,
derive first_order_second_order_or_KKT conditions,
select gradient_Newton_quasiNewton_lineSearch_trustRegion_SQP_interiorPoint_penalty_barrier_or_augmentedLagrangian method,
solve or assess candidate iterates,
verify feasibility_stationarity_curvature_and_globalisation behaviour,
assign local_global_approximate_or_uncertain status,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("nonlinear optimisation")
OR nonlinear_objective_or_constraint_context
THEN activate(NonlinearOptimisationOntology)
E2:
IF unconstrained_smooth_problem
THEN compute_or_reason_with gradient_and_Hessian
E3:
IF Newton_direction_not_descent
THEN modify_Hessian_or_switch_to_trust_region/globalised strategy
E4:
IF constrained_smooth_problem
THEN assess KKT_conditions_and_constraint qualifications
E5:
IF line_search_method
THEN enforce Armijo_Wolfe_or_other suitable acceptance conditions
E6:
IF trust_region_method
THEN compare actual_to_predicted reduction
E7:
IF inequality_barrier_method
THEN maintain strict interior feasibility
E8:
IF nonconvex_problem
THEN preserve local_solution status unless global evidence exists
E9:
IF multiple_initial_guesses_produce_different solutions
THEN identify basin_dependence_and_consider multi_start
}
RECURSION {
ENTRY = NonlinearOptimisation
EXPAND(NonlinearOptimisation) -> [
NonlinearProgramming,
NonlinearObjective,
NonlinearConstraint,
UnconstrainedNonlinearOptimisation,
ConstrainedNonlinearOptimisation,
SmoothOptimisation,
NonsmoothOptimisation,
LocalOptimum,
GlobalOptimum,
StationaryPoint,
SaddlePoint,
Gradient,
Hessian,
Jacobian,
SearchDirection,
StepLength,
LineSearch,
TrustRegionMethod,
GradientDescent,
NewtonMethod,
QuasiNewtonMethod,
BFGS,
LBFGS,
NonlinearConjugateGradient,
GaussNewtonMethod,
LevenbergMarquardtMethod,
SequentialQuadraticProgramming,
InteriorPointMethod,
PenaltyMethod,
BarrierMethod,
AugmentedLagrangianMethod,
Lagrangian,
LagrangeMultiplier,
KarushKuhnTuckerConditions,
ConstraintQualification,
ActiveSet,
MeritFunction,
FilterMethod,
Nonconvexity,
BasinOfAttraction,
MultiStart,
GlobalisationStrategy
]
EXPAND(UnconstrainedMethods) -> [
GradientDescent,
NewtonMethod,
ModifiedNewtonMethod,
QuasiNewtonMethod,
BFGS,
LBFGS,
NonlinearConjugateGradient,
TrustRegionMethod
]
EXPAND(ConstrainedMethods) -> [
SequentialQuadraticProgramming,
InteriorPointMethod,
PenaltyMethod,
BarrierMethod,
AugmentedLagrangianMethod,
ActiveSetMethod,
FilterMethod
]
EXPAND(Globalisation) -> [
LineSearch,
TrustRegionMethod,
MeritFunction,
FilterMethod,
MultiStart
]
STOP_CONDITION =
"Stop when the nonlinear objective or constraints, derivative information, feasibility, stationarity, curvature, algorithm, globalisation, convergence and local/global solution status are sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Optimisation"
IMMEDIATE_CONTEXTS = [
"Optimisation Ontology",
"Numerical Analysis Ontologies",
"Calculus & Analysis Ontologies",
"Linear Algebra Ontologies"
]
RELATED_ONTOLOGIES = [
"Optimisation Ontology",
"Optimisation",
"Applied Mathematics Ontologies",
"Numerical Analysis Ontologies",
"Root Finding Ontology",
"Iterative Methods Ontology",
"Linear Algebra Ontologies",
"Calculus & Analysis Ontologies",
"Convex Optimisation Ontology",
"Parameter Estimation Ontology",
"Mathematical Modelling",
"Scientific Computing Ontologies"
]
ROUTE_RULES = [
"Nonlinear Optimisation -> Optimisation Ontology for formal optimisation semantics",
"Nonlinear Optimisation -> Numerical Analysis for solver convergence and stability",
"Nonlinear Optimisation -> Calculus & Analysis for gradients, Hessians and curvature",
"Nonlinear Optimisation -> Linear Algebra for Newton and KKT systems",
"Nonlinear Optimisation -> Root Finding for nonlinear stationarity equations",
"Nonlinear Optimisation -> Iterative Methods for successive optimisation updates",
"Nonlinear Optimisation -> Convex Optimisation when convex structure exists",
"Nonlinear Optimisation -> Parameter Estimation for nonlinear model fitting",
"Nonlinear Optimisation -> Mathematical Modelling for model-based objective systems",
"Nonlinear Optimisation -> Scientific Computing for large-scale sparse implementation"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible nonlinear algorithms, globalisation methods or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve nonlinear objective and constraint semantics.",
"Preserve stationarity-versus-optimality distinction.",
"Preserve first-order and second-order reasoning.",
"Preserve local-versus-global distinction.",
"Preserve KKT and constraint-qualification semantics.",
"Preserve globalisation semantics.",
"Preserve numerical-termination versus mathematical-certification distinction.",
"Preserve machine-readable nonlinear-optimisation semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"Nonlinear optimisation seeks minima or maxima when the objective, constraints or feasible geometry depend nonlinearly on the decision variables."
STATIONARITY_SUMMARY =
"Smooth unconstrained stationary points satisfy a zero-gradient condition."
CURVATURE_SUMMARY =
"The Hessian distinguishes local minima, maxima and saddle behaviour when second-order tests are decisive."
LINE_SEARCH_SUMMARY =
"Line-search methods select step lengths along search directions using sufficient-decrease and curvature conditions."
TRUST_REGION_SUMMARY =
"Trust-region methods constrain steps to regions where local quadratic models are reliable."
QUASI_NEWTON_SUMMARY =
"Quasi-Newton methods approximate curvature using gradient differences rather than exact Hessians."
CONSTRAINED_SUMMARY =
"Constrained nonlinear optimisation uses KKT systems, SQP, interior-point, penalty, barrier or augmented-Lagrangian methods."
NONCONVEX_SUMMARY =
"Nonconvex problems may contain multiple local optima, saddle points and basin-dependent solver outcomes."
STATUS_SUMMARY =
"A nonlinear solver result should distinguish numerical convergence, feasibility, stationarity, local optimality and certified global optimality."
}
FLOW {
INPUT
-> detect_nonlinear_optimisation_context
-> identify objective_decision_variables_domains_constraints_smoothness_derivative_information_scaling_and_convexity
-> classify unconstrained_constrained_smooth_nonsmooth_convex_or_nonconvex problem
-> derive gradient_Hessian_Jacobian_and_KKT structures as required
-> select gradient_Newton_quasiNewton_lineSearch_trustRegion_SQP_interiorPoint_penalty_barrier_augmentedLagrangian_or_multiStart method
-> initialise candidate
-> iterate with globalisation_and_constraint handling
-> monitor objective_feasibility_stationarity_step_norm_and_curvature
-> classify local_minimum_local_maximum_saddle_approximate_solution_or_uncertain status
-> if_nonconvex assess global evidence_or_multiple basins
-> route to optimisation_ontology numerical_analysis calculus linear_algebra root_finding iterative_methods convex_optimisation parameter_estimation mathematical_modelling_or_scientific_computing ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Nonlinear Optimisation Ontology defines optimisation involving nonlinear objectives or constraints. It supports smooth and nonsmooth problems, gradients, Hessians, Jacobians, stationarity, local and global optima, line-search and trust-region methods, Newton and quasi-Newton methods, BFGS and L-BFGS, nonlinear conjugate gradient, Gauss-Newton and Levenberg-Marquardt, SQP, interior-point, penalty, barrier and augmented-Lagrangian methods, KKT conditions, nonconvexity, basin dependence, multistart strategies and convergence reasoning."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-APPLIED-MATHEMATICS-NONLINEAR-OPTIMISATION-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard