According to some algorithmicists, algorithmics traditionally uses algorithm theory, which stems from mathematics. The growing need for innovative algorithms has caused increasing gaps between theory and practice. Originally, this motivated the development of algorithm engineering, which is viewed as experimental techniques related to software engineering. Currently, algorithm engineering is a methodology for algorithmic research that combines theory with implementation and experimentation in order to produce better algorithms with high practical impact. Still, researchers have questioned whether the notion of algorithms can be defined in a fully generable way and discussed what kinds of entities algorithms actually are. They have also struggled to maintain a view that formulates algorithms mathematically (e.g., Turing machines and finite-state machines [FSMs]) while adapting a more applied view. Answering the question of what algorithms have practical applications in software specifications in particular, this paper proposes a diagrammatical definition of an algorithm based on a new modeling machine called a thinging machine (TM). The machine has five actions (e.g., create, process, release, transfer, and receive) that can form a network of machines. The paper explores the application of the definition in Turing machines and FSMs. The results point to the fact that the proposed definition can serve as a middle-ground representation of algorithms, a definition which is between formal specification and the commonly used informal definition (e.g., set of instructions).
翻译:一些算法学家认为,算法学传统上使用来自数学的算法理论。对创新算法的日益需要导致理论和实践之间日益扩大的差距。最初,这促使了算法工程的发展,这种算法工程被视为与软件工程有关的实验技术。目前,算法工程是一种算法研究方法,它把理论与实施和实验结合起来,以便产生具有高度实际影响的更好的算法。然而,研究人员质疑算法概念是否可以以完全可基因化的方式界定,并讨论什么是实体的算法。他们也努力保持一种在数学上(例如图灵机器和限定状态机器)制定算法的视角,同时调整一个更实用的观点。在回答算法中哪些实际应用软件规格的问题时,本文件提出了一个基于新建模机器的算法的图表性定义,称为定型机器(TM)。机器有五种行动(例如,创建、处理、释放、转移和接收)可以形成机器网络的非正规动作(例如,图灵机和定型机器[FSMM] 的中间指令应用。该文件探索了在图式定义中使用的中间方向上的定义。