Skip to main content

Dynamic Programming Ontology

Algorithms
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — DYNAMIC PROGRAMMING ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/algorithms/dynamic-programming-ontology.html

FLOW DYNAMIC_PROGRAMMING_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Algorithms"
    ONTOLOGY = "Dynamic Programming Ontology"
    PURPOSE = "Formalise dynamic programming problems, states, overlapping subproblems, optimal substructure, recurrences, memoisation, tabulation, transitions, solutions, correctness and complexity."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    DYNAMIC_PROGRAMMING
    DYNAMIC_PROGRAMMING_ALGORITHM
    PROBLEM
    PROBLEM_INSTANCE
    SUBPROBLEM
    OVERLAPPING_SUBPROBLEM
    OPTIMAL_SUBSTRUCTURE
    STATE
    STATE_SPACE
    STATE_VARIABLE
    STATE_KEY
    INITIAL_STATE
    TERMINAL_STATE
    BASE_CASE
    RECURRENCE_RELATION
    TRANSITION
    TRANSITION_FUNCTION
    DECISION
    CHOICE
    CANDIDATE_SOLUTION
    OPTIMAL_SOLUTION
    OBJECTIVE_FUNCTION
    COST
    VALUE
    SCORE
    MINIMISATION
    MAXIMISATION
    MEMOISATION
    MEMO_TABLE
    CACHE
    TOP_DOWN_DYNAMIC_PROGRAMMING
    BOTTOM_UP_DYNAMIC_PROGRAMMING
    TABULATION
    DP_TABLE
    TABLE_CELL
    TABLE_DIMENSION
    COMPUTATION_ORDER
    DEPENDENCY
    SUBPROBLEM_DEPENDENCY
    RECONSTRUCTION
    PREDECESSOR
    BACKPOINTER
    SOLUTION_PATH
    SEQUENCE
    ARRAY
    MATRIX
    GRAPH
    DAG
    STRING
    TREE
    KNAPSACK_PROBLEM
    LONGEST_COMMON_SUBSEQUENCE
    LONGEST_INCREASING_SUBSEQUENCE
    EDIT_DISTANCE
    MATRIX_CHAIN_MULTIPLICATION
    SHORTEST_PATH_PROBLEM
    COIN_CHANGE_PROBLEM
    PARTITION_PROBLEM
    INTERVAL_DYNAMIC_PROGRAMMING
    TREE_DYNAMIC_PROGRAMMING
    BITMASK_DYNAMIC_PROGRAMMING
    DIGIT_DYNAMIC_PROGRAMMING
    STOCHASTIC_DYNAMIC_PROGRAMMING
    BELLMAN_EQUATION
    PRINCIPLE_OF_OPTIMALITY
    PRECONDITION
    POSTCONDITION
    INVARIANT
    CORRECTNESS
    TERMINATION
    INPUT_SIZE
    STATE_COUNT
    TRANSITION_COUNT
    TIME_COMPLEXITY
    SPACE_COMPLEXITY
    SPACE_OPTIMISATION
    EXECUTION
    EXECUTION_TRACE
    IMPLEMENTATION
    LANGUAGE_CONTEXT
    RUNTIME_CONTEXT
    CONFIGURATION
    BENCHMARK
    PERFORMANCE_METRIC
    ERROR
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    SOLVES
    DECOMPOSES_INTO
    HAS_SUBPROBLEM
    OVERLAPS_WITH
    HAS_STATE
    HAS_STATE_VARIABLE
    HAS_STATE_KEY
    TRANSITIONS_TO
    DEPENDS_ON
    HAS_BASE_CASE
    HAS_RECURRENCE
    HAS_TRANSITION
    HAS_DECISION
    HAS_CHOICE
    HAS_OBJECTIVE
    HAS_COST
    HAS_VALUE
    MINIMISES
    MAXIMISES
    MEMOISES
    CACHES
    TABULATES
    STORES_IN
    LOOKS_UP
    COMPUTES
    PRECEDES
    FOLLOWS
    RECONSTRUCTS
    HAS_PREDECESSOR
    HAS_BACKPOINTER
    PRODUCES
    REQUIRES
    ENSURES
    MAINTAINS
    HAS_INVARIANT
    HAS_CORRECTNESS
    HAS_TIME_COMPLEXITY
    HAS_SPACE_COMPLEXITY
    OPTIMISES_SPACE
    IMPLEMENTED_BY
    EXECUTED_BY
    BENCHMARKED_BY
    HAS_CONFIGURATION
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    DYNAMIC_PROGRAMMING_SPECIFICATIONS
    PROBLEM_DEFINITIONS
    PSEUDOCODE
    SOURCE_CODE
    STATE_DEFINITIONS
    BASE_CASE_DEFINITIONS
    RECURRENCE_RELATIONS
    TRANSITION_DEFINITIONS
    OBJECTIVE_FUNCTIONS
    SUBPROBLEM_DEPENDENCY_DATA
    MEMO_TABLE_DATA
    DP_TABLE_DATA
    COMPUTATION_ORDER_DATA
    RECONSTRUCTION_DATA
    EXECUTION_TRACES
    CORRECTNESS_PROOFS
    COMPLEXITY_ANALYSES
    BENCHMARK_DATA
    IMPLEMENTATION_DATA
    LANGUAGE_AND_RUNTIME_CONTEXT
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_DYNAMIC_PROGRAMMING_IDENTIFIERS
    NORMALISE_PROBLEM_IDENTIFIERS
    NORMALISE_STATE_DEFINITIONS
    NORMALISE_STATE_KEYS
    NORMALISE_BASE_CASES
    NORMALISE_RECURRENCE_RELATIONS
    NORMALISE_TRANSITION_DEFINITIONS
    NORMALISE_OBJECTIVE_FUNCTIONS
    NORMALISE_MEMO_AND_TABLE_IDENTIFIERS
    NORMALISE_COMPUTATION_ORDER
    NORMALISE_PREDECESSOR_AND_BACKPOINTER_DATA
    NORMALISE_COMPLEXITY_NOTATION
    NORMALISE_BENCHMARK_UNITS
    NORMALISE_LANGUAGE_AND_RUNTIME_CONTEXT
    RESOLVE_PROBLEM_STATE_AND_SUBPROBLEM_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS DYNAMIC_PROGRAMMING_PIPELINE {
    PROBLEM
      -> SUBPROBLEM_DECOMPOSITION
      -> STATE_DEFINITION
      -> BASE_CASE_DEFINITION
      -> RECURRENCE_DEFINITION
      -> DEPENDENCY_ANALYSIS
      -> MEMOISATION_OR_TABULATION
      -> STATE_EVALUATION
      -> FINAL_VALUE_OR_SOLUTION
      -> SOLUTION_RECONSTRUCTION_IF_REQUIRED
      -> VALIDATION
  }

  PROCESS SUBPROBLEM_REASONING {
    PROBLEM_INSTANCE
      -> CANDIDATE_SUBPROBLEMS

    CANDIDATE_SUBPROBLEMS
      -> STATE_REPRESENTATIONS

    STATE_REPRESENTATIONS
      -> EQUIVALENT_SUBPROBLEM_DETECTION

    REPEATED_EQUIVALENT_STATES
      -> OVERLAPPING_SUBPROBLEMS
  }

  PROCESS OPTIMAL_SUBSTRUCTURE_REASONING {
    PROBLEM_SOLUTION
      -> COMPONENT_SUBPROBLEM_SOLUTIONS

    OPTIMAL_GLOBAL_SOLUTION
      -> REQUIRED_SUBPROBLEM_SOLUTIONS

    SUBPROBLEM_OPTIMALITY
      -> GLOBAL_COMBINATION

    VALID_DECOMPOSITION
      -> OPTIMAL_SUBSTRUCTURE_EVIDENCE
  }

  PROCESS RECURRENCE_REASONING {
    STATE
      -> AVAILABLE_TRANSITIONS

    EACH_TRANSITION
      -> DEPENDENT_SUBPROBLEM_STATE

    DEPENDENT_STATE_VALUES
      -> COMBINATION_FUNCTION

    COMBINATION_FUNCTION
      -> MIN_MAX_SUM_OR_OTHER_OBJECTIVE

    RESULT
      -> STATE_VALUE
  }

  PROCESS TOP_DOWN_REASONING {
    QUERY_STATE
      -> MEMO_LOOKUP

    MEMO_HIT
      -> RETURN_STORED_VALUE

    MEMO_MISS
      -> BASE_CASE_CHECK

    NON_BASE_STATE
      -> RECURSIVELY_COMPUTE_DEPENDENCIES

    COMPUTED_VALUE
      -> STORE_IN_MEMO
      -> RETURN_VALUE
  }

  PROCESS BOTTOM_UP_REASONING {
    BASE_CASES
      -> INITIALISE_DP_TABLE

    DEPENDENCY_GRAPH
      -> VALID_COMPUTATION_ORDER

    FOR EACH_STATE_IN_ORDER
      -> READ_DEPENDENT_STATES
      -> APPLY_RECURRENCE
      -> STORE_STATE_VALUE

    TARGET_STATE
      -> FINAL_VALUE
  }

  PROCESS TABLE_REASONING {
    STATE_VARIABLES
      -> TABLE_DIMENSIONS

    STATE_KEY
      -> TABLE_CELL

    TABLE_CELL
      -> STATE_VALUE

    TRANSITION
      -> CELL_DEPENDENCIES

    CELL_DEPENDENCIES
      -> COMPUTATION_ORDER_CONSTRAINTS
  }

  PROCESS RECONSTRUCTION_REASONING {
    OPTIMAL_STATE_VALUE
      -> PREDECESSOR_OR_DECISION_INFORMATION

    TARGET_STATE
      -> FOLLOW_BACKPOINTERS_OR_RECOMPUTE_CHOICES

    STATE_SEQUENCE
      -> SOLUTION_PATH_OR_STRUCTURE

    RECONSTRUCTED_SOLUTION
      -> OBJECTIVE_VALUE_VALIDATION
  }

  PROCESS SPACE_OPTIMISATION_REASONING {
    FULL_DP_STATE
      -> DEPENDENCY_WINDOW_ANALYSIS

    ONLY_RECENT_OR_SUBSET_STATES_REQUIRED
      -> REDUCED_STORAGE_REPRESENTATION

    REDUCED_STORAGE
      -> VERIFY_RECURRENCE_DEPENDENCIES_REMAIN_AVAILABLE

    VALID_REDUCTION
      -> SPACE_OPTIMISED_DP
  }

  PROCESS CORRECTNESS_REASONING {
    BASE_CASES
      -> CORRECT_INITIAL_VALUES

    ASSUME_DEPENDENT_SUBPROBLEMS_CORRECT
      -> APPLY_RECURRENCE

    RECURRENCE
      -> CORRECT_CURRENT_STATE

    VALID_COMPUTATION_ORDER_OR_MEMO_RECURSION
      -> ALL_REQUIRED_STATES_CORRECT

    TARGET_STATE
      -> POSTCONDITION
  }

  PROCESS COMPLEXITY_REASONING {
    REACHABLE_STATE_SET
      -> STATE_COUNT

    EACH_STATE
      -> TRANSITIONS_PER_STATE

    STATE_COUNT * TRANSITION_COST
      -> TIME_COMPLEXITY_MODEL

    STORED_STATES + RECONSTRUCTION_METADATA
      -> SPACE_COMPLEXITY_MODEL

    SPACE_OPTIMISATION
      -> REDUCED_SPACE_MODEL
  }

  RULES {
    IF DYNAMIC_PROGRAMMING_IS_ASSERTED
    THEN IDENTIFY STATE_RECURRENCE_AND_REUSE_OR_ORDERING_STRUCTURE

    IF MEMOISATION_IS_USED
    THEN REQUIRE STABLE_STATE_KEY_SEMANTICS

    IF TABULATION_IS_USED
    THEN REQUIRE COMPUTATION_ORDER_SATISFIES_STATE_DEPENDENCIES

    IF OPTIMAL_SOLUTION_IS_ASSERTED
    THEN REQUIRE OBJECTIVE_AND_OPTIMAL_SUBSTRUCTURE_CONTEXT

    IF SPACE_OPTIMISATION_IS_APPLIED
    THEN PRESERVE ALL_RECURRENCE_DEPENDENCIES_REQUIRED_FOR_CORRECTNESS

    IF RECONSTRUCTED_SOLUTION_IS_ASSERTED
    THEN VALIDATE ITS_OBJECTIVE_VALUE_AGAINST_COMPUTED_OPTIMUM

    IF COMPLEXITY_IS_ASSERTED
    THEN PRESERVE STATE_COUNT_TRANSITION_COST_AND_REACHABILITY_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND DYNAMIC_PROGRAMMING_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        PROBLEM_IDENTITY_CERTAINTY,
        STATE_DEFINITION_COMPLETENESS,
        BASE_CASE_CERTAINTY,
        RECURRENCE_CERTAINTY,
        DEPENDENCY_GRAPH_COMPLETENESS,
        OBJECTIVE_FUNCTION_CERTAINTY,
        CORRECTNESS_EVIDENCE_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF BASE_CASE_OR_RECURRENCE_IS_INCOMPLETE
    THEN REDUCE_RESULT_CONFIDENCE

    IF COMPUTATION_ORDER_VIOLATES_DEPENDENCIES
    THEN REDUCE_OR_INVALIDATE_TABULATION_CONFIDENCE

    IF FORMAL_RECURRENCE_AND_EXECUTION_EVIDENCE_CONVERGE
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        PROBLEM_IDENTIFIER,
        STATE_DEFINITION,
        RECURRENCE_RELATION,
        OBJECTIVE_FUNCTION,
        DP_STRATEGY,
        CONFIGURATION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    DYNAMIC_PROGRAMMING != RECURSION
    DYNAMIC_PROGRAMMING != MEMOISATION_AS_IDENTICAL_CONCEPT
    MEMOISATION != TABULATION
    STATE != SUBPROBLEM_RESULT
    STATE_KEY != STATE_VALUE
    BASE_CASE != TERMINAL_SOLUTION_IN_ALL_PROBLEMS
    RECURRENCE != IMPLEMENTATION
    OVERLAPPING_SUBPROBLEMS != OPTIMAL_SUBSTRUCTURE
    OPTIMAL_SUBSTRUCTURE != GREEDY_CHOICE_PROPERTY
    DP_TABLE != ALGORITHM_AS_IDENTICAL_ENTITY
    COMPUTATION_ORDER != SORT_ORDER_IN_GENERAL
    SPACE_OPTIMISATION != LOSS_OF_REQUIRED_DEPENDENCIES
    RECONSTRUCTED_SOLUTION != OBJECTIVE_VALUE
    TIME_COMPLEXITY != NUMBER_OF_TABLE_CELLS_ALONE_WHEN_TRANSITION_COST_EXCEEDS_CONSTANT_TIME
    UNREACHABLE_STATES_NEED_NOT_BE_COMPUTED_IN_ALL_IMPLEMENTATIONS
    COMPLEXITY_DEPENDS_ON_REACHABLE_STATES_TRANSITIONS_AND_IMPLEMENTATION
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_DYNAMIC_PROGRAMMING_IDENTIFIER
    CHECK_PROBLEM_DEFINITION
    CHECK_STATE_DEFINITION
    CHECK_STATE_KEYS
    CHECK_BASE_CASES
    CHECK_RECURRENCE
    CHECK_TRANSITIONS
    CHECK_OBJECTIVE_FUNCTION
    CHECK_SUBPROBLEM_DEPENDENCIES
    CHECK_MEMOISATION_IF_APPLICABLE
    CHECK_TABULATION_IF_APPLICABLE
    CHECK_COMPUTATION_ORDER
    CHECK_TARGET_STATE
    CHECK_RECONSTRUCTION_IF_APPLICABLE
    CHECK_SPACE_OPTIMISATION_IF_APPLICABLE
    CHECK_CORRECTNESS_EVIDENCE
    CHECK_COMPLEXITY_CONTEXT
    CHECK_IMPLEMENTATION
    CHECK_LANGUAGE_RUNTIME_AND_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_DYNAMIC_PROGRAMMING_ENTITIES
    PROBLEM_AND_SUBPROBLEM_RELATIONS
    STATE_RELATIONS
    BASE_CASE_RELATIONS
    RECURRENCE_RELATIONS
    TRANSITION_RELATIONS
    DEPENDENCY_GRAPH_RELATIONS
    MEMOISATION_RELATIONS
    TABULATION_RELATIONS
    DP_TABLE_RELATIONS
    COMPUTATION_ORDER_RELATIONS
    OBJECTIVE_AND_OPTIMALITY_RELATIONS
    RECONSTRUCTION_RELATIONS
    SPACE_OPTIMISATION_RELATIONS
    CORRECTNESS_RELATIONS
    TIME_COMPLEXITY_RELATIONS
    SPACE_COMPLEXITY_RELATIONS
    IMPLEMENTATION_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON PROBLEM_STATE_OR_RECURRENCE_CHANGE {
      NORMALISE
      RESOLVE_PROBLEM_STATE_AND_SUBPROBLEM_IDENTITIES
      UPDATE_BASE_CASES
      UPDATE_RECURRENCE_AND_TRANSITIONS
      UPDATE_DEPENDENCY_GRAPH
      RECOMPUTE_AFFECTED_STATES
      REASSESS_CORRECTNESS_AND_COMPLEXITY
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_EXECUTION_OR_BENCHMARK_DATA {
      LINK_EVIDENCE
      UPDATE_MEMO_OR_TABLE_STATE
      UPDATE_EXECUTION_TRACE
      VALIDATE_TARGET_VALUE_AND_RECONSTRUCTION
      UPDATE_EMPIRICAL_PERFORMANCE
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_DYNAMIC_PROGRAMMING_ALGORITHM
      BY_PROBLEM
      BY_SUBPROBLEM
      BY_STATE
      BY_BASE_CASE
      BY_RECURRENCE
      BY_TRANSITION
      BY_MEMO_TABLE
      BY_DP_TABLE
      BY_OBJECTIVE
      BY_SOLUTION
      BY_COMPLEXITY
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_SUBPROBLEM_DECOMPOSITION
      ANALYSE_OPTIMAL_SUBSTRUCTURE
      ANALYSE_RECURRENCES
      TRACE_TOP_DOWN_MEMOISATION
      TRACE_BOTTOM_UP_TABULATION
      ANALYSE_DP_TABLE_DEPENDENCIES
      RECONSTRUCT_SOLUTIONS
      ANALYSE_SPACE_OPTIMISATION
      ANALYSE_CORRECTNESS
      ANALYSE_COMPLEXITY
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_DYNAMIC_PROGRAMMING_FROM_RECURSION_MEMOISATION_AND_TABULATION
      DISTINGUISH_STATE_STATE_KEY_AND_STATE_VALUE
      PRESERVE_PROBLEM_STATE_RECURRENCE_OBJECTIVE_STRATEGY_IMPLEMENTATION_RUNTIME_AND_CONFIGURATION_CONTEXT
      DISTINGUISH_OPTIMAL_SUBSTRUCTURE_FROM_GREEDY_CHOICE_PROPERTY
      PRESERVE_DEPENDENCY_ORDER_AND_RECONSTRUCTION_EVIDENCE
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_DYNAMIC_PROGRAMMING_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              DYNAMIC_PROGRAMMING_KNOWLEDGE
            )
          )
        )
      )
  }
}

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