Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOSY / 2 блок-все.doc
Скачиваний:
351
Добавлен:
09.05.2015
Размер:
4.17 Mб
Скачать

48. Виртуальные машины Тьюринга. Нормальные алгорифмы Маркова.

Английский математик А. Тьюринг в 1937 г. опубликовал работу, в которой уточнял понятие алгоритма, прибегая к воображаемой вычислительной машине, известной теперь как машина Тьюринга. Основная идея машины Тьюринга и Поста заключалась в том, что алгоритмические процессы - это процедура, которые может совершать подходящее устройство «машина». На таких машинах оказалось возможным имитировать все алгоритмические процессы.

Абстрактным алфавитом (или просто алфавитом) конечное непустое множество символов, называемых буквами алфавита. Словами (или строками) в некотором алфавите А будем называть конечные последовательности букв этого алфавита. Длина слово-количество букв в нем. Слово нулевой длины называем пустым и обозначим «_» алфавит обозначим А, В, С….

Под машиной Тьюринга и Поста понимается некая гипотетическая (условная) машина, состоящая из следующих частей: 1. информационной ленты, представляемую собой бесконечную память машины. Лента разделена на ячейки, в котором можно записать один символ. Конечная совокупность символов алфавита, с которой работает машина, называется внутренним алфавитом. 2. «Головки чтения записи» - специального устройство, способного «считывать» символ ячейки. Головка представляется вдоль ленты вправо и влево так, что в каждый момент времени способна «видеть» только 1 ячейку. 3. Управляющее устройство, кот в каждый момент времени может находится в некотором состоянии, количество состояний, конечно. Состояние устройства управления называют внутренним состоянием машины. Одно из внутренних состояний называется заключительным состоянием. Переход к этому состоянию сигнализирует о конце работы. Совокупность состояний устройства управления называется внешним алфавитом. Цель работы МТ - в зависимости от слова, записанного на ленте(входное слово) переписать его так, чтобы на ленте было другое слово-результат.

Описание МТ. Пусть заданы внешний А={} и внутренний алфавит P={}. Лента бесконечна по обе стороны разбита на клетки. Запись символа в ячейку МТ приводит к замене ее содержимого. Головка чтения-записи может сдвигаться на одну вправо или влево или остаться неподвижной. Основной частью МТ является логический блок. Он имеет 2 входных канала: по одному из них поступает знак из ячейки, по другому знак того состояния, кот приписывается логическому блоку на данный такт. По выходному каналу логический блок посылает в текущую ячейку соот-щий знак , являющийся однознач-й функцией от сигналов (,) поданных на вход. Совокуп-ть, образован-я послед-тью состояний ячеек ленты и сост-ем лог-го блока, наз-ся конфигурацией или полным состоянием. Работает лог-й блок след-м образом:

  1. Заставляет головку прочитать букву, кот-я стоит на ленте под ней.

  2. В зависимости от прочит-й буквы и того состояния, в кот-м находится он сам,

а) заставляет головку записывать на ленте в той клетке, кот-я наход-ся под ней, некот-ю букву.

б) заставляет головку сдвинуться на одну ячейку вправо, влево или остаться на места

в) изменяет свое собственное положение.

3. Если в результате действий, в п.2, буква, располож-ная под головкой, положение головки и сост-ние лог. блока окажутся теми же, кот. были непосред-но перед выполнением этих действий, машина останавл-ся. В остал-ных случаях возвращается в п.1. Введем обозначения для состоя-ия ленты(на месте влево вправо). Если головка читает букву и блок наход-ся в состоя-ии , тот поведение машины определяет запись означающую: «записать на ленте вместобукву , совершить перемещение ленты , логическому блоку перейти в состояние ». Таким образом результатом может быть 3 ситуации: 1. Машина выполнила несколько шагов и остановилась, слово при этом не изменилось. 2. Машина выполнила несколько шагов, слово изменилось. 3. Машина никогда не остановиться, приводя к бесконечному изменению состояний. Остановка МТ осущест-ся в 3-х случаях: 1. внутрен-е состояние управляющего устройства не изменяется.

