Содержание

Слайд 2

Всякая машина Тьюринга А может быть преобразована в эквивалентную машину В не

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

Теорема Шеннона №1

Слайд 3

Пусть машина А содержит:
m символов внешнего алфавита a1,…,j,…,m,
n внутренних состояний S1,…,i,…,n,
Тогда

Пусть машина А содержит: m символов внешнего алфавита a1,…,j,…,m, n внутренних состояний
машина В будет содержать:
два внутренних состояния α и β,
m обычных символов внешнего алфавита bi , являющихся аналогами ai,
Не более чем 4mn особенных символов b, за счет которых производится расширение внутренней памяти.

Доказательство теоремы Шеннона № 1

Слайд 4

Для произвольной машины Тьюринга А с алфавитом из m букв (символов, записываемых

Для произвольной машины Тьюринга А с алфавитом из m букв (символов, записываемых
на ленте, включая пустой символ) и с n внутренними состояниями мы построим машину В с двумя внутренними состояниями и алфавитом не более чем из 4mn+m символов.
Машина В будет работать, по существу, так же, как и машина А: во всех клетках ленты, кроме воспринимаемой считывающей головкой и одной смежной с ней, на ленте машины В записано то же, что и на ленте машины А в соответствующие такты работы двух машин.

Общая идея построения

Слайд 5

Машина В моделирует поведение машины А, но хранит информацию о внутреннем состоянии

Машина В моделирует поведение машины А, но хранит информацию о внутреннем состоянии
машины А с помощью символов, записанных в клетке под считывающей головкой, и в клетке, которую считывающая головка машины А собирается посетить.
Основная задача — своевременно освежать эту информацию и держать ее под считывающей головкой. Если последняя передвигается, то информацию о состоянии надо перенести в новый квадрат, используя всего два внутренних состояния машины В.

Общая идея построения

Слайд 6

Пусть символы алфавита машины А a1, a2, ..., am и ее состояния

Пусть символы алфавита машины А a1, a2, ..., am и ее состояния
S1, S2, ..., Sn.
В машине В поставим в соответствие алфавиту машины А m элементарных символов b1, b2, ..., bm .
Затем определим 4mn новых символов, соответствующих парам из состояния и символа машины А, снабженных двумя новыми двузначными индексами. Такие новые символы будем называть особыми.

Формальная схема построения

Слайд 7

Особый знак машины В имеет формат bijxy, где:
i - номер ленточного символа,

Особый знак машины В имеет формат bijxy, где: i - номер ленточного
i = 1, 2, … , m
j - номер внутреннего состояния машины А, j = 1, 2, … , n
x - назначение (роль) клетки: если клетка передает информацию во время «качания», то х = ”+”, а если получает – то х = ”-”. Сами клетки назовем соответственно: передатчик / приёмник.
y - положение другой особой клетки (машина В не может запомнить откуда она ушла): в зависимости от того, вправо или влево от воспринимаемой клетки должна передвинуться считывающая головка при качании, y = R или L.
Два состояния машины В назовем α и β.

Формальная схема построения

Слайд 8

При первом шаге качания они переносят в ближайшую подлежащую посещению клетку информацию

При первом шаге качания они переносят в ближайшую подлежащую посещению клетку информацию
о том, вправо (α) или влево (β) от новой клетки лежит старая клетка. Эта информация нужна в новой клетке, чтобы управляющий элемент передвинул считывающую головку назад в нужном направлении. После первого шага информация об этом сохраняется в новой клетке с помощью записанного там символа (последний индекс у).
Состояния α и β используются, чтобы сообщить из старой клетки в новую o факте окончания качания. После первого шага качания состояние β переносится в новую клетку вплоть до конца качания, когда переносится α. Это означает конец операции, и новая клетка начинает затем действовать как передатчик и управляет следующим шагом вычисления.

Формальная схема построения

Слайд 9

Чтобы заставить машину В работать аналогично машине А, мы заполняем начальную ленту

Чтобы заставить машину В работать аналогично машине А, мы заполняем начальную ленту
машины В соответственно начальной ленте машины А (с заменой ai на bi ), за исключением клетки, занимаемой считывающей головкой в начальный момент.
Если Sj - начальное состояние машины А и ai начальный символ в этом квадрате, то в соответствующем квадрате ленты машины В записываем и приводим машину В в состояние α.

Формальная схема построения

Слайд 10

Таблица работы машины В

Таблица работы машины В

Слайд 11

Предположим, что машина A имеет команду:

Тогда машина В будет иметь команду:

Формальная схема

Предположим, что машина A имеет команду: Тогда машина В будет иметь команду:
построения

Пусть м.А
S7 a3→a8 R S4

Слайд 12

Инструкция машины А заменяется приведенной выше инструкцией для машины В. Машина В

Инструкция машины А заменяется приведенной выше инструкцией для машины В. Машина В
работает вплоть до момента, когда вместо особого символа в одной из двух особых клеток окажется записанным элементарный символ, соответствующий символу из внешнего алфавита машины А.
Т.о. будет произведен набор действий, эквивалентный первой команде (инструкции) машины А. Далее аналогично эмулируется вторая команда и т.д. вплоть до остановки машины А и эквивалентной её машины В.
Итого показано, как машина А преобразуется в эквивалентную ей машину В с двумя внутренними состояниями, Q.E.D.

Формальная схема построения

Слайд 13


Всякая машина Тьюринга А может быть преобразована в эквивалентную машину С не

Всякая машина Тьюринга А может быть преобразована в эквивалентную машину С не
более чем с двумя знаками внешнего алфавита.
Доказательством будет схема построения.
Покажем, что можно построить машину С, работающую подобно любой заданной машине Тьюринга А и использующую только два символа внешнего алфавита, например символы 0 и 1.

Теорема Шеннона №2

Слайд 14

Пусть машина А содержит:
n внутренних состояний Sj,
m символов внешнего алфавита ai,

Пусть машина А содержит: n внутренних состояний Sj, m символов внешнего алфавита

Тогда машина С будет содержать:
2 символа внешнего алфавита: 0 и 1
n внутренних состояний Tj, являющихся аналогами Sj,
Некоторое количество специальных внутренних состояний (оценим его в конце доказательства).

Доказательство

Слайд 15

Пусть l - наименьшее целое число, для которого
m ≤ 2l.
Тогда

Пусть l - наименьшее целое число, для которого m ≤ 2l. Тогда
символам машины А можно сопоставить двоичные последовательности длины l таким образом, что различным символам будут соответствовать различные же последовательности.
При этом пустому символу машины А мы ставим в соответствие последовательность из l нулей. Машина С будет работать с двоичными последовательностями.

Общая идея построения

Слайд 16

Элементарная операция машины А будет соответствовать в машине С переходу считывающей головки

Элементарная операция машины А будет соответствовать в машине С переходу считывающей головки
на (l – 1) клеток вправо (c сохранением считанной информации во внутреннем состоянии головки), затем обратному переходу на (l – 1) клеток влево, записи новых символов по пути и, наконец, движению вправо или влево на l клеток, в соответствии с движением считывающей головки машины А.
В течение этого процесса состояние машины А, конечно, сохраняется и в машине С. Замена старого состояния новым происходит в конце операции считывания.

Общая идея построения

Слайд 17

Начальная лента машины С представляет собой начальную ленту машины А, где каждый

Начальная лента машины С представляет собой начальную ленту машины А, где каждый
символ замещен соответствующей ему двоичной последовательностью. Если работа машины А начинается с какого-то определенного символа, то работа машины С начнется с самого левого двоичного символа соответствующей группы. Если машина А начинает работу в состоянии Sj, то машина С начнет работу в состоянии Tj.
Состояниям S1, S2, ..., Sn машины А мы ставим в соответствие состояния T1, Т2,…,Тп машины С (последние будут встречаться, когда машина С начинает операцию, считывая первый символ в двоичной последовательности длины l).

Формальная схема построения

Слайд 18

Для каждого из этих Тj определим два состояния Tj0 и Тj1.
Если

Для каждого из этих Тj определим два состояния Tj0 и Тj1. Если
машина С находится в состоянии Тj и читает символ 0, то она движется вправо и переходит в состояние Tjo. Если она читает 1, то движется вправо и переходит в состояние Тj1.
Таким образом, с помощью этих двух состояний машина запоминает, каким был первый символ двоичной последовательности.

Формальная схема построения

Слайд 19

Для каждого из этих Tj0 и Тj1 определим опять по два состояния:

Для каждого из этих Tj0 и Тj1 определим опять по два состояния:
Tj00, Tj01 и Tj10, Tj11. Если, например, машина находится в состоянии Tj0 и читает символ 0, то она переходит в состояние Tj00 и т. д.
Таким образом, с помощью этих состояний запоминается начальное состояние и два первых символа, прочитанных в процессе работы машины.
Продолжим такое построение состояний вплоть до (l – 1) шагов. Получившееся в итоге разнообразие состояний можно обозначить через Tj, x1, x2, …, xs где j = 1, 2, … , n; xj = 0, 1; s = 1, … , (l – 1).

Формальная схема построения

Слайд 20

Если машина находится в одном из этих состояний (s < l –

Если машина находится в одном из этих состояний (s Теперь правила операций
1) и читает 0 или 1, то она движется вправо, и 0 или 1 делается дальнейшим индексом состояния. В тот момент, когда s становится равен (l – 1), машина читает последний символ последовательности длины l.
Теперь правила операций зависят от конкретных правил машины А.
Допустим, текущей инструкцией машины А была команда:

Формальная схема построения

Слайд 21

Машина С уже готова к выполнению соответствующей инструкции, а значит в дальнейших

Машина С уже готова к выполнению соответствующей инструкции, а значит в дальнейших
состояниях должна быть закодирована информация о трех параметрах:
о новом символе ak, который следует записать на место старого символа ai,
о направлении дальнейшего движения машины: R или L,
о номере нового состояния Sp.

Формальная схема построения

Слайд 22

Новый символ ak может быть закодирован двузначным кодом в виде последовательности y1,

Новый символ ak может быть закодирован двузначным кодом в виде последовательности y1,
y2, …, ys-1, ys, где yi=0, 1.
Определим два новых множества состояний, которые несколько похожи на введенное выше множество состояний Т, но соответствуют не считыванию, а записи: Rp, y1, y2, …, ys и Lp, y1, y2, …, ys
название состояния (R или L) будет индикатором движения машины А,
первое число в индексе (p) – будет показывать номер нового состояния Sp машины А,
индексы y1, y2, …, ys-1, ys – значения кода нового символа ak.

Формальная схема построения

Слайд 23

Пусть последовательность x1, x2, …, xs-1, xs соответствует некоторому символу машины А.

Пусть последовательность x1, x2, …, xs-1, xs соответствует некоторому символу машины А.

Допустим машина А читает этот символ в состоянии Sj, тогда она записывает символ, соответствующий двоичной последовательности y1, y2, …, ys-1, ys , переходит в состояние Sp и движется, например, вправо.
В этом случае, машина С, будучи в состоянии Ti, x1, x2, …, xl-1 и читая символ xl , переходит в состояние Ri, x1, x2, …, xl-1, записывает символ уl и движется влево.

Формальная схема построения

Слайд 24

При s = 1 эта запись заканчивается на символе y1. Остается только

При s = 1 эта запись заканчивается на символе y1. Остается только
передвинуть считывающую голову на l клеток вправо или влево, в зависимости от того, находится ли машина в состоянии R или в состоянии L.
Это делается с помощью множеств состояний Ui,s и Vi,s (i = 1, 2, ... , n; s = 1, 2, … , l – 1). В состоянии Rix1 машина записывает x1, движется вправо и переходит в состояние Ui1.

Формальная схема построения

Слайд 25

В каждом из состояний U машина продолжает движение вправо, не записывая ничего

В каждом из состояний U машина продолжает движение вправо, не записывая ничего
и переходя в состояние U со следующим по величине индексом, пока не будет достигнуто последнее состояние U.
Ui,s вызывает движение вправо и состояние Ui,s+1 (s < l – 1). Наконец состояние Ui,l – 1 приводит после движения вправо к состоянию Тi, завершая тем самым цикл. Аналогично, Li,x приводит к движению влево и состоянию Vi,1. Vi,s дает движение влево и Vi,s+l (s < l – 1), наконец, Vi,l – 1 дает движение влево и Тi.
Таким образом показано, как машина А преобразуется в эквивалентную ей машину С с двумя символами внешнего алфавита, Q.E.D.

Формальная схема построения

Слайд 26

Оценим количество состояний машины С  сверху:
cостояний типа T: n (1+2+4+…+2l-1) = n(2l-1)
cостояний типа R: 

Оценим количество состояний машины С сверху: cостояний типа T: n (1+2+4+…+2l-1) =
n (2l-1 +…+4+2)= n(2l-2) 
cостояний типа L:  n (2l-2) 
состояний типа U:  n (l-1)
состояний типа V:  n (l-1)
=> всего требуется не более 3n2l +2nl -7n  состояний.
Напомним, что l - наименьшее целое число, для которого m ≤ 2l, значит 2l<2m, и т.о. верхняя граница числа состояний меньше, чем 6mn + n(2l - 7), что в свою очередь заведомо меньше чем 8mn.

Оценка числа состояний машины С

Слайд 27

ИТОГО машина С будет содержать:
2 символа внешнего алфавита: 0 и 1
Не более

ИТОГО машина С будет содержать: 2 символа внешнего алфавита: 0 и 1
чем 8mn внутренних состояний (здесь суммарно учтены как аналоги исходных состояний машины А, так и все вводимые дополнительно специальные состояния)

Оценка числа состояний машины С

Слайд 28

Нормальные алгоритмы

Допустим, что анализ производится укрупнено, не по одному символу, а сразу

Нормальные алгоритмы Допустим, что анализ производится укрупнено, не по одному символу, а
по несколько. Кроме того, лента является «растяжимой» - т.е. вместо одного символа можно вписывать произвольное их количество и наоборот, без процедуры сдвигания части слова.

Нормальный алгоритм Маркова – математическое построение, предназначенное для уточнения понятия алгоритм, которое задается алфавитом и нормальной схемой подстановок, выполняемых по заранее определенным правилам.

Слайд 29

Формат команды (строки) следующий:
{ai} ? {bj} [•],
где
{ai} - последовательность символов, которая

Формат команды (строки) следующий: {ai} ? {bj} [•], где {ai} - последовательность
ищется в слове,
? - знак перехода к операции записи,
{bj} - последовательность символов, которая записывается вместо найденной последовательности,
[•] - знак принудительного окончания алгоритма (необязательный параметр).
Λ – служебный знак, обозначающий пустой символ, присутствует везде: изначально на ленте (если она пустая), справа и слева от каждого символа (если на ленте записано слово).

Нормальные алгоритмы

Слайд 30

Программа (алгоритм) представляет собой совокупность строк указанного вида.
По своей сути основная операция

Программа (алгоритм) представляет собой совокупность строк указанного вида. По своей сути основная
при работе алгоритмов Маркова – это переработка слов в некотором алфавите. Эта переработка заключается в производстве некоторого количества замен определенных последовательностей символов. Эти замены совершаются в СТРОГО определенном порядке, а именно: после каждой замены алгоритм читается с самого начала, а слово анализируется с самого первого (левого) символа.
Окончание работы алгоритма происходит в тот момент, когда выполняется строка, содержащая знак принудительной остановки, либо тогда, когда более ни одна строка не может быть выполнена (в слове нет ни одной из искомых последовательностей символов).

Нормальные алгоритмы

Слайд 31

В отличие от машин Тьюринга, алгоритмы Маркова выполняются без какого – либо

В отличие от машин Тьюринга, алгоритмы Маркова выполняются без какого – либо
устройства, осуществляющего движения и имеющего внутреннюю память. В данном случае мы можем оперировать только ленточными знаками. Сама лента в этом случае не разделяется на строгие ячейки, а имеет гибкую основу, что позволяет ей растягиваться и сжиматься исходя из того, увеличивается ли в слове число символов или уменьшается.
Нормальные алгоритмы можно рассматривать как обобщение машины Тьюринга. В свою очередь работу машин Тьюринга можно рассматривать как переработку начального слова некоторого нормального алгоритма. Этот алгоритм получается сразу же из таблицы машины.

Нормальные алгоритмы

Слайд 32

Работа алгоритма происходит следующим образом (через запятую указана пара: символ-состояние)
A, 0B, 00C,

Работа алгоритма происходит следующим образом (через запятую указана пара: символ-состояние) A, 0B,
001A
Построим алгоритм Маркова, для чего к внешнему алфавиту {0,1} добавляем внутренний алфавит {A,B,C...}
A ? 0B
B ? 0C
C ? 1A
Λ ? A
Изначально лента пустая (содержит только символ Λ). Последняя строчка выполнится первой, что позволит записать на ленте символ А. Имея на ленте символ А, в процессе работы алгоритма, мы последовательно получим:
Λ , A , 0B , 00C , 001А , 0010B …и т.д.,
что, по сути, означает бесконечно написание
последовательности 001001001…

Пусть существует следующая машина Тьюринга, которая печатает на чистой ленте последовательность 001001001001….
Aλ ? 0RB ; Bλ ? 0RC ; Cλ ? 1RA

Имя файла: TA_lec3.pptx
Количество просмотров: 30
Количество скачиваний: 0