# 计算模型

此词条暂由彩云小译翻译，翻译字数共275，未经人工整理和审校，带来阅读不便，请见谅。

In computer science, and more specifically in computability theory and computational complexity theory, a **model of computation** is a model which describes how an output of a mathematical function is computed given an input. A model describes how units of computations, memories, and communications are organized. The computational complexity of an algorithm can be measured given a model of computation. Using a model allows studying the performance of algorithms independently of the variations that are specific to particular implementations and specific technology.

In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how an output of a mathematical function is computed given an input. A model describes how units of computations, memories, and communications are organized. The computational complexity of an algorithm can be measured given a model of computation. Using a model allows studying the performance of algorithms independently of the variations that are specific to particular implementations and specific technology.

在计算机科学中，特别是在可计算性理论和计算复杂性理论，计算模型是一个模型，它描述了一个数学函数的输出是如何在给定输入的情况下计算出来的。模型描述了计算单元、存储器和通信的组织方式。算法的计算复杂度可以通过给定的计算模型来度量。使用模型可以独立于特定实现和特定技术的变体来研究算法的性能。

## Models

Models of computation can be classified in three categories: sequential models, functional models, and concurrent models.

Models of computation can be classified in three categories: sequential models, functional models, and concurrent models.

计算模型可以分为三类: 顺序模型、功能模型和并发模型。

Sequential models include:

Sequential models include:

顺序模型包括:

Functional models include:

Functional models include:

功能模型包括:

Concurrent models include:

Concurrent models include:

并发模型包括:

Models differ in their expressive power; for example, each function that can be computed by a *Finite state machine* can also be computed by a *Turing machine*, but not vice versa.

Models differ in their expressive power; for example, each function that can be computed by a Finite state machine can also be computed by a Turing machine, but not vice versa.

模型的表达能力不同; 例如，有限状态机可以计算的每个函数也可以由图灵机计算，但反之则不然。

A nondeterministic model of computation is associated with some of these models of computation. Nondeterministic models are not useful for practical computation; they are used in the study of computational complexity of algorithms. The unsolved problem P = NP is a well-known example.

A nondeterministic model of computation is associated with some of these models of computation. Nondeterministic models are not useful for practical computation; they are used in the study of computational complexity of algorithms. The unsolved problem P = NP is a well-known example.

一个不确定的计算模型与其中的一些计算模型相关联。非确定性模型对实际计算没有用处，它们用于研究算法的计算复杂性。未解决的问题 p = NP 就是一个著名的例子。

## Uses

In the field of runtime analysis of algorithms, it is common to specify a computational model in terms of *primitive operations* allowed which have unit cost, or simply **unit-cost operations**. A commonly used example is the random access machine, which has unit cost for read and write access to all of its memory cells. In this respect, it differs from the above-mentioned Turing machine model.

In the field of runtime analysis of algorithms, it is common to specify a computational model in terms of primitive operations allowed which have unit cost, or simply unit-cost operations. A commonly used example is the random access machine, which has unit cost for read and write access to all of its memory cells. In this respect, it differs from the above-mentioned Turing machine model.

在算法的运行时分析领域中，通常指定一个计算模型为允许有单位成本或者简单的单位成本操作的基本操作。一个常用的例子是随机访问机器，它具有对其所有内存单元的读写访问的单位成本。在这方面，它不同于上述图灵机模型。

## Categories

There are many models of computation, differing in the set of admissible operations and their computations cost. They fall into the following broad categories:

There are many models of computation, differing in the set of admissible operations and their computations cost. They fall into the following broad categories:

有许多计算模型，不同的可容许运算集和它们的计算代价。它们分为以下几大类:

- Abstract machine and models equivalent to it (e.g. lambda calculus is equivalent to the Turing machine) - used in proofs of computability and upper bounds on computational complexity of algorithms.

- Decision tree models - used in proofs of lower bounds on computational complexity of algorithmic problems.

## See also

- Stack machine (0-operand machine)

- Accumulator machine (1-operand machine)

- Register machine (2,3,... operand machine)

## References

## Further reading

- Fernández, Maribel (2009).
*Models of Computation: An Introduction to Computability Theory*. Undergraduate Topics in Computer Science. Springer. ISBN 978-1-84882-433-1.

- Savage, John E. (1998).
*Models Of Computation: Exploring the Power of Computing*. Addison-Wesley. ISBN 978-0201895391.

Category:Computational complexity theory

类别: 计算复杂性理论

Category:Computability theory

类别: 可计算性理论

This page was moved from wikipedia:en:Model of computation. Its edit history can be viewed at 计算模型/edithistory