Введение в схемы, автоматы и алгоритмы

          

Вычислимость частично рекурсивных функций по Тьюрингу


Теорема 10.1. Для всякой ч.р.ф. f существует м.Т.

Вычислимость частично рекурсивных функций по Тьюрингу
вычисляющая функцию f.

Доказательство. Доказательство проведем индукцией по определению частично рекурсивной функции f.

Базис. Вычислимость простейших функций машинами Тьюринга очевидна.

Индукционный шаг. Покажем, что операторы суперпозиции, примитивной рекурсии и минимизации сохраняют вычислимость по Тьюрингу. Все используемые м.Т. будем предполагать односторонними со стандартными заключительными конфигурациями.

Суперпозиция. Пусть Fm и fn1,…, fnm

- ч.р.ф., вычислимые на м.Т.

Вычислимость частично рекурсивных функций по Тьюрингу
соответственно. Пусть функция Gn получена из них с помощью суперпозиции: Gn=[Fm;fn1,…, fnm]. Тогда м.Т.
Вычислимость частично рекурсивных функций по Тьюрингу

вычисляющая G, работает следующим образом:

  1. m раз копирует вход
    Вычислимость частично рекурсивных функций по Тьюрингу
    отделяя одну копию от другой символом #;
  2. на полученном слове вида
    Вычислимость частично рекурсивных функций по Тьюрингу
  3. запускает параллельную композицию машин
    Вычислимость частично рекурсивных функций по Тьюрингу
    и получает конфигурацию вида
    Вычислимость частично рекурсивных функций по Тьюрингу
    где yi=fi(x1,…,xn) (i
    Вычислимость частично рекурсивных функций по Тьюрингу
    [1,m]).
  4. заменяет все символы 0023 на *;
  5. затем запускает программу м.Т.
    Вычислимость частично рекурсивных функций по Тьюрингу
    на получившемся после этапа 3) входе вида
    Вычислимость частично рекурсивных функций по Тьюрингу
    и вычисляет требуемое значение
    Вычислимость частично рекурсивных функций по Тьюрингу

Если обозначить м.Т., выполняющую копирование на этапе (1), через Копm, а м.Т., выполняющую замену # на * на этапе (3), через Зам*#, то требуемую для суперпозиции м.Т.

Вычислимость частично рекурсивных функций по Тьюрингу
можно представить как

Вычислимость частично рекурсивных функций по Тьюрингу

Примитивная рекурсия. Пусть функция Fn+1(x1,… ,xn,y) получена с помощью оператора примитивной рекурсии из функций gn(x1,…, xn) и fn+2(x1,… ,xn, y, z), которые вычислимы на м.Т.

Вычислимость частично рекурсивных функций по Тьюрингу
и
Вычислимость частично рекурсивных функций по Тьюрингу
. Определим вспомогательные м.Т.:

  • Вычислимость частично рекурсивных функций по Тьюрингу
    используя
    Вычислимость частично рекурсивных функций по Тьюрингу
    строит по входу вида
    Вычислимость частично рекурсивных функций по Тьюрингу
    конфигурацию на ленте
    Вычислимость частично рекурсивных функций по Тьюрингу
  • Вычислимость частично рекурсивных функций по Тьюрингу
    используя
    Вычислимость частично рекурсивных функций по Тьюрингу
    строит по входу вида
    Вычислимость частично рекурсивных функций по Тьюрингу
    конфигурацию
    Вычислимость частично рекурсивных функций по Тьюрингу
  • Вычислимость частично рекурсивных функций по Тьюрингу
    на входе вида
    Вычислимость частично рекурсивных функций по Тьюрингу
    выдает в качестве результата
    Вычислимость частично рекурсивных функций по Тьюрингу
  • ? на входе вида
    Вычислимость частично рекурсивных функций по Тьюрингу
    проверяет условие y
    Вычислимость частично рекурсивных функций по Тьюрингу
    u.

Построение каждой из указанных м.Т. достаточно очевидно. Из них можно получить, используя определенные в предыдущем разделе конструкции "языка программирования" для машин Тьюринга, требуемую м.Т.

Вычислимость частично рекурсивных функций по Тьюрингу

Вычислимость частично рекурсивных функций по Тьюрингу

Минимизация. Пусть fn(x1,…, xn) = ? y [ gn+1(x1,…, xn,y)=0] и м.Т.

Вычислимость частично рекурсивных функций по Тьюрингу
вычисляет функцию gn+1. Определим следующие вспомогательные м.Т.:

Вычислимость частично рекурсивных функций по Тьюрингу
приписывает аргумент 0 ко входу, т.е. вход вида
Вычислимость частично рекурсивных функций по Тьюрингу
переводит в конфигурацию на ленте
Вычислимость частично рекурсивных функций по Тьюрингу
(напомним, что при унарном кодировании 0 соответствует пустой символ).


Вычислимость частично рекурсивных функций по Тьюрингу
копирует свой вход с разделителем #, т.е. по любому входу w выдает w # w.

Через E обозначим м.Т., которая ничего не делает.

Пусть
Вычислимость частично рекурсивных функций по Тьюрингу
т.е. вход вида
Вычислимость частично рекурсивных функций по Тьюрингу
машина
Вычислимость частично рекурсивных функций по Тьюрингу
перерабатывает, используя
Вычислимость частично рекурсивных функций по Тьюрингу


в
Вычислимость частично рекурсивных функций по Тьюрингу
, где z= g(x1,… ,xn, y)

? на входе вида w # v проверяет непустоту v (т.е. условие v > 0).

Вычислимость частично рекурсивных функций по Тьюрингу


Таким образом, при v=g(x1,…,xn,y) машина ? проверяет условие g(x1,…,xn,y)
Вычислимость частично рекурсивных функций по Тьюрингу
0.

Вычислимость частично рекурсивных функций по Тьюрингу
по входу вида
Вычислимость частично рекурсивных функций по Тьюрингу
стирает #w и прибавляет к y единицу, т.е. выдает результат:
Вычислимость частично рекурсивных функций по Тьюрингу


Наконец,
Вычислимость частично рекурсивных функций по Тьюрингу
по входу
Вычислимость частично рекурсивных функций по Тьюрингу
выдает |y, стирая ненужные блоки символов.

Ясно, что каждая из перечисленных м.Т.
Вычислимость частично рекурсивных функций по Тьюрингу
Вычислимость частично рекурсивных функций по Тьюрингу
,
Вычислимость частично рекурсивных функций по Тьюрингу
,
Вычислимость частично рекурсивных функций по Тьюрингу
,
Вычислимость частично рекурсивных функций по Тьюрингу
и ? легко реализуема. Построим теперь с их помощью следующую м.Т.
Вычислимость частично рекурсивных функций по Тьюрингу


Вычислимость частично рекурсивных функций по Тьюрингу


Из этого определения непосредственно следует, что
Вычислимость частично рекурсивных функций по Тьюрингу
вычисляет функцию fn(x1,…, xn), заданную с помощью оператора минимизации.


Содержание раздела