Вычислимость лекция 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, неразрешимо. Доказательство: возьмем диофантово представление перечислимого неразрешимого множества.