Вычислимость лекция 10

advertisement
Вычислимость
лекция 10
Лев Дмитриевич Беклемишев
http://lpcs.math.msu.su/vml2010
lbekl@yandex.ru
15.04.2009
Машины Тьюринга
Опр.
Машина Тьюринга задаётся конечными
рабочим алфавитом Σ, содержащим символ
# (пробел);
множеством состояний Q, содержащим
состояния q1 (начальное) и q0 (конечное);
набором команд (программой) P.
Опр.
Машина Тьюринга есть набор
M = hQ, Σ, P, q0 , q1 i.
Пример.
Пусть Σ = {#, 0, 1}, Q = {q0 , q1 , q2 }, а P состоит
из следующих команд:
q1 # →
7
q1 #R
q1 0 →
7
q1 1R
q1 1 →
7
q1 0R
q2 0 →
7
q2 1R
q2 1 →
7
q2 0R
q2 # →
7
q0 #L
Конфигурации
Предположение: лента содержит лишь конечное
число символов, отличных от #.
Опр.
Конфигурация машины M определяется
содержимым ленты, состоянием и положением
головки. Конфигурация записывается словом
вида XqaY , где
XaY ∈ Σ∗ есть содержимое ленты,
q ∈ Q есть состояние M,
головка обозревает символ a.
Функция, вычислимая машиной
Тьюринга
Пусть ∆ ⊂ Σ и # ∈
/ ∆.
Опр.
M вычисляет частичную функцию f : ∆∗ → ∆∗ ,
если для каждого x ∈ ∆∗
если x ∈ dom(f ), то начав работу в
конфигурации q1 #x, машина M
останавливается в конфигурации q0 #f (x);
если x ∈
/ dom(f ), то машина M не
останавливается.
Пример.
Машина M из примера (почти) вычисляет
функцию neg : {0, 1}∗ → {0, 1}∗ , заменяющую в
данном слове 0 на 1 и 1 на 0. Чтобы вернуть
головку в начало модифицируем M:
q1 #
q1 0
q1 1
q2 0
q2 1
q2 #
q3 0
q3 1
q3 #
7
→
7→
7
→
7
→
7
→
7
→
7
→
7
→
7
→
q1 #R
q2 1R
q2 0R
q2 1R
q2 0R
q3 #L
q3 0L
q3 1L
q0 #N
Упражнения
Построить машины Тьюринга, вычисляющие
следующие функции над алфавитом {0, 1}:
f (x) = xx (копирование слова)
P
g (x1 . . . xn ) = ni=1 xi mod 2
(сумма битов по модулю 2)
Вычислимые функции Nk → N
Для f : Nk → N определим f¯ : {0, 1}∗ → {0, 1}∗ :
f¯(x) = y , если x = 1n1 0 . . . 01nk и y = 1m для
некоторых n1 , . . . , nk , m ∈ N и f (n1 , . . . , nk ) = m.
Опр.
f : Nk → N вычислима по Тьюрингу, если
вычислима f¯ : {0, 1}∗ → {0, 1}∗ .
Вычислимые функции Nk → N
Для f : Nk → N определим f¯ : {0, 1}∗ → {0, 1}∗ :
f¯(x) = y , если x = 1n1 0 . . . 01nk и y = 1m для
некоторых n1 , . . . , nk , m ∈ N и f (n1 , . . . , nk ) = m.
Опр.
f : Nk → N вычислима по Тьюрингу, если
вычислима f¯ : {0, 1}∗ → {0, 1}∗ .
Примеры
Арифметические операции + и ×
вычислимы.
Композиция вычислимых функций
вычислима.
Многочлены с натуральными
коэффициентами вычислимы.
Вычислимые биекции
Утверждение.
Существует вычислимая биекция N × N ↔ N.
Канторовский пересчёт пар: h0, 0i, h0, 1i, h1, 0i,
h2, 0i, h1, 1i, h0, 2i, . . .
c(x, y ) := номер пары hx, y i
Подсчёт
Лемма.
c(x, y ) = 12 (x + y )(x + y + 1) + x
Доказательство.
c(x, y ) = n + x, где n = 1 + 2 + · · · + (x + y − 1)
Обратные функции
Из биективности c однозначно определены
функции l, r такие что c(l(x), r (x)) = x для всех
x ∈ N.
Также имеем l(c(x, y )) = x, r (c(x, y )) = y .
Почему функции l и r вычислимы?
Кодирование кортежей длины n
Определим по индукции вычислимые биективные
функции cn : Nn → N для n ≥ 2:
c2 (x1 , x2 ) := c(x1 , x2 )
cn+1 (x1 , . . . , xn+1 ) := c(cn (x1 , . . . , xn ), xn+1 )
Обратные функции πin определяются равенствами:
cn (π1n (x), . . . , πnn (x)) = x для всех x ∈ N.
Кодирование кортежей конечной
длины
Утверждение.
Существует вычислимая биекция C : N<ω → N.
C (hx1 , . . . , xn i) := c(n, cn (x1 , . . . , xn )).
В каком смысле можно говорить о вычислимости
функции C ?
Кодирование слов в алфавите Σ
Утверждение.
Для любого непустого алфавита Σ существует
вычислимая биекция Σ∗ ↔ N.
Доказательство.
Пусть Σ = {0, . . . , m − 1} и m ≥ 2.
Cопоставим Λ 7→ 0 и
a1 a2 . . . an 7−→
n
X
i=1
(ai + 1)mn−i
Утверждение.
Всякое x > 0 однозначно представляется в виде
x = (a0 + 1) + (a1 + 1)m + · · · + (an + 1)mn ,
где 0 ≤ ai < m для всех i.
Доказательство.
n
n
n
X
X
X
n−i
n−i
x=
(ai + 1)m =
ai m +
mi
i=1
i=1
=
n
X
i=1
ai mn−i +
i=1
n+1
m
−1
m−1
Решение относительно a1 , . . . , an существует и
единственно, если
mn+1 − 1
< mn+1 .
0≤x−
m−1
Это равносильно
mn+1 − 1
mn+1 − 1
mn+2 − 1
n+1
≤x <
+m
=
.
m−1
m−1
m−1
Разрешимые множества
Опр.
Множество A ⊆ Nk разрешимо, если вычислима
характеристическая функция χA : Nk → {0, 1}, где
(
1, если x ∈ A
χA (x) =
0, иначе.
Примеры
Разрешимы:
множества ∅, N;
конечные множества;
множество чётных чисел;
множество простых чисел;
{hm, ni : m и n взаимно просты};
...
Свойства замкнутости
Утверждение.
Класс разрешимых подмножеств N замкнут
относительно булевых операций ∩, ∪, \.
Разрешимые подмножества N образуют булеву
алгебру.
Перечислимые множества
Опр.
Частичной характеристической функцией A ⊆ Nk
называем χ∗A : Nk → {0, 1}, где
(
1,
если x ∈ A;
χ∗A (x) =
не определено, иначе.
Tеорема.
Для любого A ⊆ N cледующие утв. равносильны:
1
функция χ∗A вычислима;
2
A = dom(f ) для некоторой вычислимой f ;
3
A = rng(f ) для некоторой вычислимой f ;
4
A = ∅ или A = rng(f ) для некоторой
вычислимой f такой что dom(f ) = N;
5
A = {x : ∃y hx, y i ∈ B} для некоторого
разрешимого B ⊆ N × N.
Доказательство
Утверждения 1 ⇒ 2 и 4 ⇒ 3 очевидны.
1 ⇒ 5:
Пусть машина Mf вычисляет f . Рассмотрим
B {hx, y i : Mf на входе x ост. за y шагов}.
Тогда x ∈ dom(f ) ⇐⇒ ∃y hx, y i ∈ B и
B разрешимо.
5 ⇒ 4:
Допустим A 6= ∅, выберем a0 ∈ A.
Определим f : N → N так:
(
l(x), если hl(x), r (x)i ∈ B
f (x) a0 ,
иначе.
3 ⇒ 1:
Пусть Mf вычисляет f . Вычисляем χ∗A (x) для
данного x:
Для каждого n = 0, 1, 2, . . . выполним:
сопоставим n пару l = l(n) и r = r (n);
проделаем r шагов вычисления Mf на входе l;
если получен результат y = x, то выдаем
ответ 1 и останавливаемся (иначе
рассматриваем следующее n).
Свойства перечислимых множеств
Опр.
Множество A, удовлетворяющее любому из
пунктов доказанной теоремы, называется
перечислимым.
Всякое разрешимое множество перечислимо.
Класс перечислимых подмножеств N замкнут
относительно операций ∩, ∪.
Диофантовы уравнения
Пусть P(x1 , . . . , xn ) – многочлен с целыми
коэффициентами.
Утверждение.
Множество всех решений уравнения
P(x1 , . . . , xn ) = 0 в натуральных числах
разрешимо (как подмножество Nn ).
Диофантовы множества
Опр.
Множество вида
{m ∈ N : P(m, x1 , . . . , xn ) = 0 имеет решение в N}
называется диофантовым.
Утверждение.
Всякое диофантово множество перечислимо.
Теорема Матиясевича
Tеорема.
Всякое перечислимое множество диофантово.
Из этой теоремы вытекает решение 10-й
проблемы Гильберта:
Следствие.
Множество всех диофантовых уравнений
P(x1 , . . . , xn ) = 0, которые имеют решение в N,
неразрешимо.
Доказательство: возьмем диофантово
представление перечислимого неразрешимого
множества.
Download