Relationships Between Nondeterministic and Deterministic Tape Complexities
This paper is under a licence that does not allow it to be reproduced, so what is here is its front matter and a short abstract. Read it at the publisher's page.
Department of Applied Physics and Information Science, University of California, San Diego, La Jolla, California 92037
Received August 29, 1969
The amount of storage needed to simulate a nondeterministic tape bounded Turing machine on a deterministic Turing machine is investigated. Results include the following: Theorem. A nondeterministic -tape bounded Turing machine can be simulated by a deterministic -tape bounded Turing machine, provided . Computations of nondeterministic machines are shown to correspond to threadings of certain mazes. This correspondence is used to produce a specific set, namely the set of all codings of threadable mazes, such that, if there is any set which distinguishes nondeterministic tape complexity classes from deterministic tape complexity classes, then this is one such set.
Mối quan hệ giữa độ phức tạp băng từ không tất định và tất định*
Walter J. Savitch
Department of Applied Physics and Information Science, University of California, San Diego, La Jolla, California 92037
Nhận ngày 29 tháng 8, 1969
Lượng bộ nhớ cần thiết để mô phỏng một máy Turing bị giới hạn băng từ không tất định trên một máy Turing tất định được nghiên cứu. Các kết quả bao gồm những điều sau: Định lý. Một máy Turing bị giới hạn băng từ không tất định có thể được mô phỏng bởi một máy Turing bị giới hạn băng từ tất định, với điều kiện . Các tính toán của các máy không tất định được chỉ ra là tương ứng với các phép luồn qua của một số mê cung nhất định. Sự tương ứng này được sử dụng để tạo ra một tập cụ thể, cụ thể là tập tất cả các mã hóa của các mê cung có thể luồn qua, sao cho, nếu có bất kỳ tập nào phân biệt các lớp độ phức tạp băng từ không tất định với các lớp độ phức tạp băng từ tất định, thì đây là một tập như vậy.
Introduction
Giới thiệu
A well-known open problem in the theory of formal languages and computational complexity is to decide whether or not there exists a nondeterministic context-sensitive language, that is, to decide whether or not there is a set which is accepted by a nondeterministic linear bounded automaton, but is accepted by no such deterministic machine. In this paper, we give some partial answers to a natural generalization of this problem. We attempt to answer the following question: "Given a nondeterministic tape bounded Turing machine which accepts a set , how much addition storage does a deterministic Turing machine require to recognize ?"
Một bài toán mở nổi tiếng trong lý thuyết ngôn ngữ hình thức và độ phức tạp tính toán là quyết định liệu có tồn tại hay không một ngôn ngữ phi ngữ cảnh nhạy cảm không tất định, tức là quyết định liệu có hay không một tập được chấp nhận bởi một ôtômát bị giới hạn tuyến tính không tất định, nhưng không được chấp nhận bởi bất kỳ máy tất định tương tự nào. Trong bài báo này, chúng tôi đưa ra một số câu trả lời từng phần cho một khái quát hóa tự nhiên của bài toán này. Chúng tôi cố gắng trả lời câu hỏi sau: "Cho một máy Turing bị giới hạn băng không tất định chấp nhận một tập , một máy Turing tất định cần bao nhiêu bộ nhớ bổ sung để nhận biết ?"
More specifically, we show that any nondeterministic -tape bounded Turing machine can be simulated by a deterministic -tape bounded Turing machine, provided . Thus, in particular, every context-sensitive language can be recognized within deterministic storage , where is the length of the input. As a corollary of the proof of this theorem, we get that if a context-sensitive language is
Cụ thể hơn, chúng tôi chỉ ra rằng bất kỳ máy Turing bị giới hạn băng không tất định nào cũng có thể được mô phỏng bởi một máy Turing bị giới hạn băng tất định, với điều kiện . Do đó, đặc biệt, mọi ngôn ngữ nhạy cảm ngữ cảnh đều có thể được nhận biết trong bộ nhớ tất định , trong đó là độ dài của đầu vào. Như một hệ quả của chứng minh định lý này, chúng tôi thu được rằng nếu một ngôn ngữ nhạy cảm ngữ cảnh được
- This work is based on a portion of the author's doctoral dissertation in the Department of Mathematics of the University of California, Berkeley. Most of the results were announced in [9]. Part of this research was done while the author was a National Science Foundation Graduate Fellow.
- Công trình này dựa trên một phần luận án tiến sĩ của tác giả tại Khoa Toán học của University of California, Berkeley. Phần lớn các kết quả đã được công bố trong [9]. Một phần của nghiên cứu này được thực hiện khi tác giả là National Science Foundation Graduate Fellow.
accepted by a nondeterministic linear bounded automaton within polynomial time, then the language is accepted by a deterministic Turing machine within storage . It is also shown that if nondeterministic and deterministic tape complexity classes are equal for "small" functions, then they are equal for "large" functions.
chấp nhận bởi một ôtômát bị giới hạn tuyến tính không tất định trong thời gian đa thức, thì ngôn ngữ đó được chấp nhận bởi một máy Turing tất định trong bộ nhớ . Cũng chỉ ra rằng nếu các lớp độ phức tạp băng không tất định và tất định bằng nhau đối với các hàm "nhỏ", thì chúng cũng bằng nhau đối với các hàm "lớn".
The notion of a maze is formalized and computations of nondeterministic machines are related to threadings of certain mazes. This relation is used to obtain a specific set, namely the set of codings of threadable mazes, such that, if there is any set which distinguishes nondeterministic tape complexity classes from deterministic tape complexity classes, then this is one such set. That is, there is a nondeterministic Turing machine which accepts the codings of threadable mazes within storage . Also, if there is a deterministic Turing machine which accepts them within the same storage, , then, for every storage function , any nondeterministic -tape bounded Turing machine can be stimulated by a deterministic -tape bounded Turing machine.
Khái niệm mê cung được hình thức hóa và các tính toán của các máy không tất định được liên hệ với các cách đi xuyên qua của một số mê cung nhất định. Mối liên hệ này được sử dụng để thu được một tập cụ thể, cụ thể là tập các mã hóa của các mê cung có thể đi xuyên qua, sao cho, nếu có bất kỳ tập nào phân biệt các lớp độ phức tạp băng không tất định với các lớp độ phức tạp băng tất định, thì đây là một tập như vậy. Nghĩa là, có một máy Turing không tất định chấp nhận các mã hóa của các mê cung có thể đi xuyên qua trong bộ nhớ . Ngoài ra, nếu có một máy Turing tất định chấp nhận chúng trong cùng bộ nhớ, , thì với mọi hàm bộ nhớ , bất kỳ máy Turing bị giới hạn băng không tất định nào cũng có thể được kích thích bởi một máy Turing bị giới hạn băng tất định.
Machine Model
Mô hình máy
The device studied in this paper is the multitape Turing Machine. In the terminology of [3], it is a Turing machine with finitely many two-way infinite storage tapes and a read only input tape provided with end markers. We shall give only an informal definition of the device. A multitape Turing machine (hereafter called simply Turing machine) is a finite state control attached to a read only input tape and finitely many read/write storage tapes. The tapes are divided into squares. Each square of a storage tape is capable of holding one symbol from the finite storage tape alphabet . The input tape will always contain a finite string of symbols from the finite input alphabet . The string is separated by two symbols not in called left and right end markers. Each tape has one head communicating with the finite control.
Thiết bị được nghiên cứu trong bài báo này là Máy Turing nhiều băng. Theo thuật ngữ của [3], đây là một máy Turing với hữu hạn băng lưu trữ vô hạn hai chiều và một băng đầu vào chỉ đọc được cung cấp các dấu kết thúc. Chúng tôi chỉ đưa ra một định nghĩa không chính thức về thiết bị này. Một máy Turing nhiều băng (sau đây gọi đơn giản là máy Turing) là một bộ điều khiển trạng thái hữu hạn được gắn với một băng đầu vào chỉ đọc và hữu hạn các băng lưu trữ đọc/ghi. Các băng được chia thành các ô. Mỗi ô của một băng lưu trữ có khả năng chứa một ký hiệu từ bảng chữ cái băng lưu trữ hữu hạn . Băng đầu vào sẽ luôn chứa một chuỗi hữu hạn gồm các ký hiệu từ bảng chữ cái đầu vào hữu hạn . Chuỗi được phân cách bởi hai ký hiệu không thuộc được gọi là dấu kết thúc bên trái và dấu kết thúc bên phải. Mỗi băng có một đầu đọc giao tiếp với bộ điều khiển hữu hạn.
At any point in time, each head will scan one square on its tape and the control will be in one state. Depending on this state and the symbols scanned by the heads, the machine will, in one step, assume another state, overwrite a symbol on the scanned square of each of its storage tapes, and then shift some of its heads (including possibly the input head) either left or right one square. The finite control is designed so that the input head will never leave the segment of tape containing and the end markers. The machine is said to be deterministic if there is only one possible action at each step. It is said to be nondeterministic if there are finitely many possible actions at each step.
Tại bất kỳ thời điểm nào, mỗi đầu đọc sẽ quét một ô trên băng của nó và bộ điều khiển sẽ ở một trạng thái. Phụ thuộc vào trạng thái này và các ký hiệu được các đầu đọc quét, máy sẽ, trong một bước, chuyển sang một trạng thái khác, ghi đè một ký hiệu trên ô đang được quét của mỗi băng lưu trữ của nó, rồi dịch chuyển một số đầu đọc của nó (có thể bao gồm cả đầu đọc đầu vào) sang trái hoặc phải một ô. Bộ điều khiển hữu hạn được thiết kế sao cho đầu đọc đầu vào sẽ không bao giờ rời khỏi đoạn băng chứa và các dấu kết thúc. Máy được gọi là tất định nếu chỉ có một hành động khả dĩ tại mỗi bước. Máy được gọi là không tất định nếu có hữu hạn hành động khả dĩ tại mỗi bước.
Some states are distinguished and called accepting states and one state is distinguished and called the initial state. We say the deterministic machine accepts the input string over if enters an accepting state after finitely many steps, when started in the initial state, with all storage tapes blank, on its input tape and its input head scanning the left end marker. The definition is the same in the case is nondeterministic except that we merely require that there be a possible finite sequence of steps leading to an accepting state, starting from the initial configuration described above.
Một số trạng thái được phân biệt và gọi là các trạng thái chấp nhận và một trạng thái được phân biệt và gọi là trạng thái ban đầu. Chúng tôi nói máy tất định chấp nhận chuỗi đầu vào trên nếu đi vào một trạng thái chấp nhận sau hữu hạn bước, khi bắt đầu ở trạng thái ban đầu, với tất cả các băng lưu trữ trống, trên băng đầu vào và đầu đọc đầu vào đang quét dấu kết thúc bên trái. Định nghĩa này cũng giống trong trường hợp là không tất định ngoại trừ việc chúng ta chỉ yêu cầu rằng có một chuỗi hữu hạn các bước khả dĩ dẫn đến một trạng thái chấp nhận, bắt đầu từ cấu hình ban đầu được mô tả ở trên.
Definition. Suppose is a function on the natural numbers, is a Turing machine (deterministic or nondeterministic), and is a set of strings over the input alphabet of . is said to accept the set within storage provided that
Định nghĩa. Giả sử là một hàm trên các số tự nhiên, là một máy Turing (tất định hoặc không tất định), và là một tập các chuỗi trên bảng chữ cái đầu vào của . được nói là chấp nhận tập trong bộ nhớ nếu
(i) for each string in , there is at least one possible computation of which accepts and in which each storage tape head scans at most squares, and
(i) với mỗi chuỗi trong , có ít nhất một tính toán khả dĩ của chấp nhận và trong đó mỗi đầu đọc băng lưu trữ quét nhiều nhất ô, và
(ii) accepts no string not in . is the length of the string, .
(ii) không chấp nhận chuỗi nào không thuộc . là độ dài của chuỗi, .
In this paper we are considering only the growth rates of storage functions. That is, for our purposes, the storage functions and are the same, for any constant . This identification of functions follows from the fact that our Turing machines are allowed arbitrary finite storage tape alphabets. Thus, any Turing machine which operates in storage can be modified to operate in storage and still accept the same set of tapes. (See, for example, [3].) We assume the reader is familiar with such tape reduction techniques.
Trong bài báo này chúng tôi chỉ xem xét tốc độ tăng trưởng của các hàm bộ nhớ. Nghĩa là, đối với mục đích của chúng tôi, các hàm bộ nhớ và là giống nhau, với mọi hằng số . Sự đồng nhất này của các hàm xuất phát từ thực tế rằng các máy Turing của chúng tôi được phép có các bảng chữ cái băng lưu trữ hữu hạn tùy ý. Vì vậy, bất kỳ máy Turing nào hoạt động với bộ nhớ đều có thể được sửa đổi để hoạt động với bộ nhớ và vẫn chấp nhận cùng một tập băng. (Xem, ví dụ, [3].) Chúng tôi giả sử người đọc quen thuộc với các kỹ thuật giảm băng như vậy.
In what follows, it will sometimes be convenient to assume that the storage functions are "nice". The niceness condition we want is that the functions be measurable [4].
Trong phần tiếp theo, đôi khi sẽ thuận tiện khi giả sử rằng các hàm lưu trữ là "tốt". Điều kiện về tính tốt mà chúng ta muốn là các hàm phải đo được [4].
Definition. A function is said to be measurable if there is some Turing machine with just one storage tape such that, given any input of length , the machine will halt after a computation in which the storage tape head scans exactly squares.
Định nghĩa. Một hàm được gọi là đo được nếu tồn tại một máy Turing chỉ với một băng lưu trữ sao cho, với bất kỳ đầu vào nào có độ dài , máy sẽ dừng sau một quá trình tính toán trong đó đầu đọc của băng lưu trữ quét chính xác ô.
Apparently, all common storage functions are measurable. In particular, any polynomial in and is measurable.
Có vẻ như tất cả các hàm lưu trữ thông dụng đều đo được. Cụ thể, mọi đa thức theo và đều đo được.
Deterministic Simulation of Nondeterministic Turing Machines
Mô phỏng xác định của các máy Turing không xác định
Theorem 1. If a set, , is accepted by a nondeterministic Turing machine, , within storage , then is accepted by some deterministic Turing machine, , within storage .
Định lý 1. Nếu một tập, , được chấp nhận bởi một máy Turing không xác định, , trong phạm vi lưu trữ , thì được chấp nhận bởi một máy Turing xác định nào đó, , trong phạm vi lưu trữ .
Proof. The theorem is proved by exhibiting an algorithm whereby can simulate the computations of . The algorithm is similar to that used by Lewis, Stearns, and Hartmanis [7] to show that every context-free language is accepted by a deterministic Turing machine within storage .
Chứng minh. Định lý được chứng minh bằng cách đưa ra một thuật toán theo đó có thể mô phỏng các phép tính của . Thuật toán này tương tự như thuật toán được Lewis, Stearns, và Hartmanis [7] sử dụng để chỉ ra rằng mọi ngôn ngữ phi ngữ cảnh đều được chấp nhận bởi một máy Turing xác định trong phạm vi lưu trữ .
Suppose the Turing machine has storage tapes, storage tape alphabet , and internal state set . Let , where and are two new symbols. An instantaneous description (ID) of is a string over of the form pq u₁ ↓ v₁ u₂ ↓ v₂ ... uₖ ↓ vₖ, where p is a number in dyadic notation¹ indicating the position of the input head of , q is an element of Q indicating that the finite control of is in state q, and are elements of , . is interpreted to mean that is the contents of the ith storage tape of and the head on this tape is scanning the first symbol of string . Thus, except for the contents of the input tape, an ID of is a complete description of a configuration of .
Giả sử máy Turing có băng lưu trữ, bảng chữ cái của băng lưu trữ , và tập trạng thái bên trong . Gọi , trong đó và là hai ký hiệu mới. Một mô tả tức thời (ID) của là một chuỗi trên có dạng pq u₁ ↓ v₁ u₂ ↓ v₂ ... uₖ ↓ vₖ, trong đó p là một số ở dạng ký hiệu dyadic¹ chỉ vị trí của đầu đọc đầu vào của , q là một phần tử của Q chỉ ra rằng bộ điều khiển hữu hạn của đang ở trạng thái q, và là các phần tử của , . được hiểu là là nội dung của băng lưu trữ thứ i của và đầu đọc trên băng này đang quét ký hiệu đầu tiên của chuỗi . Vì vậy, ngoại trừ nội dung của băng đầu vào, một ID của là một mô tả hoàn chỉnh về một cấu hình của .
Since accepts the set within storage , it follows that for each string w of length n accepted by , there is a computation of accepting w in which every ID has length not exceeding . Furthermore, since each ID is of length at most , the computation need take no more than steps. c and are constants depending only on and not on the input w.
Vì chấp nhận tập trong phạm vi lưu trữ , nên suy ra rằng với mỗi chuỗi w có độ dài n được chấp nhận, tồn tại một phép tính của chấp nhận w trong đó mỗi ID có độ dài không vượt quá . Hơn nữa, vì mỗi ID có độ dài nhiều nhất là , phép tính cần không quá bước. c và là các hằng số chỉ phụ thuộc vào chứ không phụ thuộc vào đầu vào w.
We first give the algorithm for the case: is measurable.
Trước hết chúng ta đưa ra thuật toán cho trường hợp: là đo được.
Given an input of length n, initializes its computation by dividing one of its storage tapes into blocks (called registers), each of length , followed by blocks (called tags), each capable of storing either 0 or 1. This it can easily do if is measurable. [y] is the largest integer not exceeding y. Note that each register is capable of holding any ID of in which the nonblank portion of every storage tape is at most . has a second storage tape for scratch work.
Với một đầu vào có độ dài n, khởi tạo phép tính của nó bằng cách chia một trong các băng lưu trữ của nó thành khối (được gọi là các thanh ghi), mỗi khối có độ dài , tiếp theo là khối (được gọi là các thẻ), mỗi khối có khả năng lưu trữ hoặc 0 hoặc 1. Nó có thể dễ dàng thực hiện việc này nếu là đo được. [y] là số nguyên lớn nhất không vượt quá y. Lưu ý rằng mỗi thanh ghi có khả năng chứa bất kỳ ID nào của trong đó phần không trắng của mỗi băng lưu trữ nhiều nhất là . có một băng lưu trữ thứ hai cho công việc tạm thời.
The idea of the algorithm is as follows. has the string w as input. In the course of the algorithm, will consider two ID's I, stored in particular registers. For a prechosen m, it will need to check if, with input w, can in steps change its configuration from I to . Furthermore, will have to perform this task using only m registers. proceeds as follows. It runs through (in a systematic way) all ID's of and for each , checks to see if there is a computation of at most steps from I to , and a computation of at most steps from to . needs one register to keep track of the , leaving it with registers. So has reduced the task of simulating moves of using m registers to simulating moves of using registers. then reduces each computation of steps to two computations of steps. continues to reduce the length of the computations it need check until it need only check, for appropriate ID's and , whether, with input w, can in one step go from to . This it can easily do using zero storage. Now if there is any accepting computation of , then there is one which accepts in steps. So can simulate this computation using registers or about squares of storage tape.
Ý tưởng của thuật toán như sau. có chuỗi w làm đầu vào. Trong quá trình của thuật toán, sẽ xem xét hai ID I, được lưu trong các thanh ghi cụ thể. Với một m được chọn trước, nó sẽ cần kiểm tra xem, với đầu vào w, có thể trong bước thay đổi cấu hình của nó từ I sang hay không. Hơn nữa, sẽ phải thực hiện nhiệm vụ này chỉ sử dụng m thanh ghi. tiến hành như sau. Nó duyệt qua (theo một cách có hệ thống) tất cả các ID của và với mỗi , kiểm tra xem có một tính toán gồm không quá bước từ I đến , và một tính toán gồm không quá bước từ đến hay không. cần một thanh ghi để theo dõi , khiến nó còn lại thanh ghi. Vì vậy đã giảm nhiệm vụ mô phỏng chuyển động của sử dụng m thanh ghi thành mô phỏng chuyển động của sử dụng thanh ghi. Sau đó giảm mỗi tính toán gồm bước thành hai tính toán gồm bước. tiếp tục giảm độ dài của các tính toán mà nó cần kiểm tra cho đến khi nó chỉ cần kiểm tra, với các ID thích hợp và , liệu với đầu vào w, có thể trong một bước đi từ đến hay không. Điều này nó có thể dễ dàng thực hiện bằng cách sử dụng không gian lưu trữ bằng không. Bây giờ nếu có bất kỳ tính toán chấp nhận nào của , thì có một tính toán chấp nhận trong bước. Vì vậy có thể mô phỏng tính toán này bằng cách sử dụng thanh ghi hoặc khoảng ô của băng lưu trữ.
We now define some notation for a formal statement of the algorithm. Since ID's are strings over a finite alphabet, , they may be considered to be integers in m-adic notation, where m is the number of symbols in . More precisely, if then the string will represent the number . We will not distinguish between a string and the number it represents.
Bây giờ chúng ta định nghĩa một số ký hiệu cho phát biểu hình thức của thuật toán. Vì các ID là các chuỗi trên một bảng chữ cái hữu hạn, , chúng có thể được xem như các số nguyên trong ký hiệu m-adic, trong đó m là số ký hiệu trong . Cụ thể hơn, nếu thì chuỗi sẽ biểu diễn số . Chúng ta sẽ không phân biệt giữa một chuỗi và số mà nó biểu diễn.
¹ The string over the alphabet {1, 2} is the dyadic representation of the number .
¹ Chuỗi trên bảng chữ cái {1, 2} là biểu diễn dyadic của số .
DEFINITION. If and are ID's of and if can in one step, with input , pass from configuration to configuration , or if , then we will write . In the algorithm we will test if is true for arbitrary strings over . If either or is not an ID of , then the test fails.
ĐỊNH NGHĨA. Nếu và là các ID của và nếu có thể trong một bước, với đầu vào , chuyển từ cấu hình sang cấu hình , hoặc nếu , thì ta sẽ viết . Trong thuật toán, ta sẽ kiểm tra xem có đúng với các chuỗi tùy ý trên hay không. Nếu hoặc không phải là một ID của , thì phép kiểm tra thất bại.
In the following algorithm, denotes the contents of the -th register and denotes the contents of the -th tag . has a string as input and all references to computations of mean computations of under the input and in which the nonblank portion of each work tape remains at most squares long. At any point in the computation of , if , then there is a computation of from the start ID to .
Trong thuật toán sau, biểu thị nội dung của thanh ghi thứ và biểu thị nội dung của thẻ thứ . có một chuỗi làm đầu vào và mọi tham chiếu đến các tính toán của đều có nghĩa là các tính toán của dưới đầu vào và trong đó phần không trắng của mỗi băng công việc luôn dài không quá ô. Tại bất kỳ thời điểm nào trong tính toán của , nếu , thì tồn tại một tính toán của từ ID bắt đầu đến .
ALGORITHM FOR MACHINE
THUẬT TOÁN CHO MÁY
Summary of Notation
Tóm tắt ký hiệu
is the input string. is the length of . is the least integer such that . is such that, with as input, if accepts at all, then accepts in steps. is the initial ID of . is the largest integer whose -adic representation can be stored in a register. is the contents of the -th register. is the contents of the -th tag.
là chuỗi đầu vào. là độ dài của . là số nguyên nhỏ nhất sao cho . là số sao cho, với làm đầu vào, nếu chấp nhận tại bất kỳ thời điểm nào, thì chấp nhận trong bước. là ID ban đầu của . là số nguyên lớn nhất có biểu diễn -adic có thể được lưu trong một thanh ghi. là nội dung của thanh ghi thứ . là nội dung của thẻ thứ .
D0 (Initialize). Compute and set up the registers and tags. For set and . Set (the initial ID) and .
D0 (Khởi tạo). Tính và thiết lập thanh ghi và thẻ. Với , đặt và . Đặt (ID ban đầu) và .
D1 (Test). If each , go to D3. Otherwise, let be the smallest index such that . Test: For some index , and . Yes: Go to D2. No: Go to D3.
D1 (Kiểm tra). Nếu mỗi , chuyển đến D3. Ngược lại, đặt là chỉ số nhỏ nhất sao cho . Kiểm tra: Với một chỉ số nào đó, và . Có: Chuyển đến D2. Không: Chuyển đến D3.
D2 (Clear Storage) ( as in D1). If is an accepting ID, ACCEPT. Otherwise, set and for set and . Go to D1.
D2 (Xóa bộ nhớ) ( như trong D1). Nếu là một ID chấp nhận, ACCEPT. Ngược lại, đặt và với đặt và . Chuyển đến D1.
D3 (Back Track). If for each , REJECT. Otherwise, let be the smallest index such that . Set , , and for set , . Go to D1.
D3 (Quay lui). Nếu với mỗi , REJECT. Ngược lại, đặt là chỉ số nhỏ nhất sao cho . Đặt , , và với đặt , . Chuyển đến D1.
Clearly the algorithm works within storage , where is a constant depending only on . By standard techniques [3] the constant can be reduced to one. A simple induction on the number of steps completed shows that if accepts an input , then the nondeterministic machine does. Thus, it will suffice to show that accepts all strings that accepts. To show this, we need some preliminary lemmas. The lemmas are easier to state in case the machine does not stop when it accepts. So assume D2 (Clear Storage) has been modified to omit the first line ("If is an accepting ID, ACCEPT"). We shall say is in configuration
Rõ ràng thuật toán hoạt động với bộ nhớ , trong đó là một hằng số chỉ phụ thuộc vào . Bằng các kỹ thuật chuẩn [3], hằng số này có thể được giảm xuống còn một. Một phép quy nạp đơn giản theo số bước đã hoàn thành cho thấy rằng nếu chấp nhận một đầu vào , thì máy không tất định cũng chấp nhận. Vì vậy, chỉ cần chỉ ra rằng chấp nhận mọi chuỗi mà chấp nhận. Để chỉ ra điều này, chúng ta cần một số bổ đề sơ bộ. Các bổ đề dễ phát biểu hơn trong trường hợp máy không dừng khi nó chấp nhận. Vì vậy, giả sử D2 (Xóa bộ nhớ) đã được sửa đổi để bỏ dòng đầu tiên ("If is an accepting ID, ACCEPT"). Ta sẽ nói rằng đang ở cấu hình
if it is about to execute D1, and the contents of the registers and tags are, respectively, and .
nếu nó sắp thực thi D1, và nội dung của các thanh ghi và các thẻ lần lượt là và .
Lemma 1. (For modified D2). For each index and each integer () if at some time in a computation of the configuration of is
Bổ đề 1. (Đối với D2 đã sửa đổi). Với mỗi chỉ số và mỗi số nguyên (), nếu tại một thời điểm nào đó trong một phép tính của cấu hình của là
for some and some , then at some later time the configuration will be
với một số và một số , thì tại một thời điểm sau đó cấu hình sẽ là
or
hoặc
where is the least index in (1) such that and . (If no such exists, then (2) happens.)
trong đó là chỉ số nhỏ nhất trong (1) sao cho và . (Nếu không tồn tại như vậy, thì (2) xảy ra.)
The algorithm is trying to establish that there is a computation of from the start ID to . It is trying to do this using only registers to the left of . So the lemma says that can get any ID into any register, if it needs to.
Thuật toán đang cố gắng thiết lập rằng tồn tại một phép tính của từ ID ban đầu đến . Nó cố gắng thực hiện điều này bằng cách chỉ sử dụng các thanh ghi ở bên trái của . Vì vậy, bổ đề nói rằng có thể đưa bất kỳ ID nào vào bất kỳ thanh ghi nào, nếu cần.
Proof. A formal proof would use induction on and . We list some representative configurations in a computation. This should make the lemma clear. Note that since is a string all of whose digits are the same, is not an ID and, hence, is not true for any integer . Suppose is started in configuration (1) and that at no later time does assume configurations (3). will then assume the following configurations:
Chứng minh. Một chứng minh hình thức sẽ sử dụng quy nạp trên và . Chúng tôi liệt kê một số cấu hình tiêu biểu trong một tính toán. Điều này sẽ làm rõ bổ đề. Lưu ý rằng vì là một chuỗi mà tất cả các chữ số của nó đều giống nhau, không phải là một ID và do đó, không đúng với bất kỳ số nguyên nào. Giả sử được khởi động trong cấu hình (1) và tại không thời điểm nào sau đó nhận các cấu hình (3). Khi đó sẽ nhận các cấu hình sau:
where or 1.
trong đó hoặc 1.
Finally, via D3, assumes (2) as desired.
Cuối cùng, thông qua D3, nhận (2) như mong muốn.
Lemma 2. (For modified D2). Suppose that at some time in a computation the configuration of is
Bổ đề 2. (Đối với D2 đã sửa đổi). Giả sử tại một thời điểm nào đó trong một tính toán, cấu hình của là
with and any values for the 's and remaining 's. If for some index and there is a computation of of at most steps from to , then at some later time the configuration of will be (4) with .
với và các giá trị bất kỳ cho các và các còn lại. Nếu với một chỉ số nào đó và có một tính toán của gồm không quá bước từ đến , thì tại một thời điểm sau đó cấu hình của sẽ là (4) với .
The lemma says that registers are sufficient for to check a computation of steps of .
Bổ đề phát biểu rằng thanh ghi là đủ để kiểm tra một tính toán gồm bước của .
Lemma 3. (For modified D2). Suppose that at some time in a computation the configuration of is
Bổ đề 3. (Đối với D2 đã sửa đổi). Giả sử tại một thời điểm nào đó trong một tính toán, cấu hình của là
for any values of the 's and 's. If for some index and there is a computation of of at most steps from to , then at some later time the configuration of will be
với các giá trị bất kỳ của các và . Nếu với một chỉ số nào đó và có một tính toán của gồm không quá bước từ đến , thì tại một thời điểm sau đó cấu hình của sẽ là
Proof of Both Lemmas. Lemmas 2 and 3 are basically a single lemma and are proven simultaneously by induction on . The base case, , is clear. Assume both lemmas hold with replaced by . We will show that Lemma 2 holds for .
Chứng minh của Cả Hai Bổ đề. Bổ đề 2 và 3 về cơ bản là một bổ đề duy nhất và được chứng minh đồng thời bằng quy nạp trên . Trường hợp cơ sở, , là rõ ràng. Giả sử cả hai bổ đề đúng khi được thay bằng . Chúng tôi sẽ chứng minh rằng Bổ đề 2 đúng với .
Suppose is in configuration (4) with and that for some index, , there is a computation of from to of at most steps. Decomposing this computation from to , we get that there is a such that there are computations of at most steps from to and from to . By Lemma 1, it follows that, at some later time, either the configuration of is
Giả sử đang ở cấu hình (4) với và với một chỉ số nào đó, , có một tính toán của từ đến gồm nhiều nhất bước. Phân rã tính toán này từ đến , ta thu được rằng tồn tại một sao cho có các tính toán gồm nhiều nhất bước từ đến và từ đến . Theo Bổ đề 1, suy ra rằng, tại một thời điểm sau đó, hoặc cấu hình của là
with or the configuration is (4) with . Configuration (4) with is the desired outcome. So assume assumed configuration (7) with . By induction hypothesis on Lemma 2, it follows that at some still later time the configuration of will be (7) with . If we then apply the induction hypothesis on Lemma 3, we get that at a still later time the configuration of will be (4) with . So Lemma 2 holds for . Lemma 3 for is established in a similar fashion. Thus, the induction hypothesis is established and the proof of both lemmas is completed.
với hoặc cấu hình là (4) với . Cấu hình (4) với là kết quả mong muốn. Vì vậy, giả sử đã nhận cấu hình (7) với . Theo giả thiết quy nạp trên Bổ đề 2, suy ra rằng tại một thời điểm vẫn sau đó nữa, cấu hình của sẽ là (7) với . Nếu sau đó áp dụng giả thiết quy nạp trên Bổ đề 3, ta thu được rằng tại một thời điểm sau đó nữa, cấu hình của sẽ là (4) với . Vì vậy Bổ đề 2 đúng với . Bổ đề 3 với được thiết lập theo cách tương tự. Do đó, giả thiết quy nạp được thiết lập và chứng minh của cả hai bổ đề được hoàn thành.
Using Lemmas 1 and 2 it is easy to complete the proof of the theorem. Suppose the nondeterministic machine accepts . We must show that accepts . Since accepts , there is an accepting ID, , of such that there is a computation, with as input, of at most steps from (the initial ID of ) to . By Lemma 1, it follows that eventually assumes configuration
Sử dụng các Bổ đề 1 và 2, ta dễ dàng hoàn thành chứng minh của định lý. Giả sử máy không tất định chấp nhận . Ta phải chỉ ra rằng chấp nhận . Vì chấp nhận , tồn tại một ID chấp nhận, , của sao cho có một tính toán, với là đầu vào, gồm nhiều nhất bước từ (ID ban đầu của ) đến . Theo Bổ đề 1, suy ra rằng cuối cùng sẽ nhận cấu hình
with . By Lemma 2, it follows that at some later time will assume configuration (8) with . All this was for the modified D2. The unmodified D2 will accept rather than set . This completes the proof of Theorem 1 in the case: is measurable.
với . Theo Bổ đề 2, suy ra rằng tại một thời điểm sau đó sẽ nhận cấu hình (8) với . Tất cả điều này là đối với D2 đã sửa đổi. D2 chưa sửa đổi sẽ chấp nhận thay vì đặt . Điều này hoàn thành chứng minh Định lý 1 trong trường hợp: đo được.
If is not measurable, then the above algorithm must be altered, since cannot necessarily mark off blocks of length within storage proportionate to . However, if were somehow given the value of , then by the above procedure, could determine whether or not accepts the input within storage . So operates as follows. first assumes . If accepts within storage , then will accept. If does not accept within storage 1, then next assumes . If accepts within storage 2, then accepts. If not, then next assumes . proceeds in this manner trying larger and larger values for . If accepts the input , then will eventually find the correct value for and accept within storage proportionate to . If does not accept , then computes forever on input . This completes the proof of Theorem 1.
Nếu không đo được, thì thuật toán trên phải được thay đổi, vì không nhất thiết có thể đánh dấu các khối có độ dài trong phạm vi bộ nhớ tỷ lệ với . Tuy nhiên, nếu bằng cách nào đó được cung cấp giá trị của , thì theo thủ tục trên, có thể xác định liệu có chấp nhận đầu vào trong phạm vi bộ nhớ hay không. Vì vậy hoạt động như sau. Đầu tiên giả sử . Nếu chấp nhận trong phạm vi bộ nhớ , thì sẽ chấp nhận. Nếu không chấp nhận trong phạm vi bộ nhớ 1, thì tiếp theo giả sử . Nếu chấp nhận trong phạm vi bộ nhớ 2, thì chấp nhận. Nếu không, thì tiếp theo giả sử . tiếp tục theo cách này bằng cách thử các giá trị ngày càng lớn hơn của . Nếu chấp nhận đầu vào , thì cuối cùng sẽ tìm được giá trị đúng của và chấp nhận trong phạm vi bộ nhớ tỷ lệ với . Nếu không chấp nhận , thì tính toán vô hạn trên đầu vào . Điều này hoàn thành chứng minh của Định lý 1.
The context-sensitive languages are precisely those sets accepted by nondeterministic Turing machines within storage (see, for example, [3]). So, setting in Theorem 1, we get,
Các ngôn ngữ phụ thuộc ngữ cảnh chính xác là những tập được chấp nhận bởi các máy Turing không tất định trong phạm vi bộ nhớ (xem, ví dụ, [3]). Vì vậy, đặt trong Định lý 1, ta thu được,
Corollary 1. Every context-sensitive language is accepted by some deterministic Turing machine within storage .
Hệ quả 1. Mọi ngôn ngữ phụ thuộc ngữ cảnh đều được chấp nhận bởi một máy Turing tất định nào đó trong phạm vi bộ nhớ .
Theorem 1 can be generalized as follows.
Định lý 1 có thể được tổng quát hóa như sau.
Theorem 2. If a set, , is accepted by a nondeterministic Turing machine within storage and time , then is accepted by some deterministic Turing machine within storage .
Định lý 2. Nếu một tập, , được chấp nhận bởi một máy Turing không tất định trong phạm vi bộ nhớ và thời gian , thì được chấp nhận bởi một máy Turing tất định nào đó trong phạm vi bộ nhớ .
Definition. A Turing machine, , is said to accept a set, , within storage and time provided that
Định nghĩa. Một máy Turing, , được nói là chấp nhận một tập, , trong phạm vi bộ nhớ và thời gian với điều kiện rằng
(i) for each in , there is at least one computation of which accepts , takes at most steps, and in which each work tape head scans at most squares, where is the length of , and provided that
(i) với mỗi trong , có ít nhất một phép tính của chấp nhận , thực hiện không quá bước, và trong đó mỗi đầu băng làm việc quét không quá ô, trong đó là độ dài của , và với điều kiện rằng
(ii) accepts no string not in .
(ii) chấp nhận không có chuỗi nào không thuộc .
Proof of Theorem 2. An analysis of the proof of Theorem 1 shows that the algorithm uses a bound on the storage of the nondeterministic machine to obtain a bound, namely exponential in the storage, on the time of the nondeterministic machine. It then marks off blocks of storage, where is a bound on the time. Clearly, if the time bound were easy to compute, the algorithm could be modified to use it as the bound on the time. We would then get Theorem 2. If the time function is not easy to compute, then we use the same sort of trick as that used for nonmeasurable functions in the proof of Theorem 1.
Chứng minh Định lý 2. Phân tích chứng minh của Định lý 1 cho thấy rằng thuật toán sử dụng một cận về bộ nhớ của máy không xác định để thu được một cận, cụ thể là hàm mũ theo bộ nhớ, về thời gian của máy không xác định. Sau đó nó đánh dấu khối bộ nhớ, trong đó là một cận về thời gian. Rõ ràng, nếu cận thời gian dễ tính toán, thuật toán có thể được sửa đổi để sử dụng nó làm cận về thời gian. Khi đó ta sẽ thu được Định lý 2. Nếu hàm thời gian không dễ tính toán, thì ta sử dụng cùng một loại thủ thuật như thủ thuật được dùng cho các hàm không đo được trong chứng minh của Định lý 1.
Corollary 2. If a context-sensitive language is accepted by a nondeterministic Turing machine within linear storage and polynomial time, then it is accepted by some deterministic Turing machine within storage .
Hệ quả 2. Nếu một ngôn ngữ phụ thuộc ngữ cảnh được chấp nhận bởi một máy Turing không xác định trong phạm vi bộ nhớ tuyến tính và thời gian đa thức, thì nó được chấp nhận bởi một máy Turing xác định nào đó trong phạm vi bộ nhớ .
The following theorem says that for any "well behaved" storage function , if every nondeterministic -tape bounded Turing machine can be simulated by a deterministic -tape bounded Turing machine, then for all larger storage functions nondeterministic and deterministic tape complexities are the same.
Định lý sau đây nói rằng đối với mọi hàm bộ nhớ "có tính chất tốt" , nếu mọi máy Turing bị giới hạn băng không xác định có thể được mô phỏng bởi một máy Turing bị giới hạn băng xác định, thì đối với mọi hàm bộ nhớ lớn hơn, độ phức tạp băng không xác định và xác định là như nhau.
THEOREM 3. Suppose that and are measurable, that is monotone increasing and unbounded and that , for all . Let the function be defined as follows. For each natural number , is the least natural number such that .
ĐỊNH LÝ 3. Giả sử rằng và là đo được, rằng là đơn điệu tăng và không bị chặn, và rằng , với mọi . Gọi hàm được định nghĩa như sau. Với mỗi số tự nhiên , là số tự nhiên nhỏ nhất sao cho .
Suppose further that for any set, , if is accepted by a nondeterministic Turing machine within storage , then is accepted by a deterministic Turing machine within storage . It then follows that for any set, , if is accepted by a nondeterministic Turing machine within storage , then is accepted by a deterministic Turing machine within storage .
Giả sử thêm rằng đối với bất kỳ tập hợp nào, , nếu được chấp nhận bởi một máy Turing không xác định trong phạm vi bộ nhớ , thì được chấp nhận bởi một máy Turing xác định trong phạm vi bộ nhớ . Khi đó suy ra rằng đối với bất kỳ tập hợp nào, , nếu được chấp nhận bởi một máy Turing không xác định trong phạm vi bộ nhớ , thì được chấp nhận bởi một máy Turing xác định trong phạm vi bộ nhớ .
The theorem is a bit stronger than it seems. For most common storage functions, , there is a constant such that , for all and . Thus, in these cases, the conclusion can be strengthened to say that any set accepted within nondeterministic storage can be accepted within deterministic storage . In particular,
Định lý này mạnh hơn một chút so với vẻ ngoài của nó. Đối với hầu hết các hàm bộ nhớ thông dụng, , tồn tại một hằng số sao cho , với mọi và . Vì vậy, trong các trường hợp này, kết luận có thể được củng cố để nói rằng bất kỳ tập hợp nào được chấp nhận trong phạm vi bộ nhớ không xác định có thể được chấp nhận trong phạm vi bộ nhớ xác định . Cụ thể,
COROLLARY 3. Suppose is a polynomial in and , for some constant . Suppose further that for any set, , if is accepted by a nondeterministic Turing machine within storage , then is accepted by some deterministic Turing machine within storage .
HỆ QUẢ 3. Giả sử là một đa thức theo và , với một hằng số nào đó. Giả sử thêm rằng đối với bất kỳ tập hợp nào, , nếu được chấp nhận bởi một máy Turing không xác định trong phạm vi bộ nhớ , thì được chấp nhận bởi một máy Turing xác định nào đó trong phạm vi bộ nhớ .
It then follows that for any measurable function and any set, , if is accepted by a nondeterministic Turing machine within storage , then is accepted by some deterministic Turing machine within storage .
Khi đó suy ra rằng đối với bất kỳ hàm đo được nào và bất kỳ tập hợp nào, , nếu được chấp nhận bởi một máy Turing không xác định trong phạm vi bộ nhớ , thì được chấp nhận bởi một máy Turing xác định nào đó trong phạm vi bộ nhớ .
Among other things, the corollary says that if every context-sensitive language is accepted by a deterministic linear bounded automaton (i.e., deterministic Turing machine with storage bound ), then nondeterministic and deterministic tape complexities are the same for all measurable tape bounds .
Trong số các điều khác, hệ quả nói rằng nếu mọi ngôn ngữ phụ thuộc ngữ cảnh đều được chấp nhận bởi một ôtômát giới hạn tuyến tính xác định (tức là máy Turing xác định với cận bộ nhớ ), thì độ phức tạp băng không xác định và xác định là như nhau đối với mọi cận băng đo được .
Proof of Corollary 3. It is easy to check that for any such polynomial , there is a constant such that for all . So . is the function defined in the statement of the theorem. By definition of , . So .
Chứng minh Hệ quả 3. Có thể dễ dàng kiểm tra rằng với mọi đa thức như vậy, tồn tại một hằng số sao cho với mọi . Do đó . là hàm được định nghĩa trong phát biểu của định lý. Theo định nghĩa của , . Do đó .
Assume the hypothesis of the corollary and suppose is accepted by a nondeterministic Turing machine within storage . By the Theorem 3, is accepted by a deterministic Turing machine within storage . So, by standard tape reduction techniques [3], it follows that is accepted by a deterministic Turing machine within storage . Finally, since , this means that is accepted by a deterministic Turing machine within storage .
Giả sử giả thuyết của hệ quả đúng và giả sử được chấp nhận bởi một máy Turing không tất định trong phạm vi bộ nhớ . Theo Định lý 3, được chấp nhận bởi một máy Turing tất định trong phạm vi bộ nhớ . Vì vậy, bằng các kỹ thuật rút gọn băng tiêu chuẩn [3], suy ra rằng được chấp nhận bởi một máy Turing tất định trong phạm vi bộ nhớ . Cuối cùng, vì , điều này có nghĩa là được chấp nhận bởi một máy Turing tất định trong phạm vi bộ nhớ .
Proof of Theorem 3. Assume the hypothesis of the Theorem 3 and suppose is a set accepted by a nondeterministic Turing machine, , within storage .
Chứng minh Định lý 3. Giả sử giả thuyết của Định lý 3 đúng và giả sử là một tập được chấp nhận bởi một máy Turing không tất định, , trong phạm vi bộ nhớ .
We will construct a deterministic machine, , which accepts within storage .
Chúng tôi sẽ xây dựng một máy tất định, , chấp nhận trong phạm vi bộ nhớ .
Let be a new symbol. Let . A nondeterministic Turing machine, , which accepts within storage can be constructed as follows. Given input , first marks off squares of storage, where . It then checks to see if . If this is not the case, then and the computation halts. If , then mimics to see if is in . If accepts, then it does. Since , this machine will accept within storage . So, by hypothesis, there is a deterministic machine, , which accepts within storage . Furthermore, since is measurable, we may assume that on every input of length , halts after a computation in which at most squares of storage tape are scanned. (Our definitions merely require this when the machine accepts the input.)
Cho là một ký hiệu mới. Cho . Một máy Turing không tất định, , chấp nhận trong phạm vi bộ nhớ có thể được xây dựng như sau. Với đầu vào , trước hết đánh dấu ô của bộ nhớ, trong đó . Sau đó nó kiểm tra xem hay không. Nếu điều này không đúng, thì và tính toán dừng lại. Nếu , thì mô phỏng để xem có thuộc hay không. Nếu chấp nhận, thì nó cũng chấp nhận. Vì , máy này sẽ chấp nhận trong phạm vi bộ nhớ . Vì vậy, theo giả thuyết, tồn tại một máy tất định, , chấp nhận trong phạm vi bộ nhớ . Hơn nữa, vì là đo được, chúng ta có thể giả sử rằng với mọi đầu vào có độ dài , dừng sau một tính toán trong đó nhiều nhất ô của băng bộ nhớ được quét. (Các định nghĩa của chúng tôi chỉ yêu cầu điều này khi máy chấp nhận đầu vào.)
The deterministic machine, , which accepts within storage operates as follows. Given an input , mimics operating on for various values of . It first tries . If accepts , then does. If not, it then tries . If accepts , then does. If not, it then tries . If accepts , the does. If not, it then tries , and so forth. If is in , then will eventually find the least such that and will accept within storage . This completes the proof of Theorem 3.
Máy tất định, , chấp nhận trong phạm vi bộ nhớ hoạt động như sau. Với một đầu vào , mô phỏng hoạt động trên với các giá trị khác nhau của . Trước tiên nó thử . Nếu chấp nhận , thì cũng chấp nhận. Nếu không, nó thử . Nếu chấp nhận , thì cũng chấp nhận. Nếu không, nó thử . Nếu chấp nhận , thì cũng chấp nhận. Nếu không, nó thử , và cứ tiếp tục như vậy. Nếu thuộc , thì cuối cùng sẽ tìm thấy giá trị nhỏ nhất sao cho và sẽ chấp nhận trong phạm vi bộ nhớ . Điều này hoàn thành chứng minh của Định lý 3.
It is natural to ask if there is any storage function whose deterministic and nondeterministic complexity classes are equal. The answer was given by Manuel Blum and is "yes". Blum showed that there are arbitrarily large storage functions such that a set is accepted within deterministic storage if, and only if, it is accepted within nondeterministic storage . These functions are not, however, "well-behaved" and Theorem 3 does not apply to them. They are not measurable. A sketch of the proof of Blum's result appears in [8].
Một cách tự nhiên, người ta đặt câu hỏi liệu có hàm bộ nhớ nào mà các lớp độ phức tạp tất định và không tất định của nó bằng nhau hay không. Câu trả lời được đưa ra bởi Manuel Blum và là "có". Blum đã chỉ ra rằng có các hàm bộ nhớ lớn tùy ý sao cho một tập hợp được chấp nhận trong bộ nhớ tất định khi và chỉ khi nó được chấp nhận trong bộ nhớ không tất định . Tuy nhiên, các hàm này không "có tính chất tốt" và Định lý 3 không áp dụng cho chúng. Chúng không đo được. Một phác thảo của chứng minh cho kết quả của Blum xuất hiện trong [8].
One may also ask if there is a storage function (large enough to be interesting) whose deterministic and nondeterministic complexity classes are different. The next section is devoted to this question. Only an incomplete answer is given, however, and the question is open.
Người ta cũng có thể hỏi liệu có một hàm bộ nhớ (đủ lớn để có ý nghĩa) mà các lớp độ phức tạp tất định và không tất định của nó khác nhau hay không. Phần tiếp theo dành cho câu hỏi này. Tuy nhiên, chỉ có một câu trả lời chưa hoàn chỉnh được đưa ra, và câu hỏi vẫn còn bỏ ngỏ.
Mazes and Turing Machines
Mê cung và Máy Turing
Informally, a maze is a set of rooms connected by one-way corridors. Certain rooms are designated goal rooms and one room is designated the start room. Thus, a maze is a directed graph with certain nodes or rooms distinguished. The maze is threadable if there is a path from the start room to some goal room.
Một cách không chính thức, một mê cung là một tập hợp các phòng được nối với nhau bởi các hành lang một chiều. Một số phòng được chỉ định là phòng đích và một phòng được chỉ định là phòng bắt đầu. Do đó, một mê cung là một đồ thị có hướng với một số nút hoặc phòng được phân biệt. Mê cung có thể luồn qua được nếu có một đường đi từ phòng bắt đầu đến một phòng đích nào đó.
A nondeterministic Turing machine, with input , gives rise in a natural way to a maze. The rooms of the maze are the instantaneous descriptions of the machine and the corridors are given by the transition function of the machine. That is there is a corridor from room to room if, with input , the machine can in one step change its configuration from to . The initial instantaneous description of the machine is designated the start room. Those instantaneous descriptions which include an accepting state are designated goal rooms. The machine will accept the input if, and only if, the corresponding maze is threadable.
Một máy Turing không tất định, với đầu vào , tạo ra một mê cung theo một cách tự nhiên. Các phòng của mê cung là các mô tả tức thời của máy và các hành lang được cho bởi hàm chuyển của máy. Nghĩa là có một hành lang từ phòng đến phòng nếu, với đầu vào , máy có thể trong một bước thay đổi cấu hình của nó từ sang . Mô tả tức thời ban đầu của máy được chỉ định là phòng bắt đầu. Những mô tả tức thời bao gồm một trạng thái chấp nhận được chỉ định là các phòng đích. Máy sẽ chấp nhận đầu vào khi và chỉ khi mê cung tương ứng có thể luồn qua được.
The algorithm for simulating a nondeterministic Turing machine, given in the last section, is really an efficient method for determining whether the corresponding maze is threadable. In this section we show that if an efficient enough method for "threading" mazes could be found, then deterministic machines could simulate nondeterministic machines in the same storage. More precisely, the set of threadable mazes, suitably coded, can be recognized by a nondeterministic Turing machine within storage . This set can be recognized by some deterministic Turing machine within storage if, and only if, deterministic -tape bounded Turing machines can simulate nondeterministic -tape bounded Turing machines, for all .
Thuật toán mô phỏng một máy Turing không tất định, được đưa ra trong phần trước, thực sự là một phương pháp hiệu quả để xác định liệu mê cung tương ứng có thể luồn qua được hay không. Trong phần này, chúng tôi chỉ ra rằng nếu có thể tìm được một phương pháp đủ hiệu quả để "luồn qua" các mê cung, thì các máy tất định có thể mô phỏng các máy không tất định với cùng một bộ nhớ. Chính xác hơn, tập hợp các mê cung có thể luồn qua được, được mã hóa thích hợp, có thể được nhận biết bởi một máy Turing không tất định trong phạm vi bộ nhớ . Tập hợp này có thể được nhận biết bởi một máy Turing tất định nào đó trong phạm vi bộ nhớ khi và chỉ khi các máy Turing bị chặn bởi băng tất định có thể mô phỏng các máy Turing bị chặn bởi băng không tất định, với mọi .
Definition. A maze over (a finite alphabet) is a quadruple, , where is a finite set of strings over ( is the set of rooms), is a binary relation on (giving the corridors), is an element of ( is the start room), and is a subset of ( is the set of goal rooms).
Định nghĩa. Một mê cung trên (một bảng chữ cái hữu hạn) là một bộ bốn, , trong đó là một tập hữu hạn các chuỗi trên ( là tập các phòng), là một quan hệ nhị phân trên (cho các hành lang), là một phần tử của ( là phòng bắt đầu), và là một tập con của ( là tập các phòng đích).
Definition. The maze is threadable if there is a sequence of rooms such that (the start room), is an element of (the goal rooms), and holds for .
Định nghĩa. Mê cung là có thể luồn được nếu có một chuỗi các phòng sao cho (phòng bắt đầu), là một phần tử của (các phòng đích), và đúng với .
Definition. Let ], [,* be three new symbols. A coding of the maze is a string of the form
Định nghĩa. Gọi ], [,* là ba ký hiệu mới. Một mã hóa của mê cung là một chuỗi có dạng
where is the start room of ; is an enumeration without repetitions of the rooms in ; for , is an enumeration without repetitions of all in such that holds; and is an enumeration without repetitions of the rooms in .
trong đó là phòng bắt đầu của ; là một phép liệt kê không lặp lại các phòng trong ; với , là một phép liệt kê không lặp lại của tất cả các trong sao cho đúng; và là một phép liệt kê không lặp lại các phòng trong .
Notation. denotes the set of all codings of threadable mazes over .
Ký hiệu. biểu diễn tập hợp tất cả các mã hóa của các mê cung có thể luồn được trên .
Theorem 4. For any finite alphabet , there is a nondeterministic Turing machine which accepts within storage .
Định lý 4. Với mọi bảng chữ cái hữu hạn , tồn tại một máy Turing không tất định chấp nhận trong giới hạn bộ nhớ .
Proof. If the maze has length , then it has at most rooms. So each room can be coded by a number which can be stored in squares of tape. More specifically, if the maze is given by (1), then the room is coded by the number in dyadic notation. The algorithm is very simple. The machine writes down the code number of the initial room on its work tape, finds the possible next rooms, guesses at one of them, erases its work tape, and writes down a coding of its guess. It then finds the possible next rooms, guesses at one of them and so forth. After each guess it checks to see if it has reached a goal room. If it has, it accepts. Clearly the work tape will be bounded by , for some constant .
Chứng minh. Nếu mê cung có độ dài , thì nó có nhiều nhất phòng. Vì vậy mỗi phòng có thể được mã hóa bởi một số có thể được lưu trữ trong ô băng. Cụ thể hơn, nếu mê cung được cho bởi (1), thì phòng được mã hóa bởi số trong ký pháp nhị phân. Thuật toán rất đơn giản. Máy ghi số mã của phòng ban đầu lên băng làm việc, tìm các phòng kế tiếp có thể có, đoán một trong số chúng, xóa băng làm việc, và ghi một mã hóa của phỏng đoán của nó. Sau đó nó tìm các phòng kế tiếp có thể có, đoán một trong số chúng, và cứ tiếp tục như vậy. Sau mỗi lần đoán nó kiểm tra xem đã đến một phòng đích hay chưa. Nếu đã đến, nó chấp nhận. Rõ ràng băng làm việc sẽ bị giới hạn bởi , với một hằng số nào đó.
A straight forward crossing sequence argument, like that of Cobham [2] shows that the bound, in Theorem 4, is the best possible, up to a constant factor.
Một lập luận dãy giao cắt trực tiếp, giống như lập luận của Cobham [2], cho thấy rằng cận trong Định lý 4 là tốt nhất có thể, sai khác không quá một hệ số hằng số.
Applying Theorems 1 and 4 to yields
Áp dụng các Định lý 1 và 4 cho thu được
Corollary 4. For any finite alphabet , there is a deterministic Turing machine which accepts within storage .
Hệ quả 4. Với mọi bảng chữ cái hữu hạn , tồn tại một máy Turing tất định chấp nhận trong giới hạn bộ nhớ .
Lemma 4. For any finite alphabets and with at least two elements, is accepted by some deterministic Turing machine within storage if, and only if, is.
Bổ đề 4. Với mọi bảng chữ cái hữu hạn và có ít nhất hai phần tử, được chấp nhận bởi một máy Turing tất định nào đó trong giới hạn bộ nhớ khi và chỉ khi được như vậy.
Proof. For every coding, , of a maze over , there is a coding, , of a maze over which is isomorphic to . So is in if, and only if, is in . More specifically, if is
Chứng minh. Với mọi mã hóa, , của một mê cung trên , tồn tại một mã hóa, , của một mê cung trên đẳng cấu với . Vì vậy thuộc khi và chỉ khi thuộc . Cụ thể hơn, nếu là
then may be taken to be
thì có thể được lấy là
where if is the number of symbols in , then is the -adic representation of the number and so is an element of . Since the 's and 's and are each equal to some , this defines on them as well.
trong đó nếu là số ký hiệu trong , thì là biểu diễn -phân của số và do đó là một phần tử của . Vì các và và đều bằng một số nào đó, điều này cũng xác định trên chúng.
Given a deterministic machine, , which accepts within storage , we construct a deterministic machine, , which accepts within storage , as follows. Given an input , operates by mimicking operating in . More specifically, suppose has input as in (1). When is simulating with the input head of someplace in , where is some or in (1), then will have its input head reading the first symbol of and will have written on an auxiliary storage tape. uses this auxiliary storage tape containing to mimic the input tape of . When, in the mimicking process, the input head of would leave the left (respectively, right) end of , then moves its input head to the or to the left (respectively, right) of , calculates of this or and replaces by of this or . of this or becomes the new and the simulation continues. To calculate the new , need only compare the new to each until it finds the which equals . This it can do symbol by symbol and, thus, keep the amount of storage tape used less than , for some constant .
Cho một máy tất định, , chấp nhận trong phạm vi bộ nhớ , ta xây dựng một máy tất định, , chấp nhận trong phạm vi bộ nhớ , như sau. Với một đầu vào , hoạt động bằng cách mô phỏng hoạt động trên . Cụ thể hơn, giả sử có đầu vào như trong (1). Khi đang mô phỏng với đầu đọc đầu vào của đang ở một vị trí nào đó trong , trong đó là một trong hoặc nào đó trong (1), thì sẽ có đầu đọc đầu vào của nó đọc ký hiệu đầu tiên của và sẽ có được ghi trên một băng lưu trữ phụ. sử dụng băng lưu trữ phụ này chứa để mô phỏng băng đầu vào của . Khi, trong quá trình mô phỏng, đầu đọc đầu vào của sẽ rời khỏi đầu bên trái (tương ứng, bên phải) của , thì di chuyển đầu đọc đầu vào của nó tới hoặc ở bên trái (tương ứng, bên phải) của , tính của hoặc này và thay thế bằng của hoặc này. của hoặc này trở thành mới và quá trình mô phỏng tiếp tục. Để tính mới, chỉ cần so sánh mới với từng cho đến khi tìm thấy bằng với . Nó có thể thực hiện điều này từng ký hiệu một và do đó giữ lượng băng lưu trữ được sử dụng nhỏ hơn , với một hằng số nào đó.
Since and are symmetric in the statement of the lemma, this is sufficient to prove the lemma.
Vì và là đối xứng trong phát biểu của bổ đề, điều này đủ để chứng minh bổ đề.
Theorem 5. For any finite alphabet, , with at least two elements, the following statements are equivalent:
Định lý 5. Với mọi bảng chữ cái hữu hạn, , có ít nhất hai phần tử, các phát biểu sau là tương đương:
(1) is accepted by some deterministic Turing machine within storage .
(1) được chấp nhận bởi một máy Turing tất định nào đó trong phạm vi bộ nhớ .
(2) For any finite alphabet , any set, , of strings over and any function , if is accepted by a nondeterministic Turing machine within storage , then is accepted by some deterministic Turing machine within storage .
(2) Với mọi bảng chữ cái hữu hạn , mọi tập, , các chuỗi trên và mọi hàm , nếu được chấp nhận bởi một máy Turing không tất định trong bộ nhớ , thì được chấp nhận bởi một máy Turing tất định nào đó trong bộ nhớ .
Proof. Statement (1) follows from statement (2) by Theorem 4.
Chứng minh. Phát biểu (1) suy ra từ phát biểu (2) theo Định lý 4.
Assume (1) holds and that is a set accepted by some nondeterministic Turing machine, , within storage . We will construct a deterministic machine, , which accepts within the same storage bound . Assume is measurable. We will later indicate how this restriction may be eliminated. With each string over the input alphabet of associate the maze , where is the set of all ID's of in which the nonblank portion of each work tape has length at most , is the start ID of , is the set of ID's in which include an accepting state, and is defined by: holds if, and only if, . Clearly, accepts if, and only if, is threadable. Let denote a coding of the maze . The deterministic machine which accepts operates as follows. Given an input , constructs on one of its storage tapes, and then simulates the machine of statement (1) to determine whether is in . If it is, then accepts . By Lemma 4, we may assume is large enough so that all ID's of are strings over . So is in if, and only if, accepts . Thus, accepts precisely the set . is of the length at most , where and is a constant depending only on . Except for the tape used to store , operates in storage which is proportionate to .
Giả sử (1) đúng và là một tập được chấp nhận bởi một máy Turing không tất định nào đó, , trong bộ nhớ . Chúng tôi sẽ xây dựng một máy tất định, , chấp nhận với cùng cận bộ nhớ . Giả sử đo được. Sau này chúng tôi sẽ chỉ ra cách loại bỏ hạn chế này. Với mỗi chuỗi trên bảng chữ cái đầu vào của , gắn với mê cung , trong đó là tập tất cả các ID's của mà phần không trắng của mỗi băng công tác có độ dài nhiều nhất là , là ID khởi đầu của , là tập các ID's trong có chứa một trạng thái chấp nhận, và được định nghĩa bởi: đúng khi và chỉ khi . Rõ ràng, chấp nhận khi và chỉ khi có thể xâu luồn. Gọi là một mã hóa của mê cung . Máy tất định chấp nhận hoạt động như sau. Với một đầu vào , xây dựng trên một trong các băng lưu trữ của nó, rồi mô phỏng máy trong phát biểu (1) để xác định liệu có thuộc hay không. Nếu có, thì chấp nhận . Theo Bổ đề 4, ta có thể giả sử đủ lớn để tất cả ID's của đều là các chuỗi trên . Vì vậy thuộc khi và chỉ khi chấp nhận . Do đó, chấp nhận chính xác tập . có độ dài nhiều nhất là , trong đó và là một hằng số chỉ phụ thuộc vào . Ngoại trừ băng được dùng để lưu trữ , hoạt động với bộ nhớ tỉ lệ với .
The machine cannot write down the entire string, , at once and still work within the allotted storage. However, all that is necessary in order to simulate the machine of statement (1) is that be able to compute one symbol at a time of the string and keep track of the symbols position in . This it could do provided it could, within storage , generate , from right to left, one symbol at a time.
Máy không thể viết ra toàn bộ chuỗi, , cùng một lúc mà vẫn hoạt động trong phạm vi bộ nhớ được cấp phát. Tuy nhiên, tất cả những gì cần thiết để mô phỏng máy trong phát biểu (1) là có thể tính toán từng ký hiệu một của chuỗi và theo dõi vị trí của các ký hiệu trong . Nó có thể làm được điều này nếu, trong phạm vi bộ nhớ , nó có thể sinh ra , từ phải sang trái, từng ký hiệu một.
Our remarks so far applied to any coding of the maze . We now fix to be the following coding of the maze
Các nhận xét của chúng tôi cho đến nay áp dụng cho bất kỳ mã hóa nào của mê cung . Bây giờ chúng tôi cố định là mã hóa sau đây của mê cung
where for each , and is the usual "less than" ordering on the natural numbers. Recall that the 's, 's, and 's are strings over a finite alphabet and, thus, may be regarded as numbers in -adic notation, for some . By definition of , the 's, 's, 's, and are ID's of of length less than , where is a constant depending only on . can generate symbol by symbol, in the allotted storage, as follows. can easily calculate , the initial ID of . Having generated , next runs through in numerical order, all strings of length less than until if finds one which is an ID of . This will be . So has generated . Next it produces all such that . In this way, it generates the . Next it runs through, in numerical order, all strings of length less than until it finds the first such string which is an ID of and is greater than . This is . It now may erase . The only thing it need keep in storage at this point is . then proceeds to generate the . It generates from in the same way it computed from . It proceeds in this way until it finds the largest . Having generated the largest and its associated 's, it then generates the 's as follows. It runs through all strings of length at most and checks to see which are ID's which include an accepting state. Those that do are the . This completes the generating process and the proof for the case: is measurable.
trong đó với mỗi , và là thứ tự "nhỏ hơn" thông thường trên các số tự nhiên. Các 's, 's, và 's là các chuỗi trên một bảng chữ cái hữu hạn và do đó có thể được xem như các số trong ký hiệu -adic, với một nào đó. Theo định nghĩa của , các 's, 's, 's, và là các ID của có độ dài nhỏ hơn , trong đó là một hằng số chỉ phụ thuộc vào . có thể tạo ra ký hiệu từng ký hiệu một, trong bộ nhớ được cấp phát, như sau. có thể dễ dàng tính , ID ban đầu của . Sau khi tạo ra , tiếp theo duyệt theo thứ tự số tất cả các chuỗi có độ dài nhỏ hơn cho đến khi tìm thấy một chuỗi là một ID của . Đây sẽ là . Như vậy đã tạo ra . Tiếp theo nó tạo ra tất cả các sao cho . Theo cách này, nó tạo ra các . Tiếp theo nó duyệt theo thứ tự số tất cả các chuỗi có độ dài nhỏ hơn cho đến khi tìm thấy chuỗi đầu tiên như vậy là một ID của và lớn hơn . Đây là . Bây giờ nó có thể xóa . Điều duy nhất nó cần giữ trong bộ nhớ tại thời điểm này là . sau đó tiếp tục tạo ra các . Nó tạo ra từ theo cùng cách mà nó đã tính từ . Nó tiếp tục theo cách này cho đến khi tìm thấy lớn nhất. Sau khi đã tạo ra lớn nhất và các tương ứng của nó, nó tiếp tục tạo ra các như sau. Nó duyệt qua tất cả các chuỗi có độ dài nhiều nhất là và kiểm tra xem những chuỗi nào là các ID có chứa một trạng thái chấp nhận. Những chuỗi đó là các . Điều này hoàn tất quá trình tạo và chứng minh cho trường hợp: là đo được.
If is not measurable, then cannot necessarily generate precisely the strings of length less than within storage proportionate to and so the above procedure will not work. However, if were somehow given the value of , then by the above procedure it could determine whether or not is accepted by within storage . uses the same sort of trick as was used for nonmeasurable functions in the proof of Theorem 1. That is, first it assumes . If accepts the input within storage , then accepts . If not, next tries . If accepts within storage , then does. If not, tries next, and so forth. If accepts the input , then will eventually find the correct value for and accept within storage proportionate to .
Nếu không đo được, thì không nhất thiết có thể sinh chính xác các chuỗi có độ dài nhỏ hơn trong phạm vi bộ nhớ tỷ lệ với và do đó thủ tục trên sẽ không hoạt động. Tuy nhiên, nếu bằng cách nào đó được cung cấp giá trị của , thì theo thủ tục trên nó có thể xác định liệu có được chấp nhận hay không trong phạm vi bộ nhớ . sử dụng cùng loại thủ thuật đã được sử dụng cho các hàm không đo được trong chứng minh của Định lý 1. Nghĩa là, trước tiên nó giả sử . Nếu chấp nhận đầu vào trong phạm vi bộ nhớ , thì chấp nhận . Nếu không, tiếp theo thử . Nếu chấp nhận trong phạm vi bộ nhớ , thì cũng làm như vậy. Nếu không, tiếp theo thử , và cứ tiếp tục như vậy. Nếu chấp nhận đầu vào , thì cuối cùng sẽ tìm được giá trị đúng của và chấp nhận trong phạm vi bộ nhớ tỷ lệ với .
An unsolved problem in the theory of tape complexity is whether there is some set of strings and some function such that is accepted by some nondeterministic Turing machine within storage but accepted by no deterministic Turing machine within storage . Theorem 5 shows that if any such and exist, then and will do.
Một vấn đề chưa được giải quyết trong lý thuyết độ phức tạp băng là liệu có tồn tại một tập gồm các chuỗi và một hàm nào đó sao cho được một máy Turing không tất định chấp nhận trong phạm vi bộ nhớ nhưng không được bất kỳ máy Turing tất định nào chấp nhận trong phạm vi bộ nhớ hay không. Định lý 5 chỉ ra rằng nếu tồn tại bất kỳ và như vậy, thì và sẽ thỏa mãn.
SAVITCH
SAVITCH
Acknowledgments
Lời cảm ơn
The author thanks Stephen A. Cook for his help and encouragement in this work.
Tác giả cảm ơn Stephen A. Cook vì sự giúp đỡ và khích lệ của ông trong công trình này.
References
- M. Blum, A machine-independent theory of the complexity of recursive functions, J. Assoc. Comput. Mach. 14 (1967), 322–336.
- A. Cobham, “The Recognition Problem for the Set of Perfect Squares.” IEEE Conference Record of the Seventh Annual Symposium on Switching and Automata Theory, Berkeley, Calif., 1966, pp. 78–87.
- J. E. Hopcroft and J. D. Ullman, “Formal Languages and Their Relation to Automata.” Addison-Wesley, Reading, Mass., 1969.
- J. E. Hopcroft and J. D. Ullman, Relations between time and tape complexities. J. Assoc. Comput. Mach. 15 (1968), 414–427.
- S. Y. Kuroda, Classes of languages and linear-bound automata. Information and Control 7 (1964), 207–223. (The relevant material also appears in [3], pp. 115–119.)
- P. S. Landweber, Three theorems on phrase structure grammars of type 1. Information and Control 6 (1963), 131–136. (The relevant material also appears in [3], pp. 115–119.)
- P. M. Lewis II, R. E. Stearns, and J. Hartmanis, “Memory Bounds for the Recognition of Context-Free and Context-Sensitive Languages.” IEEE Conference Record on Switching Circuit Theory and Logical Design, Ann Arbor, Mich., 1965, pp. 191–202. (The relevant material also appears in [3], pp. 162–164.)
- E. M. McCreight and A. R. Meyer, “Classes of Computable Functions Defined by Bounds on Computation: Preliminary Report.” Conference Record of ACM Symposium on Theory of Computing, Marina del Rey, Calif., May 1969, pp. 79–88.
- W. J. Savitch, “Deterministic Simulation of Non-deterministic Turing Machines (Detailed Abstract). Conference Record of ACM Symposium on Theory of Computing, Marina del Rey, Calif., May 1969, pp. 247–248.
Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8.
Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8. Translated into Tiếng Việt by gpt-5, against glossary version 7. Translated from the English.