Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA1_2.DOC
Скачиваний:
9
Добавлен:
02.11.2018
Размер:
444.42 Кб
Скачать

0.13. Связь мт и рам.

РАМ может моделировать работу k-ленточной МТ, помещая по одной клетке МТ в регистр. В частности i-ую клетку j-ой ленты можно хранить в регистре ki+j+c, где c- постоянная, назначение которой - дать РАМ некоторое “оперативное пространство”. В него включаются k регистров для запоминания положения k головок МТ. РАМ может считывать клетки МТ, используя косвенную адресацию с помощью регистров, содержащих положение головок на лентах.

Предположим, что данная МТ имеет временную сложность T(n)n. Тогда РАМ может прочитать ее вход, запомнить его в регистрах, представляющих первую ленту, и смоделировать эту МТ за время O(T(n)) при равномерном весовом критерии и O(T(n) log T(n)) при логарифмическом.

В любом случае время на РАМ ограничено сверху полиномом от времени МТ, т.к. любая функция типа O(T(n) log T(n)) есть O((T(n))2).

Обратное утверждение верно только при логарифмическом весовом критерии для РАМ. При равномерном весе n-шаговая программа для РАМ без входа может вычислять числа порядка 2^(2n), что требует порядка 2n клеток МТ только для запоминания и считывания. Поэтому при равномерном весе нет полиномиальной связи между РАМ и МТ.

Теорема 0.1.

РАМ с логарифмическим весом и kленточные машины Тьюринга полиномиально связаны.

Утверждение 1.

Пусть L- язык, допускаемый некоторой РАМ за время Т(n) при логарифмическом критерии.

Если в РАМ -программе нет умножений и делений, то на многоленточных МТ L имеет временную сложность не более O(T2 (n)).

Построим по РАМ МТ.

Представим все не содержащие нуля регистры рассматриваемой РАМ, как показано на рис.3.

На первой ленте МТ помещена последовательность пар чисел (ij, cj), записанных в двоичной форме без нулей в начале слова и разделенных маркерами.

Для каждого j число сj  содержимое регистра ij РАМ.

Содержимое сумматора хранится на второй ленте, а третья играет роль рабочей памяти. Еще две ленты служат для записи входа и выхода РАМ. Каждый шаг программы РАМ представлен конечным числом состояний МТ.

Рассмотрим команду ADD*20. Для нее можно устроить МТ так, чтобы она работала следующим образом.

  1. На ленте 1 отыскивается место, соответствующее регистру 20 в РАМ, т.е. последовательность ##10100#. Если оно находится,на ленту 3 помещается следующее за ним число, которое будет содержимым регистра 20. Если такое место не найдено, машина останавливается  содержимое регистра 20 равно нулю, и поэтому косвенную адресацию прооизвести нельзя.

  2. На ленте 1 отыскивается место, где хранится регистр РАМ, номер которого записан на ленте 3. Если оно находится, то содержимое этого регистра записывается на ленте 3. Если нет, туда помещается 0.

  3. Число, записанное на ленту 3 на шаге 2, прибавляется к содержимому сумматора, которое хранится на ленте 2.

Для моделирования STORE 30 можно так построить МТ, чтобы она работала следующим образом.

  1. Разыскивается место расположения регистра 30 в РАМ, т.е. ##11110#.

  2. Если оно находится, то на ленту 3 записывается все, что расположено справа от ##11110#, кроме числа, стоящего непосредственно справа ( т.е. старого содержимого регистра 30). Затем содержимое сумматора ( на ленте 2 ) записывается непосредственно справа от ##11110#, а за ним помещается слово, скопированное на ленту 3.

  3. Если на ленте 1 не нашлось места, соответствующего регистру 30, то, дойдя до самого левого пустого символа, машина печатает 11110#, затем содержимое сумматора и, наконец, ##.

Таким образом можно указать МТ, которая правильно смоделирует РАМ. Надо показать, что вычисление на РАМ с логарифмическим весом k потребует не более O (k2) шагов на МТ. Учтем, что регистр может появиться на ленте 1, только если его текущее значение когда-то раньше было помещено в этот регистр. Вес записи cj в регистр ij равен l(cj) + l(ij), что с точностьюдо постоянной равно длине нашего представления ## ij# cj##. Отсюда заключаем, что длина непустой части ленты 1 есть O(k).

Моделирование любой команды, отличной от STORE, имеет порядок длины ленты 1, т.е. O(k), так как основное вреия уходит на поиск на ленте. Аналогично время моделирования STORE не больше суммы времен поиска на ленте 1 и копирования ее  все вместе O(k). Следовательно, одну команду РАМ ( кроме умножения и деления ) можно пормоделировать не более чем за O(k) шагов МТ. Так как одна команда РАМ занимает при логарифмическом весе по крайней мере одну единицу времени, общее время, затрачиваемое соответствующей МТ, есть O(k2).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]