2. управляющее устройство остается на месте.

3. буква в противолеж-ей ячейке не изменяется.

Программа МТ. Совокупность команд, кот-е должна выполнить МТ для решения конкретной задачи наз-ся программой МТ. Начальной конфиг-ций сост-нии МТ, при кот-м на ленте занесена начальная информация обозначим . Будем считать МТ заданной если заданы ее внут-й и внеш-й алгоритмы. Представим работу МТ на примере.

Программа прибавления 1 к десятичному числу для машины Тьюринга

Пошаговое решение задачи

  1. _18_-P0

  2. _ 18_-P1

  3. _18 _-P1

  4. _18_-P1

  5. _18_-P2

  6. _19_-P3

  7. _19_-P3- остановка

Остановка машины произойдет тогда, когда мы прибавим к числу 1, то есть вернемся к началу слова. Очев-о, что машина останавливается, если в состоянии P2 встречает цифры от 0 до 8 и когда встречает символ ‘_’, заменяя его при этом на 1.

Тезис Тьюринга. Любой конечный алгоритм м.б. реализован с помощью конечной программы МТ. Следов-но, если не сущест-ет прог-мы МТ для какой-либо задачи, то не сущ-ет и конечного алгоритма решения этой задачи. Соответ-вие, устанавливае-ое Маш Т между теми исходными данными, к которым она применима, и результатами ее работы, представляет некую функцию. Если для функции имеется машина, реализующая ее, то говорят, чтовычислима по Тьюрингу. Функцию, для вычисления которой существует алгоритм, наз-т вычислимой. Любая вычислимая функция вычислима по Тьюрингу.

Машина Поста. Как и МТ относится к классу абстрактных машин, создана практически в тоже время, что и МТ. МП состоит из бесконечной ленты, вдоль, кот в обоих направ-ях перемещается каретка с головкой чтения-записи. Ячкйки ленты пронумерованы след-м образом (-3,-2,-1,0,1,2,3,)

-2 -1 0 1 2 В каждой ячейке ленты м.б. записан пустой символ «_» или символ-метка «» На каждом шаге каретка перемещается только в одну сторону. Состояние МП определяется сост-ем ленты(комбинация пустых и занятых ячеек) и номером ячейки, на кот настроена каретка. Работа МП состоит в том, что каретка передвигается вдоль ленты и записывает или стирает метки. Назовем командой одну зи 6-ти функций: 1. движение вправо. 2. движение влево. 3. запись . метки 4. стирание метки 5. передача управления. 6. стоп –остановка все числа натуральные. Пример. 137.=движ вправо 25.?(35,21) передача управления, 6386.стоп остановка.

Программа МП –конечный непустой список команд МП, обладающий след-ми св-ми: 1. Все команды послед-но пронумеров-ны, начиная с 1. 2. отсылка любой из команд (за исключением ком-ды стоп) есть номер одной команды прог-мы (включая номер той же команды).

Функционирование МП. Работа МП опред-ся согласно некот-й прог-ме и нача-му состо-ю. Будем считать, что в нач-м сос-нии каретка всегда настроена на ячейку с номером 0, т.е нач-ое сос-ие опред-ся только содержимым ленты. Уточним команды 1. сдвиг каретки вправо на 1-у ячейку и переход на команду с номером 1. 2. сдвиг каретки влево на 1-у ячейку и переход на команду с номером 3. записать метки в текущ-ю ячейку и переход на команду с номером (если в ячейке метка уже была, то команда не выполнима). 4. стирание метки в текущей ячейке и переход на команду с номером (если ячейка уже пуста, то команда не выполнима). 5. если обозреваемая ячейка пуста, переход к команде с номером в противном случае к 2. 6. МП останавливается. Выполнение команды может привести к 1-му из 3-х случаев: 1. Нормальная остановка по команде остановка. 2. аварийная ост-ка по невыполнимой команде. 3. зацикливание (бесконеч-я работа).

