next up previous contents
Next: Finite-State Machines and Pushdown Up: General Computational Models Previous: Logic Circuits

Machines with Memory

 

As we saw in Chapter 1, every finite computational task can be realized by a combinational circuit. While this is an important concept, it is not very practical; we cannot afford to design a special circuit for each computational task. Instead we generally perform computational tasks with machines having memory. In a strong sense to be explored in this chapter, the memory of such machines allows them to reuse their equivalent circuits to realize functions of high circuit complexity.

In this chapter we examine the deterministic and nondeterministic finite-state machine (FSM), the random-access machine (RAM), and the Turing machine. The finite-state machine moves from state to state while reading input and producing output. The RAM has a central processing unit (CPU) and a random-access memory with the property that each memory word can be accessed in one unit of time. Its CPU executes instructions, reading and writing data from and to the memory. The Turing machine has a control unit that is a finite-state machine and a tape unit with a head that moves from one tape cell to a neighboring one in each unit of time. The control unit reads from, writes to, and moves the head of the tape unit.

We demonstrate through simulation that the RAM and the Turing machine are universal in the sense that every finite-state machine can be simulated by the RAM and that it and the Turing machine can simulate each other. Since they are equally powerful, either can be used as a reference model of computation.

We also simulate with circuits computations performed by the FSM, RAM, and Turing machine. These circuit simulations establish two important results. First, they show that all computations are constrained by the available resources, such as space and time. For example, if a function f is computed in T steps by the RAM with storage capacity S (in bits), then S and T must satisfy the inequality $C_{\Omega}(f) = O(ST)$, where $C_{\Omega}(f)$ is the size of the smallest circuit for f over the complete basis $\Omega$.Any attempt to compute f on the RAM using space S and time T whose product is too small will fail. Second, an $O(\log ST)$-space, O(ST)-time program exists to write the descriptions of circuits simulating the above machines. This fact leads to the identification in this chapter of the first examples of P-complete and NP-complete problems.


next up previous contents
Next: Finite-State Machines and Pushdown Up: General Computational Models Previous: Logic Circuits
John Savage
11/22/1997