Algorithm¶
Core Idea¶
An algorithm is a finite, definite, effective procedure for transforming inputs into outputs by a sequence of prescribed steps. The essential commitment is to procedure: not just what the output should be (that is the function), but the ordered, mechanically-executable way of producing it. Every algorithm specifies (1) its admissible inputs, (2) a finite sequence of unambiguous steps, (3) a termination condition that it is guaranteed (or expected) to reach, and (4) a result it produces at termination. The classical constraints — finiteness, definiteness, effectiveness — together ensure that the procedure can be executed without appeal to intelligence or judgment.
How would you explain it like I'm…
Step-by-Step Recipe
Recipe of Exact Steps
Step-by-Step Procedure
Structural Signature¶
- The well-defined finite computational procedure (Knuth, 1997) [1]
- The input-to-output deterministic-or-randomized mapping (Motwani & Raghavan, 1995) [2]
- The correctness-and-termination invariants (Hoare, 1969) [3]
- The time-and-space resource bounds (Hartmanis & Stearns, 1965) [4]
- The abstract-machine-execution model independence (Turing, 1936) [5]
- The constructive-versus-existential proof distinction (Bishop, 1967) [6]
What It Is Not¶
- Not a function. A function is the mapping from inputs to outputs; the algorithm is a procedure that computes it. Many algorithms can compute the same function; some functions (the halting function, among others) have no algorithm at all.
- Not a heuristic. A heuristic is a procedure without a guaranteed correctness or termination claim; an algorithm, in the formal sense, comes with such claims. Many practical "algorithms" are heuristics with good empirical behavior.
- Not a program. A program is an algorithm written in a particular language on a particular machine; the algorithm is the procedure independent of how it is expressed or where it runs. The same algorithm has many programs.
- Not a policy. A policy chooses actions in a system over time; an algorithm, in the classical sense, computes an output from an input. Reinforcement-learning and control "policies" are closely related but extend beyond the input-output frame.
- Not a recipe in the colloquial sense. A cooking recipe involves steps whose execution requires judgment ("cook until golden"); a strict algorithm must reduce such steps to mechanically-checkable conditions.
- Common misclassification. Describing a vague workflow or set of guidelines as an algorithm without the definiteness and effectiveness constraints — and then being surprised that different executors produce different outputs from the same input.
Broad Use¶
- Computer science and mathematics
- Sorting, searching, optimization, graph algorithms, numerical methods, cryptographic algorithms.
- Operations research and logistics
- Routing, scheduling, assignment, inventory optimization.
- Medicine
- Diagnostic protocols, treatment decision trees, triage rules.
- Law and policy
- Sentencing guidelines, benefits-eligibility computations, risk-scoring algorithms (with attendant fairness concerns).
- Cooking, manufacturing, construction
- Recipes, assembly procedures, step-by-step build plans.
- Everyday reasoning
- Any "how-to" that reduces a goal to a sequence of executable steps.
Clarity¶
Algorithm clarifies by separating what is computed (the function) from how it is computed (the procedure), and by forcing each step to be mechanically executable. Vague "strategies" resolve into precise steps or reveal themselves to be insufficiently specified. The clarifying force is to make executability checkable — to turn a plan into something a disinterested executor (or a machine) can follow without interpretation.
Manages Complexity¶
- Reduces problem-solving to a finite recipe: once an algorithm exists, solving any instance of the problem requires only executing the recipe, not re-inventing the solution.
- Enables cost analysis: time and space complexity can be reasoned about from the step structure alone, giving meaningful predictions before any execution.
- Supports composition: algorithms call other algorithms as subroutines, letting large problems be decomposed into smaller algorithmic pieces.
- Separates correctness from efficiency: whether the output is right, and whether it is produced affordably, are questions that can be asked and answered independently.
- Makes human intuition transferable: once an expert's diagnostic procedure is algorithmized, it can be executed by others (or machines) without the expert.
Abstract Reasoning¶
Algorithm trains a reasoner to ask:
- What function is this algorithm supposed to compute? Does every instance of the described procedure actually compute it?
- Is the procedure finite, definite, and effective at every step?
- Does it terminate? On every input, or only on some? If only on some, what happens on inputs outside that set?
- What is the cost (time, space, communication) as a function of input size, and how does it scale?
- Is the algorithm deterministic, randomized, or approximate? What guarantees correspond to each regime?
- Is there a simpler algorithm with the same guarantees, or a faster one with different guarantees (approximate, probabilistic)?
Knowledge Transfer¶
Role mappings across domains:
- Algorithm ↔ procedure / protocol / recipe / workflow / decision tree / drill
- Input ↔ given data / initial state / query / problem instance
- Step ↔ instruction / action / substep / decision point
- State ↔ working memory / partial result / intermediate value / progress
- Termination condition ↔ halt test / completion criterion / stopping rule
- Output ↔ answer / decision / produced artifact / result
- Complexity ↔ running time / resources required / labor hours / lead time
- Subroutine ↔ sub-procedure / module / step sequence invoked within the larger procedure
A software engineer implementing a sort, a physician following a diagnostic protocol, and a pilot running a preflight checklist are doing the same structural work: specify the input, execute a finite definite sequence of steps, reach a termination condition, and produce a well-defined output. The same properties — termination, correctness under well-formed inputs, behavior under ill-formed inputs, predictable cost — are the diagnostic framework across all three settings, even though the steps themselves belong to wildly different domains.
Examples¶
Formal/abstract¶
Cormen-Leiserson-Rivest-Stein (2009) defined an algorithm as any well-defined computational procedure that takes input and produces output[7]. Dijkstra's (1959) shortest-path algorithm exemplifies this: given a graph with non-negative edge weights and a source vertex, produce the shortest path to every other vertex. The input class is precisely specified (graphs with non-negative weights); the steps are definite (maintain a frontier, extract minimum-distance vertex, relax edges); termination is guaranteed in V iterations; the output satisfies a correctness claim (distances are globally optimal). Every element of algorithmic structure is present, and the algorithm is independent of any particular programming language or machine architecture[8].
Mapped back: This instantiates the structural signature directly — finite steps, definite execution, guaranteed termination, deterministic correctness claim, machine-independent description.
Applied/industry¶
An airline's preflight checklist embodies algorithmic structure in a non-computational domain, a parallel Gawande (2009) develops at length in The Checklist Manifesto. The input is a specific aircraft in a given configuration; the steps are definite enough that two pilots executing them independently produce the same final state; termination is reached when the checklist is complete; the output is a verified ready-for-departure configuration. The same properties apply: correctness (all safety-critical items verified), termination (finite procedure), and cost analysis (time-to-complete). The structural kinship with Dijkstra is precise— same diagnostic questions, same failure modes — even though one acts on graphs and the other on aircraft[9].
Mapped back: This shows the same structural commitments (input, finite steps, definite execution, guaranteed termination, measurable correctness) translate across domains, demonstrating algorithm's role as a universal abstraction of procedure.
Structural Tensions¶
-
T1: Correctness vs Efficiency. A procedure can be correct but expensive, efficient but wrong, or correct in typical cases but pathological in adversarial ones. This trade-off is governed by the problem's intrinsic hardness and the algorithm designer's choices about cost allocation, as Aho, Hopcroft, and Ullman (1974) develop in their classical analysis of algorithm design. A common failure is optimizing for speed while discarding the correctness guarantees an algorithm once provided, without explicit acknowledgment[10].
-
T2: Algorithm vs Heuristic. Classical algorithms come with correctness and termination guarantees; heuristics drop those for simplicity or empirical performance, a distinction Pearl (1984) treats systematically in his foundational study of heuristic search. Many systems use heuristics under the "algorithm" label, inheriting neither the rigor of the former nor the honesty of the latter. A common failure is treating a heuristic as a correct algorithm, assuming guarantees it does not have, then being surprised by edge-case failures[11].
-
T3: Specification vs Implementation. An algorithm is a procedure described in some notation; an implementation is that procedure on a real machine with finite precision, memory, and time. Properties of the implementation can diverge from the abstract algorithm (numerical instability, overflows, concurrency bugs, pathological inputs for the specific machine), a class of risks Goldberg (1991) catalogs in his canonical survey of floating-point arithmetic. A common failure is reasoning about the abstract algorithm while the implementation silently violates its assumptions[12].
-
T4: Determinism vs Randomization/Approximation. Deterministic algorithms give the same output on the same input with worst-case guarantees. Randomized and approximate algorithms trade those for simpler or faster procedures with weaker (probabilistic or approximation-ratio) guarantees, a regime Karp (1991) surveys in his treatment of randomized complexity classes. A common failure is confusing the guarantees of different algorithm classes— treating "expected" performance as worst-case or vice versa[13].
-
T5: Termination Proof vs Practice. Proving that an algorithm terminates (reaches a halt condition on every admissible input) is theoretically necessary and practically essential. However, the proof can be subtle — it requires a well-founded measure and disciplined treatment of boundary cases, a methodology Floyd (1967) introduced through inductive assertions and well-founded ordering. A common failure is assuming termination without formal verification, leading to infinite loops on certain inputs[14].
-
T6: Abstraction vs Overhead. Expressing a procedure as an algorithm requires abstracting away implementation details, which clarifies the essential logic but can hide performance characteristics critical to practice. A procedure can be algorithmically elegant yet computationally infeasible on actual hardware, a tension Sedgewick and Wayne (2011) address by pairing every algorithm with empirical performance measurement. A common failure is prioritizing algorithmic clarity over practical executability[15].
Structural–Framed Character¶
Algorithm sits at the structural end of the structural–framed spectrum: it is a pure relational pattern that applies unchanged across domains, and its meaning does not lean on any one field's vocabulary or assumptions.
Though closely associated with computer science, the prime names a domain-neutral object — a finite, definite, effective procedure that transforms admissible inputs into outputs through unambiguous ordered steps with a termination condition. That same definition fits a cooking recipe, a long-division method, or a bureaucratic procedure equally well. It carries no normative weight, and its conditions of correctness, termination, and complexity are purely formal, owing nothing to human institutions. Applying the concept means recognizing a procedure that is already specifiable in itself. On every diagnostic, it reads structural.
Substrate Independence¶
Algorithm is about as substrate-independent as a prime can be — composite 5 / 5 on the substrate-independence scale. A finite, definite, effective procedure is a medium-neutral object, and the same diagnostic questions — does it terminate, is it correct, what does it cost — apply equally to computation, mathematics, medicine, law, manufacturing, and aviation checklists. Its cross-domain reach is real and documented, from Gawande's surgical checklists to sentencing and triage protocols. The one wrinkle is that demonstrated load sits slightly more in formal and procedural fields than a perfect 5 would, so transfer evidence reads a touch lower even as the composite stays universal.
- Composite substrate independence — 5 / 5
- Domain breadth — 5 / 5
- Structural abstraction — 5 / 5
- Transfer evidence — 4 / 5
Relationships to Other Abstractions¶
Current abstraction Algorithm Prime
Parents (2) — more general patterns this builds on
-
Algorithm presupposes Function (Mapping) Prime
An algorithm presupposes function because the procedure it specifies is precisely a mechanical way of realizing a deterministic input-to-output mapping.An algorithm presupposes function because the well-defined procedure it specifies makes sense only as the computational realization of a function from admissible inputs to results: same input, same output, without reference to the evaluator's state. Function supplies the single-valued dependency that the algorithm operationalizes by giving a finite, definite, effective sequence of steps that always produces the corresponding output. Without the prior availability of function as a deterministic mapping, there is no extensional behavior for the algorithmic procedure to compute, and its termination value would have no normative target.
-
Algorithm presupposes Iteration Prime
An algorithm presupposes iteration because executing a finite sequence of prescribed steps that update state until termination is the iterative pattern.An algorithm is a finite, definite, effective procedure that transforms inputs to outputs through an ordered sequence of mechanically-executable steps with a termination condition. This presupposes iteration: the repeated application of a step with state carried between rounds, a stopping condition, and a notion of progress. Each algorithmic step consumes the prior state and produces the next, exactly the use-of-prior-output structure iteration requires. The termination guarantee and the progress measure that distinguishes a halting algorithm from a non-halting loop are the same structural commitments iteration specifies.
Children (5) — more specific cases that build on this
-
Search Algorithm Domain-specific is a kind of Algorithm
A search algorithm is an algorithm specialized to exploring a generated state space by a frontier strategy until a goal or stopping report is reached.It has explicit inputs, effective expansion steps, correctness and termination semantics, outputs, and time and space profiles. It adds an initial state, successor function, goal test, frontier-ordering policy, heuristic admissibility, and completeness and optimality guarantees.
-
Sorting Algorithm Domain-specific is a kind of Algorithm
A sorting algorithm is an algorithm specialized to rearranging a finite sequence into a key-defined total order under explicit resource bounds.It supplies admissible input, a determinate terminating procedure, correctness against an ordered-output postcondition, and time and space costs. It adds comparison or key structure, stability and memory axes, the decision-tree lower bound, and a repertoire of sorting procedures.
-
Topological Sorting Domain-specific is a kind of Algorithm
Topological sorting is an algorithm specialized to producing a linear extension of a precedence DAG or reporting a cycle in linear time.Kahn's in-degree sweep and DFS post-order are finite effective procedures with defined inputs, outputs, termination, correctness, and O(V+E) cost. The child fixes the input to a directed precedence graph and the output to one total order respecting every edge.
- Type Inference Domain-specific is a kind of Algorithm
Type inference is an algorithm specialized to generating and unifying typing constraints to return a principal type or a located type error.In its stated Hindley-Milner discipline it has admissible expressions, finite syntax-directed constraint generation, a terminating unification solver, a success or conflict result, and known complexity. The type language and principal-type guarantee supply the differentia.
- Computability Prime presupposes Algorithm
Per dossier and file: computability is 'the boundary/meta-level relation that algorithm presupposes' — the existence-question (does an effective procedure exist at all?) over algorithm's central object.Per dossier + file: computability is 'the boundary/meta-level relation that algorithm presupposes' — the existence-question (does an effective procedure exist at all?) over algorithm's central object. algorithm is the positive object, computability the partition between buildable and provably-unbuildable. Presupposes the notion of effective procedure.
Hierarchy paths (2) — routes to 2 parentless roots
- Algorithm → Function (Mapping)
- Algorithm → Iteration
Neighborhood in Abstraction Space¶
Algorithm sits among the more crowded primes in the catalog (22nd percentile for distinctiveness): several abstractions describe nearly the same structure, so a description that fits it will tend to fit its neighbors too — transporting it usually means disambiguating within this family rather than landing on it exactly.
Family — Unclustered & Miscellaneous (429 primes)
Nearest neighbors
- Iteration — 0.77
- Computability — 0.75
- Function (Mapping) — 0.73
- Fixed Point — 0.72
- Recursion — 0.72
Computed from structural-signature embeddings · 2026-07-26
Not to Be Confused With¶
An algorithm must be distinguished from Transformation, the broader concept of input-to-output mapping. A transformation is a general mapping rule or function describing the relationship between inputs and outputs—what the output should be given any input. An algorithm is a procedure: not just what the output should be, but the finite sequence of prescribed, unambiguous steps that must be executed to produce it. A transformation specifies the relationship; an algorithm specifies how to compute it step-by-step. The transformation "multiply x by 2" is abstract; the algorithm for multiplying large integers by hand specifies the order of digit-wise operations, carries, and accumulation. Many different algorithms can implement the same transformation (quicksort and mergesort both sort, but they use different procedures); some transformations have no algorithm at all (the halting problem has no algorithm, even though the transformation is well-defined).
An algorithm is also not Recursion, a specific control structure that some algorithms employ. Recursion is the pattern where a function calls itself with reduced problem size, eventually reaching a base case. Algorithms may use recursion (quicksort uses recursive partitioning), but they also use iteration, conditionals, and other control structures. Iteration alone (repeating an action until a condition is met) is not recursion; an algorithm may be entirely iterative. A linear search iterating through a list is an algorithm that uses iteration, not recursion. Recursion is a technique available to algorithms; it is not the defining feature of what makes a procedure an algorithm.
Nor is an algorithm identical to a Heuristic, though the terms are often confused in casual use. A heuristic is a practical rule or shortcut that produces good (but not guaranteed optimal) results efficiently—it trades correctness for speed. A medical heuristic might be "treat common diseases first when symptoms are ambiguous." An algorithm, in the formal sense, is a step-by-step procedure that is guaranteed to terminate with specified correctness properties. Many practical "algorithms" in software are actually heuristics—they perform well on typical inputs but lack correctness guarantees. The distinction matters: if you need guaranteed correctness, a heuristic is insufficient; if you can tolerate approximate solutions quickly, a heuristic is better than a slow algorithm.
An algorithm is also not Iteration, the simple repetition of a process. Iteration is one control mechanism (repeat action until condition); an algorithm is the full procedure with logic, data transformations, conditionals, and termination. An iterative loop is a component of many algorithms, but iteration alone does not define an algorithm. A while-loop that repeats "add 1 to counter" is iteration, but it's not a complete algorithm unless combined with initialization, a termination condition, and a clear purpose. Algorithms specify not just the repetitive structure but the overall logical flow.
Finally, an algorithm is not Sequencing, the ordering of actions in time. Sequencing is the temporal arrangement—do step A, then step B, then step C. An algorithm specifies not just the sequence but the logical control flow, conditionals, and data transformations. A cooking sequence ("first chop, then cook, then serve") is ordered actions; an algorithm specifies which cuts, which heat, which timing, and what conditional branches (adjust heat if temperature exceeds threshold). Sequencing is the ordering; an algorithm is the complete executable procedure with all specifications necessary for mechanical execution.
Solution Archetypes¶
Solution archetypes in the catalog that build on this prime — directly (this prime is a source ingredient) or as a related prime.
Built directly on this prime (9)
- Complexity Scaling Assessment: Assess how effort, cost, time, memory, or coordination burden grows as input size or system scale increases.▸ Mechanisms (9)
- Algorithm Benchmarking
- Capacity Planning Model
- Computational Complexity Analysis — Once a problem is known solvable in principle, measures how its cost grows with input size to place it in a complexity class and separate the tractable from the merely computable.
- Coordination Cost Modeling
- Organizational Complexity Review
- Process Scalability Audit
- Queueing Simulation
- Scale Pilot or Dry Run
- Workload Scaling Test
- Computability Boundary Mapping: Before optimizing or automating a problem, determine whether any correct terminating procedure can solve the declared class, prove that boundary, and publish a weaker but honest fallback when it cannot.▸ Mechanisms (18)
- Abstract Interpretation or Model Checking — Decides a property soundly on a finite abstraction of an otherwise-undecidable system, trading exactness for a guaranteed answer that never misses a real violation.
- Bounded-Domain Exhaustive Search — Turns a question that is undecidable in general into a decidable one by fixing a finite bound and mechanically checking every case inside it.
- Computability Boundary Decision Record — Records where a project drew the computability boundary, which guarantee it will ship, and what would force the line to be redrawn.
- Computational Complexity Analysis — Once a problem is known solvable in principle, measures how its cost grows with input size to place it in a complexity class and separate the tractable from the merely computable.
- Constructive Algorithm and Correctness Proof — Settles a problem on the decidable side by exhibiting an actual algorithm and proving it both total and correct — the proof and the procedure are one object.
- Diagonalization Impossibility Proof — Proves that no algorithm can decide a class by constructing, from any candidate decider, a self-referential input on which it must be wrong.
- Enumeration and Dovetailing — Semi-decides a class by fairly interleaving all candidate computations, halting 'yes' the moment one succeeds and otherwise running on — buying a complete yes-side at the cost of no honest 'no'.
- Fallback-Mode Router — Dispatches each query to the strongest method that fits where it falls relative to the computability boundary — exact, sound-approximate, bounded, or escalated — under an explicit fallback contract.
- Halting-Problem Reduction — Proves a target problem undecidable by wiring a known-undecidable problem (canonically the halting problem) into it, so effort on a universal solver stops before it starts.
- Language-Fragment Restriction — Regains a terminating decision procedure by narrowing the language problems are stated in to a syntactic fragment known to be decidable, trading expressive power for a guaranteed answer.
- Many-One Reduction Proof — Transfers a problem's decidability or hardness verdict along a single total computable map that preserves membership, exhibiting the mapping itself as the proof.
- Promise-Problem Restriction — Makes a hard problem solvable by narrowing the inputs the solver is accountable for to those meeting a stated promise, leaving promise-violating inputs as don't-cares.
- Proof by Counterexample — Refutes an over-broad universal claim — that some method handles an entire class — by exhibiting one well-formed instance on which it demonstrably fails.
- Proof Checking — Independently re-verifies a decidability or impossibility proof step by step, so the boundary claim rests on a checked argument rather than on its author's authority.
- Reduction-Direction Checklist — A pre-flight check that a reduction runs from the known-hard problem into the target — the direction that actually proves hardness — with every assumption named before the verdict is trusted.
- Semi-Decision with Explicit Unknown — Runs a sound one-sided recognizer that confirms YES when it can, but returns an explicit UNKNOWN at a declared resource bound instead of looping forever or faking a NO.
- Theorem-Prover-Guided Search — Uses an automated or interactive prover to search for and mechanically check the proof or certificate a boundary claim rests on, recording the verified guarantee and any open residue.
- Turing-Reduction Analysis — Asks whether a problem becomes solvable given an oracle for another, placing it among the degrees of relative computability rather than in a flat decidable/undecidable split.
- Constraint-Guided Backtracking: Solve a constrained, path-dependent problem by extending a partial solution, testing it early, and undoing the latest failed commitment while preserving still-valid prior work.▸ Mechanisms (7)
- chronological_backtracking_log
- Constraint-Satisfaction Solver Pass — Encodes the commitments as a formal constraint model and runs a solver that propagates them to a reduced feasible region — or mechanically detects that no joint solution exists.
- decision_tree_search_diagram
- forward_checking_table
- hypothesis_tree_review
- recursive_depth_first_backtracking
- undo_stack_protocol
- Decision-Procedure Boundary Mapping: Map whether a yes/no question can be decided by a finite total procedure before promising automation, certainty, or universal adjudication.▸ Mechanisms (5)
- Decidability Triage Worksheet
- Decision Procedure Specification
- Fallback Mode Register
- Reduction Boundary Map
- Termination and Totality Proof Review
- Greedy Stepwise Commitment: Build a solution one locally best irreversible step at a time when full lookahead is too costly and the local score is trusted for the problem class.▸ Mechanisms (12)
- Dijkstra-Style Frontier Expansion
- Earliest-Deadline-First Dispatch
- Greedy Assignment Pass
- Greedy Set-Cover Heuristic
- Highest-Marginal-Gain-First Rule
- Kruskal-Style Edge Acceptance
- Lexicographic Priority Rule
- Nearest-Neighbor Route Extension
- Priority-Queue Step Selection
- Shortest-Processing-Time-First Rule
- Sorted Candidate Sweep
- Trap-Sentinel Escalation
- Heuristic vs. Algorithm Tradeoff and Selection: Choose the decision method, not just the decision: use heuristics where speed and bounded cost dominate, algorithms where rigor and consistency are worth the burden, and hybrids where staged escalation is safest.▸ Mechanisms (8)
- Algorithmic Escalation Protocol
- Decision Method Triage Matrix
- Heuristic Boundary Checklist
- Model or Rule Card
- Override and Exception Log
- Retrospective Error Calibration Review
- Shadow-Mode Method Comparison
- Stakes–Latency–Error Scorecard
- Operation-Weighted Data Structure Design: Choose the information structure around the real operation mix, making lookup, update, traversal, storage, consistency, and maintenance tradeoffs explicit instead of accidental.▸ Mechanisms (11)
- Abstract Data Type Interface
- Adjacency List or Matrix
- Columnar or Row Layout
- Entity-Relationship Schema
- Hash Table or Key-Value Store
- Materialized View or Cache
- Normalized / Denormalized Schema Pair
- Schema Migration Runbook
- Serialization Format and Codec
- Tree or B-Tree Index
- Workload Benchmark and Trace
- Problem-Distribution Fit Selection: Select and tune methods by their fit to the expected problem distribution, because no optimizer, learner, search procedure, or decision rule is best averaged across all possible worlds.▸ Mechanisms (12)
- Algorithm Portfolio Router
- Assumption Register — A shared record of the premises a plan is betting on — each with its evidence basis, an owner, and an expiry or invalidation condition — so the beliefs holding up a decision are named and re-checked rather than silently assumed true forever.
- Baseline Comparison Table
- Benchmark Refresh Audit
- Challenge Case Red Team
- Method Bias Matrix
- Method Card or Model Card
- No-Universal-Winner Claim Review
- Out-of-Distribution Monitor
- Problem Distribution Profile
- Regularization Path Review
- Stratified Benchmark Suite
- Proceduralization: Convert tacit or inconsistent work into explicit repeatable steps with inputs, outputs, and exception handling.▸ Mechanisms (10)
- Automation Routine
- Checklist
- Decision Tree
- Playbook
- Process Map
- Protocol
- Runbook
- Standard Operating Procedure — Freezes a stabilized, low-judgment routine into ordered steps, named roles, and explicit acceptance conditions so anyone can run it the same way.
- Swimlane Workflow Diagram
- Workflow Script
Also a related prime in 15 archetypes
- Assumption-Bounded Distributed Agreement: Make distributed agreement achievable by declaring the fault, timing, membership, and validity model, preserving safety when progress is uncertain, and using only decision evidence that is valid under those assumptions.
- Bounded-Rationality Decision Design: Match decision method, search depth, sufficiency threshold, and escalation to the real limits and stakes of the choice.
- Constraint Propagation and Decoupling: When constraints bind a problem into an unwieldy whole, propagate their implications first, then solve only the reduced and justified subproblems that remain.
- Demand-Triggered Deferred Evaluation: Represent optional or path-dependent work as a suspended unit, realize only the dependency closure demanded now, and make result sharing, side effects, failure timing, cancellation, lifetime, and first-use latency explicit.
- Discrete–Continuous Model Selection: Choose whether to model a process as discrete steps or continuous flow based on what must be measured, controlled, or decided.
- Dominant-Term Regime Modeling: Model what will matter at scale by identifying the dominant term in a limiting regime, classifying behavior by growth order, and treating lower-order detail as conditional residue rather than as the main guide.
- Dynamic Subproblem Reuse: Reuse solutions to recurring subproblems so repeated decision work does not have to be recomputed.
- Equivalence-Preserving Rewrite Optimization: Rewrite something into a cheaper, clearer, faster, safer, or more usable form only after proving or testing that the declared behavior stays equivalent.
- Formal Derivation System Design: Turn reasoning into an explicit symbolic machine by fixing symbols, well-formedness rules, axioms, inference rules, and derivation checks.
- Grammar-Guided Structure Recovery: Recover the nested structure carried by a flat sequence by binding the input to a grammar, preserving spans, retaining competing parses when needed, and validating the selected hierarchy.
Notes¶
The distinction between algorithm (procedure), function (input-output relation), and heuristic (approximate procedure without guarantees) is foundational to computer science and mathematics. Algorithms are also intimately tied to computability theory (Turing 1936, Church 1936) and the notion of "effective procedure." The design and analysis of algorithms remains one of computer science's central preoccupations, with rich subareas in sorting, searching, optimization, and graph algorithms.
References¶
[1] Knuth, D. E. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd ed.). Addison-Wesley. ISBN 9780201896831. Canonical source for the formal definition of an algorithm via its five properties — finiteness, definiteness, input, output, and effectiveness — supporting the Structural-Signature item 'the well-defined finite computational procedure' on FACT-D30-001. ↩
[2] Motwani, R., & Raghavan, P. (1995). Randomized Algorithms. Cambridge University Press. Canonical reference unifying deterministic and randomized algorithms as input-to-output mappings, distinguishing Las Vegas from Monte Carlo procedures — supports the Structural-Signature item 'the input-to-output deterministic-or-randomized mapping' on FACT-D30-002. ↩
[3] Hoare, C. A. R. (1969). "An Axiomatic Basis for Computer Programming." Communications of the ACM, 12(10), 576–580. Introduces Hoare logic with precondition/postcondition assertions as the formal framework for proving partial correctness (and, with termination, total correctness) of programs — supports 'the correctness-and-termination invariants' on FACT-D30-003. ↩
[4] Hartmanis, J., & Stearns, R. E. (1965). "On the Computational Complexity of Algorithms." Transactions of the American Mathematical Society, 117, 285–306. Founding paper of computational complexity theory: defines time- and space-bounded computation and proves hierarchy theorems — supports 'the time-and-space resource bounds' on FACT-D30-004. ↩
[5] Turing, A. M. (1936). "On Computable Numbers, with an Application to the Entscheidungsproblem." Proceedings of the London Mathematical Society, s2-42(1), 230–265. Defines computability via the abstract Turing machine, establishing machine-model independence as the criterion for an effective procedure — supports 'the abstract-machine-execution model independence' on FACT-D30-005. ↩
[6] Bishop, E. (1967). Foundations of Constructive Analysis. McGraw-Hill. Founds constructive analysis, distinguishing non-constructive existential proofs from constructive proofs whose 'performable operations' produce explicit results — supports 'the constructive-versus-existential proof distinction' on FACT-D30-006. ↩
[7] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms (3rd ed.). MIT Press. Defines an algorithm as 'any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output' — the verbatim definition the prime quotes on FACT-D30-007. ↩
[8] Dijkstra, E. W. (1959). "A Note on Two Problems in Connexion with Graphs." Numerische Mathematik, 1(1), 269–271. Original presentation of the shortest-path algorithm — a finite, definite procedure with provable correctness on graphs with non-negative edge weights — supporting the formal example on FACT-D30-008. ↩
[9] Gawande, A. (2009). The Checklist Manifesto: How to Get Things Right. Metropolitan Books. Cross-domain analysis of checklists (aviation preflight, surgical safety, construction) as definite step-by-step procedures producing reliable outputs independent of operator judgment — supports the preflight-checklist-as-algorithm example on FACT-D30-009. ↩
[10] Aho, A. V., Hopcroft, J. E., & Ullman, J. D. (1974). The Design and Analysis of Computer Algorithms. Addison-Wesley. Classical algorithm-design/analysis text establishing a rigorous framework for designing efficient algorithms and analysing worst-case complexity — supports the T1 correctness-vs-efficiency trade-off on FACT-D30-010. ↩
[11] Pearl, J. (1984). Heuristics: Intelligent Search Strategies for Computer Problem Solving. Addison-Wesley. Foundational study formalizing heuristics as strategies that guide search along promising paths but may yield suboptimal solutions or fail to terminate — sharply distinguishing them from algorithms with provable guarantees, supporting the T2 algorithm-vs-heuristic distinction on FACT-D30-011. ↩
[12] Goldberg, D. (1991). "What Every Computer Scientist Should Know About Floating-Point Arithmetic." ACM Computing Surveys, 23(1), 5–48. Canonical survey of how finite-precision floating-point implementation diverges from abstract real-number computation, producing rounding error, cancellation, and overflow not visible at the specification level — supports the T3 specification-vs-implementation tension on FACT-D30-012. ↩
[13] Karp, R. M. (1991). "An Introduction to Randomized Algorithms." Discrete Applied Mathematics, 34(1–3), 165–201. Surveys algorithms that make random choices and distinguishes deterministic, Las Vegas, and Monte Carlo classes with their respective worst-case/expected/probabilistic guarantees — supports the T4 determinism-vs-randomization tension on FACT-D30-013. ↩
[14] Floyd, R. W. (1967). "Assigning Meanings to Programs." In J. T. Schwartz (Ed.), Mathematical Aspects of Computer Science (Proceedings of Symposia in Applied Mathematics, vol. 19), 19–32. Providence, RI: American Mathematical Society. Introduces the inductive-assertions method for partial correctness and the well-founded-ordering method that converts termination claims into well-founded-descent proofs — supports the T5 termination-proof tension on FACT-D30-014. ↩
[15] Sedgewick, R., & Wayne, K. (2011). Algorithms (4th ed.). Addison-Wesley. ISBN 9780321573513. Modern treatment pairing algorithmic abstraction with empirical performance measurement on real implementations, addressing the gap between asymptotic elegance and practical executability — supports the T6 abstraction-vs-overhead tension on FACT-D30-015. ↩