Тезис Поста. «числовая функция вычислима по Посту».

Гипотеза Поста.

Назовем числовым кортежем (или просто кортежем) упорядоченный набор чисел произвольной длины. Под длиной кортежа будем понимать количество чисел, входящих в него. Так кортеж {2, 2, 3, 6} имеет длину 6.

Пусть каждому исходному данному из N (множество числовых корте­жей) либо ничего не поставлено в соответствие, либо поставлено в соот­ветствие некоторое (вообще говоря, свое для каждого исходного данного) результирующее число. Тогда можно рассмотреть две задачи: Задача (П). Составить программу МП, перерабатывающую любое ис­ходное данное, для которого есть результирующее число, в это число, и не приводящую ни к какому результату для исходного данного, для которого нет результирующего числа.

Задача (А). Получается из задачи (П) заменой слов «программа МП» на «алгоритм».

Гипотеза Поста: Задачи (А) и (П) одновременно либо имеют, либо не имеют решения.

Очевидно, что гипотеза Поста состоит из двух утверждений:

  1. из разрешимости задачи (П) следует разрешимость задачи (А);

  2. из разрешимости задачи (А) следует разрешимость задачи (П). Появление теории МТ и МП привело к следующим результатам:

  1. Началось развитие более общей теории воображаемых машин - тео­рии автоматов

  2. Была доказана алгоритмическая разрешимость большого класса за­дач в математике

  3. Удалось доказать алгоритмическую неразрешимость некоторых задач в математике.

Нормальные алгорифмы Маркова

Советский ученый А. А. Марков избрал другой путь уточнения понятия алгоритма. Им разработана строгая теория класса алгоритмов, которые он назвал нормальными алгорифмами.

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

Если А и В – два алфавита, причем каждая буква алфавита А является буквой в В, а хотя бы одна из букв алфавита В не является буквой в Л, то 5 называется расширением алфавита А. Например, если А - {а, б, в, г), В={1, а, б, в, г, д}, то В являегся расшире­нием А, так как содержит две буквы («1» и «д»), не являющиеся буквами в А, тогда как все буквы алфавита А являются буквами в В.Рассмотрим какое-либо конкретное слово для определенности в алфа­вите русских букв, например слово «самолет». Мы видим, что из него можно вырезать подслова, например «сам», «амол» или «олет», или «лет», или, наконец, однобуквеиное слово «т». Про такие подслова говорят, что они входят в рассматриваемое слово или являются вхождениями в него. Заметим, что в наше слово входит и пустое слово, причем — несколько раз (оно входит перед первой буквой, между каждыми двумя буквами и, нако­нец, после последней буквы, т. е., в данном случае, 8 раз).

Подслово - часть слова, буквы которого расположены рядом. Подсло­вом может быть и само слово.

Условимся обозначать слова заглавными латинскими буквами (если эти буквы не являются буквами в применяемом алфавите). Если задано не­которое слово и нами выбрана буква, являющаяся его обозначением (именем), то будем ставить между ними знак = (равенства). Возвращаясь к на­шему примеру, мы можем написать: для слова Я=самолет слово Р=амол является вхождением.

Заметим, что не только пустое слово может многократно входить в другое слово. Например, в слово Я=тарарам слово Р=ара входит два раза. Особый интерес для нас будет представлять так называемое первое вхож­дение.

Марковской подстановкой называется операция над словами, зада­ваемая с помощью пары слов (Р, Q), заключающаяся в следующем.

Если задано исходное слово R, то в нем находят первое вхождение сло­ва Р (если таковое имеется) и, не изменяя остальных частей слова R, заменяют в нем это вхождение словом Q. Полученное слово является ре­зультатом применения марковской подстановки (Р, Q) к слову R. Если же нет первого вхождения Р в слово R (при этом нет вообще ни одного вхож­дения Р в R), то считается, что марковской подстановке слово R не подда­ется.

