Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
ГЛАВА XIII. МАШИНЫ ТЬЮРИНГА§ 13.1. Описание и примеры машин ТьюрингаВ гл. XII были разъяснены основные интуитивно очевидные требования, которые предъявляются к алгоритмам. Это требования детерминированности, массовости и применимости («целенаправленности») алгоритмов. Важно, что результат применения алгоритма совершенно не зависит от того, кто его использует. Человек, выполняющий алгоритм, должен действовать, «как машина», заботясь лишь о том, чтобы правильно выполнить предписания. Поэтому, естественно, возникает мысль: нельзя ли действительно поручить выполнение алгоритма машине? Из упомянутых свойств алгоритмов вытекают общие требования к машине, выполняющей алгоритм. Во-первых, машина должна быть полностью детерминированной и действовать в соответствии с заданной системой правил! Во-вторых, она должна допускать ввод различных «начальных данных» (соответствующих различным задачам из данного класса задач). В-третьих, заданная система правил работы машины и класс решаемых задач должны быть согласованы так, чтобы всегда было можно «прочитать» результат работы машины. Можно предложить различные «конструкции» машин, способных выполнять алгоритмы. Наиболее наглядна схема, предложенная в 1936 г. английским математиком Тьюрингом. Ниже приводится описание одного из возможных вариантов функционирования таких машин Рассмотрим бесконечную одномерную ленту, которая разделена на ячейки. Мы будем считать, что лента бесконечна лишь в одном направлении — направо, так что существует самая левая ячейка. В каждой ячейке может быть записан лишь один символ Представим себе также специальное устройство — считывающую и записывающую головку, которая может располагаться напротив каждой из ячеек ленты и по команде извне «стереть» записанный в этой ячейке символ и записать новый. Считывающая и записывающая головка может также по команде перемещаться на одну ячейку вправо или влево (если она не находится в самой левой ячейке). Команды на считывающую и записывающую головку подаются от управляющего устройства, которое в свою очередь получает от головки сигнал о наличии того или иного символа в ячейке ленты, расположенной против головки. Управляющее устройство имеет конечное число Тем самым в момент времени Таблица 13.1
Таблица 13.2
Таблица 13.3
Таблица 13.3
Например, если таблица автомата есть табл. 13.1, таблица первого преобразователя — табл. 13.2, второго — табл. 13.3, то совмещенная таблица, целиком описывающая работу машины Тьюринга, имеет вид табл. 13.4. В клетках этой таблицы первым записан символ из Далее будем считать, что символ 2) вторым символом в клетке столбца 3) третьим символом в каждой клетке этой строки является символ С (и никогда П или Л) (см. пример табл. 13.5). Таблица 13.5
Поэтому, если управляющее устройство в какой-то момент времени имеет состояние Таблица 13.6
Таблица 13.7 Машина А
В дальнейшем для простоты будем предполагать, что алфавит символов Приведем несколько простых примеров машин Тьюринга. Начальное состояние машины мы будем называть состоянием 1) Машина А (табл. 13.7). Если в начальный момент машина А находится в состоянии В табл. 13.8 и 13.9 приведены два варианта работы машины. Таблица 13.8
Черта над соответствующей ячейкой ленты означает, что считывающая и записывающая головка находится в данный момент как раз напротив этой ячейки. Символ над чертой — состояние управляющего устройства в этот момент. Таблица 13.9
Многоточия означают те ячейки ленты, заполнение которых заведомо не меняется в рассматриваемые такты работы машины (поскольку головка не достигает этих ячеек). 2) Машина В (табл. 13.10). Эта машина имеет также лишь одно состояние (не считая состояния покоя). Она «стирает» единицу в той ячейке, где находится головка (если эта ячейка непуста), или в первой слева непустой ячейке, передвигает головку еще левее на ячейку и останавливается. Один вариант работы машины В приведен в табл. 13.11. Таблица 13.10 Машина В
Таблица 13.11
3) Машина С (табл. 13.12). Эта машина отыскивает первую после группы нулей группу единиц справа от начальной ячейки и останавливается около последней из этих единиц. Вариант работы машины С приведен в табл. 13.13. Таблица 13.12, Машина С
Таблица 13.13
В некоторых случаях машина Тьюринга может быть недоопределенной в том смысле, что не все клетки ее основной таблицы заполнены. Это допускается в тех случаях, когда по тем или иным причинам можно заранее сказать, что соответствующие сочетания состояний машины и символов на ленте никогда не встретятся. Рассмотрим пример. Таблица 13.14 Машина D
4) Машина D (табл. 13.14). Эта машина заполняет первый промежуток справа между двумя группами единиц, оставляя всего одну незаполненную ячейку. Если головку машины в нулевой такт не помещать напротив пустой ячейки в состоянии Иногда нам придется рассматривать машины, имеющие не одно, а два или несколько состояний покоя 5) Машина Е (табл. 13.16). Эта машина, находясь в начальном состоянии всегда напротив заполненной ячейки, обнаруживает, что записано в соседней ячейке слева — 0 или 1. В зависимости от этого она переходит в состояние Два варианта работы машины Е приведены в табл. 13.17 и 13.18. Таблица 13.15
В заключение параграфа без особых пояснений приведем еще несколько примеров машин Тьюринга. Эти машины понадобятся нам в дальнейшем. Таблица 13.16 Машина Е
Таблица 13.17
Таблица 13.18
6) Машина F (табл. 13.19). Эта машина отыскивает ближайшую слева группу единиц после группы нулей. Таблица 13.19 Машина F
Таблица 13.20 Машина G
Таблица 13.21 Машина H
7) Машина G (табл. 13.20). Машина G стирает все единицы слева (если они есть) до ближайшего слева нуля. 8) Машина Н (табл. 13.21). Печатает единицу справа после группы единиц через одну пустую ячейку. Отличается от машины А (пример 1) только тем, что печатает единицу не на первой справа пустой ячейке, а на второй. 9) Машина I (табл. 13.22). Отправляясь от заполненной ячейки, стирает в ней единицу и «переносит» ее в ближайшую пустую ячейку слева (другими словами, «сдвигает» группу единиц левее исходной ячейки на одну ячейку влево). 10) Машина К (табл. 13.23). «Стирает» одну единицу в ячейке, расположенной правее исходной (если там есть единица). Таблица 13.22 Машина
Таблица 13.23 Машина К
11) Машина L (табл. 13.24). Отправляясь от заполненной ячейки, идет налево и останавливается левее группы единиц на две ячейки. Таблица 13.24 Машина
Таблица 13.25 Машина М
12) Машина М (табл. 13.25). Имея два состояния покоя, «распознает», напротив какой ячейки находится — пустой или заполненной. В зависимости от этого переходит в первое или второе состояние покоя.
|
1 |
Оглавление
|