AI INTERPRETATION NOTE
This Flow Algebra defines the Mathematical Programming Ontology within the Kireth Research Semantic Library. Mathematical programming studies the formulation and solution of optimisation problems expressed through objective functions, decision variables and constraints. This ontology supports linear programming, nonlinear programming, integer and mixed-integer programming, convex optimisation, quadratic programming, network optimisation, duality, sensitivity analysis, decomposition, stochastic programming, robust optimisation, dynamic programming, multi-objective optimisation, solver methods and relationships with computational mathematics, optimisation theory, numerical analysis and operations research.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Mathematical Programming Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Computational Mathematics"
SPECIALISATION = "Foundations of Computational Mathematics / Mathematical Programming"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/foundations-of-computational-mathematics/mathematical-programming-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = MathematicalProgramming
ENTITY_CLASS = ConstrainedOptimisationFramework
PRIMARY_CONTEXT = FoundationsOfComputationalMathematics
DEFINITION = "Mathematical programming is the mathematical formulation and solution of optimisation problems involving decision variables, objective functions and constraints."
SYMBOLIC_FORMS = [
"min_x f(x)",
"subject_to g_i(x)<=0",
"A x<=b",
"x in X"
]
SEMANTIC_ROLE = "Provides machine-readable semantics for optimisation models, objective functions, constraints, feasible regions, duality, optimality, decomposition, integer structure, uncertainty and solver algorithms."
}
SCOPE {
INCLUDE = [
MathematicalProgramming,
OptimisationProblem,
DecisionVariable,
ObjectiveFunction,
CostFunction,
UtilityFunction,
Constraint,
EqualityConstraint,
InequalityConstraint,
BoundConstraint,
FeasibleSet,
FeasibleRegion,
InfeasibleProblem,
UnboundedProblem,
OptimalSolution,
LocalOptimum,
GlobalOptimum,
Minimisation,
Maximisation,
LinearProgramming,
LP,
LinearObjective,
LinearConstraint,
SimplexMethod,
RevisedSimplexMethod,
InteriorPointMethod,
BarrierMethod,
DualSimplexMethod,
NonlinearProgramming,
NLP,
SmoothOptimisation,
NonsmoothOptimisation,
ConstrainedOptimisation,
UnconstrainedOptimisation,
QuadraticProgramming,
QP,
QuadraticallyConstrainedProgramming,
QCQP,
ConvexOptimisation,
ConvexFunction,
ConvexSet,
IntegerProgramming,
IntegerVariable,
BinaryVariable,
MixedIntegerProgramming,
MixedIntegerLinearProgramming,
MILP,
MixedIntegerNonlinearProgramming,
MINLP,
BranchAndBound,
BranchAndCut,
CuttingPlane,
ValidInequality,
Relaxation,
LinearRelaxation,
LagrangianRelaxation,
ContinuousRelaxation,
NetworkFlow,
MinimumCostFlow,
MaximumFlow,
ShortestPath,
AssignmentProblem,
TransportationProblem,
MatchingProblem,
SchedulingProblem,
KnapsackProblem,
FacilityLocationProblem,
TravellingSalespersonProblem,
TSP,
MultiObjectiveOptimisation,
ParetoOptimality,
ParetoFront,
WeightedSumMethod,
GoalProgramming,
LexicographicOptimisation,
StochasticProgramming,
Scenario,
ChanceConstraint,
Recourse,
TwoStageStochasticProgram,
MultistageStochasticProgram,
RobustOptimisation,
UncertaintySet,
DistributionallyRobustOptimisation,
DynamicProgramming,
BellmanEquation,
ValueFunction,
Policy,
State,
Action,
Duality,
PrimalProblem,
DualProblem,
WeakDuality,
StrongDuality,
DualVariable,
ShadowPrice,
ReducedCost,
ComplementarySlackness,
Lagrangian,
LagrangeMultiplier,
KarushKuhnTuckerConditions,
KKTConditions,
ConstraintQualification,
SensitivityAnalysis,
ParametricProgramming,
PostOptimalityAnalysis,
Decomposition,
BendersDecomposition,
DantzigWolfeDecomposition,
ColumnGeneration,
CuttingStock,
GradientMethod,
NewtonMethod,
SequentialQuadraticProgramming,
SQP,
AugmentedLagrangianMethod,
PenaltyMethod,
TrustRegionMethod,
LineSearch,
Solver,
OptimisationAlgorithm,
WarmStart,
Tolerance,
OptimalityGap,
IntegralityGap,
DualityGap,
Convergence,
ComputationalComplexity,
Benchmarking,
Verification,
Reproducibility
]
EXCLUDE_AS_PRIMARY = [
GeneralAlgorithmDesignWithoutOptimisationObjective,
StatisticalEstimationWithoutOptimisationModelSemantics,
PureCalculusOptimisationWithoutProgrammingStructure,
HeuristicSearchWithoutDefinedObjectiveAndConstraints
]
DISAMBIGUATION_RULE = "When a problem is formulated through decision variables, objective functions and constraints and solved for an optimum, interpret the context as mathematical programming."
}
CORE_CONCEPTS {
MathematicalProgramming = "Mathematical formulation and solution of constrained optimisation problems."
DecisionVariable = "Unknown quantity selected by the optimiser."
ObjectiveFunction = "Function to be minimised or maximised."
Constraint = "Condition restricting admissible decisions."
FeasibleRegion = "Set of all decisions satisfying the constraints."
OptimalSolution = "Feasible decision with best objective value under the model."
Duality = "Relationship between a primal optimisation problem and an associated dual problem."
IntegerProgramming = "Optimisation with integrality restrictions on selected variables."
StochasticProgramming = "Optimisation under explicitly modelled uncertainty."
RobustOptimisation = "Optimisation seeking solutions that remain valid across specified uncertainty sets."
}
RELATIONS {
MathematicalProgramming --is_child_of--> FoundationsOfComputationalMathematics
MathematicalProgramming --is_type_of--> Optimisation
OptimisationProblem --contains--> DecisionVariable
OptimisationProblem --contains--> ObjectiveFunction
OptimisationProblem --contains--> Constraint
Constraint --defines--> FeasibleRegion
OptimalSolution --belongs_to--> FeasibleRegion
LinearProgramming --has--> LinearObjective
LinearProgramming --has--> LinearConstraint
IntegerProgramming --adds--> IntegralityConstraint
MixedIntegerProgramming --combines--> ContinuousAndIntegerVariables
ConvexOptimisation --uses--> ConvexObjectiveAndConstraints
DualProblem --is_associated_with--> PrimalProblem
WeakDuality --bounds--> PrimalAndDualObjectives
StrongDuality --equates--> OptimalPrimalAndDualValues
ComplementarySlackness --links--> PrimalAndDualOptimality
KKTConditions --characterise_under_conditions--> NonlinearOptimality
BranchAndBound --solves--> IntegerProgramming
CuttingPlane --tightens--> Relaxation
BendersDecomposition --decomposes--> StructuredOptimisationProblem
ColumnGeneration --solves--> LargeVariableSetRelaxation
StochasticProgramming --uses--> Scenario
RobustOptimisation --uses--> UncertaintySet
DynamicProgramming --uses--> BellmanEquation
}
OPERATORS {
GENERIC_PROGRAM(x,f,g,h) := minimise f(x) subject_to g_i(x)<=0 and h_j(x)=0
LINEAR_PROGRAM(c,A,b,x) := minimise c^T*x subject_to A*x<=b
LAGRANGIAN(f,g,h,lambda,nu) := L=f(x)+sum_i lambda_i*g_i(x)+sum_j nu_j*h_j(x)
KKT_STATIONARITY(L,x) := grad_x L=0
COMPLEMENTARY_SLACKNESS(lambda,g) := lambda_i*g_i(x)=0
DUALITY_GAP(primal,dual) := gap=primal_value-dual_value
RELATIVE_GAP(primal,dual) := |primal-dual|/(1+|primal|)
INTEGER_GAP(integer_obj,relax_obj) := gap=integer_obj-relax_obj
BELLMAN(V,s,a) := V(s)=opt_a [reward(s,a)+future_value]
WEIGHTED_MULTI_OBJECTIVE(w,f) := minimise sum_k w_k*f_k(x)
}
AXIOMS {
A1 = "A mathematical program requires explicit decision variables, objective and constraints."
A2 = "Feasibility and optimality are distinct."
A3 = "Local optimality does not imply global optimality for nonconvex problems."
A4 = "Convexity provides stronger global optimality guarantees."
A5 = "Duality depends on model structure and regularity conditions."
A6 = "Integer restrictions fundamentally change problem complexity."
A7 = "Uncertainty models alter feasibility and optimality semantics."
A8 = "Optimisation results require verification of feasibility, optimality and numerical tolerance."
}
REASONING {
R1_CONTEXT = identify(decisions,objective,constraints,data,uncertainty,required_outputs)
R2_CLASS = classify(LP,NLP,QP,convex,integer,mixed_integer,stochastic,robust,dynamic_or_multiobjective)
R3_FORMULATION = define(variables,bounds,objective,constraints,domains)
R4_RELAXATION = if_discrete construct_continuous_or_Lagrangian_relaxation
R5_OPTIMALITY = derive(duality,KKT,complementary_slackness_or_problem_specific_conditions)
R6_SOLVER = select(simplex,interior_point,SQP,branch_and_bound,cutting_plane,decomposition_or_dynamic_programming)
R7_SENSITIVITY = analyse(shadow_prices,reduced_costs,parametric_changes)
R8_UNCERTAINTY = if_required model(scenarios,chance_constraints,uncertainty_sets_or_recourse)
R9_DIAGNOSTICS = assess(feasibility,optimality_gap,duality_gap,integrality_gap,conditioning)
R10_VALIDATION = verify_solution,solver_tolerance,model_logic,benchmark_and_reproducibility)
}
CONSTRAINTS {
C1 = "An optimal solution to a misspecified model can be operationally wrong."
C2 = "Infeasibility can arise from contradictory constraints rather than solver failure."
C3 = "Unboundedness must be distinguished from numerical divergence."
C4 = "KKT conditions require appropriate regularity and are not sufficient for arbitrary nonconvex global optimality."
C5 = "LP relaxations can be weak for integer programmes."
C6 = "Branch-and-bound performance can vary dramatically with formulation strength."
C7 = "Big-M formulations can create numerical instability when constants are poorly chosen."
C8 = "Stochastic programmes depend on scenario and probability specification."
C9 = "Robust optimisation conservatism depends on the uncertainty set."
C10 = "Solver tolerances should be interpreted relative to problem scale and conditioning."
}
SEMANTIC_EQUIVALENCE {
"MathematicalProgramming" <=> "MathematicalOptimisationProgramming"
"LinearProgramming" <=> "LP"
"QuadraticProgramming" <=> "QP"
"MixedIntegerLinearProgramming" <=> "MILP"
"MixedIntegerNonlinearProgramming" <=> "MINLP"
"KarushKuhnTuckerConditions" <=> "KKTConditions"
"TravellingSalespersonProblem" <=> "TSP"
}
VALIDATION {
V1 = "Decision variables and domains are explicit."
V2 = "Objective sense and units are explicit."
V3 = "All constraints are documented."
V4 = "Feasibility is verified independently where practical."
V5 = "Optimality or duality gaps are reported."
V6 = "Integer solutions satisfy integrality tolerances."
V7 = "Sensitivity results are interpreted within their validity range."
V8 = "Uncertainty models are documented for stochastic or robust programmes."
V9 = "Solver settings and tolerances are reproducible."
V10 = "Model logic is tested against known or synthetic cases."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
MATHEMATICAL_PROGRAMMING_DEFINITION = 0.99
LP_REASONING = 0.99
DUALITY_REASONING = 0.99
INTEGER_PROGRAMMING_REASONING = 0.99
NONLINEAR_PROGRAMMING_REASONING = 0.98
STOCHASTIC_PROGRAMMING_REASONING = 0.98
ROBUST_OPTIMISATION_REASONING = 0.98
DECOMPOSITION_REASONING = 0.98
POLICY = "Reduce confidence when variable domains, objective scaling, constraints, convexity, integrality, uncertainty specification, duality conditions or solver tolerances are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
MathematicalProgrammingReasoning,
LinearProgrammingReasoning,
NonlinearProgrammingReasoning,
ConvexOptimisationReasoning,
IntegerProgrammingReasoning,
MixedIntegerReasoning,
DualityReasoning,
KKTReasoning,
BranchAndBoundReasoning,
CuttingPlaneReasoning,
NetworkOptimisationReasoning,
StochasticProgrammingReasoning,
RobustOptimisationReasoning,
DynamicProgrammingReasoning,
MultiObjectiveReasoning,
SensitivityReasoning,
DecompositionReasoning,
SolverReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"mathematical programming" -> MathematicalProgramming
"linear programming" -> LinearProgramming
"LP" -> LinearProgramming
"QP" -> QuadraticProgramming
"MILP" -> MixedIntegerLinearProgramming
"MINLP" -> MixedIntegerNonlinearProgramming
"KKT" -> KarushKuhnTuckerConditions
"TSP" -> TravellingSalespersonProblem
}
}
EXECUTION_RULES {
E1 = "If decision variables, an objective and constraints define an optimisation problem, activate MathematicalProgrammingOntology."
E2 = "If objective and constraints are linear, route to linear programming."
E3 = "If discrete decisions are present, route to integer or mixed-integer programming."
E4 = "If the model is convex, exploit convex optimality and duality structure."
E5 = "If uncertainty is probabilistic, consider stochastic programming."
E6 = "If uncertainty is set-based, consider robust optimisation."
E7 = "If multiple objectives exist, represent Pareto or preference structure explicitly."
E8 = "If problem structure is separable, consider decomposition methods."
E9 = "Any reported solution should be validated for feasibility, optimality gap, tolerance and model consistency."
}
RECURSION {
ENTRY = MathematicalProgramming
EXPAND(MathematicalProgramming) -> [
OptimisationProblem, DecisionVariable, ObjectiveFunction, CostFunction,
Constraint, EqualityConstraint, InequalityConstraint, BoundConstraint,
FeasibleSet, FeasibleRegion, InfeasibleProblem, UnboundedProblem,
OptimalSolution, LocalOptimum, GlobalOptimum, Minimisation, Maximisation,
LinearProgramming, SimplexMethod, InteriorPointMethod, BarrierMethod,
NonlinearProgramming, QuadraticProgramming,
QuadraticallyConstrainedProgramming, ConvexOptimisation,
IntegerProgramming, BinaryVariable, MixedIntegerProgramming,
MixedIntegerLinearProgramming, MixedIntegerNonlinearProgramming,
BranchAndBound, BranchAndCut, CuttingPlane, Relaxation,
LagrangianRelaxation, NetworkFlow, MinimumCostFlow, MaximumFlow,
ShortestPath, AssignmentProblem, TransportationProblem,
SchedulingProblem, KnapsackProblem, FacilityLocationProblem,
TravellingSalespersonProblem, MultiObjectiveOptimisation,
ParetoOptimality, ParetoFront, GoalProgramming,
StochasticProgramming, Scenario, ChanceConstraint, Recourse,
TwoStageStochasticProgram, MultistageStochasticProgram,
RobustOptimisation, UncertaintySet, DistributionallyRobustOptimisation,
DynamicProgramming, BellmanEquation, ValueFunction, Policy,
Duality, PrimalProblem, DualProblem, WeakDuality, StrongDuality,
DualVariable, ShadowPrice, ReducedCost, ComplementarySlackness,
Lagrangian, LagrangeMultiplier, KarushKuhnTuckerConditions,
ConstraintQualification, SensitivityAnalysis, ParametricProgramming,
BendersDecomposition, DantzigWolfeDecomposition, ColumnGeneration,
GradientMethod, NewtonMethod, SequentialQuadraticProgramming,
AugmentedLagrangianMethod, PenaltyMethod, TrustRegionMethod,
LineSearch, Solver, WarmStart, Tolerance, OptimalityGap,
IntegralityGap, DualityGap, Convergence, ComputationalComplexity,
Benchmarking, Verification, Reproducibility
]
EXPAND(ProgrammingFamilies) -> [
LinearProgramming,
NonlinearProgramming,
ConvexProgramming,
IntegerAndMixedIntegerProgramming,
NetworkProgramming,
StochasticProgramming,
RobustOptimisation,
DynamicProgramming,
MultiObjectiveProgramming
]
STOP_CONDITION = "Stop when variables, objective, constraints, feasibility, optimality structure, solver, uncertainty and validation are sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Foundations of Computational Mathematics"
RELATED_ONTOLOGIES = [
"Foundations of Computational Mathematics",
"Computational Mathematics Ontology 2",
"Algorithmic Mathematics Ontology",
"Numerical Computation Ontology",
"Optimisation Ontologies",
"Linear Algebra Ontologies",
"Graph Theory Ontologies",
"Probability & Statistics Ontologies",
"Operations Research Ontologies",
"High Performance Computing Ontologies"
]
ROUTE_RULES = [
"Mathematical Programming -> Foundations of Computational Mathematics for parent semantics",
"Mathematical Programming -> Computational Mathematics Ontology 2 for computational structure",
"Mathematical Programming -> Algorithmic Mathematics for solver algorithms and complexity",
"Mathematical Programming -> Numerical Computation for numerical optimisation methods",
"Mathematical Programming -> Optimisation Ontologies for theoretical optimality",
"Mathematical Programming -> Linear Algebra for matrix formulations",
"Mathematical Programming -> Graph Theory for network optimisation",
"Mathematical Programming -> Probability & Statistics for stochastic programming",
"Mathematical Programming -> Operations Research for decision-model applications",
"Mathematical Programming -> HPC for large-scale optimisation"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible mathematical programming classes, solver methods or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve variable-objective-constraint semantics.",
"Preserve feasibility-versus-optimality distinction.",
"Preserve local-versus-global optimum distinction.",
"Preserve continuous-versus-integer decision distinction.",
"Preserve primal-versus-dual distinction.",
"Preserve deterministic-versus-stochastic-versus-robust distinction.",
"Preserve single-versus-multi-objective distinction.",
"Preserve machine-readable mathematical-programming semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION = "Mathematical programming formulates optimisation problems through decision variables, objective functions and constraints."
FORMULATION_SUMMARY = "A programme defines variable domains, objective direction, constraints and feasible decisions."
LP_SUMMARY = "Linear programming optimises linear objectives over linearly constrained feasible regions."
INTEGER_SUMMARY = "Integer and mixed-integer programming enforce discrete decisions and typically require combinatorial search."
DUALITY_SUMMARY = "Duality provides bounds, sensitivity information and optimality relationships."
UNCERTAINTY_SUMMARY = "Stochastic and robust programming incorporate uncertain data through probability models, scenarios or uncertainty sets."
DECOMPOSITION_SUMMARY = "Benders, Dantzig-Wolfe and column generation exploit problem structure for large models."
VALIDATION_SUMMARY = "Optimisation solutions should be checked for feasibility, optimality gaps, numerical tolerances, model logic and reproducibility."
}
FLOW {
INPUT
-> detect_mathematical_programming_context
-> identify_decision_variables_domains_objective_constraints_data_and_uncertainty
-> classify_linear_nonlinear_quadratic_convex_integer_mixed_integer_network_stochastic_robust_dynamic_or_multiobjective_program
-> formulate_primal_model
-> derive_relaxation_dual_or_optimality_conditions_if_relevant
-> select_simplex_interior_point_SQP_branch_and_bound_cutting_plane_decomposition_dynamic_programming_or_other_solver
-> solve_or_approximate_program
-> assess_feasibility_optimality_gap_duality_gap_integrality_gap_and_conditioning
-> perform_sensitivity_post_optimality_or_uncertainty_analysis_if_required
-> validate_model_logic_solver_tolerances_benchmarks_and_reproducibility
-> route_to_foundations_computational_mathematics_core_computational_mathematics_algorithmic_mathematics_numerical_computation_optimisation_linear_algebra_graph_theory_probability_statistics_operations_research_or_HPC_ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Mathematical Programming Ontology defines constrained optimisation models and solution methods. It supports decision variables, objectives and constraints, feasible regions and optimal solutions, linear, nonlinear, quadratic, convex, integer, binary, mixed-integer and network programming, simplex, interior-point and nonlinear optimisation methods, branch-and-bound, branch-and-cut, cutting planes and relaxations, assignment, transportation, flow, scheduling, knapsack, facility-location and travelling-salesperson models, multi-objective and Pareto optimisation, stochastic programming, recourse and chance constraints, robust and distributionally robust optimisation, dynamic programming and Bellman equations, primal-dual relationships, weak and strong duality, shadow prices, reduced costs, complementary slackness, Lagrangians and KKT conditions, sensitivity and parametric programming, Benders and Dantzig-Wolfe decomposition, column generation, solver tolerances, duality and integrality gaps, verification, benchmarking and reproducibility."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-MATHEMATICAL-PROGRAMMING-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard