Это не официальный сайт wikipedia.org 01.01.2023

Машина Минского — Википедия

Машина Минского

Машина Минского — многоленточная машина Тьюринга, у которой ленты слева не надстраиваются (ограничены по длине), все ячейки лент, за исключением самых левых, всегда пусты, а состояния самых левых ячеек постоянны[1]. Также называется регистровая машина. Понятие ввёл в науку М. Минский[2]

Система командПравить

Внешний алфавит (совокупность символов, записанных на лентах) машины Минского состоит из символов 0 , 1  . Символ пустого состояния 0  , все самые левые клетки всех лент находятся в состоянии 1  .

Полное описание n   — ленточной машины Минского задаётся указанием совокупности всех её внутренних состояний q i ,   i = 1 , , n   и программы машины, состоящей из команд вида

q i a 1 a s q α T α 1 T α s ,  

где i = 1 , , n  ; a λ = 0 , 1  ; α = 0 , 1 , , n  ; α λ = 0 , 1 , 1  .

Эти команды означают, что, находясь во внутреннем состоянии q i   и воспринимая ячейки лент в состояниях a 1 a s  , машина заменяет q i   на q α  , после чего сдвигает ленты в направлениях T α 1 T α s   ( T 1 , T 1 , T 0   означают соответственно сдвиг ленты на одну ячейку влево, вправо и оставление ленты неподвижной).

Так как 1   есть состояние самой левой ячейки, то в командах из a λ = 1   должно следовать неравенство α λ 1  .

СвойстваПравить

  • Для каждой частично рекурсивной функции f ( x )   существует трёхленточная машина Минского, вычисляющая эту функцию, то есть переходящая из конфигурации 10 x 1 q 1 0 q 1 1 q 1 1   в конфигурацию 10 f ( x ) 1 q 0 0 q 0 1 q 0 1  , если f ( x )   определено, и работающая вечно, если f ( x )   не определено[1].
  • Для каждой частично рекурсивной функции f ( x )   существует двухленточная машина Минского, которая для любого натурального x   перерабатывает число 2 x   в число 2 f ( x )  , если f ( x )   определено, и работающая безостановочно, не переходя в заключительное внутреннее состояние q 0  , если f ( x )   не определено[1]
  • Для каждой частично рекурсивной функции f ( x )   существует операторный алгоритм, перерабатывающий 2 2 x   в 2 2 f ( x )  , программа которого состоит лишь из приказов вида[1]{{pb
    | × 2 | α | _ ¯ , | × 3 | α | _ ¯ , | × 2 | α | β | _ ¯ .  

Регистровая машинаПравить

Регистровая (или программная) машина состоит из конечного числа регистров, хранящих неотрицательные целые числа и управляющий программный блок, который выполняет операции над содержимым регистров согласно программе (упорядоченной последовательности команд). Команды содержат сведения о выполняемой операции, регистре, номерах одной или двух других команд[3].

Для всякой машины Тьюринга всегда можно построить эквивалентную ей регистровую машину, использующую два регистра и выполняющую четыре операции[4]:

  • | a 0 | ¯ _   — занести 0   в регистр a  ;
  • | a | ¯ _   — добавить 1   к содержимому регистра a   и перейти к новой команде;
  • | a ( n ) | ¯ _   — вычесть 1   из содержимого регистра a   и перейти к следующей команде или перейти к команде n ,   если в нём уже содержится 0  ;
  • | n | ¯ _   — перейти к команде n  .

Двухленточная машина Минского полностью эквивалентна регистровой машине с двумя регистрами. Если длины лент от считывающих головок до концов рассматривать как представления чисел m   и n  , операции m +   и n +   сдвигают головки в сторону от концов, а m   и n   к концам, при условии, что не достигнут конец ленты[5], полностью эквивалентна регистровой (программной) машине с двумя регистрами, в один из регистров которой помещается нуль, а в другой число 2 a 3 m 5 n  [6].

См. такжеПравить

ПримечанияПравить

  1. 1 2 3 4 Мальцев А. И. Алгоритмы и рекурсивные функции. — М., Наука, 1986. — с. 304—315
  2. Minsky M. L. Recursive unsolvalibility of Post’s problem of Tag and topics in theory of Turing machines (англ.). — Ann. Math., 1961, 74, p. 437—455.
  3. Минский, 1971, с. 244.
  4. Минский, 1971, с. 304.
  5. Минский, 1971, с. 209.
  6. Минский, 1971, с. 311,306.

ЛитератураПравить

  • Минский М. Вычисления и автоматы. — М.: Мир, 1971. — 360 с.