NISHIO Hirokazu[English][日本語]

Algorithms are not recipes.

from Toward Relative Art & Technology Algorithms are not recipes. The idea that "an algorithm is not a recipe" offers important insight into understanding the characteristics of each while highlighting the essential difference between an algorithm and a recipe (a recipe or procedure). This section breaks down and explains the key points contained in this phrase.

  1. recipe and linearity A recipe is a set of instructions to be followed to achieve a specific result, such as cooking. Typically, a recipe is designed as a linear process. It has a one-way flow of Procedure A → Procedure B → Procedure C.... There is no return to a step once completed, and all steps move toward the final result. Example: A recipe for baking a cake involves the sequential steps of mixing the ingredients, baking, and finishing. There is usually no recursion or repetition in this process.
  2. algorithm and recursion An algorithm is a logical sequence of steps or rules for solving a problem. Algorithms contain many characteristics that are not found in recipes.

Recursion: An algorithm can include a process that calls itself (recursion). Recursive algorithms have the structure of decomposing a problem into smaller subproblems and solving those parts with the same algorithm. Example: Recursive algorithm to compute the Fibonacci sequence. Branching and selection: flexibility to choose different procedures depending on conditions. Iteration: The same procedure is repeated over and over again in a loop structure. Example: The

The merge sort algorithm divides the array into smaller parts and merges them together, sorting recursively. Thus, the algorithm can represent a flexible and dynamic process. Linearity vs. recursion Whereas recipes are linear and proceed in a predetermined order, algorithms involve branching, iteration, and recursion to represent more complex and adaptive processes. Important differences: 1. Recipes are not supposed to return to a procedure once performed. In algorithms, steps may be repeated until the problem is solved, using recursion or loops. 4. significance of algorithm recursion Issue Segmentation and Integration:. Recursive algorithms divide a problem into smaller parts and solve each part to solve the whole. Self-referential structure:. The algorithm repeats the same process based on certain rules by referring to self. Flexibility and versatility:. Recursivity provides adaptable solutions to dynamic and changing problems. 5. philosophical perspective The proposition that "an algorithm is not a recipe" contains the following philosophical implication:

Fixity vs. dynamicity: recipes produce fixed and predictable results, while algorithms involve processes that change in response to circumstances. Difference between human and machine thinking: a recipe is a simple procedure based on human understanding, while an algorithm corresponds to a complex computational process by a computer. 6. conclusion A recipe is a fixed process with linear steps and guidelines for achieving a predetermined result. Algorithms have flexible structures such as recursion, branching, and iteration, and represent dynamic and adaptive problem-solving processes. Understanding this distinction will give you a deeper appreciation for the flexibility of algorithms and their potential. This also reaffirms the importance of algorithms in technology and programming.


This page is auto-translated from /nishio/アルゴリズムはレシピではない using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I'm very happy to spread my thought to non-Japanese readers.


(C)NISHIO Hirokazu / Converted from Markdown (en)
Source: [GitHub] / [Scrapbox]