Частными случаями марковских подстановок являются (,Q), (Р,) и (,). В первом из приведенных примеров Р, во втором Q, а в третьем и Р, и Q являются пустыми.

Действие Марковской подстановки заключается в том, что в искомом слове ищется подслово слева направо, и как только находится, оно меня­ется на другое подслово. Если вхождений несколько, то при любой под­становке меняется только первое слева вхождение. Будем рассматривать слова в некотором алфавите А. Предположим, что символы « —» » и « . » не являются буквами в А. Запись Р-> Q и Р — . будем называть записями марковской подстановки (Р, Q), причем пер­вую из них будем называть подстановкой, а вторую - заключительной подстановкой.

Подстановки и заключительные подстановки будем называть форму­лами, различая в них левую часть Р и правую часть Q.

Марковская подстановка выполняется один раз, и если есть несколько вариантов, то выполняется подстановка, которая находится левее (ближе к началу слова). Марковская подстановка может быть успешной, неуспеш­ной и конечной. Успешной - если подстановка выполнена, неуспешной, если подстановку выполнить нельзя и конечной, если в начале слова-замены стоит " . " Ее назначение - прекращение дальнейшего процесса Марковских подстановок.

Записью нормального алгоритма в алфавите А называют столбец формул, левые и правые части которых являются словами в А. Выполне­ние нормального алгоритма применительно к исходному данному R, яв­ляющемуся словом в А, заключается в следующем: 1. Двигаясь по столбцу формул, ищут первую формулу, левая часть ко­ торой входит в преобразуемое слово. 2.Если такой формулы не найдется, процесс окончен. 3. Если же она найдется, то выполняют марковскую подстановку, соответствующую данной формуле, изменяя преобразуемое слово. 4. Затем смотрят, является ли выполненная подстановка заключительной. 5. Если она является заключительной, то процесс окончен. 6. В противном случае весь процесс повторяют с самого начала (то есть с пункта 1).

Этапы решения задач с помощью алгорифмов Маркова Для составления алгорифма Маркова необходимо задать: 1. алфавит для записи слов и, возможно, расширенный алфавит для записи марковских преобразований (полученный путем добавления дополнительных технических букв); 2.определение предложений и слов языка, на котором будут записы­ ваться данные и результаты.

Порядок действия алгорифма Маркова:

  1. записывается последовательность марковских подстановок и зада­ ется слово, на которое должен действовать этот алгорифм.

  2. проверяется возможность марковской подстановки (1). Если она успешна, процесс повторяется, начиная с первой подстановки, если неуспешна, то происходит переход к следующей подстановке. Если подстановка конечна, то прекращаем работу алгорифма.

  3. если в результате использования алгоритма будет произведена ко­ нечная подстановка или ни одна из подстановок не будет успеш­ ной, то алгорифм прекращает свою работу.

Результатом действия алгорифма Маркова может быть:

1) все подстановки неуспешны, мы получаем результат действия алго­рифма.

2) в процессе работы выполнена конечная подстановка, результат ра­боты есть.

3) алгорифм выполняется бесконечно.

Таким образом, результата действия алгорифма нет только при беско­нечном выполнении алгорифма, а если алгорифм совсем не меняет слово, то считается, что результат есть.

Говорят, что алгорифм применим к данному слову, если он дает ре­зультат для слова, и не применим к слову, если результата нет. Таким образом, у любого алгорифма существует множество слов, для которых он применим (область применимости) и множество слов, для которых он не применим (область неприменимости).

Замечание: поскольку алгорифм используется для построения словар­ных функций, то кроме применимости можно определить и правильность действия. Алгорифм правильно действует на слово, если он применим к этому слову и его результат совпадает с результатом словарной функции, которую он определяет.

Соседние файлы в папке GOSY