Research on algorithms has drastically increased in recent years. Various sub-disciplines of computer science investigate algorithms according to different objectives and standards. This plurality of the field has led to various methodological advances that have not yet been transferred to neighboring sub-disciplines. The central roadblock for a better knowledge exchange is the lack of a common methodological framework integrating the perspectives of these sub-disciplines. It is the objective of this paper to develop a research framework for algorithm engineering. Our framework builds on three areas discussed in the philosophy of science: ontology, epistemology and methodology. In essence, ontology describes algorithm engineering as being concerned with algorithmic problems, algorithmic tasks, algorithm designs and algorithm implementations. Epistemology describes the body of knowledge of algorithm engineering as a collection of prescriptive and descriptive knowledge, residing in World 3 of Popper's Three Worlds model. Methodology refers to the steps how we can systematically enhance our knowledge of specific algorithms. The framework helps us to identify and discuss various validity concerns relevant to any algorithm engineering contribution. In this way, our framework has important implications for researching algorithms in various areas of computer science.
翻译:近年来,算法研究大幅增长。计算机科学的各个子学科根据不同的目标和标准对算法进行研究。该领域的多元性带来了多种方法论进展,但这些进展尚未被转移到相邻子学科。阻碍知识更好交流的核心障碍在于缺乏一个整合这些子学科视角的共同方法论框架。本文旨在建立一个算法工程的研究框架。该框架建立在科学哲学中讨论的三个领域之上:本体论、认识论和方法论。本质上,本体论将算法工程描述为关注算法问题、算法任务、算法设计和算法实现。认识论将算法工程的知识体系描述为一组规范性和描述性知识,这些知识存在于波普尔三世界模型的第三世界中。方法论则指我们如何系统地增强对特定算法知识的步骤。该框架有助于我们识别和讨论任何算法工程贡献相关的各种效度问题。通过这种方式,本文框架对计算机科学各领域的算法研究具有重要启示。