Purchase Solution

Turing Machine that Computes the Function f(n) = 2n + 3

Not what you're looking for?

Ask Custom Question

Consider the following Turing-machine model (which is used in one of the standard textbooks in recursion theory, a branch of mathematical logic: Recursively Enumerable Sets and Degrees, by Robert I. Soare, Springer-Verlag, New York, 1987):

The Turing machine is equipped with the following:

(i) a tape that is infinitely long in both directions and is divided into cells; at any given step, each cell either is blank or contains a 1 (we will refer to the latter type of cell as a non-blank cell)

(ii) a read head (which reads one cell of the tape at each step)

(iii) a finite set Q of states (Q = {q_0, q_1, q_2, ..., q_k} for some nonnegative integer k)

------------------------------------------------------------------------------------------------------------

At any given step of a Turing computation,

(a.) all but at most finitely many cells of the tape are blank (the rest, if any, contain a 1)

(b.) the machine can either remain in the current state or change to a different state

(c.) the contents of the cell being read can either change (from 1 to blank, if it currently contains a 1; from blank to 1, if it currently contains a blank) or remain as is

(d.) the read head must move by one unit, either to the right (R) or to the left (L), before the next step

---------------------------------------------------------

The program for a Turing machine consists of a finite set of 5-tuples (q, s, q', s', m), where q and q' are the current and subsequent states of the machine, and s and s' indicate the current and subsequent contents of the cell being read; if m = L, the machine is to move one unit to the left of the current cell; if m = R, the machine is to move one unit to the right of the current cell.

------------------------------------------------------------

The input to the machine, n, is represented on the tape by a string of n + 1 consecutive 1's, with all the other cells blank.

Examples:

If n = 0, only one cell of the tape contains a 1 (since n + 1 = 0 + 1 = 1).

If n = 1, there are two consecutive cells containing a 1 (since n + 1 = 1 + 1 = 2), and all the other cells are blank.

If n = 2, there is a string of three consecutive cells containing a 1 (since n + 1 = 2 + 1 = 3), and all the other cells are blank.

------------------------------------------------------------

The machine begins in state q_1, with the read head positioned at the leftmost cell of the tape that contains a 1.

The halting state of the machine is q_0; if the machine ever reaches state q_0, the machine halts and outputs the total number of 1's on the tape, which is the value of the function being computed.

-----------------------------------------------------------

Using this Turing-machine model, create a program for a Turing machine that computes the function f: N -> N defined by f(n) = 2n + 3, where N is the set of all natural numbers (i.e., N is the set of all nonnegative integers).

Purchase this Solution

Solution Summary

The Turing-machine model is described in detail, the program for computing the given function is given in its entirety, and an explanation of what happens at each step of the computation is presented.

Solution Preview

We list a set of instructions (5-tuples, as described in the statement of the problem) for a Turing machine that computes the function f(n) = 2n + 3, and explain what is happening when each of these instructions is executed.

The basic strategy is as follows:

On input n, the machine begins with a string of n + 1 cells containing a 1 (and all the other cells blank). Since f(n) = 2n + 3, the machine is to have a total of 2n + 3 cells containing a 1 when it halts. Note that 2n + 3 = (2n + 2) + 1 = 2(n+ 1) + 1. When the machine executes the first part of our program, it will alternately replace the 1 in the (then-leftmost) non-blank cell with a blank and write 1's in a pair of consecutive blank cells. Thus the first part will start with n + 1 non-blank cells and end with 2(n + 1) = 2n + 2 non-blank cells. In the second part, it will write a 1 in one additional blank cell, for a total of 2n + 3 non-blank cells.

Let c_0, c_1, ..., c_n denote the cells that originally contain a 1 (on input n). (When the machine halts, the 1's will be located in cells c_(n + 1), c_(n + 2), ..., c_(3n + 3).)

The first cell in which a 1 is replaced with a blank will be c_0; the first pair of new 1's will be written in cells c_(n + 2) and c_(n + 3).

The second cell in which a 1 is replaced with a blank will be c_1; the second ...

Solution provided by:
Education
  • AB, Hood College
  • PhD, The Catholic University of America
  • PhD, The University of Maryland at College Park
Recent Feedback
  • "Thanks for your assistance. "
  • "Thank you. I understand now."
  • "Super - Thank You"
  • "Very clear. I appreciate your help. Thank you."
  • "Great. thank you so much!"
Purchase this Solution


Free BrainMass Quizzes
C++ Operators

This quiz tests a student's knowledge about C++ operators.

Word 2010: Tables

Have you never worked with Tables in Word 2010? Maybe it has been a while since you have used a Table in Word and you need to brush up on your skills. Several keywords and popular options are discussed as you go through this quiz.

Inserting and deleting in a linked list

This quiz tests your understanding of how to insert and delete elements in a linked list. Understanding of the use of linked lists, and the related performance aspects, is an important fundamental skill of computer science data structures.

Javscript Basics

Quiz on basics of javascript programming language.

C# variables and classes

This quiz contains questions about C# classes and variables.