And, Therefore, As Long As The Polynomial Upper Bound Is Explicitly Known For Each Language
And, Therefore, As Long As The Polynomial Upper Bound Is Explicitly Known For Each Language
Russian Federation
[email protected]
Phone: +7-911-966-84-30
04-Aug-2012
Extended abstract
1. Introduction. This work concerns the complexity classes of languages over a finite alphabet
that are recognizable by Turing machines. It is known that P ⊆ NP [1] where P is the shortened
indication of PTIME, and NP is the shortened indication of NPTIME. But the problem of
strcitness of the inclusion is one of the most important unsolved problems in the theory of computational
complexity.
Stephen Cook introduced the P versus NP Problem in 1971 [2]. His following paper [3] contains
a detailed description of the problem and formulates it as follows: can each language over a finite
alphabet (wherein the number of symbols is equal to or more than two), that is recognizable by a
polynomial time non-deterministic single-tape Turing machine, be recognized by a polyno-
mial time deterministic single-tape Turing machine as well ?
The present work proves that the class NP is equal to the class NL (which is the abbreviation of
the class NLOGSPACE) if the polynomial upper bound on the time complexity of Turing machine
that recognizes a language A ∈ NP is known in an explicit form. Therefore the following proposition
holds:
NL = P = NP.
This paper offers a positive solution for the original P versus NP problem for the given condition.
Although the condition of the upper bound of the computational time complexity
must be explicit, as indicated in the header, the author will submit a subsequent version
of this paper to prove that the equality of classes P and NP does not require explicit
knowledge of the polynomial (in this case, the estimation of the computational time
complexity).
The proof of the equality of complexity classes NP and NL, presented in this work, is a constructive
one: the explicit algorithm is used, which is by a polynomial time non-deterministic single-tape Turing
Machine MN P that recognizes a language A over a finite alphabet and generates a logarithmic space
non-deterministic multiple-tape Turing machine MN L that recognizes the same language A.
The author beleive that it is possible to prove equality of complexity classes P and NP due to the
fact that by a polynomial time non-deterministic Turing machine that recognizes a language A, a
1
logarithmic space non-deterministic Turing machine is also constructed instead of a polynomial
time deterministic Turing machine. This constructed machine recognizes the same language A.
2. Construction of non-deterministic logarithmic space Turing machine MN L , that
recognizes a language A ∈ NP. The following definitions of non-deterministic Turing machine
as decision procedure are used in this paper.
Определение. A non-deterministic Turing machine accepts the input x if all the computation paths
of the machine M on the input x are accepting paths.
Определение. A non-deterministic Turing machine M rejects the input x if all the computation
paths of machine M on the input x are finite and are not accepting paths.
The time (space) computational complexity of Turing machine M is polynomial if there exists a
polynomial t(n) (s(n) accordingly) such that for any input x
1) the minimum of the lengths of all the accepting paths of machine M on the input x does not
exceed t(|x|) (accordingly, the number of the different visited cells on every computation path
does not exceed s(|x|)) if machine M accepts the input x, and
2) the lengths of all the computation paths of machine M on the input x do not exceed t(|x|)
(accordingly, the number of the different visited cells on every computation path does not
exceed s(|x|)) if machine M rejects the input x.
To build the logarithmic space non-deterministic multiple-tape Turing machine MN L that recognizes
language A ∈ NP, the definition of non-deterministic multiple-tape machine with limitations is
introduced, and the definition of non-deterministic multiple-tape machine which is inverse to that of
the machine with limitations is introduced also (in short, the inverse non-deterministic multiple-tape
machine).
These machines are similar to Turing machine but have some differences. For example, the inverse
machine reads and writes on all the tapes. All Turing machine definitions are similarly formulated
for the machine with limitations and for the inverse machine.
To define the computational complexity of the inverse non-deterministic multiple-tape machines,
the definition of polynomially related binary relation over set Σ∗ is introduced, where Σ∗ — is a finite
alphabet.
Definition. We will call binary relation Ω ⊆ Σ∗ × Σ∗ as a polynomially related binary relation if
polynomial r(n) with nonnegative coefficients exists so that |x| ≤ |y| ≤ r(|x|) or |y| ≤ |x| ≤ r(|y|) for
any (x, y) ∈ Ω.
Here (as is usual) by means of |x| the length of word x is specified.
Notation. We will use F irst[Ω] to denote the set of the first elements of all the pairs (x, y) ∈ Ω;
Second[Ω] will mean the set of the secondary elements of such pairs. Second[Ω, x] will be used to
denote the set of all the words y such that (x, y) ∈ Ω holds; F irst[Ω, y] will be used to denote the set
of all the words x such that (x, y) ∈ Ω holds.
Notation. Let m be an arbitrary natural, m ≥ 1. Ω[m] will mean the set of all the pairs (u, v) ∈ Ω
such that |u| = m.
Let’s introduce the following definition:
Definition. [1] We will say that non-deterministic multiple-tape Turing machine M computes word
y on the input x at a computation path if the computation path is accepting one and if machine M
in the finite configuration outputs word y.
Using the definition above, the definition of the relation that is generated by the multiple-tape
Turing machine is introduced.
Definition. We say the non-deterministic multiple-tape Turing machine M generates a binary relation
Ω if for every word x ∈ F irst[Ω] machine M computes precisely all the elements of the set Second[Ω, x]
at all the accepting paths of the computational tree of machine M on the input x.
2
Definition. Let m be some natural, m ≥ 1; let Ω[m] be a nonempty binary relation. Non-deterministic
multiple-tape Turing machine M generates binary relation Ω[m] with time complexity tM (space
complexity sM ) if for any word x from F irst[Ω[m]] (the length x is equal to m) on all the accepting
computation paths of machine M on the input x precisely all the words from Second[Ω[m], x] are
computed, and thus the length of any accepting path does not exceed tM (accordingly, the number of
cells on the work tapes, visited on any accepting computation path by machine M heads, does not
exceed sM ).
Notice that values tM and sM in the given definition are independent of m.
Definition. Let binary relation Ω be such that for any natural m ≥ 1 the relation Ω[m] is not
empty. The non-deterministic multiple-tape Turing machine M generates binary relation Ω with time
complexity tM (n) (space complexity sM (n)) if for any natural m ≥ 1 machine M generates the relation
Ω[m] with time complexity tM (m) (accordingly, the space complexity sM (m)).
In this definition tM (n) and sM (n) are the functions of natural argument n, tM (m) and sM (m)
are the values of these functions on the particular value m.
Recall that the binary relation Ω ⊆ Σ∗ × Σ∗ is called to be left-hand side complete if for any word
x ∈ Σ∗ there is a pair (x, y) from the relation Ω.
If non-deterministic (k + 2)-tape machine with limitations M generates a left-hand side complete
binary relation Ω, we can construct a non-deterministic (k + 2)-tape machine Inv[M ] that generates
the inverse relation Ω−1 ; machine Inv[M ] is precisely the machine which is inverse to the machine
with limitations M (or, as previously mentioned, simply the inverse machine).
At that the following estimation of the computational complexity of machine Inv[M ] holds.
Theorem. Let non-deterministic (k + 2)-tape machine with limitations M generate polynomially
related binary left-hand side complete relation Ω with time complexity tM (n) and space complexity
sM (n). Then inverse non-deterministic (k + 2)-tape machine M ′ generates the inverse relation Ω−1
with time complexity tM ′ (n) = r1 (tM (n) + sM (n)) and space complexity sM ′ (n) = r2 (sM (n)) for some
polynomials r1 (n1 ) and r2 (n1 ) with nonnegative coefficients.
To define non-deterministic multiple-tape machine with limitations Mptime that is to be constructed,
the definition of p-time computation path and the definition of p-time accepting computation path
of Turing machine are introduced.
Definition. Let M be a non-deterministic single-tape Turing machine with the time complexity
bounded by polynomial p(n). We will call a computation path of machine M on the input x as p-
time computation path if the length of this computation path does not exceed p(|x|). Let’s name an
accepting computation path of machine M on the input x as p-time accepting computation path if
this computation path is p-time computation path.
If Turing machine M accepts the input x and the time complexity of machine M is bounded by
polynomial p(n) then the computation tree of the machine M on the input x will have at least one
p-time accepting computation path.
If Turing machine M rejects the input x and the time complexity of machine M is polynomially
bounded by polynomial p(n) then the computation tree of machine M on the input x will include all
the p-time computation paths that are not accepting paths.
Using non-deterministic single-tape Turing machine M , we can construct a subprogram ST T M Step[M ],
embedded in a non-deterministic multiple-tape Turing machine M ′ such that every execution of this
subprogram corresponds to a step of machine M . Correspondence to a step means that we can
compute the next configuration of machine M when it transfer to the next state, without running
machine M . In particular, this will find out the symbol, which is written to the tape, when machine
M transfers to the following condition.
Then, a using non-deterministic (k + 2)-tape machine with limitations M , we can constuct
subprogram InvSBS[M ] embedded to non-deterministic multiple-tape Turing machine M ′′ such
that this subprogram, as well as subprogram ST T M Step[M ], allows computing the next computation
configuration of machine M when M transfers to the next state, without starting machine M
3
Lemma. If inverse non-deterministic (k + 2)-tape machine M works with logarithmic space on every
p-time computation path then subprogram will use logarithmic number of working tapes’ cells, if this
number of cells is measured using the length of the input of machine M . The subprogram will do this
at a sequence of steps on any p-time computation path of machine M as the input, from the descriptor
of the initial configuration to the descriptor of the final configuration of machine M .
Using subprogram ST T M Step[M ], we can construct a non-deterministic subprogram P athSub[M ]
embedded to a non-deterministic multiple-tape Turing machine such that for every input word st,
where s is the descriptor of computation M (x) for some input x of lengths n and l(s) = l(t) = p1 (n) for
some polynomial p1(n) with nonnegative coefficients, subprogram P athSub[M ] non-deterministically
computes whether t is one of the next descriptors to descriptor s in calculation M (x).
Lemma. If non-deterministic single-tape Turing machine M works with polynomial time then subprogram
P athSub[M ], at a sequence of steps on every p-time computation path of machine M from the
descriptor of the initial configuration to the descriptor of the final configuration of machineM , will
use logarithmic number of working tapes’ cells if this number of cells is measured using the length of
the input of machine M .
The non-deterministic multiple-tape machine with limitations Mptime is defined by polynomial
time non-deterministic single-tape Turing machine MN P with time complexity bounded by polynomial
p(n) as follows.
Machine Mptime transforms any input word x over alphabet {0, 1} to word y over this alphabet
with prefix 1 if x is the record of one of the p-time computation paths of machine MN P (i.e., the
input x is a sequence of descriptors), and transforms x into a word with prefix 0, if x is not a record
of any of the p-time computation paths of machine MN P .
If the number of descriptors in word x exceeds p(n), where n is the length of the input x, written
in the initial descriptor s0 , then the input x cannot be the record of p-time computation path of
machine MN P . Inthis case machine Mptime writes the output line 0x.
Otherwise, machine Mptime using subprogram P athSub[M ], when scanning the next descriptor
s written in word x, non-deterministically transfers into one of the possible next states during the
transformation from the state written in the descriptor s, and it computes the current symbol on the
tape of machine M , thereby calculating the next descriptor. If this descriptor is not equal to the next
to s descriptor, written in the word x, machine Mptime writes the output word 0x; if when scanning
the last descriptor, written in word x, the finite configuration of M machine is met, machine Mptime
writes the output 1s0 .
It is obvious that machine Mptime generates the left-hand side complete polynomial relation
Ωptime , where (x, y) ∈ Ωptime , if and only if
1) y = 1s0 for word x which is the record of a p-time computation path of machine M on the
input z. Meanwhile, the initial descriptor in this path record is the descriptor s0 , and word z is
the input of machine M that is contained in the initial descriptor s0 ;
2) y = 0x for word x that is not the record of any p-time computation path of machine M .
Lemma. If a non-deterministic single-tape Turing machine M works with polynomial time then
the non-deterministic multiple-tape machine with limitations Mptime works with polynomial time and
logarithmic space.
Polynomial time and logarithmic space non-deterministic multiple-tape Turing machine MN L ,
that accepts language A ∈ NP, is constructed from polynomial time non-deterministic single-tape
machine MN P that accepts language A, by means of subprogram InvSBS[Inv[M ptime]], where
Inv[M ptime] is the non-deterministic multiple-tape machine which is inverse to machine Mptime .
According to the definition of inverse machine, machine Inv[Mptime ] maps word 1s0 , where s0 is
the descriptor of the initial configuration in the sequence of descriptors corresponding to the p-time
computation paths of machine MN P on the input z which are contained in the descriptor s0 , and
only in such sequences.
4
Therefore, taking into account the Turing machine definition for the decision procedure, if we
write input 1s0 for machine Inv[Mptime ], then machine Inv[M ptime ] will either
1) stops in the accepting state after a polynomial number of steps, if s0 is a descriptor of the
initial configuration in the sequence of descriptors, corresponding to one of p-time accepting
computation paths of machine MN P on the input z contained in the descriptor s0 ,
2) or all its p-time computation paths are not accepting paths if machine MN P rejects the input
z containing in the descriptor s0 .
In the inverse machine Inv[Mptime ], except for p-time computation paths, there can also be the
computation paths which are infinite or have the length exceeding p(n). For the inverse machine to
retain logarithmic memory, the following check is performed for the inverse machine: if on the given
computation path the amount of cells of working tapes exceeds s(n) = Clog(n), where s(n) is the
upper estimate of the space complexity of the inverse machine, then the inverse machine on such a
computation path transforms to the final non-accepting state.
Non-deterministic Turing machine MN L , on the input x, makes the initial descriptor s0 and
transfers word 1s0 symbol-by-symbol to the input of subprogram InvSBS[Inv[Mptime ]], running this
subprogram step by step. As the machine Inv[Mptime ] generates the relation that is inverse to Ωptime ,
1) if as a result of consecutive steps of subprogram InvSBS[Inv[Mptime ]] the accepting state of
machine Inv[Mptime ] is reached, it means that machine Mptime has computed the record of
some p-time accepting computation path of machine MN P on the input 1s0 ; in this case, the
MN L machine stops in the accepting state;
2) if as a result of the consecutive steps of subprogram InvSBS[Inv[Mptime ]] on all the computation
paths the finite configuration without the acceptance state is reached, it means that machine
MN L has computed records of all the p-time computation paths of machine MN P , which are
not accepting paths, on the input 1s0 ; in this case, machine MN L rejects the input word.
As a result, machine MN L stops at the input x in the accepting state if and only if machine MN P
accepts the input x. It means that machine MN L accepts the words from A and only such words.
Due to the theorem of the computation complexity of the inverse machine, machine Inv[Mptime ]
generates the reverse relation Ω−1
ptime with the logarithmic space complexity, and, therefore, the space
complexity of MN L machine will be logarithmic. At that, despite the fact that the inverse machine
reads and writes on the input tape of machine Mptime , ode of subprogram InvSBS[Inv[Mptime ]] can
be built in such a way that there will be no need to read symbols on this tape that are already written
on it.
Theorem. Non-deterministic multiple-tape Turing machine MN L that is constructed as a result
of algorithm NDPolyTimeToNDLogSpace with polynomial time non-deterministic single-tape Turing
machine MN P as input, works with logarithmic space.
From the theorem above and from the inclusion NL ⊆ NP [1] it is stated that the following
theorem holds:
Theorem.
NP = NL.
From this theorem and inclusions NL ⊆ P ⊆ NP [1] the basic outcome of this work follows.
Theorem.
P = NP.
Keywords: computational complexity, Turing machine, class P, class NP, class NL, the P vs.
NP Problem.
5
Содержание
1 Введение 6
7 Основной результат 37
8 Заключение 38
1 Введение
Пусть Σ — некоторый конечный алфавит, количество символов в котором больше или равно
двум. Класс P [1] (сокращенное обозначение класса PTIME) языков в алфавите Σ определяется
как множество языков в данном алфавите, распознаваемых детерминированной одноленточной
6
машиной Тьюринга за полиномиальное время. Класс NP [1] (сокращенное обозначение клас-
са NPTIME) языков в алфавите Σ определяется как множество языков в данном алфавите,
распознаваемых недетерминированной одноленточной машиной Тьюринга за полиномиальное
время.
Задача о соотношении классов P и NP, поставленная by S. Cook в 1971 г. в работе [2],
формулируется следующим образом: верно ли, что P = NP ? Если ответ на данный вопрос
отрицательный, то тогда P ( NP, так как известно, что P⊆NP [1]. Подробное описание задачи
о соотношении классов P и NP содержится в [3].
Важность ответа на вопрос о соотношении классов P и NP обосновывается следующими
доводами.
Вычисления, выполняемые в пределах класса P, то есть полиномиальные по времени де-
терминированные вычисления, принято в современной теоретической информатике называть
≪осуществимые вычисления≫. Этот термин означает, что детерминированные алгоритмы, рабо-
NL = P = NP.
То есть в данной работе дается положительный ответ на вопрос о равенстве классов P и NP,
поставленный в [2].
Доказательство равенства классов NP и NL, приведенное в данной работе, является кон-
структивным: в явном виде выписывается алгоритм, который по полиномиальной по времени
недетерминированной одноленточной машине Тьюринга MN P , допускающей язык A в конечном
алфавите дает на выходе логарифмическую по памяти недетерминированую многоленточную
машину Тьюринга MN L , допускающую тот же язык A.
7
2 Основные сведения о машинах Тьюринга
В данном разделе приводятся обозначения и определения для машины Тьюринга, используемые
в литературе по теоретической информатике.
8
останавливается, если текущее состояние является допускающим или в текущей конфигурации
неприменима функция переходов.
Определение 1. [1] Конфигурация машины Тьюринга называется заключительной, если в
данной конфигурации машина останавливается. Конфигурация называется допускающей, если
состояние из данной конфигурации является допускающим.
Функция переходов порождает функцию преобразования конфигураций ⊢; переход из кон-
фигурации α к конфигурации β обозначается α ⊢ β. Машина Тьюринга M вычисляет строку
y ∈ Σ∗ на входе x, если машина M останавливается в и заключительная конфигурация αm
имеет вид αm = (q, (a, b)k+1 × (λ, y)) для некоторого допускающего состояния q ∈ F , то есть
если головка выходной ленты машины M находится на первом символе строки y (здесь λ, как
обычно, обозначает пустую строку). Далее для такой конфигурации будем просто говорить, что
на выходной ленте машины Тьюринга записана строка y.
Определение 2. [1] Вычислительным путем машины Тьюринга на входной строке x называ-
ется последовательность конфигураций (возможно бесконечная), первый элемент которой —
начальная конфигурация, а каждая следующая конфигурация получается из предыдущей кон-
фигурации с помощью функции перехода.
Определение 3. [1] Конечный вычислительный путь машины Тьюринга на входной строке
x называется допускающим, если его заключительная конфигурация является допускающей.
Определение 4. [1] Детерминированная машина Тьюринга M допускает строку x, если вы-
числительный путь машины M на входе x является допускающим. Детерминированная ма-
шина Тьюринга M отвергает строку x, если машина M на входе x останавливается и заклю-
чительная конфигурация не является допускающей.
Определение 5. [1] Детерминированная машина Тьюринга M вычисляет строку y по вход-
ной строке x, если машина M на входе x останавливается в допускающей конфигурации и
на выходной ленте записана строка y. Детерминированная машина Тьюринга M вычисляет
функцию f : D ⊆ Σ∗ → Σ∗ , если для любой строки x из области определения D функции f
машина M вычисляет строку f (x), и машина M отвергает строки, не входящие в область
определения функции f .
Недетерминированная (k+2)-ленточная машина Тьюринга состоит из тех же элемен-
тов, что и детерминированная машина Тьюринга, только недетерминированная машина Тью-
ринга вместо функции переходов δ имеет отношение переходов ∆. Понятие ≪отношение≫ здесь
используется для того, чтобы отразить тот факт, что недетерминированная машина Тьюринга
может совершать в каждый момент вычислений несколько возможных переходов. В силу этого
вычисление недетерминированной машины Тьюринга порождает дерево конфигураций, которое
называется вычислительным деревом недетерминированной машины Тьюринга.
Определение 6. Вычислительный путь недетерминированной машины Тьюринга M на вход-
ной строке x называется допускающим вычислительным путем, если данный вычислитель-
ный путь является конечным и заключительная конфигурация является допускающей.
Определение 7. [1] Недетерминированная машина Тьюринга M допускает строку x, если
среди всех вычислительных путей машины M имеется допускающий вычислительный путь.
Недетерминированная машина Тьюринга M отвергает строку x, если на всех вычислитель-
ных путях машины M на входе x машина останавливается и заключительные конфигурации
не являются допускающими.
Определение 8. [1] Недетерминированная многоленточная машина Тьюринга M вычисляет
строку y по входной строке x на некотором вычислительном пути, если данный вычисли-
тельный путь является допускающим и в заключительной конфигурации на выходной ленте
машины M записана строка y. Недетерминированная машина Тьюринга M вычисляет стро-
ку y по входной строке x, если существует хотя бы один заключительный путь, на котором
машина M вычисляет строку y, и на каждом допускающем пути машина M вычисляет одну
и ту же строку y.
9
Исходя из данных определений, для недетерминированной машины Тьюринга M можно
также определить функцию, вычисляемую машиной M . Например, в [1] имеется следующее
определение.
Определение 9. [1] Недетерминированная машина Тьюринга M вычисляет функцию f : D ⊆
Σ∗ → Σ∗ , если для любой строки x из области опрееления D функции f машина M вычисляет
строку f (x), и машина M отвергает строки, не входящие в область определения функции f .
Одноленточная машина Тьюринга M также имеет управляющее устройство, но только
одну ленту с данными. Частичная функция переходов одноленточной машины Тьюринга — это
функция δ, которая отображает (Q − F ) × Γ в Q × Γ × {L, R, S}; для недетерминированной
одноленточной машины Тьюринга определяется отношение переходов ∆ ⊆ (Q − F ) × Γ × Q × Γ ×
{L, R, S}. Конфигурация одноленточной машины Тьюринга — это набор (q, (a, b)) ∈ Q×(Γ∗ ×Γ∗ )
такой, что самый левый символ a и самый правый символ b не является пустыми. Понятие
вычислительного пути и вычисления одноленточной машины Тьюринга аналогичны таковым
для многоленточной машины Тьюринга.
Без ограничений общности можно считать, что машина Тьюринга M имеет только одно
допускающее состояние: для построения машины Тьюринга с одним допускающим состоянием
по машине Тьюринга с несколькими допускающими состояниями достаточно добавить к мно-
жеству состояний исходной машины Тьюринга одно состояние qaccept и добавить в функцию
(или отношение) переходов переходы из допускающих состояний исходной машины в данное
новое допускающее состояние qaccept . Далее будут рассматриваться машины Тьюринга с одним
допускающим состоянием.
10
Определение 15. [1] Временная (емкостная) сложность рекурсивного языка L определяется
как временная (соответственно, емкостная) сложность характеристической функции χL .
Пусть t и s — функции t : N → N и s : N → N, а T и S — наборы таких функций соответ-
ственно.
Определение 16. [1] DT IM E(t) определяется как класс языков L, допускаемых детермини-
рованными одноленточными машинами
S Тьюринга M такими, что tM (n) ≤ t(n) для всех n > 0.
DT IM E(T ) определяется как t∈T DT IM E(t).
Определение 17. [1] DSP ACE(s) определяется как класс языков L, допускаемых детерми-
нированными одноленточными (многоленточными, если речь идет о логарифмической слож-
ности) машинамиSТьюринга M такими, что sM (n) ≤ s(n) для всех n > 0. DSP ACE(S)
определяется как s∈S DSP ACE(s).
Определение 18. [1] Для недетерминированной машины Тьюринга M значение timeM (x) на
входе x определяется как минимум числа шагов машины M по всем допускающим путям
вычислительного дерева. Аналогично, spaceM (x) на входе x определяется как минимум коли-
чества ячеек на рабочих лентах (для многоленточной машины, и количества ячеек на ленте
для одноленточной машины), посещаемых машиной M , по всем допускающим путям вычис-
лительного дерева.
Если машина M отвергает входную строку x, то функции timeM (x) и spaceM (x) определя-
ются как максимум по количеству шагов (ячеек лент) по всем вычислительным путям машины
M на входе x (отметим, что все такие пути являются конечными и не являются допускающими).
Определение 19. [1] Временная сложность tM : N → N недетерминированной машины
Тьюринга M определяется как
tM (n) = max({n + 1} ∪ {timeM (x) : |x| = n, M допускает x}).
Определение 20. [1] Емкостная сложность sM : N → N машины M определяется как
sM (n) = max({1} ∪ {spaceM (x) : |x| = n, M допускает x}).
Определение 21. [1] N T IM E(t) = {язык L : L допускается одноленточнойSнедетерминиро-
ванной машиной Тьюринга M и tM (n) ≤ t(n) для всех n > 0}; N T IM E(T ) = t∈T N T IM E(t).
Определение 22. [1] N SP ACE(s) = {язык L : L допускается одноленточной (многоленточ-
ной, если речь идет о логарифмической сложности)S недетерминированной машиной Тьюринга
M и sM (n) ≤ s(n) для всех n > 0}; N SP ACE(S) = s∈S N SP ACE(s).
Пусть poly — множество полиномов с неотрицательными коэффициентами. Приведем опре-
деление классов языков, для которых доказывается ряд утверждений в данной статье:
– PTIME = DTIME(poly);
– NPTIME = NTIME(poly);
– PSPACE = DSPACE(poly);
– NPSPACE = NSPACE(poly);
S
– LOGSPACE = C>0 S DSPACE(C · log(n));
– NLOGSPACES = C>0 NSPACE(C · log(n));
– LINSPACE = C>0 DSPACE(C · n).
Помимо классов языков рассматриваются классы алгоритмов. Такие классы имеют в своем
названии приставку F, например, класс FP.
Для класса NLOGSPACE обычно используется, как уже говорилось, сокращенное обозна-
чение NL. Отметим, что при определении класса NL у недетерминированной многоленточной
машины Тьюринга M , распознающей некоторый язык L ∈ NL, при оценке используемой памяти
не учитывается количество ячеек выходной ленты, посещаемой машиной в процессе вычисле-
ний. Это связано с тем, что при определении, допускает ли машина M строку x из L, достаточно
знать состояние, в котором остановилась машина M , а символы, записанные на выходной ленте
достаточно просто проигнорировать.
11
2.3 Дескриптор конфигурации недетерминированной
одноленточной машины Тьюринга
Дескриптор конфигурации одноленточной машины Тьюринга M , обозначаемый через
ID[M ], — это текущая конфигурация машины M , записанная строкой в алфавите {0, 1} в опре-
деленном формате [1]. По сути, это набор информации о вычислении машины M на текущем
шаге, записанный в двоичной форме.
Дескриптор конфигурации состоит из 1) текущего состояния, 2) текущей позиции указателя
на ленте и 3) символов на ленте. Любое вычисление машины M записывается последователь-
ностью дескрипторов шагов. Каждый следующий дескриптор шага определяется применением
функции перехода к предыдущей конфигурации. Вычисление недетерминированной машины
Тьюринга определяет дерево дескрипторов шагов, так как от текущей конфигурации существу-
ет возможно несколько переходов к следующей конфигурации. Запись каждого пути в дереве
вычислений недетерминированной машины Тьюринга — это последовательность дескрипторов,
аналогичная последовательности дескрипторов детерминированной машины Тьюринга.
Пусть недетерминированная одноленточная машина Тьюринга M имеет состояния {qi }, i ∈
0 . . . (r − 1), а мощность алфавита Γ ограничена сверху 2g . Для каждой входной строки x длины
n каждый дескриптор ID[M ] вычислительного пути длины, не превосходящей m, вычисления
M (x) является ((4 + g)(r + 2) + (4 + g)m + (4 + g))-битной строкой из алфавита {0, 1}∗ : пустой
символ кодируется 0000 . . . 0, состояние qi кодируется 0010 . . . 0(0100 . . . 0)i (0110 . . . 0)r−i 0010 . . . 0,
позиция головки на ленте кодируется 1000 . . . 0, произвольный символ из Γ кодируется битовой
строкой длины (4 + g) с префиксом 0110 (здесь строка 0 . . . 0 есть строка, состоящая из g нулей).
Обозначение 1. Через InpStr[d] обозначим содержимое ленты одноленточной машины Тью-
ринга, записанное в дескрипторе d.
12
Каждому вычислительному пути P вычисления M (x), где M — детерминированная или неде-
терминированная машина Тьюринга, соответствует последовательность состояний в конфигу-
рациях пути P .
Обозначение 2. Последовательность состояний, содержащихся в конфигурациях вычисли-
тельного пути P вычисления M (x), где M — детерминированная или недетерминированная
машина Тьюринга, обозначим P athStates[M, P ].
Обозначение 3. Множество состояний, в которые может перейти недетерминированная
машина Тьюринга из состояния q, будем обозначать N ext[q].
Обозначение 4. Множество всех вычислительных путей (в том числе бесконечных) вычис-
ления M (x), где M — недетерминированная машина Тьюринга, обозначим CompP aths[M, x].
Обозначение 5. Множество всех допускающих вычислительных путей вычисления M (x)
обозначим через AcceptP aths[M, x].
Определение 23. Пусть M — недетерминированная одноленточная машина Тьюринга, име-
ющая временную сложность, ограниченную сверху полиномом p(n). Вычислительный путь
машины M на входной строке x будем называть p-time вычислительным путем, если длина
данного вычислительного пути не превосходит p(|x|). Допускающий вычислительный путь
машины M на входной строке x будем называть p-time-допускающим вычислительным пу-
тем, если данный вычислительный путь является p-time вычислительным путем.
Если машина Тьюринга M допускает строку x и временная сложность машины M ограни-
чена свеху полиномом p(n), то в вычислительном дереве машины M на входе x имеется хотя
бы один p-time-допускающий вычислительный путь.
Если машина Тьюринга M отвергает строку x и временная сложность машины M ограни-
чена свеху полиномом p(n), то в вычислительном дереве машины M на входе x все вычисли-
тельные пути являются p-time вычислительными путями, причем все такие пути не являются
допускающими.
Обозначим функцию ((3 + g)(r + 2) + (3 + g)p(n) + (3 + g)), равную длина дескриптора
шага машины Тьюринга M , через IDLenM,p (n). Тогда для любого входа x длины n каждый
p-time-допускающий вычислительный путь M (x) кодируется ν(n)IDLenM,p (n)-битной строкой
d0 d1 . . . dν(n)−1 , где di — i-й дескриптор ID в вычислительном пути M (x), ν(n) ≤ (p(n) + 1).
13
Обозначение 6. Через F irst[Ω] обозначим множество первых элементов всех пар (x, y) ∈
Ω; через Second[Ω] — множество вторых элементов таких пар. Через Second[Ω, x] обозначим
множество всех таких строк y, что (x, y) ∈ Ω; через F irst[Ω, y] — множество всех таких
строк x, что (x, y) ∈ Ω.
Определение 25. Будем говорить, что недетерминированная многоленточная машина Тью-
ринга M порождает бинарное отношение Ω, если для каждой строки x ∈ F irst[Ω] машина M
вычисляет в точности все элементы множества Second[Ω, x] на всех допускающих путях
вычислительного дерева при вычислении машины M на входной строке x.
Определим временную и емкостную вычислительную сложность недетерминированной ма-
шины Тьюринга, порождающей отношение Ω.
Обозначение 7. Пусть m — произвольное натуральное, m ≥ 1. Через Ω[m] обозначим мно-
жество всех пар (u, v) ∈ Ω таких, что |u| = m.
Определение 26. Пусть m — некоторое натуральное, m ≥ 1; Ω[m] — непустое бинарное от-
ношение. Недетерминированная многоленточная машина Тьюринга M порождает бинарное
отношение Ω[m] с временной сложностью tM (емкостной сложностью sM ), если для любой
строки x из F irst[Ω[m]] (длина x равна m) на всех допускающих вычислительных путях ма-
шины M на входной строке x вычисляются в точности все строки из Second[Ω[m], x] и при
этом длина любого допускающего пути не превосходит tM (соответственно, количество яче-
ек на рабочих лентах, посещаемых на любом допускающем вычислительном пути головками
машины M , не превосходит sM ).
Отметим, что величины tM и sM в данном определении не зависят от m.
Определение 27. Пусть бинарное отношение Ω таково, что для любого натурального m ≥ 1
отношение Ω[m] не пусто. Недетерминированная многоленточная машина Тьюринга M по-
рождает бинарное отношение Ω с временной сложностью tM (n) (емкостной сложностью
sM (n)), если для любого натурального m ≥ 1 машина M порождает отношение Ω[m] с вре-
менной сложностью tM (m) (соответственно, емкостной сложностью sM (m)).
В данном определении tM (n), sM (n) — функции от натурального аргумента n, tM (m); sM (m) —
значения данных функций для конкретной величины m.
14
Недетерминированная (k + 2)-ленточная машина M с ограничениями состоит из
тех же элементов, что и недетерминированная (k + 2)-ленточная машина Тьюринга, но имеет
следующие ограничения:
1) на выходную ленту машина M не пишет пустой символ;
2) для входной строки x для каждой рабочей ленты машины M точно известно, на какое ко-
личество символов достаточно переместиться головке данной ленты вправо до достижения
ячейки (не обязательно первой), следующей справа за RightF irst[M, i] или совпадающую
с ней.
Здесь в пункте 2) нам будет достаточно рассмотреть следующие два случая:
1) указанное в пункте 2) количество перемещений головки на рабочей ленте машины M впра-
во задается константой;
2) машина M не пишет пробелы на рабочую ленту, и тогда достаточно выполнить количество
сдвигов вправо, равное значению функции от длины исходных данных, ограничивающей
сверху количество ячеек с непустыми символами на данной ленте, которые посещает го-
ловка машины M .
Обозначение 9. Через M ovesT oRight[M, i] обозначим указанное в пункте 2) количество пере-
мещений на рабочей ленте с номером i машины с ограничениями M в текущей конфигурации.
Обозначение 10. Через M ovesT oRight[M ](n) обозначим сумму величин M ovesT oRight[M, i]
по всем рабочим лентам машины с ограничениями M на входной строке длины n в текущей
конфигурации.
Для машины с ограничениями будем считать, что данная машина вычисляет сроку y по
входной строке x, если допускающая конфигурация имеет вид αm = (q, (a, b)k+1 × (y, λ)), то
есть если головка выходной ленты находится непосредственно справа от строки y, записанной
на выходной строке.
Все определения для машины с ограничениями (например, понятие отношения, порождае-
мого машиной, и т.д.) аналогичны таковым для машины Тьюринга с учетом изложенных выше
свойств машины с ограничениями.
15
4) машина Inv[M ] не пишет на выходную ленту пробелы, за исключением записи при переходе
из начальной конфигурации.
Все определения для обратной машины (например, понятие отношения, порождаемого ма-
шиной, и т.д.) аналогичны таковым для машины Тьюринга с учетом изложенных выше свойств
обратной машины.
Подпрограмма, выполняющая программу обратной машины, будет далее подпрограммой
результирующей машины Тьюринга (м. далее), поэтому шаг обратной машины должен быть
аналогичен шагу машины Тьюринга.
Но прямое построение обратной машины вызывает затруднения, так как сложно опреде-
лить шаг работы обратной машины, который должен являться обратным по отношению к шагу
работы исходной машины Тьюринга. Данные затруднения обусловлены тем, что шаг работы
машины Тьюринга состоит из записи символов и переходу к следующим ячейкам и, если напря-
мую обратить это определение, то получим шаг работы машины, состоящий из сдвига головок
и записи на ленты, что уже не является шагом работы машины Тьюринга.
Чтобы преодолеть эту сложность, обратную машину будем строить с помощью последова-
тельности нескольких преобразований, где промежуточными машинами будут симметричная-
по-переходу машина и обратная к ней, определение которых дается далее в тексте данной ра-
боты.
16
порождаемого машиной, для недетерминированной симметричной-по-переходу машины форму-
лируются аналогично таковым понятиям для машины Тьюринга. Обозначения для данных по-
нятий для симметричной-по-переходу машины будем использовать те же, что и обозначения
для машины Тьюринга.
Алгоритм WithRestrToSymMove.
Построение недетерминированной многоленточной
симметричной-по-переходу машины SymM ove[M ] по
недетерминированной многоленточной машине с ограничениями M .
Вход: Недетерминированная (k + 2)-ленточная машина с ограничениями M .
Выход: Недетерминированная (k + 2)-ленточная симметричная-по-переходу машина
SymM ove[M ].
Описание:
1) количество лент у машины SymM ove[M ] такое же, как и у машины M , то есть (k + 2);
2) Q[SymM ove[M ]] := Q[M ];
3) q[SymM ove[M ], start] := q[M, start], q[SymM ove[M ], accept] := q[M, accept];
4) Σ[SymM ove[M ]] := Σ[M ], Γ[SymM ove[M ]] := Γ[M ];
5) для каждого элемента (qi , (ai1 ), qj , (bi2 ), (mi3 )) отношения ∆[M ] выполнить:
5.1) для каждой последовательности (cj1 ) длины (k + 1) символов из Γ[M ] выполнить:
5.1.1) добавить к ∆[SymM ove[M ]] элемент (qi , (ai1 ), (cj1 ), qj , (bi2 ), (cj1 ), (mi3 )).
17
Лемма 1. Недетерминированная (k + 2)-ленточная симметричная-по-переходу машина M ′
порождает то же отношение, что и порождает недетерминированная (k + 2)-ленточная
машина с ограничениями M .
Доказательство. Покажем, что для любой входной строки x множество вычислительных путей
машины M ′ совпадает с множеством вычислительных путей машины M , то есть что
18
Машину SymM oveInv[M ] будем строить как симметричную-по-переходу машину, имеющую
то же количество состояний, входные символы и символы на рабочих лентах, что и таковые у
машины M , только
1) в машине SymM oveInv[M ] для каждого состояния q машины M имеется состояние, ко-
торое обозначим через Inv[q]; если q — начальное состояние машины M , то Inv[q] — допус-
кающее состояние машины SymM oveInv[M ], и, если q — допускающее состояние машины
M , то Inv[q] — начальное состояние машины SymM oveInv[M ];
2) лента с номером (k + 1) является входной лентой машины SymM oveInv[M ]; лента с номе-
ром 0 является выходной лентой машины SymM oveInv[M ];
3) для каждого элемента отношения переходов ∆[M ]
Алгоритм SymMoveToSymMoveInv.
Построение обратной недетерминированной многоленточной
симметричной-по-переходу машины SymM oveInv[M ] по
недетерминированной многоленточной симметричной-по-переходу
машине M .
Вход: Недетерминированная (k + 2)-ленточная симметричная-по-переходу машина M .
Выход: Обратная недетерминированная (k + 2)-ленточная симметричная-по-переходу машина
SymM oveInv[M ].
Описание:
1) количество лент у машины SymM oveInv[M ] такое же, как и у машины M , то есть (k + 2);
2) входная лента машины SymM oveInv[M ] имеет индекс k + 1, выходная лента — индекс 0;
3) Q[SymM oveInv[M ]] := Inv(Q[M ]), где Inv(Q[M ]) — множество состояний Inv(q) для всех
q ∈ Q[M ];
4) q[SymM oveInv[M ], start] := Inv(q[M, accept]), q[SymM oveInv[M ], accept] := Inv(q[M, start]);
5) Σ[SymM oveInv[M ]] := Σ[M ], Γ[SymM oveInv[M ]] := Γ[M ];
6) для каждого элемента (qi , (ai1 ), (cj1 ), qj , (bi2 ), (dj2 ), (mi3 )) отношения переходов ∆[M ] вы-
полнить:
6.1) добавить к ∆[SymM oveInv[M ]] элемент
19
Обозначим через M ′′ недетерминированную (k + 2)-ленточную симметричную-по-переходу
машину SymM oveInv[M ], полученную из недетерминированной (k+2)-ленточной симметричной-
по-переходу машины M с помощью алгоритма SymMoveToSymMoveInv.
Определим начальную конфигурацию машины M ′′ .
Так как симметричная-по-переходу машина M строится машиной с ограничениями, то по
машине M можно построить симметричную-по-переходу машину M oveT oBlanks[M ], которая
непосредственно перед остановом переводит головки на рабочих лентах вправо до ячейки, следу-
ющей за RightF irst[i] или совпадающей с ней, при этом головки на входной и выходной лентах
машины будут уже находиться на такой ячейке (в силу свойств машины с ограничениями).
Обозначим машину M oveT oBlanks[M ] через M ′ . Очевидно, что машина M ′ порождает то
же отношение, что и порождает машина M .
Тогда для вычисления машины SymM oveInv[M ′ ] на входной строке y достаточно рассмот-
реть следующую начальную конфигурацию данной машины: выходная и рабочие ленты — пу-
стые (и, соотвтетственно, в текущих ячейках на данных лентах находятся пустые символы), на
входной ленте записана строка y и головка на входной ленте находится на ячейке, следующей
непосредственно за строкой y.
Если временная сложность машины M ограничена сверху функцией p(n), а емкостная —
функцией q(n), то временная сложность машины M ′ будет ограничена сверху функцией (p(n) +
M ovesT oRight[M ](n)), а емкостная — функцией (q(n) + k · M ovesT oRight[M ](n)).
В качестве исходной машины для алгоритма SymMoveToSymMoveInv будем брать машину
M . Далее рассмотрим вычислительные пути машины M ′′ .
′
20
Данные рассуждения можно провести для любого количества рабочих лент.
Отметим, что верно и утверждение, обратное к утверждению данной леммы.
Нам будет важен следующий частный случай данной леммы для обратной симметричной-
по-переходу машины, логарифмической по памяти.
Лемма 6. Если недетерминированная (k + 2)-ленточная симметричная-по-переходу машина
M ′ порождает полиномиально связанное полное слева отношение Ω с полиномом r c логариф-
мической емкостной сложностью sM ′ (n) = C1 log(n) + C2 , то недетерминированная (k + 2)-
ленточная симметричная-по-переходу машина M ′′ , обратная к машине M ′ , порождает от-
ношение Ω−1 также с логарифмической емкостной сложностью sM ′′ (n) = C3 log(n) + C4 .
21
Покажем, как по симметричной-по-переходу машине M построить машину CorrSymM ove[M ].
Для этого достаточно для каждого элемента
Алгоритм SymMoveToCorrSymMove.
Построение недетерминированной многоленточной машины
CorrSymM ove[M ] по недетерминированной многоленточной
симметричной-по-переходу машине M .
Вход: недетерминированная (k + 2)-ленточная симметричная-по-переходу машина M .
Выход: недетерминированная (k + 2)-ленточная машина CorrSymM ove[M ].
Описание:
1) количество лент у машины CorrSymM ove[M ] такое же, как и у машины M , то есть (k + 2);
2) Q[CorrSymM ove[M ]] := Q[M ];
3) q[CorrSymM ove[M ], start] := q[M, start], q[CorrSymM ove[M ], accept] := q[M, accept];
4) Σ[CorrSymM ove[M ]] := Σ[M ], Γ[CorrSymM ove[M ]] := Γ[M ];
5) для каждого элемента h = (qi , (ai1 ), (cj1 ), qj , (bi2 ), (dj2 ), (mi3 )) отношения ∆[M ] выполнить:
5.1) к Q[CorrSymM ove[M ]] добавить новое состояние q[h];
5.2) к ∆[CorrSymM ove[M ]] добавить элемент (qi , (ai1 ), q[h], (bi2 ), (mi3 ));
5.3) к ∆[CorrSymM ove[M ]] добавить элемент (q[h], (cj1 ), qj , (dj2 ), (S)).
22
конфигурации данных путей совпадают. Если путь P бесконечный, то путь T oP airs[P ] также
бесконечный.
Пусть теперь P ′ ∈ CompP aths[M ′ , x] = α0 α1 α2 α3 . . . — некоторый вычислительный путь
машины M ′ на входной строке x. Тогда, по построению ∆[M ′ ], для каждой тройки конфигу-
раций α2i α2i+1 α2i+2 в данном пути, i = 0, 1, . . ., имеется состояние q[h] такое, что если пере-
ход α2i ⊢ α2i+1 соответствует элементу (qi , (ai1 ), q[h], (bi2 ), (mi3 )) отношения переходов ∆[M ′ ],
а α2i+1 ⊢ α2i+2 соответствует элементу (q[h], (cj1 ), qj , (dj2 ), (S)) отношения переходов ∆[M ′ ], то
при вычислении машины M на конфигурации α2i будет один переход конфигураций α2i ⊢ α2i+2 ,
соответствующий элементу h = (qi , (ai1 ), (cj1 ), qj , (bi2 ), (dj2 ), (mi3 )) отношения переходов маши-
ны M .
Обозначим переход конфигураций α2i ⊢ α2i+2 машины M ′ , соответствующий паре пере-
ходов конфигураций машины M , через F romP air[α2i ⊢ α2i+1 ⊢ α2i+2 ]; через F romP airs[P ′ ]
обозначим последовательность конфигураций машины M , в котором каждая пара переходов
конфигураций α2i ⊢ α2i+1 ⊢ α2i+2 заменена на F romP air[α2i ⊢ α2i+1 ⊢ α2i+2 ].
Получаем, что вычислительный путь P ′ машины M ′ можно разбить на последовательные
пары переходов конфигураций, где каждой паре соответствует переход конфигураций машины
M . То есть для произвольного конечного вычислительного пути P ′ ∈ CompP aths[M, x] длины
(2 · n) машины M ′ имеется вычислительный путь F romP airs[P ′ ] длины n машины M , при
этом конечные конфигурации данных путей совпадают. Если путь P ′ бесконечный, то путь
F romP airs[P ′ ] также бесконечный.
Так как заключительные состояния машин M ′ и M совпадают, то в итоге имеем, что, если
машина M вычисляет строку y по строке x, то в отношении Ω′ , порождаемом машиной M ′ по
входной строке x, имеется пара (x, y), то есть машина M ′ также вычисляет строку y по строке
x, и верно обратное, то есть, если машина M ′ вычисляет строку y по строке x, то машина M
также вычисляет строку y по строке x.
23
Алгоритм WithRestrToInv.
Построение недетерминированной многоленточной машины Inv[M ],
обратной к недетерминированной многоленточной машине с ограничениями
M.
Вход: Недетерминированная (k + 2)-ленточная машина с ограничениями M .
Выход: Обратная недетерминированная (k + 2)-ленточная машина Inv[M ].
Описание:
1) по машине M строим недетерминированную (k + 2)-ленточную симметричную-по-переходу
машину SymM ove[M ], используя алгоритм WithRestrToSymMove; обозначим полученную
машину через M1 ;
2) по машине M1 строим недетерминированную (k+2)-ленточную симметричную-по-переходу
машину M oveT oBlanks[M2 ]; обозначим полученную машину через M2 ;
3) по машине M2 строим обратную недетерминированную (k + 2)-ленточную симметричную-
по-переходу машину SymM oveInv[M2 ], используя алгоритм SymMoveToSymMoveInv(M2 );
обозначим полученную машину через M3 ;
4) по машине M3 строим обратную недетерминированную (k+2)-ленточную машину Inv[M3 ],
используя алгоритм SymMoveToCorrSymMove; обозначим полученную машину через M ′ .
Машина M ′ будет обладать всем свойствами 1)-4), которые перечислены в параграфе 4.2,
в частности, машина M ′ не пишет на выходную ленту пробелы, за исключением записи при
переходе из начальной конфигурации, так как машина M3 не пишет пробелы в силу того, что
пробелы не содержатся во входной строке машины M .
Из лемм 1-8 и из свойств машины M oveT oBlanks[M ] следует справедливость следующих
утверждений.
Лемма 9. Пусть M — недетерминированная (k + 2)-ленточная машина с ограничениями. То-
гда, если M порождает отношение Ω, то обратная недетерминированная (k + 2)-ленточная
машина M ′ порождает отношение Ω−1 .
То есть машина M ′ — это искомая обратная недетерминированная (k + 2)-ленточная машина
Inv[M ], порождающая отношение Ω−1 .
Теорема 1. Пусть недетерминированная (k + 2)-ленточная машина с ограничениями M по-
рождает полиномиально-связанное полное слева бинарное отношение Ω с временной сложно-
стью tM (n) и емкостной сложностью sM (n). Тогда обратная недетерминированная (k + 2)-
ленточная машина M ′ порождает обратное отношение Ω−1 с временной сложностью tM ′ (n) =
r1 (tM (n) + sM (n)) и емкостной сложностью sM ′ (n) = r2 (sM (n)) для некоторых полиномов
r1 (n1 ) и r2 (n1 ) с неотрицательными коэффициентами.
24
вызвавшему данную подпрограмму. "Вызов"подпрограммы возникает везде, где есть переход в
ее начальное состояние≫.
Пусть ∆′ ⊂ ∆[M ], где ∆[M ] — отношение переходов недетерминированной машины Тью-
ринга M . Обозначим через States[∆′ ] состояния, содержащиеся во всех элементах отношения
∆′ .
Определение 29. Пару, состоящую из множества состояний Q′ ⊂ Q[M ] и отношения ∆′ ⊂
∆[M ], будем называть подпрограммой Sub программы машины M , если
1) States[∆′ ] = Q′ ;
2) в Q r Q′ имеется два выделенных состояния, соответсвующие вызову подпрограммы и
выходу из нее; будем обозначать эти состояния q[Sub, call], q[Sub, return];
3) в Q′ имеется два выделенных состояния, соответствующие началу работы подпрограм-
мы и окончанию ее работы; будем обозначать эти состояния q[Sub, enter], q[Sub, exit];
4) в ∆[M ] имеется единственный переход из состояния вызова подпрограммы q[Sub, call] в
состояние начала работы подпрограммы q[Sub, enter];
5) в ∆[M ] имеется единственный переход из состояния окончания работы подпрограммы
q[Sub, exit] в состояние возврата из подпрограммы q[Sub, return];
6) в ∆[M ] нет переходов из состояний Q r Q′ в состояния из Q′ кроме вышеобозначенного
перехода;
7) в ∆[M ] нет переходов из состояний Q′ в состояния из Q r Q′ кроме вышеобозначенного
перехода;
Пункты 5-7) данного определения означают, что перейдя в состояние q[Sub, enter], машина
M может перейти в состояние из Q r Q′ только из состояния q[Sub, exit], то есть только после
выполнения подпрограммы.
Определение 30. Будем называть состояния из Q r Q′ состояниями основной программы,
а состояния из Q′ — состояниями подпрограммы Sub.
Если в подпрограмме содержатся недетерминированные переходы, то машина Тьюринга,
использующая такую подпрограмму, будет недетерминированной.
Далее будем строить машину Тьюринга, начиная с построения подпрограммы, добавляя
затем к коду программы машины состояния вызова и возврата из подпрограммы. Будем обо-
значать для подпрограммы Sub элементы машины Тьюринга, использующей данную подпро-
грамму, следующим образом:
1) InputT ape[Sub] — входная лента; W orkT ape[Sub, i] — рабочая лента с номером i;
OutputT ape[Sub] — выходная лента; ленту с номером i будем также обозначать ti ;
2) Q[Sub] — множество состояний подпрограммы;
3) q[Sub, enter] — состояние начала работы подпрограммы;
4) q[Sub, exit] — состояние окончания работы подпрограммы;
5) Σ[Sub] — множество входных и выходных символов;
6) Γ[Sub] — множество символов ленты;
7) δ[S] — функция переходов подпрограммы (для детерминированной машины); ∆[S] — отно-
шение переходов подпрограммы (для недетерминированной машины).
Аналогичным образом можно определить подпрограмму программы обратной недетермини-
рованной многоленточной машины и ввести соответствующие обозначения.
25
5.2 Подпрограмма, выполнение которой соответствует
шагам недетерминированной одноленточной машины Тьюринга
Пусть временная сложность недетерминированной одноленточной машины Тьюринга M огра-
ничена сверху полиномом tM (n).
По недетерминированной одноленточной машине Тьюринга M построим подпрограмму Sub
объемлющей недетерминированной 4-ленточной машины Тьюринга M ′ (машину M ′ будем стро-
ить далее) такую, что каждое выполнение данной подпрограммы будет соответствовать некото-
рому шагу работы машины M . Соответствие шагу работы здесь понимается как возможность,
не запуская машину M , установить следующую конфигурацию вычисления машины M при пе-
реходе к следующему состоянию, в частности, установить, какой символ на ленте записывается
в процессе работы машины M при переходе к следующему состоянию.
Количество рабочих лент подпрограммы Sub равно 2. На рабочей ленте t1 подпрограммы
будем записывать переменные, необходимые для работы подпрограммы, а на рабочей ленте t2
будем записывать только символ, находящийся в текущей ячейке на ленте машины M .
Объемлющая машина Тьюринга M ′ , содержащая подпрограмму Sub, перед каждым запус-
ком данной подпрограммы записывает текущий символ ленты машины M из входной строки
машины M ′ , а после выполнения подпрограммы возвращает головку на ленте t2 в исходное со-
стояние; тем самым количество ячеек ленты t2 , на которую пишется текущий символ на ленте
машины M , будет константой при серии запусков подпрограммы Sub.
Обозначение 16. Обозначим подпрограмму программы 4-ленточной недетерминированной
машины Тьюринга, построенную по недетерминированной одноленточной машине Тьюринга
M , каждое выполнение которой соответствует некоторому шагу работы машины M , через
ST T M Step[M ].
Подпрограмму ST T M Step[M ] (аббревиатура ≪ single tape Turing machine step≫) будем стро-
ить с помощью следующего алгоритма.
Алгоритм CreateSTTMStep.
Построение подпрограммы ST T M Step[M ].
Вход: Недетерминированная одноленточная машина Тьюринга M .
Выход: Подпрограмма ST T M Step[M ] недетерминированной 4-ленточной машины Тьюринга
M ′.
Описание:
1) количество лент, используемых подпрограммой ST T M Step[M ], равно 4;
2) Q[ST T M Step[M ]] := Q[M ];
3) к Q[ST T M Step[M ]] добавляем новые состояния q[ST T M Step[M ], enter],
q[ST T M Step[M ], exit] и q ′′ ;
4) Σ[ST T M Step[M ]] := Σ[M ]; Γ[ST T M Step[M ]] := Γ[M ] ∪ {0, 1};
5) для каждого элемента
h = (qi , a, qj , b, {L, R, S})
отношения ∆[M ] добавляем элемент
h′ = (qi , B × 0 × a × B, qj , B × 1 × b × B, S × S × {L, R, S} × S)
и элемент
h′′ = (qj , B × 1 × b × B, q ′′ , B × 0 × b × B, S × S × S k+2 × S)
к отношению ∆[ST T M Step[M ]];
26
6) добавляем состояния и элементы отношения переходов, соответствующие коду подпро-
граммы ST T M Step[M ] (приведен далее).
Шаг 4) подпрограммы ST T M Step[M ], то есть переход в состояние qStateN umber , можно осу-
ществлять путем последовательного перехода из состояния qi в состояняие qi+1 , начиная с i = 0,
уменьшая при этом величину, записанную в переменной StateN umber на единицу до достиже-
ния этой переменной значения 0.
Затем, так как на ленте t1 в текущей ячейке (самая правая ячейка в записи переменной
StateN umber) записан символ 0, подпрограмма переходит из состояния qStateN umber в состояние
27
q ′ из множества состояний N ext[qStateN umber ] в соответствии с элементом отношения переходов
h′ и пишет на ленту t1 символ 1. После этого подпрограмма ST T M Step[M ] пишет в текущую
ячейку символ 0 и происходит переход из состояния q ′ в состояние q ′′ в соответствии с элементом
отношения переходов h′′ . Тем самым подпрограмма ST T M Step[M ] выполняет только один шаг
работы машины M , при этом на рабочей ленте t2 записывается символ, который находился бы
на рабочей ленте машины M при ее работе.
После каждого выполнения подпрограммы ST T M Step[M ] на ленте V arsT ape[ST T M Step[M ]]
в переменных CellN umber, Cell cодержатся номер и содержимое текущей ячейки на ленте ма-
шины M . Содержимое данных переменных может далее после выхода из подпрограммы исполь-
зоваться машиной M ′ .
Лемма 10. Если недетерминированная одноленточная машина Тьюринга M работает с по-
линомиальным временем, то подпрограмма ST T M Step[M ] при серии запусков на p−time вы-
числительном пути машины M от начальной конфигурации машины M до заключительной
конфигурации машины M будет использовать логарифмическое число ячеек рабочих лент, ес-
ли данное число ячеек измерять относительно длины входных данных машины M .
28
Алгоритм CreateInvSBS.
Построение подпрограммы InvSBS[M ].
Вход: Обратная недетерминированная (k + 2)-ленточная машина M .
Выход: Подпрограмма InvSBS[M ] недетерминированной (k + 5)-ленточной машины Тьюринга
M ′.
Описание:
1) количество лент, используемых подпрограммой InvSBS[M ], равно (k + 5);
2) Q[InvSBS[M ]] := Q[M ];
3) к Q[InvT SBS[M ]] добавляем новые состояния q[InvSBS[M ], enter], q[InvSBS[M ], exit] и
q ′′ ;
4) Σ[InvSBS[M ]] := Σ[M ]; Γ[InvSBS[M ]] := Γ[M ] ∪ {0, 1};
5) для каждого элемента
h = (qi , (ai1 ), qj , (bi2 ), {L, R, S}k+2 )
отношения ∆[M ] добавляем элемент
h′ = (qi , B × 0 × (ai1 ) × B, qj , B × 1 × (bi2 ) × B, S × S × {L, R, S}k+2 × S)
и элемент
h′′ = (qj , B × 1 × (bi1 ) × B, q ′′ , B × 0 × (bi2 ) × B, S × S × S k+2 × S)
к отношению ∆[InvSBS[M ]];
6) добавляем состояния и элементы отношения переходов, соответствующие коду подпро-
граммы InSBS[M ] (приведен далее).
29
Код подпрограммы InvSBS[M ].
1) начальное состояние подпрограммы — q[InvSBS[M ], enter];
2) присваиваем N oN extState := 0;
3) переводим головку ленты t1 на ячейку, содержащую переменную StateN umber;
4) переходим в состояние qStateN umber ;
5) если в отношении переходов ∆[InvSBS[M ]] нет перехода из состояния qStateN umber , то
присваиваем N oN extState := 1 и выходим из подпрограммы;
6) недетерминированно переходим в следующее состояние q ′ из множества возможных следу-
ющих состояний N ext[qStateN umber ]; при этом на ленты t2 , . . . , tv−1 пишутся новые символы
и головки на этих лентах перемещаются в соотвествии с тем, как это происходит при работе
машины M ;
7) переходим в состояние q ′′ ;
8) в зависимости от того, в каком направлении переместилась головка на ленте t2 , уменьшаем
или увеличиваем InputCellN umber; в InputCell пишем символ, записанный на шаге 6) на
ленту t2 ;
9) в зависимости от того, в каком направлении переместилась головка на ленте tv−1 , уменьша-
ем или увеличиваем OutputCellN umber; в OutpuCell пишем символ, записанный на шаге
6) на ленту tv−1 ;
10) записываем в StateN umber номер состояния q ′ ;
11) переходим в состояние q[InvSBS[M ], exit].
30
Доказательство. Так как машина M работает с логарифмической памятью, то количество яче-
ек рабочих лент t3 , . . . tv−2 будет ограничено сверху функцией C1 logr (n). И, далее, так как маши-
на M работает с полиномиальным временем, то длина записи переменных InputCellN umber и
OutputCellN umber на ленте V arsT ape[InvSBS[M ]] ограничена сверху функцией C2 log(n).
Доказательство. Доказательство следует из того, что при сложении и умножении чисел в дво-
ичной записи на машине с ограничениями используется количество ячеек рабочих лент, не
превосходящее длины записи аргументов.
31
Алгоритм CreatePathSub.
Построение подпрограммы P athSub[M ].
Вход: Недетерминированная одноленточная машина Тьюринга M .
Выход: Подпрограмма P athSub[M ] недетерминированной многоленточной машины с ограниче-
ниями.
Описание:
1) строим подпрограмму ST T M Step[M ] с помощью алгоритма CreateSTTMStep;
2) количество лент подпрограммы P athSub[M ] равно 4;
3) Q[P athSub[M ]] := Q[ST T M Step[M ]];
4) к Q[P athSub[M ]] добавляем новые состояния q[P athSub[M ], enter],
q[P athSub[M ], exit], соответствующие вызову подпрограммы P athSub[M ] и возврату из
нее;
5) к Q[P athSub[M ]] добавляем новые состояния q[ST T M Step[M ], call],
q[ST T M Step[M ], return], соответствующие вызову подпрограммы ST T M Step[M ] и воз-
врату из нее;
6) Σ[P athSub[M ]] := Σ[ST T M Step[M ]]; Γ[P athSub[M ]] := Γ[ST T M Step[M ]];
7) добавляем состояния и элементы отношения переходов, соответствующие коду подпро-
граммы P athSub[M ] (приведен далее).
32
8) если все сравнения успешны, присваиваем N extDescr := 1, иначе N extDescr := 0.
33
То есть первый символ строки Mptime (x) есть символ 1, если и олько если x кодирует один
из p-time вычислительных путей M (x).
Алгоритм CreateMptime.
Построение машины Тьюринга Mptime .
Вход: Недетерминированная одноленточная машина Тьюринга M .
Выход: Недетерминированная 4-ленточная машина с ограничениями Mptime .
Описание:
1) количество лент машины Mptime равно 4;
2) Q[Mptime ] := Q[P athSub[M ]];
3) к Q[Mptime ] добавляем новые состояния q[P athSub[M ], call], q[P athSub[M ], return], соот-
ветствующие вызову подпрограммы P athSub[M ] и возврату из нее;
4) Σ[Mptime ] := Σ[P athSub[M ]]; Γ[Mptime ] := Γ[P athSub[M ]];
5) добавляем состояния и элементы отношения переходов, соответствующие коду машины
Mptime (приведен далее).
34
6) пишем на выходную ленту 0x и останавливаемся в допускающем состоянии, то есть пола-
гаем Mptime (x) = 0x.
Легко увидеть, что машина Mptime порождает полиномиально связанное полное слева отно-
шение Ωptime , для которого (x, y) ∈ Ωptime , если и только если
1) y = 1s0 для строки x, являющейся записью p-time вычислительного пути машины M
на входной строке z, при этом начальным дескриптором в данной записи пути является
дескриптор s0 , а строка z является входной строкой машины M , содержащейся в начальном
дескриторе s0 ;
2) y = 0x для строки x, не являющейся записью никакого p-time вычислительного пути
машины M .
Алгоритм NDPolyTimeToNDLogSpace.
Построение недетерминированной машины Тьюринга MN L .
Вход: Недетерминированная одноленточная машина Тьюринга MN P , распознающая язык A ⊆
Σ∗ .
Выход: Недетерминированная 7-ленточная машина Тьюринга MN L , распознающая язык A.
Описание:
35
1) количество лент машины MN L равно 7;
2) Q[MN L ] := Q[Sub1 [MN P ]];
3) к Q[MN L ] добавляем новые состояния q[Sub1 [MN P ], call], q[Sub1 [MN P ], return], соответ-
ствующие вызову подпрограммы Sub1 [MN P ] и возврату из нее;
4) Σ[MN L ] := Σ[Sub1 [MN P ]]; Γ[MN L ] := Γ[Sub1 [MN P ]] ∪ {0, 1};
5) добавляем состояния и элементы отношения переходов, соответствующие коду машины
MN L (приведен далее).
По определению обратной машины, машина Inv[Mptime ] отображает строки вида 1s0 , где
s0 — дескриптор начальной конфигурации, в последовательности дескрипторов, соответствую-
щие p-time вычислительным путям машины MN P на входной строке z, содержащейся в дескрип-
торе s0 , и только в такие последовательности.
Поэтому, учитывая определение машины Тьюринга, как разрешающей процедуры, если за-
писать на вход машины Inv[Mptime ] строку 1s0 , то машина Inv[Mptime ]
1) или остановится в допускающем состоянии после полиномиального числа шагов, если s0 —
дескриптор начальной конфигурации в последовательности дескрипторов, соответствую-
щей одному из p-time-допускающих вычислительных путей машины MN P на входной стро-
ке z, содержащейся в дескрипторе s0 ,
2) или все ее p-time вычислительные пути являются не являются допускающими, если ма-
шина MN P отвергает входную строку z, содержащуюся в дескрипторе s0 .
В обратной машине Inv[Mptime ] кроме p-time вычислительных путей могут существовать
вычислительные пути, которые являются бесконечными или длина которых превосходит p(n).
Чтобы обратная машина оставалась логарифмической по памяти, в процессе работы обратной
машины выполняется следующаа проверка: если на данном вычислительном пути количество
ячеек рабочих лент превосходит величину s(n) = C log(n), где s(n) — верхняя оценка емкостной
сложности обратной машины, то обратная машина на таком вычислительном пути переходит в
заключительное недопускающее состояние.
Исходя из данного свойства машины Inv[Mptime ], определим программу машины MN L .
36
4) переходим в заключительное состояние, отличное от допускающего.
7 Основной результат
Теперь можно сформулировать следующую теорему.
Теорема 4.
NP ⊆ NL.
Доказательство. Пусть язык A в конечном алфавите распознается полиномиальной по вре-
мени недетерминированной одноленточной машиной Тьюринга MN P , то есть A ∈ NP. Тогда
по машине MN P можно построить, используя алгоритм NDPolyTimeToNDLogSpace, недетерми-
нированную 7-ленточную машину Тьюринга MN L , распознающую тот же язык A и имеющую
логарифмическую емкостную сложность, то есть A ∈ NL.
37
Из теоремы 4 и из включения NL ⊆ NP [1] следует справедливость следующей теоремы.
Теорема 5.
NP = NL.
P = NP.
8 Заключение
В данной работе в явном виде выписан алгоритм NDPolyTimeToNDLogSpace, который по поли-
номиальной по времени недетерминированной одноленточной машине Тьюринга, распознающей
язык A в конечном алфавите, строит логарифмическую по памяти недетерминированную много-
ленточную машину Тьюринга, распознающую тот же язык A. Тем самым установлено равенство
классов NP и NL и, как следствие, установлено равенство классов P и NP.
Но несмотря на равенство классов P и NP, установленное в данной работе, из алгоритма
NPolyTimeToNLogSpace не усматривается напрямую возможность построения пригодных на
практике полиномиальных по времени детерминированных алгоритмов (записанных на псев-
докоде), распознающих языки из NP.
Также нужно учитывать, что программа полиномиальной по времени недетерминирован-
ной одноленточной машины Тьюринга, полученной из логарифмической по памяти недетерми-
нированной многоленточной машины Тьюринга, является достаточно громоздкой и ее трудно
назвать практически пригодной.
Поэтому построение пригодных на практике полиномиальных по времени детерминирован-
ных алгоритмов, распознающих языки из NP, является задачей дальнейших исследований.
Список литературы
[1] D. Du and K. Ko Theory of Computational Complexity. New York: John Wiley & Sons, 2000.
p.491
[2] S. Cook ≪The complexity of theorem proving procedures.≫ in Proc. of the Third Annual ACM
Symposium on Theory of Computing, 1971. pp.151—158.
[3] S. Cook ≪The P versus NP Problem.≫ Internet: www.claymath.org/millennium/P_vs_NP/pvsnp.pdf
[4] Cornell University Library. ≪ Computational Complexity.≫ Internet:
http://arxiv.org/list/cs.CC/recent
[5] G. J. Woeginger. ≪The P-versus-NP Page.≫ Internet: http://www.win.tue.nl/~gwoegi/P-versus-NP.h
[6] A. B. Matos ≪A Turing Machine Formalism Suitable for the Characterisation of Determinism
and Reversibility.≫ Internet: http://www.dcc.fc.up.pt/~acm/tur3.pdf
[7] K. Ko Complexity Theory of Real Functions. Boston: Birkhauser, 1991. p.309
[8] J. E. Hopcroft, R. Motwani, J. D. Ullman Introduction to Automata Theory, Languages, and
Computation. 2nd ed. Dallas: Pearson Publications, 2000. p.521
[9] C. H. Papadimitriou Computational complexity. White Plains: Addison-Wesley, 1994. p.523
38