Text
                    М. МИНСКИЙ
ВЫЧИСЛЕНИЯ И АВТОМАТЫ
Перевод с английского
Б. Л. Овсиевича и Л. Я. Розенблюма
ИЗДАТЕЛЬСТВО «МИР»
Месива 1971


УДК 681.14 Э О I Монография одного из крупнейших американских ученых рассма- рассматривает фундаментальные вопросы теории автоматов. Изложена клас- классическая теория конечных автоматов, машин Тьюринга н систем Поста. Подход автора в значительной степени отличается от традиционного. В его основе лежит понятие эффективной процедуры, включающее язык для описания поведения и характеристику устройства, способного вы- выполнять предписания, зафиксированные на этом языке. Многие достоин- достоинства книги, и прежде всего блестящая систематизация результатов, по- полученных в теории автоматов за последнее десятилетие, делают ее весь- весьма ценным руководством для исследователей и инженеров, работаю- работающих в области вычислительной техники и автоматического управления. Интересна она также для студентов и аспирантов, избравших своей специальностью вычислительную технику и смежные с ней области. Редакция литературы по новой технике Иид. 3-3-14 133-70
ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ Автор этой книги Марвин Минский, профессор Массачусет- ского технологического института (МТИ), является одним из крупнейших специалистов по теоретической кибернетике. Им опубликовано большое число работ, многие из которых пред- представляли собой важный этап в развитии этой дисциплины. В книге излагаются элементы теории нейронных сетей, конеч- конечных автоматов, машин Тьюринга, рекурсивных функций и си- систем Поста, и она является прекрасным руководством для на- начального изучения, хотя читатель и не получит исчерпывающих сведений по всем этим разделам. Правда, автор не ставил перед собой такой цели. В книге делается попытка выделить то общее, что лежит в основе перечисленных направлений. К наиболее фундаментальным понятиям, составляющим основу теории авто- автоматов и других смежных с ней областей, автор относит интуи- интуитивное понятие эффективной процедуры. По существу вся книга посвящена детальному выяснению значения этого понятия и уточнению его различных аспектов. Книга хорошо построена. По существу она является вну- внутренне замкнутой, т. е. содержит все элементы смежных дис- дисциплин, необходимые для понимания ее основного содержания. Задачи, предлагаемые читателю в каждом из разделов, пред- предназначены не только для проверки качества усвоения мате- материала, но в первую очередь для того, чтобы пробудить у чита- читателя интерес к дальнейшему изучению затронутых вопросов и привить ему навыки самостоятельной работы в этих областях. Некоторые задачи представляют собой постановки интересных проблем для исследования. . Работая над переводом книги, мы стремились по возмож- возможности сохранить стиль автора (даже в тех случаях, когда был соблазн отойти от него). При переводе специальных терминов мы руководствовались в основном терминологией, принятой в работах, указанных в списке литературы в конце книги. Правда, нужно отметить, что наряду с принятым в русской ли- литературе термином «автомат» нам показалось целесообразньщ
6 ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ использовать эквивалентный ему термин «машина», широко при- применяемый в американской литературе. Будучи отлично написанной в методическом отношении, книга несомненно явится ценным пособием для студентов и ас- аспирантов, специализирующихся в области теоретической кибер- кибернетики, вычислительной техники, а также в смежных с ними областях. (По материалам этой книги автор в течение ряда лет читает курс в МТИ.) Она окажется полезной и широкому кругу инженерно-технических работников, которым в той или иной сте- степени приходится сталкиваться с автоматикой и вычислитель- вычислительными машинами. Хотя книга и не предназначена для математи- математиков, некоторые ее разделы представят интерес и для них, в част- частности это относится к ряду теорем других авторов, для которых М. Минский предложил свои доказательства. И наконец, она будет интересной широкому кругу читателей, которые хотя и не занимаются профессионально вопросами, затронутыми в книге, однако интересуются возможностями автоматов, вычислитель- вычислительных машин и подобных им устройств, как реальных, так и гипо- гипотетических. Б. Овсиевич Л. Розенблюм
ПРЕДИСЛОВИЕ АВТОРА К РУССКОМУ ИЗДАНИЮ Основной предмет книги — эффективная вычислимость — представляет собой столь простое и столь фундаментальное по- йятие, что оно должно быть аттрибутом мышления всякого образованного человека. И все же это действительно новое по- вятие, о котором до XX в. не существовало отчетливого пред- представления. В настоящее время понятие эффективной вычисли- вычислимости прочно вошло в научную литературу, и в этой книге я попытался сконцентрировать внимание на некоторых основных его чертах, которые будут оставаться важными, даже если ис- используемый математический аппарат изменится в соответствии с требованиями дня. Например, «нейроны», рассматриваемые в гл. 3, возможно, покажутся устаревшими инженеру, проекти- проектирующему современные вычислительные машины, но я не знаю более простого и более быстрого способа познакомить студента с тем, как мощные машины могут быть построены из простых элементов. В этом году математика потеряла своего крупнейшего уче- ученого Уоррена Мак-Каллока и его талантливого сотрудника Уол-< тера Питтса, которые впервые предложили модели нейронов, и мне хотелось бы посвятить эту книгу их памяти. Марвин Минский Кембридж, Массачусетс 9 декабря 1969 г.
ПРЕДИСЛОВИЕ ВВЕДЕНИЕ На протяжении жизни всего лишь одного поколения рядом с человеком вырос странный новый вид: вычислительные и по- подобные им машины, с которыми, как он обнаружил, ему при- придется делить мир. Ни история, ни философия, ни здравый смысл ие могут подсказать нам, как эти машины повлияют на нашу жизнь в будущем, ибо они работают совсем не так, как машины, созданные в эру промышленной революции. Вместо материалов или энергии они имеют дело с «управлением» и «информацией» и даже с «мыслительными процессами». В наше время, когда возможности и сложность вычислительных машин и родствен- родственных им устройств растут чрезвычайно быстро, мало кто сомне- сомневается в том, что эти машины призваны сыграть важную (правда, не вполне еще понятную) роль в обществе будущего. Хотя далеко не все мы работаем непосредственно с вычисли- вычислительными машинами, однако их постоянно растущая сфера влияния затрагивает всех, и поэтому нам нужно знать, что ма- машины могут и чего не могут. Было бы очень неплохо иметь книгу, в которой четко и си- систематически описывались возможности таких машин. Однако, хотя некоторые книги и претендовали на это, в настоящее время такое описание невозможно по следующим причинам: а) уст- устройства, подобные вычислительным машинам, не имеют ничего похожего на то, с чем науке приходилось иметь дело до сих пор, — отсутствуют инструменты, необходимые для их анализа и синтеза, б) теория вычислительных машин развивается слиш- слишком быстро, чтобы была возможной нужная интерпретация или экстраполяция результатов. Абстрактная теория в том виде, как она излагается в этой книге, вполне определенно свидетель- свидетельствует о том, что потенциальные возможности машин очень ши- широки и теоретические ограничения, накладываемые на эти воз-
lO ПРЕДИСЛОВИЕ можности, имеют далеко не жесткий характер. Нет оснований полагать, что эти ограничения на возможности машин не раз- разделяются и человеком. Можно ожидать, что в дальнейшем результаты наших исследо- исследований выкристаллизуются, н мы уверены, что идеи и формальные методы, излагаемые в этой книге, останутся в русле теории, кото- которой еще предстоит возникнуть. Эта уверенность основана на сле- следующем. Во-первых, тому, кто хорошо усвоил понятие эффектив- эффективной вычислимости, оно представляется не только полезным, но и необходимым. Здесь имеет место редкое в науке, и в частности в математике, схождение идей: все независимые друг от друга попытки построить «теорию машин» двигались в этом направле- направлении. Во-вторых, абсолютная простота основ теории и чрезвычай- чрезвычайно короткий путь от этих основ к логичным и в то же время не- неожиданным выводам придают теории математическую красоту, которая уже одна является гарантией того, что эта теория зай- займет в общей теории вычислительных машин постоянное место. ОСНОВНАЯ ЦЕЛЬ Основная цель книги состоит в том, чтобы ввести понятие эф- эффективной процедуры — идеи, которая выкристаллизовалась со- совсем недавно, но уже сегодня обещает стать весьма важным элементом современной науки, какими стали в свое время идеи геометрии и интегрального исчисления или представления об атомах. Понятие эффективной процедуры представляет собой мощное средство исследования больших и сложных систем — будь это разум или технические системы. Наиболее очевидная область его применения — это вычисления и вычислительные машины, но я думаю, что оно в равной степени является цен- ценным средством для более отчетливого понимания ряда биологи- биологических, психологических, математических и философских вопро- вопросов. Такое утверждение может показаться невероятно претен- претенциозным, поэтому я поясню его: теория эффективности нужна не только для доказательства некоторых утверждений о свой- свойствах сложных систем, но необходима для доказательства и утверждений о свойствах самих доказательств.
ПРЕДИСЛОВИЕ 11 Общая стратегия этой книги очень проста. Мы попытаемся сделать понятие эффективной процедуры предельно ясным, рас- рассматривая его со многих точек зрения и используя множество различных подходов. Мы будем стремиться к тому, чтобы чита- читатель, столкнувшись с этим понятием, мог без труда узнать его и правильно применить. Понятие эффективной процедуры имеет так много аспектов, что невозможно их всех знать одинаково хорошо. Оно встречается, например, в вопросах практических вычислений, в лингвистических теориях и в математической ло- логике. Для того чтобы уметь в нужных случаях пользоваться угим понятием, некоторые из этих аспектов мы должны знать В деталях, другие — по крайней мере в общих чертах. Эту не- неравнозначность различных вопросов мы учитывали как при из- изложении основного материала книги, так и при подборе задач. Некоторые направления мы прослеживаем гораздо дальше, чем большинство других, но во всех случаях мы стремились к тому, чтобы материал этой книги представлял собой единую ткань из очень разных, но сплетенных между собой нитей. К счастью, рассматриваемую нами теорию можно считать почти полностью дамкнутой, так что для ее изучения не требуется никакой спе- специальной математической подготовки, помимо обычного школь- школьного курса алгебры. Возможно, что при беглом просмотре книги читатель будет смущен кажущимся изобилием сложных фор- формальных построений, но в действительности это не так. Книга даюисана не формальным языком, хотя она посвящена фор- формальным языкам, н от читателя не требуется предварительного .знакомства с ними. Книга имеет также вторую, более «занимательную» тему. Многогранное понятие, названное нами эффективной вычисли- вычислимостью, часто проявляется в особенно мощной форме — в форме универсальной машины или системы. Свойство универсальности 1Й*еет удивительно много неясных мест, в которых мы поста- постараемся разобраться. Это свойство легко обнаружить в громозд- громоздкой системе декодирования команд современной вычислительной цашины или в сложной избыточной структуре языков програм- программирования типа ФОРТРАН или АЛГОЛ. (Неважно, по край- крайней мере при чтении этой книги, знаете ли вы, что это такое.)
12 ПРЕДИСЛОВИЕ Но оно может скрываться и в простой структуре «вычислитель- «вычислительной машины» с двумя запоминающими регистрами и двумя лен- лентами программы (гл. 14), или в примитивной конструкции нор- нормальной системы Поста (гл. 13), или даже в устройстве ма- машины, которая почти не считывает информации со своих лент и не записывает на них. В нахождении таких «минимальных универсальных систем» нет особого практического смысла, но оно вполне соответствует основному назначению нашей книги, отчетливо поясняя, что в понятии вычисления существенно, а что просто удобно с практической точки зрения. Еще более важным является, по-видимому, изучение различ- различных путей возникновения сложного поведения из взаимодей- взаимодействия простых устройств, из простых действий, простых описа- описаний или из простых концепций. Мы рассмотрим также много различных способов, при которых одно и то же сложное пове- поведение возникает в результате внешне очень различных типов взаимодействия. Часть I является вводной. Она представляет собой «трени- «тренировочный поход» в небольшую, но важную область. В этой области — области теории машин с конечным числом состояний — имеется целый ряд своих собственных основных понятий (мы изучим лишь некоторые из них) и, как ни странно, не меньшее число своих собственных тонких мест. В этой книге мне хотелось изложить и основные идеи раз- различных подходов предшествующих исследователей — Поста, Черча, Тьюринга, Клини, Мак-Каллока и других, которые во многих случаях разными формальными методами изучали одни и те же проблемы. Имена авторов, как правило, не указываются, так как в своей попытке модернизировать, упростить и изло- изложить с единой точки зрения результаты различных авторов я опускаю индивидуальные детали. Для того чтобы познакомиться с первоисточниками, было бы очень полезно внимательно изу- изучить сборник работ Девиса [15]. МАТЕМАТИЧЕСКИЕ МЕТОДЫ Как мы уже отмечали, материал книги можно считать в зна- значительной" степени замкнутым, и для ее чтения достаточно ма- математической подготовки в объеме средней школы, с тем чтобы
ПРЕДИСЛОВИЕ 13 иметь представление о функциональных обозначениях (хотя даже это рассматривается в гл. 7) и о математической идукции (краткие сведения излагаются в гл. 4). Студенты Массачусет- ского технологического института при изучении материала этой книги не испытывали никаких затруднений, и, хотя они, по-ви- по-видимому, имеют лучшую математическую подготовку, чем сту- студенты большинства колледжей, я не могу себе представить, чтобы хороший студент или программист натолкнулся здесь на серьезные препятствия. Однако я вполне могу представить себе преподавателя (даже математика, не знакомого с «теорией ре- рекурсивных функций»), который будет подозревать, что я по- построил упрощенный или обедненный вариант теории, «выбросив из нее исчисление». Дело же обстоит совсем наоборот: в ней никогда не было исчисления. В действительности это ветвь ма- математики, которая базируется непосредственно на нечисленных, логических основаниях. Ряд исследователей в настоящее время пытаются связать эту теорию с теорией Ньютона и Лейбница: в результате возникло новое направление (называемое сейчас рекурсивным анализом), которое находится в начальной стадии своего развития. Нам кажется целесообразным в нескольких словах объяс- объяснить, почему классический математический анализ играет здесь столь малую роль. В теории вычислений мы изучаем системы, Составленные из очень большого числа частей или имеющие очень сложную структуру. С помощью классических математи- математических методов это можно сделать лишь в ограниченном числе частных случаев, и возможности применения этих методов весьма невелики. В классическом случае невозможно справиться даже с системой из нескольких нелинейных уравнений, не говоря уже о системах из нескольких десятков или нескольких мил- миллионов уравнений. Правда, и здесь при определенных условиях математический анализ может иногда оказаться действенным, как, например, в случае, когда сложная система состоит из ча- частей, которые можно считать независимыми друг от друга, что имеет место в статистической термодинамике. Но нужно со всей определенностью отметить, что это как раз тот случай, который пе наблюдается тогда, когда структура системы имеет органи-
14 ПРЕДИСЛОВИЕ зовапный целенаправленный характер (как, например, в вычис- вычислительных системах). Статистический анализ прекрасно рабо- работает для таких объектов, как газ. Но нет никаких оснований считать, что при значительном росте сложности вычислений можно получить какой-нибудь нетривиальный результат, усред- усредняя влияние многих событий. Их взаимное влияние слишком велико (гл. 10), чтобы допускать здесь что-нибудь подобное «закону сохранения». К счастью, системы вычислений имеют другие особенности, делающие возможным анализ, хотя и совершенно иного рода. Вместо статистически определенных событий, используемых в физике, мы используем логически определенные классы вы- вычислений или выражений. Они связаны друг с другом не гео- геометрическими или энергетическими зависимостями, а отноше- отношениями к другим подобным машинам или понятиям. Мы можем использовать столь простые элементы, характеризуемые столь простыми способами взаимодействий, что можно применить чре- чрезвычайно четкую логику высказываний, в то время как для экви- эквивалентной физической машины нам пришлось бы использовать безнадежно громоздкие аналитические уравнения. В гл. 1, 5 и 12 дано детальное объяснение того, к чему сводится эта проблема в случае применения такого подхода. Можно было бы посетовать на то, что основные результаты получены с помощью определен- определенной уловки: вместо того чтобы решать уравнения, мы изучаем их описания. Нужно полагать, что в конце концов такой метод полностью устранит многие из проблем, и мы можем быть вполне уверены в том, что развитие теории вычислений в последующие годы будет концентрироваться вокруг задачи о том, как сделав это упрощение, вернуться обратно, не проходя всего пути назад. В настоящее время трудность заключается в том, что мы слиш- слишком многое делаем за один шаг. КНИГА КАК УЧЕБНИК Эта книга построена как учебник. Первоначальные ва- варианты ее в течение ряда лет я использовал в качестве учебного пособия в Массачусетском технологическом институте. Сту- Студенты, специализирующиеся в области вычислительной техники, способны воспринять излагаемый здесь материал за один се-
f. ПРЕДИСЛОВИЕ . 15 11«стр, так как любой человек, имеющий опыт программирова- программирования для вычислительных машин, подсознательно уже знаком isb-наиболее существенными понятиями и ему требуется лишь их точную формулировку. Для них или же для студен- с несколько более хорошей математической подготовкой я склонен предложить часть I в качестве материала для само- самостоятельной проработки и работы над задачами, а «курс» начи- с части II. В любом случае я чувствую, что материал ча- I должен излагаться раньше в каком-либо научном или тех- техническом курсе, а материал частей II и III — существенно позже |^|сли исключить курс для студентов, специализирующихся в об- облети теории вычислительных машин). Это издание предназна- предназначено для самостоятельного чтения, и поэтому я включил в книгу Низания по решению большинства задач повышенной труд- И&сти. % Читателю предлагается решить ряд встречающихся в книге р&дач. Лишь немногие из них включены для проверки качества Двоения материала; большинство же задач указывает на но- №е ветви рассматриваемой теории, а некоторые из них пред- предъявляют собой сложные проблемы для исследования. Упор в задачах делается на применение новых понятий в новых усло- условиях, а не на выработку навыков путем упражнений и повторе- щюц. Я думаю, что лучший способ понять новую идею состоит Ш том, чтобы самому обнаружить, как можно применить эту Щ для решения одной или двух трудных задач, в то время после выполнения сотни простых упражнений основная идея может ускользнуть. Лишь решение трудных задач может сде- сделать идеи частью вашего интеллектуального багажа. Поэтому читателю предлагается не слишком часто прибегать * приведенным в конце, книги решениям задач. Не стоит обра- обращаться к решениям, если вам в течение одного-двух дней не Ориходит в голову мысль о том, как решить задачу. За всякую такую уступку приходится расплачиваться потерей опыта, ко- Й можно было бы приобрести, решая задачу нового типа, того, если бы чтение решений и было достаточным для
16 ПРЕДИСЛОВИЕ того, чтобы приобрести способность решать такие задачи (что на самом деле не так), то очень редко можно найти такие идеи, которые сразу же показались бы изящными и понятными лю- людям, которым не приходилось продираться сквозь множество математических препятствий. Так что это — очень хороший спо- способ тренировки в области теоретизации понятий, а также оценки и сравнения различных методов формализации. Написание этой книги потребовало значительного времени, и я должен упомянуть тех, кто помогал в этой работе. Среди них — «РЭНД корпорейшн» и различные отделы Массачусет- ского технологического института (МТИ), а именно отдел ма- математики, отдел электротехники, исследовательская лаборато- лаборатория электроники, Лаборатория им. Линкольна и отдел, выпол- выполняющий проект MAC. Автор многим обязан профессору МТИ М. Блюму, который использовал рукопись при чтении своего курса, составил (и решил) многие из задач и очень многим по- помог мне при написании окончательного варианта. Я очень бла- благодарен своим коллегам, в особенности М. Девису, Дж. Мак- Карти, С. Пейперту, X. Роджерсу-младшему, Д. Скотту, О. Сел- фриджу и Хао Вану, за бесчисленные идеи по отдельным разде- разделам области, рассматриваемой в книге, и идеи по этой области в целом. Наконец, в еще большей степени я должен поблагода- поблагодарить своих учителей, в особенности Э. Глисона и Дж. Миллера из Гарвардского университета, профессоров Бохнера, Фокса, Лефшеца, фон Неймана, Таккера и Тьюки из Принстонского университета и, наконец, докторов Г. Цима и А. Джозефа. Марвин Минский
i ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ 1Д ЧТО ТАКОЕ МАШИНА? .В разговоре слово «машина» часто вызывает малоприятные ассоциации. Возникает представление о большом, массивном, ^ложном и грохочущем устройстве из замасленного металла, движения которого отрывисты, однообразны, а его выступающие острые части легко могут поранить того, кто подойдет слишком близко. ,;. Есть много причин, по которым слова «машина» или «меха- йнческий» вызывают чувства неприязни, пренебрежения и страха. Даже в .наше время работа большинства машин, с ко- которыми мы сталкиваемся, связана с использованием грубой силы для изменения формы и прочей обработки исходных мате- материалов. Большинство современных машин действительно небез- небезопасно. В отличие от тела человека производственные машины состоят из крупных прочных деталей, которые для своей защиты не нуждаются в мягкой оболочке. Хотя и нет оснований считать прокатный стан холодным и бездушным, все же невозможно об- обнаружить у него и каких-либо дружественных чувств к чело- человеку. Возможно, мы даже боимся, что проявление с его стороны дружеского отношения может при самых добрых намерениях привести к роковому для человека объятию. Имеются, правда, Исключения. Мы можем восхищаться маленькими часиками, для изготовления которых требуется столь высокое мастерство. Нас иожет приводить в восторг спокойная уверенность быстродей- быстродействующей вычислительной машины. Ни часы, ни вычислитель- вычислительные машины не предназначены для изменения формы материа- материалов, но все же это машины, и им нельзя слишком доверять. Каким-то образом эти представления о машинах всегда свя- ЗЙлваются с понятиями «механический» и «детерминированный». Большинство людей думает, что по самой своей природе ма- ВМны могут делать лишь то, что им прикажут, и будут делать Юо без каких-либо уклонений. Возможно, поэтому многим ка- |№тся неправдоподобным, что можно построить машины, наде- Яеаные воображением или способные к созидательной деятель- деятельности. И многие люди также считают абсурдным предположе- (Ие о том, что теория машин может способствовать объяснению
18 1. ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ ~ работы такого единственного в своем роде устройства, какилг является наш собственный мозг [1 *]'). | Как правило, людям кажется обидным утверждение, что их поведение в некотором смысле предсказуемо или предопреде- предопределено. Некоторые из вопросов, относящихся к понятию «детерми- «детерминизма», мы рассмотрим позже. Имеется другая, более простая причина, вызывающая у человека нежелание быть машиной или походить на нее. За небольшим исключением, машины, которые человек сконструировал в прошлом, в интеллектуальном отно- отношении не бросали ему вызова. Даже когда в качестве вычисли- вычислительных машин они помогали решать задачи, их применение явно определялось той экономией средств или труда, которую они давали. В результате работы машины не возникало великих и неожиданных открытий. Основываясь на прошлом опыте, можно сказать, что машины показали мало такого, чем они могли заслужить уважение человека. «Это распространенное представление о машине теряет свою силу с появлением лавины практических разработок и теорети- теоретических результатов, сопровождавшей создание- вычислительных машин в пятидесятых годах. Теперь мы вовлечены в новую промышленную революцию, связанную с механизацией мысли- мыслительных процессов. Сейчас мы находимся в начальной стадии: уже есть машины, играющие .в игры, машины, которые учатся играть в игры, машины, которые имеют дело с абстрактными, нечисленными математическими задачами и оперируют выра- выражениями на обычном языке. Мы встречаемся также со многими другими областями применения машин, раньше относившимися к сфере человеческого интеллекта. Я убежден, что на протяжении жизни одного поколения очень немногие области интеллектуальной деятельности останутся вне сферы возможностей машин, т. е. проблема создания «искус- «искусственного разума» будет по существу разрешена [2*]». Подобные вопросы непосредственно не рассматриваются в этой книге. Однако с самого начала важно понять, что мы интересуемся здесь предельными теоретическими возможностями машин, а не занимаемся практическим инженерным анализом существующих устройств. Чтобы такое теоретическое исследование стало возможным, необходимо абстрагироваться от многих реальных деталей и особенностей систем. Большей частью это абстрагирование захо- заходит так далеко, что остается лишь скелетное представление о структуре последовательности событий внутри машины, т. е. ') Примечания автора, обозначенные числами со звездочками, даны в конце главы. — Прим. пере в.
1. ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ 19 некоторого рода «символическая» или «информационная» струк- структура машины. При таком уровне абстракции мы игнорируем геометрию расположения механических частей. Мы игнорируем вопросы, касающиеся энергии. Мы даже разбиваем время на последовательность отдельных, не связанных между собой мо- моментов и вообще игнорируем пространство как таковое! Может ли вообще столь абстрактная теория быть теорией чего-либо? Как ни странно, может. Выделяя только те вопросы, которые касаются логических выводов из определенного вида причинно- следственных отношений, мы можем сконцентрировать наше внимание на немногих действительно фундаментальных пробле- проблемах. Разобравшись в этих вопросах, мы можем вернуться в мир практики, где столь ясное понимание сути дела было бы невоз- невозможным из-за множества несущественных деталей. В действительности материал этой книги дается настолько конкретно и неформально, насколько это было совместимо с ха- характером рассматриваемых идей. Все разделы книги можно было бы изложить гораздо точнее и полнее путем более фор- формального использования математического аппарата. По сути дела большинство освещаемых здесь идей впервые появилось ^именно в математических публикациях. Я не утверждаю, что яри достаточно искусном изложении можно «разъяснить всю математику» без какого-либо ущерба для рассматриваемых идей, поскольку, как мы увидим, некоторые из наилучших идей JB теории автоматов в действительности являются сугубо мате- аматическими или касаются самой математики. Например, в рас- 'руждениях о природе символических математических выраже- й с, помощью определений и примеров мы введем необхо- шый для наших целей математический формализм. Но я гремился к тому, чтобы сделать материал книги доступным даже 1ким читателям, которые имеют за спиной лишь хорошую ма- магматическую подготовку в объеме средней школы. Те немногие азделы, где такой подход оказался невозможным, я отметил ак дополнительные, не обязательные для первого чтения. ОБ ОПРЕДЕЛЕНИЯХ | При определении понятия «машина» возникают некоторые ?ьезные трудности. Казалось бы, что подходящее с интуитив- точки зрения определение должно быть очень сложным. Это ¦ьясняется тем, что «машина» не может быть определена как ен некоторого класса физических объектов», поскольку ре- относительно того, является ли нечто машиной, зависит Мствительности от характера использования этого предмета; в от его состава или структуры.
20 1. ФИЗИЧЕСКИ? МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ Когда мы говорим о машине, то имеем в виду не только, объект некоторого рода, но и представление о том, что этот: объект должен делать. В каких случаях такую пару считают, машиной? Пишущую машинку или печатный станок считают машиной а пресс-па пье нет. Не считают машиной и мусорную корзину Нет четкой грани между увеличительным стеклом и микроскопом, оснащенным устройствами автоматического ска- сканирования и подсчета наблюдаемых частиц. В то же время первое очевидно не является машиной, а второй, несомненно, представляет собой машину. Некоторые считают, что машина должна иметь значительное число «частей» и выполнять доста- достаточно сложные операции над чем-либо [3 *]. Однако трудно охва- охватить одним определением машины, которые счищают кожуру с яблок, и машины, которые преобразуют кодированные сиг- сигналы, несущие инфоРмаЦИК\ Мы часто испытываем большие затруднения, пытаясь дать точное определение слову из нашего обычного, нетехнического языка Относительно некоторых областей мы вполне уверенно можем сказать какие вещи принадлежат к ним, а какие нет, в других областях У нас нет такои уверенности. Мы можем считать, что у нас е^ть ясное интуитивное представление о том, что относится к некоторой области, но, когда мы пытаемся опре- определить это посредством точно заданных классов и свойств, воз- возникает область неопределенности, которая доставляет нам большие неприятности. Чтобы сделать определение точным, нужно ввести четкие границы. Это вынуЖДает нас исследовать те области, в кото- которых отказывает интуиция. Именно поэтому на поиск подходя- подходящего определения -гак часто уходят основные усилия в творче- творческой научной рабо-ге. Если новое определение позволяет клас- классифицировать объекты, статус которых раньше не был опреде- определен то таким образом вводится новое понятие; хотя внешне определение есть всего лишь соглашение, его принятие может играть гораздо более активную роль. Рассмотрим, например, термин «живой». Когда объект яв- является живым?' ЧтО сказать о вирусах, генах, кристаллах, само- самовоспроизводящихся машинах? Никто не способен дать опреде- определения понятия «живой», которое дало бы в целом удовлетвори- удовлетворительный ответ на такие вопросы. Имеются объекты, заведомо живые например мыши; объекты, заведомо неживые, например булыжники и имеется важная сейчас область неопределенности. Биологи (или скорее, преподаватели биологии) привыкли со- составлять всевозможные перечисления свойств живого объекта. Вот одно из них: A) Самовоспрризводимость.
1. ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ 21 B) Раздражимость. C) Метаболизм. D) Состоит из протоплазмы или протеина, углеводов, ДНК и т. д. Но A) исключает мулов; B) и C)—споры, а если исклю- исключить эти свойства, то в соответствии с D) к живым объектам придется отнести сосиску. Можно расширить список, дополнив его более тщательно выбранными ограничениями, но вопросы будут оставаться до тех пор, пока мы не включим в него спе- специальной оговорки для любого объекта, какой может прийти на память. Часто проблему обходят путем введения таких экзо- экзотических свойств, как «способность к ощущению» или «приспо- сабливаемость», которые также вызывают серьезные проблемы, связанные с определением. Ясно, что такие увертки, вызванные необходимостью, имеют весьма малое отношение к чему-либо действительно новому. Когда интуитивное понятие столь упорно сопротивляется введению точного определения, то это может происходить либо потому, что это не очень хорошее понятие, либо потому, что оно слишком широко или имеет слишком качественный характер для того, чтобы служить техническим средством. Таким обра- образом, в настоящее время пока мало оснований полагать, что ста- старые понятия живой — неживой смогут найти какое-либо даль- дальнейшее техническое применение; нет никаких оснований ожи- ожидать, что более четкое разграничение этих понятий поможет сформулировать хорошие технические задачи. Для пограничной области нужны более тонкие и четкие идеи. Старые понятия уводят в сторону из области технического обсуждения и эф- эффектны лишь в заголовках глав, названиях книг и наименова- наименованиях профессий [4 *]. МАШИНЫ КАК ФИЗИЧЕСКИЕ МОДЕЛИ АБСТРАКТНЫХ ПРОЦЕССОВ Для того чтобы распознать настоящую машину, нужно иметь гкоторое представление о том, что она должна делать. Один тот же набор деталей может быть как арифмометром, так и ^временной скульптурой. Но если вы знаете, как «работает |Шфмометр», вы сможете узнать его. (Конечно, можно узнать кшину по зубчатым колесам, рычагам, винтам и т. п., ибо это |ргали, из которых люди обычно делают машины, но это не ривалентные вещи. Набор «Конструктор» — это еще не ма- мака.) Вы можете узнать даже «сломанный» арифмометр, т. е. iro, чье устройство очень похоже на устройство арифмометра,
22 1. ФИЗИЧЕСКИЕ МШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ V Л, за исключением тех деталей, которые не позволяют машин? правильно функционировать. Очевидно, что разница между; «исправным» и «сломанным» тоже не может быть полностью* определена через посредство физических объектов: в это опре- деление в качестве составной его части должно входить назна- назначение устройства (или по крайней мере его предыстория). Нуж- Нужно иметь представление о том, что именно это устройство долж- должно делать, и если это представление включает в себя лишь весьма общее ограничение на детали материальной конструк- конструкции, то это ограничение является решающим. Не слишком важно, например, из чего в действительности сделаны детали арифмометра. Шестеренки арифмометра на цифровых колесах могут быть металлическими, деревянными или пластмассовыми — во всяком случае до тех пор, пока они способны в достаточных пределах сохранять некоторые специ- специфические характеристики своей формы. Если они слишком не- непрочны, машина будет ненадежной или иметь небольшой срок службы, но вы и тогда сможете сказать, что все это предназна- предназначалось для осуществления функций арифмометра. В других ма- машинах, например в электрических схемах, несущественна даже геометрическая форма, в то время как более существенны дру- другие ограничения. Когда мы интересуемся конкретной машиной, нам пока не так уже важно, из какого материала она сделана. Чертеж, схема 'цепей, патентное описание — что-нибудь должно прежде всего дать нам возможность понять принцип работы машины. Иначе говоря, сначала мы должны понять, как она «должна» рабо- работать. Только потом мы интересуемся, выдерживает ли эта де- деталь напряжения, устойчив ли этот генератор под нагрузкой и т. п. Но идея машины обычно базируется на некоторой аб- абстрактной модели, не связанной с реальными характеристиками материалов и т. п. Имеется любопытное различие между представлением о ма- машине и представлением о теории. Рассмотрим некоторую физи- . ческую теорию, например ньютоновскую механику. Предпола- Предполагается, что эта теория (как и любая другая теория в физике) есть обобщение некоторых характеристик поведения объектов реального мира. Если выводы, которые следуют из теории, не подтверждаются, то (если предположить, что эксперимент безу- безупречен) теория должна быть пересмотрена, как это и произошло с теорией Ньютона, когда существование релятивистских и кван- квантовых эффектов получило убедительное доказательство. В конце концов существует лишь одна Вселенная, и не дело физика критиковать ее, как бы ему этого ни хотелось.
1. ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ 23 В случае машины ситуация противоположна. Абстрактное представление о машине, например об арифмометре, это пред- представление о том, как физический объект должен работать. Если машина, которую мы создали, выходит из строя, мы ищем не- неисправность и, может быть, производим ремонт. В физике пред- предполагается, что части и состояния физических объектов отве- отвечают соответствующим абстрактным понятиям. Когда же речь идет о машине, то в нарушении соответствия между реальным поведением объекта и абстрактным представлением о нем мы виним материальную часть системы. Теперь мы можем сформулировать наши основные вопросы: каким образом в каждом конкретном случае мы можем быть уверены в том, что вообще существует хоть какой-нибудь способ построения машины, которую мы имеем в виду? Откуда мы знаем, что в реальном, физическом мире это допустимо? Неко- Некоторые конкретные случаи ни у одного разумного человека со- сомнений не вызывают. Когда мы рассматриваем схему простого арифмометра, мы видим, что он будет работать — он просто не может не работать, это ясно, как 2 + 2 = 4. Этот избитый пример может служить хорошей иллюстрацией. Некоторые полагают, что простые математические положения «самоочевидны». Другие утверждают, что эти положения осно- основаны хотя и на неясных, но все же эмпирических соображениях. Что касается машин, то здесь можно придерживаться иного взгляда. То, что арифмометр будет работать (будучи правильно сконструированным), с одной стороны, кажется обусловленным соответствующими логическими положениями, а с другой — выведенным из опыта наших наблюдений над поведением объектов реального мира. Вероятно, можно даже придержи- придерживаться того взгляда, что справедливость арифметического по- положения эквивалентна справедливости утверждения о том, что некоторая машина, будучи правильно построенной, будет ра- работать. Так, например, я знаю, что порядок суммирования при сло- сложении ряда чисел не имеет существенного значения. Я могу думать об этом, как о свойстве абстрактных чисел, или как об эмпирическом обобщении опыта счета, или же как о необходи- необходимом свойстве любой машины, которая правильно складывает числа. Ясно, что нельзя доверять процессу, который предста- представляет собой эмпирическое обобщение, не основанное в конечном счете на некоторого рода априорном или эвристическом утвер- утверждении. В любом случае когда, будучи реализованной, наша ма- машина не делает того, что предсказывают логика и математика,
24 1. ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ I которыми мы пользуемся, то мы вполне уверены, что либо ма- машина имеет дефект, либо несостоятельна наша логика. И ко- конечно, большинство людей согласится с тем, что немыслимо, чтобы арифмометр ошибался в сложении и не имел при этом дефекта. Материал книги, относящийся к этим вопросам, распадается на две части. В части I (гл. 2—4) мы будем рассматривать виды машин, которые могут быть построены из конечного числа простых элементов. Не приходится сомневаться в том, что все они могут быть физически реализованы. При этом в определен- определенных пределах, обусловленных экономическими ограничениями, они будут в достаточной степени надежными и практичными. В следующих разделах мы покажем, что существуют опреде- определенные виды поведения, которые вообще нельзя реализовать даже с помощью идеальных машин с бесконечным числом эле- элементов. Рассматриваемая теория позволит нам также прояс- прояснить некоторые проблемы создания машин промежуточного класса. ^— Мы мало что приобретем, если попытаемся здесь подробно охарактеризовать наше дальнейшее исследование. В следующих нескольких главах рассматриваются возможности и ограниче- ограничения «конечных» машин. После этого мы сможем подвести итог этому обсуждению интуитивных представлений о машинах и теориях. ПРИМЕЧАНИЯ 1. Обсуждение и теоретическое исследование вопроса «Почему люди с трудом принимают гипотезу о том, что оии представляют собой в некото- некотором роде машину», можно найти в работе Минского [65] '). 2. Обзор работ, относящихся к новой области науки — теории «искусств венного разума», — можно найти в сборнике под редакцией Фейгенбаума и Фельдмана 120]. Сборник содержит обширную библиографию более раииих работ в этой области. См. также статью автора в сентябрьском' выпуске жур- журнала «Scientific American» за 1966 г. 3. Классическое понятие «простая машина» — рычаг, колесо, наклонная плоскость и т. п. — не включает в себя представления о том, что относится к современным машинам, и не может облегчить понимание чего-либо, кроме передачи силы. Мы не можем объяснить посредством такого рода понятия даже некоторых вопросов, относящихся к работе часов, например, работу храпового механизма (устройства для хранения информации) или работу пружины (устройство для хранения энергии). 4. Такого рода вопросы непрерывно возникают при изучении вычисли- вычислительных машин и «искусственного разума». Что такое разум? Что такое обу- обучение? Когда решение проблемы следует передавать машине, а когда кон* ') Подробные сведения об источниках, на которые даются ссылки в тек- тексте и примечаниих, приведены в литературе в конце книги.
1. ФИЗИЧЕСКИЕ МАШИНЫ И ИХ АБСТРАКТНЫЕ МОДЕЛИ 25 структору или программисту? Наиболее тщательный анализ таких вопросов можно найти в гл. 1 книги Лоттки [45], впервые опубликованной в 1924 г. В этой книге вопрос о том, лежат ли в основе биологических процессов обыч- обычные физические прииципы, рассматривается более серьезно, чем в наше время. Лоттка пришел к выводу (и годы это подтвердили), что мы мало потеряем, а может быть, и очень много выгадаем, признав нашу неспособность точно установить различие между живой и неживой материей. Я не могу ие привести содержащуюся в книге Лоттки цитату из Уильяма Бейлиса, который цитирует Клода Бернара, цитирующего в свою очередь Пуаисо: «Если бы кто-иибудь попросил меня определить время, я бы спро- спросил его: «А знаете ли вы, о чем мы говорите?» Если ои ответил бы: «Да», я сказал бы: «Очень хорошо, давайте об этом и поговорим». Если бы ответ был: «Нет», я бы сказал: «Очень хорошо, давайте тогда поговорим о чем- нибудь другом».
Часть I КОНЕЧНЫЕ МАШИНЫ МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 2.0. ВВЕДЕНИЕ ' В первой части этой книги мы будем рассматривать струк- структуру и поведение класса машин, известного как машины с ко- нечным числом состояний, или конечные автоматы. Это такие машины, которые переходят четко разграниченными «дискрет- «дискретными» шагами из одного состояния в другое, причем оба эти состояния принадлежат к некоторому конечному набору. Такие очень идеализированные машины представляют особый интерес по ряду причин. Вследствие их специфически ограниченной, конечной, при- природы структуру и поведение этих машин легко описать полно- полностью, без какой-либо неопределенности или аппроксимации. Го- Гораздо труднее иметь дело с более реалистичными моделями механических систем, в которых величины переменных, таких, как время, положение, количество движения, трение и т. п., плав- плавно изменяются в пределах непрерывных, слабо изменяющихся областей своих значений. Чтобы исследовать такие «непрерыв- «непрерывные» системы, необходимо использовать всевозможного вида ма- математические абстракции и прибегать к аппроксимации для по- получения подходящей модели. Кроме того, получающиеся си- системы уравнений обычно не могут быть решены без дальнейших упрощений. Как ни странно, но оказывается, что мы не всегда платим высокую цену за то, что ограничиваем свое внимание конечными автоматами — «цифровыми» системами, как их ино- иногда называют. В некоторых отношениях эти системы оказы- оказываются неожиданно мощными. Существуют интересные способы построить их так, чтобы они были в состоянии делать почти все, что может быть сделано другими конечными физическими си- системами. (Этот вопрос мы рассмотрим в дальнейшем, в гл. 5.)
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 27 Мы будем рассматривать конечные автоматы с двух точек зрения. В этой главе тйы будем использовать совершенно аб- абстрактную формулировку, в которой общее состояние системы определяется одной величиной (ее обобщенным состоянием). Эта величина изменяется в соответствии с предысторией ма- машины и средой, в которой она функционирует. В следующих главах мы будем рассматривать машину как устройство, соста- составленное из многих частей, каждая из которых взаимодействует со своими соседями. При этом мы детально рассмотрим то, что происходит внутри машины. В этих двух подходах будем ис- использовать различные методы описания. В первой формулировке нам нужно лишь описать множество возможных состояний и ус- условия, при которых одно состояние сменяет другое. Во второй формулировке нам необходимо точно описать, как работает ка- каждый из элементов и каким образом элементы связаны между собой и влияют друг на друга. Для того чтобы упростить эту задачу, мы выберем в качестве наших элементов очень про- простые устройства — «нейроны» Мак-Каллока — Питтса и в конце концов покажем, что теория конечных автоматов эквивалентна теории сетей из очень простых элементов. Для машин с конечным числом состояний характерна про- простая связь между структурой и поведением. Если нам даны 1) описание автомата, 2) его начальное состояние и 3) описание сигналов, которые поступают на него из среды, то мы можем установить, каково будет его состояние в каждый последующий момент времени. Это достигается путем пошагового установле- установления последовательности состояний машины во времени. Этот процесс нахождения состояний столь прост, что в принципе все- всегда можно без труда построить физические модели автомата с такими же последовательностями состояний. При этом, ко- конечно, мы можем оказаться не в состоянии построить модель, достаточно большую или достаточно быстродействующую для решения некоторых задач. 2.0.1. Моменты времени Теория конечных автоматов обходится со временем весьма своеобразно. Поведение машины описывается как простая, ли- линейная последовательность событий во времени. Эти события происходят лишь в дискретные моменты, в промежутках между которыми не случается ничего. Можно представить себе, что эти моменты образуют последовательность, регулярную, как тиканье часов, и мы можем сопоставить моментам целые числа, т. е. время t принимает лишь целочисленные значения 0, 1, 2 Поскольку начало отсчета времени особого интереса в данном
28 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ случае не представляет, то мы в общем не интересуемся тем, откуда начинается отсчет t. Однако обычно мы будем полагать, что / = 0 в момент, когда машина начинает функционировать впервые. При желании можно считать, что машина работает непрерыв- непрерывно, а наши моменты соответствуют случаям, когда «фотогра- «фотографируются» состояния системы. Таким образом можно рассма- рассматривать любую детерминированную систему. Однако такой подход возможен лишь тогда, когда система отвечает требова- требованиям, которые мы к ней предъявляем, а именно после оконча- окончания каждого интервала машина находится в одном из конечного числа возможных состояний. Входные патлы каналы Рнс. 2.1.1. Представление машины в виде «черного ящика>. 2.1. СОСТОЯНИЯ И СИГНАЛЫ С точки зрения человека, использующего машину, ее можно рассматривать как закрытый ящик с входными и выходными клеммами (рис. 2.1.1). Время от времени человек воздействует на машину через входные каналы, и время от времени машина воздействует на человека через выходные каналы. Как прави- правило, человеку не требуется знать, что именно происходит внутри ящика. Так что если он не заинтересован в том, чтобы по- понять, как работает машина, и не стремится ее усовершенство- усовершенствовать, то ему нужно знать лишь ее «входо-выходные» характе- характеристики. Когда мы относимся к машине именно таким обра- образом, мы называем ее «черным ящиком», показывая тем самым, что нас не интересуют ее «внутренности». Столь же безразлично мы будем относиться к входным и выходным каналам, по- поскольку (в теории автоматов) физическая природа сигналов, проходящих по каналам, интересует нас не больше, чем физи- физические характеристики элементов машины. Сигналы могут, на- например, быть электрическими импульсами, как в современной вычислительной машине, или иметь электрохимическую природу, как импульсы в нервных волокнах, или же передавать инфор- информацию о «переносе» от одного цифрового колеса суммирующей машины к другому с помощью механических воздействий — в теории автоматов иам это безразлично. Не безразлично нам множество различимых состояний, кото- которые могут характеризовать канал в данный момент. В каждый из наших дискретных моментов каждый канал будет находиться
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 29 в том нли ином состоянии из конечного набора состояний. Этим состояниям могут быть присвоены различные символические на- названия, например буквы алфавита, числа или же слова типа «да» или «нет». В большинстве примеров, которые мы будем рассматривать, каждый канал будет способен находиться в од- одном из двух возможных состояний. Это обычно имеет место в задачах, связанных с проектированием вычислительных машин. Электрический переключатель может находиться либо в по- положении «включено», либо в положении «выключено» (предпо- (предполагается, что других положений у переключателя нет). Состоя- Состояние переключателя в этом случае определяет, пройдут ли через него сигналы, т. е. появятся ли они на выходе, будучи подан- —ными на вход. Такой переключатель является прибором с двумя состояниями, пропускающим сигналы в одном из них и блоки- блокирующим их в другом. (Имеются переключатели и с большим числом состояний: стандартный телевизионный приемник имеет переключатель программ с двенадцатью состояниями. Для обо- обозначения состояний могут быть использованы любые двенадцать символов — фактически в качестве таких символов используются целые числа 1,2, .... 12.) Предположение о том, что число возможных состояний ка- канала конечно, является одним из ключевых постулатов теории автоматов. Наша теория не касается непрерывных, или «анало- «аналоговых», устройств (таких, как переменные резисторы или ири- ирисовые диафрагмы), которые могут быть установлены так, чтобы передавать любую долю сигнала. Конечно, когда вы попытаетесь физически реализовать переключатель, то скорее всего (даже можно сказать непременно) столкнетесь с недискретным в не- некоторой степени поведением: большинство реальных переклю- переключателей будет слегка изменять свои свойства, когда на рычаг давят сильнее. Но когда это в какой-нибудь мере влияет на функционирование системы, то заменяется переключатель, а не теория автоматов [1 *]. Возвращаясь к нашему представлению машины в виде чер- черного ящика, предположим теперь, что она имеет один входной и один выходной каналы. Пусть они связаны со средой Е (рис. 2.1.2). Будем обозначать входной канал буквой S, а вы- выходной канал буквой R. Входной канал может находиться в не- некоторых состояниях Si, ..., sn, которые будем называть также сигналами. Выходной канал может находиться в состояниях гь .... rm. В каждый момент t среда определяет некоторое со- состояние входа S, которое является входным воздействием на машнну. Будем обозначать входное воздействие в момент /
30 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ через S(t). В каждый момент машина выбирает некоторое СО- стояние выхода (ответный сигнал), которое некоторым образом воздействует на среду. Ответный сигнал в момент t будем обо- обозначать как R(t). Теперь для того, чтобы дать более полное описание машины, необходимо установить, как она себя ведет, иначе говоря, каким образом ее выходные сигналы зависят от входных. Каково будет состояние выхода R в некоторый момент f? В общем случае это зависит от всей «предыстории» системы. Здесь мы условимся, что состояние выхода в момент t не зависит от состояния входа в тот же момент t. Иначе говоря, мы не допускаем возможности того, что сигнал проходит через устройство мгновенно. Но выход в момент t + 1 в общем случае Рис. 2.1.2. Машина, взаимодей- зависит, по крайней мере частич- ствующая со средой. но> от входного сигнала в пре- предыдущий момент t Это огра- ограничение отражает физическую невозможность мгновенного пе- перехода из одного места в другое. Но здесь оно необходимо по более простой причине: для того, чтобы избежать нереализуе- нереализуемой, парадоксальной ситуации, когда каналы оказываются не- непосредственно соединенными друг с другом, и избежать мгно- мгновенной реакции, также физически нереализуемой. 2.1.1. «Выходная функция» машины Представим себе, что машина М функционирует, взаимодей- взаимодействуя со средой Е, в течение некоторого неизвестного периода времени. Машина получает сигналы от среды Е и реагирует на эти сигналы. Обозначим через H(t) предысторию этого процесса до момента времени t Таким образом, предполагается, что H(t) некоторым образом описывает все события, относящиеся к машине М, со времени, когда машина была создана, до мо- момента времени t. Предполагается также, что предыстория H(t) машины М содержит запись всех воздействий на М с тех пор, как она начала функционировать.. Если в момент t мы отключим М от среды и подадим на вход сигнал st, то машина в момент t + 1 ответит сигналом г$. То, какой именно сигнал г,- появится на выходе в момент t+\, будет зависеть как от того, какой выбран сигнал s,-, так и от внутреннего состояния машины М в момент i. Предполагая, что
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 31 ситуация внутри М1) определяется ее предысторией H(t),мож- H(t),можно написать R(t+l) = F(H(t),S(t)). К сожалению, любое такое соотношение оказывается безна- безнадежно громоздким, для того чтобы воспользоваться им непо- непосредственно. Это объясняется слишком явной зависимостью со- состояния выхода от всей предыстории. Было бы очень удобно заменить это выражение другим, в котором состояние выхода R(t + 1) и входное воздействие S(t) были бы связаны гораздо более прямо. В следующем разделе мы покажем, что, введя спе- специальное ограничение на природу машины М, а именно то, что машина должна быть в некотором смысле конечной, мы сможем получить требуемое соотношение в очень простой и удобной форме. 2.2. ЭКВИВАЛЕНТНЫЕ ПРЕДЫСТОРИИ; ВНУТРЕННИЕ СОСТОЯНИЯ Для данной машины М в данный момент t можно предста- представить себе бесконечное число возможных предыстории. Лишь та из них, которая имела место на самом деле, определяет реакцию машины на следующее входное воздействие. Может оказаться, что на определение этой реакции на выходе существенно влияют некоторые события из очень отдаленного прошлого. В этом слу- случае можно сказать, что машина «помнит» эти отдаленные собы- события. Иначе говоря, каждому такому событию соответствует не- некоторая своя линия дальнейшего поведения. Если каждому событию сколь угодно отдаленного прошлого соответствует своя особая линия поведения, то машина должна иметь в некотором смысле память бесконечной емкости, чтобы помнить все эти ли- линии поведения. В нашу задачу входит изучение как раз такого вида машин, которые могут быть построены из конечного числа дискретных элементов, таких, как переключатели, реле или магнитные сер- сердечники и транзисторы. Способность таких машин сохранять информацию о прошлых событиях должна иметь некоторые ') Для некоторой машины М может оказаться, что состояние ее выхода R(t + 1) в действительности не определяется состоянием входа и предысто- предысторией. В этом случае мы имеем дело с недетерминированной машиной. Вход и предыстория могут, например, определять лишь вероятности возможных состояний выхода. В этом случае мы имеем дело с вероятностной (стохасти- (стохастической) машиной. Мы могли бы рассмотреть также недетерминированные ма- машины, ие являющиеся вероятностными, ио здесь они не представляют особого интереса, если ие считать некоторых технических преимуществ, которые сей- сейчас нас не интересуют.
32 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ пределы. Ни одна из таких машин не может сохранять полной записи событий сколь угодно длинной предыстории [2*]. Если память машины ограничена, то машина не может по- помнить всего, что с ней случилось, ее поведение не может по- разному зависеть от всех возможных предыстории. Введем теперь точное понятие "об эквивалентности двух пре- предыстории. Представим себе, что некогда имелись два совер- совершенно одинаковых экземпляра машины М. Но в момент /, воз- возможно, из-за различия сред, в которых они функционировали, Mi имеет предысторию H{(t), а М2— другую предысторию H2(t). Мы будем говорить, что Н\ и Н2 являются эквивалент- эквивалентными предысториями относительно машины М, если в дальней- дальнейшем для любой возможной последовательности сигналов S(t), S(t + 1), S(t + 2), ... машины М\ и М2 будут иметь одинако- одинаковые сигналы на своих выходах. Это означает, что не суще- существует способа различить машины Л^ и М2, подавая на их входы последовательности сигналов и наблюдая реакции на их выходах. Определим теперь класс эквивалентности любой предысто- предыстории как множество всех предыстории, эквивалентных ей. По- Поскольку две предыстории, эквивалентные третьей, эквивалентны друг другу, то все члены класса эквивалентности эквивалентны между собой. Ясно, что два класса эквивалентности не могут частично перекрываться —; они должны либо быть полностью отличными друг от друга, либо полностью совпадать. Это приводит нас к основному постулату теории конечных автоматов, состоящему в том, что машина может различать в своем настоящем и будущем поведении лишь конечное число классов возможных предыстории. Эти классы мы будем назы- называть «внутренними состояниями» машины. Внутреннее состоя- состояние машины в момент t будем обозначать символом ф(/),асами состояния — символами qu ..., qp. Очевидно, что имеется связь между классами эквивалент- эквивалентности предыстории и тем, что машина может помнить о своем прошлом. В гл. 4 мы подробно исследуем природу такой па- памяти '). Интересно, что, исходя из одного лишь постулата о ко- конечности числа классов эквивалентности, мы можем довольно много сказать о возможных структурах таких классов. ') Можно, конечно, предположить, что внутри машины есть элементы, сохраняющие в памяти такие вещи, которые никогда ие сказываются на внешнем поведении машины. Например, в машинах некоторые элементы мо- могут иметь входы, но не иметь выходов. Наше определение игнорирует любые свойства такого рода. С этой точки зрения, может быть, лучше было бы на- называть наши классы предыстории «внешними состояниями». Для сравнения см. работу Мура [67]. Наши состояния представляют собой состояния муров-
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 33 2.2.1. Определение функций F и О В соответствии с нашим определением внутреннего состоя- состояния ответный сигнал машины R(t + 1) на входное воздействие S(t) может зависеть лишь от Q(t). В противном случае поведе- поведение зависело бы не только от различных классов предыстории. Более наглядно эту зависимость можно записать в следующем виде: х ( который показывает, что выход в момент t + 1 зависит лишь от входного воздействия в момент t и от внутреннего состояния в момент t. Входное воздействие, или, иначе, сигнал S(t), зави- зависит, разумеется, от среды. От чего зависит внутреннее состоя- состояние Q (О? Конечно, внутреннее состояние в момент t зависит от всей предыстории машины. Но, к счастью, нетрудно доказать, что зависимости от недавнего прошлого и далеких событий можно легко отделить друг от друга. Предыстория машины — это перечень всего того, что случи- случилось с ней: событие,, при котором машина была введена в дей- действие, и последовательность входных сигналов, поступивших на машину после этого. Предыстория в момент t + 1 отличается от предыстории в момент t лишь наличием дополнительного члена, который описывает, что случилось в момент t, а именно нали- наличием сигнала S(t). По предположению ничто другое не может влиять на то, что происходит внутри черного ящика. Каково же внутреннее состояние машины в момент t + 1? Состояние Q(t + 1) может зависеть лишь от предыдущего входа S(t) и от предыдущего внутреннего состояния Q(t). В противном случае машина могла бы различать в своем будущем поведении две предыстории, которые по предположению принадлежат одному и тому же классу Q(t) и, следовательно, неразличимы1). Это утверждение можно записать в виде Q(t+l) = Q(Q(f),S(t)). (G) Два выражения F и G дают самое полное описание машины, которое только можно пожелать, оставаясь безразличным ской «сокращенной машины», т. е. машины, которая упрощена настолько, насколько это возможно, и для которой «все несущественные элементы ее опнсаиня исключены». ') Следовательно, поскольку установлена зависимость Q(t + I) от Q(t) И S(t), то не может быть никакой другой зависимости, например от S(t— 1), которая ни была бы уже учтена. Логика этого раздела довольно сложна, и лишь математически подготовленный читатель может следовать ей без того, чтобы раз-другой не вернуться назад к определению эквивалэнтных предысто- рнй. Другой, менее сложный подход будет дан в разд. 2.2.2. 2 М. Минский
34 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ к тому, что в действительности происходит внутри «черного ящи- ящика». Действительно, предположим, что нам сообщили внутрен- внутреннее состояние машины Q(t) в некоторый момент t, а также по- последовательность S(t), S(t + 1), S(t + 2), ... входных воздей- воздействий, которые будут поступать на машину с этого момента. Тогда соотношения F и G определят, какой выход R(t + 1) следует ожидать в момент t + 1, а также внутреннее состояние Q(t + 1), в котором машина будет находиться в этот момент. После этого, снова используя соотношения F и G, мы можем определить выход и внутреннее состояние в момент t + 2. Мы можем продолжать шаг за шагом эти вычисления, с тем чтобы находить выход и внутреннее состояние машины в любой мо- момент времени в будущем (до тех пор, пока мы знаем, какой вход будет в тот момент). Машины с конечным числом внутренних состояний будем называть конечными машинами. Иногда будем использовать другие названия, например «процессы с конечным числом со- состояний», «конечные автоматы», «конечные преобразователи» и т. п. Требование конечности числа состояний на первый взгляд может показаться очень жестким, но на практике любая ма- машина, которую можно построить, может быть сколь угодно точно описана как конечная машина путем использования до- достаточно большого числа состояний. В гл. 5 это утверждение будет рассмотрено более подробно. В части II мы рассмотрим машины, которые в некотором смысле являются бесконечными. Но мы сделаем это главным образом по той причине, что это упростит получение окончательных ограничений на все машины, включая конечные. Поскольку речь идет об отрицательных результатах, допущение бесконечности машин лишь смягчает предположения и, следовательно, делает результаты более сильными. 2.2.2. Некоторые другие определения конечных машин Понятие конечной машины и, в частности, понятие внутрен- внутреннего состояния обычно излагаются менее абстрактным образом, чем это сделано в предыдущем разделе. Нашей конечной целью является истолкование некоторых идей из теории автоматов, которые основаны на весьма аб- абстрактном методе рассмотрения последовательности входных воздействий. Благодаря тому что мы вводим часть этих абстрак- абстракций в наши определения, остающееся расстояние до нашей цели, которое нам предстоит преодолеть в гл. 4, не покажется нам слишком большим.
1 МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 35 Следующие разделы носят более практический характер, и в них мы дадим более содержательное понятие конечной ма- машины. Представим себе, что внутри нашей машины — «черного ящи- ящика» — имеется ряд соединенных друг с другом элементов. Пред- Предположим, что каждый элемент имеет лишь небольшое число различных состояний или положений. Тогда мы можем описать общее состояние дел внутри ящика посредством простого пере- перечисления состояний (в этот момент) всех элементов. Если имеет- имеется лишь конечное число элементов, то возможно-лишь конечное число различных общих состояний. Эти общие состояния ма- машины представляют собой то, что мы называем внутренними состояниями. Если, например, имеется п элементов, каждый из которых может находиться в К состояниях, то машина может насчитывать до Кп различных общих состояний1). (Число вну- внутренних состояний, действительно возможных при функциони- функционировании, могло бы быть много меньше, чем в данном случае, если бы имели место ограничения, связанные с взаимным влия- влиянием элементов, что и наблюдается в реальных машинах.) Мы обозначим эти внутренние состояния символами q\, ..., qp, a внутреннее состояние в момент t символом Q(t). Заметим теперь, что входной и выходной каналы, подклю- подключенные к ящику, могут быть подключены к некоторым элемен- элементам внутри ящика. Пусть входной канал подключен к некоторым элементам машины, так что входной сигнал может влиять на состояния некоторых элементов. Ясно, что внутреннее состояние в момент t + 1 зависит лишь от ситуации в машине в момент t и сигна- сигналов, которые поступают в нее в момент t. Тогда снова можно сказать, что Q(t+l)-G{Q(f),S(f)). (G) Пусть выходной канал непосредственно связан с некоторыми элементами машины, так что состояние выходного канала зави- зависит от состояний этих элементов. Поскольку состояния этих эле- элементов в момент t + 1 зависят лишь от их состояний в момент t и от S(t), то мы также можем написать R(t+l)-F(Q(f),S(f)). (F) !) Поскольку два из этих обобщенных внутренних состояний могут быть неразличимы с точки зрения внешнего поведения машины, внутренние состоя- состояния, определенные здесь, могут соответствовать более узким классам преды- сторнн, чем те, которые определены в разд. 2.2. Но выбор определения не влияет на следствия.
36 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Хотя можно рассматривать машину как единый процесс (полностью описываемый функциями F и G), внутри «черного яшика» могут одновременно происходить многие процессы. Вход- Входной сигнал непосредственно воздействует лишь на некоторые из элементов. В следующий момент эти элементы воздействуют иа состояния других элементов. На еще более отдаленные эле- элементы воздействие приходит еще позже. Возбуждение и инфор- информация могут, таким образом, распространяться и циркулиро- циркулировать внутри машины, воздействуя на элементы сети. Но прежде чем мы рассмотрим некоторые из этих возможностей детально, нам нужно выяснить еще ряд вопросов, относящихся к машине, рассматриваемой как единый блок. Внешний наблюдатель может воздействовать на автомат пу- путем подачи сигналов в канал S. Подобным же образом полу- получаемый в результате выходной сигнал автомата может влиять на поведение внешнего наблюдателя. Возвращаясь к прежним схемам (рис. 2.1.1 и 2.1.2), можно заметить, что с точки R * 1 с | =-<> зрения автомата, как это пока- зано на рис. 2.2.1, ситуация та Рис. 2.2.1. Среда. же самая. Все различие в схе- схемах состоит в том, что назва- названия соединительных каналов поменялись местами и теперь среда находится внутри ящика. Если мы рассматриваем среду так же, как черный ящик, то имеет место симметричное представление, отображенное м на рис. 2.2.2. Рис. 2.2.2. Вопрос о том, где кончает- кончается собственно машина и начи- начинается ее среда, может быть решен лишь путем соглашения или введения определения. Тело может рассматриваться как среда для мозга или для печени. Различие между существенной ча- частью машины и несущественным «оформлением» зависит лишь от оценки наблюдателя. Когда мы не в состоянии охватить си- систему как целое, мы стараемся найти такое ее разбиение, при котором можно было бы понять работу каждой отдельной части и при этом представить себе, как эти части взаимодействуют. Когда с целью анализа работы системы производится такое разбиение, мы можем каждую часть рассматривать как интере- интересующий нас автомат, а все остальное — как среду, в которой он функционирует. Если мы хотим, чтобы такое разбиение при- принесло пользу, его нельзя производить совершенно произволь-
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИИ 37 ным способом, так как неестественное разбиение системы на «части» не дает возможности анализировать ее разумным об- образом. 2.3. ТАБЛИЦЫ И ДИАГРАММЫ Конечная машина описана полностью, когда заданы ее функции переходов F и G. Каждая из этих функций определена лишь для конечного числа значений входного сигнала; так что сами эти функции могут быть представлены конечными табли- таблицами. В качестве первого примера рассмотрим устройство «за- «запоминания* или «задержки», функции перехода которого при- приведены ниже. ПРИМЕР 1. ЗАПОМИНАЮЩИЙ АВТОМАТ Входной канал может передавать только два вида сигналов, называемых So и st, и имеются только два внутренних состояния q0 и Ц\ и два выходных сигнала г0 и Г\. СОСТОЯНИЕ СОСТОЯНИЕ О I Яо 4i Р I Яо Я\ ВХОД «о q0 Яо ВХОД s0 я\ ?i S( r0 Из таблиц видно, что состояние в момент t (или выход в мо- момент t -f 1) указывает, каким был сигнал, появившийся на входе в момент t — 1: s0 или S\. (Задача: показать, что автомат, выход которого в момент t + 1 указывает, каков был сигнал в мо- момент t, требует лишь одного состояния [3*].) Ввиду того что между входом и выходом автомата имеется как бы встроенная задержка на единицу времени, можно считать, что описанный автомат имеет зачаточную способность к запоминанию — в дан- данном случае к сохранению цифры, которая оказалась на входе в момент t — 1. Следующий простой автомат способен различать четность или нечетность числа единиц, которые поступают на его вход. В дальнейшем мы будем представлять сигналы So и Si, а также г0 и гх цифрами 0 и 1 соответственно. ПРИМЕР 2. АВТОМАТ ДЛЯ ПРОВЕРКИ НА ЧЕТНОСТЬ G 0 1 Я\ Я\ 4i F 0 1 Яа 0 1 Я1 1 0
38 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Из таблиц переходов видно, что автомат сохраняет прежнее состояние (и выход), если на вход поступил 0, и изменяет со- состояние (и выход), если на вход поступила 1. Следовательно, любое четное число единиц на входе не приведет в итоге к из- изменению состояния. Таким образом, если бы мы знали, что в некоторый (может быть, отдаленный) момент в прошлом ма- машина находилась, например, в состоянии 0, то могли бы для любого последующего момента указать, было ли число единиц, поступивших на ее вход за время между двумя этими момен- моментами, четным или нечетным. Или же если мы, например, знаем, что машина начала свое существование в состоянии 0, то можно сказать, было ли общее число единиц, поступивших на машину за все прошедшее время, четным или нечетным. Рис. 2.3.1. Запоминающий автомат. Рис. 2.3.2. Автомат для проверки на четность. Можно сказать также, что этот автомат имеет слабую па- память. Ясно, что эта память имеет ограниченную емкость — она способна различать лишь два класса предыстории. Заметим, однако, что память автомата не ограничена каким-либо фикси- фиксированным отрезком времени, по крайней мере в обычном смысле. В отличие от человеческой памяти на его состояние в данный момент недавно поступившие на вход сигналы воздействуют не в большей (и не в меньшей) степени, чем сигналы сколь угодно далекого прошлого. (Совсем другое дело с памятью автомата с запоминанием из примера 1. На его состояние воздействует только последний сигнал.) Необходимо подчеркнуть следующее положение: хотя конечные машины имеют ограниченную ем- емкость памяти, это ограничение не обязательно принимает форму простого ограничения на отрезок времени, в течение которого определенный входной сигнал продолжает оказывать влияние На машину. Каковы же эти ограничения — мы увидим в гл. 4. Когда мы имеем дело с большим числом состояний, таблицы переходов становятся громоздкими и более удобно использовать'
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 39 графическое описание. Будем называть такие описания диаграм- диаграммами переходов или диаграммами состояний. Диаграммы состояний для двух простых автоматов, описанных выше, пока- показаны на рис. 2.3.1 и 2.3.2. Правила интерпретации этих диаграмм таковы. Для предста- представления состояний мы всегда будем использовать шестиуголь- шестиугольники. Стрелками отображены переходы от одного состояния к другому. Символ входного сигнала указывается на хвосте стрел- стрелки, выходящей из состояния. Каждая стрелка показывает, что происходит, если дано состояние и входной сигнал. Острие стрелки указывает на следующее состояние, определяемое зна- значением функции G. Символ, помещенный в разрыве каждой стрелки, определяет значение выходного сигнала, который по- появится в соответствии со значением функции F. Если не будет неоднозначности, мы будем опускать некото- некоторые символы. ПРИМЕР 3. АВТОМАТ С ЗАДЕРЖКОЙ НА ДВА ТАКТА На рис. 2.3.3 представлен автомат, который запоминает две предыдущие цифры; его состояние в момент t или его выход Рис. 2,3.3. Автомат с задержкой на два такта. момент t—1 показывает, какой входной сигнал поступил в омент t — 2. 0 0 1 F Яоо Яоо Яа\ Яоо Яо1 Яю Яп Яо1 Яю Яоо Яо1 Яю Яп Яю Яп Яп 0 0 11 0 0 1 1 кратко это можно записать в следующем виде: > sk) = Qik> F (qtl, sk) = i.
40 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ ПРИМЕР 4. АВТОМАТ С ЗАДЕРЖКОЙ НА ТРИ ТАКТА На рис. 2.3.4 показан автомат, который запоминает три цифры. Путем увеличения числа состояний легко запоминать и более длинные последовательности цифр. Разумеется, число со- состояний будет быстро расти. Нет способа, чтобы обойти требо- требование, согласно которому для запоминания п двоичных цифр требуется 2П состояний. (Почему нельзя обойти это требование? Рис. 2.3.4. Автомат с задержкой на три такта. Опишите метод построения памяти на п цифр и Объясните, по- почему в такой памяти нужно иметь по крайней мере 2П состоя- состояний.) ПРИМЕР 5. ДВОИЧНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ СУММАТОР В качестве последнего примера рассмотрим диаграмму со- состояний для двоичного сумматора [4*]. Этот автомат задается следующим образом: на его входы одновременно поступают две последовательности двоичных цифр, причем каждая последова- последовательность представляет собой число в двоичной записи с наи- наименьшей значащей цифрой, находящейся впереди. Выходными сигналами этой машины являются двоичные цифры последова- последовательности, которая представляет собой сумму двух чисел, пода- подаваемых на вход автомата. Начиная работать в некоторый исход- исходный момент, автомат воспринимает последовательность пар двоичных цифр (каждая цифра пары принадлежит одному из двух чисел, подаваемых на вход автомата). Это означает, что в действительности возможны четыре входных сигнала, которые можно обозначить как 00, 01, 10, 11. Необходимы лишь два состояния: состояние до — «нет пере- переноса» и состояние q\ — «перенос» (рис. 2.3.5). Например, сумма
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИИ 45 + 57 = 102 в двоичном представлении имеет вид 10 110 1 + 1 1 10 0 1 41 110 0 110 или 32+ 0 + 8 + 4 + 0+1 + 32 +16 + 8 + 0 + 0+1 64 + 32+ 0 + 0 + 4 + 2 + 0 Рис. 2.3.5. Двоичный последователь* ный сумматор. Соответствующая последовательность событий представлена в приводимой ниже таблице: t 45 57 Сигнал Состоя- Состояние Выход 0 ( / (/ // Чо — 1 0 0 00 41 с ° г 1 0 10 4о 1 3 1 1 и Чо 1 0 t 01 4t 0 5 >У 'У II 0 6 0 0 00 4i 1 7 ¦¦• @) @) @0) Чо ID" V заметим, что цифры Невинных чисел записаны а обратном порядке Задача 2.3.1. Выписать таблицы F н О для автомата, изображенного на ис. 2.3.5. .4. ДИАГРАММА СОСТОЯНИЙ ИЗОЛИРОВАННОЙ МАШИНЫ Что будет происходить, если машина с конечным числом ;остояний будет предоставлена сама себе, т- е. если она не бу- 1ет получать информации из внешнего мира? Это соответствует :лучаю, когда машина имеет постоянный вход, т. е. повторяю- цийся неизменный сигнал. В этом случае диаграмма переходов :тановится очень простой. Поскольку из входа подается один и от же сигнал, каждое состояние однозначно определяет сле- Ьующее состояние. На диаграмме это отражено тем, что из лждого состояния выходит одна-единственная стрелка. Разу- 1еется, по-прежнему несколько стрелок могут вести к од- юму и тому же состоянию. Таким образом, диаграмма должна
42 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ выглядеть подобно диаграмме, изображенной на рис. 2.4.1. За- Заметим, что это не набор примеров, а диаграмма одной машины. Выберем некоторое начальное состояние и введем машину в действие. Машина будет переходить от состояния к состоянию, двигаясь вдоль одной из цепочек, показанных на диаграмме. Но имеется лишь конечное число состояний. Ясно, что если машина будет двигаться достаточно долго, то она должна как-то попасть в состояние, в котором была уже раньше. А это означает, что Рис. 2.4.1. Диаграмма состояний изолированной машины. начиная с этого момента картина смены состояний должна по- повторяться. Каждая цепочка неизбежно должна привести к замк- замкнутой петле, или циклу. Разумеется, различные начальные со- состояния могут привести к одному и тому же циклу, т. е. различ- различные начальные цепочки могут сходиться. Но два пути, однажды сойдясь (приведя к общему состоянию), никогда не могут разой- разойтись снова1). Следовательно, диаграмма состояний содержит конечное число отдельных замкнутых петель, или циклов. К ка- каждому циклу ведет ряд различных «деревьев», или множеств сходящихся путей. Не существует пути, по которому можно было бы перейти из системы деревьев одного цикла в систему деревьев другого цикла2). Из этих рассуждений о диаграмме состояний можно заклю- заключить, что любая машина с конечным числом состояний, будучи полностью предоставленной самой себе, в конце концов попадет в цикл. Длина этого цикла не может превысить числа внутреи- ') Почему? 2) Мы будем называть каждое такое множество, состоящее из цикла и относящихся к нему деревьев, блоками диаграммы. Различные блоки обяза- обязательно отделены друг от друга. (Заметим, что если использовать дру- другой, «постоянный» сигнал, то нужно рассматривать другое множество бло- блоков-деревьев и петель.)
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИИ 43 них состояний машины и может быть много меньше. Разумеется, и время вхождения в цикл не может превысить числа внутрен- внутренних состояний машины. Эти выводы говорят о том, что в определенном смысле ко- конечные машины довольно просты. Но, говоря так, нужно иметь в виду очень большое число состояний, которое могут иметь практические машины. Современные цифровые вычислительные машины могут содержать в своей быстродействующей памяти порядка миллиона элементов, каждый из которых имеет два со- состояния. Общее число возможных состояний всей машины пред- представляет собой произведение (а не сумму) чисел состояний элементов, так как возможен любой набор состояний элементов. Это означает, что машина в целом имеет примерно 21000000 со- состояний! (Это число представляет собой единицу с 300 000 ну- нулей.) Диаграмма состояний такой машины (при отсутствии входных воздействий) может содержать циклы с длиной такого порядка. Если бы даже машина работала на частотах космиче- космических лучей, время эволюции галактики показалось бы ничтож- ничтожным в сравнении с периодом такого цикла. Гигантские величины возможного числа состояний памяти современных вычислительных машин свидетельствуют о том, что в этом случае конечность числа состояний нельзя толковать слишком прямолинейно. В следующих главах мы получим не- некоторые теоретические ограничения, вытекающие из конечности числа состояний, но величины, с которыми приходится опериро- оперировать, говорят о том, что теоремы и доводы, основанные главным образом непосредственно на конечности диаграммы состояний, могут и не иметь существенного значения с точки зрения прак- практики. Задача 2.4.1. Если вы знакомы с кодами команд какой-либо цифровой машины, то попытайтесь составить программу с наибольшим временем выпол- выполнения (до зацикливания или остановки). Занязшись этим, вы обнаружите, что решение по существу будет состоять в том, чтобы использовать всю па- память (за исключением места, отводимого для самой программы) в качестве гигантского накопителя. Обычная ошибка состоит в том, что пытаются вклю- включить в гигантский цикл состояния используемого дополни гельяого оборудо- оборудования, например индексных регистров и накопителей. Этот подход оказы- оказывается ошибочным (несмотря на то что имеется большой набор таких бло- блоков), поскольку дополнительная программа, необходимая для использования этих регистров, займет больше состояний, чем их прибавится благодаря такой хитроумной стратегии. • 2.5. ПЕРЕХОДЫ СОСТОЯНИЙ ПРИ НАЛИЧИИ ВНЕШНИХ СИГНАЛОВ Гораздо труднее описать, что будет происходить тогда, когда имеются изменяющиеся входные сигналы. Такого рода описа- описание в математических терминах дано в гл. 4. Здесь мы можем
44 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Рис. 2.6.1. сделать небольшой шаг в этом направлении, рассмотрев случай, когда внешний сигнал появляется лишь время от времени. Внешний сигнал может вызывать переходы из одних состоя- состояний в другие, не допустимые диаграммой состояния при посто- постоянном (или отсутствующем) входном сигнале. Обычно машина будет перемещаться по состояниям внутри того или иного блока диаграммы состояний, соответствующей случаю отсутствия входного сигнала. Внешний сигнал может перевести машину в состояние, принадлежа- принадлежащее другому блоку (или же находящееся в другой удаленной части того же блока). Поскольку новое со- состояние зависит как от входного сигнала, так и от прежнего состояния, блок диаграммы, в который пе- перейдет машина, будет зависеть от конкретного состоя- состояния (а не от блока диаграммы) в предыдущий мо- момент. Каждый блок диаграммы состояний можно было бы рассматривать как отдельны блок программы, которую должна выполнять вычислительная машина. Если сигнал оставляет машину в том же блоке, то это можно "рассматривать как ука- указание продолжать вычисления или остановиться на этом блоке. Если сигнал меняет блок, то это соответ- соответствует переходу к новому блоку программы. Однако выбор блока можно рассматривать как сохране- сохранение машиной некоторой информа- информации о сигнале. При длительной работе машины невозможно запоминать ин- информацию в виде отдельных состояний, можно запоминать лишь различные блоки диаграммы состояний1). Например, счетчик четности (рис. 2.3.2) имеет диаграмму состояний, которая (при отсутствии сигнала 1) распадается на два блока. Появление на входе сигнала 1 всегда вызывает пере- перемещение из одного блока в другой (рис. 2.5.1). Если сигнал 1 не появляется, то машина может «помнить» свой блок сколь угодно долго. Машина, представленная на рис. 2.3.4, при наличии постоян- постоянного сигнала, например 0, имеет диаграмму состояний лишь с одним блоком, как это показано на рис. 2.5.2. Машина не спо- способна помнить что-либо из отдаленного прошлого: в ней не Рис 2.S.2. ') За исключением информации о фазе, которая может быть нужна, если имеется независимая система синхронизации.
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИИ 45 остается никакого следа того, что происходило более чем три момента тому назад. Когда входной сигнал изменяется довольно часто, то такой подход, основанный на рассмотрении блоков диаграммы состоя- состояний, не слишком полезен, так как сами блоки выделены в пред- предположении, что входной сигнал является постоянным. В этом случае нужно использовать методы анализа, подобные тем, ко- которые рассматриваются в гл. 4. 2.8. „ПРОБЛЕМА УМНОЖЕНИЯ" - ЗАДАЧА, КОТОРАЯ НЕ МОЖЕТ БЫТЬ РЕШЕНА НИКАКОЙ КОНЕЧНОЙ МАШИНОЙ Машина, которая описана в примере 5 разд. 2.3, предста- представляет собой конечный автомат, способный последовательно скла- складывать два двоичных числа произвольной длины. То, что на это способен отдельный автомат с конечным числом состояний, объ- объясняется следующим: во время сложения никогда нет необходи- необходимости выполнять «перенос» большого количества информации или запоминать его — в каждый момент достаточно выполнить перенос лишь одной цифры. Иное дело с умножением. В зависимости от размеров рас- рассматриваемых чисел во время процесса умножения может по- потребоваться переносить произвольно большое количество ин- информации. Чтобы дать-окончательный ответ, мы должны «накап- «накапливать частичные суммы». Докажем следующую теорему. Теорема. Никакая фиксированная машина с конечным числом состояний не может перемножать пары двоичных (или десятичных) чисел с произвольно большим числом разрядов1). Предположим, что имеется машина М, способная перемно- перемножать произвольно длинные последовательности, скажем, двоич- двоичных чисел. Как и в случае сложения (пример 5 разд. 2.3), будем предполагать, что числа подаются на вход последовательно цифра за цифрой, начиная с наименьшего значащего разряда. Пусть от машины М требуется выполнить относительно простое действие: умножить число 2П на само себя. В двоичной записи это число представляет собой единицу, за которой следует п ну- нулей. А произведение 2" на само себя в двоичной системе счисле- счисления записывается как единица, за которой следуют In нулей. Поскольку произведение имеет 2я + 1 разрядов, а каждое из сомножителей имеет п + 1 разрядов, то это означает, что после ') Разумеется, эта теорема относится к числам, представленным в любой системе счисления. — Прим. перев.
46 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ прекращения подачи сомножителей на вход машина должна вы- выдать на выходе еще п нулей, а затем единицу. Но после того, как прекратилась подача сигналов на вход, машина М должна функционировать как автомат с постоянным (нулевым) входом (разд. 2.4). Если М имеет меньше чем п со- состояний и способна выдать п нулей, то это может объясняться тем, что в ее диаграмме состояний имеется петля, обуслоьливаю- щая лишь нулевые выходные сигналы. Следовательно, машина должна постоянно выдавать на выходе нули и не может после 2и нулей выдать, как это требуется, единицу. Поскольку для любой конечной машины число п можно выбрать большим, чем число ее внутренних состояний, то не существует конечной ма- машины, способной перемножать числа произвольной длины. Мы обнаружили пример задачи, которая выходит за пределы возможностей любой конечной машины1). Очевидно, что в на- нашем случае это проистекает из конечности емкости памяти ма- машины. В части II мы рассмотрим другие задачи, которые не могут быть решены даже тогда, когда машина фактически имеет бесконечную емкость памяти. 2.7. ЗАДАЧИ Задача 2.7.1. Описать (словами) класс предыстории, представленных не- некоторым внутренним состоянием, в каждом из примеров этой главы. Задача 2.7.2. Каждый выходной сигнал — состояние выхода автомата — представляет класс эквивалентности предыстории. Эти классы могут быть не теми классами, которые представляются внутренними состояниями, хотя они и тесно связаны между собой. Какая предыстория представляется выходом О и 1 автомата, изображенного на рис. 2.7.1? Выходом 1? Задача 2.7.3. Показать, что никакая изолированная машина не может выдать на выходе бесконечной последовательности ' 101001000100001... 0я 1 0га+! 1 .... где 0" означает повторение нуля п раз. Задача 2.7.4. Почему нет необходимости включать в предысторию ма- машины H(t) предысторию ее выходных сигналов? Задача 2.7.5. Приведем здесь интересную задачу из книги Мура [69]. «Задача, известная как задача о синхронизации цепи стрелков, была поставлена примерно в 1957 г. Джоном Майхиллом, но, насколько я знаю, ее формулировка не была еще опубликована. Из устных сообщений о ней узнали многие, и задача вызвала столь большой интерес, что она заслужи- ') Приведенное здесь неформальное доказательство может показаться несколько неубедительным. Можно, дапример, предположить, что умножение можно осуществить, представив числа с другим порядком следования цифр или в какой-либо другой системе счисления. Но доказательство, основанное иа этой идее, может быть построено для каждого такого случая.
г. машины с конечным числом состоянии 47 вает того, что бы быть напечатанной. Задача впервые возникла в связи с не- необходимостью заставить включиться одновременно все элементы самовоспро- самовоспроизводящейся машины. Задача была впервые решена Джоном Мак-Карти и Марвииом Минским, и теперь, когда известно, что оиа имеет решение, даже люди без достаточных знаний в области теории логического синтеза или про- программировании для вычислительных машин обычно могут иайти решение за 2—4 час. Я просил бы знающих решение этой задачи ие подсказывать его тем, кто пытается решить ее самостоятельно, так как это может испортить удовольствие от столь захватывающей задачи. Рассмотрим конечную (но произвольно большую) цепь конечных машин; все эти машины одинаковы, за исключением машии на концах цепн. Машины называются солдатами, а одна из ма- машии иа конце цепи называется гене- Началь-1—^ j у—\ ралом. Машины синхронны, и состоя- иое со~/ ^ { \ ние каждой из иих в момент времени J^"' \—f* 0 г~г t + 1 зависит от собственного состоя- " иия и состояний двух соседних ма- машии в момент t. Требуется таким об- образом определить состояния и функ- функции переходов машии-солдат, чтобы генерал мог заставить их в точности в одно и то же время перейти в не- некоторое конечное состояние (т. е. за- заставить их одновременно произвести выстрел). Предполагается, что сиа- р чала (в момент / = 0) все солдаты ¦«•'.»• находятся в одном и том же состоя- состоянии — состоянии покоя. После того как генерал переводится в состояние, на- называемое «стреляй, когда будешь готов», он больше ие меняет своего состоя- состояния; все остальное делают солдаты. Сигнал может распространяться по линии со скоростью, ие большей чем одни солдат за единицу времени, и задача солдат состоит в том, чтобы скоордииировать действия. Трудность этой задачи связана с тем, что каждый отдельный солдат должен иметь фиксированное число К состояний, не зависящее от длины цепи стрелков. В частности, солдат с К состояниями должен правильно работать даже тогда, когда п много больше чем К. Грубо говоря, ии один солдат ие имеет права досчитать до числа п, равного длине цепи. Два автомата в цепи — генерал и наиболее удаленный от него солдат — могут отличаться от других солдат в связи с тем, 'что они должны быть спо- способны к действиям, не имея соседей с двух сторон. Однако их структура также не должна зависеть от п. При решеинн задачи удобно использовать миллиметровую бумагу, откла- откладывая по горизонтальной оси пространственные позиции машии-солдат, а по вертикальной — время. Каждую точку ((, /) можно пометить символом, ука- указывающим состояние i-ro солдата в момент /. Глядя иа распределение этих символов, можно составить представление о том, какими сигналами обмени- обмениваются солдаты. Можно легко показать, что любое решение задачи о синхронизации цепи стрелков должно удовлетворять ограничению, согласно которому время от момента, когда генерал отдает приказ, до момента выстрела должно быть ие меньше 2п — 2, где п есть число солдат. Большинство людей решает эту задачу таким образом, что для синхронизации требуется от Зп до 8п едиииц времени, хотя иногда давались н другие решения. Например, некоторые другие решения требовали —= п единиц времени или порядка п2 единиц вре- времени. До последнего времени было неизвестно, каково наимеиьщее возможное
48 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ время синхронизации. Эта оценка была получена в МТИ профессором Е. Гото из Токийского университета. В решении Гото используется очень остроумная конструкция, в которой каждый солдат имеет много тысяч состояний, а син- синхронизация достигается в точности за 2п—2 единиц времени. Ввиду того что это решение получить весьма трудно, более интересной задачей для начинаю- начинающих было бы попытаться иайти некоторое решение с временем синхронизации между 2п и 8п единиц времени. Такое решение, как было замечено выше, получить довольно легко». ПРИМЕЧАНИЯ 1. Специалисты в области вычислительной техники часто говорят о раз- различии между «цифровыми» и «аналоговыми» величинами. Под цифровой ве- величиной понимают величину, принимающую значения из некоторого фиксиро- фиксированного конечного множества, а под аналоговой — величину, принимающую значения в некоторой непрерывной области; такой величиной можно, напри- например, считать напряжение, снимаемое с резистора или конденсатора. Термин «аналоговая» пришел к нам из тех времен, когда большинство вычислитель- вычислительных устройств представляло собой электрические или механические приборы, предназначенные для аппроксимации дифференциальных уравнений, которые описывали непрерывные физические системы. Следовательно, можно было говорить об аналогии между поведением вычислительного устройства и физи- физической системы. В этом смысле мы строим нашу теорию на основе идей конечной, а не бесконечной (непрерывной) дифференциальной математики. В гл. 9 мы рассмотрим один способ объединения этих точек зрения. 2. Если бы нужно было рассматривать «аналоговое» устройство (см. примечание 1) и при этом игнорировать основные физические соображения о шуме, точности измерений и т. п., то пришлось бы рассматривать устрой- устройство с бесконечной памятью, подобное устройству, которое мы опишем ниже. Предположим, что устройство Е, показанное на рисунке снизу, представляет собой источник напряжения, который начиная с R бесконечно далекого прошлого времени выдает напряжение E(t}, такое, что для всякого целого / имеем E(t) — е,-, если / < t ^ / + 1, где е} есть либо О, либо 1. Предположим также, что R и С таковы, что, когда E(t)=O, заряд С уменьшается иа половину своей величины за единицу времени. Тогда при любом целом значении времени to напряжение на С будет определяться вы- выражением оо 2 Е (t0 - k) 2~\ fe=0 так что, измеряя напряжение с бесконечной точностью и представляя его как двоичную дробь, можно получить информацию о бесконечно далеком прош- прошлом. Мы не хотим делать столь абсурдных с физической точки зрения пред- предположений, поэтому строим нашу теорию на основе существенно конечных составных частей. В дальнейшем мы расширим некоторые наши построения и на бесконечный случай, но при этом будем применять другой подход. Более глубокий анализ этих вопросов содержится в гл. 5.
2. МАШИНЫ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИИ 49 3. Тот факт, что мы можем построить автомат-задержку с одним лишь состоянием, а именно G «I Яа F «0 <7о Го Т\ свидетельствует о том, что есть что-то неестественное в способе, которым мы определили выходную функцию. В действительности мы моглн бы пере- переформулировать теорию так, чтобы выход в момент t + 1 зависел лишь от состояния в момент t + 1. Можно также определить выход таким образом, чтобы он зависел лишь от состояния автомата в момент t. Такие подходы привели бы к одинаковым результатам, но каждый из них имеет свои пре- преимущества и недостатки. Наш способ определения был выбран, исходя нз соображений наибольшей простоты построений, используемых в гл. 3 и 4. 4. По-видимому, большинство читателей знакомо с двоичной системой счисления. Точно так же, как в десятичной системе, число 3065 означает ЗХ 1000 + 0 X 100 + 6 X Ю + 5 X 1. число 1011 в двоичной системе означает 1 X 23 + 0 X 22 + 1 X 2' + 1 X 2°, или 8 + 2 + 1 = 11. Правило сложения двоичных чисел подробно описано в разд. 3.2.6. Сло- Сложение двоичных чисел выполняется точно так же, как и десятичных, за ис- исключением того, что при сложении 1 + 1 сумма равна 10, т. е. нужно иапи- сать 0 и перенести единицу. Таким образом, 45 10 110 1 + 57 _ +111001 102 1 1 6 0 I 1 0 где звездочками помечены «переносы». Двоичное умножение (используется в разд. 2.6) выполняется аналогично десятичному путем повторного сложения или лучше путем сложения со сдвигом: X 11 1011 101 55 1011 + 0000 ' + 1011 110111 Почти всякое введение в вычислительную технику должно содержать све- сведения о двоичной арифметике; мы будем использовать ее только в примерах.
НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ, СОСТАВЛЕННЫЕ ИЗ ЭЛЕМЕНТОВ 3.0. ВВЕДЕНИЕ Подход к машине как к черному ящику (разд. 2.1) оправды- оправдывает себя в том случае, когда мы вполне понимаем ее внешнее поведение и не интересуемся тем, что происходит внутри нее. В противном случае структуру машины нужно рассматривать более детально путем изучения ее элементов и соединений ме- между ними. Разобравшись в полной мере в том, что представ- представляет собой элемент и как он взаимодействует с другими эле- элементами, мы имеем возможность понять и организацию машины в целом. Машины, рассматриваемые в этой главе, выполнены из чрез- чрезвычайно простых элементов. По существу каждый элемент пред- представляет собой не что иное, как очень простой автомат с двумя состояниями. Соединения между автоматами также весьма про- просты. Но из очень небольшого «семейства» таких простых эле- элементов мы можем составить устройство, эквивалентное любой из конечных машин. В качестве наших элементов будем использовать элементы, которые были определены Мак-Каллоком и Питтсом [54] и ис- использовались для моделирования некоторых сторон деятельности мозга. Нужно отчетливо понимать, что ни Мак-Каллок и Питтс, ни автор этой книги не рассматривают эти устройства и машины как точную модель нервных клеток или волокон. Не это имелось в виду при их построении. Они созданы для представления и анализа логики ситуаций, возникающих в любом дискретном процессе, будь то головной мозг, вычислительная машина или что-либо еще. В теориях, более серьезно претендующих на то, чтобы служить моделью мозга, «нейроны» должны быть гораздо сложнее. Реальные биологические нейроны значительно сложнее наших простых логических ячеек, поскольку эволюция нервных клеток привела к очень сложным и специализированным орга- органам [1*]. Здесь же «клеток» или «нейронов» Мак-Каллока и Питтса вполне достаточно для нашей цели, которая состоит лишь в том, чтобы показать, как, исходя из набора очень про- простых элементов, можно получить машины любого вида. В соот-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 51 ветствии с названием элементов машины, построенные из «ней- «нейронов» Мак-Каллока и Питтса, называются обычно нейронны- нейронными сетями. 3.1. „НЕЙРОНЫ" МАК-КАЛЛОКА И ПИТТСА Наши машины будут построены путем соединения некоторых базовых ячеек, называемых «нейронами». Каждый нейрон будем представлять на схеме кружочком вида Из каждого нейрона выходит одна линия, или провод, назы- называемая аксоном нейрона. Аксон (выходное волокно), выйдя из нейрона, может разветвляться, причем каждая его ветвь должна а ь а ъ а Ь с d • а Ь а Ъ а — b — С ! Мажоритарный элемент а Ь с или Задержка а — Ь — а и не b а — Ь — с — d — е —I Мажоритарный а а Ь, но не с а не d элемент Рис. 3.1.1. Некоторые типы ячеек Мак-Каллока — Питтса. заканчиваться на входе другого (или, может быть, того же са- самого) нейрона. Допускаются два типа окончаний. Одно, назы- называемое возбуждающим входом, представляется на схемах ма- маленькой черной стрелкой. Другое, называемое тормозящим вхо- входом, отображается маленьким кружочком на конце линии: —о Мы будем считать, что допустимо любое число входов в ячейку. На рис. 3.1.1 показаны некоторые типовые конфигурации ячеек с их названиями, смысл которых станет ясен из последующих разделов этой главы1). ') Условные обозначения, используемые нейрофизиологами, могут уди- удивить каждого, кто обнаружит, что иа cxeiue, изображенной внизу, сигналы
52 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Мы будем строить более сложные машины путем соединения ячеек так, чтобы они образовывали «нейронную сеть». Един- Единственное ограничение, налагаемое на конфигурацию таких сетей, состоит в том, что, допуская возможность ветвления выходного волокна на сколь угодно большое число входов других ячеек, мы не допускаем того, чтобы выходные волокна с различных ячеек объединялись друг с другом. Чтобы увидеть, какие конфигура- конфигурации допускаются, достаточно взглянуть на иллюстрации к этой главе. Каждая ячейка представляет собой машину с конечным чис- числом состояний и в соответствии с этим функционирует в дискрет- дискретные моменты времени. Предполагается, что моменты синхронны для всех ячеек. В каждый момент ячейка либо возбуждена, либо находится в покое — это два возможных состояния ячейки. Ка- Каждому из этих состояний сопоставляется выходной сигнал, пере- передаваемый по ветвям выходного волокна ячейки. Эти сигналы удобно представлять как короткие всплески или импульсы, очень быстро распространяющиеся вдоль этого волокна. Поскольку каждая ячейка имеет лишь два возможных состояния, еще более удобно считать, что в возбужденном состоянии на выходе возни- возникает импульс, в то время как в состоянии покоя импульс отсут- отсутствует. (Можно считать, что «импульс отсутствует» — это назва- название сигнала, соответствующего состоянию покоя.) Ячейка изменяет свое состояние в зависимости от импульсов, поступающих на ее входы. В середине кружка, обозначающего ячейку, записано число, называемое порогом этой ячейки. Порог определяет условия изменения состояний ячейки С следующим образом. В любой момент t имеется некоторое распределение актив- активностей волокон, заканчивающихся на ячейке С. Мы не прини- принимаем во внимание волокон, находящихся в этот момент в покое, и проверяем прежде всего, нет ли среди возбужденных входов тормозящих. Если один или более тормозящих входов возбужде- возбуждены, то ячейка С в момент t + 1 не возбудится. Если же ни одни тормозящий вход не возбужден, то мы подсчитываем число воз- возбуждающих входов, на которые приходят импульсы. Если это распространяются слева направо, а не наоборот. Трудно вообразить, что су- существует дисциплина, в которой стрелки указывают направления тупыми концами. Вообще говоря, это связано с попыткой хотя бы упрощенно отобра- отобразить внешний вид нервных клеток в некоторых нервных системах. Я не смог заставить себя покориться традиции н отказался от распространения этого вводящего в заблуждение обозначения. <¦
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 53 a b с 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1 Сигналы на входных волокнах ^\ ^\ \ \^ \^ ^^ ^\^\ ^\ 0 fc-/"^ ft —**^B с —>vF a ^-^ ft^(!^~~ °ft=s<e>- 0 »-/-^ c —»-V^ о ^/"^ A —*¦ П ^B—- с —¦¦ >J^ a —о(оИ 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 o- 0 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 0 Сигналы на выходных волокнах Рис. 3.1.2. Поведение некоторых ячеек (столбцы, соответствующие реакции ячеек, сдвинуты с целью иллюстрации того, что всегда имеется задержка). число больше или равно порогу ячейки С (число в кружке), то в момент t + 1 ячейка С возрудится. Другими словами: ячейка возбудится в момент времени t + 1 в том и только в том случае, когда число активных возбуждаю- возбуждающих входов равно или превышает порог и при этом не возбу- возбужден ни один тормозящий вход. Так, например, ячейка с поро- порогом 1 возбудится, если будет активен любой из возбуждающих входов и не будет активен ни один тормозящий вход. Для того чтобы в следующий момент возбудилась ячейка с порогом 2,
54 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ нужно, чтобы в данный момент были активны по крайней мере два возбуждающих входа и при этом не был активен ни один тормозящий вход. Ячейка с порогом 0 будет возбуждена всегда до тех пор, пока не придет импульс на тормозящий вход. На рис. 3.1.2 показано поведение некоторых ячеек описанного типа. ЗАМЕЧАНИЯ 1. Читатель, очевидно, заметил, что состояние ячейки в мо- момент t + 1 не зависит от ее состояния в момент t. Таким обра- образом, рассматриваемые нами «нейроны» в действительности очень просты. Одно из важных свойств реальных нейронов состоит в том, что существует промежуток времени (называемый периодом рефрактерности), в течение которого нейрон, будучи однажды возбужденным и придя затем в состояние покоя, не может воз- возбудиться вновь. Так что в действительности наблюдается зави- зависимость от предыдущего состояния. Однако, как мы увидим (разд. 3.6), такое поведение легко «моделировать» с помощью группы ячеек Мак-Каллока — Питтса. 2. «Торможение» здесь является абсолютным в том смысле, что единственный тормозящий сигнал может блокировать реак- реакцию ячейки на сколь угодно сильное возбуждение. С тем же успехом мы могли бы использовать другую систему, в которой ячейки возбуждаются в том случае, когда разность между чис- числом активных возбуждающих входов и числом активных тормо- тормозящих входов превосходит порог. Это эквивалентно тому, что тормозящие сигналы повышают порог. Сам Мак-Кдллок [56] для некоторых целей использовал и такую модель. 3. Задержки. Мы предполагаем, что задержка выходного сигнала по отношению к входному имеет стандартную, одинако- одинаковую для всех элементов величину. В ряде случаев, как, напри- например, в работах Бёркса и Ван Хао [7] и Копи, Эльгота и Райта [12], оказалось полезным отделить зависимость от времени от других «логических» характеристик ячеек и ввести наряду с логическими ячейками с мгновенным ответом специальные ячейки, задерживающие сигнал. Применение логических ячеек с мгновенным ответом заставляет ввести ограничения на те спо- способы, которыми элементы могут быть соединены друг с другом (чтобы не получились сети, соответствующие логическим пара- парадоксам). Мы не будем рассматривать этих вопросов и лишь крат- кратко остановимся на них в разд. 4.4.1. 4. Математическое описание. В основополагающей работе Мак-Каллока и Питтса [54] свойства и взаимодействие ячеек математически описывались с помощью выражений «временного исчисления высказываний». Поскольку большинство наших рас-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 55 суждений может основываться на соображениях здравого смыс- смысла, нам не кажется, что нужно использовать здесь этот матема- математический аппарат. Разумеется, каждому, кто намеревается про- проектировать ложные логические сети или вычислительные маши- машины, нужно научиться применять соответствующие современные математические методы. По соображениям, которые рассматри- рассматриваются в примечании 3 гл. 4, статья Мак-Каллока и Питтса рекомендуется не столько из-за изложенного в ней метода опи- описания сетей, сколько из-за ее содержания, имеющего в равной степени философский и технический характер. 3.2. МАШИНЫ ИЗ НЕЙРОНОВ МАК-КАЛЛОКА - ПИТТСА В этом разделе мы покажем, как можно подойти к конструи- конструированию некоторых полезных, но более сложных машин, исполь- используя небольшое число различных видов нейронных сетей. Наша цель будет состоять в том, чтобы набрать достаточное число устройств, из которых можно было бы построить универсальную вычислительную машину. 3.2.1. Задержки В примерах 1, 3 и 4 разд. 2.3 были даны структуры диаграмм состояний автоматов, которые запоминали и выдавали на выходе сответственно последние один, два и три поступивших на вход двоичных сигнала. На рис. 3.2.1 изображены автоматы, реали- реали5 Рис. 3.2.1. Сети, осуществляющие задержку сигнала. зованные сетями и выполняющие в точности те же самые функ- функции. (Ср. с рис. 2.3.1, 2.3.3, 2.3.4.) Поведение этих сетей описы- описывается уравнениями = S(t-2), = S(t-3) соответственно.
56 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Заметим, что, в то время как машина, описанная в разд. 2.3, требовала для запоминания п двоичных цифр 2П состояний, рас- рассматриваемые здесь машины требуют п ячеек. Правда, машина, реализованная сетью из п элементов, фактически и имеет 2П со- состояний, так как каждая ячейка может находиться в двух со- состояниях, а для того, чтобы получить общее число состояний сети, нужно перемножить числа возможных состояний всех ячеек. Отсюда сразу же становятся ясными две причины, по кото- которым, исследуя сложные машины, мы переходим от диаграмм со- состояний к сетям из отдельных элементов. Во-первых, диаграммы становятся слишком громоздкими, поскольку их размеры ра- растут по степенному закону с ростом числа различных объектов или сигналов, которые должна помнить машина. Во-вторых, де- деление на элементы, а не на состояния делает схемы более содер- содержательными, по крайней мере в том отношении, что различные аспекты поведения определяются поведением отдельных физи- физических элементов машины. 3.2.2. Вентили и кеммутатеры. Управление потоком информации Предположим, что мы хотим управлять потоком сигналов или информации из одного места в другое (рис. 3.2.2). Инфор- Информация распространяется по заранее установленному каналу, и Передатчик Приемник Рис 3.2.2. мы хотим управлять ее потоком с помощью сигналов, которыми мы располагаем. Введем в каждое волокно ячейку с порогом 2, т. е. ячейку типа И (рис. 3.2.3). В схеме на этом рисунке исполь- использованы три волокна, с тем чтобы показать, что мы можем одно- одновременно оперировать с любым числом волокон. Мы можем по- посылать последовательность импульсов по «управляющему» или «разрешающему» волокну в течение любого промежутка вре- времени, когда хотим, чтобы происходило движение информации. До тех пор пока действуют управляющие импульсы, на выход- выходные волокна будут поступать те же сигналы, что приходят на их входы (верхние); если управляющие импульсы отсутствуют, то выходные сигналы не появляются.
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 57 Введение ячеек типа И в канал передачи информации при- приводит к задержке передаваемых сигналов на одну единицу вре- времени. Этого можно избежать, применяя стробирования без за- задержки путем прерывания каким-либо способом передачи ин- информации по волокну. Это можно осуществить (как, например, Входы ¦ ¦ Выходы Управляющее волокно Рис. 3.2.3. Рептильная сеть (разрешающего типа). в работе Мак-Каллока [56]) введением тормозящего нервного волокна, окончание которого охватывает проводящее волокно, как это показано на рис. 3.2.4. Однако в наши намерения не вхо- входит введение элементов с мгновенным ответом. Рис. 3.2.4. Управляющее вол окно Рис. 3.2.5. Вентильная сеть (тормо* зящего типа). Среди семейства ячеек, которыми мы разрешаем себе поль- пользоваться, есть и такие, которые позволяют использовать для управления потоком информации эффект торможения. Сеть та- такого типа показана на рис. 3.2.5. Здесь информация проходит лишь тогда, когда управляющее волокно не возбуждено. В схеме
58 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Управляющее волокно Рис 3.2.6. Устройство переключения. с «подкреплением» (если использовать нейрофизиологический термин), показанной на рис. 3.2.3, информация проходит только тогда, когда управляющее волокно возбуждено. Рассмотрим теперь сеть, в которой используются вентили как с торможением, так и с подкреплением (рис. 3.2.6). Когда управляющее волокно не возбуждено, сигналы возбуждают ячейки с порогом 1 (ячейка типа ИЛИ) и информация прохо- проходит в приемник 1. При этом ячейки с порогом 2 не возбуждают- возбуждаются. Когда управляющее волокно возбуждено, ячейки И передают сигналы на приемник 2 точно так же, как это показано на рис. 3.2.3. Все ячейки ИЛИ теперь «заторможены», и ни один сигнал не поступает на приемник /. Таким образом, активация управляющего волокна приводит к изменению состояния двух- позиционного трехполюсного переключателя, стоящего между передатчиком и двумя приемниками. 3.2.3. Память Описанная выше система управления не очень удобна, по- потому что оператор должен продолжать посылать управляющие импульсы на протяжении всего промежутка времени, в течение
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 59 которого требуется пропускание сигнала. Сеть, показанная на рис. 3.2.7, позволяет оператору начать передачу информации сигналом «запуск» и закончить ее сигналом «останов»; в течение же всего периода передачи со стороны оператора никакого вме- вмешательства не требуется. Основная идея здесь заключается в использовании волокна «обратной связи», которое ответвляется от выходного волокна ячейки и заканчивается возбуждающим входом «а той же самой ячейке. Будучи однажды возбужденной {сигналом, поступаю- поступающим с волокна «запуск-»), эта ячейка будет продолжать воз- возбуждаться во все последующие моменты до тех пор, пока она не будет остановлена сигналом с тормозного волокна «останов». *^- В течение периода активности ячейка будет посылать импульсы на вентильную ячейку и разре- шать прохождение информации. Эта небольшая сеть имеет не- некоторую память. Она помнит, был ли получен сигнал «останов» после того, как в последний раз Рис 3.2.7. Вентильная сеть с па- был получен сигнал «запуск». мятью. Рассмотрим кратко, сколь слож- сложные события могут «запоминаться» или «представляться» вну- внутренними состояниями этой сети. Легко видеть, что в наших сетях более или менее постоянная память любого вида должна зависеть от наличия замкнутых путей, путей «обратной связи». В противном случае при отсут- отсутствии внешнего подкрепления активность вскоре погасла бы и все ячейки оказались бы в состоянии покоя. Тогда не осталось бы совсем никакого следа от того, что случилось в отдаленном прошлом. Фактически это справедливо и при наличии внешних сигналов любого рода, хотя это и не так очевидно в настоящий момент. Внутреннее состояние сети без «петель» или «циклов» может зависеть лишь от внешних сигналов, которые поступали на протяжении отрезка времени, заканчивающегося настоящим моментом. Этот отрезок времени ограничен протяженностью наи- наиболее длинного пути в сети. В сети с циклами не существует ограничения на время, в течение которого информация хранится в памяти. Здесь имеется еще одно отличие наших ячеек от биологиче- биологических нейронов. Очевидно, что в мозге не вся информация сохра- сохраняется в форме такой «динамической» циркуляции. Неизвестно, в какой степени важна такая циркуляция, или, как ее часто на- называют, реверберация [3*].
60 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Хотя динамическая память — единственный способ запомина- запоминания, который возможен в сетях из ячеек Мак-Каллока — Питтса, мы могли бы с самого начала ввести в рассмотрение компонен- компоненты, способные осуществлять функцию «статической» памяти, на- например устройства, эквивалентные магнитным сердечникам, клю- ключевым схемам или триггерам. В следующем разделе мы пока- покажем, как можно моделировать эти устройства сетями из рас- рассматриваемых нами элементов. 3.24. Схемы пересчета на 2 Другим видом сетей с памятью являются схемы пересчета на 2, которые выдают на выходе импульс после каждых двух импульсов на их входе. Во многих вычислительных машинах Запуск Выход Рис. 3.2.8. Неполный двоичный счетчик. Рис. 3.2.9. Диаграмма со- стояияй сети, представленной на рис. 3.2.8. подобные устройства служат основой для выполнения счета и других арифметических операций. Сеть, показанная на рис. 3.2.8, представляет собой простейшую сеть с указанным поведением. Первый импульс на входе переводит ячейку А в режим ци- циклического возбуждения. Второй импульс, появившийся через некоторое время, возбудит ячейку В. Возникший в результате этого импульс поступает по волокну у на тормозящий вход ячей- ячейки Л и гасит ее циклическое возбуждение. В то же время на выходном волокне В появляется импульс, свидетельствующий о том, что на вход поступили два импульса. Схема возвращается в исходное состояние «ожидания». Таким образом, счетчик делит число поступающих на вход импульсов на два. Заметим, что схе- схема, показанная на рис. 3.2.7, является частью схемы рис. 3.2.8. Однако такая простейшая схема не станет работать так, как это описано выше, если входные импульсы разделены слишком малым интервалом, а именно поступают в соседние моменты. Бо-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 61 лее отчетливо это можно увидеть, нарисовав диаграмму состоя- состояний данной машины (рис. 3.2.9). Машина состоит из двух элементов — ячейки А и ячейки В. Каждая из ячеек имеет два состояния, так что всего имеются четыре общих состояния автомата. Два возможных значения входного сигнала «импульс» и «нет импульса» представляются единицей и нулем соответственно. Оказывается, что четвертое состояние никогда не возникает — ни одна стрелка на диаграмме состояний не ведет в него. Названия состояний указывают, какие ячейки возбуждены. Поскольку событие «возбуждена одна ячейка В» никогда не Вход Запуск Выход Сброс < Четные еВиницы Нечетные единицы Рис. 3.2.10. Улучшенный вариант Рис 3.2.11. Диаграмма состояний двоичного счетчика. схемы, представленной на рис. 3.2.10. реализуется, мы представили его пунктиром. Выходной сигнал появляется лишь тогда, когда порисходит переход из состояния АВ. Наше устройство имеет тот недостаток, что при переходе из состояния АВ в состояние ожидания машина не реагирует на входные сигналы. Если в этот момент на входе появится им- импульс, то он будет пропущен при счете. Это может произойти лишь в том случае, когда только что перед этим появился им- импульс, обусловивший переход из (а) в ^; следовательно, все импульсы, разнесенные более чем на одну единицу времени, бу- будут сосчитаны. Несколько более сложная сеть с тремя ячейками представлена на рис. 3.2.10'). Глядя на ее диаграмму состояний (рис. 3.2.11), можно убедиться, что схема будет работать всегда. Эта схема отличается от первой лишь наличием дополнительной ячейки С, которая распознает и устраняет ситуацию, при которой ') Мы предусмотрели дополнительный канал «сброо для принудитель- принудительного возвращения устройства в исходное состояние. Использование этого канала будет описано в следующем разделе.
62 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ происходил пропуск в счете. (Теперь имеется восемь возможных состояний, причем лишь четыре из них могут быть реализованы.) Убедиться в этом чрезвычайно просто: нечетное число единиц всегда переводит машину в нижнюю половину диаграммы со- состояний, четное число единиц переводит ее в состояние @, вы- выходной импульс появляется в точности в тот момент, когда ма- машина выходит из состояния @, т. е. каждый раз после посту- поступления четного числа единиц. 3.2.5. Счетчики Двоичное пересчетное устройство, описанное в предыдущем разделе, можно рассматривать как простейшее счетное устрой- устройство, способное считать до 2. Простыми способами мы можем Вход Сброс J Пересчет на 2 I ? В ¦¦ Выход Рис. 3.2.12. Схема пересчета на 2К. построить сети, которые будут выдавать на выходе один импульс на каждые М входных импульсов, где М есть любое заданное число. Посмотрим, что произойдет, если мы последовательно соединим ряд двоичных пересчетных схем так, что выход каждой схемы будет подключен ко входу следующей (рис. 3.2.12). На этом рисунке схемы пересчета на 2 представлены прямоугольни- прямоугольниками, каждый из которых имеет два входа — для импульсов и для сигнала сброса — и два выходных канала из ячеек А к В сети, которая была описана перед этим. На выходе ячейки В по- появляется один импульс на каждую пару входных импульсов. Ячейка А остается в состоянии покоя после прохождения четного числа входных импульсов, но (обычно) возбуждается после прохождения нечетного числа таких импульсов1). Если мы со- соединим К таких пересчетных схем цепочкой, то получим схему, которая может считать до 2К и затем начинать сначала. Возбу- Возбудив общий для всех каскадов вход «сброс», мы можем в любое время начать счет сначала. Как построить схему, способную считать до числа, не рав- равного степени двойки? Мы можем применить прием, в котором ') См. задачу 3.2.2,
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 63 используется представление числа в двоичной системе счисления. Пусть, например, М = 13. Тогда Л1 = 8 + 4 + 1 = 1101 в двоич- двоичной форме. Пусть Т есть число единиц среди цифр двоичного числа. Возьмем одну ячейку с порогом, равным Т (в нашем слу- случае 3), и подадим на возбуждающие входы этой ячейки выход- выходные сигналы с ячеек А тех пересчетных схем, которые соответ- соответствуют единицам в двоичной записи М (рис. 3.2.13). Вообще говоря, после появления Л1-го импульса будут возбуждены вы- выходы ячеек А как раз тех каскадов (пересчетных схем), которые соответствуют единицам в двоичной записи числа М. Ячейка с Вход- 1_ J Рис. 3.2.13. М-ичный счетчик (Л1 = 13). порогом Т возбудится только тогда, когда все выходы соответ- стующих ячеек А окажутся возбужденными, т. е. при появлении Л1-го импульса. Когда это произойдет, через линию*возбудится цепь сброса. Таким образом, счетчик будет снова начинать счет после каждой группы из М импульсов. Если выполнить указан- указанные соединения, вся схема превратится в Л1-ичный счетчик. Задача. Почему не нужно подавать тормозящих воздействий на выход- выходную ячейку от других каскадов счетчика? Если импульсы поступают на схему слишком часто, то мы снова сталкиваемся с временными проблемами. Правильное функционирование безусловно гарантируется лишь в случае, если импульсы отстоят друг от друга на К единиц времени, где К — число каскадов пересчета на 2 в цепи. В противном случае существует вероятность того, что верхняя (на схеме) ячейка не сработает. Трудность заключается в том, что имеются неустой- неустойчивые переходные состояния, во время которых выходные сиг- сигналы каскадов цепочки (снимаемые с ячеек А) не соответствуют двоичному представлению числа входных импульсов, поступив- поступивших до рассматриваемого момента. Эти состояния возникают
64 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ тогда, когда по цепи распространяются сигналы «переноса». К счастью, эти переходные состояния никогда не соответствуют числам, которые могли бы вызвать ложное срабатывание верх- верхней ячейки (читатель может проверить это самостоятельно). По- Поэтому верхняя ячейка не может быть возбуждена в те моменты, когда этого не должно быть. Но счет может «проскочить» чис- число М, пока распространяется перенос, и верхняя ячейка может пропустить время, когда она должна сработать. Этого не случит- случится, если входные импульсы так разнесены во времени, что схема имеет возможность «устанавливаться» между каждыми двумя входными импульсами. ПРИМЕР Рассмотрим трехкаскадный счетчик, подобный тому, который изображен на рис. 3.2.12. В табл. 3.2.1 показаны состояния ячеек Таблица 3.2.1 Сигнал Ai Bl A2 Bt A3 Въ Число Должно быть 1 0 0 0 0 О 0 О 0 О 1 0 0 0 О О 1 1 1 1 О О 0 О О 1 1 О 1 1 О О О О 1 2 1 0 О 1 О О О 2 2 О 1 О 1 0 О О 3 3 1 1 О 1 0 О О 3 3 О 1 1 1 О О О 3 4 1 О О 1 1 О О 2 4 О 1 О О О 1 О 5 5 1 1 О О О 1 0 5 5 О 1 1 О О 1 О 5 6 1 О О 1 0 1 О 6 6 О 1 О 1 О 1 О 7 7 1 1 О 1 О 1 О 7 7 •• 1 1 1 О 1 О 7 8 О 1 1 1 О •• О О 1 1 • 0 ... о о ... О 0 О... A—возбуждена, 0 — в покое) в ответ на входную последова- последовательность, заданную в верхней строке. «Число» есть десятичный эквивалент А\ + 2Д2 + 4Л3 двоичного числа, появляющегося в соответствующие моменты на выходах ячеек А. Заметим, что на выходах А никогда не появляется число 4. Это объясняется тем, что единицы входной последовательности недостаточно разнесе- разнесены во времени (поскольку К = 3) и новый импульс приходит в
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 65 тот момент, когда схема переходит от 3 к 4. Тем не менее сеть в целом в действительности никогда не «теряет счет» и при от- отставании быстро «догоняет». Другой вид счетчика, гораздо более простой по своей идее, но менее эффективный с точки зрения использования ячеек, изо- изображен на рис. 3.2.14. Этот счетчик можно было бы в отличие от двоичного назвать единичным — его работа напоминает счет на пальцах без применения какой-либо системы счисления, осно- основанной на позиционной записи чисел. В рассматриваемой схеме Вход Л Л Выход Рис. 3.2.14. Единичный счетчик. возбуждение с появлением на входе каждого очередного импуль- импульса продвигается на одну ячейку вперед по цепи. Когда возбу- возбуждение достигнет конца цепи, появляется выходной импульс, ко- который возвращает всю схему в исходное состояние. (В этот момент счетчик может пропустить в счете один импульс. Этот недостаток, как обычно, может быть устранен путем введения до- дополнительной ячейки.) Теперь для того, чтобы досчитать до М, требуется М ячеек вместо log2Af, т. е. много больше, чем при использовании двоичных пересчетных схем. Для того чтобы оце- оценить это различие, достаточно подсчитать, что log21000 равен примерно 10,a Iog21000000 — примерно 20 и т.д. Вспомните со- соображение, высказанное в разд. 3.2.1. Здесь мы используем це- целую ячейку для каждого состояния двоичного автомата. Задача 3.2.1. Проверить справедливость утверждения, что Л1-ичный счет- счетчик, описанный в этом разделе, ие может выдать ложного сигнала иа выхо- выходе из-за распространения переноса, ио может пропустить выдачу выходного сигнала. Это довольно сложная задача. Задача 3.2.2. Утверждение, что волокно А всегда возбуждается после прохождения нечетного числа импульсов, неверно, поскольку в состоянии /pS в волокне Л| импульс не возникает. Можно ли это исправить без увеличения общей задержки схемы? Этот дефект не,должен влиять иа кон- струкцию, язображенную иа рис. 3.2.13, поскольку сигнал на ячейку, опреде- определяющую число М, можно с тем же успехом подать с ячеек С, а ие с ячеек А. Задача 3.2.3. Построить /Vf-ичный счетчик, который не делает пропуска в счете при любых обстоятельствах. Это очень сложная задача. (Обратите 3 М. Миискив
66 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ внимание на то, что даже недвоичный счетчик, показанный на рнс. 3.2.14, может пропустить нмпульс в счете в момент сброса. Помните об этом!) Ясно, что трудности устраняются, когда мы можем быть уверены, что сигналы в достаточной степени разделены во времени. Трудности возникают при по- попытке выполнять сложные операции во времена, соизмеримые с временем задержки отдельных элементов. К каким только ухищрениям не прибегают проектировщики вычислительных машин, чтобы обойти задержки, связанные с распространением переноса, без которого, по-внднмому, не обойтись прн выполнении арифметических операций! Ряд таких методов описан в некото- некоторых статьях, опубликованных в журнале «Proceedings of the Institute of Radio Engineers», 39 (Jan. 1961) (есть русский перевод: «Труды Института радиоинженеров», 39, январь 1961). 3.2.6. Устройство для выполнения арифметических операций Интересно отметить, что сложение двух сколь угодно боль- больших чисел, представленных последовательным двоичным кодом, может быть выполнено очень простым устройством. Диаграмма состояний такой машины была дана в разд. 2.3 (рис. 2.3.5). (За- (Заметим, что, за исключением случая, когда слагаемые предста- представлены так, что наименьшая значащая цифра следует впереди, ни один конечный автомат не может выполнить такого суммиро- суммирования, поскольку значение каждого разряда суммы зависит от всех входных разрядов меньшего порядка. Цифра старшего раз- разряда не может быть найдена до тех пор, пока нет цифр младших разрядов слагаемых. Если бы таким путем складывались про- произвольно большие числа, то потребовалась бы неограниченная память.) Пусть Аг и В, есть t-й разряд слагаемых1), и пусть St есть- t-й разряд суммы. Тогда So равен сумме по модулю 2 чисел Ао в Во, т. е. равен 1 или 0 в зависимости от нечетности или четности Ао + Во соответственно. Но старшие разряды суммы, как и при десятичном сложении, зависят не только от цифр в соответствую- соответствующих разрядах слагаемых, но и от того, имелся ли перенос с пре- предыдущего разряда. Пусть С* принимает значение соответственно 1 или 0 в зависимости от того, был или не было переноса из (i—1)-го разряда. Разумеется, Со = 0. Тогда правила двоичного сложения таковы: {1, если (At + Bt + Ct) — нечетное число, 0, если (At + В,- + Ct) — четное число, Q+i — [, если (At + Bi + Ci) равно или больше 2, ), если (Ai + В^С^ равно или меньше 1. ') Так что Ао есть наименьшая значащая цифра.
8. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 67 Обратите внимание на то, что эти правила абсолютно симме- симметричны относительно Ait В* и С*. Схема на рис. 3.2.15, реализующая оба эти правила, содер-. жит шесть ячеек. Выходной сигнал задерживается относитель- относительно входных на три единицы времени. Ячейка с порогом 2 выдает Возбуждается при овном или более импульсах на входе схемы Возбуждается только при одном импульсе на входе схемы дуждается при двух или более им-, пульсах на входе. SU-3) Возбуждается только при трех импульсах на входе схемы (используется лишь как. pp импульсах на входе схемы Рис. 3.2.15. Схема, осуществляющая последовательное двоичное суммирование. сигнал перенеса в следующий разряд. Обратите внимание на то, что выходной сигнал ячейки с порогом 2 представляет собой перенос на следующую разрядную позицию и что схема симме- симметрична относительно входных сигналов и сигнала переноса. (Но Рис. 3.2.16. обратите также внимание и на то, что в этом случае диаграмма состояния несколько проще, чем для соответствующей наилуч- наилучшей сети Мак-Каллока — Питтса, которую только можно изо- изобрести. Здесь мы имеем дело с «машиной», которую уже нельзя так легко разделить на отдельные части.) Если бы мы использовали «вычитающееся торможение» [2*] так, что тормозящий сигнал увеличивал бы на единицу вели- величину порога, то для суммирования можно было бы применить изящную схему, показанную на рис. 3.2.16, откуда видно, какую
68 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ значительную экономию можно получить при использовании так называемой «пороговой логики» с вычитанием. Сложение в системе, отличной от двоичной системы счисле- счисления, выполняется несколько сложнее, но в принципе так же. Умножение может быть выполнено путем последовательных сло- сложений, как это делается в настольных счетных машинах. Заме- Заметим, однако, что при умножении зависимость от результатов пре- предыдущих вычислений не выражается одной цифрой переноса: необходимо каким-то образом предусмотреть место в памяти машины для накопления частичных сумм. Требуемое место для запоминания должно неуклонно расти с ростом величины мно- множителя, так что, как мы установили в разд. 2.5, для любой дан- данной машины имеются ограничения на диапазон чисел, с кото- которыми машина может оперировать. Вычитание и деление, грубо говоря, аналогичны сложению и умножению соответственно, хотя при делении возникают некоторые дополнительные сложности. Задача 3.2.4. Предполагая, что одно из двух чисел ограничено по вели- величине, показать, что для каждой такой границы можно построить конечное число, которое будет умножать любое число, находящееся в заданных пре- пределах, иа любое, произвольно большое, число, представляемое разряд за раз- разрядом. Показать, что если N есть верхняя граница числа цифр, то для вы- вычисления каждой цифры произведеиия требуется запоминать не больше чем N цифр предыдущих результатов. Сколько в точности потребуется битов па- памяти? ЗЛ. ДЕШИФРАТОРЫ И ШИФРАТОРЫ ДВОИЧНЫХ КОДОВ. ПРЕОБРАЗОВАНИЕ ПОСЛЕДОВАТЕЛЬНЫХ КОДОВ В ПАРАЛЛЕЛЬНЫЕ Как мы заметили (разд. 3.2.5), общее число состояний ма- машины представляет собой произведение чисел состояний всех ее элементов. Именно полученные таким путем гигантские чис- числа состояний делают вычислительные машины и другие интерес- интересные автоматы полезными для практики. Если стремиться пред- представить каждое состояние процесса возбуждением отдельного элемента машины, то на практике придется ограничиться до- довольно простыми процессами. Мы поступим гораздо лучше, если будем использовать для представления состояний процесса раз- различные распределения (комбинации) состояний относительно небольшого числа элементов. Это означает, что в эффективных машинах информация дол- должна быть представлена чем-то вроде двоичного или иного кода. (В гл. 6 мы рассмотрим — исключительно с теоретической точки зрения — некоторые машины, использующие «единичную» форму представления информации, и увидим, насколько неэффективны такие машины.) Таким образом, состояния процесса, реализуем мого машиной, будут представляться распределениями активно-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 69 стей групп ячеек или элементов, а не состояниями отдельных элементов. Различными распределениями активностей одной и той же группы ячеек можно представить различные состояния процесса. Однако, как правило, в конце концов потребуется вы- выделить ряд таких распределений и представить их как отдель- отдельные сигналы, т. е. как импульсы на некоторых отдельных вы- выходных волокнах. По этой причине, а также по ряду других причин мы постараемся показать, что сигналы в единично- и в двоичнокодированной форме могут быть легко преобразованы из одной формы в другую. Другой способ эффективного использования состояний ма- машины заключается в кодировании информации различными по- последовательностями импульсов во времени. Иначе говоря, мы можем представить состояние процесса последовательностью определенных возбуждений ячеек или небольших групп ячеек во времени. И опять же нужно иметь возможность декодировать такие последовательности — преобразовывать их в импульсы на отдельных волокнах и наоборот. В следующих нескольких разде- разделах представлены различные методы преобразования информа- информации из одной формы в другую, после чего рассматривается ком- комбинация этих методов, позволяющая получить эффективный об- общий метод построения произвольной конечной машины. 3.3.1. Декодирование двоичных времоииых последовательностей Предположим, что на некотором волокне время от времени могут появляться различные последовательности импульсов, и мы хотим отличать эти последовательности друг от друга, возбу- возбуждая для каждой из них отдельный выход схемы. Мы будем по- полагать, что имеется конечное число таких последовательностей. Пусть N есть продолжительность самой длинной последователь- последовательности. Множество последовательностей может, например, иметь вид **** ***1 **1* **Ц *1** *1*1 *Ц* *111 1*** 1**1 1*1* 1*11 11** 11*1 111* 1111 где единица означает наличие импульса, а звездочка его отсут- отсутствие в соответствующий момент. Здесь мы выбрали в качестве примера множество из всех 16 возможных последовательностей, которые могут существовать в промежутке времени, состоящем из четырех моментов. (Может оказаться, что нет необходимости различать все эти последовательности.) Мы должны также предположить, что имеется некоторый специальный сигнал, называемый стартовым импульсом, который
70 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ I И D IV Сигнал Стартовый сигнал Рис. 3.3.1. Двоичное последовательное декодирование. определит момент начала передачи последовательности. В про- противном случае у нас не было бы возможности отличить друг от друга такие последовательности, как, например, ***1, **1*, *1** и 1***, каждая из которых представляется одним импульсом и которые отличаются лишь моментом, выбран- выбранным в качестве исходного при передаче последовательности. Если даны сигналы, поступающие во входное волокно, и старто- стартовый импульс, появляющийся на стартовом волокне, то наша за- задача декодирования решается схемой, представленной на рис. 3.3.1. Каждый из прямоугольников на этом рисунке представляет собой схему из двух ячеек, точно такую же, как и выделенные пунктирными прямоугольниками1). Легко видеть, что в схеме ничего не происходит до тех пор, пока не приходит стартовый импульс. Если во время появления стартового импульса вход- входной импульс отсутствует, возбудится верхняя ячейка каскада I, если же вместе со стартовым импульсом появляется входной импульс, то возбудится нижняя ячейка (а верхняя ячейка оста- останется в состоянии покоя). В любом случае будет возбуждена одна и только одна ячейка каскада I. В следующий момент импульс на выходе каскада I исполь- используется в качестве стартового импульса для одного из блоков каскада II. Вторая половина каскада II останется в состоянии покоя. (Повторяя эти рассуждения, мы приходим к выводу, что первый элемент входной последовательности определяет, в какой половине набора выходного пучка волокон появится выходной ') Это те же самые «переключатели», которые использовались в разд. 3.2.2, но с обратным порядком прдачи входных сигналов.
I, НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 71 импульс.) Такой же выбор происходит в каскаде II; после вто- второго момента импульс появится на одном из четырех волокон, идущих из второго в третий каскад. Через К моментов появится импульс на одном из 2К волокон, соединяющих К-й и (К + 1)-й каскады. В конце концов окажется возбужденным лишь одно выходное волокно, и именно то, которое соответствует двоичному числу, представляемому входной последовательностью. Таким образом, каждая последовательность импульсов возбуждает один соответствующий выход схемы. В дальнейшем мы увидим, как можно построить другой тип дешифраторов двоичных последовательностей путем использова- использования схем, рассматриваемых в следующем разделе. (В частности, можно соединить выход схемы, подобной схеме на рис. 3.3.3, со входом схемы, подобной схеме на рис. 3.3.2, в соответствии, разумеется, с номерами разрядов.) Если подсчитать число ячеек в схемах, то последний метод может показаться более эффек- эффективным, чем предыдущий. Но если принимать во внимание также и стоимость соединений и то, что ячейки с более высоким порогом, по-видимому, более дороги, то станет ясно, что схема на рис. 3.3.1 при больших N будет обладать большими преиму- преимуществами. 3.3.2. Другие дешифраторы Если кодированная информация приходит, в виде отдельных импульсов, появляющихся одновременно на ряде параллельных волокон, то можно применить схему, описываемую ниже. На рис. 3.3.2 показана схема для случая N = 3. Порог ка- каждой из ячеек должен быть равен числу ее возбуждающих входов, с тем чтобы предотвратить возбуждение этой ячейки от сигнала, содержащего меньше единиц, чем требуется. Ячейка Сигналы- 0 1 < oo < ОТ ( ' о < -I 11 ll 1 ООО 001 010 ОН 100 101 110 111 Рис. 3.3.2. Двоичный параллельный дешифратор на трн разряда.
72 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Вход (лоследова- тельный) Стартовый сигнал о_ Выход "~ (параллель - нып) Рис. 3.3.3. Четырехразрядный преобразователь последовательного кода в па- параллельный. вхов ^ ^> сигнал > J ^ «-I10I ¦-1———»- Выход < /'^ Стартовый * УШ * сагнал Рис. 3.3.4. Преобразователь параллельного кода в последовательный. с левого края имеет порог, равный нулю; она возбуждается всегда, если отсутствуют тормозящие сигналы. (Если не исполь- использовать такие ячейки, то невозможно выделить активным обра- образом «нулевой» сигнал при условии, конечно, что не предусмо- предусмотрены другие источники сигналов, вроде стартового волокна, показанного на рисунке.) Последовательный и параллельный способы работы, вообще говоря, взаимозаменяемы. Схемы на рис. 3.3.3 и 3.3.4 выпол- выполняют преобразования в обоих направлениях. 3.3.3. Шифраторы Шифраторы для преобразований в обоих направлениях три- тривиальны. Для того чтобы получить из одного импульса последо- последовательный сигнал, достаточно использовать схему, изображен- изображенную на рис. 3.3.5. Для преобразования в параллельный код достаточно лишь произвести соответствующее ветвление вход- входного волокна, как это показано на рис. 3.3.6.
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 73 Вход (последовательный} --->•! 101 Выход Рис. 3.3.5. Последовательный шифратор. Путем объединения этих двух методов шифрации мы можем реализовать более сложные соотношения между входными и вы- выходными сигналами. Предположим, что во всех случаях, когда импульс появляется на некотором входном волокне fi, мы долж- должны генерировать определенную последовательность на некото- некоторых выходных волокнах gi, ..., gn- Например, если в момент Вход- Рис. 3.3.6. Параллельный шифратор. времени t возбуждается fi, то нам может потребоваться возбу- возбудить gi в моменты t + 2 и / + 3, a g2 в моменты / + 1 и t + 3. Предположим также, что если импульс в момент t появляется на другом входном волокне f2, то gt должно возбуждаться в мо- моменты / + 1 и t + 2, a gi — в моменты t + 2 и / + 3. Эти усло- условия можно представить следующим образом: hit) Ш t+l t + 2 t + 3 t+l t + 2 t + 3 gi g2 gi У У У Схема на рис. 3.3.7 реализует эти требования и иллюстри- иллюстрирует общий метод построения таких схем. Соотношения между таблицами, определяющими выходные сигналы, и связями в схе- схеме видны более отчетливо, если изобразить схему так, чтобы сигнал распространялся справа налево. Выбрав диаграмму со- состояний соответствующего размера, можно распространить этот метод на случай любого числа входных и выходных волокон, а также выходной последовательности любой длины. Если измерять стоимость машины лишь числом ячеек, то такие системы очень экономичны. Для того чтобы реализо- реализовать в одной сети 2П различных распределений активностей,
74 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ требуется лишь п ячеек. Если же, однако, учитывать стоимость соединений ячеек в машине, то эта стоимость будет расти более или менее пропорционально числу различных распределений, которые требуется реализовать. В реальных физических системах всегда имеются ограниче- ограничения на число соединений, которые могут быть реализованы в од- одной области. В основном ограничение определяется требуемым уровнем сигнала относительно шумов. На практике всегда необ- необходимо убедиться в том, что нагрузка на источник сигнала с разветвлением по выходу, т. е. сигнала, поступающего одно- одновременно на многие другие элементы, не слишком велика. Рис. 3.3.7. Шифратор, генерирующий заданные последовательности. В противном случае уровень сигнала может оказаться ниже уровня шумов, неизбежных в любом приемном устройстве. В этом случае канал передачи информации становится ненадеж- ненадежным. Такие же ограничения существуют на допустимое число входов элемента (т.е. на разветвление по входу). В конструи- конструировании пороговых элементов имеются и другие проблемы, на- например проблема обеспечения требуемых разрешающей способ- способности и стабильности, так что в настоящее время в вычисли- вычислительных машинах редко используются элементы, аналогичные ячейкам Мак-Каллока — Питтса с высокими порогами. Как мы увидим в разд. 3.6, все, что мы хотим сделать, может быть вы- выполнено при ограничениях на число допустимых ветвлений, но это приводит к появлению неизбежных задержек, уменьшающих скорости вычислений [4*]. Задача. Описать поведение рассмотренного выше шифратора в случае, когда сигналы иа входных линиях поступают столь близко друг к другу во времени, что наборы активностей ячеек для различных сигналов должны перекрываться. Каким образом зависит это поведение от того факта, что все ячейки имеют порог 1 и отсутствуют тормозящие входы?
8. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 75 ЗА. РЕАЛИЗАЦИЯ БОЛЕЕ СЛОЖНЫХ СООТНОШЕНИЙ МЕЖДУ ВХОДНЫМИ СИГНАЛАМИ И ОТВЕТОМ НА ВЫХОДЕ. ПОВЕДЕНИЕ СЕТЕЙ БЕЗ ЦИКЛОВ Может потребоваться и реализация более сложных зависи- зависимостей между сигналами на входе и ответом (реакцией) на выходе схемы, когда выходной сигнал представляет собой раз- различные временные последовательности импульсов на несколь- нескольких выходных шинах. Мы можем достигнуть этого, комбинируя различные методы, описанные в разд. 3.3. Будем делать это таким образом, что получаемые в результате схемы будут отли- отличаться одним специфическим свойством — у них не будет петель обратной связи, т. е. никаких путей, по которым импульс мог бы снова и снова возвращаться к той же самой ячейке. Интересно посмотреть, что могут и чего не могут делать эти системы, по- поскольку они по существу являются машинами без какой бы то ни было долговременной памяти. Содержание этого метода лучше всего можно изложить на примере. Предположим, что ситуация такая же, как в разд. 3.3.3, за исключением того, что входные сигналы представляют собой некоторые последовательности импульсов на нескольких вход- входных волокнах в\, ..., ет. Можно, например, считать, что имеют- имеются два соотношения между входными сигналами и ответом на выходе схемы: I t t+\ X X X X t t+\ Вызывает v gl t X X 1 t + 2 X X t t+\ t + 2 X X X X Вызывает _ gi X X Разумеется, мы не можем потребовать, чтобы выходной сиг- сигнал появился раньше, чем закончится входной сигнал: должна иметь место некоторая задержка. Схема на рис. 3.4.1 реализует эти требования, обеспечивая задержку на один момент. Обра- Обратим внимание на то, каким образом вышеприведенные таблицы «встроены» в схему. Наша схема «перекодирования» состоит из трех частей. В правой части пространственно-временные комбинации вход- входных сигналов с помощью преобразователя последовательного
76 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ кода в параллельный преобразуются в чисто пространственное распределение сигналов. Это сводит данную задачу к задаче распознавания чисто пространственных распределений сигналов. Середина схемы представляет собой множество «распознаю- «распознающих» ячеек, по одной для каждого определенного входного сиг- сигнала. Соединения их входов и пороги выбраны таким образом, ^€ 01 Н$-©-€? -С- 1 Ь-е, —«з Старто вый сигнал Преобразователь Ulutppamap Распозн. euKUДешифратор' Рис. 3.4.1. Устройство перекодирования. чтобы каждая распознающая ячейка возбуждалась при появле- появлении только одной определенной входной комбинации из числа выделяемых. Стартовый импульс подается на распознающие ячейки с соответствующей задержкой, так что они начинают работать лишь тогда, когда входной сигнал полностью посту- поступит на схему. Выходная часть (шифратор) аналогична схеме на рис. 3.3.7. На выходах распознающих ячеек оказываются требуемые- выходные сигналы аналогично тому, как это описано в разд. 3.3.3. Описанный метод легко распространяется на случай большего числа входных и выходных каналов, на большее число пар последовательный код — параллельный код и последователь-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 77 ности большей длины. Разумеется, при этом возрастает число сигналов, поступающих на ячейку, и число соединений данной ячейки с другими. 3.4.1. Задержки. Неэффективность канонического метода При функционировании любой машины неизбежны некото- некоторые задержки, связанные с тем обстоятельством, что определен- определенные события в машине должны происходить раньше других В общем случае для реализации произвольной конечной таб- таблицы соотношений входных и выходных сигналов требуется за- задержка в две единицы времени (и не больше). Это доказы- доказывается способом построения описанной выше схемы. Грубо говоря, требуется один каскад (задержка на единицу времени) для распознающих ячеек или эквивалентной им схемы и еще один каскад (задержка еще на одну единицу времени) для того, чтобы собрать вместе выходные сигналы с различных распо- распознающих ячеек. Конечно, не всегда обязательна задержка на две единицы времени — иногда можно обеспечить требуемое поведение схемы с задержками 1, 0 или —1. (Это может слу- случиться, если имеется возможность различения входных последо- последовательностей до того, как онн полностью поступят на схему.) Схема на рис. 3.4.2 имеет в этом смысле задержку 0, так как выходной сигнал начинает выдаваться одновременно с поступле- поступлением последнего (второго) разряда входной последовательности. Эта схема имеет те же два соотношения между входными сиг- сигналами и ответом на выходе, как и схема на рис. 3.4.1 (но будет вести себя по-другому при других входных сигналах). Оказы- Оказывается, что информация на волокне е2 была избыточной, и мы ее не используем. Рис. 3.4.2.
78 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Соотношение вход — выход, использованное выше в наших примерах, не было выбрано произвольно, а специально подби- подбиралось для того, чтобы проиллюстрировать возможность пере- перемены ролей временного и пространственного расположения для входного сигнала. Две пары соотношений вход —выход, задан- заданные в явном виде, представляют собой выборки из множества, состоящего из 64 соотношений, обладающих тем свойством, что если вход 6j оказывается возбужденным через j моментов после появления на входе стартового импульса, то выходной сигнал gi появляется через i моментов (плюс задержка системы) после Рис. 3.4.3. Схема, иллюстрирующая перемену ролей пространства н времени. выходного стартового импульса. Все это множество соотноше- соотношений может быть реализовано простым однотипным способом, который иллюстрируется сетью на рис. 3.4.3, построенной для i = 1,2,3и/ = 1,2. Если бы нам потребовалось применить метод преобразова- преобразования, использованный в «канонической» системе из шифратора и дешифратора (рис. 3.4.1), то схема содержала бы 64 распо- распознающие ячейки. Но из-за того, что преобразование имеет столь простую структуру, мы могли бы реализовать эту схему, поль- пользуясь гораздо меньшим числом ячеек. Для того чтобы реализо- реализовать произвольное соотношение между входом и выходом при входном сигнале, имеющем N компонентов (в нашем случае N = Q), в среднем требуется порядка 2N ячеек. Лишь неболь- небольшая доля функций, описывающих выходной сигнал, может быть реализована сетью с существенно меньшим числом ячеек. Од- Однако есть основания полагать, что именно эта небольшая доля охватывает почти все функции, которые могут представлять для нас интерес.
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 79 В большинстве наиболее интересных приложений простота конструкции схемы на рис. 3.4.1 не в состоянии компенсировать ее ужасающую неэкономичность. В общем методе используется то, что математик назвал бы «сведением к каноническому виду», при котором всякая задача преобразуется к одной и той же «общей» форме. Такая форма очень проста по своей идее, но часто оказывается слишком громоздкой с точки зрения прак- практической реализации. Метод не использует структурных свойств конкретных задач. Но «интересные» функции, как правило, обладают свойствами, которые позволяют значительно сокра- сократить в размерах реализующие их схемы. Трудно представить, каким образом это утверждение, связанное с субъективным тер- термином «интересные», могло бы быть доказано в сколь-нибудь приемлемой математической форме, но мы считаем, что оно выражает очень важную истину [5*]. 3.4.2. Сети без циклов Все машины (сети), рассмотренные в разд. 3.4 и 3.4.1, сво- свободны от циклов, т. е. они не содержат циклических путей дви- движения сигнала. Мы видим, что даже при таком ограничении можно рассматривать любую функцию, описывающую поведе- поведение схемы, если выходные последовательности ограничены по длительности наподобие того, как это рассматривалось выше. По существу это единственный вид поведения, которое может быть реализовано сетями без циклов. Не следует делать вывода, что реализуемое таким образом поведение обязательно не интересно или не важно. Мы можем допустить, по крайней мере в принципе, что таким способом можно было бы построить машину, которая бы во всех отноше- отношениях вела себя так же, как некоторый конкретный человек на протяжении всей своей жизни. Иначе говоря, можно было бы (в принципе) так организовать поведение машины, что на ка- каждую последовательность воздействий, которую только спосо- способен воспринять человек, машина реагировала бы точно так же, как этот человек. Это все, так сказать, в теории, но в практи- практическом аспекте все эти утверждения бесполезны и даже непра- неправильны, поскольку 1) общий объем такой машины не позволит реализовать ее в нашей Вселенной даже при невообразимых успехах технологии и 2) без развитой, законченной теории того, как функционирует человек, никто не знал бы, что включить в столь чудовищную структуру. А если бы такая теория суще- существовала, то мы могли бы построить не столь уж большую и действительно разумную машину.
80 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ 3.5. ОБЩАЯ ЭКВИВАЛЕНТНОСТЬ НЕЙРОННЫХ СЕТЕЙ И КОНЕЧНЫХ МАШИН Очевидно, что всякая нейронная сеть рассмотренного нами вида является конечной машиной. В любой данный момент об- общее состояние сети задается распределением состояний ячеек. Функция переходов Q(t + 1) = G(Q(t), S(t)) определяется структурой сети, а выходная функция R(t + 1) = F(Q(t), S(t)) определяется тем, какие из волокон рассматриваются как вы- выходные. Интересным и даже неожиданным является тот факт, что справедливо и обратное. ТЕОРЕМА 3.5 Всякая конечная машина эквивалентна некоторой нейронной сети и может быть «смоделирована» ею. Иначе говоря, для лю- любой данной конечной машины М можно построить некоторую нейронную сеть NM, которая, если рассматривать ее как черный ящик, будет вести себя в точности так же, как М. Конструкция эквивалентной сети NM оказывается удиви- удивительно простой, если мы заранее решим, каким образом будут представляться входные и выходные сигналы. Предположим, что входами и выходами машины М являются Si, ..., Sm и R\, ... ..., Rn соответственно и что состояниями машины М являются Qi, • • •. Qp- Тогда наша сеть NM должна иметь входные сиг- сигналы s\, ..., sm, выходные волокна г\, ..., гп и содержать m ячеек C\j,^..., Cmj для каждого состояния Q} машины М. Ячейки Ci} должны составлять двумерную (т X р) решетку, как это показано на рис. 3.5.1. Каждая из ячеек Сц имеет порог, равный 2. Мы используем здесь способность этих ячеек обнаруживать совпадение двух сигналов. Действительно, ячейка Сц возбудится (в момент t + 1) только тогда, когда на ее вход поступит входной сигнал от Si (в момент t), и при этом машина находится в состоянии Qj. Для того чтобы сделать сеть эквивалентной машине М, мы должны теперь обеспечить выдачу нужного выходного сигнала F(Q{,Sj) и переход в соответствующее внутреннее состояние G(Qi,Sj). Чтобы понять, как это делается, рассмотрим изобра- изображенные на схеме вертикальные колонки. В любой момент / среди волокон, объединенных в заштрихо- заштрихованные колонки, имеется одно и только одно активное волокно. Предположим, что это волокно находится в /-й колонке. Это означает, что в данный момент сеть моделирует состояние Q} машины М. (Не имеет значения, какое именно волокно в дан- данной колонке является активным, так как все они имеют одина-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 81 ковые ветвления.) Предположим также, что в каждый момент активно одно и только одно из горизонтальных (входных) во- волокон, например i-e волокно. Это соответствует некоторому входу S{. Тогда в момент / + 1 возбудится только одна из ячеек решетки, и это будет ячейка С{}. Выходное волокно ячейки C,j разделяется на две ветви. Ветвь, идущая вниз, поступает на «блок /^функций» и там идет к ячейке, которая выдает требуемый выходной сигнал /7(Qj, S,). Таким образом, функция F «встроена» в эту часть схемы, и дальнейшее нас может не интересовать. Ветвь, идущая вверх, поступает на «блок G-функций», устроенный таким образом, что это волокно оказывается в колонке, соответствующей новому Блок G-функций Вход Блок Г-функций J [ Выход Рис. 3.6.1. Каноническая нейронная сеть с конечным числом состояний.
82 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ состоянию (G(Qj, Si)). Таким образом, если в момент t+ 1 возбуждается одна и только одна ячейка С^, то в этот момент среди колонок, объединяющих волокна, которые выходят из «блока G-функций», снова окажется одно и только одно актив- активное волокно (и это волокно будет в той колонке, которая соот- соответствует следующему состоянию моделируемой машины М). Таким образом, если сигналы, поступающие на сеть NM, в не- некоторый момент совпадают с сигналами, поступающими на ма- машину М, то сеть и машина будут проходить одни и те же после- последовательности состояний и выдавать одни и те же последова- последовательности сигналов на выходе. (Выходной сигнал с NM будет задержан на одну единицу времени из-за ячеек ИЛИ в блоке выходных соединений.) Таким образом, теорема доказана. ПРИМЕР Конкретная схема, приведенная на рис. 3.5.1, является ре- результатом применения общего метода к случаю последователь- последовательного двоичного сумматора, такого, например, как сумматор, описанный в разд. 2.3; 5] соответствует входу 00, 52 — входам 01 и 10, а 53 — входу 11 (Qi — состояние, в котором перенос от- отсутствует, а (?2 — состояние, когда перенос имеет место). Для того чтобы машина начала действовать, нужно подать старто- стартовый импульс на одно из волокон, идущих вниз из «блока G-функций», затем осуществить выбор начального состояния сети. Чтобы привести машину к обычному двухвходовому по- последовательному сумматору, нужно поставить на входе какой- либо входной шифратор, например подобный тому, который изображен на рис. 3.5.2. «Каноническая сеть» для конечной машины обладает тем ин- интересным свойством, что она по существу построена только из одних ячеек И. (Читатель, наверное, согласится с тем, что ячейки ИЛИ в блоке выходных соединений в действительности не принимают участия в работе машины.) Отсюда следует, что в некотором смысле только эти ячейки нам и нужны. Более под- Стаптовый сигнал Рис. 3.5.2. Входной шифратор для двоичного сумматора.
I. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 83 робно мы рассмотрим этот вопрос в разд. 3.6. В частности, мо- может показаться, что тормозящие связи вообще не требуются, поскольку они в схеме отсутствуют. Разгадка заключается в нашем предположении о том, что все входные сигналы посту- поступают в «полностью декодированном» виде: в каждый момент возбуждается один и только один вход. Теперь мы знаем, что если это так, то, чтобы смоделировать любую конечную машину, нам нужны лишь ячейки с порогом 2. Однако если входные сигналы подаются не в таком удобном виде, то в общем случае потребуются тормозящие соединения (как на рис. 3.5.2) для того, чтобы привести сигналы к этому виду. Но все же можно считать весьма примечательным то обстоятельство, что в слу- случае, когда сигналы закодированы требуемым образом, нужны лишь ячейки с порогом 2. Задача. Доказать, что в общем случае нельзя дешифровать сигналы, используя лишь ячейки И и ИЛИ (без торможения). Эффективность Важно отметить, что мы моделировали поведение машины М довольно неэкономичным способом. Если имеется / входных сигналов и / состояний, то в нашей конструкции используется / X / ячеек (таково число ячеек, используемых в шифраторах и дешифраторах). Если можно использовать все комбинации состояний ячеек, то машина NM имеет 2й допустимых состоя- состояний. Лишь очень небольшая часть из них используется при ее функционировании (см. примечания в разд. 3.4.1). Такого рода результат уменьшает применимость многих мощных в идейном отношении методов логики и анализа в области практического конструирования реальных автоматов. Эти методы игнорируют особенности устройств или выражений, перегружая их в резуль- результате преобразований дополнительными деталями, которые ни- ничего не прибавляют к их содержанию. Это улучшает «форму». Но, как правило, все это снижает эффективность. В настоящее время имеется большое количество теоретиче- теоретических и практических сведений относительно способов эффектив- эффективной реализации требуемого поведения с помощью схем из эле- элементов различного вида — реле, транзисторов, радиоламп и т. п., но все эти практические методы не относятся к основному на- направлению нашего исследования. 3.6. УНИВЕРСАЛЬНЫЕ НАБОРЫ ЯЧЕЕК До сих пор мы конструировали наши схемы путем свобод- свободного соединения друг с другом элементов способами, подоб- подобными тем, что отражены на рис. 3,6.1, При этом мы не устанав*
34 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Ряс. 3.6.1. ливали ограничений на допустимые значения порога и точно так же не вводили никаких ограничений на число входов ячейки и число элементов, на которые подается сигнал с выхода ячей- ячейки. Следует, правда, заметить, что в большинстве представлен- представленных схем ячейки имели пороги 1 и 2. Исходя из результатов разд. 3.3 и 3.5, можно было бы предположить, что более высо- высоких порогов и не требуется. Ниже мы убедимся в том, что так оно и есть. Но хотя более высокие пороги в общем случае не нужны, их использование позволяет уменьшить требуемое число ячеек и сократить задержку, вносимую схемой. Рассмотрим параллельный дешифратор, изображенный на рис. 3.3.2. Если имеется п входных схем, то в дешифраторе используются ячейки с порогом до п включительно. Однако задержка схем составит единицу времени. Мы могли бы построить параллельный деши- дешифратор из ячеек с порогами 1 и 2, но при этом увеличилась бы задержка схемы по крайней мере до величины log2n. Задача. Построить параллельный дешифратор из ячеек с порогами 1 и 2. Построить такой же дешифратор только из ячеек с порогом 2. Интересно, что если мы готовы платить увеличением задерж- задержки и числа ячеек в схеме, то одновременно мы можем ограни- ограничить как величину порога, так и число связей ячейки по входу и по выходу. Мы будем исполь- зовать метод ветвления двоич- ных деревьев. Чтобы уяснить себе этот мет°Д> предположим, что мы хотим сконструировать сети, эквивалентные ячейкам, пока- Рис. 3.6.2. занным на рис. 3.6.2, из элемен- элементов с ограниченным числом свя- связей. Эти ячейки могут быть заменены левой и правой схемами рис. 3.6.3 соответственно. В правой схеме пришлось использо- использовать дополнительные элементы ИЛИ, с тем чтобы схема имела одинаковую задержку для всех сигналов. В этих схемах число входов, число выходных соединений и величина порога ячеек не превышают двух. Это означает, что мы не сталкиваемся с проблемой «нагрузки» и шума при усло- условии, что мы не принимаем во внимание общего замедления
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 85 Ряс. 3.6.3. Сети из схемных элеМенТОВ ИЛИ и И с ограниченным числом связей. работы системы. И эт0 означает, что наш набор элементов мо- может не содержать ничег01 кроме элементов трех типов, которые мы использовали в схеме на Рис- 3-6-3- Элементы этих типов представлены отдельно на рис 3.6.4. Таким образом, этОт набор элементов образует «универсаль- «универсальный базис» для построения конечных машин. Оказывается, что за счет увеличения задержки второй элемент (И) может быть опущен, так как его можно заменить схемой, показанной на рис. 3.6.5; таким образом, первый (ИЛИ) и третий (И-НЕ) эле- элементы составляют универсальный базис. Но, конечно, и эти два элемента легко могут быть объединены в одно устройство (рис. 3.6.6), которое само по себе является универсальным ба- базисом. (Понятно, что в случае необходимости некоторые во- волокна можно оставить неприсоединенными.) При использовании этого элемента в кацестве базиса следует учитывать тот факт, что схема на рис. 3.6.5, используемая для формирования
ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ A) B) C) Рис. 3.6.4. A) а ИЛИ 6, B) а И Ь, C) а И-НЕ Ь. Рис. 3.6.5. Рис. 3.6.6. ИЛИ-И-НЕ. функций И из трех элементов типа И-НЕ, дает задержку в две единицы времени. Избежать этого невозможно, так что элемент в действительности универсален только тогда, когда сигналы на схему поступают лишь каждый второй момент времени. Подобные замечания справедливы и для нескольких других базисов, рассматриваемых ниже. Существуют и другие простые базисы. Предположим, что ячейка может иметь порог 0, так что она возбуждается во всех случаях, ко- когда не поступает тормозящий сиг- сигнал. Элемент НЕ-ИЛИ (рис. 3.6.7) в совокупности с элементом задержки образует универсальный базис. Справедливость та- ¦о- A) B) Рис. 3.6.7. A) НЕ-ИЛИ, B) за- задержка. A) B) C) Рис. 3.6.8. A) ИЛИ, B) И, C) а ИЛИ Ь И-НЕ с. кого положения следует из того, что с помощью этого элемента (и задержки) можно реализовать все рассмотренные выше функции. На рис. 3.6.8 представлены схемы (с задержкой 2), реализующие функции ИЛИ. Имеется еще один двухвходовый элемент, который совместно с элементом задержки образует
8. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 87 универсальный базис. По существу это ячейка с порогом минус один, которая возбуждается во всех случаях, когда одновре- одновременно не приходят оба сигнала от тормозящих входов (рис. 3.6.9). В вычислительной технике такие ячейки известны под назва- названием НЕ-И. о—о (о A) B) Рис. 3.6.9. НЕ-И. Рис. 3.6.10. A) мажоритарный элемент, B) инвертор. МАЖОРИТАРНЫЙ элемент в совокупности с ИНВЕРТО- ИНВЕРТОРОМ (рис. 3.6.10) составляет весьма перспективный базис. В этом базисе легко реализуются функции И и ИЛИ (как по- показано на рис. 3.6.11), а также достаточно просто реализуются другие функции. Имеется и ряд других простых наборов функций, которые могут быть использованы в качестве базиса. Некоторые из них (D w \^ B) Рис. 3.6.11. (I) И, B) ИЛИ. Рис. 3.6.12. Ячейка с рофрак- терностью. упоминаются в работе фон Неймана [101, стр. 50—56]. Читатель, по-видимому, заметил, что представленный в этом разделе ма- материал является расширением соответствующего раздела работы фон Неймана. Имеется еще один интересный элемент, который образует одноэлементный базис (при работе через единицу времени). Ячейка (или скорее сеть) показана на рис. 3.6.12. Соответствую- Соответствующая ячейка, рассматриваемая в работе Минского [60], инте- интересна тем, что она имеет период рефрактерности — ее нельзя возбудить последовательно в два соседних момента, что является основным свойством биологических нейронов. Интересно, что это свойство может быть использовано для того, чтобы обой- обойтись без тормозящих соединений. Почему это так, будет объяс- объяснено в следующем разделе.
88 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ 3.6.1. Монотонные функции Легко видеть, что два элемента И и ИЛИ сами по себе не образуют полного универсального базиса. (Как было показано в разд. 3.5, из них можно построить любую схему, если только полагать, что имеются внешние шифраторы и дешифраторы.) Ограниченность их возможностей можно обнаружить, если по- попытаться, например, построить сеть, реализующую функцию «а И-НЕ Ь». Трудность состоит в том, что любая сеть, построен- построенная только из элементов И и ИЛИ, обладает свойством моно- монотонной зависимости выходного сигнала от входных воздействий. Это означает, что невозможно уменьшить значение выходного сигнала, увеличивая значение входного сигнала. Предположим, что некоторый набор Si значений входных сигналов вызывает набор /?i значений сигналов на выходе. Теперь предположим, что мы подаем новый входной набор 52, содержащий все импульсы набора 5i (в смысле разд. 3.4) плюс один дополнительный им- импульс. Тогда выходной набор R2, вызываемый входом 52, дол- должен по крайней мере содержать все импульсы набора Ri и, возможно, дополнительные импульсы. Чтобы убедиться в справедливости этого, рассмотрим про- прохождение импульсов в любой сети, построенной исключительно из элементов И и ИЛИ. В любом месте сети активность, вызы- вызываемая 52, должна включать активность, которая вызывалась бы в тот же момент набором 5ь Если ячейка должна возбу- возбудиться при 5i, то при 5г воздействие на нее будет по крайней мере тем же. Нет никакой возможности при наличии нового импульса в 5г вызвать активность, меньшую, чем без этого им- импульса. Если порог уже достигнут, то новый импульс никаким способом не может предотвратить возбуждение ячейки. Эти рассуждения шаг за шагом можно продолжать для всей сети, причем они справедливы для любой сети, каждый элемент ко- которой в отдельности реализует монотонные функции (такие, как И и ИЛИ). Что же нужно добавить к И и ИЛИ для того, чтобы полу- получить полный базис? Мы знаем, что достаточным для этого оказывается введение тормозящих связей, например, в виде элемента «а И-НЕ Ь». В действительности можно показать, что нужно лишь добавить любой элемент, реализующий какую-ни- какую-нибудь немонотонную функцию. Доказательство этого [60] доволь- довольно сложно, поэтому здесь мы его не приводим. Легко показать, что, используя лишь элементы И и ИЛИ, мы можем реализовать любую монотонную функцию. Чтобы убедиться в этом, заметим, что можно просто построить дешиф- дешифратор, подобный рассмотренному в разд. 3.3.2, без введения тор-
3. НЕЙРОННЫЕ СЕТИ, АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 89 мозящих связей. Рассмотрение схемы показывает, что тормозя- тормозящие связи нужны здесь как раз для того, чтобы обеспечить не- немонотонное поведение, при котором большие входные воздей- воздействия блокируют ответ (реакцию), который был бы вызван частью этих воздействий. Но в этом нет необходимости, когда мы реализуем монотонные функции. Из вышеприведенных рассуждений следует, что, имея эле- элементы И и ИЛИ, мы можем получить полный базис, добавив любой другой элемент, который не может быть реализован сетью из элементов И и ИЛИ. Среди таких элементов — элемен- элементы, показанные на рис. 3.6.13 (последний из них, как нам уже Рис 3.6.13. Элементы, реализующие немонотонные функции. известно, сам по себе является универсальным). Ко всем этим замечаниям относится то ограничение, что в машинах, построен- построенных из этих элементов, иногда приходится сталкиваться с за- задержками, из-за которых приходится требовать, чтобы входные сигналы были разнесены во времени на достаточные интервалы. Отсюда следует, что наша ячейка с рефрактерностью является универсальной, поскольку она реализует немонотон- немонотонную функцию и поскольку из нее непосредственно могут быть получены элементы и И и ИЛИ. 3.6.2. Схемы с раздельными каналами для прямого и инвероного сигналов Из рассуждений, проведенных в разд. 3.6.1, может пока- показаться что, имея лишь ячейки, реализующие монотонные функ- функции И и ИЛИ, можно сделать очень немногое. Но из разд. 3.5, и в частности из разд. 3.5.1, можно заключить, что конечная машина наиболее общего вида (например, показанная на рис. 3.5.1) может быть выполнена как раз из этих двух элемен- элементов. Как могут быть справедливы оба эти утверждения одно- одновременно? Единственное различие состоит в том, что в разд. 3.5 предполагалось, что сигналы на входы машины подаются в де- дешифрованном виде, т. е. в любой момент времени имеется сиг- сигнал точно на одной из входных линий. Это означает, что при построении машины с такими входами появление сигнала на одной из входных линий можно рассматривать как его отсут- отсутствие на любой другой входной линии. Следовательно, мы не
90 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ C) г B) I о 0 = 0 Рис. 3.6.14. Метод „двух шин": (I) И, B) ИЛИ, C) И-НЕ, D) НЕ. Рис. 3.6.15. A) схема ИЛИ-И-НЕ (из ячеек НЕ-ИЛИ), B) схема ИЛИ-И-НЕ (из ячеек И и ИЛИ). должны заботиться о тормозящих ответах на сигналы, действую- действующие на этих других входных линиях, причем дело обстоит так, что мы не сталкиваемся и ни с какими другими проблемами торможения. Оказывается, что для устранения необходимости в торможе- торможении не требуется полного декодирования сигналов в источнике, и мы можем понизить требования к источникам сигналов, допу- допуская большую степень немонотонности в их поведении. Это не- немонотонное поведение источника сигналов может быть получено различными способами. Изящный способ реализации такого по- поведения был указан фон Нейманом [101]. Будем представлять сигналы возбуждением не одной линией, а парой линий. Будем предполагать, что в каждой паре в любой момент возбуждена
». ННПРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 91 одна и только одна линия. (Одна из линий соответствует обыч- обычной линии для данного сигнала, вторая возбуждена в те мо- моменты, когда не возбуждена первая.) Тогда мы можем реализо- реализовать функции И, ИЛИ и И-НЕ схемами, представленными на рис. 3.6.14, каждая из которых имеет соответствующий «двой- «двойной» выход. Таким образом, если мы используем «метод двух линий», то, как мы видим, функции И и ИЛИ образуют универсальный ба- базис, причем эти функции играют абсолютно симметричные роли. Далее можно убедиться в том, что функция НЕ-ИЛИ универ- универсальна сама по себе: левая схема на рис. 3.6.15 реализует уни- универсальный базис из одной ячейки ИЛИ-И-НЕ, но она построена полностью из ячеек НЕ-ИЛИ. З.В.З. Другие типы элементов для конечных машин Мы избрали для нашего рассмотрения нейроны Мак-Кал- лока — Питтса главным образом вследствие их простоты. В на- настоящее время никто не использует в вычислительных машинах именно такие элементы, хотя многие из применяемых элементов очень похожи на нейроны Мак-Каллока — Питтса. Вообще го- говоря, элементы вычислительных машин соответствуют нашим ячейкам, но в связи с требованиями экономии числа блоков и соединений в одном отдельном блоке размещается более слож- сложная схема, эквивалентная примерно трем или четырем нашим ячейкам. В настоящее время в конструировании вычислитель- вычислительных машин имеется тенденция к так называемым интегральным «микросхемам», в которых гораздо более сложные функции реализуются в виде схем, которые напыляются, осаждаются или наносятся каким-либо другим способом на однородное основа- основание, например полупроводниковую пластину. Сейчас еще неясно, до каких пор подобные устройства будут еще продолжать строить из универсального набора достаточно простых элементов. Мож- Можно ожидать, что по мере улучшения технологических методов большую роль начнут играть более тонкие в схемотехническом отношении «пороговые» схемы. Другой базис для построения конечных машин — это ре- лейно-контактные схемы. Используя синхронное управление, можно построить реле таким образом, что они будут переклю- переключаться в дискретные моменты времени. Очень легко построить наши шифраторы, дешифраторы и другие схемы из реле; спо- способы построения описаны в статье Шеннона [91]. Главная при- причина, по которой мы использовали «ячейки», а не реле, состоит в том, что реле имеют полезное, но иногда осложняющее нашу задачу свойство — замкнутые контакты проводят ток в обоих
92 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ направлениях. Следовательно, в релейно-контактных схемах по- понятие о направлении распространения сигнала не является есте- естественным, и это приводит к некоторым неясностям. Релейные вычислительные машины с их ограниченным быстродействием устарели с момента появления электронных машин в конце 40-х годов, но теория их построения вновь становится полезной при проектировании машин, в которых используются криоген- криогенные элементы и полевые транзисторы. Совсем иные принципы используются в логике, построенной из схемных элементов на многосеточных вакуумных лампах. (К настоящему времени эти методы, так сказать, вышли из моды, но теперь должны быть воскрешены в связи с появлением полевых транзисторов и других многоэлектродных полупровод- полупроводниковых приборов.) Другие методы используются также в ши- широко распространенной сейчас диодно-транзисторной логике. Од- Однако подробности, касающиеся подобных вопросов, увели бы нас в сторону от нашего основного направления. Задача 3.6.1 (предложенная Муром). Построить схему, показанную на рнс. 3.6.16, используя любое количество двухвходовых элементов И н ИЛИ и лишь два элемента НЕ. Сигнал на каждой нз выходных линий дол- жен быть дополнением сигнала на со- ответствующей входной линии, т. е. если х равен 0, то х' равен единице и т. д. Удобно строить схему из эле- элементов без задержки. Построить тре- б ( б др р р Рис Зй1й буемую сеть (даже нз элементов без задержки) очень трудно, но это чрез- чрезвычайно поучительная задача, так что постарайтесь! Не заглядывайте в решение этой задачн, пока окончательно не отчаятесь найти его самостоятельно. Сколько элементов НЕ необходимо, чтобы одновременно получить допол- дополнения К сигналов? Это само по себе приводит к целой теореме; см., напри- например, работы Гильберта [24] и Маркова [46]. ПРИМЕЧАНИЯ 1. Представление о том, что известно об элементах н сетях, образующих реальные нервные системы жнвых существ, можно составить по книге Бал- лока и Хорриджа «Структура и функция элементов нервных систем беспо- беспозвоночных» [6]. Пока нет еще общепринятой теории, объясняющей механизмы обучения в нервных системах (см. примечание 3). Несколько лучше обстоит дело с функциями специализированных частей нервной системы: см., напри- например, работы по системе зрения, описанные в статьях Леттвина, Матурана, Мак-Каллока и Питтса [44] и Хьюбела и Визела [34]. 2. В моделях, в которых торможение и возбуждение играют симметрич- симметричные роли (сюда относится н наша модель), предполагается, что от одного волокна могут отходить много ветвей с тормозящими соединениями на вхо- входах элементов. Сам Мак-Каллок [55, 56] использовал торможение с вычита- вычитанием, чтобы показать, что можно сконструировать нейронные сети, поведение которых устойчиво по отношению к определенного рода флуктуациям значе-
3. НЕЙРОННЫЕ СЕТИ. АВТОМАТЫ ИЗ ЭЛЕМЕНТОВ 93 ний порогов нейронов. Вопрос о том, как построить машины, которые остаются устойчивыми при колебаниях пороговых характеристик их элемен- элементов, представляет собой захватывающую тему для исследований (не упо- упоминаемую в дальнейшем в этой книге). Результаты ряда исследований, в особенности фон Неймана [101], Мура и Шеннона [67] и цитированных уже работ Мак-Каллока, показывают, что для многих различных типов нарушений можно построить сколь угодно на- надежные машины ценой введения избыточности, т. е. соответствующего дубли- дублирования элементов схемы. Говоря о торможении с вычитанием, нельзя не упомянуть более раннюю работу Рашевского [82, 83], который впервые попытался построить математи- математические модели сложных нейронных сетей. Введение торможения с вычитанием приводит к возникновению ряда неожиданных сложных вопросов даже в случае схемы из одного-единствен- ного нейрона. Мы не будем больше касаться здесь этих вопросов — они со- составляют предмет «пороговой логики», и читатели могут ознакомиться с ними по книге Дертоузоса [16] и книге Минского и Пейперт.э [66], в которой изложены некоторые последние результаты. 3. Память. К сожалению, до сих пор имеется очень мало сведений о том, как сохраняется информация в нервных системах, т. е. как они обучаются. Большинство фактов заставляет полагать, что имеется несколько механизмов запоминания, различных по крайней мере для кратковременной и долговре- долговременной памяти. Согласно одной из гипотез, кратковременная память имеет динамический характер — информация сохраняется в виде импульсов, цирку- циркулирующих по замкнутым цепочкам нейронов, в то время как долговременная память — это статическое хранение информации в виде изменений в связях и порогах в микроанатомических структурах. Некоторые умозрительные теории, объясняющие такое различие, содержатся в книге Хебба [31]. Более статич- статичная модель предложена Розенблаттом [87]. В последнее время появился ряд публикаций, в которых предполагается, что память, подобно генетической информации, сохраняется в виде цепочек молекул нуклеиновых кислот, ио мне не пришлось еще познакомиться ни с одной из таких теорий, которая была бы разработана в такой степени, чтобы включать сколь-нибудь правдо- правдоподобные предположения о механизмах записи и считывания. 4. Допустимый коэффициент разветвления по выходу у элементов совер- совершенных вычислительных машин имеет порядок 6; большие значения имеют место в случае, когда на длинные линии, или «шины», работают специальные усилители. В нервных системах ситуация несколько иная, поскольку нервное волокно само по себе работает как непрерывный усилитель, что делает воз- возможным любые локальные ответвления без ограничений. В некоторых слу- случаях число нейронов, которые воздействуют на данный нейрон или на кото- которые воздействует данный нейрон, исчисляются тысячами. 5. Дальнейшее рассмотрение этих вопросов содержится в следующих ра- работах: статье Мак-Карти [48], важность которой, по моему мнению, еще не до конца признана, статье большого философского значения Соломонова J96] и работе Минского [61], в которой содержатся некоторые замечания, касающиеся этих и аналогичных, более точных результатов, полученных Шенноном [91]. Эта книга дает более или менее достаточную математиче- математическую основу для чтения этих работ (за исключением, может быть, статьи Шеннона), ио от читателя требуется изрядная доля тонкости восприятия и интуиции, чтобы понять подход к философской проблеме «индуктивного вы- вывода», излагаемой э статьях Мак-Карти и Срломонова.
ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В МАШИНАХ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 4.0. ВВЕДЕНИЕ В гл. 2 шла речь о состояниях машины и классах предысто- предыстории. Там, а также в гл. 3 мы отмечали, что существует связь между понятиями «память машины» и «классы предыстории». Те- Теперь мы приступим к исследованию природы этих связей. Сна- Сначала подробнее ознакомимся с содержанием понятия «эквива- «эквивалентность классов предыстории». Затем изучим структуру этих интересующих нас объектов, используя более формальные ме- методы. Найдем способ компактного описания именно тех событий, которые машины с конечным числом состояний могут представ- представлять, тех выражений, которые они могут распознавать, и тех вычислений, которые они могут выполнять. Конечно, когда мы говорим «запоминать» или «распознавать», то вкла- вкладываем в эти понятия весьма специфическое, идеализированное содержание, которое не обязательно должно полностью соответствовать тому толкованию этих понятий, которые мы используем в обиходе. Подробно исследуются только ограничения, свойственные машинам с конечным числом состояний. С другой стороны, мы не располагаем сейчас доводами научного характера, позволяющими предполагать, что при описании поведения отдельно взятых особей живых организмов может потребоваться существенный пересмотр тех ограничений, которые здесь рассматриваются для конечных машин. Позднее мы увидим, что способность живого существа использовать внешнюю среду для хранения информации или.— что с нашей точки зрения почти одно и то же — материала из внешней среды для своего развития обусловливает разли- различие в ограничениях для этих классов объектов. Основные математические результаты, изложенные в этой главе, принад- принадлежат Клини [40]. В свою очередь эти результаты базируются на более ран- ранних исследованиях Мак-Каллока и Питтса [54]. Многие важные проблемы, касающиеся связей между структурами сетей, структурами диаграмм состоя- состояний и структурой памяти, остались нерешенными. Доказательства, приведенные в разд. 4.3 и 4.4, требуют от читателя не- некоторой математической «искушенности», хотя и не подразумевают у нега каких-либо специальных предварительных знаний. В дальнейшем эти доказа- доказательства не используются, так что если читатель ие сможет в них до конца разобраться, то ои без колебаний должен двигаться дальше. Хотя последую- последующие главы могут показаться еще более трудными, в действительности это не так. За исключением, может быть, нескольких мест в конце книги, разд. 4.3 является наиболее трудным, но, однажды разобравшись в нем, вы увидите, что на самом деле он вовсе ие такой уж сложный.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 95 4.1. ЗНАЧЕНИЕ ВЫХОДНОГО СИГНАЛА. ЧЕТЫРЕ ПРИМЕРА Сначала мы уточним понятие «эквивалентность классов пре- предыстории», упомянутое в гл. 2, и приведем несколько примеров, иллюстрирующих существование таких классов. Мы обсудим их сначала неформально, а затем дадим математическое описание. Во всех нижеследующих примерах рассматриваются сети Мак-Каллока — Питтса. Для единообразия предположим, что каждая сеть имеет четыре входа, обозначенные а, Ь, с и d. Пусть в каждый момент возбуждается одно и только одно из четырех входных волокон. Иначе говоря, в каждый момент на вход сети поступает лишь один из четырех возможных сигналов а, Ь, с или d; мы не рассматриваем случай одновременного поступле- поступления комбинации этих сигналов. (Можно представить себе, что эти сигналы поступают с выхода некоторой декодирующей схемы.) Во всех примерах машины начинают свою работу с появле- появления импульса на особом волокне S. Это волокно называется стартовым волокном, а импульс — стартовым импульсом. Будем полагать, что всегда имеет место лишь один стартовый импульс; только в разд. 4.4 мы встретимся с исключением из этого пред- предположения. В момент появления стартового импульса должен также появиться один из «обычных» входных сигналов. Наконец, в каждой сети имеется особое выходное волокно (выход) R. Во всех четырех примерах нас будет интересовать один и тот же вопрос: в каких случаях на выходе R будет по- появляться импульс? Сформулируем это более точно. Предполо- Предположим, что, наблюдая импульс на выходе R, мы не знаем, когда была запущена машина и какие сигналы на нее поступили. Что в этом случае можно сказать о предыстории машины? ПРИМЕР 1 Пусть в этом примере (рис. 4.1.1) волокна Ь, с и d вообще не используются. Если волокно R возбуждается в некоторый мо- момент времени t, то отсюда можно сделать вывод, что волокно а было возбуждено в момент /—1. Более того, поскольку порог элемента равен 2, то в момент /— 1 были возбуждены либо во- волокно S, либо волокно R. Третью возможность, а именно что оба волокна S и R нахо- находились в возбужденном состоянии в момент t— 1, нужно исклю- исключить, поскольку до того, как' было возбуждено волокно S, не могло возбудиться и волокно R. Мы умышленно игнорируем еще одну, последнюю возможность, что волокно R возбуждалось все время, начиная с бесконечно далекого прошлого [1*].
96 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Заметим, что волокно а должно было быть возбуждено также и в моменты / — 2, / — 3 и вообще в любые моменты в прошлом, следующие за моментом возбуждения волокна S, т. е. за моментом запуска машины. Ясно, что мы не можем ска- сказать, как давно это событие произошло. Но зато можно быть уверенным в том, что возбуждению волокна R в некоторый мо- момент времени t предшествует возбуждение волокна а во все пре- предыдущие моменты, начиная со стартового и кончая моментом /— 1. Можно заключить, что сеть, представленная на рис. 4.1.1, «распознает» любую последовательность, всецело состоящую из одного или более сигналов а. Мы предположили, что стартовый импульс S подается на сеть только один раз. Если это событие сопровождается сигна- сигналом а, то возбуждается выход- выходное волокно элемента /?')• Пока продолжают поступать сигналы а, волокно R элемента находится в возбужденном со- состоянии; это явление можно Рис. 4.1.1. Пример 1: сеть, реализую- толковать как реверберацию, щая последовательности вызываемую сигналами а. Если вида о*л когда-либо сигнал а не посту- поступит, реверберация должна ис- исчезнуть навсегда, так как в дальнейшем порог элемента R, рав- равный 2, не будет достигаться. Поскольку мы предположили, что в каждый данный момент может возбуждаться лишь одно во- волокно, то появление любого из сигналов Ь, с, d вызывает пре- прекращение возбуждения элемента R вследствие того, что при этом будет пропущен импульс а. ПРИМЕР 2 Вторая сеть (рис. 4.1.2) распознает любую последовательность, оканчивающуюся сигналом а. Из предположения, что волокно R находится в возбужденном состоянии в момент /, следует вывод, что волокно а должно быть возбуждено и в момент /— 1. Сказать что-либо о том, что ') Здесь и далее элемент обозначается той же буквой, что и его выход- выходное волокно. — Прим. пере в.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 97 случилось раньше этого момента, нельзя, так как реверберация, вызванная импульсом S, сохраняется при любом наборе вход- входных сигналов. ПРИМЕР 3 Более сложные ограничения на класс последовательностей, которые могут вызвать возбуждение волокна R, накладываются Рис. 4.1.2. Пример 2: сеть, реали- реализующая последователь- последовательности вида (а V Ь V с V d) * a. Рис. 4.1.3. Пример 3: сеть, реали- зующзя последователь- последовательности вида а Fа) * Ь. в третьей сети (рис. 4.1.3). Заметим, что первый (самый ран- ранний) сигнал, т. е. сигнал, совпадающий по времени с импуль- импульсом S, должен обязательно быть сигналом а. В противном слу- случае стартовый импульс сам по себе не сможет возбудить ни од- одного элемента и сеть останется после этого невозбужденной. За- Заметим также, что самым последним импульсом должен быть Ь, иначе волокно R не возбудится. После некоторых рассуждений приходим к выводу, что рассматриваемая сеть распознает любую последовательность, которая начинается сигналом а, кончается сигналом & и в промежутке между ними со- содержит последовательность Ьа, повторяющуюся любое число раз (в том числе и ни разу). Можно сказать также, что сеть распознает любую последовательность, которая начинается парой сигналов ab, за которыми следует любое (в том числе нулевое) число повторений пары сигналов ab. Только такая последовательность может сохранять ревербе- реверберацию в сети. 4 М. Минский
98 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ ПРИМЕР 4 Класс предыстории, определяемых в данном примере (рис. 4.1.4), описать более сложно. Эта сеть может стать актив- активной только в том случае, если приход стартового импульса на волокно S сопровождается появлением импульсов на волокнах а или Ь. Активность сети (т. е. возбуждение волокна R) может со- сохраняться только при: 1) реверберации в элементе с входным во- волокном а или 2) циркуляции сигнала в петле, образованной эле- элементами с волокнами Ь, с и d. Волокно R может возбудиться -ч d*N _J s Ркс. 4.1.4. Пример 4: сеть, реализующая последовательности вида (a\/bcd) * bed- только после появления последовательности bed. После некото- некоторых рассуждений заключаем, что сеть на рис. 4.1.4 распознает любую последовательность, составленную из произволь- произвольного числа сигналов а или последовательностей bed и за- заканчивающуюся bed. ОБСУЖДЕНИЕ ПРИМЕРОВ В каждом из примеров мы смогли описать класс последова- последовательностей, распознаваемых машинами, используя выделенные рамками выражения, которые сформулированы на более или ме- менее обычном языке. Для более сложных сетей такие выражения могут стать громоздкими, неоднозначными и, наконец, непонят- непонятными. Клини [40] удалось весьма изящно описать такие классы выражений, используя формулы, которые он назвал «регуляр- «регулярными выражениями», а также ряд связанных с ними понятий. Определения в следующем разделе не в точности повторяют клиниевские, а скорее напоминают те, которые используют Копи, Элгот и Райт [12] в своей упрощенной интерпретации результа- результатов Клини [2*].
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 99 4.2. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ И РЕГУЛЯРНЫЕ МНОЖЕСТВА ПОСЛЕДОВАТЕЛЬНОСТЕЙ Перефразируем четыре полученных выше описания множеств последовательностей, распознаваемых сетями, представленными на рис. 4.1.1—4.1.4 следующим образом: 1) Любое число вхождений символа а, за которым следует сим- символ а. 2) Любое число вхождений символов а, или Ь, или с, или d, за которыми следует символ а. 3) За символом а следует любое число вхождений пары симво- символов Ьа, за которыми в свою очередь следует символ Ъ. 4) Любое число вхождений символа а или символов bed, за ко- которыми следуют символы bed. Теперь заметим, что все эти выражения (и те, которые мо- могут быть получены для более сложных сетей) можно составить всего лишь из нескольких членов и связок. Действительно, нам потребуются только сами буквы для обозначения сигналов и три связки: «любое число вхождений», «за которыми следует», «или». Если мы для сокращения обозначим эти три связки соответ- соответственно через *, «присоединение»1) и V, написанные выше че- четыре выражения можно записать в следующей компактной форме: 1) а*а, 2) (а V bVcVd)*a, 3) a(ba)*b, 4) (а V bed) * bed. ') Термином присоединение обозначается образование нового выражения простым последовательным написанием нескольких имеющихся выражений без каких-либо знаков препинания. В это неформальное описание мы ввели скобки только там, где нужно отметить границу сферы действия связок V и * . Ясно, что «присоединение» — более сильная связка, чем V, т. е. а V be означает а V {be), а не (a Vb)c, аналогично тому как в элементарной алгеб- алгебре операция умножения обозначается слитным написанием символов, причем а + be означает а + (Ь X с), а не (а + b) X Q.
100 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Перечислим некоторые из последовательностей, представляемых приведенными выше выражениями 1—4: 1) а, аа, аааа, ааааа, ..., 2) а, аа, ba, ca, daa, aba, cca, bca, bcacdabbccbbdcaabcaaa, ..., 3) ab, abab, ababab, abababab, ababababab, ..., 4) bed, abed, bedbed, bedabed, aabcdaaaaaabcdbcdabcd, ... Хотя теперь ясно, как эти выражения следует читать, мы дол- должны точно сформулировать, какие последовательности описы- описываются ими. Определим любую строку, состоящую из букв, при- применяемых для обозначения сигналов, звездочек, знаков V и ско- скобок, как регулярное выражение при условии, что она может быть построена в соответствии со сформулированными ниже правилами. Каждое регулярное выражение будет служить для представления некоторого множества последовательностей сиг- сигналов. Такое множество называется регулярным множеством по- последовательностей. Нижеприведенные правила также объясняют, как «работает» представление. ОПРЕДЕЛЕНИЕ КЛАССА РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ Любой одиночный буквенный символ х является регулярным выражением. Он в точности представляет множество, состоящее из един- единственной (однобуквенной) последовательности х. Если Е и F — регулярные выражения, то выражение (EF) также является регулярным. Множество последовательностей, представимых регулярным выражением (EF), образуется следующим путем: выбираем лю- любую последовательность Si из множества, представляемого ре- регулярным выражением Е, и любую последовательность s^ из множества, представляемого регулярным выражением F. Тогда последовательность, образованная присоединением последова- последовательности S2 к концу последовательности si, является последова- последовательностью из множества, представляемого регулярным выраже- выражением (EF), и только такие последовательности принадлежат Этому множеству. Если Е, F,...,G — регулярные выражения, то выражение (E'S/ F V ... V G) также является регулярным. Множество последовательностей, представимых регулярным выражением (Е V F'V... V G), содержит все последователь- последовательности, которые принадлежат любому множеству, представимому
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 101 регулярными выражениями Е, или F, или ..., или G, и только эти последовательности. (Таким образом, оно образуется престо «объединением» этих множеств.) Если Е — регулярное выражение, то выражение Е* также является регулярным. Множество последовательностей, представимых регулярным выражение Е*, образуется следующим образом: пусть sit s2> ••• ..., Sh — любое подмножество последовательностей из множе- множества, представляемого регулярным выражением Е. Тогда их по- последовательная запись в строку является последовательностью из ?*,причем этому множеству принадлежат только такие по- последовательности. Примечание: допускается также случай, когда никаких последовательностей нет, т. е. когда k равно нулю. Это иногда приводит к некоторому затруднению, состоящему в том, что в этом случае нужно говорить о «пустой последователь- последовательности»— последовательности, вовсе не содержащей сигналов1). Регулярными выражениями являются лишь те, которые опре- определены приведенными выше правилами, и никакие другие вы- выражения не являются регулярными2). Регулярное множество последовательностей — это множество всех последовательностей, полученных применением сформули- сформулированных выше правил. Мы использовали то, что математики называют рекурсивным определением. При этом способе определения начинают со сле- следующего утверждения: [БАЗА: 1 В классе определены некоторые («примитивные») объекты. Затем приводятся некоторые правила, устанавливающие, что: | РЕКУРСИЯ: I Если определенные виды объектов принадле- принадлежат классу, то некоторые другие объекты, образованные из них, также принадлежат классу. Наконец, обычно формулируется ограничение вида [ОГРАНИЧЕНИЕ: | Классу не принадлежат никакие объек- объекты, кроме тех, которые образованы в соответствии с вышепри- вышеприведенными правилами. Задача 4.2.1. На вход сети подается последовательность из нулей и еди- единиц. Найти: регулярное выражение, описывающее поведение сети (легко); диаграмму состояний (труднее); сеть Мак-Каллока — Питтса (обычно очень сложно) в каждом из следующих случаев: ') Регулярное выражение Е* можно представить таким образом: (пустая последовательность) V Е V ЕЕ V ЕЕЕ V ... 8) Скобки разрешается опускать, если это не может привести к неодно- неоднозначности; например, можно писать EFG вместо (E(FG)) или ((?F)G) Нет оснований для того, чтобы ие делать такого допущения.
,02 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Выходной импульс появляется тогда'), когда во входной последова- последовательности: 1) число единиц делится на 3, 2) все единицы появляются сериями по крайней мере из трех единиц, 3) единица не появляется в момент времени, делящийся на 2 или 3, 4) имеется четное число серий единиц, причгм длина каждой серии есть нечетное число. 4.2.1. Рекурсивные определения и индуктивные доказательства Понятие «рекурсивное определение» важно само по себе, и мы далее в этой книге будем иметь с ним дело не один раз. По- Поэтому вполне уместно здесь уделить время более детальному изучению этого понятия. Вновь обратим внимание на рекурсив- рекурсивное определение регулярного выражения, на этот раз не слиш- слишком интересуясь его интерпретацией. Обозначим через К класс регулярных выражений. БАЗА: Любой буквенный символ а, Ь, с, ... является вы- выражением из К. РЕКУРСИЯ: Если Е и F — выражения из К, то (EF) — также выражение из К- Если Ei, E2, ..., ?„ —выражения из К, то (Ех V Е2 V ... V Еп) — также выражение из К,- Если Е — выражение из К, то Е* —также вы- выражение из К- ОГРАНИЧЕНИЕ: Классу К принадлежат только те выраже- выражения, которые образованы в соответствии с приведенными выше правилами. Очень часто ограничения не формулируют особо, подразуме- подразумевая при этом, что нас не интересуют более «богатые» системы или «расширения», которые, возможно, содержат в себе К- Термины «рекурсия» или «рекурсивный» используются в ли- литературе, чтобы показать, что при таком определении класс существенно определяется рекурсией в самом определении. В данном случае мы определяем некоторый класс К. Название К появляется в той части определения, которую мы назвали базой; в этой части нет порочного круга: здесь мы только пе- перечислили некоторые элементы, принадлежащие К, и, чтобы это понять, нам вовсе не нужно знать что-либо о классе К. Но в той части определения, которую мы назвали рекурсией, есть такие слова, как «... если Е — выражение из К, то ...», и здесь ') Точнее, выходной импульс равен \. — Прим. перед.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ ЮЗ оказывается, что мы должны уже знать что-то о классе К — объекте, которому дается определение, — чтобы придать смысл самому определению! Таким образом, в рекурсивном определе- определении есть что то такое, что предполагает возможность появления в нем порочного круга, и, следовательно, что-то неудовлетвори- неудовлетворительное. В самом деле, это вполне вероятно. Таким образом, если бы мы опустили ту часть определения, которую назвали базой, оставшаяся часть определения была бы совершенно бес- бесполезной, потому что было бы нельзя что-либо сказать, какие выражения действительно принадлежат К, а какие нет. В последующих главах центральное место займет изучение вопроса именно о том, когда рекурсивное определение справед- справедливо, а когда оно содержит порочный круг. Сейчас же нам будет полезно изучить некоторые детали на нескольких примерах ре- рекурсивных определений. Первый пример заимствован из элемен- элементарной алгебры. 4.2.2. Множество «прапильных» окобочных вырвжений Рассмотрим элементарные алгебраические выражения (а + Ь) )а + (a + b)(c + d) )a+)b(c + d( a{b + (c + d) + e) a)b + (c+)d + e( Можно заметить, что те из них, которые расположены в первой колонке, имеют смысл, в то время как выражения во второй колонке бессмысленны. Это отличие, по всей вероятности, дик- диктуется правилами грамматики; выражения во второй колонке чем-то «грамматически неверны». Скобки — это парные знаки препинания, которые употреб- употребляются для разметки фраз или предложений. Во второй колон- колонке скобки расставлены так, что просто не понять, какие пред- предложения выделяются. Если выписать лишь одни скобки, опустив буквенные символы, то это отличие между выражениями в двух колонках станет еще более явным. Теперь легко видеть, какие скобочные выражения «правильны», а какие нет! О ) (О) (О (О) )()) Приведем рекурсивное определение класса правильных скобоч- скобочных выражений. •.
104 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ РЕКУРСИВНОЕ ОПРЕДЕЛЕНИЕ КЛАССА Р БАЗА: ( ) принадлежит классу Р. РЕКУРСИЯ: 1) 2) ОГРАНИЧЕНИЕ Если Е принадлежит Р, то (Е) принадлежит Р. Если Е и F принадлежат Р, также принадлежит Р. у. Ничего другого в классе Р не жится. также то EF содер- (Л>) (Pi) (Р2) В соответствии с этим определением среди прочих можно сформировать следующие выражения: (О) ()() (((( )))) ((( )( ))) ((( ))( )) (( )( )( )) (( )(( ))) (О ())() Они образуют все правильные структуры, содержащие до восьми символов включительно. Теперь вернемся к вопросу о том, как определить, когда ре- рекурсивное определение действительно определяет что-либо и когда оно содержит порочный круг. Не будем пытаться давать общего ответа на этот вопрос. Как будет видно из последующих глав, это безнадежно. Однако в отдельных случаях мы можем решить задачу. Приведем здесь простую процедуру, применение которой поможет ответить на вопрос, принадлежит ли данное выражение классу Р или нет. Из многих существующих способов решения этой задачи нижеследующий способ является, несо- несомненно, наиболее легким и универсальным. 4.2.3. Мотод подсчета скобок Данная процедура основана на использовании некоторой ма- машины, распознающей правильные, т. е. принадлежащие, опреде- определенному выше классу Р, скобочные последовательности. Эта машина во многом похожа на машины, рассмотренные в преды- предыдущих главах, за исключением того, что она имеет бесконечное число состояний (рис. 4.2.1).
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ |05 Для решения любого частного примера будет достаточно иметь лишь конечное число состояний, так что сейчас нет не- необходимости обсуждать, что такое машина с бесконечным чис- числом состояний; это является предметом обсуждения в последую- последующих главах. Хотя мы убедимся в том, что не стоит применять бесконечные машины без достаточных на то основании, в дан- данном случае действительно не существует конечной машины, спо- способной решить поставленную задачу, по крайней мере для всего класса скобочных выражений. Запуск Рис. 4.2.1. Машина М, реализующая правильные скобочные последователь- последовательности. Итак, пусть Е — скобочное выражение. Определим функцию Qi[E] как заключительное состояние машины М, в которое она приходит из начального состояния qt под действием последова- последовательности символов, принадлежащих Е. Докажем следующую теорему. ТЕОРЕМА Произвольное выражение Е принадлежит классу Р тогда и только тогда, когда Qi [?] = ?!• Ф Заметим, что это весьма сильная теорема; она говорит не только о том, какие выражения принадлежат классу Р, но также и о том, какие выражения не принадлежат классу Р. Доказа- Доказательство поучительно тем, что оно показывает, как можно свя- связать структуру рекурсивного определения (в данном случае класса Р) со структурой машины (в данном случае машины М). План доказательства. Определим С как класс выражений со свойством Q\[E] = q\. В действительности мы должны доказать две вещи: сначала, что если Е принадлежит С, то Е принадлежит Р, и затем, что если Е принадлежит Р, то Е принадлежит С. Отсюда последует, что оба класса должны совпадать. Докажем, что если Е принадлежит Р, то Q\[E] = qlt т. е. что Е принадлежит С.
[06 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Приведем простое рекурсивное доказательство того, что это свойство справедливо для любого выражения, принадлежа- принадлежащего Р. БАЗА: Qi[()] = ?i. Это легко заметить, подав последователь- последовательность () на вход машины1), начальное состояние которой есть q\. Следовательно, ( ) принадлежит С. РЕКУРСИИ: Пусть Q\[E] = qx. Тогда если машина перво- первоначально находится в состоянии q\ и на нее подана последова- последовательность Е, то состояния Н (останов) никогда нельзя достичь. Отсюда следует, что если в последовательности Е сдвинуться на одну позицию вправо, то Q2[E] = q2. Заметим, что для последовательности (Е мы также имеем Следовательно, Итак, если Е принадлежит С, то (Е) также принадлежит С. Предположим далее, что Е и F принадлежат С. Тогда при вы- вычислении Q\[EF] машина, просмотрев сначала последователь- последовательность Е, возвратится в состояние q\ (потому что Q[E]'= q{) и за- затем, просмотрев F, окончательно возвратится в состояние q\ (по- (потому что Q\[F] = q{). Следовательно, если Е и F принадлежат С, то EF также принадлежит С. Теперь три последних утверждения, выделенных рамками, в точности соответствуют трем утверждениям в рекурсивном опре- определении Р (разд. 4.2.2). Можем ли из этого сделать заключение, что классы С и Р совпадают? Пока нет, потому что еще не до- доказали утверждения, содержащегося в ОГРАНИЧЕНИИ. Мы, однако, уверены в том, что все, что содержится в Р, принадле- принадлежит и С, т. е. класс Р содержится в классе С, что и хотели до- доказать здесь. Теперь должны доказать, что класс С содержится в классе Р. >) См. рис. 4.2.1. — Прим. перев.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 107 Докажем, что если Е принадлежит С, то Е принадлежит Р. Эта часть — более интересная и менее очевидная. Потре- Потребуется новый метод обращения с рекурсией, и мы используем математическую индукцию по длине выражений. Нужно пока- показать, что если теорема справедлива для всех выражений, мень- меньших некоторой длины, то она должна быть справедлива и для выражений этой длины. «Индукция» есть простой вид рекурсии. Определим длину [Е] как число символов в Е. БАЗА: Если длина [Е] равна 2 и Е принадлежит С, то Е принадлежит Р. Это справедливо, поскольку единственное вы- выражение, которое удовлетворяет условиям, это ( ). А оно при- принадлежит Р, потому что содержится в БАЗЕ определения класса Р (где обозначено через Ро). ИНДУКЦИЯ: Предположим, что для любого выражения длины меньше k мы показали, что если оно принадлежит С, то оно принадлежит и Р. Теперь рассмотрим любое выражение Е длины k. Рассмотрим два случая. В первом случае Е можно раз- разделить на две части — F и G, такие, что E = FG, причем как F, так и G принадлежат С. Во втором случае такого разбиения Е сделать нельзя. СЛУЧАЙ I. Тривиален. Если Е = FG, то как F, так и G короче k, где k — длина Е. Поскольку как F, так и G принад- принадлежат С, то по гипотезе индукции оба они принадлежат Р. Сле- Следовательно (согласно Р2 из определения класса Р), Е должно принадлежать Р. СЛУЧАЙ II. Если Е принадлежит С, то Q\[E] = q\. Если нельзя разбить Е на два более коротких выражения, принадле- принадлежащих С, мы можем сделать вывод, что машина, проверяющая правильность скобочных выражений (рис. 4.2.1), после просмо- просмотра не возвращается вновь в состояние q\. Следовательно, после просмотра первого символа мащина должна перейти в состоя- состояние Q2, а после просмотра предпоследнего символа из Е должна оказаться в том же состоянии (поскольку оно единственное, из которого можно достичь состояния q\ после просмотра послед- последнего символа из Е). Отсюда следует, что последовательность Е должна иметь вид (F) и что Qz[F] = q2. Теперь заметим, что машина никогда не окажется в состоянии q\ в течение времени вычисления Q2[F]. Следовательно, если начальное состояние ма- машины есть q\, а входная последовательность есть F, то Q\[F] = = q\ (потому что структура машины одинакова при ее рассмот- рассмотрении из любого места справа от начального состояния и процесс вычисления, как мы знаем, не затрагивает того, что находится слева от стартового состояния). Стало быть, по определению F принадлежит С. Далее, поскольку F короче k (длины Е), F дол- должно принадлежать Р и, следовательно (по Pi), E = (F). Это
108 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ завершает доказательство того, что если Е принадлежит С, то Е принадлежит Р, и, учитывая предыдущий раздел доказа- доказательства, одновременно и доказательство того, что Е и С совпа- совпадают. ЗАМЕЧАНИЯ. Мы начали с определения класса Р правиль- правильных скобочных выражений, предложив сравнительно простое рекурсивное определение. Мы показали, что можно «распознать» или «решить», какие последовательности принадлежат этому множеству, используя простой тип «пересчетной машины». Ме- Метод решения задачи весьма прост: нужно только подать выра- выражение на вход машины и отметить заключительное ее состояние. Вопроса о времени вычисления не возникает: число шагов про- процесса вычисления как раз равно длине выражения. Можно придумать другие рекурсивные определения, для ко- которых будет труднее иайти соответствующую тестирующую ма- машину, такую, которая могла бы дать определенный ответ, какие выражения принадлежат рассматриваемому классу и какие нет. Как будет видно из дальнейшего, имеются даже случаи, когда такой машины не существует. В лучшем из таких случаев мо- можем иайти конструкцию машины, которая только иногда сможет дать ответ, а в остальных случаях будет вовлечена в процесс вычисления, не ограниченный во времени. Забегая вперед, мо- можем спросить здесь, почему в данном случае удалось доказать теорему. Ответ таков: рекурсивное определение класса Р обла- обладает одним очень важным специфическим свойством. Каждый раз новое выражение составляется на основе других, ранее со- составленных выражений, принадлежащих рассматриваемому классу; новое выражение имеет большую длину. Так, (Е) длин- длиннее, чем Е, a EF длиннее, чем Е нли F. Этот факт позволяет для любого выражения исследовать только ограниченный класс воз- возможных «предков». Поэтому мы можем завершить доказатель- доказательство индукцией по длине выражения. Существуют способы доказательства эквивалентности клас- классов, заданных различными рекурсивными определениями, в ко- которых используются методы, более общие, чем элементарная индукция по длине аргументов. Читатель, которого это заинтере- заинтересует, может изучить метод «рекурсивной индукции», описанный Мак-Карти [49]. Если бы вместо использования неформального описания нашей тестирующей машины посредством диаграммы состояний мы воспользовались бы рекурсивным определением, то могли бы доказать теорему методом «рекурсивной индукции». Довольно любопытно, что выражения из класса С сами не образуют регулярного множества. Как увидим, любая машина с конечным числом состояний не может распознавать эти вы- выражения. Но мы только что показали, что очень простая ма«
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 109 шина с бесконечным числом состояний может их распознавать. Когда мы обратимся к изучению машин Тьюринга — разновид- разновидности машин с бесконечным числом состояний, — то используем этот класс в качестве одного из первых примеров. Доказательство по индукции связано с рекурсивным опреде- определением совокупности «перечисленных» количеств или объектов. Предположим, что имеем множество объектов, каждому из ко- которых сопоставлено каким-либо способом число (в вышепри- вышеприведенном случае каждое выражение ассоциировалось с его дли- длиной). Мы хотим доказать некоторое утверждение относительно всех объектов. Если мы можем отдельно доказать утверждение относительно объектов, ассоциированных с каждым числом, то этим такое утверждение доказывается и относительно всех объ- объектов. Схема, называемая «математической индукцией», имеет своей целью доказать, что БАЗА: Утверждение справедливо для всех объектов с но- номером 1. ИНДУКЦИЯ: Если утверждение справедливо для всех объектов с номером п, то оно справедливо для всех объектов с номером п+\. Это несомненно доказывает утверждение шаг за шагом для каж- каждого номера. Задача. Что ошибочно в следующем доказательстве? Предложение. Все шарики имеют один и тот же цвет. Имеется ящик, в котором лежат шарики. Докажем, что любая горсть шариков из этого ящика содержит шарики одного цвета. БАЗА: Если мы имеем одни шарик, то такое множество шариков имеет, естественно, лишь один цвет. ИНДУКЦИЯ: Возьмем п + 1 шарик. Выберем п из них. По ин- индуктивному предположению мы можем допустить, что все они одного цвета. Теперь заменим один из этих п шариков шариком, лежащим отдельно. Тогда этот шарик должен быть того же цвета, что и все остальные в новом мно- множестве из п шариков. Итак, все шарики должны иметь один цвет. 4.3. ТЕОРЕМА КЛИНИ: КОНЕЧНЫЙ АВТОМАТ МОЖЕТ РАСПОЗНАВАТЬ ЛИШЬ РЕГУЛЯРНЫЕ МНОЖЕСТВА ПОСЛЕДОВАТЕЛЬНОСТЕЙ Теперь возобновим изучение возможностей и ограничений, свойственных машинам с конечным числом состояний. Рассмот- Рассмотрим конечную машину М с некоторым начальным состоянием (Энач и спросим: «Какие последовательности входных сигналов заставляют машину М перейти в некоторое конечное состояние Qkoh?» Про любую последовательность, обладающую этим
ПО ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ свойством, говорят, что она «распознается» машиной. Множество всех таких последовательностей является множеством последо- последовательностей, распознаваемых машиной М. (Конечно, прн раз- различном выборе <2пач и Qkoh та же самая машина может распо- распознавать ряд различных множеств последовательностей.) Тео- Теорема Клини утверждает, что множества последовательностей, распознаваемых машинами, есть именно регулярные множества последовательностей. (См. задачу 4.5.4.) Разделим доказательство на две части. В этом разделе мы покажем, что любое множество, распознаваемое машиной с ко- конечным числом состояний, регулярно; в разд. 4.4 мы покажем обратное, а именно что любое регулярное множество может распознаваться некоторой машиной. Доказательство (которое по существу принадлежит Клини) базируется на математической индукции по числу состояний машины. Иначе говоря, мы покажем снача- сначала, что если теорема справедлива для всех машин с п состояниями, то это справед- справедливо для всех машин с п + 1 состоянием. Мы покажем также, что это справедливо для всех машин с одним состоянием. От- Отсюда будет следовать, что теорема доказа- доказана для всех машин. Доказательство осно- основано на исследовании множества путей на диаграмме состояний машины от <2нач до Qkoh- Фачтически легче доказать теорему для Рис. 4.3.1. несколько более обширного класса диа- диаграмм, чем для диаграмм машин; приводи- приводимые аргументы справедливы также для «неполных» диаграмм, в которых некоторые стрелки могут быть опущены. Для мате- математики характерно, что бывают случаи, когда доказать более общую теорему может оказаться легче. Однако найти правиль- правильное обобщение — чрезвычайно сложная проблема! Рассмотрим диаграмму, состоящую из вершин (точек) и стре- стрелок, связывающих некоторые из точек. Мы потребуем (времен- (временно), чтобы в каждом направлении между любой парой точек имелась не более чем одна стрелка. Пусть все стрелки отме- отмечены различными буквами. Пример диаграммы приведен на рис. 4.3.1. Теперь проследим пути от одной вершины диаграммы к дру- другой. Путь из х в у является связанной последовательностью стре- стрелок, которая начинается в вершине х и кончается в вершине у. Мы не накладываем никаких дополнительных ограничений на вид пути; например, маршрут abcabcdcdcdgfgfghhh представляет
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ Ц1 собой возможный путь из Q\ в Q4. Возьмем две вершины Qx и Qy (которые могут быть тождественны); наша задача — пока- показать, что множество всех маршрутов из Qx в Qv представимо регулярными выражениями, символы из которых указаны на диаграмме. Доказательство проводится отдельно для двух слу- случаев — когда Qx и Qy различны и когда они одинаковы. Обозначим через Rxy множество путей из Qx в Qy. Дадим важное определение. Пусть Rly — множество всех путей из х в у, которые не содержат вершину г в качестве промежуточной. В случае когда Q2 та же вершина, что Qx или Qy (или обе вме- вместе), Rxy содержит пути, которые начинаются и (или) кон- кончаются в вершине Qz, но ни один из них не содержит Q2 внутри пути. Теперь если Qx = Qv, то Rxx = (/&)*, A) а если Qx и Qv различны, то Rxy = RxxRxy (или также Rxy = RyxyRyy). B) Утверждение A) означает, что любой путь от Qx назад к Qx состоит из некоторого произвольного числа (включая нуль) кон- контуров, причем один и тот же контур может входить в путь про- произвольное число раз. Утверждение B) отражает тот факт, что любой путь из Qx в Qv должен включать последний участок, проходящий через вершину Qx; в этой точке маршрут Rxx за- заканчивается и начинается маршрут R*y1)- Если мы сможем по- показать, что Rxx nRxy — регулярные множества, то из A) и B) последует, чтоRxx и Rxy — также регулярные множества, т.е. как раз то, что мы должны доказать. Теперь покажем, что все мно- множества Rly регулярны. Рассмотрим множество Rxy. Такое множество в действитель- действительности относится к новой диаграмме, в которой в определенном смысле устранено одно состояние Qz. Если удастся описать мно- множество Rly посредством диаграммы, в которой состояние Qz отсутствует, то мы сможем использовать гипотезу индукции от- относительно того, что множество путей между парами вершин в диаграммах с меньшим числом вершин регулярно. Пусть Саь — метка на стрелке между Qa и Q&, если такая стрелка имеется. В противном случае символ СаЬ считается лишенным смысла. ') Действительно, путь из вершины х в несовпадающую с ней вершину у может сколь угодно большое число раз проходить по контуру через вер- вершину х (причем такой контур может включать и вершину у), но, для того чтобы закончиться в у, он должен когда-нибудь в последний раз пройти через х и затем направиться в у.
112 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Метка Саа всегда имеет смысл (ее интерпретация будет дана позже). Ключевой шаг в доказательстве состоит в установлении того факта, что множество Rzxy составлено из путей Сху (если они существуют) вместе со всеми имеющими смысл последо- последовательностями, описываемыми выражениями вида в котором ни т, ни п не то же самое, что г. Почему можно счи- считать, что это верно? Потому что любой путь из Qx в Qy, который принадлежит Rxy, должен идти либо непосредственно из Qx в Qy, либо через некоторую цепочку вершин, которая в своей внутренней части не касается вершины Qz. Должны найтись не- некоторое состояние Qm, которое является первым в этой цепи (после выхода из Qx), и некоторое состояние Qn, которое яв- является последним (перед приходом в Qy); остальные вершины в этой цепи должны принадлежать Rzmn. Заметим, что если каж- каждое из таких множеств Rzmn из C) регулярно, то Rzxy также регулярно, потому что оно составлено из них и из множеств С посредством знака V и присоединения. Заключительный шаг: по гипотезе индукции множества R^n в C) должны быть регулярны. Для каждого множества Rim имеется множество путей между двумя вершинами графа, число вершин в котором меньше, чем в первоначальном. Действитель- Действительно, этот граф получится, если удалить вершину Qz вместе с ее стрелками. Следовательно, из регулярности множеств C), B) и A) будет вытекать регулярность множеств Rxx и Rxy. Мы дол- должны, наконец, показать (база индукции), что теорема справед- справедлива для случая графов с одной вершиной. Но множество мар- маршрутов из Qi в Qi есть (Сц)*, которое регулярно, если регуля* рен путь Сц. Чтобы применить доказательство к диаграммам состояний машин, мы должны надлежащим образом интерпретировать сим- символы Саь. Если Qa и Qb — различные состояния машины, то от Qa к Qb могут идти стрелки, а могут и отсутствовать. Если стре- стрелок нет, мы просто опускаем любое выражение в C), которое содержит член Са&. Если имеется несколько таких стрелок, отме- отмеченных буквами п\, ..., ап, заменяем символ Саь выражением («iV.. .Van). Символ Саа мы должны трактовать в зависимо- зависимости от условий одним из двух способов. Если имеются стрелки, ведущие от Qa прямо к Qa (как в случае Сц в примере), заме- заменяем Саа выражением, образованным из соответствующих букв, связанных знаками V, точно так же, как для Саь- (В примере С44 заменено просто буквой h.) Но даже если стрелки от Qa
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ ИЗ обратно в Qa отсутствуют, мы не должны полностью исключать соответствующих выражений из множества C), потому что вы- выражения типа CxxRxnCny еще представляют собой возможные пути. В таком случае мы просто удаляем символ С, получая выражение Rxn.Cny, как и в случае, когда одинаковые индексы имеют правый символ С. Выполняя эту процедуру, в конечном итоге обнаружим, что все символы С и R исключены, что приводит к регулярному выра- выражению, использующему входные символы машины. База индук- индукции— то, что множество сигналов, распознаваемых машиной с одним состоянием, регулярно, — тривиальна, так как это мно- множество есть (aV^V ... Vz) *, где a, b, ..., z— множество вход- входных символов машины. 4.3.1. Пример Предположим, что мы хотим вычислить путь/?п на рис. 4.3.1. В соответствии с правилом A) сразу имеем Затем по правилу C) распишем Rn: Ru = C12R23C31 V C13R33C3U прямо из Qx можно попасть только в Q2 или <2з- Поскольку С^ есть а, С31 есть с, а С)з есть d, комбинируя эти два выражения, получим Далее по правилу B) имеем #23 = R22R23', но #22 пусто, так что #23 = #2з- Затем мы распишем #гз, заме- заменяя обозначения путей С буквами, помечающими стрелки: и, продолжая, получим
||4 ЧАСТЬ t. КОНЕЧНЫЕ МАШИНЫ где член h = Си не тривиален и должен быть включен. Анало- Аналогично После подстановки правых частей полученных выражений в вы- выражение для /?2з получим Rl23 = b(gh*f)*Ve(hVfg)*fVe(hVfg)*fVb(gh*f)*gh*f. Нет ничего удивительного в том, что некоторые члены повто- повторяются, так как один и тот же подграф для Qz и Q4 был полу- получен несколькими способами. Приведенное выше выражение эк- эквивалентно следующему: Rk = Ь (gh*f)* V е(h V fg)*/• Остается расписать R^: Rl33 = {Rl?)* =(gR«fV gRl?)* =(gh*fV gh*f)* =(gh*f)*. Итак, окончательно получаем Ru = (a(b(gh*f)*ve(hvfg)*f)cvd(gh*f)*c)*. Задача 4.3.1. Объясните словами значение выражений, полученных выше последовательно на каждом шаге. Задача 4.3.2. Найдите регулярное выражение для пути Ri4 в приведен- приведенной выше сети. 4.3.2. Замечания На диаграмму машины не накладывалось ограничения, со- согласно которому все буквы на ней должны быть различны. Пусть диаграмма на рис. 4.3.1 перемаркирована так, что исполь- используются лишь две буквы (рис. 4.3.2). Путем простой подстановки букв х и у вместо соответствующих букв старой диаграммы мы получим регулярное выражение Ru =(х(х{уу*х)* V У {У V ху) *х) х V У {уу *х) *х)* (А) для множества путей из Qi обратно в Qi в новой диаграмме. Это подлинная диаграмма машины с конечным числом состоя- состояний, так как каждая буква встречается при каждой вершине точно един раз. Множество путей, о котором идет речь, может представ- представляться не обязательно одним регулярным выражением. Каждое регулярное множество имеет много регулярных выражений. Су- Существует алгебра регулярных выражений, в которой возможны
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 115 многие преобразования и упрощения (см. задачу 4.3.3). Напри- Например, можно упростить полученное выше выражение для Ru, приведя его к виду {{ху*хУ у)(уу*х)*х)*. . (В) Дадим объяснение этому выражению. Чтобы из состояния Qi возвратиться в состояние Qi, нужно пройти через состояние Q3. Имеются два способа достичь состояния Q3: xy * х и у (это само по себе не так уж очевидно). Задержать возвращение в состояние Qi можно затем, только пе- перемещаясь между состояниями Q3 и Q4; выражение уу * х включает каждый та- такой цикл. Наконец, нужно возвратиться в Qi; для этого требуется сигнал х. Было бы очень трудно доказать, что вы- выражения (А) и (В) эквивалентны, не прибегая к формальным правилам пре- преобразований. Задача 4.3.3. Покажите, что множества, пред- представляемые выражениями Ь(аЬУЬ)-ка и ЬЬ-к а (ЬЬ * а)-к , совпадают. Используйте этот факт для установления эквивалентности приве- приведенных выше выражений (А) и (В). Попытайтесь убедиться в том, что эти утверждения вполне справедливы независимо от того, к каким конкретным диаграммам они относятся. Придумайте несколько преобразований для полу- получения эквивалентных регулярных выражений и найдите соответствие между ними и некоторыми преобразованиями диаграмм состояний. Например, убе- убедитесь в справедливости следующих преобразований: Ь(аЬ\/ Ь)к а = Ь (Ь V ab) * а = Ь (Ь * аЬ) * Ь * а = ЬЬ * а (ЬЬ * а) *. Задача 4.3.4. Дайте интерпретацию соотношений A), B) и C) для диа- диаграмм, полученных расщеплением каждой вершины на несколько вершин в соответствии с числом стрелок, которые из нее выходят. Клини [40] приводит среди других следующие результаты. Цитируем1): АЛГЕБРАИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ РЕГУЛЯРНЫХ ВЫРАЖЕ- ВЫРАЖЕНИЙ. Перечислим некоторые равенства для множеств таблиц. (К изучению эквивалентностей мы лишь приступили.) OF \/ F — Р 9\ F \/ F = F \/ F Рис. 4.3.2. 3) {Е V F) V О = Е V {F V G), 5) (Е * F) G = Е * (FG), 7) Е (F V О) = EF V EG, 9) Е * F = F V Е * EF, 11) E*F = ES*(FV EFVE2FV . 4) (EF) O = E (FG), 6) (EV F)O = EG\/ FG, 8) E*(FVG) = E*FV 10) E*F = F\J EE*F, ') Русский перевод статьи см. в сб. «Автоматы», ИЛ, 1956, стр. 40. — Прим. перев.
Ив ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Для доказательства правила 11 мы имеем s-i s-l 2 ^ 2 2 ^ n=0 q=0 r-0 q=0 Г-0 Задача 4.З.5. Какие из следующих выражений верны? E*F = (EV E*)F, E*F* =(?V F)*{EF)*, E*F* =E*EF*\/ E*FF*, (?V F)* =(E*V F*)(F*V E*)*, E (FOE) *FG = EF [GEF) * G. Задача 4.З.6. Покажите, что если дано любое регулярное множество Е, то множество, состоящее нз членов Е, каждый нз которых записан в обрат- обратном порядке, есть также регулярное множество. (Прн доказательстве исполь- используйте рекурсивное определение регулярного выражения.) 4.4. ТЕОРЕМА КЛИНИ (ПРОДОЛЖЕНИЕ): ЛЮБОЕ РЕГУЛЯРНОЕ МНОЖЕСТВО МОЖЕТ БЫТЬ РАСПОЗНАНО >) НЕКОТОРОЙ МАШИНОЙ С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ Теперь докажем теорему, обратную теореме 4.3: покажем, что для любого регулярного множества последовательностей существует машина с конечным числом состояний, которая рас- распознает именно такое множество. Это (вместе с результатами разд. 4.3) показывает, что множества, распознаваемые маши- машинами, и множества, представляемые регулярными выражениями, являются коэкстенсивными — в том смысле, что понятия регу- регулярное множество и множество, распознаваемое некоторой ма- машиной, эквивалентны. Наш способ доказательства состоит в том, чтобы показать, что любое множество, представимое регулярным выражением, распознаваемо сетью Мак-Каллока — Питтса. Поскольку любая сеть Мак-Каллока — Питтса есть машина с конечным числом состояний, теорему можно будет считать доказанной. Можно было бы (хотя и с некоторыми затруднениями) непосредственно построить диаграмму состояний машины, но оставим это для примера. Во всяком случае, поскольку сеть Мак-Каллока — Пит- Питтса является частным способом реализации конечной машины, мы получим более сильный результат. Действительно, если мож- можно показать, что любое регулярное множество реализуемо неко- некоторой конечной машиной особого типа, то это значит получить более сильный результат, чем в том случае, когда показано, ¦J Иначе, представимо. — Прим. перев.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 117 что любое регулярное множество реализуемо некоторой конеч- конечной машиной из множества веек конечных машин. Разобьем доказательство на две части. В первой (разд. 4.4.1) дано очень простое прямое доказательство несколько более сла- слабой теоремы, в котором будет использован новый тнп элемента. Во второй части (разд. 4.4.2) это доказательство пересматри- пересматривается с тем, чтобы исключить такие элементы. 4.4.1. Реализация регулириых выражений с иемещью элементов ИЛИ без задержек Применим рекурсивный способ построения сетей для рас- распознавания регулярных множеств или последовательностей, ис- используя структуры соответствующих регулярных выражений. Рис. 4.4.1. Сеть, реализующая однобуквенные сигналы. Сначала мы должны реализовать однобуквенные выражения. Сети на рис. 4.4.1 реализуют множества, представленные выра- выражениями а, Ь, с, ... Затем нам нужно построить сети для реа- реализации выражений EF, Е* и (fVTV... VG), предполагая, Рис. 4.4.2. Сеть, реализующая регу- регулярное выражение (EVFV ... VG). Рис. 4.4.3. Сеть, реализующая регу- регулярное выражение EF. что имеются сети, реализующие отдельные буквы, появляющиеся в выражениях. Для выражения (EVFV ... VG) достаточно про- просто «собрать» выходы отдельных сетей, используя новый эле- элемент— элемент ИЛИ без задержки (рис. 4.4.2). Элемент ИЛИ без задержки работает подобно обычному элементу с порогом 1, за исключением того, что (по нашему
118 ЧАСТЬ 1. КОНЕЧНЫЕ МАШИНЫ предположению) при передаче сигналов он не вносит временной задержки. В действительности мы применяем его для того, чтобы связать вместе различные выходные волокна. Поскольку этот элемент не соответствует нашим первоначальным требо- требованиям, предъявляемым к элементам конечных машин, мы дол- должны отказаться от его применения, прежде чем сделаем вывод, что теорема доказана. Чтобы реализовать выражение EF, мы должны только сое- соединить сети Е и F последовательно, как на рис. 4.4.3. Идея со- состоит в том, что выход сети Е используется для формирования стартового импульса, запускающего сеть F. Таким образом, если (сначала) появится последовательность Е, выдающая стартовый импульс на сеть F, то на выходе сети F появится ответный сиг- сигнал. Здесь имеется тонкость, заключающаяся в том, что на Рис. 4.4.4. вход сети F могут поступать несколько стартовых импульсов. Но тщательная проверка покажет, что такая конструкция будет работать нормально, и выход сети F будет отвечать любой по- последовательности, состоящей из последовательности Е, за ко- которой следует последовательность F. (См. нижеследующее за- замечание.) Наконец, мы должны реализовать последовательность Е * при условии, что дана последовательность Е. Сеть на рис. 4.4.4 реализует такую последовательность. Стартовое волокно в этой сети соединено (через элемент ИЛИ без задержки) петлей об- обратной связи с входом сети Е. Поэтому всякий раз, когда сеть Е распознает последовательность Е, эта последовательность по- повторяется, ожидая появления следующей. Следовательно, сеть распознает любую последовательность, составленную из неко- некоторого числа последовательностей Е, следующих одна за другой. ЗАМЕЧАНИЕ Сети, о которых мы здесь говорили, могут подвергаться воз- воздействию более чем одного стартового импульса. Можем ли мы быть уверены з том, что они функционируют так, как это тре- требуется? Ответ таков. Мы должны включить это условие в струк-
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ Ц9 туру рекурсивного доказательства. Если это сделать, мы обна- обнаружим, что на самом деле должны доказать теорему, которая несколько сильнее той, что требуется. Будем говорить, что сеть N сильно распознает регулярное множество Е, если им- импульс на ее выходе в момент времени t вырабатывается тогда и только тогда, когда в ее предыстории на входе сети появля- появлялась последовательность Е, начало которой сопровождалось стартовым импульсом (а конец соответствовал моменту t—1). Теперь, просматривая вновь этот раздел, мы убедимся в том, что сети для реализации символов а, Ь, с и т. д. сильно распо- распознают однобуквенные последовательности. Сеть ИЛИ (это три- тривиально) сильно распознает дизъюнкцию рассматриваемых сетей. А определение сильного разпознавания в точности описы- описывает как раз то, что распознают сети для EF и Е* . Интересно отметить, что если бы мы не использовали поня- понятие сильного распознавания, было бы очень трудно непосред- непосредственно доказать, что эти сети правильно распознают соответ- соответствующие регулярные множества в обычном (слабом) смысле, когда разрешается лишь один стартовый импульс. Мы обнару- обнаруживаем здесь другой пример из математики, когда легче дока- доказать более общую теорему. ПРИМЕР Реализуем сеть, описываемую выражением (а V с * Ь) *. Сеть, реализующая выражение с *, показана на рис. 4.4.5. На рис. 4.4.6 — 4.4.8 показаны сети, реализующие соответственно выражения с * b, aVc * b, (a Vc * b) *. 4.4.2. Исключение элементов ИЛИ без задержек Теперь исключим из системы элементы ИЛИ без задержек. Чтобы сделать это, посмотрим, как организована подача вход- входных импульсов на элементы сети. Рассмотрим любой элемент сети с порогом 2. Мы условились, что каждый элемент имеет ровно два входных волокна. Верхнее волокно — это один из од- нобуквенных входов. (Кроме того, имеется точно один такой элемент на каждый случай повторения буквы в исходном регу- регулярном выражении.) Нижний вход элемента с порогом 2 может соединяться 1) со стартовым волокном сети, 2) с выходом другого элемента с порогом 2, 3) с выходом элемента ИЛИ.
120 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Сигналы, поступающие от элементов ИЛИ, в действительно- действительности передаются непосредственно со входов этих элементов. Вхо- Входом элемента ИЛИ является либо 1) стартовое волокно, либо 2) выход элемента с порогом 2, либо 3) выход другого элемента ИЛИ. Предположим, мы выбрали элемент с порогом 2 и просмат- просматриваем всю сеть, чтобы найти все источники импульсов в сети, которые могут возникать и мгно- мгновенно достигать его нижнего входа, не обращая при этом внимания на встречающиеся элементы ИЛИ. Список этих источников может включать в себя: 1) стартовое во- волокно и 2) некоторое количество элементов с порогом 2. (Мы не включили в этот список элементы ИЛИ, потому что они не генерируют сигналов, а только передают их.) Например, на нижний вход элемента с верхним входом а на рис. 4.4.8 входные сигналы поступают одновременно от старто- стартового волокна S и с выходов элементов а и б1). На элемент Ъ сигналы приходят непосредственно с S, a, b и с; то же самое справедливо для элемента с. Рис. 4.4.5. Рис. 4.4.6. Рис. 4.4.7. Сигнал на верхнем входе элемента соответствует просто по- появлению во входном сообщении сигнала в виде буквы, соответ- соответствующей этому элементу. Нижний вход возбуждается (через элемент ИЛИ без задержки), если происходит любое из со- событий, записанных в вышеупомянутом списке, — для элемента а ') Обозначение элементов совпадает с обозначениями их верхних вхо- входов. — Прим. перед.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 121 Рис. 4.4.8. это возбуждение волокна S, или элемента а, или элемента Ь. Что касается элемента а, то удобно изобразить остальную часть сети так, как это показано на рис. 4.4.9. По той же причине можно перестроить всю сеть таким образом, чтобы на каждый элемент с порогом 2 приходилось по одному элементу ИЛИ (плюс один такой элемент для сборки выходов), как на рис. 4.4.10. Чтобы убедиться в том, что эта сеть ведет себя точно таким же образом, как и сеть на рис. 4.4.8, достаточно лишь прове- проверить, что условия возбуждения каждого элемента с порогом 2 одинаковы в обеих сетях. Это гарантируется способом составле- составления списка условий возбуждения. Рис. 4.4.9. Рис. 4.4.10.
122 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Новая сеть не имеет преимуществ в смысле простоты соеди- соединений или в отношении числа элементов, но обладает бесспор- Рис 4.4.11. Рис. 4.4.12. ным преимуществом с точки зрения наглядности. Схема демон- демонстрирует возможность реализации любого регулярного выраже- выражения сетью, построенной целиком на спаренных элементах, изображенных на рис. 4.4.11. Теперь мы можем исклю- исключить элементы ИЛИ. Заметим, что сеть на рис. 4.4.11 в точности эквива- эквивалентна простому элементу Мак-Калло- ка — Питтса на рис. 4.4.12. В обоих случаях выходной элемент возбудится тогда и только тогда, ко- когда возбудятся верхнее волокно и одно или более нижних волокон. При лю- любой другой комбинации выходной эле- элемент не будет возбужден. Аналогично в общем случае, когда имеется п ниж- нижних входов, порог нужно установить равным п + 1, а верхнее волокно дол- должно иметь п ветвей. Если проделать все это в нашем примере, получится сеть, изображенная на рис. 4.4.13. В результате из сети можно исклю- исключить все элементы ИЛИ без задер- задержек, за исключением одного, на выходе1). Конечно, можно за- заменить выходной элемент ИЛИ без задержки обычным элемен- элементом Мак-Каллока — Питтса; это приведет к дополнительной задержке выходного сигнала на единицу времени. Теперь мож- можно сказать, что Рис. 4.4.13. ') В сети нет других элементов, кроме немонотонных (разд. 3.6.1). Это обусловлено тем, что, как и в разд. 3.5, мы предполагаем осуществление полного декодирования на каждом отдельном входе.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 123 любое регулярное множество может быть распознано сетью Мак-Каллока — Питтса с возможной задержкой на одну до- дополнительную единицу времени. Если имеется волокно, соединяющее стартовое волокно с вы- выходом, выходной элемент ИЛИ без внесения дополнительной задержки исключить нельзя, потому что нам не разрешено объ- объединять волокна непосредственно. (Можно поставить вопрос, что такое соединение могло бы означать. Действительно, в ориги- оригинале у Клини это ограничение было обойдено тем, что знак * был определен как бинарная связка, так что выражение типа ?*не могло встречаться иначе, как в выражениях вида E*F.) См. задачу 4.4.1. Это завершает доказательство того, что если дано любое регулярное выражение Е, то можно найти сеть Мак-Каллока — Питтса, в которой определенный элемент возбуждается (с за- задержкой на 1) в точности тогда, когда закончилась последова- последовательность Е. Чтобы замкнуть цепочку понятий СОСТОЯНИЯ ->¦ РЕГУЛЯРНОЕ МНОЖЕСТВО НЕЙРОННАЯ СЕТЬ мы должны показать, что любое событие, распознаваемое воз- возбуждающимися элементами нейронной сети, может быть пред- представлено событием на диаграмме состояний. В доказательстве есть одно слабое место: не всегда можно представить событие введением соответствующего одиночного состояния на диаграмме состояний. В конце концов, возбуждение отдельного элемента сети не соответствует одиночному состоянию сети, потому что другие элементы одновременно могут быть либо возбуждены, либо нет. Но можно представить событие как появление любого из состояний, которое влечет за собой возбуждение выходного элемента. Это означает только, что для получения соответствующего регу- регулярного выражения мы должны знаком V связать регулярные выражения для каждого из тех состояний, в которых элементы возбуждаются (см. задачу 4.5.4). Это замыкает цепочку дока- доказательств. Задача 4.4.1. Если не существует непосредственной связи стартового входа с выходом, то возбуждение выхода зависит от возбуждения какого- либо одного из остальных элементов сети. Покажите, каким образом следует ввести в сеть новый элемент так, чтобы ои возбуждался всякий раз, когда возбуждается любой из остальных элементов, причем в тот же момент (а не
!24 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ на момент позже). Это достигается дублированием всех связей этого элемен- элемента, которые могут возбудить любой другой элемент, и соответствующей на- настройкой окончаний его волокон н порога. Задача 4.4.2. Приведите вариант доказательства, используя другое по- понятие — регулярные0 множества, в котором регулярное" множество опреде- определяют, используя новую интерпретацию значка *: выражение Е° представляет собой одну или более следующих одна за другой последовательностей из множества, представляемого выражением Е. Затем покажите, что множества последовательностей, определяемых регулярными" выражениями, отличаются от множества последовательностей, определяемых регулярными выражениями, только способом использования пустой последовательности. Действительно, любое регулярное множество идентично некоторому регулярному0 множеству либо непосредственно, либо если к нему добавлена пустая последователь- последовательность. Таким образом, для примеров разд. 4.2 справедливы следующие экви- эквивалентности: 1) а*а = а°, 2) (а V 6 V с)*а = (а\/ 6 V с)°а\/а, 3) а =(а6)°, 4) (а V bed) * bed = (а V bed)" bed V bed, к которым добавим также следующую: (ab) * = (ab)" V (пустая последовательность). При построении сетей для регулярных0 множеств можно использовать сеть Е, изображенную на рис. 4.4.14. Тогда отсутствует связь стартового волокна в выходом, и проблема, об- обсуждаемая выше, здесь ие возни- возникает. Задача 4.4.3. Изучите механизм предотвращения в этих сетях ошибок, обусловленных большим числом старто- стартовых импульсов. Очевидно, не суще- существует конечной машины, которая могла бы различать последовательности, со- содержащие больше некоторого ограни- ограниченного числа стартовых импульсов. Если это число превышено, но машина продолжает функционировать надлежащим образом, это происходит потому, что машина либо 1) забыла некоторые старые стартовые импульсы, либо 2) идентифицирует некоторые из них с одними и теми же эквивалентными классами предыстории. Так, если дано множество, представимое последова- последовательностью (abVa)* V(ba V&)*, то последовательность V . V • a b а а Ь a a b a b a 1 234567 8 9 10 И принадлежит этому множеству, если стартовые импульсы следуют в моменты времени 1, 3, 4, 6, 7, 8, 9, 10 и 11. Что же касается эквивалентности классов предыстории, то моменты 1, 3, 4, 6, 7, 9 и 11 играют одну роль, в то время Рис. 4.4.14.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИИ В КОНЕЧНЫХ МАШИНАХ 125 как моменты 8 и 10 —другую. Стартовые импульсы в момент 2 и 5 могут быть забыты — в состоянии машины ие остается никакого следа от их по- появления. Решая эту задачу, обнаружим, что (допустимые) состояния машины соответствуют некоторому подмножеству вхождений букв в само регулярное выражение. Используя это, можно осуществить прямой переход от регуляр- регулярного выражения к таблице переходов состояний эквивалентной конечной ма- шииы, ие обращаясь к промежуточному звену — построению сети Мак-Калло- ка — Питтса. ПРИМЕР В соответствии со сказанным выше сеть для реализации выражения (a*ft*)* может быть поэтапно построена так, как это показано на рис. 4.4.15. На последнем этапе для связи всех выходных волокон мы используем в качестве общего оконечного элемента элемент ИЛИ. Это не наилучший вариант реализации выражения (а*Ь*)*. Действительно, заданному условию удо- удовлетворяет сеть на рис. 4.4.16. v it) (J) Рис 4.4.16. Различные стадии построения сети, реализующей выражение {а * Ь ¦ ) * : A) сеть с элементами ИЛИ без задержек; B) объе- объединение входов; C) замена элементами Мак-Каллока — Питтса.
126 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ Интересно отметить, что ни в одной из этих сетей не исполь- использовано тормозящих связей. Причина этого состоит в том, что сигналы сначала декодируются — отдельные возбуждения появ- появляются в виде одиночных импульсов на различных волокнах. Такая же ситуация рассматрива- рассматривалась в разд. 3.4; отсутствие немоно- немонотонных элементов до некоторой сте- степени является иллюзией, так как на самом деле они имеются в декодере входных сигналов. Рис. 4.4.16. Более простой ва- _ - - . ,. , риант реализации Задача 4.4.4. Можно убедиться в том, выражения что если сети обладают свойством «силь- (a*h*)*= ного Распознавания» (разд. 4.4.1), то для ' " I ~ каждого регулярного множества может = (а V Ь) * . быть построена сеть, распознающая любую последовательность, принадлежащую этому множеству, которая имела место между любым стартовым импульсом и на- настоящим моментом времени (минус 2). Как отмечалось в задаче 4.4.1, состоя- состояния сети в моменты следования стартовых импульсов соответствуют некото- некоторым подмножествам букв регулярного выражения. Возможно, наилучший способ убедиться в этом — это попытаться ответить на вопрос: каковы осо- особенности предыстории при возбуждении одного из элементов сети? Заметим, что каждый элемент однозначно соответствует вхождению буквы в регулярное выражение. Это означает, что картина возбуждения в сети отражает суще- существенные особенности предыстории стартовых импульсов. Задача 4.4.5. Приведите аргументы в пользу того, что нас не должно смущать использование в сетях элементов ИЛИ без задержек (разд. 4.4.1), если не разрешено применение тормозящих связей. К тому же не должно вызывать беспокойства даже на- наличие тормозящих связей при условии, что сеть не со- содержит замкнутых петель обратной связи, не обладаю- обладающих какой-либо временной задержкой. Правила построе- построения сети, приведенные Копн, Элготом и Райтом [12], исключают возможность появления некоторых логнче- 4 4 17 ских парадоксов, например таких, какой наблюдается в сети на рис. 4.4.17, в которой используется бессмы- бессмысленная комбинация элемента, реализующего немонотонную функцию, с эле- элементом без задержки (см. разд. 3.1, примечание 3). Функции-ответу1) этой сети нельзя приписать никакого разумного значення. 4.4.3. Замечания о регулярных множествах Регулярные множества последовательностей являются по существу классами предыстории, которые могут быть представ- представлены состояниями конечных машин. Взгляд на конечные ма- машины с этой точки зрения дает нам лишь некоторое представле- представление о предмете исследования, но не полное его понимание. Пер- ') Формальное определение термина «функция-ответ» (responce function) дано в работе [60]. — Прим. перев.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 127 b л\ > / ^—- Е F ? F Рис. 4.4.18. Е И НЕ F. Рис. 4.4.19. Е И F. вое, в чем мы можем убедиться, — это то, что бесконечные по- последовательности могут быть образованы только посредством использования операции *, т. е. посредством ничем не примеча- примечательного типа периодичности. Но не следует делать поспешного вывода, что бесконечные множества реализуются только сетями с петлями. Любое конечное множество последовательностей ре- регулярно и реализуется сетями без петель. Из определения регу- регулярного множества ясно, что если к любому регулярному мно- множеству прибавить любое конечное число членов, то получится регулярное множество. Намного труднее вывести из определе- определения, что подобным же образом можно исключить, скажем, одно регулярное множество из другого и в результате получить ре- регулярное множество. Но этот факт становится очевидным при рассмотрении рис. 4.4.18 (имеет место дополнительная задерж- задержка). Ясно, что машина, изображенная на этом рисунке, распо- распознает всякую последовательность, которая принадлежит Е, но не F. Кроме того, если Е и F регулярны, то таким же образом можно понять, что множество Е A F последовательностей, об- общих как для Е, так и для F (рис. 4.4.19), и множество Е' конеч- конечных последовательностей, не принадлежащих Е (рис. 4.4.20), ре- регулярны. (По поводу последней сети можно сделать несколько тонких замечаний о временных задержках.) Это наводит на мысль о том, что может оказаться более удобным пользоваться языком расширенной алгебры Клини, включающим операции И (Л) и НЕ ('). Например, можно вывести формулу (ab)' = (bV аа)(а\/ Ь)*. Рис. 4.4.20. НЕ Е. Рис. 4.4.21.
128 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ В алгебре Клини для представления бесконечного множества требуется по крайней мере одна звездочка, но в расширенной алгебре даже и этого не требуется. Сеть на рис. 4.4.21 представ- представляет его без всяких замкнутых путей. Ответить на вопросы типа «сколько требуется звездочек, чтобы описать поведение неко- некоторых видов сетей» очень трудно [3*]. 4.4.4. Эпистемологические следствия В своей классической работе Мак-Каллок и Питтс [54] выска- высказали некоторые замечания относительно того, какое следствие для теории познания имеет предположение, что мозг состоит в основном из логических элементов с конечным числом состоя- состояний. Даже если это не совсем так, общие выводы остаются спра- справедливыми также и для любой конечной или вероятностной ма- машины, включая, по-видимому, и мозг. Эти предположения та- таковы: 1) включение дизъюнктивных соотношений (элементов ИЛИ и связки V) не позволяет полностью определить предше- предшествующее состояние по описанию состояния в данный момент, 2) восстанавливающая активность (вследствие наличия петель) делает невозможным определение того, когда именно в прош- прошлом произошло первоначальное возбуждающее событие. «Это незнание, касающееся неявно всех наших умственных способностей, является обратной стороной абстракции, де- делающей наше знание полезным» '). В заключительной части статьи кратко говорится о возмож- возможности систематического исследования связей между нейронной структурой и нейрологией здорового и пораженного болезнью мозга. 4.5. ЗАДАЧИ Задача 4.5.1. Вновь возвратившись к задаче 4.3.6, попытайтесь доказать, используя лишь рассуждения по поводу диаграмм состояний, что если S есть множество последовательностей, переводящих некоторую машину М из со- состояния Qo в состояние Qi, то существует машина, которая распознает мно- множество последовательностей из S, записанных в обратном порядке. Непо- Непосредственный поиск конструкции такой машины без использования языка ре- регулярных выражений — дело трудное, но достаточно поучительное, чтобы оправдать такую попытку. Метод решения родственной задачи найден Ше- фердсоном [93]. Задача 4.5.2. Существует аналогия между регулярными выражениями и алгебраическими формулами типа тех, которые применил Мэзон [47] в теории электрических цепей. Например, заменяя а * на 1 + а + а2 + а3 + ... = • 1-а' ') См. сб. «Автоматы», М., ИЛ, 1956, стр. 328. — Прим. перев.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 1ЙЗ мы делаем умножение некоммутативной операцией, т. е. не разрешаем пере- перестановку ху = ух. Тогда правило 9 из задачи 4.3.4 выводится следующим образом: = f + ef^FVE*EF. Подумайте об имеющейся аналогии и, если сможете, объясните ее при- причины, а также установите (если вы знакомы с теорией потоков в сетях), какая здесь имеется связь с электрическими цепями. Конечно, выражение + ... =1+а[1+а + а2+ ] является фактом из алгебры. Дальнейшие результаты в этом направлении получили Хэринг [28], Отт и Файнстайн [72]. Задача 4.5.3. Покажите, что (а* аи V Ьа)* а* = (а V аЬ V Ьа)*. Задача 4.5.4. Найдите регулярное выражение для последовательностей, которые возвращают автомат, изображенный на рис. 4.5.1, к его начальному. состоянию, а также регулярное выра- выражение ER для множества последова- последовательностей, каждая из которых за- записана в порядке, обратном после- последовательности Е. Теперь нарисуйте диаграмму состояний, представляю- представляющую Еп. При этом обнаружится, что вы не сможете решить задачу, если каждому событию будет соответ- соответствовать лишь одно состояние. До- Докажите это. Этим объясняется, по- почему мы должны использовать в разд. 4.3 множество {Qkoh} вместо Рис. 4.5.1. одиночного состояния. Более простой пример: почему появление события а \/Ь* нельзя представить одиночным со- состоянием машины? Задача 4.5.5. (Решение ее основано на методах, развитых в разд. 2.6.) Какие нз следующих множеств последовательностей 1—5 могут быть распознаны конечной машиной? (На всех выходах сигналы принимают зна- значения 0 или 1.) 1) множество всех последовательностей 0, 1, 00, 01, 10, 11, 000, ...; 2) числа 1, 2, 4, 8, ..., 2", .... написанные в двоичной системе счис лення; 3) то же самое множество в единичном коде: 1, И, 1111, 11111111, ...; 4) множество последовательностей, в которых число нулей равно числу единиц; 5) последовательности 0, 101, 11011, ..., 11п, ...; 6) если Е — регулярное множество последовательностей, распознаваемых машиной М, существует ли другая машина, которая распознает любую по- последовательность, оканчивающуюся той последовательностью, которую рас» познает М? Б М. Минские
130 ЧАСТЬ I. КОНЕЧНЫЕ МАШИНЫ 7) если Е — множество последовательностей, распознаваемых машиной М, существует ли машина, которая распознает любую последовательность, со- содержащую такую последовательность, которую распознает М? 8) если Е — множество последовательностей, распознаваемых маши- машиной М, существует ли машина, которая распознает любые две последова- последовательности, встречающиеся в одной и той же последовательности Е? Задача 4.5.6. Заменить каждое из нижеследующих регулярных выраже- выражений таким, в котором не используется знак V: (aVb)*, (aVbbV Ьа)*, (а V F6 V аЬ)*)*. Если Е— любое регулярное выражение, всегда ли Е* может быть написано без знаков "V,,? Почему? ПРИМЕЧАНИЯ 1. Мы таким образом избегаем ряда тонких моментов, из-за которых статьи Клини [40] несколько трудна для чтения. Мы предполагаем, что ма- машина начинает работу с подачи стартового импульса S на сеть, находя- находящуюся до этого в состоянии покоя. Иначе говоря, мы полагаем, что машина в действительности запускается в некоторый определенный момент в конеч- конечном прошлом. В противном случае могло бы случиться, что элемент R сети, рассматриваемой впримере 1, был бы всегда возбужден и постоянно воспри- воспринимал сигнал а, для чего никогда ие требовалось появления импульса S. Важность этой опасной (но вполне логичной) возможности обсуждается н статье Мак-Каллока и Питтса [54]. 2. Клиии [40] определяет все три операции — или, звездочка и присоеди- присоединение— как бинарные операции. Мы поступаем аналогично, когда определяем операции или и присоединение, но, если у Клини операция E*F также яв- является бинарной, у нас допускается операция Е*, причем под этим обозна- обозначением понимается последовательное сочленение любого числа подмножеств из Е, в том числе и ни одного. Это означает, что мы должны иметь в виду «пустую последовательность», что приводит к некоторым осложнениям. В ра- работе Копи, Элгота и Райта [12] Е* ие содержит пустой последовательности. Их способ доказательства теоремы Клиии основан иа четком различии между «логическими» свойствами элементов и их свойствами как временных задер- задержек. Если в первой части нашего доказательства, в котором используются элементы ИЛИ без задержек, мы придерживаемся того же направления, то его заключительная часть примыкает к клиниевскому подходу. 3. Об обобщении алгебры Клини. Рид замечательных теорем об экви- эквивалентности был получен недавно Пейпертом и Макнотоном. Рассмотрим (следуя впервые предложившим это Макиотоиу и Ямаде [73]) класс «расши- «расширенных» регулярных выражений, полученных добавлением операций не и и к операциям или, звездочка и присоединение из алгебры Клинн. Как было показано в разд. 4.3, такое расширение ие дает ничего нового потому, что мы при этом еще остаемся в области машин с конечным числом состояний, что показано на рис. 4.4.19 и 4.4.20. Главное, иа что мы здесь хотим обра- обратить внимание, это следующее. Хотя, согласно рис. 4.4.20, нам для реализа- реализации операции не, возможно, потребуется ввести петлю, не требуется ничего больше, чем петля вокруг одиночного элемента. Ясно, что если мы ограни- ограничимся расширенными регулярными выражениями, ие содержащими звездочек, То получим сети Мак-Каллока — Питтса, имеющие только петли вокруг одиночных элементов. Можно показать, что справедливо обратное: сети, имеющие петли только такого типа, могут быть описаны расширенными регу- регулярными выражениями, не содержащими звездочек.
4. ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В КОНЕЧНЫХ МАШИНАХ 131 Как оказалось, машины, принадлежащие этому классу, не могут произ- производить циклического «счета»; например, оии ие могут даже определить, четио или иечетио число единиц иа входе машины (машины с таким поведением рассматривались в разд. 3.2.4). Дадим более общее определение свойства неспособности к счету. Регулярное множество Е принадлежит множеству без счетного свойства (non-counting set), если существует число л, такое, что для всех после- последовательностей U, V и W и всех положительных целых чисел р, если UVnW принадлежит Е, то UVn+pW также принадлежит Е. Легко показать, что любое множество Е, ие содержащее звездочек, ие при- принадлежит множеству со счетным свойством, намного сложнее показать об- обратное, что также справедливо. Эта теорема указывает иа связь между фор- формулировками, которые мы ие рассматривали, и несколько ниым подходом к изучению машин, а именно подходом иа основе теории полугрупп. Связь между теорией машии и теорией полугрупп очень тесиа. (Мы говорим об этом в примечаниях для того, чтобы ие оттолкнуть читателя, незнакомого с группами и полугруппами. С этими вопросами можно ознако- ознакомиться, например, по статье Рабина и Скотта [79].) На языке теории полу- полугрупп машина представляется множеством состояний, которые преобразуются одно в другое под действием входных сигналов. В некоторых машинах вход- входной сигнал может произвести только перестановку состояний, т. е. ни один из входных сигналов не переведет два различных состояния в одно и то же состояние. В этом случае ясно, что машина обладает некоторой способностью к циклическому счету, так как на диаграмме ее переходов должны иметь место нетривиальные петли. С точки зрения теоретико-группового подхода су- существование перестановки некоторых состояний под действием входных сиг- сигналов означает, что существует подгруппа в полугруппе преобразований (со- (состояний), образованная входными сигналами. Имеется важная теорема о том, что машина, в которой иет перестановок в этом смысле, является машиной с регулярным выражением, ие содержащим звездочек, и обратно; в свою очередь оказалось, что машины с этим свойством эквивалентны классу ма- машии, которые могут быть построены из «единичных автоматов» Крона и Ро- деса [41]. Более подготовленный читатель может также ознакомиться с рабо- работой Шутцеибергера [88]. Наконец, существует связь еще с одной системой понятий в матема- математике — предикативным исчислением квалифицированных высказываний. Рас- Рассмотрим алфавит X = {х\, ..., хг). Для каждого i определим пропозицио- пропозициональную функцию Fi(t), которая приписывает /-му входу значение Хг. Пусть t\, tt, ..., t, — множество целочисленных переменных, и пусть Р— класс вы- выражений, определяемых следующим образом: 1) F( (ts) е Р для всех i, /; 2) ti^the= Р, если / < k\ 3) любая пропозициональная форма, состоящая из членов Р, принад- принадлежит Р; 4) если А е Р и А содержит свободную переменную tt, то {ti)A и (Eti)A принадлежат Р. Пусть Ро — множество членов из Р, не имеющих свободных переменных. Тогда Ро определяет класс слов из алфавита X, которые ему удовлетво- удовлетворяют. - Регулярное множество Е принадлежит L, если можно определить мно- множество слов, удовлетворяющих предикативному исчислению выражений Ро, определенному выше. Класс L является «I-языками» Макнотоиа [58], а оии также, как оказалось, эквивалентны машинам, регулярные выражения кото- которых ие содержат звездочек. Эти результаты развиты в статье Пенпертд и. Макиотоиа [73]. -
Часть II БЕСКОНЕЧНЫЕ МАШИНЫ ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ. БЕСКОНЕЧНЫЕ МАШИНЫ 5.0. ВВЕДЕНИЕ Теперь обратим внимание на некоторые основные вопросы, непосредственно связанные с самим понятием механического процесса. Что может делать машина? Что имеют в виду, говоря о том, что процесс механический? Когда процедуру можно счи- считать заданной достаточно полно, чтобы машина могла ее реа- реализовать? В предыдущих главах мы исследовали ограничения, свойственные машинам с конечной памятью. Что произойдет, если отказаться от этих ограничений? Какие задачи могут быть решены машинами с неограниченной памятью посредством ме- механических процессов? Существуют ли процессы, которые можно точно описать, но нельзя реализовать в машине? Как отмечалось в гл. 1, интеллектуальные возможности ма- машин в большинстве случаев оцениваются довольно низко. Обычно считают, что, хотя машины отличаются высоким быстро- быстродействием или надежностью, они не обладают «интеллектуаль- «интеллектуальной гибкостью». Хорошо известно, что машины созданы для ре- решения многих задач, которые при решении вручную требуют от человека довольно высокого развития. К ним относятся матема- математические задачи (по трудности соответствующие задачам, ре- решаемым в высшей школе), игровые задачи, задачи синтеза сложных систем, задачи классификации зрительных образов значительной сложности. Правда, обычно это умение не относят на счет машины, поскольку конструктор или программист пред- предварительно продумали каждую мелкую деталь процесса и ма- машине остается выполнять (хотя она делает это быстрее и с боль- большей точностью) только простейшие функции служащего-опера- служащего-оператора. Совершенно справедливо, что программирование, т. е. зада- задание процедуры, которую должда выполнить машина, в полной
5. ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 133 мере предопределяет все, что будет делать вычислительная ма- машина. В этом смысле программа для вычислительной машины является точным описанием процесса, который машина будет выполнять, и в том же самом смысле можно сказать, что все, что может быть сделано на вычислительной машине, может быть определенным образом описано •). Мы часто слышим и обратное утверждение, смысл которого состоит в том, что любая процедура, которую можно точно опи- описать, может быть запрограммирована для вычислительной ма- машины. Я слышал это и подобные утверждения много раз; при этом обычно особо оговаривают, что это предложение следует из работы математика Алана М. Тьюринга. Но обычно нечетко формулируют, что именно доказал Тьюринг, в частности не по- поясняют, что значит «точно описана». Для понимания материала, излагаемого в последующих главах, важное значение имеет зна- знание существа тьюринговской концепции точного описания про- процесса, так что нам предстоит подробно объяснить ее. 5.1. ПОНЯТИЕ „ЭФФЕКТИВНОЙ ПРОЦЕДУРЫ" Исследование машин, предпринятое нами в этой части книги, основано главным образом на идеях, заимствованных из статьи Тьюринга [99] по теории вычислимости. Эта статья важна не только потому, что в ней развивается математический аппарат, который нас интересует, но также и потому, что ее результаты по существу предваряют изобретение современных вычислитель- вычислительных машин и некоторых методов программирования для них. Я не могу заранее согласиться с теми, кто утверждает, что эта статья, относящаяся к 1936 г., в действительности не повлияла существенно на практическое развитие вычислительной техники, пока мы не закончим тщательного изучения истории этого во- вопроса. ') Важно заметить, что это не всегда означает, что составляющий про- программу человек автоматически предвидит все последствия того, что он сде- сделал! Вполне реально написать программу моделирования эволюции органи- органической системы, после запуска которой машина после сложного вычислитель- вычислительного процесса, имеющего многие характерные свойства метода проб и ошибок, промоделирует развитие структур удивительно высокой сложности. Многие программы носят сугубо экспериментальный характер — их составляют для того, чтобы исследовать поведение определенных систем, когда заранее это поведение еще недостаточно уяснено. Ученые знаюг, что точно определить — еще не значит сразу же понять. Когда математики или физики составляют уравнения, им еще недостаточно знать, что они таким образом определяют решения этих уравнений. Обычно желательно что-либо узнать о характере решений, что и влечет за собой некоторый процесс, называемый «решением уравнений».
134 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Следует рассмотреть статью Тьюриига с точки зрения интел- интеллектуальной подоплеки различных идей, непосредственно свя- связанных с понятиями «описаний» и «процессов». Вновь заду- задумаемся над следующими вопросами. Какие процессы могут быть описаны? Несомненно, само понятие описание предусматривает использование некоторого языка. Можно ли с помощью одного определенного языка описать все в принципе описываемые про- процессы? Существуют ли процессы, которые, будучи каким-либо способом полностью определены, в то же время не могут быть описаны вообще? Можно ли утверждать, что должны существо- существовать определенные процессы, связь между которыми требует передачи данных эмоционального характера и которые можно охарактеризовать лишь интуитивно и невозможно определить любым конечным числом слов? Такие вопросы интересовали математиков еще до появления вычислительных машин. Они связаны с понятием алгоритма — эффективной процедуры ') — вычисления значения некоторой величины или поиска решения некоторой математической за- задачи. Представление об алгоритме, или эффективной процедуре, появляется каждый раз, когда мы имеем дело с несколькими предписаниями (инструкциями), регламентирующими поведение. Это происходит тогда, когда в ходе работы над задачей мы об- обнаруживаем, что некоторая процедура, если ее надлежащим об- образом выполнять, будет всегда заканчиваться, давая определен- определенный ответ. Сделав однажды такое открытие, мы сводим интел- интеллектуальную задачу последующего нахождения решения к про- простому повторению рекомендаций, открытие метода решения — к выполнению определенных предписаний. Но если даже задан определенный набор предписаний, то каким образом мы узнаем, что тем самым нам в точности сооб- сообщено, что нужно делать? Можем ли мы быть уверены в том, что начиная с данного момента мы будем действовать эффективно в соответствии с «правилами», что нам не требуется на каком- либо шаге производить выбор между разными действиями или вносить изменения в предписания по собственному произволу? На этот вопрос легко ответить, если предположить, что про- процесс завершится в течение некоторого заранее известного про- промежутка времени, потому что тогда мы можем попытаться вы- выполнить предписания и увидеть, что получится. Но если дли- ') В дальнейшем мы будем применять последний термин. Термины можно ориентировочно считать синонимами, но существуют незначительные различия в толковании их значений р разных контекстах, " '" ¦'¦'•• j ¦
В. ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 136 тельность процесса заранее неизвестна, то «попытка» может быть неубедительной, потому что, если процесс продолжается бесконечно, тогда не существует такого момента, когда можно было бы убедиться в правильности ответа. Сейчас нас интере- интересует не вопрос, заканчивается ли процесс правильным ответом или даже заканчивается ли ои вообще. Нас интересует, всегда ли ясно определен следующий шаг. Другие вопросы станут пред- предметом обсуждения в гл. 8. Будем исходить из следующего. Если процедура может быть выполнена с помощью какой-либо очень простой машины, так что не возникает вопроса об «инициативности» или «разумно- «разумности», то мы можем быть уверены, что описание является пол- полным и мы имеем дело с «эффективной процедурой». Вряд ли в связи с этим могут возникнуть какие-нибудь возражения. Но мы, следуя Тьюрингу, отстаиваем также и ряд обратных утверж- утверждений, которые с первого взгляда кажутся весьма радикальными. Мы утверждаем, что любая процедура, которую было бы «есте- «естественно» назвать эффективной, фактически может быть реали- реализована машиной. Хотя это заявление может казаться радикаль- радикальным, доводы, приведенные ниже в его подтверждение, трудно опровергнуть. Мы должны подчеркнуть, что рассматриваемые вопросы но- носят субъективный характер и при их обсуждении применимы только доводы и убеждения; здесь нет ничего такого, что можно было бы доказать. Не обязательно принимать (или даже про- прочесть) приведенные ниже аргументы, чтобы оценить последую- последующие математические результаты. Читателю, который сильно рас- расходится с нами во мнениях либо интеллектуально, либо (что бо- более вероятно) эмоционально, это ие должно мешать оценить красоту теории, излагаемой в последующих разделах. 6.1.1. Требования к определению аффективной процедуры Попытка дать точное математическое определение «эффек- «эффективной процедуры» встречает различные трудности. (Нельзя ожидать, что в любом случае найдется простой и полностью удо- удовлетворительный формальный эквивалент сложного интуитив- интуитивного понятия.) Начнем со следующего определения: эффективная процедура есть множество сообщаемых нам время от времени правил, которые точно регламенти- регламентируют наше поведение. Эта попытка дать определение вызывает критику, потому что интерпретация предусмотренных правил не должна зависеть от некоторого субъекта или посредника. Способность субъекта
136 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ выполнять инструкции зависит от его знаний и интеллектуаль- интеллектуального уровня. Если этот уровень слишком мал, он может не понять, что мы имеем в виду. Если же этот интеллектуальный уровень слишком высок или посреднику эти правила чужды, то он может связно интерпретировать их непредусмотренным обра- образом. Мы знаем, как часто явно элементарные объяснения оказы- оказываются неожиданно двусмысленными. Мы можем обойти проблему интерпретации (понимания) правил, если наряду с формулировками правил задать конструк- конструкцию интерпретирующего устройства. Это позволит избежать не- неопределенности. Конечно, было бы слишком обременительно де- делать это каждый раз заново для каждой частной процедуры; желательно найти некоторое достаточно единообразное семей- семейство устройств, выполняющих предписания. Наиболее удобной формулировкой может служить следующая, в которой мы уста- устанавливаем: 1) язык, на котором описывается множество правил по- поведения, и 2) одну-единственную машину, которая может интерпре- интерпретировать утверждения, сделанные на этом языке, и, таким образом, выполнять шаг за шагом каждый точно опреде- определенный процесс. Это наводит на мысль о построении машины некоторого типа, способной воспринимать набор правил, выраженных на некото- некотором языке, и делать то, что предписано этими правилами. Здесь вновь возникает осложнение. Трудно ожидать, что какое-либо одно-единственное устройство может обладать достаточными возможностями, для того чтобы интерпретировать и выполнять правила, встречающиеся во всех эффективных процедурах. Есте- Естественно предположить, что необходим по крайней мере ряд ма- машин возрастающей сложности для реализации все более и бо- более сложных процедур. Как ни странно, но здесь нет никакой проблемы! Оказы- Оказывается, что такую машину для выполнения предписаний можно выполнить в виде, который остается постоянным независимо от сложности рассматриваемой процедуры. Иначе говоря, мы мо- можем предложить язык для описания правил и простую «универ- «универсальную» интерпретирующую машину, которая может иметь дело со всеми эффективными процедурами. Эта конструкция во всех подробностях описана в гл. 8; основной подход здесь со- состоит в замене качественного увеличения сложности машины простым количественным увеличением размеров памяти. Хотя мы преподнесли это как факт, остается субъективная сторона вопроса. Разные люди дадут разные ответы на вопрос,
5. ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 137 можно ли назвать некоторую процедуру эффективной. Воз- Возможно, существуют процессы, которые просто не могут быть описаны ни на каком формальном языке, но тем не менее могут быть реализованы, например, мозгом человека. Многие считают, что важные, но пока загадочные процессы мышления, превосхо- превосходящие по сложности все известные до сих пор механические процессы, вследствие своей интуитивной природы вообще не под- поддаются никакому систематическому описанию. Тьюринг обсуждает эти вопросы в своей известной статье «Может ли машина мыслить?» [100], и я не буду повторять его доводы. С моей точки зрения, они содержат убедительное опро- опровержение многих из таких возражений. Оставим обсуждение этих вопросов и обратимся прежде всего к задаче уточнения ин- интуитивного представления о выполнении набора предписаний. Возникающие вопросы прояснятся, если мы сначала сосредото- сосредоточим свое внимание на весьма конкретных процессах, таких, как выполнение математических вычислений. 5.2. ТЬЮРИНГОВСКИЙ АНАЛИЗ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА В своей статье Тьюринг [99] определил класс абстрактных машин, которые сейчас носят его имя. Машина Тьюринга — это машина с конечным числом состояний, соединенная с устрой- устройством особого рода — его лентой, на которой она может записы- записывать (а затем воспроизводить) последовательности символов. Мы очень детально опишем эти машины в гл. 6 и последующих за ней главах. Они весьма просты. В каждый момент в машину (вернее, ту ее часть, которая имеет конечное число состояний) посредством считывания символа, записанного в некотором ме- месте ленты, вводится входной сигнал. Ответ машины может из- изменить этот символ, а также передвинуть машину на малое рас- расстояние вдоль ленты в любую сторону. В результате входной сигнал в следующий такт работы поступит с другой «ячейки» ленты и машина может, таким образом, считывать символ, за- записанный там намного раньше. Это означает, что, помимо той памяти, которой обладает ее часть с конечным числом состоя- состояний, машина имеет доступ к особого рода элементарной внеш- внешней памяти. Поскольку мы не накладываем ограничений на длину используемой ленты, эта память на самом деле имеет бесконечную емкость. Но характер тех ограничений, которыми связана машина со своей лентой (гл. 6), может сначала при- привести к мысли, что возможность использования этой потен- потенциально бесконечной памяти в действительности весьма ограни- ограничена.
138 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Однако Тьюринг обнаружил, что эти машины могут произво- производить очень сложные вычисления. В гл. 6 и 7 мы рассмотрим ряд примеров и увидим, что использование памяти в виде ленты на самом деле снимает ограничения, свойственные конечным маши- машинам. Тьюринг идет дальше, защищая следующее утверждение, ко- которое часто называют тезисом Тьюринга. Любой процесс, который было бы естественно назвать эф- эффективной процедурой, может быть реализован машиной Тьюринга. Это утверждение в наиболее общем виде обычно называют тезисом Черча (благодаря работе Алонзо Черча, в которой ин- интуитивное понятие эффективности связывается с формальными логическими процессами). Мы будем называть его тезисом Тьюринга потому, что в дальнейшем будем пользоваться именно тьюринговской формулировкой концепции вычислимости. Часть статьи Тьюринга [99] посвящена доказательству эквивалент- эквивалентности его формулировки и более ранней формулировки Черча. Когда понимаешь, как на самом деле примитивны по своей идее машины Тьюринга, этот тезис звучит невероятно дерзко. Однако прошедшие годы подтверждают точку зрения Тьюринга. Для любой процедуры, которую математики соглашались на- назвать «эффективной», тем или иным способом была показана ее эквивалентность процедуре, реализуемой машиной Тьюринга. Тезис Тьюринга нельзя доказать, так как термин «есте- «естественно» связан скорее с характером интерпретации человеком, а не с каким-либо точным определением качества процесса. Справедливость тезиса должна вытекать из интуитивных аргу- аргументов, и мы едва ли сделаем это лучше, чем приведя некото- некоторые из доводов Тьюринга, поэтому предоставим слово ему са- самому. 5.3. ДОВОД ТЬЮРИНГА Ниже приводится выдержка из статьи Тьюринга [99, разд. 9], представляющая собой аргументы в пользу его позиции. Другие аргументы рассматривались в книге Клини [39]. Машины, о ко- которых говорится в цитате, теперь называются машинами Тью- Тьюринга. По существу они будут описаны в следующей главе. За- Заметим, что под словом «вычислитель» в цитате следует пони- понимать субъект, которого Тьюринг собирается заменить машиной. «Вычисление обычно производится путем записи некоторых символов на бумаге. Предположим, что эта статья разделена на клетки, как школьная тетрадка. В элементарной арифметике
6. ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 139 иногда используется свойство двумерности бумаги. Но это вовсе не обязательно, и, я думаю, можно согласиться с тем, что двумерность бумаги не существенна при вычислениях. Я пред- предполагаю, что вычисление производится на одномерной бумаге, т. е. на ленте, разделенной на ячейки. Я также буду предпола- предполагать, что число символов, которые могут быть использо- зны, ко- конечно. Если бы нам разрешили применять бесконечное число символов, то среди них нашлись бы символы, отличающиеся друг от друга в произвольно малой степени1). Ограничение на число символов не является очень существенным. Вместо оди- одиночного символа всегда можно использовать несколько симво- символов. Так, арабские цифры 17 или 999 999 999999999 могут трак- трактоваться как одиночный символ. Подобным образом в любом европейском языке слова можно считать простыми символами (однако в китайском сделана попытка иметь счетно-бесконечное число символов). Различие между простыми и составными сим- символами, с нашей точки зрения, состоит в том, что составные символы, если они слишком длинны, нельзя рассмотреть одним взглядом. Это подтверждается экспериментом. Мы не смо- сможем сразу сказать, являются ли символы 9999999999999999 и 999999999999999^ одинаковыми. Поведение вычислителя в любой момент определяется симво- символами, которые он наблюдает, и «состоянием его ума»2) в этот момент. Можно предположить, что существует предельное число В символов или ячеек, которые вычислитель может наблюдать одновременно. Если он хочет просмотреть большее число сим- символов, то должен сделать это последовательно. Предположим также, что число состояний ума, которые принимаются во вни- внимание, конечно. Причина здесь того же характера, что и при- причина, по которой мы ограничили число символов. Если допу- допускается бесконечное число состояний памяти, то некоторые из них будут «произвольно близкими» и окажутся неразличимы3). ') Если мы имеем дело с таким символом, как буква, напечатанная в ячейке, то можно предположить, что ячейка ограничена следующими коор- координатами: 0 <х <1, 0 <у < I. Символ определяется как множество точек в ячейке, т. е. множество отдельных площадок, заполненных типографской крас- краской. Если предполагается, что на этих множествах задана мера, то мы можем определить «расстояние» между двумя символами как цеиу преобразования одного символа в другой, если цена передвижения единицы площади, запол- заполненной типографской краской, на единичное расстояние равна единице, а по* дача типографской краски при х = 2, у = 0 бесконечна. При такой технологии символы образуют условно компактное пространство. — Прим. Тьюринга. г) В оригинале — state of mind. — Прим. перев. 3) Здесь мы ие смогли понять, что Тьюринг понимал под «неразличимо- «неразличимостью состояний ума», если предположить, что вопросы эти физиологического
140 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Опять-таки ограничение не из тех, которые серьезно влияют на вычисление, так как использование более сложных состояний памяти можно исключить, записывая больше символов на ленте. Вообразим, что операции, выполняемые вычислителем, рас- расщеплены на «простые операции», которые настолько элемен- элементарны, что нелегко представить себе, как дробить их дальше. Любая такая операция заключается в некотором изменении фи- физической системы, состоящей из вычислителя и ленты. Мы знаем состояние системы, если мы знаем последовательность символов на ленте, которые наблюдает вычислитель (возможно, в неко- некотором специальном порядке), и состояние ума вычислителя. Мы можем предположить, что в ходе простой операции изменяется не более одного символа. Все другие изменения могут быть рас- расщеплены на простые изменения такого рода. Ситуация относи- относительно ячеек, символы в которых могут быть изменены этим спо- способом, та же, что и относительно наблюдаемых ячеек. Мы мо- можем, следовательно, не теряя общности, предположить, что ячейки, в которых изменяются символы, всегда «наблюдаемы». Кроме этих изменений символов, простые операции должны производить изменения распределения наблюдаемых ячеек. Вы- Вычислитель должен немедленно распознавать новые из числа на- наблюдаемых ячеек. Я думаю, разумно предположить, что к ним могут относиться лишь ячейки, расстояние которых от ближай- ближайших из непосредственно наблюдавшихся в предыдущий момент ячеек не должно превышать некоторого фиксированного значе- значения. Пусть каждая из вновь наблюдаемых ячеек отстоит не более чем на L ячеек от непосредственно наблюдаемой в преды- предыдущий момент ячейки. В связи с «непосредственной распознаваемостью» может прийти мысль, что существуют другие виды непосредственно распознаваемых ячеек. В частности, можно считать непосред- непосредственно распознаваемыми ячейки, отмеченные специальными символами. Теперь если эти ячейки помечены только специаль- специальными символами, то существует только конечное число их, и мы не нарушим стройности нашей теории, если примем, что эти от- отмеченные ячейки являются соседними с наблюдаемыми ячей- ячейками. Если, с другой стороны, они отмечены последовательно- порядка, Если же он подразумевал физические состояния мозга, то действи- действительно можно ожидать, что для достаточно близких состояний существует вероятность случайного перехода, например, вследствие тепловых или кванто- квантовых явлений. Существует предельное количество информации, которое спо- способна переработать любая физическая система ограничеиного размера. То же самое справедливо для любой физической системы, используемой для пред- представления символов в «ячейках» фиксированных размеров. — Прим. М. Мин- Минского.
5. ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 141 стью символов, мы не можем считать процесс распознавания простым процессом. Это основной момент, и его нужно проил- проиллюстрировать. В большинстве математических статей уравнения и теоремы нумеруются. Обычно число их не превышает (ска- (скажем) 1000. Следовательно, можно распознать теорему с одного взгляда по ее номеру. Но если статья очень длинная, мы мо- можем дойти до теоремы 157767733443477; и затем в статье нам встретятся слова: «...следовательно, применяя теорему 157767733443477, мы имеем...» Чтобы убедиться в том, что тео- теорема имеет отношение к рассматриваемому вопросу, мы должны сравнить два числа цифра за цифрой, возможно используя ка- карандаш, чтобы не считать одни и те же цифры дважды. Если, не- несмотря на это, еще возникает мысль, что существуют другие «непосредственно опознаваемые» ячейки, то это не опровергает сделанного утверждения, поскольку такие ячейки могут быть обнаружены посредством некоторого процесса, который допу- допускает мой тип машины. Простые операции, таким образом, должны включать: а) изменения символа в одной из наблюдаемых ячеек, б) изменения содержимого одной из ячеек, отстоящей не бо- более чем на L ячеек от одной из ячеек, наблюдаемых в преды- предыдущий момент. Может случиться, что некоторые из этих изменений с необ- необходимостью включают изменения состояния памяти. В качестве наиболее общей простой операции, следовательно, нужно вы- выбрать одну из следующих: А) возможное изменение символа (а) вместе с возможным изменением состояния памяти, Б) возможное изменение наблюдаемых ячеек (б) вместе с возможным изменением состояния памяти. Операция, которая выполняется в данный момент, опреде- определяется, как предполагалось выше, состоянием ума вычислителя и наблюдаемыми символами. В частности, они определяют со- состояние ума вычислителя после операции. Теперь можно сконструировать машину, выполняющую ра- работу этого вычислителя. Каждому состоянию ума вычислителя соответствует «m-конфигурация» машины. Машина сканирует В ячеек, соответствующих В ячейкам, наблюдаемым вычислите- вычислителем. При любом движении машина может изменить символ в обозреваемой ячейке или любой другой ячейке, отстоящей на расстоянии не более чем L ячеек от одной из обозреваемых ячеек1). Сделанное перемещение и последующая конфигурация ') Как видно, не теряя общности, мы можем принять, что как L, так нВ равны едивице. — Прим. М. Минского.
142 ЧАСТЬ П. БЕСКОНЕЧНЫЕ МАШИНЫ определяют обозреваемый символ и m-конфигурацию. Только что описанная машина не отличается сколь-нибудь существенно от вычислительной машины, как она определена (ранее); вычис- вычислительная машина, соответствующая любой машине этого типа, может быть сконструирована для вычисления той же самой по- последовательности, что, скажем, и последовательность, вычисляе- вычисляемая вычислителем». 6.3.1. Эквиввлвнткость тезиса Тьюринга другим интуитивным формулирввкам Быть может, самым сильным аргументом в пользу тезиса Тьюринга является факт, что с годами все другие заслуживаю- заслуживающие внимания попытки дать определение «эффективной проце- процедуре» на интуитивном уровне оказывались эквивалентными — они определяли по существу тот же класс процессов. Тьюринг [99] доказывает, что его термин «вычислимость» («computabi- lity») эквивалентен термину «эффективная вычислимость» («ef- («effective calculability») А. Черча. Совершенно другая формули- формулировка эффективности, предложенная приблизительно в то же время Эмилем Постом, как оказалось, также привела к тому же результату; мы покажем эквивалентность постовских «канони- «канонических систем» и машин Тьюринга в гл. 14. Еще одна формули- формулировка, а именно «общерекурсивная функция», введенная Клини и другими, также эквивалентна другим формулировкам, как мы это покажем в гл. 10 и 11. Появился также ряд других, более новых формулировок с тем же результатом (например, [95]). Всякий раз, когда предполагалось, что предложенная система не эквивалентна этим системам, их неполнота или избыточность всегда оказывалась интуитивно очевидной. Почему это можно считать доводом в пользу тезиса Тью- Тьюринга? Это убеждает нас в том, что различные исследователи с различными подходами на самом деле, вероятно, обладают одинаковыми интуитивными концепциями — и, следовательно, это приводит нас к предположению, что здесь существует «объективное» или «абсолютное» понятие. Как это выразил Род- Роджерс [85]: «В этом смысле понятие эффективно вычислимых функций является одним из нескольких «абсолютных» понятий, вы- выработанных в современных работах в области оснований математики». Доказать эквивалентность двух или нескольких определений всегда трудно, если определения вытекают из различных под- подходов и диктуются разными побудительными мотивами.
В. ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 143 5.4. ПЛАН ЧАСТИ II В этой части книги исследуются свойства наших обобщен- обобщенных машин — машин с конечным числом состояний и с пассив- пассивной, но неограниченной средой («бумагой, размеченной на ячей- ячейки»). Цель этого исследования — развить две темы части I кни- книги. Мы попытаемся обрисовать диапазон возможного поведения таких машин, охарактеризовать, что лежит в пределах их воз- возможностей и что — вне этого предела. Мы также продолжим наше побочное занятие — изучение совокупности весьма малых «универсальных базисов» для сборки структур, которые реали- реализуют диапазон поведения. На обоих этих путях мы теперь встретим явления более ши- широкого порядка, пробуждающие к себе еще больший интерес. Конечно, то, что их диапазон будет широк, следовало ожидать — ведь мы утверждали, что наши новые машины смогут реализо- реализовать все эффективные процедуры. Что касается «нашего хобби», то мы обнаружим некоторые замечательные базисы. Читателю может показаться на первый взгляд невероятным, что с помо- помощью некоторых из этих наборов простых операций можно реа- реализовать все возможные вычисления. Для более важной цели, т. е. для того, чтобы охарактеризо- охарактеризовать эффективные процедуры, мы приобретем замечательный инструмент — универсальную машину.. Оказывается (гл. 7), су- существует некоторая машина Тьюринга, которая может имити- имитировать поведение любой другой машины Тьюринга по заданному в соответствующем виде описанию структуры этой другой ма- машины. (Описание должно быть записано на ленте, а не встроено в универсальную машину.) В результате этого наше исследова- исследование сведется к изучению одной машины. Поскольку мы не огра- ограничим нашего внимания только этим, то часто в дальнейшем будем строить наши доводы на основе существования таких ма- машин. Универсальная машина также открывает путь к получению простых базисов. Универсальная машина работает по описанию другой ма- машины. Она интерпретирует такое описание, делая по одному шагу за каждый момент времени, так что в действительности она имитирует поведение этой другой машины. В связи с «ин- «интерпретацией поведения» наших машин у нас возникают новые вопросы о машинах. Например, что случится, если машине сопоставлено ее co6cfвенное описание? Можно ожидать, что в этом случае машина будет «парализована», потому что она будет бесконечное число раз повторять интерпретирующие цик- циклы и никогда не сможет произвести какого-либо вычисления. Сперва такие явления кажутся занимательными, потом они
144 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ начинают раздражать, и наконец мы вынуждены сделать вы- вывод, что они свидетельствуют о непреодолимых препятствиях на пути нашего исследования. Мы обнаружим, что на некоторые естественные вопросы о машинах нельзя получить ответ, по крайней мере если для получения ответа используется любая эффективная процедура. Действительно, наиболее значительные результаты части II книги — это негативные результаты, демон- демонстрирующие ограничения, накладываемые не только на сами эффективные процедуры, но также и на нашу возможность в ко- конечном счете когда-либо эффективно охарактеризовать, какие процедуры на самом деле являются эффективными. Первые из этих результатов приведены в гл. 8. Основной метод прост и довольно неожиданный. Поскольку машины спо- способны выполнять интерпретирующие операции, мы можем пред- представить себе, что некоторые из наших вопросов предъявляются самим машинам. Таким вопросом, например, является следую- следующий: какие вычисления, выполняемые машиной, в конечном счете завершаются выдачей определенного результата, а какие продолжаются бесконечно, не приводя к какому-либо опреде- определенному исходу"? Посредством весьма простого технического приема мы покажем, что предположение о возможности суще- существования такой машины, которая может ответить на этот во- вопрос, ведет к противоречию; следовательно, такая машина не может существовать. Несуществование некоторых видов машин не может само по себе быть большим бедствием. Но, поскольку речь идет о на- наших целях, этот результат действительно является очень серьез- серьезным: никакая машина Тьюринга не может ответить на этот вопрос. Но если мы принимаем тезис Тьюринга, то, значит, во- вообще не существует никакого эффективного способа ответить на него. Иначе говоря, мы никогда не сможем полностью система- систематически описать условия, при которых можно быть уверенным в том, что вычисление закончится. В силу тех или иных причин мы сможем решить, что некоторая машина выполнит вычисле- вычисления, а некоторые другие не выполнят, но мы никогда не сможем предсказать это для всех машин! Я считаю, что этот и другие подобные результаты о «неразрешимости» стоят в ряду других наиболее значительных интеллектуальных открытий последнего времени. Можно не признавать следствия из этих результатов, лишь отказавшись от тезиса Тьюринга, но видимая перспектива получения какой-либо удовлетворительной замены этого тезиса отсутствует. Демонстрация элементарных результатов о неразрешимости открывает несколько новых направлений в исследовании (если даже наиболее интересные из них безвозвратно закрыты). Мы
5. ВЫЧИСЛИМОСТЬ. ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 145 могли бы попытаться наложить некоторые ограничения на наши машины, с тем чтобы их поведение было бы не таким сложным; мы реализуем это в небольшой по объему гл. 10 в связи с так называемыми примитивно-рекурсивными функциями. Другое на- направление, по которому мы не пойдем, — это изучение связей между различного рода результатами о неразрешимости; оно является предметом изучения современной математической «тео- «теории рекурсивных функций». В основном мы изучим ряд различ- различных формулировок эффективности и на основе этого попытаемся понять первопричины недостижимости безнадежно сложных аспектов поведения. В ходе этого мы придем к лучшему пони- пониманию связи между современными вычислительными машинами (и программами для них), с одной стороны, и этими абстракт- абстрактными машинами (и их описаниями) —с другой. Глава 11 посвящена поиску конструкций, занимающих про- промежуточное положение между простыми, но не эффективными с точки зрения практики машинами Тьюринга и более слож- сложными, но ориентированными на практическое использование со- современными вычислительными машинами. Нашим результатом является новое семейство абстрактных машин, названное «про- «программными машинами», которые сочетают привлекательные чер- черты обеих крайних моделей. Оказывается, что с теоретической точки зрения программные машины почти во всех отношениях превосходят машины Тьюринга; но, кроме того, изучая их, мы проливаем свет на некоторые практические аспекты как теории эффективных вычислений, так и основ программирования для современных вычислительных машин. Мы вовсе не хотим воз- возбуждать несбыточных надежд на то, что эта теория некоторым чудодейственным образом поможет кому-нибудь непосредственно в решении практических задач программирования для вычис- вычислительных машин. Но она станет некоторым идейным фундамен- фундаментом, на котором в конце концов будет построена удовлетвори- удовлетворительная теория практических вычислений. В гл. 9, дополнительной и рассчитанной на более подготов- подготовленного читателя, чем остальные главы, обсуждаются связи между теорией эффективных процедур и теорией вещественных чисел. 5.5. ЗАЧЕМ ИЗУЧАТЬ БЕСКОНЕЧНЫЕ МАШИНЫ? До настоящего момента предпринятое нами изучение машин всецело основывалось на том, что число их состояний считалось конечным. В подтверждение этого подхода мы использовали довольно много различных аргументов; даже приведенные
146 ЧАСТЬ П. БЕСКОНЕЧНЫЕ МАШИНЫ ранее в этой главе доводы Тьюринга преследуют эту же цель1). В дальнейшем нам придется иметь дело с бесконечными маши- машинами: наши машины будут иметь бесконечную ленту, или, иначе, запоминающий регистр с памятью неограниченной емкости. По- Поскольку такая машина не могла бы существовать (в конечном мнре) и (даже если мир бесконечен), мы никогда не сможем ее построить, то почему же мы должны изучать теорию таких машин? Наш ответ будет несколько парадоксален. Мы не предложим легкого объяснения. Мы не скажем, что подобно тому, как математики изучают бесконечные числа, которых они достичь не могут, в нашем случае поучительно изучить предельные, прак- практически недостижимые возможности машин. Напротив, мы стоим на той точке зрения, что такое расширение наших идей относительно машин по существу необходимо именно для прак- практического проникновения в суть реальных вычислительных ма- машин! Стоит несколько обсудить эти вопросы, чтобы понять, что теория бесконечных машин может быть более реалистичной с точки зрения практики, чем теория конечных машин. В первую очередь ограничения, ранее установленные для ко- конечных машин, кажутся слишком жесткими, для того чтобы серьезно к ним относиться. Наши интуитивные представления о машинах требуют более широкой основы. Предметом нашего рассмотрения должны стать машины, которые могут перемно- перемножать пары произвольно больших чисел (в гл. 2 показано, что делать это конечные машины не могут) и могут проверять грам- грамматическую корректность произвольных выражений, записанных на простейших математических языках (доводы гл. 4 показы- показывают, что это не в состоянии делать конечные машины). Конечно, в реальной жизни мы всегда сталкиваемся лишь с машинами, которые являются конечными. Но я утверждаю, что не всегда именно конечность машины ограничивает область их применения; обыкновенно это либо 1) практические ограни- ограничения на время вычислений, либо 2) концептуальная слож- сложность их структур или «программ». Так, например, мы знаем, что никакая конечная машина не может перечислить все целые числа; результат счета не может превышать число ее доступных внутренних состояний. Но это не то ограничение, которое часто встречается на практике; даже самая маленькая современная вычислительная машина имеет доступную память на тысячи би- битов, но для того, чтобы можно было сосчитать до 21000, даже работая на частоте жестких космических лучей, потребуется ') Приведенная выше цитата из статьи Тьюринга [99] является, насколько Я знаю, первым ясным описаним конечной машины в литературе.
В. ВЫЧИСЛИМОСТЬ. ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ 14? столь большое время, что его не смогут себе представить даже астрономы-космологи. Это заставляет нас подозревать, что не всегда можно руководствоваться практической оценкой резуль- результатов, основывающейся исключительно на ограничениях, обусло- обусловленных конечным числом состояний. Более серьезные практические ограничения возникают тогда, когда мы рассматриваем машины, которые используют большую информационную емкость памяти относительно пассивно. Мы можем захотеть рассмотреть, например, машину, которая запо- запоминает все, что когда-либо появлялось на ее входах1). Даже здесь практические ограничения на объем патями редко свя- связаны непосредственно с предельными размерами машины; они скорее зависят исключительно от причин экономического харак- характера. Потому что если имеется реальная машина, то мы всегда можем увеличить емкость ее памяти на один бит (и, следова- следовательно, можем увеличить число состояний), добавив соответ- соответствующее оборудование, скажем, в виде внешней запоминаю- запоминающей ленты. Возможный предел такого увеличения памяти будет зависеть скорее от не относящихся к делу обстоятельств, сопут- сопутствующих проектированию, чем от каких-либо естественных пре- предельных размеров машины. Что касается современных вычислительных машин, то обычно для решения наших задач их снабжают достаточно большой внешней памятью. Время вычисления, как правило, все еще остается ограничением, с которым часто сталкиваются на прак- практике. Это усугубляется тем фактом, что обращение к внешней памяти (например, к магнитным лентам) может требовать в миллионы раз больше времени, чем его необходимо для выпол- выполнения операций в собственно вычислителе2). Даже если это и не было бы так (миллион раз по 21000 для практики близко по величине к 21000), то другая трудность состоит в том, что машина зацикливается в петле диаграммы состояний, а мы ие можем ждать, когда она выйдет из цикла. По этим причинам представляется целесообразным изучать теорию машин, в которых объем оборудования сам по себе не накладывает ограничений. Но может оказаться нецелесообраз- нецелесообразным, по крайней мере с нашей точки зрения, изучать машины, которые на самом деле бесконечны либо в смысле объема ') Некоторые предполагают, что человеческий мозг обладает такой емко- емкостью, но я склонен думать, что этой точки зрения прядерживаются люди, которые хотят так думать и неверно истолковывают поразительные, однако всего лишь исключительные случаи. 2) Если даже время обращения к внешней памяти остается постоянным при увеличении ее емкости, в среднем, хотя и намного медленнее, растет время вычисления адреса ячейки памяти, содержащей выбираемые данные.
148 ЧАСТЬ П. БЕСКОНЕЧНЫЕ МАШИНЫ предварительно записанной информации, либо в отношении эф- эффективной скорости работы. Так, например, нереалистично рас- рассматривать машины, которые, начиная работать, уже содержат правильные ответы на все вопросы, на которые только можно ответить. Нереалистично также заниматься изучением машин, ко- которые могут за конечное время проверять бесконечное число случаев или гипотез (и, таким образом, ответить нам, справед- справедлива ли последняя теорема Ферма, проверив все возможные слу- случаи). Компромисс кажется неизбежным: мы должны рас- рассматривать машины, которые в каждый момент времени имеют только конечную структуру, но которую можно неограниченно увеличить с течением времени, т. е. «растущие машины». Машина Тьюринга со своим вычислительным блоком, имею- имеющим конечное число состояний, и своей первоначально «почти пустой» лентой идеально подходит для наших задач. Нам не нужно думать о том, что лента машины бесконечна. Вместо этого мы вообразим, что машина начинает работать с конечной ленты, но что всякий раз, когда она неожиданно кончается, используется другой кусок («ячейка») ленты. Таким образом, вместо бесконечной ленты нам нужно иметь фабрику, произво- производящую ленту в неограниченном количестве. Действительно, по- поскольку скорость, с которой нам может требоваться новая лента, фиксирована — в худшем случае она равна одной ячейке в еди- единицу времени, — для обеспечения работы этой фабрики можно инвестировать средства в весьма надежный банк. Эта картина позволяет обрести уверенность в момент, когда мы переходим к изучению нового предмета. Итак, хотя мы избавляемся от изучения конечного автомата, мы еще не сделали скачка к непо- непосредственному изучению бесконечного автомата. Вместо этого мы будем заниматься тем, что Беркс [8] склонен назвать обла- областью «растущих автоматов». Заметим, что в математике изу- изучаются и в полном смысле бесконечные автоматы, как, напри- например, в теории «гиперарифметических функций» Клини [39].
6 МАШИНЫ ТЬЮРИНГА В.О. ВВЕДЕНИЕ Машина Тьюринга представляет собой автомат с конечным числом состояний, соединенный с внешней памятью — лентой, размеченной на ячейки. Автомат связан с лентой посредством головки, которая в каждый данный момент располагается под некоторой ячейкой ленты (рис. 6.0.1). Головка выполняет три функции, каждая из которых используется на каждом такте Рис. 6.0.1. работы машины с конечным числом состояний. Эти функции состоят в следующем: считывание содержимого обозреваемой ячейки, запись в обозреваемую ячейку и передвижение машины к смежной ячейке (обозреваемой в следующий такт работы). Напомним, что машина с конечным числом состояний харак- характеризуется (разд. 2.2) алфавитом (s0, ..., sm) входных симво- символов, алфавитом (го, ..., 2„) выходных символов, множеством (qo Яр) внутренних состояний и парой функций Q(t+l) = G(Q(t), R(t + l) = F(Q(t), которые описывают связь между входом, внутренним состоянием и последующим поведением. Для того чтобы в описании фигурировала внешняя лента, это описание, очевидно, нужно слегка модифицировать. Вход- Входные символы («о, ..., sm) останутся прежними и будут в точ- точности теми же, которые могут быть считаны с ленты по одному символу на ячейку. Входом машины М в момент t будет как
150 ЧАСТЬ П. БЕСКОНЕЧНЫЕ МАШИНЫ раз тот символ, который напечатан в ячейке, обозреваемой ма- машиной в этот момент. Результирующее изменение состояния, как и раньше, определяется функцией G. Выход машины М выпол- выполняет теперь две функции: 1) запись символа в обозреваемую ячейку (возможна замена ранее записанного там символа) и 2) передвижение вдоль ленты в ту или другую сторону. Таким образом, выход R имеет две компоненты. Одна ком- компонента ответа — это просто символ из того же самого множе- множества («о, ..., sm), который должен быть записан в обозревае- обозреваемую ячейку; вторая компонента — один из двух символов — «0» (означает «сдвинуться влево») или «1» (означает «сдви- «сдвинуться вправо»), что оказывает соответствующее воздействие на положение машины. Итак, удобно предположить, что машина Тьюринга описывается тремя уравнениями l) = G(Q(t),S(t)), \) = F(Q(t),S(t)), l) = D(Q(t),S(t)), где новая функция D определяет, куда должна идти машина. В каждом такте работы машина начинает с некоторого со- состояния Ци считывает символ Sj, написанный в ячейке, находя- находящейся над головкой, печатает там новый символ F(q{, Sj), сдви- сдвигается влево или вправо в соответствии со значением D(qi,Sj) и затем переходит в новое состояние G(qt,Sj). Когда символ печатается на ленте, предыдущий символ на этом месте стирается. Конечно, если стирания не требуется, то можно напечатать тот же символ, который считывался, в этом случае F(qi,Sj) принимает значение s;-. Поскольку машина мо- может передвигаться вдоль ленты в любую сторону, она может вернуться к напечатанному ранее месту, чтобы использовать записанную там информацию. Как мы увидим, это делает воз- возможным использовать ленту для запоминания произвольно большого количества информации. Вскоре мы приведем соответ- соответствующие примеры. Считается, что лента бесконечна в обе стороны. Но мы на- наложим ограничение, а именно: в тот момент, когда машина за- запускается в работу, лента должна быть пустой, за исключением некоторого конечного числа ячеек. В связи с этим ограничением можно полагать, что на самом деле лента конечна в любой дан- данный момент времени, но что всякий раз, когда машина подхо- подходит к концу ее ограниченного куска, он наращивается на еще одну ячейку. Формальные математические описания машин Тьюринга можно найтн в работах Тьюринга [99], Поста [75], Клини [39],
6. МАШИНЫ ТЬЮРИНГА 151 Девиса [14]. В их подходах наблюдаются лишь несущественные различия технического порядка. Как правило, для наших целей будет достаточно описывать машины Тьюринга диаграммами со- состояний. Нашей непосредственной задачей будет демонстрация того, что машины Тьюринга с их неограниченной ленточной па- памятью могут производить вычисления, выходящие за пределы возможностей конечных машин; это легче понять на примерах, изложенных иа языке диаграмм, чем на языке таблиц функций. Хотя мы говорили об этом недавно, напомним еще раз, что та часть машины, которая имеет конечное число состояний, может быть описана следующей пятеркой: старое состояние, обозревае- обозреваемый символ, новое состояние, записанный символ, направление движения, т. е. (qt, s,, G{qt, s,), F{qh s,), D{qh s,)) или (<7/> s/i Qih S4> т. е. пятеркой, в которой третий, четвертый и пятый символы определяются по первому и второму посредством трех вышеупо- вышеупомянутых функций1) G, F и D. Таким образом, для некоторой машины Тьюринга (разд. 6.1.1) можно было бы составить следующее описание: (<7о. О, q0, О, R) (qu О, qu О, R), (<7о> 1» Чь О, R) (<7ь I, <7о> О, R), (q0, В, Я, О, -) (qu В, Я, 1, -), или просто (О, 0, 0, 0, 1) A, 0, 1, О, I) (О, 1, 1, 0, 1) A, 1, 0, 0, 1) (О, В, Н, 0, -) A, В, Н, 1, -), где символ Я (от halt — «стоп») используется для обозначения заключительного состояния. Еще одно замечание. Когда мы имеем дело с конечными машинами и думаем о том, что они могут делать, то считаем, что входные данные поступают от некоторой внешней среды и, следовательно, описания вычисления не содержалось полностью в описании машины и ее начального состояния. Лента вместе с машиной Тьюринга представляет собой замкнутую систему, ') Состояние, обозначенное через дц, определено как состояцне, в ко- которое машина переходит из <?ь задаваемое функцией G(tjuSj). Подобным же образом определены s«j и dtj.
152 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ в которой лента играет роль среды для той части машины Тью- Тьюринга, которая имеет конечное число состояний. Следовательно, мы можем полностью определить «вычисление-», задав 1) на- начальное состояние машины и 2а) информацию, которая записа- записана на ленте. Конечно, мы также должны сказать, 26) какая ячейка ленты обозревается головкой в момент запуска. Обычно мы будем предполагать, что машина в начальный момент на- находится в состоянии <7о- 6.1. НЕСКОЛЬКО ПРИМЕРОВ МАШИН ТЬЮРИНГА В этой главе мы опишем некоторые примеры того, что может делать машина Тьюринга с информацией, записанной на ленте, и сопоставим ее действия с процессами, которые могут быть реализованы конечными машинами. (Для сравнения конеч- конечные машины можно представить как частный вид машин Тью- Тьюринга, головка которых может сдвигаться вдоль ленты лишь в одном направлении.) 6.1.1. Счетчик четности Рассмотрим машину, выход которой равен 1 или 0 в зави- зависимости от того, четно или нечетно число единиц в строке. Вход- Входная последовательность представлена на ленте машины Тьюрин- Тьюринга в виде Ю\0\0\) где в конце последовательности, о которой идет речь, записан дополнительный символ В. Машина запускается в работу (из состояния qo) под первым символом последовательности; сим- символ В говорит машине о том, что последовательность закончи- закончилась. Машине требуется два состояния — одно для нечетного Таблица 6.1.1 Пятерки для счетчика четности Я1 0 0 0 ., 0 1 в ЯП 0 1 я 0 0 0 da 1 1 ~ Я1 1 1 1 sl 0 1 в ЯП 1 0 я 41 0 0 1 da 1 1 _ Я1
e. машины Тьюринга 153 числа единиц, а другое для четного; состояния меняются всякий раз, когда встречается 1. Соответствующая конечная машина представлена табл. 6.1.1. Если мы проследим работу машины, то обнаружим, что она происходит так шиш ?.0\0\0\0\0 fojolo 1 о I о] о ШШ о I о% ¦&0\0\0\О\0\0\0ЩО\6Щ. &>1о\о\о\о\о\оЩо\п\ Машина завершает работу против ячейки с символом В, вместо которого она записывает ответ. Входная последователь- последовательность оказывается стертой. Задача. Заменить пятерки так, чтобы последовательность не стиралась. В этом простом примере машина сдвигается только вправо. В таком случае нет возможности записать информацию на ленте и возвратиться к ней позднее. Следовательно, нельзя ожи- ожидать, что она делает что-либо, что не может также быть сде- сделано без каких-либо дополительных устройств машиной с ко- конечным числом состояний (и последовательным входом); из разд. 2.2 нам уже известно, что такого рода действия могут выполняться конечными машинами.
154 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ 6.1.2. Устройство для яроворки скобочных выражоиий Теперь мы рассмотрим простой пример вычисления, которое не может быть выполнено машиной с конечным числом состоя- состояний и последовательным входом. Задача состоит в том, чтобы решить, является ли последовательность из левых и правых скобок правильной, т. е. каждой ли левой скобке соответствует парная ей правая. Так, последовательность (((()())())) пра- правильная, в то время как последовательности (())) и ((()))) не- неправильные. Искомая процедура проверки скобочных выраже- выражений заключается в поиске (организованном слева направо) первой правой скобки, последующем нахождении слева от иее парной левой и вычеркивании обеих скобок. Процесс продол- продолжается, пока ие будут вычеркнуты все пары. Если остаются любые непарные символы, выражение является неправильным, и обратно. Пусть задана лента следующего вида: где начало и конец выражения отмечены символами А. Машина задана табл. 6.1.2. Прослеживая работу машины, мы имеем а а
6. МАШИНЫ ТЬЮРИНГА 155 Таблица 6.12 Пятерки для устройства проверки скобочных выражений Q 0 0 0 0 S ) ( А X Q' 1 0 2 0 S' X ( А X D 0 1 0 1 Q 1 1 1 1 S ) ( А X Q' 1 0 н 1 S' ) X 0 X D 0 1 — 0 Q 2 2 2 2 S ) ( А X Q' S' D Не встречается Н Н 2 0 - 1 - X 0 <7о Чт. Видно, что одна пара скобок стерта, и машина ищет следующую скобку «(». Состояние Qo предписывает движение вправо, оно сохраняется (без изменения символов), пока машина не встре- встречает символ «)». Последний вычеркивается (заменяется симво- символом X), а состояние Qo — состоянием Q\. Состояние Qi по существу предписывает движение влево, до парной скобки «(». Если она имеется, символ «(» заменяется символом «X», и про- происходит возврат в состояние Qo. Вычеркивание парных скобок продолжается до тех пор, пока не произойдет одно из следую- следующих двух событий: 1) машина, находящаяся в состоянии Qu не обнаруживает парного символа «(». Если она при этом до- достигнет ячейки А (а это должна быть левая ячейка), машина печатает 0 (означающий, что скобочное выражение неправиль- неправильно) и останавливается; 2) машина, находящаяся в состоянии Qo, не может найти больше ни одного символа «)». Это озна- означает, что достигнута ячейка А (та из них, которая справа). То- Тогда машина переходит в состояние Q%, в котором проверяется, не остался ли какой-либо из символов «(». Если найдется один такой символ, машина вновь печатает 0 и останавливается. Если же больше не имеется ни одной левой скобки (что обна- обнаруживается, когда машина достигнет ячейки А, расположенной слева), машина печатает 1 (скобочное выражение правильно) и останавливается. Это вычисление не может быть выполнено машиной с ко- конечным числом состояний, что было отмечено в разд. 4.2.2. Оно возможно здесь потому, что наша машина Тьюринга может воз- возвратиться назад через произвольно большие промежутки вре- времени1), чтобы обнаружить те левые скобки, через которые она прошла ранее. ') Однако это еще ие все. В замечательной теореме Рабииа и Скотта [79] показано, что машины, которые могут перемещаться в обе стороны, ио ие могут изменять символы на лейте, обладают ие большими (и ие меньшими) возможностями, чем мащииы с перемещение^ только в одном направлении-
156 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Обратим внимание на одно интересное свойство этой ма- машины. Она не использует ни одной из ячеек ленты многократно, изменяя содержимое каждой ячейки не более одного раза. В дальнейшем (в разд. 14.5) мы покажем, что любая машина эквивалентна в некотором смысле машине с таким сильным ограничением. Условия построения диаграмм В каждом состоянии большинства из рассматриваемых ма- машин осуществляется однонаправленный поиск, поэтому, как пра- правило, каждому состоянию можно сопоставить движение в одном из направлений. С учетом этого факта можно строить более Запуск Jam/сн _п+Н rl+H s-0+H { Рис. 6.1.1. простые и наглядные диаграммы. Таким образом, мы можем представить машины, описанные в разд. 6.1.1 и 6.1.2 диаграм- диаграммами, изображенными на рис. 6.1.1. Каждая стрелка диаграммы соответствует некоторой пятерке (qu Sj> qtj, sa,dij). Состояния обозначаются шестиугольниками. Текущее состояние qt записью вается под шестиугольником, из которого стрелка выходит, а новое состояние qn — под шестиугольником, в который стрелка входит. В хвосте стрелки указывается считываемый символ Sy Записываемый символ stj указывается в середине стрелки (если он совпадает с s}, то его можно опустить). Направление движе- движения указывается внутри шестиугольника (R — вправо, L — вле- влево). (Очевидно, если некоторому данному / и всем i не соот- соответствует одно и то же dij, то мы не можем использовать эти новые диаграммы и должны возвратиться к более подробным диаграммам1).) Наиболее часто встречающиеся пятерки вида (qt, Sj, qu Sj, d^) просто опущены. ') Отметим, что мы требуем, чтобы все d,j были одинаковыми для дан- данного /, но не для данного i. Эти обозначения основаны на предложении Н. Рочестера. Важно понять, что онн могут быть использованы в том особом случае, когда запись каждого состояния ассоциируется с фиксированным на» правлением. Анализ показывает, что большинство наших примеров удовлетво- удовлетворяет этому условию. Задача. Покажите, что любая машина эквивалентна такой машин? с ориентированными состояниями. >»
6. МАШИНЫ ТЬЮРИНГА 157 Задача. Читателю предлагается восстановить табл. 6.1.2 по рис. 6.1.1B), чтобы убедиться в том, что он понял принятый способ составления диаграмм! 6.1.3. Преобразоватоль одииичного кода в двоичный В разд. 3.2.4 и 3.2.5 мы описали сеть, которая преобразует последовательность из п импульсов в параллельный код, соот- соответствующий двоичному представлению числа п. Конечно, такое устройство может оперировать только с числами определенного размера (зависящего от числа разрядов двоичного счетчика, ко- который входит в его состав). Машина Тьюринга будет решать эту задачу с любыми последовательностями, как бы они ни были велики. Пусть последовательность задана в виде серии единиц на бесконечной ленте, пустой на остальных позициях: штжшшжпптшт Машина начинает свою работу с крайней левой единицы. Ее диаграмма показана на рис. 6.1.2. Парные состояния, соответ- соответствующие движению в правую сторону, используются как в Запуск Запуск Рис. 6.1.2. Рис. 6.1.3. счетчике четности (см. разд. 6.1.1). При этом происходит вы- вычеркивание единиц через одну (они заменяются символами X). Когда строка исходных символов проверена на четность, ма- машина переходит в одно из состоянии, ассоциированных с дви- движением в левую сторону, которое отмечается символами А или В, вносимыми в первую свободную ячейку слева. Когда все единицы в строке вычеркнуты, машина останавливается. Оказы- Оказывается, что последовательность символов А и В является двоич- двоичной записью исходного единичного кодз. Чтобы убедиться
158 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ в этом, достаточно установить, что в момент перехода в состоя- состояние R, ассоциированное с движением вправо, состояния ленты имеют вид, показанный ниже. 0 11111111110 AXIXIXIXIXiO' Q В А X X X I XXXI X X 0 Q АВАХХХХХХХХ X X 0 Q ВАВАХХХХХХХХХХО о Таким образом, ответ есть ВАВА = 1010, что и есть запись 10 в двоичной системе счисления. Вычисления состоят в последо- последовательном делении на 2, записи остатка (т. е. А или В), после чего процесс повторяется по отношению к частному, пока част- частное не станет равным нулю. Структура этого процесса несколько более сложна, чем в предыдущих примерах. Реализация проверки на четность, для которой требуются два состояния, может быть истолкована как подпроцесс, который повторяется снова и снова, пока не выпол- выполнится некоторое условие, обнаруживаемое «контролирующим» процессом. Мы имеем «цикл в цикле» и можем различить иерархию управления в ее простейшем виде. Этот тип вычисления не может быть выполнен машинами с конечным числом состояний. Задача 6.1.1. Интересно, что точно такой же результат может быть до- достигнут двоичной пересчетиой схемой, для которой требуются только два состоянии и тот же самый алфавит! Можете ли вы предложить такую маши- машину Тьюриига с двумя состояниями? 6.1.4. Множитольиоо устройстио, рабстающоо в одииичнсм кодо Машина на рис. 6.1.3 перемножает два числа man, задан- заданных в единичном коде, т. е. представленных в виде серий из еди- единиц на ленте в следующем виде: \\o\o\o\ . .. \о\о\о\АЖШММтЩШШ^тША\о\о\о\ ... ЩОЩ
в. МАШИНЫ ТЬЮРИНГА 159 Машина начинает работу под разделяющим символом В. Если, например, первоначально задана лента ¦L \*\ППВ\1\1\1\А\ и то конечным результатом будет •/77» «-/7-» /77*/7 или 2x3 = 6, где ответ (в единичном коде) представлен серией символов X справа от символа А. Опять-таки мы имеем дело с вычислениями, которые для произвольных значений тип не могут быть выполнены машиной с конечным числом состояний. Задача 6.1.2. Предложите конструкции машин Тьюриига для 1) вычисления квадрата числа п, где п представляется в виде ЯлЫ/1 »,» Г 2) вычисления суммы двух двоичных чисел, представимых в виде1) i А А 1 0 I 0 1 0 • • • / а 1 0 в 1 0 i 0 • • • / 0 1 0 с предполагается, что они имеют одинаковое число цифр; 3) определения, является ли число простым или иет (очень сложно) ГШТ1/1 . .. 1/1/шГ? Задача 6.1.3. Опишите поведение маШииы на рис. 6.1.4, предполагая, что она иачииает работу иа пустой ленте. Запус, Ряс 6.1.4. ') Здесь ' означает, что ячейка содержит 1 или 0.
160 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Задача 6.1.4. Постройте машину Тьюринга для вычисления: 1) произведения двух двоичных чисел тип; 2) степенной функции ш". 6.1.5. Адресная память Из предыдущих примеров не особенно ясно, как можно скон- сконструировать машину Тьюринга, чтобы она могла использовать свою ленту в качестве универсального устройства для хранения и выборки информации. Следующий пример показывает, как можно построить информационное устройство, в котором слово может быть найдено по некоторому своему признаку (назва- (названию). РАЗМЕЩЕНИЕ ИНФОРМАЦИИ И ИНФОРМАЦИОННОЕ УСТРОЙСТВО Предположим, что имеется ряд слов ?/,-, каждому из которых сопоставлен признак Nt. Пусть слова и признаки записываются в виде двоичного кода вдоль ленты попарно (признак, слово) Запуск К рис. 6.16 Рис. 6.1.5. Размещение признака. и отделены от следующей пары метками, в качестве которых применяются символы X. Пусть мы хотим определить местона- местонахождение слова с признаком N. Для простоты допустим, что все признаки Ni имеют одинаковое число цифр, а лента — следую- следующий вид: и» II Информационный массив » Признак "" искомого слово I Приток Слово Признак Слово Признак Слово (N) X 1 где скобками обозначены последовательности двоичных цифр, а символы У используются как дополнительные знаки пунктуа- пунктуации. Машина (рис. 6.1.5) располагает также двумя добавоч-" ными символами А и В, служащими для слежения за позициями
6. МАШИНЫ ТЬЮРИНГА 161 на ленте. Машина сравнивает признак, записанный слева, с каж- каждым признаком в информационном массиве, и когда обнару- обнаруживается точное соответствие, останавливается в начальном по- положении, заменив все нули и единицы между ним и искомым словом U(N) на А и В. Например, машина преобразует ленту шашштишттшшштшшттташшштшшшЁ и3 в следующую: ЦГШШВИИУИ Заметим, что вся информация в устройстве может быть восста- восстановлена, если заменить символы А и В нулями и единицами со- соответственно '). ПЕРЕЗАПИСЬ После нахождения слов в информационном устройстве по за- заданному признаку может потребоваться переписать информа- информацию на другое место. Если мы добавим машину, изображенную ъ-Коис. 7.2.5 +.Крис. 7 2.5 Рис, 6.1.6. Перезапись слова. на рис. 6.1.6, к машине, изображенной на рис. 6.1.5, то она пере- перепишет только что найденное слово ?/* на место, первоначально отведенное под признак, т. е. в ячейки, расположенные сразу за начальным символом У. Затем она остановится в стартовом ') Чтобы понять, как машины работают, читатель должен проследить за всеми операциями шаг за шагом. Если вам будет казаться, что имеется ошибка, попытайтесь снова вдвое тщательней и т. д. 6 М. Минский
162 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ положении. Мы полагаем, что слова 1/'г имеют одинаковую длину с признаками. Результатом является перезапись информации ?/,• в «адрес- «адресные» ячейки, следующие за начальным символом У, т. е. вместо Ч\У\1\0\1\Х\А\А\В\А\В\В\Х\В\А\БЖЩХ\ЯтштМУ\% С] ог будет Опять-таки весьма просто добавить состояния, которые восста- восстановят на ленте первоначально записанные на ней симеолы — нули и единицы. Информационное устройство, которое мы построили, широко известно как ассоциативная память. Слова переписываются вме- вместе с соответствующими признаками. В обычной вычислительной машине извлечение слов из памяти представляет собой более сложный процесс, связанный с обращением по заданному ад- адресу к фиксированной ячейке1). Применение ассоциативной па- памяти для вычислительной машины дает ряд преимуществ, но мы не можем продолжить здесь обсуждение этих вопросов. 6.2. ОБ ЭФФЕКТИВНОСТИ МАШИН ТЬЮРИНГА Читатель, который проследил за работой рассмотренных выше машин, заметил две дополнительные особенности. С одной стороны, он убедился в том, что машины Тьюринга на самом деле могут делать многое из того, что не могут делать машины с конечным числом состояний, а также что они могут делать необычайно сложные вещи, несмотря на свои сравнительно про- простые структуры. С другой стороны, мы могли наблюдать при- присущую машинам Тьюринга неэффективность из-за повторяю- повторяющихся проходов головки вдоль длинных кусков ленты даже при выполнении самой элементарной операции перемещения вре- временного маркера. Никто серьезно не предлагал использовать структуру, свойственную машинам Тьюринга, для каких-либо вычислений на практике. На самом деле даже неизвестно, чтобы кто-нибудь построил хотя бы демонстрационную модель ма- машины Тьюринга. ') Дело в том, что при использовании ассоциативной памяти неизвестно, где расположено искомое слово.
6. МАШИНЫ ТЬЮРИНГА 163 Тем не менее, несмотря на малое быстродействие таких ма- машин, они используют емкость ленточной памяти неэффективно далеко не во всех случаях. Например, мы можем построить машину, определяющую, яв- является ли л-разрядное двоичное число простым, используя ме- менее чем п дополнительных ячеек ленты. Следует также обра- обратить внимание на то, что высокое быстродействие обычных вы- вычислительных машин основано на использовании произвольной выборки данных из памяти, которая только внешне позволяет обойти задачу последовательного поиска вдоль ленты. Можно представить себе машины с трехмерной лентой и привести до- доводы в пользу того, что машины Тьюринга такого типа в общем имеют не меньшее быстродействие, чем другие типы машин с конечным числом состояний и дополнительной памятью. Как мы увидим, даже самые сложные из возможных вычис- вычислительных процедур можно выполнить с помощью машин Тью- Тьюринга, фиксированные структуры которых содержат всего лишь десятки элементов. Можно представить себе межзвездного ро- робота, к надежности которого предъявляются очень высокие требования, но который выполняет вычисления очень медленно, потому что запас времени у него больший, чем сама веч- вечность. Существуют модификации основной машины Тьюринга, на- например многоленточные машины, которые по эффективности ближе к обычным вычислительным машинам, но мы их рассма- рассматривать не будем. Нашей основной задачей при изучении ма- машины Тьюринга является ее использование в качестве модели для определения эффективной вычислимости. 6.3. НЕКОТОРЫЕ СВЯЗИ МЕЖДУ РАЗЛИЧНЫМИ ТИПАМИ МАШИН ТЬЮРИНГА 6.3.1. Двоичные машины Тьюринга Мы не накладывали особых ограничений на разнообразие символов, которые могут появляться на лентах наших машин, считая лишь, что их множество должно быть конечным. Инте- Интересно, что, не теряя общности, мы можем ограничить число сим- символов, используемых в машине, лишь двумя. (В теории конеч- конечных автоматов это напоминает эквивалентность некоторых сетей Мак-Каллока — Питтса, оперирующих с двоичными сигналами, всем машинам с конечным числом состояний, на которые на- накладывается меньше ограничений.) Чтобы показать эквивалентность, недостаточно заменить символы двоичными числами! Предположим, что машина 6*
|64 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Тьюринга Т использует k различных символов. Предположим также, что число й кодируется га-разрядным двоичным кодом*). Тогда мы можем обозначить каждый символ из Т различными я-разрядными двоичными числами. Теперь мы можем заменить машину Т новой машиной Т*, которая оперирует с ее лентой так, как если бы ее ячейки были сгруппированы в блоки длиной п. В каждом из этих блоков записано л-разрядное двоичное пред- представление некоторого символа старой машины Т. |?аждому.. со- состоянию старой машины Т мы сопоставляем множество состоя- состояний новой машины Т*-к это может быть выполнено примерно так же, как и в последовательном двоичном дешифраторе (разд. 3.3.1). В действительности мы строим двоичное дерево (глубины п) состояний, ассоциированных с движением вправо. Если машина начинает свою работу с левого символа блока, то, когда она достигнет правого конца блока, положение ее состоя- состояния на этом двоичном дереве даст нам в точности тот символ (из алфавита старой машины Т), который оказывается там представленным. Затем простым способом каждому заключи- заключительному состоянию этого дерева сопоставляют цепочку из п со- состояний, ассоциированных с движением влево, запись которых (в обратном порядке) даст двоичные цифры кода того символа, который записала бы здесь машина Т. Наконец, если Т должна двигаться вправо, мы должны добавить п состояний, ассоцииро- ассоциированных с движением вправо, подобно тому как мы это делали для движения влево. Полная конструкция предложена Шенно- Шенноном [92]. См. также разд. 14.5, где приведена схема конструк- конструкции. 6.3.2. Ленты, бесконечные в одном и двух направлениях Можно также показать, что машины Тьюринга, имеющие ленты, бесконечные в обоих направлениях, не имеют ни преиму- преимуществ, ни недостатков по сравнению с машинами, каждая из которых обладает лентой, бесконечной в одном направлении. Нет смысла останавливаться на этом здесь подробнее. Доста- Достаточно заметить, что эквивалентность можно продемонстриро- продемонстрировать, если сложить бесконечную ленту вдвое и затем отобразить ее на ленту, бесконечную в одном направлении, используя, на- например, для одной половины сложенной ленты четные ячейки новой ленты, а для другой нечетные. Такой метод использовал Тьюринг [99]. См. решение задачи 7.4.1. ') В данном случае п — бдижайшее сверху к log2* целое число. -~ Прим. церев,
6. МАШИНЫ ТЬЮРИНГА 165 6.3.3. Многоленточные машины Развивая идею, связанную с использованием чередующихся ячеек путем добавления достаточного числа меток и вспомога- вспомогательных состояний, можно достигнуть эффекта работы с не- несколькими независимыми лентами (связанными с п выходами конечной машины) при использовании одиночной ленты. Можно даже получить эффект л-мерной памяти. Опять-таки мы не бу- будем вдаваться в подробности. 6.3.4. Машины Тьюринга с двумя состояниями Поистине удивительный результат получил Шеннон [92]; лю- любая машина Тьюринга эквивалентна машине Тьюринга лишь с двумя состояниями! Эквивалентность достигается значитель- значительным увеличением алфавита машины с большим числом состоя- состояний. Мы не можем привести детали этого замечательного дока- доказательства, так что интересующийся им читатель должен обра- обратиться к оригиналу этого доказательства. Суть заключена в табл. 1, приведенной в [92]; таблица показывает, как может быть сохранена информация о состояниях исходной машины. Это достигается челночными движениями машины на две ячейки назад и вперед по ленте, при которых она проходит над симво- символами различных алфавитов. Задача 6.3.1. Спроектируйте машину Тьюринга для перечисления двоич- двоичных чисел, т. е. заполните числами бесконечную ленту. Начните работу на пустой ленте, так чтобы прийти к 4... ... 5 4 3210 Основное правило состоит в том, что, напечатав символ Y, машина не должна никогда вновь изменять его или перемещать головку вправо от него. Задача 6.3.2. Опишите машину Тьюринга для образования всех пра- правильных скобочных выражений, т. е. получите бесконечную ленту типа Порядок не существен, но ни одна последовательность не должна появляться боле'е одного раза. Следовать тому же основному rtpaBiftry, что и в предыду- предыдущей задаче. Указание. Перечислите двоичные числа так же, как в задаче 6.3.1. Когда они будут образованы, интерпретируйте их как последовательности скобок и проверьте их на правильность (использовав разд. 6.1.2). Если детали станут слишком громоздкими, набросайте просто, план рещения задачи.
166 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Задача 6.3.3. Можно сказать, что машина Тьюринга «применима к ко- конечной последовательности S, состоящей из нулей и единиц», если, начиная с ленты 1 х о о\о машина в конечном счете останавливается на пустой ленте. Покажите, при- применима ли машина Тьюринга к следующим классам последовательностей: 1) 10, 1100, 111000 1п0", ...; 2) множеству последовательностей, представимых любой машиной с ко- конечным числом состояний; 3) решите задачу B), используя лишь те состояния машины Тьюринга, которые ассоциированы с движением вправо; 4) докажите, что машина Тьюриига с движением лишь вправо может быть заменена машиной с конечным числом состояний; 5) можете лн вы решить задачу A) для машины с движением лишь вправо? 6) можете ли вы построить ряд коиечных последовательностей, к которым машина Тьюринга непримеиимз?
УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 7.0. ИСПОЛЬЗОВАНИЕ МАШИН ТЬЮРИНГА ДЛЯ ВЫЧИСЛЕНИЯ ЗНАЧЕНИЯ ФУНКЦИЙ В гл. 6 мы познакомились с несколькими способами построе- построения машин Тьюринга, оперирующих с информацией, записывае- записываемой на лентах. В каждом случае на ленте первоначально была записана некоторая информация (обычно число в двоичной или единичной форме, иногда — последовательность символов). Ма- Машину запускали в работу из некоторого стандартного состояния при фиксированном положении ленты, и она работала до оста- останова. Когда (если это происходило) машина останавливалась, мы просматривали информацию, оставшуюся на ленте, считая ее результатом вычисления. Вообще говоря, информация, содержащаяся на ленте после останова машины, некоторым образом зависит от того, что было записано на ленте в начальный момент. Поэтому мы можем сказать, что результат вычисления, зафиксированный на ленте, есть функция входа. Какая именно функция — это зависит, ко- конечно, от того, какая машина Тьюринга используется. Следова- Следовательно, машина Тьюринга может не только определять или вы- вычислять что-то, но и задавать функцию. Что такое функция? Существует значительное число более или менее эквивалентных определений. По-видимому, наиболее часто используется определение следующего типа. Функция есть правило, устанавливающее, как по дан- данному числу (называемому аргументом) вычислить другое число (называемое значением функции для этого аргу- аргумента). Например, пусть дано правило, которое гласит, что функция F есть «остаток от деления аргумента на 3». Тогда (если мы рас- рассматриваем в качестве аргументов только неотрицательные це- целые числа) имеем F@) = 0, F(l)=l, FB)-2, FC) = 0, FD) = l, .... Можно определить функцию и другим способом: Функция есть множество упорядоченных пар {х, у), та- таких, что не существует двух пар с одинаковыми первыми
168 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ числами, но для каждого всегда найдется одна пара с та- таким значением х, которое совпадает со значением первого числа пары. Если определить функцию таким способом., то рассмотренная выше функция представляет собой множество пар (О, 0), A, 1>, - B, 2>, C, 0>, D, 1), <5, 2), F, 0) .... Имеется ли какое-либо различие между этими определе- определениями? По существу нет, но имеется несколько тонких деталей. Второе определение слишком лаконично; в нем опущены мно- многие сложные логические моменты: для того, чтобы вычислить значение функции для какого-либо аргумента х, нужно найти именно ту пару, которая начинается с х, а значением функции является второйеечлен. При этом ничего не говорится о том, в чем заключается правило. (Правила может даже не суще- существовать, хотя это оставляет открытым неприятный вопрос, для чего нужна такая функция или в каком смысле она действи- действительно существует.) Первое определение ограничивает свободу действий, благодаря некоторому фиксированному правилу для вычисления значения функции, но оставляет открытым вопрос, что делать, если мы можем придумать различные правила для вычисления одного и того же. Например: 1) разделить число на три и использовать в качестве значе- значения функции остаток; 2) найти сумму цифр (числа в десятичной системе), разде- разделить ее на три и в качестве значения функции взять остаток — это два правила, которые, как известно многим школьникам, дают одинаковый результат (докажите это1). Было бы неверно считать их двумя различными функциями, но они являются двумя различными правилами; таким образом, при использова- использовании первого определения возникают известные трудности. В обыденной жизни или даже в обычной математике столь мелочный педантизм мог бы показаться нелепым. Не соблюдая формальностей, можно просто заявить: «Если вычисления по двум правилам фактически дают одно и то же значение функ- функции, мы будем считать, что эти правила определяют одну и ту же функцию. Эти определения, не будучи идентичными, яв- являются эквивалентными». Здесь мы будем применять этот под- подход, основанный на здравом смысле, но прн этом мы должны соблюдать осторожность с тем, чтобы не прийти к неоднознач- неоднозначности. Дело не в том, что мы пытаемся быть чрезмерно осто- осторожными и в высшей степени логичными, а в том, что теория правил, определений и т. п. является главным предметом нашего исследования. Мы должны четко понимать различне между тем,
7. УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 169 что предписывает правило, и тем, как оно определяется, по- потому что это как раз то, что мы изучаем, а не потому, что мы, будучи одержимы навязчивой идеей, хотим содействовать раз- развитию более четкого и логичного мышления вообще. Я говорю это потому, что во многих последних учебниках по математике различия между функциями, правилами и упорядоченными па- парами обсуждаются столь долго и подробно, что студент теряется в еще большей степени, ибо в разделе, который он изучает, раз- различия эти настолько несущественны, что нет и малейшей опас- опасности возникновения путаницы. Итак, мы будем понимать функцию как зависимость между аргументами и значения — как множество упорядоченных пар {х,у), таких, что существует в точности одна пара для каждого х. Каждой функции может быть поставлено в соответствие мно- много определений или правил, говорящих о том, как найти значе- значение у по данному аргументу х. Два определения или правила эквивалентны, если они определяют одну и ту же функцию. Мо- Может оказаться очень трудно определить, являются ли на самом деле данные два правила эквивалентными. В действительности это может в некотором смысле оказаться и невозможным, что составляет центральную проблему, обсуждаемую в гл. 8. 7.0.1. Функции неотрицательных целых чисел Математики используют понятие функции очень широко,так что почти любой предмет может стать аргументом или значе- значением. Например, мы можем определить функцию, аргументами которой являются грамматические предложения, а значением для аргумента х является подлежащее предложения х: F (Жил-был у бабушки серенький козлик) = Козлик. Мы не станем здесь обсуждать, можно ли вообще сделать это определение точным, но заметим, что в этом случае аргументом функции является не число, а предложение. Другую, более обыч- обычную разновидность представляет собой функция, аргументы которой есть множества, а значение для данного аргумента есть множество подмножеств х: F([a,b,c]) = [[], [а], [Ь], [с], [а, Ь], [а, с], [Ь, с], [а, Ь, с]], где [ ] есть пустое множество; вместе с ним всего имеется восемь различных подмножеств трех объектов. Такая функция назы- называется функцией множества, поскольку ее аргументы и значе- значения представляют собой множества, а не числа. Ниже мы в основном будем иметь дело с функциями весьма простого вида, а именно с функциями, чьи аргументы и значения
170 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ являются целыми неотрицательными числами, т. е. принадле- принадлежат последовательности 0, 1, 2, 3, 4 На самом деле в этом ограничении нет особой специфики: если бы мы использовали отрицательные или же рациональные чис- числа, то дальнейшие построения оказались бы такими же по своему идейному содержанию, но более сложными по форме. (Но существенные различия возникли бы, если бы мы рассма- рассматривали действительные числа. Это мы сделаем в гл. 9.) В не- некоторых случаях, в частности в этой главе, мы столкнемся с некоторыми функциями, аргументы которых несколько больше похожи на грамматические предложения. Но, пока это особо не оговорено, мы будем рассматривать только функции, аргу- аргументы и значения которых являются целыми неотрицательными числами. Мы также интересуемся правилами определения функций, и в нескольких последующих главах мы рассмотрим главным образом особый класс правил, а именно определение функций через поведение машин Тьюринга. 7.0.2. Функции, определяемые машинами Тьюринга Мы уже отметили в начале этой главы, что можно опреде- определить функцию через поведение машины Тьюринга; до начала работы машины аргументы записываются на ленте, а значения функции находятся на ленте, когда машина останавливается. В гл. 6 мы обсуждали, как реализуются некоторые арифметиче- арифметические функции, в том числе я2, n(mod2), х + у, ху и т. д.1) Начиная с этого момента, мы целиком посвятим свое внимание функциям, которые могут быть определены указанным образом посредством машин Тьюринга. Для того чтобы иметь возмож- возможность говорить об этом точно, мы должны согласиться с неко- некоторыми более строгими определениями. Я хочу заранее преду- предупредить об этом читателя. Нижеследующие определения могут казаться весьма узкими и ограниченными в части применения. Читателю могут прийти на ум многие другие способы определе- ') Наше обсуждение вопроса об упорядоченных парах и т. п. не дало от- ответа на вопрос, как определить функции нескольких аргументов, например f(x>y) = х + у. Ясно, что для этого необходимо что-то еще, скажем упорядо- упорядоченные триады. Этот несколько более сложней вопрос обсуждается э разд. 10.2.
7. УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 171 ния функций через машину Тьюринга; ему может показаться, что наш способ введения ограничений во многом не достигает цели. Ему предлагается сохранить эти возражения, пока он не прочтет эту главу до конца. Только после этого он сможет ясно представить себе невероятный диапазон, в пределах которого внешне очень различные типы определений в конце концов ока- оказываются одинаковыми по существу. 7.0.3. Функции, вычислимые по Тьюрингу Будем говорить, что функция f(x) вычислима по Тьюрингу, если ^значения могут быть вычислены некоторой машиной Тьюринга, на ленте которой первоначально не записано ничего, кроме некоторого стандартного представления аргумента х. Зна- Значение 1{х) —это то, что остается на ленте, когда машина оста- останавливается. Теперь, пока мы не договоримся о том, что такое «стандарт- «стандартное представление» чисел в приведенном выше определении, вновь возникает серьезное затруднение. Что значит f(lll)? Если числа единичные, это fC), если двоичные — fG), если де- десятичные— f(lll). Аналогично мы должны выбрать стандарт- стандартное условие для интерпретации результата. Оказывается, это не имеет особого значения, если мы последовательно придержи- придерживаемся какого-либо одного представления. Итак, предполржим (пока это не оговаривается особо), что числа будут предста- представлены в единичном коде. Они также будут иногда начинаться и кончаться другими специальными символами (выполняющими роль пунктуационных знаков, так чтобы машина Тьюринга могла, например, отличить, где число кончается и где начи- начинается пустая лента). Мы только что сказали, что если представление чисел остает- остается в рамках нашей теории одинаковым, то не имеет значения, каково оно. С другой стороны, если мы в рамках одних и тех же построений изменяем способ представления чисел, то тем самым мы изменяем и функцию, которую можно рассматривать как ре- результат вычислений машины Тьюринга. Действительно, для дан- данной машины Тьюринга найдется большое число различных функ- функций, соответствующих различным способам исходного предста- представления аргументов на ленте. В этой главе мы продемонстрируем важное открытие Тьюринга: существует машина Тьюринга, на- настолько восприимчивая в этом отношении, что, подобрав надле- надлежащим образом представление входной информации, мы можем заставить ее вычислить любую функцию, вычислимую по Тью- Тьюрингу, т. е. любую функцию, которая может быть вычислена ка- какой бы то ни было другой машиной Тьюринга!
172 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Кратко резюмируя его утверждение, примем, что f есть функ- функция, вычислимая по Тьюрингу, а Т—машина Тьюринга, вычис- вычисляющая эту функцию, когда выполняется следующее условие: если число х записано в единичном коде на пустой ленте и машина начинает работу в состоянии qo против ячейки, в которой записана крайняя правая единица числа х, то, когда машина останавливается, число f(x) будет записано на ленте в единичном коде. Затем Тьюринг показывает, как построить одну-единственную машину U с фиксированной структурой, обладающую тем свой- свойством, что для любой машины Тьюринга Т существует последо- последовательность символов йт, такая, что если число х записано в единичном коде на пустой ленте, а за ним следует строка dr и U начинает работу в состоя- состоянии qo с крайнего левого символа последовательности dT, то, когда машина останавливается, на ленте оказывается число f(x), где f(x) —число, которое было бы получено, если бы машина начинала свою работу тогда, когда на ленте было записано лишь число х. Справедливость этих утверждений Тьюринга мы и соби- собираемся доказать в этой главе. Прежде чем сделать это, повто- повторим еще раз, что утверждается. А утверждается то, что неза- независимо от сложности структуры машины Тьюринга Т ее пове- поведение находится в пределах возможного поведения машины U с фиксированной структурой. Неважно, что машина Т может иметь много больше состояний, чем машина U, или что Т может использовать больше символов, чем U, или же, что Т и U ис- используют различные символы. Все, что необходимо — это. предъявить машине U некоторую последовательность символов dr, и она сможет вычислить ту же самую функцию, которую вычисляет машина Т. Что такое dT? Очевидно, это некоторый способ, которым машина Т описывается в машине U. Существование машины U является главным подтвержде- подтверждением тезиса о том, что тьюринговское понятие вычислимости есть удобное средство для введения нашего интуитивного поня- понятия эффективной вьуислимости. Действительно, с одной сто- стороны, трудно утверждать, что машины Тьюринга обладают слишком уж широкими возможностями. Все, что они способны делать — это считывать и записывать символы и перемещаться вдоль своей ленты. С другой стороны, никто не может приду- придумать что-либо такое, чего универсальная машина Тьюринга не может делать и что в то же время разумно рассматривать ]сак
7. УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 173 процесс выполнения точно определенных предписаний. Как мы увидим ниже, эта идея выдержала проверку временем. Для всех других формулировок, казавшихся удовлетворительными, была показана их эквивалентность понятию вычислимости по Тью- Тьюрингу. Введение понятия универсальной машины позволяет дока- доказать некоторые важные теоремы, которые окончательно убедят нас в тщетности попыток получения эффективного критерия для оценки самой эффективности, т. е. распознавания того, какие описания процессов в действительности являются описаниями эффективных процессов. Некоторые из этих вопросов мы рас- рассмотрим в следующей главе. Доказать факт существования универсальных машин и даже описать их конструкцию довольно просто. Большая часть ра- работы была уже выполнена в гл. 6. В следующих разделах за- завершается описание конструкции универсальной машины. 7.1. УНИВЕРСАЛЬНАЯ МАШИНА КАК ИНТЕРПРЕТИРУЮЩАЯ ВЫЧИСЛИТЕЛЬНАЯ МАШИНА Способ работы универсальной машины Тьюринга знаком многим программистам в виде «интерпретирующих» систем программирования. Идеи заключаются в следующем. Пусть f(x) — функция, вычислимая по Тьюрингу; тогда, по определе- определению, существует некоторая машина Тьюринга Т, которая может вычислить ее значения. Таким образом, при каждом значении х, представленном на ленте машины Т в виде некоторой последо- последовательности sx символов, машина Т в конце концов остановится, оставив на ленте соответствующую последовательность Sj(X). Теперь, если читателю дано описание машины Т, а также sx, он может проследить за ее поведением при наличии входа sx и сам найти соответствующее значение f(x). Это как раз то, что читатель, по-видимому, делал для некоторых машин, описанных в предыдущих главах. Ему, очевидно, требуется для этого внеш- внешнее запоминающее устройство — бумага и карандаш, — а так- также точное понимание, как интерпретировать описание каждой машины. Универсальной машине должны быть предоставлены те же самые вещи: описание (на ленте) машины Т и последователь- последовательности sx; некоторое «рабочее пространство» на ленте; встроен- встроенная способность правильной интерпретации правил работы, за- заданных в описании машины Т. Ее поведение будет очень про- простым. Машина U будет имитировать поведение машины Т шаг за шагом. По метке М она определит, в какой точке ленты машина Т начинает работать; затем она будет располагать
|74 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ полной информацией о том, что содержится на ленте машины Т в каждый момент времени. Она будет запоминать состояния машины и обозревать то, что машина Т будет считывать с «ими- «имитируемой» ленты. Тогда машине U достаточно просмотреть опи- описание машины Т, чтобы увидеть, что машина Т должна сделать в следующий момент, и сделает это. На самом деле все, что требуется, это найти по таблице «пятерок», какой символ нуж- нужно записать, в какую сторону перемещаться и в какое новое состояние перейти. Предположим, что машина Т имеет ленту, бесконечную лишь влево, и что она представляет собой двоич- двоичную (двухсимвольную) машину. Эти ограничения не существен- существенны, но помогают сильно упростить изложение. Пусть лента универсальной машины U разделена на не- несколько зон, как это показано на рис. 7.1.1. Пятерки q(t) s(t) машины Т Псевдолента машины Т Состояние Символ Описание полубесконечная машиныТ машины Т машины Т Рис. 7.1.1. Бесконечная зона слева будет «рабочей зоной», в которой имитируется лента машины Т. Где-нибудь в этой полубесконеч- полубесконечной зоне имеется метка М, показывающая, где в данный мо- момент находится считывающая головка машины Т. Вторая зона содержит текущее состояние машины Т. В сле- следующей за ней зоне мы записываем символ, который машина Т только что считала или который она должна в этот момент записать в зависимости от фазы процесса. Наконец, имеется также зона, содержащая описание машины Т. Способ описания машины рассмотрен в разд. 7.2. 7.2. ОПИСАНИЕ МАШИНЫ ,/ Структура машины Тьюринга определяется непосредственно ее диаграммой состояний, т. е. множеством «пятерок», которые описывают связь между ее состояниями, входами и выходами. Следовательно, полное описание машины Т просто реализуется записью списка ее «пятерок». Мы будем записывать этот список на ленте машины U весьма простым способом (рис. 7.2.1). «Пя- «Пятерки» представляются двоичным кодом, разделенным символа- символами X, которые используются как знаки пунктуации.
7. УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 175 Для обозначения состояний машины Т мы должны исполь- использовать некоторое представление, подобное двоичной записи но- номера состояния. Дело в том, что универсальная машина U, ко- которую мы строим, должна иметь некоторую фиксированную Пятерка Пятерка Пятерка Пятерка i Тт Q, S, QnSnD,i Qt Sj Qtf S^Dj « Описание машины Т на ленте машины V Рис. 7.2.1. структуру; следовательно, символы, которые она способна запи- записывать на ленте, должны принадлежать некоторому фиксиро- фиксированному множеству. В то же время для моделирования машин может потребоваться произвольно большое число состояний, хотя каждая из машин является конечной. Таким образом, нельзя предусмотреть в машине U отдельный символ для ка- каждого состояния машины Т. (Мы предположили, что все ма- машины Т являются двухсимвольными, так что в отношении сим- символов нет никакой проблемы.) Наша задача решается следую- следующим образом. Если машина Т имеет п состояний и п есть Состояние машины Г— - Символ, считываемый машиной Т II 00 Положение машины Т _Псевдолента с двоичными символами Режим машины Описание машины Рис. 7.2.2. двоичное число, состоящее из k двоичных цифр, то для пред- представления ее состояний мы будем использовать наборы из k двоичных цифр. На рис. 7.2.1 выбрано k = 2. В этой машине нам нужна только одна двоичная цифра для каждого из дву- двузначных величин Sj, Sij, Dij. Чтобы закончить описание машины Т на ленте машины U, нам нужно представить ленту Т, положение ее головки, теку- текущее состояние машины Т и считываемый машиной символ. Для этого мы будем применять способ записи, показанный на
176 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ рис. 7.2.2. Предположим, что зона ленты, называемая «режим машины», содержит 1) начальное состояние Qo машины Т, 2) символ, который машина Т обозревает первым. (Марке- (Маркером М отмечается позиция символа B) на имитируемой ленте машины Т.) Предположим также, что считывающая головка ма- машины U размещается напротив левого крайнего символа X, как это показано на рисунке. Цикл работы машины U состоит из четырех частей. 1. При запуске начинает работать «локализующая» машина, показанная на рис. 6.1.5. Сначала в правом направлении произ- производится поиск первой пары состояние — символ, соответствую- соответствующей той, что представлена в зоне «режим машины». На пути шш АА ВВ вШ Рис 7.2.3. к искомой паре все нули и единицы заменяются символами А и В. После того как искомая пара найдена и в ней тоже произведена замена нулей и единиц символами А к В, машина возвращается назад к крайнему левому символу X. В конце этого процесса лента выглядит так, как это показано на рис. 7.2.3. 2. Затем начинается действие машины для «перезаписи» (рис. 6.1.6). Она начинает работу с крайнего левого символа X ААА В I А\А В\В Noetie\_J s состояние и символ^. Рис 7.2.4 и перемещается вправо от него до тех пор, пока не пройдет последнего из символов А или В и не встретит впервые нуль или единицу. Эти нули и единицы описывают новое состояние Qij машины Т, новый символ S^, который должен быть напеча- напечатан на месте метки М, и направление движения Dij. Затем ма- машина переписывает нули и единицы, представляющие Q,j и S^, в зону «режим машины», а символ Оц не печатает, но запоми- запоминает. Теперь лента выглядит так, как это показано на рис. 7.2.4.
7. УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 177 От рис St. В (Запоминание направления^ Считать символ, который должен К рис бить записан ^^ 7. 2 7 От рис fi 6.1.6 Найти маркер М /г\„ i Восстановить зону режима машины Восстановить зону описания Записать символ направления Рис. 7.2.5. 3. В своей третьей фазе работы машина двигается влево, пока не достигнет метки М. Там она стирает символ М и печа- печатает (временно) на его месте направление Di; (т.е. А или В), которое она перед этим запомнила. Эта информация сохраня- сохранялась для выбора одной из двух выходных стрелок в маши- машине для «перезаписи» (рис. 6.1.6). Затем машина идет вправо и заменяет все символы А и В на ленте на нули и единицы, за исключением символа А или В на месте старой метки М, где сейчас хранится символ Di;-. Наконец, она перемещается к об- области, находящейся непосредственно слева от символа X. Она °.хШ О Рис. 7.2.6. стирает находящийся там символ S,j, запоминает его и печа- печатает на его месте символ S (S — это специальная буква, ис- используемая в качестве метки только на этом этапе работы ма- машины). Все это выполняется устройством, изображенным на рис. 7.2.5. Лента машины выглядит в конце третьей фазы так, как эго показано на рис. 7.2.6. 4. Теперь в заключительной фазе работа машины Т должна быть завершена Машина двигается влево, пока не дойдет до первого символа А или В. Эти символы указывают направле- направление Dij, в котором должна двигаться машина Т в следующий момент. Машина печатает S,-;-, т. е. О или 1 вместо А или В, и передвигается на одну ячейку влево или вправо в соответствии
178 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ с тем, равно ли Di} А или В. Затем она считывает содержимое этой ячейки, запоминает, чему оно равно — 0 или 1, и печатает на его месте М. Наконец, машина перемещается вправо, пока не достигнет 5. Она заменяет 5 символом, хранившимся в па- памяти, используя при этом А для 0 и В для 1. Все это выпол- выполняется устройством, изображенным на рис. 7.2.7. Лента на этом Запуск Крис 6.1.6 Найти маркер А Считать положения ?" новый Напеча- Двигаться символ; тать в направле- сохранить символ нии Точная Найти Напеча- S тать новый символ Разместить пятерку Рис. 7.2.7. Выполнение операций на псевдоленте. Q Рис. 7.2.8. этапе выглядит так, как это показано на рис. 7.2.8. Теперь машина вновь возвращается к первой фазе рабочего цикла. Что произошло в результате выполнения этого цикла ра- работы? Машина начинает с данной пары, состояние — символ Qu Su ищет соответствующую «пятерку» [Qv, St, Qih Sih D,j] и выполняет команды, диктуемые ей. Затем она печатает новую пару состояние — символ на место старой пары. Таким образом, машина выполняет команды в точности одной пятерки и подго- подготавливается к началу следующего шага работы машины Т. Этого достаточно для составления диаграммы состояний и кодирования команд нашей универсальной машины Тьюринга, и таким образом мы показали, что такая машина может быть построена. Полная диаграмма состояний показана на рис. 7.2.9. В разд. 7.3 мы проследим процесс моделирования цикла работы некоторой конкретной машины, показывая состояния ленты, соответствующие важным фазам процесса.
Останов Положение машины Т Псеадолента с двоичными символами Резком машины ш° ш Жо.Що \ \ К W % \°!А% Каноническое описание в виде пятерок QS q's'd'-—*j Рис. 7.2.9. Универсальная машина.
180 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ 7.3. ПРИМЕР Рассмотрим в качестве простого, но нетривиального при- примера машину Т с двумя состояниями и двумя символами, кото- которая является разновидностью двоичного счетчика. Диаграмма машины представлена на рис. 7.3.1, а ее пятерки имеют вид: Qo^o QoS, Q.So Q,S, Q0S0Dl Q.S.A, QQSlDl Q.SoA, 00 01 10 11 001 no 011 100 Рис. 7.З.1. Оказавшись над единицей на своей ленте, эта машина присту- приступает к «счету», т.е. к записи двоичных чисел 1, 10, И, 100, 101, 110, 111, 1000 и т.д., одного за другим, и никогда не остана- останавливается. Нас интересует не сама машина Т, а ее имитация ма- машиной U. Описание машины Т на ленте машины U выглядит как где «У01Х»— начальная комбинация, означающая, что модели- моделируемая машина'в состоянии Qo начинает работать над ячейкой, отмеченной меткой М, и считывает расположенный в этой ячейке символ 5( = 1. Читатель заметит, что в диаграмме ма- машины U на рис. 7.2.9 некоторые точки мы отметили символами А, А, А и т. д. Ниже указаны состояния л^чты, которые на- наблюдаются в этих точках в ходе первого цикла. • Нача/и? д 000MO0urvi? 0 0 0 0 1 X 0 1110 X I О О I I X I I I О О Г OOOMOOOYOl X^ А А А А В X A 8 1 I 0 X 10 0 11 X OOOA^OOOYBB X А А А А В X А В В В A X 10 0 11 X OOOAOOOYI t X А А А А В X А В В В A X 10 0 11 X 000А000Г1? X О О О 0 Г X 00M^l000YIA X 0 О О 0 1 X 00MI000YIA X 0 0 0 0' X OII1O 0 I 1 I 0 I 0 0 I I I 0 О Г I 0 I I 1 0 X 10 0/1 1110 0 I I 1 О О 1110 0 1110 0 I 1 1 О О 1110 0 Каждый раз, когда машина U достигает шага А, ее лента вы- выглядит так, как это показано в табл. 7.3.1 слева. Справа в этой таблице изображено, как выглядит лента машины Т на том же этапе. Нижний индекс на ленте машины Т показывает, какой символ обозревался последним; он равен 1, если наблюдавшееся состояние было Qi, и 0, если это состояние было Qo.
Т. УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 181 Таблица 7.3.1 и т О ОМ I О О О У I А X и т. д О OJ^l О О О OO1MOOOYOB О О | 1 | 10 О О О ООМ1 1В 00 1, 1ООО 0М01 1А О Oi 01000 01М1 ОА О 1 00 10 0 0 010М ОВ О | 1 0| 10 0 0 О 1 М 1 1 А . О 1 Ot 10 0 0 011М ОВ О |1 1 | 10 0 0 01М1 IB Oil, 1000 0М01 IB 0 1, 01000 M001 1A 0, 001000 Крайний справа символ У отмечает конец зоны описания. Если в первой фазе процесса не записано ни одной из пятерок, начинающихся символами QiSj, то машина подойдет к ячейке с символом У и остановится. Обычный способ останова машины Тьюринга — не приписать пятерки некоторой паре QiSj, и ма- машина U распознает это условие, останавливаясь на символе У. Задача 7.3.1. Почему нужно предусмотреть 0 (или 1) после этого сим- символа К? 7.4. ЗАМЕЧАНИЯ Предложенная конструкция универсальной машины Тью- Тьюринга достаточно проста в том смысле, что различные фазы процесса — нахождение пятерки, изменение состояния, считыва- считывание, запись и передвижение — на диаграмме состояний разде- разделены. При большем числе состояний и (или) использовании большего числа букв в алфавите можно было бы упростить операции в еще большей степени, но мы хотим воспользоваться случаем, чтобы проиллюстрировать некоторые приемы и методы, которые можно было бы применить при построении машины Тьюринга. Некоторые из них неочевидны; читатель может за- заметить, например, что символы М и S излишни и могут быть повсеместно заменены символами X. Если кого-либо интересует конструирование очень простой универсальной машины с очень небольшим числом состояний, его можно выполнить намного лучше; но тогда часто необходимо использовать одно и то же состояние для различных целей, и понять, как работает машина,
182 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ станет значительно сложнее. Выиграть в простоте можно также, изменив способ представления описания машины на ленте. В гл. 14 мы используем такие методы для построения очень простой машины — она имеет четыре символа и только семь состояний, — но, как увидит читатель, эта машина, как и любая подобная ей, будет неудобна для демонстрационных целей. Наша универсальная машина Тьюринга обладает свойством имитировать поведение любой машины Тьюринга с любой лен- лентой. Нет необходимости интерпретировать результат с помощью какого-либо конкретного набора арифметических операций; уни- универсальная машина может имитировать работу любой машины Тьюринга, в чем бы она ни состояла. Принимая тезис Тью- Тьюринга, мы приходим к выводу, что универсальная машина мо- может имитировать любой эффективный процесс оперирования символами, является ли он математическим или каким-либо еще; она является вполне общим типом механизма, выполняющего предписания. Задача 7.4.1. Покажите, как обойти то ограничение, что имитируемая ма- шииа Т должна иметь ленту, бесконечную только в одном направлении. Задача 7.4.2. По сравнению с имитируемой машиной универсальная ма- машина работает очень медленно — так медленно, что трудно ожидать, что она найдет какое-либо практическое применение (особеиио если учесть, сколь мед- медленно работают обычные машины Тьюринга). Относительная скорость ма- машины и по сравнению со скоростью машины Т уменьшается с ростом длины активной части леиты машины Г, так как машина U передвигается взад и вперед по всей длине ленты в каждом цикле имитации. Мы можем создать такую конструкцию машины U, чтобы предотвратить это уменьшение быстро- быстродействия. Укажите, как это в принципе можно сделать. Указание. Замените символ М копией зоны, на которой записана вся команда. Обратите внимание на то, что машина U — другая^,-ашина, ко- которую вы построите, — столь же эффективно используег ленту, как это де- делает машина Т. Задача 7.4.3. Постройте машину Тьюринга, которая, начиная работу иа пустой ленте, печатает свое собственное описание (в виде последовательности пятерок). Ли [42] назвал машины, которые могут это делать, интроспектив- интроспективными '), хотя я бы сохранил это название для машин, которые печатают то, что онн «думают» о своем собственном описании. Не заглядывайте в решение, пока не убедитесь в безнадежности своих попыток! Задача 7.4.4. Попробуйте переделать машину U так, чтобы в ней исполь- использовалась единичная, а ие двоичная запись для представления состояний ма- машины Т при кодировании пятерок. ') То есть занимающимися самоанализом.—Прим. перге. \
8 ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИСЛИМОСТИ: НЕКОТОРЫЕ ПРОБЛЕМЫ, НЕ РАЗРЕШИМЫЕ МАШИНАМИ, ВЫПОЛНЯЮЩИМИ ПРЕДПИСАНИЯ Универсальная машина способна делать все, что делает лю- любая другая машина Тьюринга, хотя и гораздо медленнее. Было бы очень хорошо иметь точную характеристику возможных ти- типов поведения в столь же четкой форме, как и для машин с ко- конечным числом состояний (гл. 4). К сожалению, эта область намного более таинственная, и мы увидим, что имеются опреде- определенные основания полагать, что так оно и должно быть. В этой главе мы рассмотрим кое-что из того, что, как мы можем дока- доказать, машины Тьюринга делать не способны. 8.1. ПРОБЛЕМА ОСТАНОВА Когда машина Тьюринга с входной лентой начинает рабо- работать, может пройти очень много времени, пока она не завершит процесс вычисления и не остановится. Для многих пар ма- машина — лента это не случится никогда — «вычисление» будет продолжаться бесконечно. Было бы полезно иметь процедуру решения, которая дала бы нам возможность определить, прои- произойдет ли когда-либо останов любой данной машины Т с лен- лентой t'). Мы покажем здесь, что не может существовать никакой эффективно"?! процедуры, которая могла бы решить проблему останова! Этот довод в неявной форме противоречит тезису Тьюринга о том, что вычисления на машинах Тьюринга вклю- включают все эффективные процедуры. Согласно нашему предполо- предположению, если имеется некоторая «процедура решения» (термин, при использовании которого всегда подразумевается, что про- процедура эффективна), то должна существовать машина Тьюрин- Тьюринга, которая может реализовать эту процедуру. Посмотрим, в чем могла бы состоять такая процедура. Отметим сначала, что универсальная машина дает некоторое упрощение проблемы. Мы, конечно, вольны поместить описание ') Термин процедура решения (decision procedure) означает здесь единое множество предписаний, данное раз и навсегда, которое позволяет иам ре- щить проблему останова для любой пары машина — лента.
184 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ машины Т и ленты t на ленте машины U и затем осуществить запуск последней. В случае когда Т с лентой t останавливается, то, естественно, U в конце концов остановится. Но в противном случае, когда Т с лентой t не останавливается, U не остановится никогда. Теперь если бы мы могли проследить за работой ма- машины U и убедиться в том, что она находится в режиме, в ко- котором останов не происходит, то имели бы решение. Следова- Следовательно, главный вопрос «остановится ли машина Т с лентой?» может быть сведен к более определенному: остановится ли конкретная машина U с лентой <*т) Таким образом, мы должны решить проблему останова только для лент одной определенной машины U. Но мы покажем, что и в этом случае эффективной процедуры не существует. Другой подход, кажущийся на первый взгляд многообещаю- многообещающим, основывается на нахождении верхней границы времени вычисления при условии, что процесс вычисления в конечном итоге завершится. Этот подход может показаться вполне логич- логичным, потому что машина Т имеет известное число Q состояний, ее алфавит состоит из известного числа символов S, а лента t содержит известное число N непустых ячеек. Несомненно, мы могли бы вычислить некоторую функцию от S, Q и N в предпо- предположении, что если за время f(S, Q, N) машина еще не останови- остановилась, то она не остановится никогда. Тогда единственное, что нам нужно сделать, это приказать машине U вычислить функ- функцию f(S, Q, N). При этом машина U (или, точнее, ее улучшен- улучшенная модификация) может начать имитацию поведения маши- машины Г с лентой / и вести счет числа циклов. Если вычисление не завершилось за время f(S, Q, N), то U может остановиться и сообщить, что вычисления на машине Т никогда не закон- закончатся. В этом могла бы состоять эффективная процедура ре- решения. В этом рассуждении нет ничего ошибочного, кроме невин- невинного предположения о том, что U может вычислить границу f(S,Q,N)\ Такая граница существует1), но оказывается (как мы увидим вскоре), не существует такой машины, которая ') Поскольку имеется только конечное число лент длиной N и машин Тьюринга с числом символов S н числом состояний Q, то имеется только конечное число вычислений, связанных с (S,Q,N), и, следовательно, только конечное число вычислений, кончающихся остановом. Тогда }(S,Q,N)—точ-
8. ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИСЛИМОСТИ 185 могла бы ее вычислить. Это представляется удивительным, если иметь в виду тот очевидный факт, что в процедуре решения можно использовать любую функцию с достаточно большими значениями1). Но имеет место печальный факт — нет вычисли- вычислимых функций, которые могут расти столь быстро] Действитель- Действительно, поскольку эти рассуждения справедливы, в других отноше- отношениях приводимое ниже доказательство того, что не существует процедуры решения этой задачи, играет также и роль доказа- доказательства нашего предшествующего утверждения. 8.2. НЕРАЗРЕШИМОСТЬ ПРОБЛЕМЫ ОСТАНОВА Результат простых, но довольно тонких рассуждений, при- приводимых в этом разделе, возможно, является наиболее важньш выводом этой книги. Его необходимо очень хорошо уяснить. В качестве гипотезы, противоречивость которой должна быть до- доказана, предположим, что мы имеем машину D, которая будет определять, закончится ли когда-либо вычисление на какой-либо машине Тьюринга Т или нет по данному ее описанию dT и опи- описанию ее ленты t. Тогда D имеет вид, показанный на рис. 8.2.1. если машина Те конечном счете останавливается при данном t Диагра ма состояний машины п если машина Т никогда не йу~ останавливается при данном t Рис. 8.2.1. Если машина D может решить проблему останова для всех пар машина — лента (Т, t), то она может, конечно, сделать это для очень частного вида таких пар (Г, dT), где лента t содержит описание dT самой машины Т. (Мы не касаемся в данном случае ная длина самого длинного процесса вычисления из этого конечного мно- множества. Обычно предполагают, что при нахождении наибольшего нз конеч- конечного множества чисел нет трудностей. ') То есть нет нужды точно знать функцию f. Для процедуры решения мы можем использовать любую функцию g(S, Q, N), такую, что g(S,Q,N) ^ >f(S,Q,N).
186 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ вопроса о том, чем интересны такие вычисления «с самоана- самоанализом»; все же нет ничего абсурдного в ситуации, когда человек размышляет над описанием своего собственного мозга.) Машине D предварительно требуется описание машины Т и ленты t. Теперь оба описания совпадают, т. е. dT = t. Тогда легко построить новую машину Е, которой требуется только описание dT машины Т, но поведение которой в остальном бу- будет таким же, как и поведение машины D. Предположим, что D, как и U, построена таким образом, что лента в начальный мо- момент имеет вид Пусть Е выполнена так же, как машина D, но имеет дополни- дополнительные состояния, которые позволяют перепечатывать массивы символов. Тогда Е, начиная работать на ленте приводит ее к виду и затем продолжает работать как D. Какой бы ни была внутренняя структура гипотетической ма- машины Е, мы знаем, что ее диаграмма состояний должна содер- содержать два выхода, соответствующие останову, причем на одном Останов Останов если машина Т в конечном счете останавливается при данном dT если машина Т никогда не останавливается при данном dT Рис. 8.2.2. из них печатается «Да», если (dT, dT) когда-либо останавли- останавливается, а на другом «Нет», если (dT, dT) никогда не остана- останавливается. Тогда машина Е должна иметь вид, изображенный на рис. 8.2.2. Сделаем теперь незначительное изменение в струк-/ туре Е, добавив два новых состояния, чтобы получить новую машину Е*; новые состояния препятствуют останову Е*, если когда-либо на выходе Е появляется сигнал «Да» (рис. 8.2.3). Машина Е* с лентой dT обладает свойством останавливаться,
8. ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИСЛИМОСТИ 187 если машина Т с лентой dT .не останавливается, и наоборот. Теперь зададим «убийственный» вопрос: «Что случится, если машине Е* предъявить ленту dE. ?». Она останавливается, если машина Е*, которой предъявлена лента dE,, не останавливает- останавливается, и наоборот. Этого не может быть, так что мы должны с грустью заключить, что такая машина, как Е* и, следователь- следовательно, Е и, значит, D, прежде всего не может существовать [1*]! L (х-люйай символ) Останов Рис. 8.2.3. Мы можем лишь посочувствовать тем читателям, которые не сталкивались раньше с такого типа простым и в то же время головоломным доказательством. Оно имеет сходство с рассу- рассуждением в «парадоксе Рассела», который принуждает нас отка- отказаться от понятия «класс всех классов», абсурдность которого не особенно очевидна [2*]. Оно связано также с доказательством Кантора о том, что нельзя «сосчитать» действительные числа. Неразрешимость проблемы останова обычно демонстрируется с помощью канторова «диагонального метода». Мы предпочли настоящий способ потому, что он позволяет избежать «перечис- «перечисления» (нумерации), необходимого в диагональном методе. Мы используем канторов способ доказательства в следующей главе. 8.3. НЕКОТОРЫЕ ДРУГИЕ НЕРАЗРЕШИМЫЕ ПРОБЛЕМЫ Из основного результата о неразрешимости проблемы оста- останова легко получаются некоторые другие результаты. 8.3.1. Проблема останова Из вышесказанного немедленно следует, что мы не можем иметь машину для ответа на общий вопрос «останавливается ли машина Т с лентой t?>>, потому что этот вопрос должен вклю- включать решение вопроса «останавливается ли машина Т с лен- лентой ??г?», который мы обсуждали в предыдущем разделе. 8.3.2. Проблема «печати» Рассмотрим вопрос: напечатает ли машина Т когда-либо символ So на ленте t после своего запуска? Он также не может 0ыть решен для всех пар (T, t) любой машиной; это объяс-
188 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ няется тем, что мы можем взять любую машину Т, в которой обычно не используется символ So, и переделать ее так, чтобы машина перед каждым сигналом об останове сначала печатала символ So. Тогда проблема «печати» для новой машины пред- представляет такую же проблему, как проблема останова для ста- старой машины. Поскольку любую машину, в которой используется символ So, можно заменить машиной, в которой этот символ не используется (заменой названия So некоторым неиспользуе- неиспользуемым символом), а затем переделать ее вышеуказанным спосо- способом, решение проблемы «печати» давало бы решение всех проб- проблем останова, а мы знаем, что такого решения не существует. 8.3.3. Проблема останова при пустой ленто «Можно ли построить машину, которая для любой машины Г решит, остановится ли машина Т, если она начинает работу с пустой лентой?» Если бы имелась машина для решения пробле- проблемы из разд. 8.3.1, рассмотренной выше, то эта машина могла бы решить проблему останова при пустой ленте лак частный случай. Но неразрешимость проблемы из разд. 8.3.1 непосред- непосредственно не означает неразрешимости проблемы из разд. 8.3.3, так как последняя задача может оказаться более простой по- потому, что сфера ее применения, по-видимому, уже. Однако мы можем продемонстрировать, что задачи эквивалентны, показав, что для каждой пары машина — лента (T,t) существует соот- соответствующая задача останова на пустой ленте для некоторой другой машины, которую мы можем назвать Мт, <. Машина Мт, t строится непосредственно по описанию Г и /, если диаграмму состояний машины Т дополнить последователь- последовательностью новых состояний. Предположим, что для Т, t требуется, чтобы в момент запуска машины Т (в ее начальном состоянии) состояние ленты t было таким: 1_i. О 0 0 r,r2 . . . rm rm,,rm,2 . . . rn 0 0 0 ... f. Новая машина Мт, t начнет работу где-то на пустой ленте с последовательностью состояний Запуск
8. ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИСЛИМОСТИ 189 где X — некоторая буква, в других случаях не встречавшаяся на входной ленте t. Мы видим, что МТу t должна быть эквива- эквивалентной (при запуске на пустой ленте) машине Т, начинающей работу на ленте t, так как Мт, t просто печатает копию ленты t на ленте, затем выбирает нужную позицию и после этого стано- становится идентичной машине Т. Отсюда следует, что если мы могли бы решить проблему останова при вычислении на пустой ленте (задача 8.3.3), это привело бы к возможности решить ее применительно к машине МТу t и, следовательно, для всех пар (T,t) в задаче 8.3.1. Так как это невозможно, то задача 8.3.3 также является неразре- неразрешимой. 8.3.4. Общая проблема останова Другая интересная проблема, относящаяся к тому же клас- классу, состоит в следующем. Можем ли мы решить в случае произвольной машины Т, остановится ли она при всякой исход- исходной ленте? Оказывается, что эта проблема включает проблему 8.3.3 как частный случай и, следовательно, неразрешима. Ука- Укажем кратко, как производится сведение этой проблемы к проб- проблеме 8.3.3. Пусть Т — произвольная машина Тьюринга, которая, как обычно, должна начать свою работу в состоянии Qo. По- Построим другую машину Тв, добавив к машине Т некоторые со- состояния и пятерки. Машина Тв начинает работу в состоянии qo- Пусть А и В — два символа, не используемых в Т. Каждому состоянию <7г машины Т мы сопоставим пятерки (qp A, q't, О, L), {q't, Ф, q{, A, R}, (qt, В, q'[, О, R), {q'[, Ф, qp В, L], где q\ и q" — два новых состояния, добавленные к каждому из <7i, а через Ф обозначен любой символ (таким образом, в со- состоянии q\ машина заменяет обозреваемый символ, каким бы он ни был, символом А и затем передвигается вправо в состоя- состояние <7г)- Мы добавим также три новых состояния {q'o, Ф, q\. A, R), [q\, ф, q\, О, Щ, {q'2, Ф, Qo, В, L) и будем, считать, что машина начинает печатать в состоянии q*0. Теперь мы утверждаем, что задача об останове машины Г при пустой ленте эквивалентна задаче об останове машины Тв, если она начинает работу с любой лентой, и, следовательно, проблема из разд. 8.3.4 неразрешима. Задача 8.3.1. Докажите последнее утверждение, •
190 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Задача 8.3.2. Покажите, что из неразрешимости проблемы из разд. 8.3.4 следует неразрешимость проблемы из разд. 8.3.1. (Мы только что доказали обратное.) 8.3.5. Родотвеннвя проблеме: беоконечные ленты, все ячейки которых непусты До сих пор считалось, что все рассмотренные машины (как и машины, рассматриваемые далее) начинают свою работу с дан- данного начального состояния, имея ленту, у которой заполнена только ее конечная часть. В данный момент обратимся к маши- машинам, которым предъявлены бесконечные ленты и во всех ячей- ячейках которых записаны символы. Имеется ли машина Тыорин- га D, которая может ответить на следующий вопрос: суще- существуют ли такое внутреннее состояние Q и такая бесконечная лента, все ячейки которой заполнены символами, что данная машина Т, начав работу с этой лентой в состоянии Q, не оста- остановится? Мы не обсуждали выше и не будем заниматься в дальнейшем машинами, у которых начальная информация, запи- записанная на их лентах, не конечна, или машинами, начальные состояния которых не заданы, но читателя, возможно, заин- заинтересует эта легко формулируемая, но очень сложная проб- проблема [3*]. Задача 8.3.3. Если начальное состояние задано, проблема останова ма- машины при исходной бесконечной ленте, во всех ячейках которой записаны символы, неразрешима. Покажите это. 8.4. КОНСТРУКТИВНЫЙ ХАРАКТЕР ДОКАЗАТЕЛЬСТВА НЕРАЗРЕШИМОСТИ Отметим другую интересную особенность, общую для всех рассмотренных выше проблем, хотя я описываю ее только для проблемы останова. Остановимся на способе построения Е* для машины Е из разд. 8.2. Вполне возможно, что если некоторая машина ? и не может дать ответа на любой вопрос об останове, то она может ответить на некоторые такие вопросы. Иначе го- говоря, можно предположить, что когда машина Е говорит «да», то машина Т с лентой dT никогда не остановится, но при неко- некоторых входах сама машина Е никогда не остановится и никогда не сообщит решения. Конечно, существует много таких машин (задача: сконструируйте одну из них), реализующих то, что мы можем назвать «частными процедурами решения», в случае ко- которых все объявленные решения правильны, но машина дауг решение не всегда. Если дана машина Е для реализации такой частной процедуры, конструкция из разд. 8.2 дает нам конкрет- конкретную задачу, которую Е не может решить, а именно проблему
8. ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИСЛИМОСТИ |91 останова машины Е* с лентой dE>. Этот пример является весьма наглядным — в нем отсутствуют «неконструктивные» шаги (как в канторовом диагональном процессе). Непригодность любой конкретной предлагаемой процедуры решения может быть про- продемонстрирована, таким образом, конструктивно. Итак, проблема, в которой ситуация (Т, dT) приводит к оста- останову, не только эффективно неразрешима, но связана с эф- эффективной процедурой построения контрпримеров для любого предлагаемого решения. Другая проблема того же характера встречается в разд. 10.6 (теорема 5). Проблемы неразрешимости несколько более тонкого характера изучаются в теории «креа- «креативных» и «продуктивных» множеств (см. Роджерс [85]). 8.5. СЛЕДСТВИЯ, СВЯЗАННЫЕ С АЛГОРИТМАМИ И ПРОГРАММАМИ ДЛЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН: ПРОБЛЕМА ОТЛАДКИ Неразрешимость проблемы останова может быть подобным же образом продемонстрирована для любой системы вычисле- вычислений (а не только машины Тьюринга), которая способна соот- соответствующим образом оперировать с данными и интерпретиро- интерпретировать их как предписания. В частности, невозможно придумать общую процедуру или программу для вычислительной машины, которая может просмотреть любую машинную программу и ре- решить, произойдет ли когда-либо останов по ней или нет. Это значит, что специалистам-программистам нет смысла пытаться составить универсальную «отладочную» программу, очищающую программы от ошибок такого рода. (Это замечание справед- справедливо только для программ вычислительных машин с суще- существенно неограниченной внешней памятью, так как в противном случае вычислительная машина будет машиной с конечным числом состояний, и, следовательно, проблема останова на са- самом деле разрешима, по крайней мере в принципе.) Это озна- означает также, что нет смысла стремиться к получению набора правил, посредством которых можно решить, когда любой из предлагаемых «алгоритмов» верен в том смысле, что он обеспе- обеспечит останов при всех начальных ситуациях. Конечно, мы можем найти правила, которые применимы для решения обширных классов важных задач. Те, кто возражает против того, что тезис Черча (или Тью- Тьюринга)— см. разд. 5.2 — допускает слишком многое, обычно объясняют это тем, что формулировка вычислимости через ма- машины Тьюрилга допускает вычисления, длина которых не мо- может быть ограничена заранее любьы разумным способом. Невозможность вычисления оценок (упомянутая в разд. 8.1),
192 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ которая следует из неразрешимости проблемы останова, является одним из препятствий, стоящих на пути нахождения более сла- слабой, но еще не совсем тривиальной формулировки вычисли- вычислимости. 8.6. НЕРАЗРЕШИМОСТЬ ЧАСТНЫХ ПРОБЛЕМ ОСТАНОВА Мы показали невозможность построения эффективной про- процедуры для решения всех проблем останова машин Тьюринга. Но заметим, что не было случая, когда бы нам удалось пока- показать, что проблема останова неразрешима для любой частной ситуации (Го, to), т.е. что не существует эффективной про- процедуры, которая ответила бы на вопрос: остановится ли когда- нибудь машина Го с лентой t0 или нет? Действительно, такой результат не может быть доказан. Рассмотрим две процедуры — «Посмотрите на (Го, ^о) и скажите „Да"» и «Посмотрите на G"о, t0) и скажите „Нет"». Эти две тривиальные процедуры мо- могут показаться глупыми, но обе они, конечно, эффективны. А поскольку (Го, ^о) на самом деле либо остановится, либо никогда не остановится, одна из них должна дать правильный ответ! Конечно, это не решает задачу определения, какая из них дает верный ответ, но в данном случае нас это не касается. Взглянем на проблему несколько иначе. Если дана пара (Г0) to), то может оказаться, что никому не удастся когда-либо выяснить, остановится машина или нет. Может быть неизвестен способ решения этой задачи, но исключена ситуация, чтобы кому-нибудь удалось доказать, что не существует способа ее решения, потому что это могло бы привести к следующему пара- парадоксу. Предположим, что доказано, что не существует способа опре- определить, остановится ли машина Го с лентой ^о или нет. Пусть также разработана программа большого эксперимента, связан- связанная с конструированием и использованием в действии пары (Го, ^о)- Имеется достаточный запас ленты для медленной, но по существу неограниченной ее подачи. Тогда возможны лишь два случая — либо машина Го с лентой t0 остановится, либо никогда не остановится. В первом случае экспериментальный подход в конечном счете будет иметь успех и вопрос об оста- останове будет решен. Это, естественно, противоречило бы любому доказательству того, что вопрос не может быть решен! Значит, может случиться, что Го с лентой t0 никогда не остановится. Итак, доказательство того, что не существует способа дать ответ на поднятый вопрос, может быть использовано в свою очередь для доказательства того, что Го с лентой t0 никогда не остановится. Следовательно, мы могли бы дать ответ. Противо- Противоречие! Мы вернемся к этому вопросу в конце гл. 9,
8. ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИСЛИМОСТИ 153 8.7. СВОДИМОСТЬ ОДНОЙ ПРОБЛЕМЫ НЕРАЗРЕШИМОСТИ К ДРУГОЙ В разд. 8.3.3 мы показали невозможность построения ма- машины Тьюринга, которая могла бы решить, какие машины Тью- Тьюринга останавливаются, если они начинают работать на пустых лентах. Эта проблема — решение того, какие ситуации (Т, пу- пустая лента) ведут к останову, — кажется проще, чем первона- первоначальная проблема (разд. 8.3.1), связанная с выяснением того, какие ситуации для пары (Т, t) ведут к останову. Но давайте напомним первые шаги доказательства. В разд. 8.2 мы устано- установили, что не существует машины, которая могла бы разрешить все ситуации (Т, t), показав, что если существует такая ма- машина D, то должна существовать также ее модификация Е*, которая должна как останавливаться, так и не останавливаться в ситуации (?*, d?»), когда дано ее собственное описание. Мы затем показали, что каждой паре (Т, t) соответствует легко конструируемая машина Мт< и которая останавливается на пу- пустой ленте тогда и только тогда, когда имеет место останов пары (Т, t). Следовательно, способность решить частные проблемы оста- останова вида (Т, пустая лента), которая включает все ситуации (MTit, пустая лента), предоставила нам возможность решить все проблемы останова для (Т, t). Можно сказать, что в очень простом смысле значительно более трудная проблема для пар (Г, /) свелась к значительно более простой проблеме для пар (Т, пустая лента). Понятие сводимости очень тщательно изучалось в современ- современной теории вычислимости. Оказывается, что несколько разли- различающиеся с технической точки зрения понятия сводимости по- полезны при изучении связей между различными видами проблем неразрешимости и, кроме того, можно определить бесконечную иерархию проблем неразрешимости возрастающей сложности, ии одна из которых не сводится к предшествующей. Было даже показано, что существуют пары неразрешимых проблем, ни одна из которых не сводится к другой. Эти вопросы подробно иссле- исследовал Роджерс [86]. 8.8. ЗАДАЧ Л Задача 8.8.1. Рассмотрим класс всех двухсимвольных @ = пусто, 1) ма- машин Т. Существует ли какая-либо машина D (не обязательно двухсимволь- ная), которая для данной пары T,t всегда останавливается, давая ответы «Да» или «Нет» на следующие вопросы: 1. Напечатает ли Т когда-либо 1, если она начинает работу на ленте С? 2. Сотрет ли Т когда-либо 1, если она начинает работу на ленте О Указание. Примените теорию конечных автоматов к задаче 1. Задача 2 намного сложнее. Если вы решите ее, вам незачем читать оставшуюся часть книги! 7 М. Минский
194 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ Задача 8.8.2. Существуют ли процедуры решения, которые отвечают иа следующие вопросы: 1. Существует ли для любой машины Г леита, на которой эта машина дает останов? 2. Существует ли для любой машины Т некоторая исходная леита, ко- которая в конце работы окажется пустой? 3. Одинаково ли функционируют любые две машины Т и Т', т. е. при любой ли ленте t окончательный результат будет одинаковым для обеих машин? 4. Будет ли любой машиной Г, начинающей работу иа ленте t, использо- использовано более чем N ячеек ленты? ПРИМЕЧАНИЯ 1. Более подробное доказательство. Если D существует, то существует и Е, потому что легко добавить устройство для перезаписи типа показанного на рис. 6.1.6. Аналогично существует ?*, если существует Е, потому что мы можем добавить два состояния с петлями. Теперь давайте поместим d » на ленту машины Е*. Существуют две возможности. 1) Е* в конце концов остановится. Вернее сказать, Е* остановится при даииой d «. Тогда Е при данной d » выбирает выход «Да». Но это значит, что Е заканчивает свои вычисления на d »; она в конечном счете выберет верхнее выходное со- состояние. Поскольку Е* и Е до этого состояния одинаковы, то Е* с дайной d , в конце концов достигнет своего верхнего состояния и войдет в никогда ие заканчивающийся цикл. Следовательно, ?* при данной d « никогда не остановится. Остается вторая возможность. 2) Е* никогда не останавливается при данной d «. Аналогично доказывается, что тогда Е с данной d « вы- выбирает свое нижнее выходное состояние; таким образом, Е* (которая иден- идентична Е с этой точки зрения) выбирает свое нижнее выходное состояние и останавливается. Поскольку других возможностей нет, само существование Е* противоре- противоречиво, а, значит, противоречиво и существование Е и, стало быть, D. 2. Существование ? аналогично определению С в «парадоксе Рассела»: С есть множество всех множеств С, для которых С не принадлежит С. Иначе говоря, множество С является членом из С тогда н только тогда, когда С не является собственным членом. Например, множество всех мно- множеств является множеством, так что оно не является членом С. Но множе- множество всех книг не является книгой, так что оно является членом из С. Мы спрашиваем: принадлежит ли множество С множеству С? Если С принадлежит множеству С, то оно не принадлежит С. А если С не принад- принадлежит С, то оно принадлежит С1 Хотя это может показаться на первый взгляд разновидностью легкомысленного каламбура,, оказывается, что в ием заключается серьезный обвинительный акт привычному способу мышления о множествах и отношениях; в течение полувека исследований в области оснований математики не было найдено достаточно простого способа обна,- . ружить подход к решению проблемы. Существуют некоторые, по-видимому, удовлетворительные, но технически весьма сложные способы исключения па- парадоксов из математических доказательств. • 3. Задача поставлена Бучи [5]; ее неразрешимость показана Хупером в его докторской диссертации [33].
9 ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА1) 9.1. СИСТЕМЫ ВЕЩЕСТВЕННЫХ ЧИСЕЛ (ОБЗОР) Большинство читателей, по всей вероятности, незнакомо подробно с современной теорией систем вещественных чисел. В этом разделе кратко рассматриваются некоторые основные ее определения. Предположим, даны целые числа О, 1, 2, ... . Рациональные числа определяются как частные от деления це- целых чисел на целые или, по существу, как эквивалентные классы упорядоченных пар (т, п)\ две пары (т,,ге,) и (т2, п2) принад- принадлежат одному классу тогда и только тогда, когда пг\п2 = m2ni. Существуют два основных способа определения веществен- вещественных чисел по заданным рациональным. Один способ введен Де- декиндом; вещественное число определяется посредством такого «разделения» всех рациональных чисел на два класса, при ко- котором каждый член одного класса меньше любого члена дру- другого. Так, вещественное число л, десятичное выражение кото- которого начинается цифрами 3,14159265..., «определено» двумя классами, один из которых содержит (среди других) 3 и 3,1 и 3,14 и 3,141 и 3,1415 и 3,14159 и 3,141592, а второй (среди других) 4 и 3,2 и 3,15 и 3,142 и 3,1416 и 3,14160 и 3,141593 и т. д. Каждое из чисел в примере является рациональным: 3,142 экви- эквивалентно 3142/1000 (или также 1571/500). Тот же пример показывает, как вещественные числа могут быт* определены посредством возрастающих и убывающих схо- сходящихся последовательностей рациональных чисел. И можно показать, что, если вещественные числа определены соответ- соответствующим образом как эквивалентные классы сходящихся последовательностей рациональных чисел, мы имеем ту же са- самую структуру, что и определенную по Дедекинду. В част- частности, «вещественные десятичные числа» (или «вещественные ') Эта глава является дополнительной. Предполагается, что читатель знаком с элементарной теорией систем вещественных чисел вплоть до каито- рового доказательства того, что вещественные числа ие перечислимы и т. д. В последующих главах этот материал ие используется [1*].
196 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ двоичные числа») можно определить через бесконечные последо- последовательности дробей, знаменатели которых растут как степень 10 (или 2), в то время как числители растут каждый раз на один знак (цифру); можно показать, что это определяет ту же струк- структуру вещественных чисел. (В этом случае необходимо преду- предусмотреть эквивалентность 1,0000... и 0,9999..., но в остальном не встречается никаких трудностей.) Определение через беско- бесконечные последовательности предложено Коши. 9.2. ВЕЩЕСТВЕННЫЕ ЧИСЛА, ВЫЧИСЛИМЫЕ ПО ТЬЮРИНГУ Мы определяем вычислимые вещественные числа примерно тем же способом, что и вещественные числа (по Коши), как по- последовательность цифр, интерпретируемых как десятичные дроби1). Но мы добавим одно важное ограничение. Цифры должны последовательно генерироваться машиной Тьюринга. Иначе говоря, мы требуем следующее: для того чтобы веще- вещественные числа а0, ait a2, ... были вычислимыми веществен- вещественными числами, должна существовать машина Тьюринга, кото- которая начинает работать на пустой ленте и печатает на ленте а{Ха2Х ... 000 ... Введем правило, по которому если символ X однажды напе- напечатан, то машина никогда не должна идти влево от него или заменять этот символ каким-нибудь другим. Для вычислений можно использовать любой кусок ленты справа, но если напе- напечатан символ X, то это является окончательным извещением о том, что цифра уже была вычислена и находится в ячейке слева от X2). Чем это определение отличается от определения веществен- вещественного числа? Оно отличается тем, что в определении вычисли- вычислимого вещественного числа определяющая последовательность должна быть охарактеризована конечным количеством инфор- информации, т. е. диаграммой состояний соответствующей машины Тьюринга. Обычное определение вещественных чисел такого ограничения и не содержит. В том, что это отличие существен- существенно, мы скоро убедимся. ') Мы будем рассматривать только числа в интервале между 0 и 1. Это позволяет упростить обозначения, поскольку можно предположить, что запя- запятая всегда находится иа левом крайнем месте, а в остальных отиошеинях заметно не нарушает справедливости теории. 2) Правило такого типа нам безусловно необходимо. Без такой оговорки никогда не будет уверенности в том, что цифра не будет заменена несколько позже. Если сомнение в этом остается, трудно принять этот процесс *за эф- эффективное определение числа, поскольку фактически никогда не станет из- известно что-либо о его значении.
9. ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 197 Задача 9.2.1. Покажите, что любое рациональное число может быть вы- вычислено машиной Тьюринга, которая никогда не печатает ничего, кроме цифр и символов X. Задача 9.2.2. Мы могли бы также определить вычислимое число как чис- число, для которого существует машина Тьюринга, которая по данному п за- заканчивает работу на ге-й цифре числа, первоначально записанного на ленте. Покажите, что это определение эквивалентно определению из разд. 9.2. 9.3. СУЩЕСТВОВАНИЕ НЕВЫЧИСЛИМЫХ ВЕЩЕСТВЕННЫХ ЧИСЕЛ Мы можем продемонстрировать существование невычисли- невычислимых вещественных чисел двумя различными способами. В пер- первом из них доказательство строится на существовании нераз- неразрешимости проблемы останова для машин Тьюринга. 9.3.1. Особое невычислимое вещественное число RL, Рассмотрим поведение нашей универсальной машины U с не- некоторой лентой, на которую записана конечная последователь- последовательность W, составленная из десяти символов: О, I, X, Y, А, В, М, N, R и 5. Мы знаем, что не можем решить для всех таких лент вопроса: остановится ли в конце концов машина U?') (Это сле- следует из разд. 8.3.3, поскольку указанное множество лент вклю- включает класс всех описаний машин Тьюринга, начинающих работу на пустой ленте.) Теперь представим, что на этих лентах записаны числа. Сопоставим символы 0, 1, X, Y, А, В, М, N, R, S символам 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Тогда каждой ленте соответствует десятич- ное'число. Так, лента 0000M000Y01Х00001ХО111 ОХ 10011X11100Y000 ... представляет (десятичное) число , 0003012000012011102100112111003 (условимся, что первый символ М является запятой). Таким образом, каждому десятичному числу будет соответствовать лента определенного вида, и мы можем говорить о ленте, соот- соответствующей числу п, и надборот. Теперь мы определим наше невычислимое число Rv через (счетно-бесконечное) множество дент машин Тьюринга. Число Rv начинается с десятичной запятой, а его л-я цифра после за- запятой есть 1, если U останавливается на л-й ленте, 0, если U никогда не останавливается на я-й ленте. 1) Мы примем некоторое условие относительно того, с какого места лен- ленты машина U начинает работу, например что она начинает справа от др- следовательностн. Детали не важны.
198 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Чтобы показать, что вещественные числа, определенные та- таким образом, невычислимы, мы покажем противоречивость пред- предположения, что существует машина Тьюринга TRjJ, которая может вычислить его. Если бы существовала машина ТКц, то мы могли бы построить из нее несколько более сложную ма- машину М, которая может решить, остановится ли U на произ- произвольной ленте. Поскольку не существует такой машины М, ко- которая может делать это для всех лент (разд. 8.2), и поскольку М построено непосредственно из TR(/, отсюда следует, что TR(J не может существовать. Задача 9.3.1. Набросайте план построения М из TR . Полная реализа- реализация такой конструкции встречает некоторые трудности, но зато является очень поучительным занятием. 9.3.2. Множество вычислимых вощеотвонвых чиоол счетно-бесконечно В доказательстве разд. 9.3.1 мы отмечали, что ленты универ- универсальной машины U могут быть поставлены во взаимно-однознач- взаимно-однозначное соответствие (некоторым) целым числам. Число таких лент счетно-бесконечно, следовательно, существует только счетно- бесконечное множество вычислимых вещественных чисел. Но хо- хорошо известно, что множество действительных чисел не являет- ся счетным. Следовательно, должны существовать некоторые невычислимые действительные числа, а на самом деле «почти все» действительные числа должны быть невычислимыми [П. Оказывается, что доказательство в разд. 9.3.1 даст, если его несколько усложнить, более сильный результат. В извест- известном смысле оно на самом деле говорит нам об особом невычис- невычислимом числе. Неизбежно то, что нельзя с достаточной степенью точности вычислить это число, потому что само доказательство того, что оно невычислимо, говорит нам, что нельзя построить машину Тьюринга или любое эквивалентное ей устройство, ко- которое выдало бы нам последовательность цифр этого числа. Едва ли можно предположить более «конструктивное» доказа- доказательство существования столь неуловимого объекта и сформули- сформулировать что-либо напоминающее тезис Тьюринга '). ') То есть доказательство действительно «определяет» одно и только одно вещественное число, потому что U либо остановится, либо ие остано- остановится на n-й ленте. Этим полиостью определяются все цифры нашего не- невычислимого числа Ru. Многие математики и философы чувствуют т^м не менее, что остается открытым важный вопрос относительно того, можно ли считать «существование» числа Ru фактически устаиовлеииым.
9. ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 199 8.4. ВЫЧИСЛИМЫЕ ЧИСЛА, ЕСЛИ ОНИ ВЫЧИСЛИМЫ, НЕ МОГУТ БЫТЬ ЭФФЕКТИВНО ПЕРЕЧИСЛЕНЫ! Интересное свойство вычислимых вещественных чисел со- состоит в том, что, подобно рациональным числам, эти числа об- образуют счетное, или «перечислимое», множество; они не похожи на рациональные тем, что не могут быть «эффективно перечис- перечислены». Иначе говоря, из таких чисел нельзя образовать после- последовательность, которая может быть представлена машиной Тьюринга. ОПРЕДЕЛЕНИЕ Будем говорить, что бесконечная последовательность си С2, • • •, сп, ... вещественных чисел представима машиной Тью- Тьюринга Т, если по данному представлению любого целого числа п машина Т печатает цифры числа сп способом, описанным в разд. 9.2. Если бы существовала такая представляющая машина Т для всех вычислимых вещественных чисел, то посредством способа, подобного способу перестройки машины TR в М, описанного в разд. 9.3.1, мы могли бы построить машину Т', которая для данных man вычислила бы m-ю цифру cnm n-го вычислимого числа. В частности, тогда мы могли бы построить машину Т", которая по данному m вычислила бы m-ю цифру cmm m-ro вы- вычислимого числа. Затем мы могли бы модифицировать эту ма- машину так, чтобы машина V" отпечатала последовательность ОООХСцХС^л ... XcmmX ... , представляющую вычислимое действительное число. Продолжая, мы можем внести последнее изменение в конструкцию нашей машины. Машина Т"" подобна V", за исключением того, что если cmm равно «1», то для каждого m новая машина печатает вместо нее «2»; если же стп не равно «1», то V" печатает на ее месте «1». Теперь рассмотрим матрицу, составленную из цифр всех вычислимых чисел си с2,..., сп, ...: с, = (сп) С\г С\ъ Си сг = ^2! (сгг) ^23 см ct - c4i са Сю
200 ЧАСТЬ 11. БЕСКОНЕЧНЫЕ МАШИНЫ где диагональные цифры стт выделены кружками. Заметим, что машина Т"" печатает последовательность, m-я цифра которой никогда не равна соответствующему cmm. Тот факт, что все диа- диагональные элементы были изменены, означает, что последова- последовательность, образованная из новых элементов, расположенных по диагонали, должна отличаться (по крайней мере на одну цифру) от любой строки матрицы. Поскольку мы предложили эффективную процедуру для записи цифр последовательности, эта последовательность определяет вычислимое число. Но это означает, что наша машина Т"" печатает вычислимое число, которое не содержится в полной по предположению последова- последовательности вычислимых чисел, «представляемой» машиной Т, о которой мы говорили выше. Из этого противоречия следует, что никакая машина Тьюринга не может представить все мно- множество вычислимых чисел, и поэтому это множество не может быть эффективно перечислено. Те, кто знаком с канторовой теорией бесконечных множеств, должны заметить, что хотя мы использовали канторов «диаго- «диагональный метод», мы не показали, что множество вычислимых чисел не является счетным. Все, что мы показали, — это что вы- вычислимые числа не могут быть «сосчитаны» любой машиной Тьюринга (или посредством другого эффективного процесса). Их число равно только числу целых чисел; в принципе их мож- можно было бы сосчитать с помощью вычислительной машины с бесконечной памятью. Канторово доказательство того, что мно- множество действительных чисел не является счетным независимо от этого, основано на применении «диагонального метода» к лю- любому перечислению, является ли оно «эффективным» или «вы- «вычислимым». Э.5. ОПИСАНИЯ И ВЫЧИСЛИМЫЕ ЧИСЛА') Вообразим на мгновение, что человек развил язык, на кото- котором он может вполне однозначно передать (в том числе и в письменном виде) все свои интуитивные понятия. Выражения на этом языке представляют собой конечную последовательность символов из некоторого (фиксированного) алфавита. Описание вещественного числа есть выражение на этом языке, которое некоторым ясным способом определяет, выбирает, образует или разрешает нам распознать это и только это число. Мы назовем описываемым любое число, которое имеет описание. ') Этот раздел независим от последующих, и, вероятно, не все в ием достаточно обосновано. Интересно подумать о том, что случится,у«сли мы попытаемся анализировать описание с позиций нашего анализа эффективного вычисления. Этот предмет рассматривался- многими другими способами [2*].
9. ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 201 Предостережение. Это интуитивное понятие настолько не- неопределенно, что приходится сомневаться, существует ли соот- соответствующий ему вполне конкретный объект. В настоящее время это кажется нам неправдоподобным, так как никто ие может указать путь к устранению логических парадоксов в «естественных» языках, пока сохраняется свобода в построе- построении их конструкций. Исследуем тем не менее это понятие, как будто оно хорошо определено, и посмотрим, что из этого получится. Множество описываемых вещественных чисел, конечно, яв- является счетно-бесконечным множеством, так как любое описание является конечной последовательностью символов. Следователь- Следовательно, все описания могут быть перечислены, например сначала можно переписать конечные множества длины 1, затем — дли- длины 2 и т. д. Естественно, не все последовательности будут опи- описаниями чисел, но не в этом дело. Отсюда следует, что неко- некоторые вещественные числа «хуже» невычислимых; некоторые (в действительности почти все) неописываемы — для всех них не хватит описаний. Вычислимые числа, конечно, описываемы; следовательно (что согласуется с разд. 9.3.2), они счетны. Теперь сделаем следующий шаг в развитии этой умозрительной теории. 9.5.1. Некоторые описания чисел ие являютоя опиоаниями вычислимых чисел Рассмотрим невычислимое число Ru, описанное в разд. 9.3.1. Оно описывается (на русском языке) так: 1, если U останавливается на ге-й ленте, n-я цифра числа Rn = • TJ 0, если и никогда не останавливается на n-й ленте. Следовательно, Ru описываемо, хотя мы и не можем найти все его цифры посредством эффективной процедуры. Задача. Пусть Т — какая-либо машина Тьюринга, и пусть Rt—описы- Rt—описываемое число, определяемое следующим образом: II, если Т останавливается иа л-й ленте О, если Т никогда не останавливается иа я-й ленте. Докажите, что не существует эффективной процедуры, которая для любой машины Т могла бы дать ответ, является ли число Rt вычислимым. Отсюда следует, что не существует эффективной процедуры, которая могла бы определить, какие описываемые числа вычис-
202 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ лимы и какие нет. Действительно, в общем случае вообще не- невозможно решить, какие выражения описывают числа. Конечно, очень часто мы можем показать, что некоторое частное описание определяет вычислимое число. Например, опи- описание е через дает возможность показать, что число е (вернее, последователь- последовательность его цифр) вычислимо. Задача. Покажите, что число е вычислимо. Для этого потребуется выяс- выяснить, когда представляющая машина может напечатать символ X. 9.5.2. Некеторые описания вычислимых чисел на аффективны Часто мы можем описать вычислимое число таким способом, который сам по себе полностью не эффективен, т. е. таким, ко- который не дает даже самого слабого намека, как это число вы- вычислить. Рассмотрим следующее неэффективное описание числа N: N = 1, если существует бесконечное число пятерок в деся- десятичном выражении числа я, и N = 0 в противном случае. Итак, N равно либо 0, либо 1—других возможностей нет, и, конечно, ответ должен быть одним из двух. В любом случае это число является вычислимым, так как u I u 0 являются вы- вычислимыми числами. Но ни автор, ни читатель, ни кто-либо еще не знают, какой ответ верен! Я уверен, что огромное боль- большинство математиков держало бы по разным причинам пари, что N = 1; но это обстоятельство мало помогает делу. Мне ка- кажется совершенно невозможным, чтобы кто-нибудь когда-нибудь получил ответ, так что скорей всего «время не покажет-». Здесь возникают некоторые вопросы, которые ставят в ту- тупик. До сих пор каждая наша «неразрешимая проблема» была связана с некоторым бесконечным множеством решений. Мы нигде не показали, что проблема останова любой частной ма- машины Тьюринга с пустой лентой неразрешима, мы показывали лишь, что нет надежды найти «универсальную» процедуру ре- решения всех таких проблем. Некоторые математики приемлют эти общие результаты о неразрешимости, но предпочитают счи- считать, что здесь не может быть аналогии с конкретными зада- задачами. Они полагают, что, если даже нельзя решить задачу с помощью имеющихся методов, мы всегда можем обратиться к другим математическим средствам и с их помощью^ конце концов решить все конкретные задачи. (Ясно, что столй полная
9. ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 203 эволюция наших методов не может явиться результатом какого бы то ни было эффективного процесса, так что такое убеждение должно базироваться на необъяснимом оптимизме в отношении «изобретательности».) Возвращаясь к задаче о значении N, убеждаемся, что эта задача не может быть решена прямым вычислением последова- последовательности цифр числа я. Поскольку за любое время вычисления мы будем иметь только конечное число пятерок, это не даст никакого ответа. Если за долгое время не обнаруживается больше ни одной пятерки, это еще ни о чем не говорит (когда мы бурим скважину, есть все же надежда добраться до нефти); если мы получим много пятерок, то и отсюда еще нельзя сде- сделать никакого вывода (скважина может вскоре иссякнуть). Для решения вопроса требуется определенное математическое доказательство, т.е. более абстрактный способ исследования. Несколько раньше мы упоминали, что ответ на этот вопрос, вероятно, никогда не будет получен. Представляется возможным также и то — и это совсем другое дело, — что он не может быть получен вообще. Первое предположение состоит в том, что мы никогда не сможем найти доказательство. Второе предположе- предположение: этого доказательства, возможно, вообще не существует в рам- рамках сколь-нибудь «внушающего доверие» обобщения того, что мы сегодня признаем строгими математическими построениями. Третья, еще более проблематичная возможность состоит в до- доказательстве невозможности решения этого вопроса. Тщатель- Тщательное исследование того, что такой результат мог бы означать и в каком виде он мог бы быть получен, вывело бы нас за рамки этого неформального обсуждения; так или иначе мне кажется, что никто не понимает эти вопросы достаточно уж хорошо. Вместо этого мы обсудим некоторые задачи, статут нераз- неразрешимости которых ясен, но иногда неправильно истолковы- истолковывается. 1) Нельзя доказать неразрешимость «Последней теоремы Ферма». Это напоминает ситуацию из разд. 8.6. Вопрос таков: существуют ли какие-либо целочисленные х, у, г и w, для ко- которых xw + у™ = zw при w больше двух? Конечно, может оказаться, что этот вопрос никогда не будет разрешен, т. е. никогда не удастся найти та- такой набор х, у, z и w. Но нельзя доказать его неразрешимость, потому что, если существовало такое доказательство, оно озна- означало бы, что х, у, z, w, являющиеся решением, не существуют; значит, на вопрос о существовании нужно было бы ответить «Нет», но это было бы решением проблемы.
204 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ 2) Функция я (я) должна быть вычислимой, несмотря даже на то, что может оказаться невозможным найти способ ее вы- вычисления. Определим следующую функцию: я(л) = 1, если в десятичном выражении я имеется серия из п пятерок, 0 в противном случае. Теперь мы заметим, что а) если я(л)=1, то я (л— 1) = 0 (л>0); б) если я(л) = 0, то я(га+1) = 0. Итак, значения я (к) имеют либо вид л = 1, 2, 3, 4, ..., k, k+ I, k + 2, ..., я(л) = 1, 1, 1, 1, ..., 1, 0, 0 ... для некоторого k, либо же п(п)= 1 для всех п. Однако никто не знает, какой именно. Возможно, мы никогда не найдем спо- способа установить, каково число k, если оно имеет конечную ве- величину. Но в любом случае функция я (л) вычислима, по- потому что а) если не существует k, то я (л) = 1 и, конечно, я (л) вы- вычислима; б) если существует k, то f 1, если n^k, Я(Л) = 1О, если n>k, и, разумеется, функция я (л) тоже вычислима. Здесь читатель должен заметить серьезное различие между знанием, что функ- функция «вычислима», и умением ее вычислить. 3) Определим следующую функцию: 1, если число л появляется в десятичном л' (п\ = выражении я, 0 в противном случае. Тогда, например, я'(Н1) = 1, я'D159) = 1, л'B6535) = 1 и т. д. Неизвестно, вычислима ли функция я'(я). Мы знаем, что это так, потому что видим эти числа в извест- известной части десятичного выражения я. Но мы не знаем, вычис- вычислима ли функция я'(п). Я предполагаю, что для ее решения скорее может потребоваться решительный прогресс в матем^гти-
9. ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 205 ческой теории трансцендентных чисел, чем прогресс в теории вычислимых функций. Конечно, тот тип доказательства, который мы применяли в предыдущем разделе, просто «не работает» здесь. Большинство математиков, несомненно, предполагают, что я'(я) = 1 для всех п (и, следовательно, в данном случае я(«) = 1 для всех п), но неизвестно, так ли это. 9.5.3. Математика и метаматематика Вывод, к которому мы пришли в разд. 8.6, по всей вероят- вероятности, справедлив. Мы не надеемся, что найдем непротиворечи- непротиворечивые неформальные аргументы для доказательства того, что рас- рассмотренные там частные задачи неразрешимы. Но есть нечто своеобразное в доказательстве, которое мы использовали, чтобы показать это. Мы убедились в этом своеобразии двумя различ- различными способами. Во-первых, в других областях применяют ар- аргументы, по характеру очень близкие к ним, которые кажутся в равной степени разумными, однако они приводят к абсурдным результатам; это заставляет нас с подозрением относиться ко всем таким аргументам. Вот почему в первой фразе этого раз- раздела я употребил слова «по всей вероятности». Во-вторых, мы убеждаемся в этом своеобразии еще больше, когда пытаемся заменить неформальные аргументы «математи- «математически строгими» доказательствами, например типа доказатель- доказательства Евклида, в котором каждый шаг доказательства «обосно- «обоснован» ссылкой на некоторую принятую ранее «аксиому». (По существу доказательства Евклида должны быть, кроме того, подтверждены ссылками на «правила вывода», которые опре- определяют, как образовать новую теорему, используя старые тео- теоремы и аксиомы.) При этом мы убеждаемся в том, что наше «доказательство» явно связано с понятием самого доказатель- доказательства. Но в какой аксиоматической системе? Является ли си- система, о которой говорится в доказательстве, той же самой си- системой, в которой строится доказательство"? Если нет, то дока- доказательство много теряет в своей силе, потому что, даже если проблема неразрешима (т. е. если утверждение не является ни доказуемым, ни недоказуемым) в одной системе, не было бы ничего удивительного в том, что она может быть разрешена в более общей системе, например в системе, которая содержит это утверждение в качестве дополнительной аксиомы. С другой стороны, если системы доказательств одинаковы, так что утверждения могут фактически говорить о себе самих или о своих собственных доказательствах, мы должны быть го- готовы к серьезным трудностям. Исторически большинство таких систем «метаматематики» — аксиоматических систем, относя-
206 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ щих-ся к самому доказательству теорем, — оказывалось противо- противоречивым. Хуже того, как было показано Гёделем, если в рамках любой такой системы можно доказать ее непротиворечивость, т. е. если система содержит утверждение о своей собственной непротиворечивости, то на самом деле она обязательно ока- окажется противоречивой. Следовательно, нельзя доверять боль- большинству убедительных доводов математической системы в свою собственную защиту. Методы Гёделя весьма похожи на те, ко- которые мы использовали в гл. 8, но несколько сложнее из-за до- дополнительных построений, необходимых для рассуждений о тео- теоремах и доказательствах. Этот вопрос очень сложен и специфичен; читатель, который хочет продолжить обсуждение, должен обратиться к работе Род- Роджерса [86]. Следующий известный «парадокс» очень хорошо иллюстри- иллюстрирует такого рода трудности, связанные с построением описаний. Рассмотрим «наименьшее целое число, в описании которого со- содержится более десяти слов». Определяет ли это описание какое- либо целое число? Должно быть, поскольку мы знаем, что лю- любое множество (положительных) целых чисел должно иметь наименьший член. А почему мы не могли бы рассмотреть мно- множество чисел, описания которых (наименьшие) содержат более чем десять слов? Но, поскольку выражение в кавычках само состоит ровно из десяти слов, мы сталкиваемся с парадоксом. Трудности возникают, когда мы пытаемся тщательно формали- формализовать описание. Не вызывает осложнений само представление чисел, например, в виде последовательности цифр, как мы их обычно представляем. Так, например, 100 есть наименьшее це- целое число, не представимое менее чем тремя цифрами. Но мы испытываем затруднения, когда интерпретируемое на метама- метаматематическом уровне выражение типа заключенного в кавычки говорит само о себе. Поскольку мы не можем ввести такие утверждения в непротиворечивую логическую систему, не сле- следует удивляться «парадоксам» такого типа; поскольку сама ло- логика не состоятельна, то их появление вполне естественно. 9.6. ЗАДАЧИ Задача 9.6.1. Докажите, что если х — вычислимое число, то х/2, хг, sin x также вычислимы. Задача 9.6.2. Определите вычислимо-комплексные числа и набросайте до- доказательство того, что оии образуют алгебраически замкнутую область, т. е. если пц, ..., ап — вычислимо-комплексные числа, то существуют корни урав- уравнения аа + ахг + ... + а,^ - 0. —
9. ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 207 Указание. Покажите, что любой стандартный вычислительный метод. например метод Ньютона, дает эффективную процедуру нахождения десятич- десятичных цифр корней. Игнорируйте трудности, возникающие из-за тех корней, ко- которые рациональны, поскольку они так или иначе вычислимы. Задача 9.6.3. Определите вещественно-вычислимые функции следующим способом. Функция f(x) вещественно-вычислима, если существует машина Тьюриига, которая по данному х «= ai аг а3... вместе с произвольным целым числом п, заданным на бесконечной ленте в виде ... 000 ... 0YnXa,Xa2Xa3X ... XajX .... всегда печатает на ленте результат в виде ...000... УНх'п)ХахХа2Х ..., где Yn есть блок, в котором Y повторяется п раз, а 1(х;п)—п-я цифра функции f(x). (Если это определение покажется слишком специфическим, можно просто сказать, что f(x) вещественно-вычислима, если существует эф- эффективная процедура нахождения (для каждого я) л-й цифръ1 функции f(x) по данному выражению х иа полубесконечиой ленте.) Докажите, что любая вещественно-вычислимая функция непрерывна в обычном е, б смыслеХ Указание. Покажите, что разрывная функция 000 ..., если х < '/з = , 333 .... 100..., если jc> '/3 = , 333 ... не ивляется вещественно-вычислимой (и аналогично, что вещественно-вычис- вещественно-вычислимая функция не может иметь разрыва ни в одной точке). Как может машина вычислить перную цифру функции / (,333...)? ПРИМЕЧАНИЯ 1. Хорошее введение в теорию бесконечных чисел и теорию вещественных чисел предлагают Курант и Роббиис [13]. 2. См., например, монографию Квайна [78] и его более поздние работы. Наиболее интересной н необычайной (хотя и ие совсем законченной) попыт- попыткой показать, как повседневные интуитивные идеи можно использовать в формальных математических системах, следует считать работу Фрейден- таля [23].
10 МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 10.0. ВВЕДЕНИЕ В этой и следующих главах мы изучим ряд формулировок понятия эффективной вычислимости и покажем, что все они оп- определяют один и тот же класс вычислений или процедур. Исто- Исторически многие из этих понятий возникли независимо. Факт, что все они оказались эквивалентными, — одна из главных причин нашей уверенности в правильности доказательств, использую- использующих тезис Тьюринга. И даже если бы вычислимость по Тью- Тьюрингу не соответствовала полностью нашим интуитивным пред- представлениям о том, какие процессы эффективны, эквивалентность таких многократных открытий убеждает нас в том, что этот за- заслуживающий особого внимания класс процессов имеет важное значение. Его изучению посвящен раздел математики, называе- называемый теорией рекурсивных функций и являющийся одним из наиболее интересных и содержательных математических дости- достижений двадцатого столетия. Этот материал также способствует известному практическому проникновению в понимание природы программ для вычислительных машин и свойственных им огра- ограничений. В этой главе введены понятия примитивно-рекурсивной функ- функции и обще-рекурсивной функции и показано, что последнее по- понятие по крайней мере столь же емко, как и понятие функции, вычислимой по Тьюрингу. Любопытный математический метод доказательства этого называется «арифметизацией». Арифмети- зация по существу очень проста, ио в ней есть нечто искусствен- искусственное и необычное. Хотя логике этого метода следовать легко, но возникает чувство того, что все это представляется чем-то вроде каламбура и что должен существовать более прозрачный ана- анализ, который приведет к тому же окончательному результату, но позволит глубже понять его природу. Позднее мы опишем некоторые более «естественные» методы, но пока наша главная забота — получить некоторые результаты в рамках развитых ранее построений.
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 209 10.1. АРИФМЕТИЗАЦИЯ МАШИН ТЬЮРИНГА Мы хотим сначала показать, что существует эквивалентность теории машин Тьюринга с элементарной арифметической систе- системой, т. е. показать, что вычислимые числа и функции можно по- построить, основываясь скорее на простых идеях о числах, а не о машинах. Мы используем простые арифметические методы, чтобы показать, как числовая формулировка понятия эффектив- эффективной вычислимости приведет по существу к той же самой теории, которая базируется на рассмотрении машин Тьюринга. 10.1.1. Представление сестояиий машин Тьюринга четверками целых чисел Рассмотрим машину Тьюринга, находящуюся в процессе вы- вычисления в некоторый момент времени t; пусть она в состоя- состоянии q(t) считывает с ленты некоторый символ s(t). На ленте либо записано конечное число символов, либо она пуста. Удобно ограничиться рассмотрением двоичных машин Тьюринга и ис- использовать 0 в качестве пустого символа, а 1 для обозначения другого символа. Тогда лента будет иметь вид причем будем считать, что лента составлена из двух (бесконеч- (бесконечных) кусков, расположенных по обе стороны от считывающей головки. Теперь если в ячейках ленты слева и справа от головки записаны цифры двоичного числа, то мы можем считать, что лента представляется тремя целыми числами (s, т, п), где s — цифра под считывающей головкой, а т = 2^2г, п=2^2' (каждая из цифр bt и сь равна 1 или 0). о о Например, если на ленте записано ...0001011110!111000... О то (s, m, n) = @, 47, 15). Эти «бесконечные» суммы на самом деле конечны, так как только конечное число цифр bt и сг от- отлично от нуля. Если мы далее представим каждое состояние qi соответствующим целым числом, то полное состояние машины
210 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ Тьюринга в каждый момент будет отмечаться четверкой целых чисел [q, s, т, п]1). В каждом такте работы машины Тьюринга производится преобразование целых чисел [q(t), s(t), m(t), n(t)] в новую чет- четверку [q(t+l), s(t+l), m(t+\), n(t+l)]. Поскольку чет- четверки полностью описывают состояния машины, подробное изу- изучение этого преобразования может сообщить все необходимые сведения о структуре рассматриваемой машины Тьюринга Дей- Действительно, преобразование связано с пятерками машины сле- следующим способом. Рассмотрим пятерку (qit sh qi}, sijt dij) и предположим на мгновение, что йц =1, т. е. машина должна двигаться вправо. Тогда лента будет иметь вид Новое значение q* есть qti. Новое значение s* есть старое значение с0. Заметим, что новое зачение ш* образуется сдвигом всех цифр bi старого значения m на одну двоичную позицию влево (при этом удваиваются их значения), причем место наи- наименьшей значащей цифры занимает Sij, следовательно, оо оо т* - slf + 2 bt2i+l = stl + 2 2 bi2l = su + 2m. Аналогично находим п* — новое значение п: с0 исключается, а другие цифры сдвигаются на одну двоичную позицию вправо оо оо 2г_, = -i 2 с,21 - у с0 = ~ (п - с0). 1 О В результате можно написать Я* = Qu, т' = Su + 2т, прав» ') Этот способ представления основ а и иа методе, предложенном Хао Ва- Ваном [102].
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 211 где через Н(п) обозначена целая часть от п/2, а Р(п) равно О, если п четно, и 1, если п нечетно, т. е. Я@) = 0, Я@) = 0, 0, ЯB) = 1, 1, ЯC)=1, ЯD) = 0, НD) = 2 и т. д. В общем случае п = Р(п) + 2Н(п). Это говорит о том, что пре- преобразование содержит простейшие арифметические операции — сложение (с единицей), умножение (на 2), деление (на 2) с частным Н(п) и остатком Р(п). Если dij оказывается равным 0 — «идти налево», — то нужно Линь поменять местами mans записанных выше уравнениях. 10.1.2. Преобразование Тьюринга Теперь завершим представление машины Тьюринга на языке арифметических операций. Мы можем представить пятерки дан- данной двухсимвольной машины Тьюринга, если дадим новое опре- определение трем функциям (разд. 6.0): Q(Qh «/) = <?<7 (СОСТОЯНИЕ). R(qt, s,) = su (символ», D(qt, S,) = di, (НАПРАВЛЕНИЕ) через целочисленные функции целочисленных аргументов. Эти функции должны быть определены лишь на конечном множе- множестве пар значений @,0) A, 0) (k- 1,0), @, 1)' A, 1) ' (k-l, 1), где k — число состояний двухсимвольной. машины Тьюринга. Функции D и R принимают лишь два значения 0 и 1, в то время как Q может принимать значения между 0 и k—l. Удобно также воспользоваться функцией такой, что D = 1 для команды «идти влево» и D = 0 для команды «идти вправо», что как раз противоположно значе- значениям D для соответствующих команд. Нам нужны также только
212 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ что определенные функции, образованные делением на 2: Н (х) — частное от деления х на 2 ДЕЛЕНИЕ НА 2 Р (х) — остаток от деления * на 2 ЧЕТНОСТЬ Введем, наконец, еще две арифметические функции. F+ (х, у) = х + у СЛОЖЕНИЕ ^X {x, У) = Х ¦ у УМНОЖЕНИЕ I. Теперь мы можем выразить наши преобразования стандартным способом, не используя данных о значении йц. q* = Q{q, s), s* = P(m).D(q, s) + P(n)-D(q, s), m* = [2m + R (q, s)} -D(q, s) + H (m) ¦ D(q, s), rC = [2rt + R (q, s)] -D(q, s) + H (n) • D (q, s). Отметим, что здесь использован нехитрый прием. Если команда есть «идти вправо», то D(q,s)= 1 и D(q,s) = 0. В таком слу- случае эти уравнения в точности совпадают с уравнениями для ^прав- В случае команды «идти влево» должны быть внесены со- соответствующие изменения. В этом имеется определенная логи- логическая «нечеткость» (о которой мы говорили во введении к этой главе). Эта нечеткость состоит в том, что « + » используется как разновидность логической операции «или»,а «X» — логической операции «и», подобно тому как это делается в булевой ал- алгебре. Мы выразили преобразования Тьюринга непосредственно че- через простые арифметические функции. Действительно (хотя это может показаться несколько утомительным), можно записать каждое уравнение в явном виде, как, например, т' (q, s, m, n) = = F+(FX(F+(FXB, т), R(q, s)), D(q, s)), Fx (H (m), 5B, s))).
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 213 Это выражение показывает, что можно выразить уравнения преобразования через данные функции с применением операции «композиции»'). 10.1.3. Сведение к функции-нулю и функции следования Покажем теперь, что добавлением других уравнений можно сократить многие основные операции полученной выше системы! Сделаем это, начав с некоторых очень простых функций и опре- определив новые требуемые функции по индукции. Действительно, если использовать индукцию, то нужно ввести «функцию-нуль» 0 (х) = 0 функция-нуль и «функции следования» (для которой удобно иметь два обо- обозначения) = x+l=xf ФУНКЦИЯ СЛЕДОВАНИЯ Затем можно определить функцию сложения F+(y, x) через урав- уравнения F+@, x) = x БА А ФОРМУЛА ИНДУКЦИИ Чтобы проверить, правильно ли мы понимаем эти уравнения, нужно посмотреть, что получается, скажем, для 3 + 6 = F* C,6). Мы найдем, что F+ C, 6) = (F+ B, 6))' или = 5 {F+ B, 6)) @, 6))')')' =S(S(S(F+(O, 6)))) = ((F)')T =5EEF))) = (G)')'= (8)'=9 =5EG)) = 5(8) =9. Можно заметить, что значения введенной таким образом функ- функции определены, т. е. что процесс вычисления значения должен ') Композиция — это операция подстановки функций вместо некоторых переменных в другую функцию. Более формальное определение дано Кли- ни [39], но детали здесь не существенны. Важно лишь заметить, что посред- посредством использования операции композиции мы образуем новые функции из старых, более простых функций.
214 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ в конце концов закончиться, потому что значение переменной, по которой производится индукция, неизменно уменьшается. Функцию умножения Fx (у, х) мы можем определить анало- аналогично Fx@, x) = 0, Конечно, любую константу мы можем определить как функ- функцию Удобно определить также функцию N(x), которая является «детектором нуля» ЛГ(О)=1, N(y') = 0(y) = О, ФУНКЦИЯ ДЕТЕКТОР НУЛЯ потому что тогда мы легко получим Р(х) и Н(х) Я@) = 0, |Я@) = 0, P{J) = N (Р (у)); I Я Ю = F+ (Я (у), Р (у)). 10.2. ПРИМИТИВНО-РЕКУРСИВНЫЕ ФУНКЦИИ Все индуктивные определения в предыдущем разделе имеют один и тот же общий вид. Имеется одна переменная у, по ко- которой производится индукция, и, возможно, некоторые другие переменные х2, ..., хп, рассматриваемые как параметры, т. е. как числа, фиксированные повсюду в определении. (В каждом из случаев, имевших место выше, такой параметр либо отсут- отсутствовал, либо был единственным.) В каждом индуктивном оп- определении функции появляются две другие функции (предпола- (предполагается, что они определены ранее): базовая функция гр и функ- функция индуктивного шага %') f@, х2, .... хп) = у(х2, ..., хп), f(t/,x2 хп) = %(ф(у, х2 хп), у, х2 хп) ПР ') Мы приводим здесь операцию весьма общего вида. Ф есть функция, которая определяется как if — базовая функция, которая в примере разд. 10.1.3 появлялась только как константа или одиночная переменная. Функция х задает некоторый процесс вычисления, зависящий от перемен- переменной у, по которой производится индукция ранее найденных значений новой функции ф, и, возможно, от каких-либо параметров хч хп. Например, в определении F*(y, x) вышеупомяиутаи функция ф(д:) равна нулю, а Х(а, у, х) = F+(a, х) = а + х.
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 215 Важно, что на каждом шаге значение правой части может быть вычислено через уже определенные значения функций. В любом конкретном примере такого вида параметры могут отсутствовать либо в самом ф, либо как переменные, от которых t|> и х зависят явно. Это определение, обозначенное буквами ПР, называется при- примитивной рекурсией '). ОПРЕДЕЛЕНИЕ Любая функция, которая может быть определена через 0(х), S(x), композицию и примитивную рекурсию, назы- называется примитивно-рекурсивной функцией. Мы почти завершили доказательство того, что все функции q*, s", m* и п* примитивно-рекурсивны. Однако _мы еще не рас- рассмотрели «фиксированные» функции Q, R, D и D, т. е. не пока- показали, что они являются примитивно-рекурсивными функциями. Чтобы продемонстрировать, как это делается, покажем сначала, как определить фиксированную конечную функцию одной пере- переменной. Пусть, например, мы хотим определить функцию W(x), такую, что Г@) = 2, ГA) = 10, ГB)-3, ГC) = 7, и нам не задано других значений функции W(x). Тогда мы мо- можем определить удовлетворяющую этим условиям функцию W через определения других вспомогательных функций: f Г@) = 3, р | \ Y (х?) = 7; I X (jO = У (ж); \ W (х') = X (ж). Теперь найдем, что WB) = X(l) = Г@) = 3 и что Г (ж), ока- оказывается, имеет значение 7 при всех значениях х, больших чем 3. Ясно, что все функции Y, X и W являются примитивно- рекурсивными. Мы предоставляем читателю возможность пока- показать, что функции двух переменных, например Q(x, у) и D(x,y), могут быть определены аналогично. Из всего этого можно сделать вывод, что функции преобразо- преобразования Тьюринга являются примитивно-рекурсивными. ') Уточним, следуя В. А. Успенскому [дополнительная литература 8, стр. 50], что тем самым функция ф (у', xt *„) определена через функции г|> и х при помощи операции примитивной рекурсии (иначе, по схеме примитив- примитивной рекурсии, или, короче, примитивной рекурсией, или, наконец, примитивно- рекурсивно) по переменной у. — Прим. перев.
216 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Предостережение. Мы вовсе не показали, да это и неверно, что любое вычисление есть примитивная рекурсия; вскоре мы вернемся к этому вопросу. Задача. Приведите план построения фиксированной функции двух пере- переменных, подобных Q,R,D, посредством примитивной рекурсии. Задача. Приведите примитивно-рекурсивные определения для функций f(y,x) =xv, f(x) =*! 10.2.1. Вычисления иа машинах Тьюринга и примитивная рекурсия Хотя мы смогли представить посредством четырех прими- примитивно-рекурсивных функций результат одного шага машины Тьюринга, мы ничего не сказали о возможности такого пред- представления для последовательного процесса функционирования. Можно сделать это введением новой целочисленной перемен- переменной t, представляющей число шагов, выполненных машиной (число тактов, которые она проработала). Затем введем четыре новые функции пяти переменных: Tq, Ts, Tm, Tn. Функция Tq(t, q,s,tn,n) определяет значение q, которое будет получено, если машина Т начнет работать в состоянии (q, s, tn, n) и сде- сделает t шагов. Для ее вычисления мы должны t раз повторить преобразо- преобразование q*, s*, tn*, п*. Тя@, q, s, tn, n) = q, 7,A, q, s, tn, n) = q*{q, s, tn, n), Tq{2, q, s, tn, n) = = q'(q*(q, s, m, n), s*(q, s, m, n)m*(q, s, tn, n), n*(q, s, tn, n)) и т. д. Но фактически мы можем непосредственно использовать схему примитивной рекурсии для определения Tq(t, q, s, tn, n) для всех значений (,ив общем случае \ 7,@, q, s, tn, n)=q, \ Tq{f, q, s, tn, n) = Tq{t, q*(q, s, tn, n), s*(q, s, tn, n), tn'(q, s, tn, n), n*(q, s, tn, я)). Подобным образом мы можем определить Ts, Tm и Тп. Отсюда следует, что итерированные функции Тьюринга Tq и т. д. также являются примитивно-рекурсивными. Эти уравнения имеют про- простой интуитивный смысл. В них содержится утверждение, что результат применения t + 1 операции при начальной ситуации (q, s, tn, n) будет совпадать с результатом применения t таких
ю. машины Тьюринга и рекурсивные функции 217 операций к (q*, s*, m*, п*), т. е. с результатом применения сна- сначала одной операции, а затем t остальных! Что может быть проще? 10.3. ПРОБЛЕМА РЕКУРСИИ ПО НЕСКОЛЬКИМ ПЕРЕМЕННЫМ Доказательство, приведенное в предыдущем разделе, имеет тот недостаток, что рекурсивное определение, данное для Тя, по существу не является примером примитивной рекурсии (ПР) в смысле определения из разд. 10.2! Сложность в том, что пара- параметры q, s, m и п не остаются фиксированными в течение про- процесса вычисления. Тем не менее можно определить Tq, исполь- используя только примитивные формы примитивной рекурсии; целью этого раздела является как раз демонстрация того, как это можно сделать. 10.3.1. Функции упаковки информации Н, Т, С Рассмотрим более простую формулировку проблемы. Пусть мы имеем определение Г (и', a, b) = T(n, a (a, b), х(а, Ь)\ где а и т — ранее определенные ПР-функции. Тогда можно ут- утверждать, что Т — также ПР-функция, хотя и нельзя найти какого-либо прямого способа приведения ее к ПР-схеме. Труд- Трудность в том, что на первый взгляд ПР-схема не позволяет осу- осуществить взаимодействие двух различных вычислительных про- процессов; в этом случае Т(п', а, Ь) зависит как от а (а, Ь), так и от х(а, Ь). На самом деле это затруднение оказывается мнимым, его можно обойти, если применить некоторое устройство, которое одновременно обрабатывает информацию от нескольких источ- источников. Предположим, например, что мы могли бы найти три ПР-функции — С (у, г), Н(х), Т(х), обладающие свойством, что для всех у и z Н(С(у,г)) = у и Т(С(у,г))=г. Мы действительно вскоре найдем именно такую тройку функций: Н —ГОЛОВА, Т - ХВОСТ, С - ТЕЛО.
218 ЧАСТЬ П..БЕСКОНЕЧНЫЕ МАШИНЫ Тогда мы могли бы переопределить Г следующим образом: Т(п, а, Ь) = Г(п, С (а, Ь)), а Т* определим рекурсивно как Г Г (О, х) = Т (О, Н (х), Т (*)), I Г К, х) = Г(п, С(о(Н(х), Т(*)), т(Н(х), T(*)))). На первый взгляд это может показаться ничем не лучше, но в следующем разделе мы покажем, что на самом деле полу- получена схема примитивной рекурсии. Сначала убедимся, что Т* обладает требуемыми свойствами: Т(п',а, Ь) = Г(п!, С (а, 6)) = = Г(п, С(<т(Н(С(а, 6)), Т(С(а, Ь))), т(Н(С(а, 6)), Т(С(а, 6))))) = -Г(п, С(а(а, 6), т(а, 6))) = Г(п, <т(а, 6), т(а, 6)). Теперь мы хотим показать, что Т, как она была определена выше, есть ПР-функция. Если считать, что C(<t(H(*), ТЫ), t(H(*), T(*))) примитивно-рекурсивная функция по х, то можно применить следующую теорему. 10.3.2. Теерема е ап Рассмотрим схему I\Ф@, *)=¦(*), \ф(п',х) = ф(п,<у(х)), где tp и а — ПР-функции. Из этого определения не очевидно, что ф образована ПР-схемой, поскольку она не соответствует требованиям ПР-схемы. Но посмотрим на ее значения Ф@, *)-Ц)(*), ф{\, х) фC, Ясно, что в общем случае ф(п, х) =
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 219 ( где оп(х) означает применение а к х п раз. Теперь можно опре- определить ап (х) рекурсивно как f(n', x) = a(f(n, x)). Ясно, что / есть ПР-функция, причем f(n, х)=.<г»(х). Следовательно, f(n, x) = i|>(f(«, х)). Итак, в конце концов, f есть ПР-функция, потому что она иден- идентична ПР-функции, определенной другим способом! Задача 10.3.1. Докажите по индукции, что Ф(п, х) = ^{j{n, х)). I Указание. Используйте индукцию по я, предположив, что каждая ги- гипотеза справедлива для всех х. Сначала докажите, что f(n,o(x)) — a(f(n,x)). 10.3.3. Определение функций упаковки информации Н, Т и С В разд. 10.3.1 мы показали, что если бы мы сумели найти функции С (у, г), Н(х) и Т(х), для которых ¦ЩС(у,г)) = у 7(С(у,г)) = г, то могли бы оперировать функцией типа T(t, q, s, m, n), но лишь с двумя (помимо t) переменными а и Ъ. Прежде чем построить Н, Т и С, заметим, что, используя их более полно, мы факти- фактически сможем полностью решить задачу для Т. И это потому, что мы можем написать Т (t, q, s, m, n) = Г (t, С (С (q, s), С (m, n))), хотя это выражение может показаться слишком сложным. За- Затем вся информация, содержащаяся в (q, s, m, n), упаковы- упаковывается в одно число x = C(C(q, s), C(m, л)). Или, наоборот, x = C(q, C{s, C(m, n))). Действительно, вся информация может быть просто извлечена снова, если воспользоваться выражениями <7-Н(Н(х)), s-T(H(x))f m-H(T(x)), и = Т(Т(х)),
220 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ или же q = Н (*), s = H(T(*)), m = H(T(T (*))), л = Т(Т(Т (*))), что соответствует двум различным способам размещения ин- информации Q S т п q 5 | « | п | или древовидным структурам Я % т п Итак, мы можем определить подлинное значение Т по схеме где <т — сложная, но все же еще ПР-функция; тогда теорема о <тп гарантирует, что сама функция Т, т. е. T(t,q,s,m,n), яв- является примитивно-рекурсивной. Построим теперь Н, Т и С. Примем простую схему кодиро- кодирования, определив В двоичном коде С {у, г) можно записать как 1 00 .. ЛЮ 1 00 ... 00, 2 У где у и z представляются сериями нулей. Теперь легко убе- убедиться в том, что С {у, г) есть ПР-функция: где С (у, z) = ехр (у) + ехр (у + г + 1), f ехр(О) =1, 1 ехр(п') = 2 -ехр(п).
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 221 Далее нашей задачей фактически является нахождение ПР-оп- ределений для Н и Т, для которых Действительно, H(*) показывает, сколько раз х делится на 2; и снова с помощью теоремы о ап мы сможем доказать, что эта функция примитивно-рекурсивна. ДЕЛЕНИЕ НА 2 Мы уже определили (и разд. 10.1) функцию Н (х) Я(л:) = -|-) если х четно, Н (х) = ^—, если х нечетно. Различие между четными и нечетными числами имеет смысл сделать еще более сильным; поэтому мы введем еще одну функ- функцию J(x) = H(x)-N(P(x)), которая обладает следующим свойством: / (х) = -j, если х четно, J (х) = 0, если х нечетно. Определим также функцию Е(х) = N(N(x)), которая равна 0, если х = 0, и 1 в противном случае. Теперь рассмотрим после- последовательность Е(х), E(J(x)), E(J(J(x))), ?(/(/(/(*)))) и т. д. Легко видеть, что если х на 2 делится п раз, то функция E(Jn(x)) равна 1, в противном случае она равна 0. Итак, если ¦Мы определим D(n, x) как i D @, х) = Е {х), \D(n',x) = D(n то, используя теорему о ап, получим D(n, х)=Е{ т. е. D есть ПР-функция, определяющая, делится ли х на 2" или нет. Затем мы введем
222 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ так что G(n, x) = E(x) + E(J(x)) + E(J(J(x)))+ ... +E(Jn(x)) есть число степеней двойки, вплоть до 2", иа которое делится х. Наконец, если мы определим Н (л;) = G (х, х), то получим функцию, которая нам нужна, потому что х не мо- может делиться на 2 более чем х раз '). Теперь нужно только вы- вычислить Т(х). Мы предоставляем читателю возможность дока- доказать, что если то (как мы показали), и т. е. если применить Н к х И(х) + 1 раз и затем применить Н, то в результате получится ПР-функция. Задача 10.3.2. Определим Н и Т, если С(у, г) = 2»Bг + 1). Это даже проще. В разд. 10.3.1 мы выбрали представление с таким расчетом, чтобы читатель смог найти легкие способы обобщения, например, до случая четы- четырех переменных; здесь же мы можем использовать {(а, Ъ, с, d) - 2е A + 2»+' A + 2С+' A + 2*+'))). Определите соответствующие функции для восстановления информации в первоначальном виде применительно к этому новому виду представления функции С. Задача 10.3.3. Если Н, Т и С существуют, то в\>бщем случае должно иметь место С (у, г) > у • г. Обсудите это. В гл. 15 мы покажем, что для любого 8 > 0 можно построить С(у,г) < (/г('+е>, так что в этом смысле можно достичь хорошее приближе- приближение. Гёдель, предложивший эти методы, использовал функции типа f (а, Ь, с, d) - 2°3*5С7". Дальнейшее обсуждение некоторых методов такого типа проводится в разд. 14.3. ') Это последнее замечание в самом деле существенно. Мы определили оо G(n, х) рекурсивно как 2^ ('••*) и таким образом попутно показали, ме- между прочим, как для любой функции может быть выполнено такое «суммиро- «суммирование с ограничением» посредством примитивной рекурсии.
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 223 Задача 10.3.4. В методе кодирования-декодирования в разд. 10.3.3 при- применяются довольно большие числа и используются повторные факторизации и деление. Большинство нз этих сложностей можно обойти, предложив дру- другое представление для С(у, г), в котором используется квадратичный поли- полином: С {у, *) = у {{у + г)г + (у + г)+2у), его значения намного меньше, чем значения С (у, г) прн кодировании, рассмо- рассмотренном выше. Докажите, что 1) С (у, г) имеет различные значения Для каждой пары положительных целых чисел; 2) что существуют прнмитивно- рекурснвные функции Н(дг) и Т(х), такие, что H(f(y,z)) = y, T (f (у, г) ) = г, f может принимать все целочисленные значения. 10.4. ОБЩЕ-РЕКУРСИВНЫЕ ФУНКЦИИ Схемы примитивной рекурсии имеют особо важное свой- свойство. Любое примитивно-рекурсивное определение однозначно определяет значение функции для всех Значений ее аргументов; так что не может быть никакой неоднозначности. (Для доказа- доказательства этого, если читатель не может выполнить его сам, см. Дэвис [14, теорема 3.3, стр. 48].) В частности, для любой ма- машины Тьюринга Т итерируемые функции Тьюринга Tq, Ts, Tm и Тп определены для всех значений их переменных, включая все значения t. Но любопытно, что само это свойство делает слож- сложным (фактически невозможным) представление через прими- примитивно-рекурсивные функции всех функций, определяемых по- посредством вычислений на машинах Тьюринга. Сложность в том, что мы не можем представить через при- примитивную рекурсию факт останова машины Тьюринга. И это на- намного более серьезно, чем может показаться на первый взгляд. Для более детального исследования этого вопроса дадим не- несколько более точное определение. Будем говорить, что машина Тьюринга Т вычисляет значение Т(х), если, начав работу в не- некотором фиксированном состоянии и имея некоторое стандарт- стандартное представление целого числа х на ленте, она в конце концов останавливается, фиксируя на ленте представление целого числа Т(х). Для конкретности выберем в качестве нашего стандарт- стандартного способа представления входной величины х конфигура- конфигурацию ') (q, s, щ, п) = @, 0, 0, 2х). ') Число х задается в виде х нулей
224 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Для стандартного представления выходной величишы мы усло- условимся, что машина Тьюринга останавливается поссле того, как достигнет состояния q\, и договоримся, что любая ]результирую- ]результирующая конфигурация вида (q, s, т, я)=A, что-нибудь, что-нибудь, 2^A+2 •'что-нибудь)), т. е. {q = \, s) = что-нибудь, m = что-нибудь,, п = = 2У(\ + 2 • что-нибудь), представляет значение функции Т(х) =(/')¦ Если пакая конфи- конфигурация никогда не наблюдается, мы говорим, чтсо машина не вычисляет никакого значения, или, Лучше, что Т(хк) не опреде- определена. Мы можем легко организовать останов в реал1ьной машине или в воображаемой машине Тьюринга, но мы проссто не можем сделать это в рамках примитивно-рекурсивных фу/нкций. (Так, например, в разд. 10.2 все значения функции W\>х) оказались определенными, хотели мы того или нет.) Говоря более точно, для представления Т(х) нам необходимо иметь возможность для данного х найти значение Tn(t, 0, 0, 0, 2х) при наименьшем значении t, для которого Tq (t, 0, 0, 0, 2") = 1. Причина выбора такого представления в некоторой степении продиктована техническими соображениями: мы хотим, чтобы оно было прростым, но ма- машина Тьюринга должна быть обеспечена определенными знакаами пунктуации, так чтобы она могла распознавать, где кончаются входные ; данные. Мы не можем воспользоваться самым простым представлением @, 00, 0 х), потому что тогда машина никогда не будет уверена в том, что онаа уже «видела» последнюю значащую цифру числа х, и будет продолжать ддвигаться далее вправо. Представление @,0,0,2х) в действительности исполььзует разновид- разновидность единичного кодирования вместо двоичного — машина идчет вправо (счи- (считая нули), пока не достигнет единицы; тогда ясно, что она ппросмотрела все число х. Например, число 13 не может быть представлено в виде в двоичном коде, потому что в этом случае машине ие было > бы достоверно известно, что справа нет ни одной единицы. Причина, по котсгорой мы не ис- используем обычное единичное кодирование, состоит просто в томи, что мы хотим сохранить соответствие с определениями q, s, m, n, котоорые даны в разд. 10.1.1. ') То есть число нулей до первой единицы справа от сччитывающей го- головки.
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 225 Потому что это означает заставить машину работать, пока она не достигнет состояния q\ — состояния останова, — и затем счи- считать то, что имеется на ее ленте. Обычно оператор «наименьшее значение t, для которого ...» обозначается через щ, так что вы- выражение -*] ОПЕРАТОР „НАИМЕНЬШЕЕ ЧИСЛО" означает «наименьшее t, для которого P(t)= К». Используя это обозначение, мы можем определить функцию Т(х), вычис- вычислимую машиной Тьюринга Т, выражением Г(х) = НГ„(ММ'. 0. 0. 0. 2*) = П, 0, 0, 0, 2')). Иначе говоря, сначала находится число шагов, которые машина Тьюринга сделает до останова (т. е. до вхождения ее в состоя- состояние <7i), а затем вычисляется значение п после многократных операций преобразования Тьюринга. ОПРЕДЕЛЕНИЕ ОБЩЕ-РЕКУРСИВНОЙ ФУНКЦИИ Если функция может быть определена через аппарат примитивной рекурсии вместе с использованием оператора «наименьшее число» ц, то она является обще-рекурсивной функцией (или, кратко, рекурсивной функцией). Мы только что показали, что функция, вычислимая машиной Тьюринга, является обще-рекурсивной1). Обратное мы докажем в следующих главах. Отметим, что оператор «наименьшее значение» использо- использовался лишь однажды, в самом конце нашего описания вычисле- вычислений на машине Тьюринга! Это явление носит общий характер; любая обще-рекурсивная функция может быть получена про- простым применением оператора ц к некоторой примитивно-рекур- примитивно-рекурсивной функции. Позднее станет ясным, почему это так. Отличаются ли обще-рекурсивные функции от примитивно- рекурсивных? Отличаются, потому что невозможно определить оператор р, через функцию-нуль, функцию следования, компози- композицию и примитивную рекурсию. Это будет показано в следующем разделе. ') Нетрудно убедиться в том, что функция Е(Х) = 2* примитивно-рекур- примитивно-рекурсивна: S М, Минский
226 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Задача 10.4.1. Докажите, что если функция Ф(х) примитивно-рекурсивна, то функции /(П)-У 0(/) = 0(О) + 0A) + 0B)+ ... +ф(п) 1-0 и п ?(я) = Ц0О) = 0(О).фA)-ФB)- ... -Ф[п) также примитиво-рекурсивиы. Задача 10.4.2. Определим «ограниченный оператор наименьшее число» Рц<х) следующим образом: *)Н>@ =-*(<)]. т. е. как «наименьшее значение t, меньшее чем х, для которого ф(<) = X(t); если не существует такого t, то Ф{х) = 0». Покажите, что Ф{х)—примитив- но-рекурсивиая функция, если ф(<) и X{t)—примитивно-рекурсивные функ- функции. Решение приведено у Клини [39, стр. 228]. Задача 10.4.3. Покажите, что LP(X)—«наибольший простой делитель числа X» — является обще-рекурсивной функцией. Является ли эта функция примитивно-рекурсивной? 10.S. ОБЩЕ-РЕКУРСИВНЫЕ И ЧАСТИЧНО-РЕКУРСИВНЫЕ ФУНКЦИИ: ТЕРМИНОЛОГИЯ И ТЕОРЕМЫ В этом разделе мы исследуем некоторые свойства обще- общерекурсивных функций. Большинство результатов носит негатив- негативный характер — они показывают, что не существует рекурсивной функции с тем или иным свойством или что данная проблема, касающаяся класса функций, эффективно неразрешима. Неко- Некоторые результаты более позитивны — они показывают, что, хотя каждый эффективно вычислимый класс функций может иметь определенные ограничения, существуют эффективные методы расширения таких классов. Во всяком случае, мы приобретаем превосходный, относительно автономный, новый раздел матема- математики— теорию, изучающую связи между различными классами вычислимых функций. Мы можем затронуть только часть из- известных результатов, но даже элементарные результаты пред- представляют большой интерес. Начнем с замечания о том, что определение обще-рекурсив- обще-рекурсивной функции, данное в разд. 10.4, намного искуснее и тоньше, чем кажется. Мы сказали, что функция является обще-рекурсив- обще-рекурсивной, если она определена посредством ряда уравнений некото- некоторого типа. Затруднение вызвано тем, что просмотр такого вы- выбора уравнений обычно не убеждает нас в том, что эти уравне- уравнения «определяют» какую:либо функцию вообще. Когда говорится «функция», обычно понимается под этим «правило, которое каж-
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 227 Дому значению (или набору из п значений, если мы имеем функ- функцию п переменных) ставит в соответствие результирующее зна- значение». Но в общем случае система уравнений не всегда дает определенное значение. Например, рассмотрим систему (Е@) =0, U (*') = ? to, которая формально удовлетворяет нашему определению. Для х = 0 значение F(x) определено и равно 0. Но для х = 1 наше определение «не работает»; выражение \iv[E(y) — 1] означает: сначала посмотри, выполняется ли Е@) = 1; если нет, посмотри, выполняется ли ЕA) = 1; если нет, посмотри, выполняется ли ЯB) = 1, если нет, то ... и т. д. и т. п. Вычисление никогда не заканчивается, потому что Е(х) всегда равно нулю, и для F(\) не будет найдено никакого значения. Это явление весьма характерно. Поэтому, делая предполо- предположение, что система уравнений действительно определяет обще- общерекурсивную функцию, нужно всегда проявлять осторожность. Мы обычно требуем дополнительного доказательства этого по- положения, например, в виде индуктивного доказательства того, что для каждого значения аргумента вычисление завершается выдачей единственного значения. Вследствие этого будем обычно говорить о частично-рекур- частично-рекурсивной функции, описываемой набором уравнений, включающих функцию-нуль, функцию следования, примитивную рекурсию и оператор «наименьшее число». Когда мы говорим о частично- рекурсивной функции (или, короче, частичной функции) F(x), то понимаем, что может не существовать значения, определен- определенного для некоторого (или даже любого!) значения х. Если F(x) оказывается определенной для всех значений х, то мы назы- называем ее обще-реку рейв ной функцией или, короче, общей функ- функцией. Конечно, любая обще-рекурсивная функция также может считаться частично-рекурсивной. Можно было бы предположить, что дело упростится, если мы просто сконцентрируем наше внимание на обще-рекурсивных функциях, но мы убедимся вскоре, что это предположение в высшей степени нерационально. Что означает здесь термин «рекурсивная»? Он указывает на рекуррентный характер определения. Так, в определении 8*
228 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ мы находим наименование определяемой функции F+ и в правой части уравнения, так что это определение является рекурсив- рекурсивным. Оказывается, это определение удовлетворяет также фор- формальным условиям примитивно-рекурсивного определения. Задача. Для примитивно-рекурсивных определений не существует про- проблемы неопределенных значений функции. Почему? Следующая система уравнений определяет рекурсивно неко- некоторую функцию А (х) А @, у)-у*, А (х', 0) = А (х, 1), ¦ А(х',у') = А(х,а(х',у)), А (х) = А (х, х). Эти уравнения не удовлетворяют нашим формальным усло- условиям либо примитивно-рекурсивных, либо обще-рекурсивных, функций, но они фактически дают единственное значение для каждого, аргумента х функции А(х). На самом деле мы могли бы дать более слабое определение обще-рекурсивной функции, а именно: любая функция, определяемая любой рекурсивной си- системой уравнений. Клини [38] доказал, что это последнее опре- определение охватывает тот же самый класс функций. ^ Задача 10.5.1. Покажите, что написанные выше уравнения Аккермэнна действительно определяют обще-рекурсивную функцию А(х). Можете ли вы вычислить Л B)? 4C)? Л D)? Можете ли вы хотя бы оценить величину Л A0)? ЗАМЕЧАНИЕ В этих уравнениях используется некоторого рода одновременная индукция по двум переменным сразу. Функции, определенные таким способом, назы- называются «2-рекурсивными»; известно, что некоторые из них (включая приведен- приведенную) не являются примитивно-рекурсивными. Вообще же известно (см. Пе- Петер [74] или Робиисон [84]), что для каждого п существуют «-рекурсивные функции, которые не (п—1) -рекурсивны. С другой стороны, также известно, что «-рекурсивные функции являются обще-рекурсивными. Действительно, в разд. 10.3.1 наше доказательство теоремы о о" указывает путь к доказатель- доказательству того, что вдвойне-рекурсивные функции являются обще-рекурсивиымн. ЮЛ. ЭФФЕКТИВНЫЕ ПЕРЕЧИСЛЕНИЯ ЧАСТИЧНО-РЕКУРСИВНЫХ ФУНКЦИЙ По некоторым причинам нам хотелось бы иметь упорядочен- упорядоченную последовательность (список) всех частично-рекурсивных функций f 1 (*). U (*)• • • •. fn (*). • • • >
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 229 так чтобы о ней можно было говорить на языке эффективно оп- определенных операций. Упорядочение множества объектов в виде определенной дискретной последовательности называется пере- перечислением множества объектов. Для наших целей важно, чтобы перечисление частично-рекурсивных функций было эффектив- эффективным, т. е. ч"тобы у нас был эффективный способ нахождения п-й функции списка или хотя бы нахождения ее определения. Хотя это может показаться странным, но нам будет достаточно знать, что перечисление существует,;—нам даже не потребуется выяс- выяснять какие-либо подробности о его свойствах! Следовательно, вместо подробного доказательства достаточно привести убеди- убедительный довод в пользу его возможности, т. е. что мы могли бы построить его, если бы это потребовалось. Итак, требование эффективности перечисления эквивалентно тому, что для данных п и х мы можем по крайней мере присту- приступить к вычислению fn(x), т. е. вычислению значения n-й ча- частично-рекурсивной функции для аргумента х. (Значение fn(x) может, конечно, быть и не определено.) Это в свою очередь экви- эквивалентно определению частично-рекурсивной функции ') которая универсальна в том смысле, что она определена строго, когда fn(x) существует и имеет то же значение. Если мы имеем такую функцию U(n,x), то п будем называтЬ/Ынде/ссньш чис- числом, a fn(x) — n-й функцией или функцией с индексом п. Почему мы все же могли предположить, что существует эф- эффективное перечисление частично-рекурсивных функций? В конце концов они образуют фантастически богатое, причудливее и не- неупорядоченное множество объектов, поскольку в это множество входят объекты, соответствующие всем возможным рекурсивным определениям. Можно привести два довода — один прямой и один косвенный. Первый из них связан с тем, что определение каждой ча- частично-рекурсивной функции состоит из конечного набора урав- уравнений, каждое из которых включает конечное число символов, обозначающих нуль, следование, примитивную рекурсию и наи- наименьшее число в сочетании с конечным числом запятых, круг- круглых и квадратных скобок. Точные правила их расположения не важны; важно то, что в любой такой ситуации всегда можно ') Такое утверждение имеет смысл только в том случае, если мы иденти,-. фицируем понятия A) «эффективность» и B) «определимость через общую, рекурсию». Это скорее философская, чем математическая гипотеза; вскоре мы поясним ее, когда покажем, что понятие обще-рекурсивной функции ма- математически идентично с понятием C) «функдди^ вычиолиэдой машиной Тью- Тьюринга».
230 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ ввести некоторого рода бесконечное лексикографическое упоря- упорядочение составных объектов, точно так же как это было сде- сделано в задаче 6.3.2 для правильных скобочных последователь- последовательностей. Хотя эта ситуация кажется более сложной, есть способ сделать ее даже проще. Действительно, поскольку большинство частично-рекурсивных функций (или, скорее, определений) вовсе не определяет истинного окончания процесса вычислений, нам не надо слишком заботиться, чтобы при перечислении опре- определений все последовательности символов были правильными. Действительно, мы можем рассмотреть какую-либо процедуру, которая в конце концов образует любую (и все) последователь- последовательности символов, требуемых для определений. Имеется только одна техническая проблема — остаться в рамках фиксирован- фиксированного алфавита; й она решается использованием, скажем, двоич- двоичного кодирования (как в разд. 7.2) неограниченного числа названий переменных и функций, которые могут потребоваться. Тогда (как в разд. 9.3.1, который читатель должен теперь про- прочесть, хотя глава в целом является дополнительной)''простая схема числового упорядочения будет эффективным перечисле- перечислением при условии, что существует способ правильной интерпре- интерпретации п-го описания. Сходное построение применено также в разд. 12.3. Однако с первого взгляда неочевидно, что такой способ су- существует. Чтобы построить его, нужно выписать определение обще-рекурсивной функции U(n,x), которая правильно интер- интерпретирует число п и вычисляет соответствующую функцию от х. Непосредственное построение U требует такого же объема ра- работы и существенным образом основывается на тех же самых идеях, которые мы использовали при построении универсальной машины Тьюринга. В равной степени как для нашей настоящей, так и для последующей цели удобно доказать, что вычисления частично-рекурсивных функций эквивалентно во всех отноше- отношениях вычислению на машинах Тьюринга. Таким образом, в связи с нашим последующим доказательством того, что это эквива- эквивалентно существованию универсальной машины Тьюринга, мы предположим, что существует рекурсивная функция U(n,x). Итак, мы будем говорить о п-й частично-рекурсивной функ- функции fn(x). Предостережение: не делайте никаких далеко идущих предположений! Некоторые функции fn(x) не могут быть определены даже хотя бы для одного значения х. Некото- Некоторые функции с разными индексами, например fi(x) и fj(x), мо- могут быть одинаковыми: fi(x) = fj(x) для всех х. Действительно, некоторые функции могут появляться в списке бесконечно часто, что соответствует совершенно разным определениям. Един- Единственное, в чем мы уверены, это то, что если функция частично-
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 231 / рекурсивна, то она имеет по крайней мере один индекс в пере- перечислении. Мы также можем эффективно перечислить примитивно- рекурсивные функции одного аргумента, которые являются (все) обще-рекурсивными функциями, и обозначить их Р\(х), Pi{x), ..., рп(х), ... . Когда мы говорим, что множество функ- функций эффективно перечислимо, то важно, что имеется метод, ко- который только по данному индексному числу функции позволит определить ее значения. Задача 10.6.1. Опишите содержательно, но очень подробно, как можно выполнить эффективное перечисление 1) примитивно-рекурсивных функций Pi{x); 2) частично-рекурсивных функций ft(x). Задача 10.6.2. Набросайте основные шаги определения универсальной примитивно-рекурсивной функции V{n, x) = рп{х) и покажите, что она яв- является обще-рекурсивной. Задача 10.6.3. Набросайте основные шаги определения универсальной частично-рекурсивной функции U (п, х) = /„ (х). Иначе говоря, попытайтесь заранее получить результаты нескольких следую- следующих разделов. ТЕОРЕМА Г Не все обще-рекурсивные функции примитивно-рекурсивны. Доказательство. Рассмотрим функцию F(x)-px(x)+ l=V(x,x) + L Ясно, что 1) эта функция обще-рекурсивна потому, что прими- примитивно-рекурсивные функции всегда определены, и что 2) она не может быть примитивно-рекурсивной, поскольку она отличается по крайней мере для одного из значений своих аргументов, а именно F(n) ф рп(п), от каждой примитивной функции рп{х). (Снова канторов метод диагоналей!) Функция является обще- общерекурсивной потому, что «универсальная примитивно-рекурсив- примитивно-рекурсивная функция» V(n, х) обще-рекурсивна; следовательно, обще- рекурсивна и функция = S(V(x,x)). ТЕОРЕМА 2 Существует обще-рекурсивная функция, которая растет быст~ рее, чем любая примитивно-рекурсивная функция.
232 ЧАСТЬ И. БЕСКОНЕЧНЫЕ МАШИНЫ Доказательство. Рассмотрим общую функцию М(х), опреде- определяемую следующим образом: 5@, Ь) = 0, 5 (а', Ь) = 5 (а, b) + V(a, b), Т@, а) = 0, Т{Ь', а) = 5 (а, b) + T (Ь, а), М(х) = Т (х, х). Действительно, х-1 х-1 Задача 10.6.4. Докажите, что М(х) обладает требуемым свойством, т. е. для каждого в М(х)>Рп(х) для всех достаточно больших х. (На самом деле, это справедливо каждый раз, когда х > п.) Сама функция М(х), следовательно, не можег быть прими- тивно-рекурснвной. Что в определении, приведенном выше, не является при- примитивной рекурсией? ТЕОРЕМА 3 Не существует эффективного способа решить для произволь- произвольного п, определена ли fn@). Доказательство. Если бы это было возможно, то существо- существовало бы решение проблемы останова для машины Тьюринга с пустой лентой. Чтобы убедиться в этом, предположим, что U(n, x) определена через универсальную машину Тьюринга, и проделаем выкладки разд. 10.3 в обратном порядке, учитывая некоторые детали. Отсюда (после некоторых рассуждений) следует, что не су- существует эффективной процедуры ответа на вопрос, какие из примитивно-рекурсивных функций являются обще-рекурсив- обще-рекурсивными. ЗАМЕЧАНИЕ Не слишком ли мы много говорим о неопределенных значе- значениях функций? Почему бы не разделаться с ними посредством некоторого решительного метода, например подобного следую- следующему? Пусть fn(x) есть частично-рекурсивная функция. Пусть gn{x) = fn(x), когда fn(x) определена, и пусть gn(x) = 0, когда fn{x) не определена. Сосредоточим наше внимание только на функциях g, так как теперь функции g определены повсюду. Беда в том, что не все функции g, построенные таким образом,
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 233 будут вычислимы, т. е. обще-рекурсивны. В действительности мы столкнулись с более серьезной трудностью, в чем убеждает сле- следующая теорема. ТЕОРЕМА 4 В то время как некоторые частичные функции не являются обще-рекурсивными лишь в силу способа построения опреде- определяющих их систем уравнений, некоторые частичные функции в принципе недоопределимы в том смысле, что там, где они оп- определены, их значения не соответствуют значениям ни одной из обще-рекурсивных функций. Доказательство. Пусть F(x) имеет значение fx(x) + 1 вся- всякий раз, когда определена fx(x), и не определена во всех осталь- остальных случаях. Тогда мы не сможем утверждать, что F(x) —но- —новая функция, отличная от любой из fi(x). Функция F(x) могла бы быть такой же, как и некоторая функция fn, для которой fn(n) не определено1). Но теперь предположим, что F(х) была «доопределена» приписыванием значений там, где она не была определена, так что она стала некоторой обще-рекурсивной функцией. Тогда новая обще-рекурсивная функция занимала бы в перечислении некоторую позицию fn (разд. 10.4), и, поскольку fn является обще-рекурсивной функцией, значение fn(n) опреде- определено. Следовательно, во-первых, F(n) должна быть определена н, кроме того, F(n) = fn(n), потому что когда мы «доопреде- «доопределили» F, то не изменили тех значений, которые уже были опре- определены. Но тогда по определению F(n)=fn(n)+l=fn(n\ что невозможно. Отсюда следует, что, в то время как частично-рекурсивные функции могут быть эффективно перечислены, обще-рекурсив« ные — не могут! Более точно: ТЕОРЕМА 5 Существует эффективная процедура, которая по любому дан- данному эффективному перечислению (некоторых) обще-рекурсив- обще-рекурсивных функций образует новую обще-рекурсивную функцию, кото- которая не содержится в данном перечислении. ') Отметим, таким образом, что канторов диагональный метод здесь ие .пригоден. Все частично-рекурсивные функции могут быть эффективно пере- перечислены. Действительно, F(x), как она определена здесь, есть одна из функ- функций /i, и значение ft(i) для этой функции не определено.
234 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Доказательство. Пусть Тп (х) определяет перечисление. Тогда является обще-рекурсивной функцией, поскольку Тх(х) всегда определена, так как все Г-функции являются обще-рекурсив- обще-рекурсивными и отличаются от каждой функции Тп(х) по крайней мере тогда, когда х имеет значение п. Стоит подчеркнуть, что теорема 5 имеет позитивный харак- характер. В ней утверждается, что поскольку речь идет об эффектив- эффективных перечислениях, то «процесс диагонализации», т. е. вычисле- вычисление, включающее как процесс перечисления, так и процессы, ко- которые перечисляются, имеет креативный характер — создает не- нечто новое. Действительно, можно повторять его снова и снова, получая бесконечно много новых функций. Большинство «фило- «философов», поспешно интерпретирующих существование теорем о неразрешимости как доказательство того, что машины имеют ограничения, не свойственные людям, упускают из вида этот серьезный и интересный аспект ситуации. 10.7. УСЛОВНЫЕ ВЫРАЖЕНИЯ; ФОРМАЛИЗМ МАК-КАРТИ Арифметизация любой практической вычислительной проце- процедуры по методам разд. 10.1 является сложным делом, поскольку не ясен способ, как претворить в уравнения поток сигналов, уп- управляющих процедурой. Рассмотрим способ использования функции направления D(q, s) для выбора вида преобразования (разд. 10.1.2). Мы применили выражение m* = Bm + #(<7, s))D(q, s) + H(m)D(q, s), «ветвление» процесса основывалось на том обстоятельстве, что мы могли фактически вычислить оба возможных результата и затем умножить тот или другой на нуль. Это и не изящно и не эффективно. Этот дефект, связанный со скудными возможно- возможностями описания процесса, в равной степени сказывается и в по- построении диаграмм машин Тьюринга. К тому же, будучи удовле- удовлетворительным с теоретической точки зрения, такое описание оказывается очень сложным. Искусные арифметические приемы, описанные в этой главе, хотя и интересны, но не удовлетвори- удовлетворительны ни в отношении пригодности, ни в отношении математи- математической красоты. «Целый мешок» хитроумных арифметических приемов в этой главе не может удовлетворить нас как с прак- практической точки зрения, так и эстетически, несмотря на то что они интересны. В языках, используемых в программировании для вычисли- вычислительных машин, мы находим более удобное «обеспечение» для
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 235 выбора различных «ветвей» вычислительного процесса. Но прак- практические машинные языки сами не годятся для формальных математических построений — они созданы не для того, чтобы облегчить доказательство теорем о процедурах, которые они описывают. В статье Мак-Карти [52] находим формальный под- подход, который усиливает практический аспект теории рекурсив- рекурсивных функций, но сохраняет и даже улучшает математическую ясность предмета. Мак-Карти вводит «условные выражения» вида ') f = (if p, then e, else e2), где е,- — функция, а р\—утверждение (или равенство), которое может быть истинным или ложным. Это выражение означает: если р\ истинно, то значение f равно еь если нет, значе- значение f равно е2. Это условное выражение непосредственно заменяет искусствен- искусственный прием умножения на нуль. Оно даже делает больше, так как обладает возможностями оператора «наименьшее число». Действительно, оно дает нам рекурсивную функцию Т(п) прямо из уравнений преобразования Тьюринга (разд. 10.1): Т (q, s, m, n) = (if q = 1 then n else T (q\ s\ rn, n)). Заметим, что при этом полностью исключается параметр /, ко- который несет информацию о длине вычисления, так же как и опе- оператор «наименьшее число». Формальные построения Мак-Карти подобны обще-рекурсивной (клиниевской) системе, которая основывается на некоторых базовых функциях — композиции и равенстве, но кроме того, он использует условное выражение, которое одно замещает как схему примитивной рекурсии, так и оператор «наименьшее число». Различие, однако, заключается в том, что система Мак-Кар- Мак-Карти имеет специальные средства для обеспечения своей замкну- замкнутости, так что вместо хитроумных арифметических методов она может описывать процессы вычисления, перечисления, универ- универсальные процессы и т.д. более непосредственно. (Мы не будем приводить подробности ее использования для этих целей.) Мы не будем также описывать здесь систему Мак-Карти целиком, но, чтобы передать ее особенности, покажем, как в ее упрощенном варианте строится преобразование Тьюринга. Пред- Предположим, что имеются понятия: ') Читателям, не знакомым с языками программирования, напомним со- соответствие между английскими и русскими служебными словами: if — если, then — то, else — иначе. •— Прим. перев.
236 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Нуль Следование Равенство (чисел) Композиция Условное выражение Мы определим функцию «предшественник» как pred (п) = pred 2 (п, 0), pred 2 (п, т) = (if m' = n then m else pred 2 (п, т')). Будем обозначать pred(rc) через гг. Заметим, что pred(re) не определена для п = 0; это не будет иметь значения, если ис- использовать функцию соответствующим образом. Затем мы определим следующие необходимые функции '): Р (х) = (if х = 0 then 0 else (if x = 1 then 1 else P (*"))), H (x) = (if x = 0 then 0 else (if x = 1 then 0 else H (x")')), x + у = (if x = 0 then у else x~ + y'), xy = (jix = Q then 0 else у + x~y). Этого нам достаточно, чтобы определить функцию, вычислимую машиной Т точно так, как в разд. 10.1.2: Т(п) -Г@,0, 0, 2"), Г {q, s, m, n) = (iiq=l then n else (if Z) G, s) = 0 then 7" (Q fa, s), P (m),2m + R (q, s), H (n)) else T'(Q (q, s), P(n), H (m), которая здесь написана значительно более компактно и уме- умеренно выразительно. Конечно, мы должны определить функции переходов состояний (как в разд. 10.2), но для этого легко при- применить совокупность вложенных условий типа R (x, y) = (iix = 0 then (if у = 0 then 3 else(if у = 1 then 2 else ...)) else (if x = 1 then (if у = 0 then 5 else (if y= 1 then 1 else ...))...)) и просто определить функцию шаг за шагом. >) Заметим, что мы ие можем рассматривать (if p then a else b) просто как функцию трех величии р, а и Ь, поскольку тогда было бы необходимо, чтобы все они были вычислены заранее. Но часто если р истинно, то вы- вычисление b никогда не будет оканчиваться; в этом случае мы должны вы- вычислять а, не обращая внимания на Ь.
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 237 Вышеприведенное соотношение для Т по-прежнему включает двоичную арифметизацию машины Тьюринга и ее ленты. Мы также можем непосредственно показать, что общая рекурсия охватывается настоящим формальным подходом, заметив, что если дана любая заранее определенная функция f(x), то мы мо- можем получить результат применения к ней оператора «наимень- «наименьшее число» и* [/(*) = N], вычислив ц@, N), где ц (х, N) = (if f(x) = N then x else ц (xr, N)), в то время как примитивная рекурсия получается из уравнений типа Ф(у, x) = (\iy = 0thenг|>(x)else%(ф(у~, х), у~(х)). ПРИМЕР Мы можем определить пг/п как наибольшее х, для которого пг^-пх, следующим образом1): пг/п — divide (пг, п, 0, 0), divide (пг, п, х, у) = (if у = re then divide (m, n, x', 0)else (if m = nx + у then x else divide (m, n, x, t/))). Задача 10.7.1. Определите функции: 1) Prime (я) = (it я = prime then 1 else 0); 2) u(m, n)—наибольший общий делитель тип; 3) *(я) — число целых чисел, меньших чем я, которые не имеют общего делителя с я. 10.8. ОПИСАНИЕ ВЫЧИСЛЕНИЙ ПОСРЕДСТВОМ СПИСОЧНЫХ СТРУКТУР2) В этом разделе мы опишем формальный метод представле- представления функций «списками» целых чисел. В следующем разделе мы используем более гибкую систему, которая описывает «вет- «ветвящиеся» списки, или списки списков и т. д. ОПРЕДЕЛЕНИЕ /-список есть последовательность целых чисел (*|> Х2 Хп), /-список, который не содержит целых чисел «( )», мы назо- назовем NIL3). ') divide — делить (англ.), prime — простое число (англ.).—Прим. перев. 2) Этот раздел дополнительный. s) NIL — нуль (англ.).—Прим. перев,
238 ЧАСТЬ П. БЕСКОНЕЧНЫЕ МАШИНЫ Определим три функции /-списков; если А — целое число, а В — список {хь ..., хп), то С (Л, В) = {А, *, хп) ТЕЛО, Н (В) = Xi ГОЛОВА, Т (В) = (х2 хп) ХВОСТ. Если В есть NIL, то Н(й) и 1{В) не определены. Если В — спи- список, состоящий из одного целого числа {х), то Н(В) —х и Т(В) ==NIL. Можно вывести соотношения1) И(С(А,В)) = А, Т(С(Л, В)) = В, так что функции Н и Т могут быть теперь использованы для разделения на те части списка, из которых он составлен, по- посредством применения функции С. Теперь предположим, что мы присоединили эти функции и понятие /-списка к уже имею- имеющимся понятиям (равенство, композиция, условное выраже- выражение). Тогда мы сможем иметь дело непосредственно с машиной Тьюринга, рассматривая ленту как два /-списка пг и п. В этом случае мы определим четыре функции как операции «обработки списков»: q* (q, s, пг, n) = Q(q, s), s' (q, s, m, n) = (if D (q, s) = 1 then H (n) else H (m)), m* (q, s, m, n) = (if D (q, s) = 1 then С (R (q, s), m) else (if T (m) = NIL then @) else T (m)), n* (q, s, m, n) = (if D (q, s) = 0 then С {R (q, s), n) else (if T (n) = NIL then @) else T (n)). Эти функции непосредственно представляют пятерки машины Тьюринга. Например, s*(q, s, m,n) считывают первый элемент списка п, если машина идет вправо, в противном случае счи- тывается первый элемент списка т. Последнее предложение в определениях пг* и п* является средством заставить конечные списки шип действовать так, как если бы они были бесконеч- бесконечными,— дополнительный нуль добавляется всякий раз, когда машина доходит до более отдаленной точки, чем она достигала прежде. Это связано с тем, что @), который дает С@, NIL), реализует присоединение к ленте новой пустой ячейки. •) Таким образом, система с самого начала имеет в качестве «базовых функций» функции С (у, г), Н(х) н Т(*), которые мы должны были построить в разд. 10.3 [1*].
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 239 10.9. LISP О Ради полноты мы сейчас опишем более подробно понятие списочной структуры, развитое Мак-Карти. Мы хотим уметь об- обрабатывать не только списки целых чисел, но списки списков, списки списков, списков и т. д. Это можно сделать довольно изящно, так что базовые функции Н(х) и Т(х) окажутся более симметричными. Чтобы сделать это, введем новое основное по- понятие—двоичную соединительную операцию «точка»—и сде- сделаем понятие «списка» выводимым, вспомогательным. Начнем со следующих базовых понятий: Элемент: Объект NIL есть элемент. Целые числа 0, 1, 2, ... суть элементы. Равенство: Мы говорим о равенстве, если два элемента оди- одинаковы. Символические выражения: Любой элемент есть символиче- символическое выражение. Если А и В — символические выраже- выражения, то {А • В) также есть символическое выражение. Символические функции: Если А и В — символические вы- выражения, то С(А,В) = (А-В), Н ((А ¦ В)) = А, Теперь можно вывести тождество С(Н«Л.В», Т«Л Списки не будут основными объектами, они определяются как некоторого рода символические выражения, а именно ( ) = =з NIL есть список; если X есть элемент, то {X) з= (Х-NIL) есть список, и, в более общем виде, если X, Y Z и т. д. — элементы или списки, то есть список. Таким образом, можно составить список, который является списком списков. Например, ((А, В), С, (D, Е)) ') Дополнительный раздел. «LISP» (List Processor) [язык для обработки списков (англ.). — Прим. перев.] включает в себя как формальные построения, часть которых описана здесь, так и практическую систему программирования для вычислительных машин, основанную иа этих построениях. Библиографи- Библиографические ссылки см. в примечании [1*].
240 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ есть список, в который входят {А, В), С и (D, Е), символиче- символическое выражение которого есть ((А ¦ (В ¦ NIL)) • (C-((D ¦ (Е • NIL)) • NIL))). Можно убедиться в том, что определения в разд. 10.5.1 не противоречат этим определениям Н, Т, С и списков. Посредством этого аппарата мы можем представить преоб- преобразование Тьюринга следующим образом. Пусть t — список (q, s, т, п), где т.я,.п — сами списки, представляющие поло- половинки ленты машины Тьюринга. Заметим, что <7 = Н@, s = H(T@), m = H(T(T(/))), *= Н(Т(Т(Т (/)))) просто делят список / на четыре подсписка. Определим функ- функцию ') list (а, Ь, с, d) = C(a, C(b, С (с, d))), которая используется для восстановления списков, поскольку \ist(A, B,C, D) = (A, B,C, D). Определим также функцию2) tape (п) = (if п = NIL then С @, NIL) else n), которая используется, чтобы «добавлять» ленту, когда это необ- необходимо. Затем если мы определим T{(q, s, т, п)) = (if D{q, s) = 1 then list(Q(g, s), H(n), C(R(q, s), m), tape(T(n)))else list (Q (q, s), H (m), tape (T (m)), С (R {q, s), n))) и Г @ - (if H (t) = 1 then H (T (T (T (/)))) else T* (T (t))), то T*(@, 0, 0, 2")) есть частично-рекурсивная функция, вычис- вычислимая на машине Тьюринга. Задача 10.9.1. Покажите, что эта система может быть в дальнейшем све- сведена к системе, которая содержит только следующие базовые понятия: Элементы: NIL. Равенство: «If X = NIL then... else...». Функции: Н(х), Т(х), С(х,у). Композиция. Иначе говоря, система даже не нуждается в понятии целого числа или сле- следования. •) list — список (англ.). — Прим. перёв. 2) tape — лента (англ.). — Прим. перев.
10. МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 241 ПРИМЕЧАНИЕ 1. В системе программирования LISP функции Н, Т, С называются cons (А,В), саг (А) и cdr (А) по причинам исторического характера. Детали этого хорошо развитого машинного языка для обработки списков читатель найдет в работе [51]. См. также работу [52], где изложены теоретические основы системы. В обзорной статье Боброу и Рафаэля [3] обсуждаются языки такого типа. Использование примитивных списочных структур было впервые введено в практику Ньюэллом, Шоу и Саймоном [71], применившим эти структуры при составлении сложных программ для вычислительных машин. Тот факт, что дополнение этих базовых понятий композицией дает другую формулировку теории рекурсивных функций, был установлен Мак-Карти, который также развил его в применяемый на практике язык «алгебраического типа» для вычислительных машин.
11 МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 11.0. ВВЕДЕНИЕ Теперь мы рассмотрим некоторые модели эффективного вы- вычисления, более тесно связанные с тем, что происходит в совре- современных вычислительных машинах, чем модели, которые мы рас- рассматривали до сих пор. Вычислительные машины имеют ряд привлекательных особенностей. Процесс, выполняемый маши- машиной, описывается последовательностями «команд», составленных из смысловых блоков. Управление процессом передается от од- одного блока к другому в зависимости от результатов вычислений. Частичные результаты накапливаются в памяти, где они остают- остаются, пока не потребуются снова. Каждый основной шаг — эле- элементарная «команда» — сам по себе является приемлемой смысловой единицей. Такое сочетание особенностей дает воз- возможность описывать очень сложные процессы, не прибегая к не- невероятно длинным и трудным для интерпретации последова- последовательностям символов. Как мы убедились, ни теория машин Тьюринга, ни формализм обще-рекурсивных функций не обеспе- обеспечивают удовлетворительных средств оперирования процедурами, которые действительно могут потребоваться на практике. Ни- Ничего нового в этом смысле не дает и система, рассматриваемая в настоящей главе; отвечающие этим требованиям системы встречаются только в реально используемых языках програм- программирования для вычислительных машин. Разрабатываемые здесь системы занимают промежуточное положение в том смысле, что мы можем использовать формальные методы для анализа и истолкования основных логических принципов и в то же время сохранить достаточную прозрачность в отношении приспособле- приспособления систем для практических приложений. В этой главе мы построим семейство гипотетических машин, подобных вычислительным, и докажем, что принятая формули- формулировка логически эквивалентна другим формулировкам вычисли- вычислимости, которые мы рассматривали. Новые машины представляют несколько другой вариант описания того, что входит в понятие эффективных процессов, который, по моему мнению, лучше по- показывает возможности таких процессов. Конечно, то, что интуи- интуитивно кажется естественным одному, может не разделять кто-
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 243 нибудь другой. Каждая система имеет своих приверженцев среди выдающихся теоретиков, и каждая содействовала появлению значительных открытий. Первая попытка сформулировать теорию машин Тьюринга на языке моделей, подобных вычислительным машинам, появи- появилась в статье Хао Вана [102], содержащей результаты, которые было бы очень трудно выразить на языке старой формальной системы. Построения в этой главе приспособлены к арифмети- арифметическим методам, которые мы уже использовали ранее, и опи- опираются на идеи, высказанные Хао Ваном и Коком^ [J. Соске]. Большинство основных результатов можно найти у'Клини [39], но у него они не сформулированы в виде программ для вычис- вычислительных машин. Читателю, не знакомому с вычислительными машинами, сле- следует иметь в виду, что вычислительные машины фактически работают не так, как показано здесь, в частности, не имеют ма- малого числа «регистров», каждый из которых обладает бесконеч- бесконечной емкостью. Вместо этого они содержат большое число реги- регистров малой емкости. 11.1. ПРОГРАММНЫЕ МАШИНЫ И ПРОГРАММЫ Если мы собираемся использовать машины как модели эф- эффективной вычислимости, то должны каким-либо образом снять ограничение, связанное с конечностью числа состояний. Для машин Тьюринга это было сделано путем введения бесконечной ленты памяти. Но процесс вычислений на машинах Тьюринга связан со значительным неудобством, состоящим в том, что ка- каждый раз при считывании и записи головка машины должна проходить вдоль всего дополненного участка ленты. Существен- Существенно осложняют процесс вычисления всевозможные дополнитель- дополнительные операции — разметка ленты, перезапись, кодирование. Современная вычислительная машина имеет другую струк- структуру памяти — большое число отдельных «регистров» конечной емкости или блоков памяти, к каждому из которых имеется не- независимый доступ. Конечно, емкость памяти любой реальной машины ограничена, хотя число таких регистров может быть весьма велико. Первая мысль могла бы состоять в том, чтобы использовать модели такого типа, но с бесконечным числом таких регистров. Но это могло бы привести нас обратно к раз- разновидности ленты — бесконечному ряду регистров; нам в этом случае нужно было бы иметь бесконечный набор названий или символов для регистров, и этими регистрами нельзя было бы управлять непосредственно с помощью той части машины, ко- которая имеет конечное число состояний.
244 ЧАСТЬ П. БЕСКОНЕЧНЫЕ МАШИНЫ Регистры Вместо этого мы предположим, что наша вычислительная машина имеет только конечное число регистров, но что каждый из них может хранить произвольно большое число, т. е. что емкость каждого регистра бесконечна. Имеется также блок с ко- конечным числом состояний — центральный процессор или про- программный блок. Поскольку эта часть конечна, она не может непосредственно работать с произвольно большими числами. Следовательно, мы должны предложить некоторый непрямой способ взаимодействия ее с содержимым регистров. Существует простое, но радикальное решение. Программный блок будет обладать способностью «обследовать» любой ре- регистр, но он может только различать, является ли регистр пу- пустым или нет, т. е, содержит ли он 0 или положительное целое число, и ничего больше. Кажется совсем удивительным, что даже при таком ограничении и конечном числе таких регистров можно реализовать любой эффективный процесс — выполнить любое эффективное вычисление. Чтобы показать это, мы проде- продемонстрируем, что для любой ма- машины Тьюринга существует эк- — ¦ t // Бивалентная программная маши- Хг на, как мы ее назвали. I т! Яг Каждая программная машина будет иметь некоторое конеч- конечное число регистров, обозначен- обозначенных через а, Ь, с и т. д.') (рис. 11.1.1). Каждая машина мо- может выполнить некоторые опе- операции, либо влияющие на содер- содержание регистров, либо выдающие некоторые сведения о содер- содержимом регистров. В любой машине будут насчитываться три или четыре типа таких операций, причем при выполнении такой операции в каждый момент времени используется только один регистр. Процесс, выполняемый программной машиной, задается ее программой, которая «встраивается» в программирующий блок машины2). Рис. 11.1.1. Структура программ- программной машины. ') Более точно, мы используем символ а как название регистра и сим- символ а для обозначения его содержимого — числа, записанного в нем. Во вся- всяком случае, из контекста обычно ясно, что именно имеется в виду. 2) Следовательно, эти машины не являются машинами с «запоминаемой программой:». Обычно принято считать, что наиболее значительные успехи в развитии вычислительной техники были достигнуты благодари тому, что программы могут храниться в той же самой памяти, что и «данные>, и что программы могут выполнять операции над другими программами или ¦ же
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 245 Программа — это упорядоченная последовательность команд. Команда — это утверждение, указывающее: 1) операцию, 2) ре- регистр, 3) номера одной или двух других команд. Мы можем объяснить эти определения лучше, если предложим ряд опера- операций и приведем примеры нескольких простых программ. Наша первая машина допускает использование четырех опе- операций, показанных в табл. 11.1.1. Букву а в этих примерах Таблица 11.1.1 Символ ГЩ ? в ш Наименование Нуль Продолжение Уменьшение или переход Останов Пример 0° d а-(п) Н Значение Заслать в регистр а нуль Перейти к следующей команде Прибавить I к содержимому реги стра а Перейти к следующей команде Если содержимое а не нуль, умень шить его на 1 и перейти к еле дующей команде Если содержимое а есть нуль, перей ти к rt-й команде Остановить машииу можно было бы заменить названием любого другого регистра, и тогда соответствующая операция будет применяться к обозна- обозначенному таким образом регистру. Теперь мы опишем простую программную машину. Предположим, что машина с тремя ре- регистрами а, Ь и w выполняет следующую программу: Номер команды 1 2 3 4 Команда ь° а-(?) Ь' V Номер команды 5 6 7 Команда ш° ш-B) Н Если машина начинает работу с команды номер 1 и в это время там содержится некоторое число а, машина в конце кон- концов остановится, причем в регистре Ь будет удвоенное число а над собой, как если бы онн были данными. По-видимому, не столь широко известно, что теоретически (но не практически) можно сохранить те же самые возможности и для машин типа рассматриваемых в этой главе, в которых программы верхнего уровня нельзя преобразовывать таким же образом.
246 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ (а в регистре а — нуль). Чтобы убедиться в этом, проследим работу машины, полагая, что вначале в регистре а содержится 2, а в регистрах b и w — произвольные числа. Номер команды 1 2 3 4 5 6 2 3 4 5 6 2 7 Содержание команды Заслать 0 в Ь а не равно 0, поэтому вычесть 1 из а и перейти к следующей ко- команде Прибавить -1 к b Прибавить 1 к b (b теперь равно 2, а равно 1) Заслать 0 в w w равно 0— возвратиться к коман- команде номер 2 Вычесть 1 из а Прибавить 1 к b Прибавить 1 к 6 Заслать 0 в w (w уже равно 0, но это не повредит) ш равно 0, так что перейти к ко- команде номер 2 Теперь а равно 0, так что перейти к команде номер 7 Останов Содержвмое регвстров а ш 1 1 1 1 1 0 0 0 0 0 0 ь 0 0 1 2 2 2 2 3 4 4 4 4 w _ — — - • 0 0 0 0 0 0 0 0 В каждом цикле а уменьшалось на 1, а & увеличивалось на 2. Когда а в последний раз равно 0, процесс останавливают, так что b теперь содержит удвоенное содержимое регистра а. Регистр w мы используем расточительно — он служит лишь в качестве устройства, возвращающего программу к более ран- ранней команде. Для этого мы могли бы просто предусмотреть спе- специальную операцию, но мы стремились сохранить минимальное число типов операций. В дальнейшем мы будем использовать для этой цели команду «переход», которую будем обозначать переход к , например «переход к (и)», понимая, что ее можно было бы заменить последовательностью w°, w~{n). Очевидно, номера команд 1, 2, 3, ... не имеют существенного значения; они служат только для индикации относительного по- положения команд в их последовательности. Далее мы будем
II. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 247 опускать их, а «переход» или «передачу» процесса будем пока- показывать стрелками (точно так же, как мы опускали название состояний в диаграммах гл. 2—5). Теперь наша программа представляется диаграммой Ночоло Процесс обычно идет от каждой команды к нижеследующей, но, когда удовлетворяется определенное условие, процесс сле- следует по стрелке. Здесь это случается только тогда, когда регистр пуст и выполняется операция Q. Следующая программа в дальнейшем будет нам очень по- полезна, потому что она вычисляет две функции Н{а) и Р(а), введенные в гл. 10: Начало Выход В первой части программы Н(а) заносится в Ь, а Я (а) — в с. Заметим, что в с поочередно содержатся 0 и 1 и что b возрастает каждый раз, когда в программе следует вычитание 2 из а. Последние три команды служат просто для переноса со- содержимого из b в а, так что в конце процесса Н (а) содержится в регистре Ь. Основные повторяющиеся «циклы» в программе мы обвели рамками.
248 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ 11.2. ПРОГРАММЫ ДЛЯ МАШИНЫ ТЬЮРИНГА Мы сделаем сейчас важный шаг: покажем, что если дана некоторая машина Тьюринга Т, то мы можем построить про- программную машину Мт, которая эквивалентна Т. Машина Мт будет иметь четыре регистра, обозначенных через s, m, n и z, содержимое регистров s, m и п соответствует числам s, m и п, которые в гл. 10 применялись для описания ленты машины Тьюринга Т. Машина Мт будет перерабатывать эти три вели- величины точно таким же способом, как это делалось в тьюринго- вом преобразовании Т* (q, s, m, п). Каждому состоянию */i ма* Начало (d-^двигаппся вправо") Пере- Переход к zL Если в-у-О, то эта пс -пнва опускается Пере- Переходи Г Пере- Переходи д состояние qjt В состояние \ / Рис. 11.2.1. Программа для вычисления состоянии q{ машины Тьюринга.
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 249 шины Т будет соответствовать блок программы, и событие, заключающееся в переходе Т в состояние q\, будет представлено соответствующей программой для машины Мт. Каждому со- состоянию <7i сопоставляются две') пятерки: (qiy О, qto, si0, dj0) и {Яи U <7ti, su, du). На рис. 11.2.1 представлена полная программа вычисления состояния qi машины Тьюринга, причем di0 означает движение ее влево, a du — вправо. В диаграмме приведены примечания, объясняющие, какие функции реализуются каждым блоком про- программы. Когда машина начинает работу, она должна иметь соответствующие начальные значения s, m и п в регистрах s, тип. Регистр г используется только для временного запоми- запоминания данных в течение времени вычисления преобразования Тьюринга; мы предположим, что содержимое w и г в начальный момент равно нулю. 11.3. ЯЗЫКИ ПРОГРАММИРОВАНИЯ И КОМПИЛЯТОРЫ Отметим, что программа на рис. 11.2.1 составлена по суще- существу из программ, рассмотренных в трех предыдущих примерах. Мы использовали их на самом деле как «подпрограммы», т. е. смысловые блоки программы, более крупные, чем основные ма- машинные операции. При желании мы можем более строго формализовать ис- использование этих подпрограмм. Мы могли бы формально опре- определить выражения, которые мы использовали как примечания к программе, так что обозначение \n*-z\, например, нужно было бы понимать следующим образом: Аналогично можно поступить и с другими примечаниями. (Де- (Детали могли бы оказаться весьма сложными.) Тогда мы могли бы записать нашу программу на несколько более выразитель- выразительном языке, а именно: ') Мы предполагаем, что Т есть двухсимвольная машина в соответствии с формулировкой, приведенной в гл. 10.
250 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Начало: если s = 0, перейти к A), в противном случае пе- перейти к B). A) z*-2n B) z+-2m z<-z + sl0 z<-z + sn tl<r- Z z*-H(m) s<-P(m) n<-z Перейти к gl0. tn<-z z<-H(n) s<-P(n) n<-z Перейти к Сравнительно легко можно представить себе другую машину (рассматривать ее мы не будем), которая может преобразовать эту «программу» в программу, изображенную на рис. 11.2.1. Такую машину можно было бы назвать компилятором и ис- использовать для трансляции с более сложного языка на простой язык операций программной машины. Поскольку мы не пы- пытаемся заниматься вопросами программирования для современ- современных вычислительных машин детально, в этом кратком наброске имеется много незаконченных мыслей; однако они помогут нам осветить некоторые аспекты программирования. Основные опе- операции большинства современных вычислительных машин не обладают сколь-нибудь большей сложностью, чем наши опера- операции [о], Q]. ЕЭ и подобные им; большинство программ пишется на других языках и затем транслируется компиляторами. Фак- Фактически компиляторами служат не отдельные машины, а обыч- обычные программы, обрабатываемые той же самой машиной, кото- которую мы в конечном итоге применяем для выполнения результи- результирующей программы, составленной на основном машинном языке. 11.4. ПРОСТАЯ УНИВЕРСАЛЬНАЯ БАЗА ДЛЯ ПРОГРАММНОЙ МАШИНЫ Если в качестве машины Т мы выберем универсальную ма- машину Тьюринга, то метод разд. 11.2 даст нам программную машину, эквивалентную универсальной машине Тьюринга. Сле- Следовательно, в некотором смысле любое вычисление может быть выполнено вычислительной машиной, в которой имеются только операции трех типов: О] — заслать в регистр 0, 21 — добавить 1 к содержимому регистра, 3 — вычесть 1 из содержимого регистра или перейти к другой команде, если в нем уже содержится 0.
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 251 Если известно, что в начальный момент некоторый регистру является пустым, то можно даже обойтись без операции [0J, потому что, если содержимое w равно 0, мы можем «очистить» любой другой регистр а, выполнив цикл программы так что в этом случае нам нужны только, операции типов Q Вместо операции Q мы можем использовать несколько отличающуюся от нее операцию типа „Уменьшение ае(п) Если содержимое а не или переход" равно нулю, вычесть 1 и перейти к п-й команде. Если содержимое а равно нулю, то перейти к сле- следующей команде. Чтобы убедиться в том, что операции Q] и (Э) образуют до- достаточный базис, заметим, что, используя только эти операции, мы можем написать программы (подпрограммы), которые дают тот же результат, что и при использовании операций |иЕ|: приа=п при афО Сколько регистров должно быть в универсальной программ- программной машине? В разд. 11.1 было показано, что нужно только пять регистров: s(a), m, n, w и z. Хотя это не легко, можно пока- показать, что регистр а можно исключить, если закодировать инфор- информацию, которую он содержит, в структуре программы. Задача. Покажите, как нужно переписать программу, чтобы исключить регистр а. Регистр w почти всегда используется неэффективно и его можно исключить введением простой операции типа «переход»,
252 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ например | переход к|—«перейти к га-й команде». Мы можем заключить, что существует универсальная программная машина с несколькими простыми типами операций, содержащая только три регистра*). Это весьма примечательный факт, и мы при- присоединим его к нашему набору различных типов простых систем, которые допускают любое эффективное вычисление. Позднее (в гл. 14) мы покажем, что фактически нужны только два ре- регистра; для этого потребуется довольно нетривиальный анализ. 11.5. ЭКВИВАЛЕНТНОСТЬ ПРОГРАММНЫХ МАШИН И ОБЩЕ-РЕКУРСИВНЫХ ФУНКЦИЙ Теперь мы покажем, что любая обще-рекурсивная функция может быть вычислена программной машиной, использующей операции, определенные в разд. 11.4. Чтобы сделать это, удобно ввести два новых типа команд; чтобы убедиться в том, что это не повлечет за собой ничего нового, мы определим их как под- подпрограммы, составленные из ранее определенных операций. Они имеют вид „Перезапись* Сделать содержимое ре- регистра b таким же, как содержимое регистра а, не изменяя а. s Начало ') Большинство современных, широко используемых универсальных вы- вычислительных машии имеет по крайней мере три «индексных регистра»; для работы с ними используются операции типов [q], Q], Q, [Q]. Программи- Программистам, работающим на этих машинах, будет забавно узиать, что эти вычисли- вычислительные машины являются, таким образом, уиизерсальиыми, даже если для запоминания данных не используется оперативная память. Конечно, это спра-
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 253 A—занести а в b и z (уничтожив а), 2— занести г обратно в а) и „Переход по равенству" Ь{п) Если содержимое а и содержимое b одина- одинаковы, перейти к n-й ко- команде. Если они от- отличаются, перейти к следующей команде. шШчат приаФ Ъ к команде п при а=> b Мы определили [=?=] через операции Q, Щ и Q- В качестве упражнения можно вновь переписать программу для |=^=| непо- непосредственно через QhQ. Покажем теперь, как запрограммировать схему примитивной рекурсии. Предположим, что мы уже знаем, как вычислить зна- значения функций ¦ФМ и %(г, у, х). Иначе говоря, пусть мы уже имеем два блока программы, ко- которые по имеющимся значениям г, у и х в некоторых регистрах вычисляют соответствующие значения функций г|5 и % (при этом результаты содержались в других регистрах). Мы хотим напи- написать программу, результатом выполнения которой будет вычис- вычисление соответствующего значения функции, определенной схе- схемой примитивной рекурсии *)-¦(*) , х)у, х), ФЬ/, х) причем результат должен содержаться в некотором новом ре- регистре ф. ведливо только в принципе, так как емкости регистров реальных машин далеки от бесконечных, а оперативная память требуется для запоминания программ.
254 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Такую функцию обычно вычисляют, начав с Затем продолжают последовательно вычислять х), 0,х), 1, х), 1, х), 2, х),2, х), пока не получат значение ф(у, х). Чтобы записать программу, которая реализует это, предположим, что в начале вычисления значения хну содержатся в регистрах х и у. Пусть ® — это программа, которая вычисляет значение г|з (х), используя ре- регистр х, так что значение у\>(х) остается в регистре ф. Аналогич- Аналогично пусть программа ф использует регистры ф, и и х, а значе- значение %{ф, и, х) остается в регистре ф. Тогда программа вычисляет значение ф(у, х), в чем читатель может убедиться, просмотрев все шаги по этой программе. Мы записали програм- программу в несколько необычном виде, чтобы показать, что здесь достаточно иметь только операции типов gj), Q] и ГЩ. Отметим, что процесс вычисления возобновляется, когда и пробегает все значения от 0 до у включительно, а не наоборот, как это предполагалось в разд. 10.1.3. Поэтому нет необходи- необходимости сохранять запись числа проделанных операций. Операция а ФЬ (п) позволяет получить примитивную рекур- рекурсию, поскольку она дает возможность повторять итерацию до у-го шага. В примитивной рекурсии число итераций у известно с начала вычисления. Но можно также получить и общую рекур- рекурсию. Чтобы убедиться в этом, рассмотрим оператор «наимень- «наименьшее число» — «наименьшее /, для которого ф(г) =0» и предположим, что ФA) — примитивно-рекурсивная функция, т. е., что В более общем виде, мы уже имеем программу, кото-
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 255 рая вычисляет ф. Пусть ® есть программа, которая выбирает число / из регистра t, и после ее выполнения значение <f>(t) остается в регистре ф. Тогда «наименьшее t, для которого f(t) — О», вычисляется программой Этим завершается доказательство того, что мы можем вычис- вычислить любую обще-рекурсивную функцию1). Из всего этого сле- следует, что если функция является обще-рекурсивной, то она мо- может быть вычислена программной машиной, использующей только операции типов Q] и Q> Теперь мы имеем разрозненные результаты, касающиеся свя- связей между различными трактовками понятия вычислимости. Из разд. 10.3 известно, что если функция вычислима по Тьюрингу, то она является обще-рекурсивной. Только что мы продемон- продемонстрировали в этом разделе, что если функция обще-рекурсивна, то она вычислима на программных машинах. Отсюда следует (и уже было показано в разд. 11.2), что если функция вычис- вычислима по Тьюрингу, то она вычислима на программной машине. Остается показать, что если функция вычислима на программ- программных машинах, то она вычислима по Тьюрингу; этим замкнется цепь доказательства того, что все трактовки понятия эффек- эффективной вычислимости эквивалентны. Этот результат будет полу- получен в гл. 14, хотя я думаю, что читатель смог бы построить прямое доказательство уже сейчас (см. диаграмму на рис. 11.8.1 в конце главы). 11.6. ЗАМЕНА ОПЕРАЦИИ „ПРЕДШЕСТВЕННИК" ОПЕРАЦИЯМИ „СЛЕДОВАНИЕ" И „РАВЕНСТВО" В разд. 11.5 было упомянуто, что операции [о], ? и \=Ц=\ могли бы оказаться достаточными для составления программы любого вычисления. Мы знаем, что эти операции можно заме- заменить на операции 1П1> СИ и Q- Нижеследующая программа ') Для случая Ц|[Ф(/) = ft] нужно лишь обеспечигь, чтобы ft содержалось в регистре w.
256 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ показывает, что с помощью операций \0\, Q] и gr] мы можем получить операцию [3> так что эти три операции также обра- образуют полный базис: Начало- • если х-0 11.7. ПРИМИТИВНАЯ И ОБЩАЯ РЕКУРСИИ, ОСНОВАННЫЕ НА ИСПОЛЬЗОВАНИИ ОПЕРАЦИИ „ПОВТОРЕНИЕ" В разд. 11.6 мы убедились в том, что можем получить все примитивно-рекурсивные функции, используя только операции «нуль», «следование» и «равенство». Были также получены обще-рекурсивные функции. Это означает, что мы не можем различать эти разные по мощности классы функций, если ис- использовать только язык вычислительных операций, из которых составлена программа вычислительного процесса. Мы должны внимательно посмотреть не только какие команды применялись, но также и то, как они связаны друг с другом, и тогда сможем установить различие. Примечательной особенностью, позволяющей выявить при- примитивную рекурсию, является то, что (по значению у) заранее известно, сколько раз должна быть выполнена итерация (при- (примитивно-рекурсивной схемы). Для обще-рекурсивной функции с ее оператором ц это обычно неизвестно, пока не закончится вычисление1). Действительно, в программе разд. 11.5 для при- ¦).В противном случае было бы достаточно иметь ограниченный оператор «наименьшее число», но мы зиаем (см. задачу 10.4.2), что это не так. И в общем случае мы ие можем иметь процедуру решения, которая могла бы определить, закончатся ли когда-либо итерации и как долго оии будут про- продолжаться.
11. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 257 митивной рекурсии число итераций было заранее известно. В нетривиальном случае (для у Ф 0) процесс вычисления обра- образует цикл Поскольку условие окончания вычисления есть и = у, поскольку у не изменяется и поскольку и начинается с нуля, мы знаем, что процедура ® будет применяться в точности у раз. В связи с тем что этот факт известен в самом начале процесса вычис- вычисления, мы могли бы выразить условие окончания более непо- непосредственно введением нового типа операции. „Повторение" RPTa : [т, п] Повторить последова- последовательность команд от //1-й до я-й а раз, где а есть число в регистре а. Если а = 0, перейти не- непосредственно к коман- команде п+ 1. Понятно, что число повторений фиксируется с самого начала этой операции, так что неважно, изменяется ли содержимое а при выполнении операции IRPT1 ')¦ Диапазон операции IRPTI2) в программе мы будем схематично изображать скобкой, свя- связанной стрелкой с этой командой, так что номера команд не нужны. Теперь можно переписать программу примитивной ре- рекурсии из разд. 11.5 в виде 'J См. замечание в конце этого раздела. 2) Под диапазоном операпии «повторение» понимается промежуток [т, я]. — Прим. перев. 9 М. Минский
258 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Читатель может убедиться в том, что программа выполняет все, что требуется, причем значение искомой функции записывается в регистр при тех же требованиях к i|> и %, что и в разд. 11.5. Таким образом, мы можем получить любую примитивно-рекур- примитивно-рекурсивную функцию, используя только операции \о\, Q] hJRPTI, причем диапазон не содержит в себе самой операции Irpt' Мы делаем особое ударение на последних словах, потому что, если диапазон содержит в себе операцию IRPT1. мы получим общую рекурсию. Чтобы показать это, напишем программу для реализации оператора «наименьшее число» Он вычисляется следующей программой: Программа начинается с установки / = О и вычисления ф = = ^@). Основной прием состоит в том, что регистр и очищается, и над его содержимым выполняется программа RPT ф: [и0, и']. Если ф = 0, никакого воздействия на и оказано не будет, так что мы будем иметь и = 0. Затем, поскольку и = 0, будут опу- опущены следующие две операции RPT и вычисление закончится. Но если ф не равно 0, программа RPT ф: [и0, и'] завершится при и =* 1 независимо от того, каково значение ф. Следовательно, / увеличится ровно на 1 (по программе RPT и: [/']) и, наконец, весь процесс будет повторяться в соответствии с последней программой RPT и. Таким образом, / будет возрастать, пока в конце концов не найдется такого /, при котором ^(/) = 0. Ре- Результат: любая обще-рекурсивная функция может быть вычис- вычислена программной машиной, использующей только операции Ш\> О и IRPTI» если разрешается, чтобы операция RPT находи- лась в своем собственном диапазоне. Фактически нужна только одна такая операция RPT; она неизбежно встречается в конце
II. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 259 своего диапазона, и ее требуется дополнительно повторять только 0 или 1 раз. Нужно упомянуть, что мы переступили границы, установлен- установленные ранее для операции RPT, потому что, вообще говоря, та- такую команду не может выполнять машина с конечным числом состояний. Это связано с тем, что программная машина должна каким-либо способом подсчитывать число операций RPT, кото- которые осталось выполнить, что может исчерпать любую данную емкость памяти конечной машины. Для реализации операций RPT требуются бесконечные регистры, так что эти операции должны рассматриваться отлично от операций других видов, которые мы вводили. Благодаря жестким ограничениям в рас- рассмотренном выше примере можно обойтись конечным реги- регистром, сопоставленным каждой из операций RPT. Но если и разрешается быть больше 1 в самом диапазоне операции RPT, то в общем случае этого сделать не удастся. Задача 11.7.1. Многие другие наборы операций типов [о], Q], Q, [q] g, |=^r| и |RPT| образуют универсальные базисы. Найдите некоторые из этих базисов. Какие комбинации из трех операций не образуют универсальный базис? Предложите некоторые другие операции, которые вместе с некоторыми из выше рассмотренных образуют универсальные базисы. Задача 11.7.2. Рекурсивно определенные функции могуг расти очень быстро. Рассмотрим последовательность функций Р0(а), Pi(a),... , определен- определенных программами, составленными из операций «повторение» и «следование»: P»W " а> Р,{а) Рш(я) - FPT а Т /и и т.д. Покажите, что P0(a) = a + 1, Pt(a) = 2a, P2(a) = a-2°. Можете ли вы вы- выразить Рз{а) в явном виде? Сначала убедитесь, например, в том, что Что больше: Л E) или Я5D)? Задача 11.7.3. Функция F(n), определенная следующим образом: F(n)=>PnB), является обще-рекурсивной. Она не является примитивно-рекурсивной. Это можно продемонстриро- продемонстрировать, показав, что она растет быстрее, чем любая примитивно-рекурсивная функция. Можете ли вы показать это, используя соображения относительно программных машин, программы для которых составлены из операции |Ш
260 ЧАСТЬ II. БЕСКОНЕЧНЫЕ МАШИНЫ Q] и |RPT|i* Рассмотрите программу для любой фиксированной примитивно- рекурсивной функции н докажите, что при п, превышающем длину программы. F(n) должна в некотором смысле расти быстрее, чем эта программа. Полное и точное доказательство может оказаться трудным, ио стоит попытаться выработать хотя бы общее представление о способе доказательства. F{n) действительно растет быстро; вся Вселенная не могла бы вместить в себя ми- микрофильм, на котором записано десятичное выражение для FE\. Действи- Действительно, в то время как FD) содержит около десятичных знаков, FE) содержит около десятичных знаков! Задача 11.7.4. Попытайтесь написать программы, в которых операции IRPTI заменены ранее введенными типами операций. Проанализируйте трудности. Задача 11.7.5. Установите связь между функцией F(n) и функцией А(х) в задаче 10.5.1. 11.8. ОБЗОР ДОКАЗАТЕЛЬСТВ ЭКВИВАЛЕНТНОСТИ РАЗЛИЧНЫХ КОНЦЕПЦИЙ ВЫЧИСЛИМОСТИ Возможно, читатель потерял нить изложения. Какие факты мы уже установили? Рассмотрим рис. 11.8.1. В разд. 10.4 мы Вычислимость на машинах с тремя единицами \ Раза. ПЛ Вычислимость таг - системами Пасти Вычислимость обще-рекурсивных Функций Раза. 11.2 11 Разд. 11.5 Вычислимость на машинах с двумя регистрами Разд. -14.1 1 Вычислимость на программны х машинах Рис. 11.8.1. Ход доказательств эквивалентности различных концепций вычи- вычислимости.
II. МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫМ МАШИНАМ 261 показали, что любое вычисление на машине Тьюринга может быть описано общерекурсивной функцией, а в разд. 11.5 — что любая общерекурсивная функция может быть вычислена на программной машине. В разд. 11.2 непосредственно показано, что вычисления, реализуемые машинами Тьюринга, могут быть выполнены и программными машинами. В гл. 14 мы замкнем цепь доказательств, что и показано на этом рисунке. Это будет означать, что все обсуждавшиеся в книге понятия вычислимости эквивалентны — идентичны в теоретическом плане, несмотря на очевидные различия в их проявлении.
Часть III СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМЗОЛАМИ, И ВЫЧИСЛИМОСТЬ 12 СИСТЕМА ПОСТА 12.0. ВВЕДЕНИЕ В гл. 5 мы исследовали понятие эффективной процедуры и идентифицировали его с понятием следования предписаниям. Мы пришли к выводу о том, что эффективная процедура опре- определяется как система, включающая в себя: 1) язык для описания правил поведения, 2) машину, которая выполняет предписания, составленные на этом языке. До сих пор основное внимание уделялось машинной части таких систем — рассматривались машины Тьюринга, программ- программные машины и другие устройства, выполняющие предписания. Теперь обратим внимание на язык, на котором могут быть выра- выражены предписания. Наш подход будет основываться на идее Эмиля Поста [75] о том, что «выражения» или «высказывания» логической системы или языка, чем бы они ни казались, в ко- конечном счете представляют собой не что иное, как цепочки сим- символов из некоторого конечного алфавита. Даже самая мощная математическая или логистическая система по существу есть просто набор правил, устанавливающих, каким образом некото- некоторые последовательности символов могут быть преобразованы в другие последовательности символов. Такой подход сам по себе кажется очевидным и бесполезным трюизмом. Однако так же как Тьюринг сумел показать эквива- эквивалентность чрезвычайно общего представления о вычислительной машине и очень четко сформулированного понятия машины Тьюринга, так и Пост сумел свести весьма общее представление о системе преобразований последовательностей к семейству уди- удивительно конкретных и простых операций над символами. Мы можем кратко охарактеризовать подход Поста, перефразировав нашу формулировку основного положения Тьюринга (разд. 5.2):
12. СИСТЕМА ПОСТА 263 Любая система, оперирующая символами, которую есте- естественным образом можно было бы назвать формальной или логистической (или математической) системой, может быть реализована в виде одной из «канонических систем» Поста. Когда мы увидим, сколь просты канонические системы, то та- такое положение может показаться невероятным, но оно подтвер- подтверждается содержанием этой и следующих глав, где показана эквивалентность канонических систем и других видов эффектив- эффективной вычислимости. При изучении систем Поста мы будем иметь дело с прави- правилами, называемыми «правилами вывода», которые устанавли- устанавливают, каким образом можно получать новые последовательности символов из старых. Правила вывода существенно отличаются от правил функционирования автоматов или эффективных про- процессов, так как они не являются предписаниями, а лишь уста- устанавливают возможности. Иначе говоря, правила вывода указы- указывают, как из одного утверждения, последовательности символов или «высказывания» некоторого заданного вида можно вывести другую последовательность заданного вида. Каноническая система, представляющая собой множество таких правил вывода и некоторых изначально установленных положений, вовсе не описывает процесса. Она лишь определяет объем множества последовательностей путем (рекурсивного) описания того, как находить последовательности из этого мно- множества. Большой интерес представляет то, насколько далеко мы можем продвинуться в наших исследованиях, вообще не ну- нуждаясь в понятии машины (автомата) или процедуры. Хотя в конце концов мы покажем, что понятие автомата или процесса может быть выведено (при некоторых специальных ограниче- ограничениях) из понятия канонической системы, на основе более общего понятия множества можно получить некоторые важные резуль- результаты, которые было бы труднее получить в рамках теории авто- автоматов. 12.0,1. План части III В этой главе мы разовьем идею канонической системы глав- главным образом с помощью примеров. Содержание этой главы, как мы уже сказали, ориентировано в основном на исследование того, что происходит с символами в процессе вычислений, но понятие автомата отчетливо не формулируется. Однако путем использования некоторых приемов мы переходим к тому, что для начала представляет собой не что иное, как «правила грам- грамматики» для описания поведения автоматов. И рядом рассужде-
264 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ ний, которые заключают содержание нескольких глав (гл. 10— 14), мы наконец замыкаем круг и показываем, что все наши формулировки эффективности эквивалентны между собой. В гл. 13 доказываются замечательные теоремы Поста об экви- эквивалентности общего понятия канонических систем с их очень простой «нормальной формой». В гл. 14 увязываются концы с концами и показывается экви- эквивалентность систем Поста и машин Тьюринга. В качестве побоч- побочных результатов получаем простое доказательство неразреши- неразрешимости знаменитой «проблемы соответствия» Поста, а также таб- таблицу переходов, описывающую самую маленькую (но не самую простую) универсальную машину Тьюринга из числа известных. 12 1. АКСИОМАТИЧЕСКИЕ СИСТЕМЫ И ЛОГИСТИЧЕСКИЙ МЕТОД Аксиоматический метод известен нам всем по изучению гео- геометрии Евклида. При использовании аксиоматического метода мы начинаем с набора аксиом — утверждений, которые хотим принять либо потому, что полагаем их истинными, либо просто потому, что хотим их изучить. Наряду с аксиомами определяем некоторые «правила вывода», которые точно устанавливают, ка- каким образом можно получить новые утверждения, называемые «теоремами», из аксиом и (или) из ранее установленных теорем. В действительности Евклид уделял больше внимания проб- проблеме формулирования аксиом, чем проблеме четкого выясне- выяснения того, каковы были правила вывода в его геометрии. До два- двадцатого века логическая структура евклидовой геометрии (как и других аксиоматических систем в математике) была чем-то уди- удивительным, так как 1) правила вывода были неформальными и зависели от здра- здравого смысла1) и 2) несколько произвольная или гипотетическая природа са- самих аксиом не была ясна до открытия неевклидовых геометрий в конце девятнадцатого столетия. До открытия неевклидовых геометрий всегда казалось, что есть возможность вывести некоторые аксиомы из каких-нибудь ') «Постулаты» Евклида были тем, что мы теперь называем аксиомами; некоторые из его «аксиом» мы могли бы считать правилами вывода. Таким образом, аксиомы Евклида, относящиеся к взаимозаменяемости одинаковых вещей, можно рассматривать как правила вывода, касающиеся допустимых подстановок в выражениях. Разумеется, Евклид видел, что положения, отно- относящиеся к одинаковым предметам, являются более общими, чем положения, касающиеся специфически геометрического содержания, и старался отделить нх от постулатов.
12. СИСТЕМА ПОСТА 265 более абсолютных положений, так что трудно было думать о геометрии как о замкнутой логической системе. В течение последних ста лет началось более интенсивное изучение оснований математики. Было обнаружено, что сообра- соображения, основанные на «здравом смысле», — обычная логическая «интуиция» — не всегда являются надежным средством для ис- исследования более тонких деталей оснований математики. Изуче- Изучение понятия бесконечности Кантором и другими привело к ре- результатам, которые были непротиворечивыми, однако весьма удивительными и не соответствовали интуиции. Ряд других, ка- казалось бы, естественных и безобидных понятий привел к поис- поистине парадоксальным результатам — оказалось, что при обосно- обоснованных предположениях можно рассматривать отношения межцу классами предметов в терминах описаний классов, основанных на здравом смысле (гл. 9). Понятие эффективной процедуры в неформальном виде было давно известно в математике, но возможность эффективной неразрешимости, которая играет столь большую роль в предыдущих главах, является в математике новым: когда в 30-х годах этого века Гёдель сообщил о своих результатах, то о возможности их получения догадывались лишь немногие мыслители1). Стало необходимым более тщательно исследовать понятие математического доказательства для того, чтобы формализовать все ступени дедуктивного вывода, — еще более тщательно, чем это было необходимо в 900-х годах после открытия парадокса Рассела. Возникшие в результате теории о природе самого «доказательства» становились все более и бо- более формальными и превратились по существу в новый раздел математики. Поскольку это есть математическая теория самой математики, то мы называем это направление «метаматемати- «метаматематикой» 2). 12.2. ЭФФЕКТИВНАЯ ВЫЧИСЛИМОСТЬ КАК ПРЕДПОСЫЛКА ДЛЯ ДОКАЗАТЕЛЬСТВА Прежде чем перейти к деталям, мы должны уяснить себе, каким образом это явное отклонение от темы снова приведет нас к теории автоматов и эффективных процессов. Главное здесь состоит в следующем: мы должны быть уверены в том, что ') К числу которых относится в особенности Пост. См. его автобиогра- автобиографические заметки в книге Девиса [15]. 2) Имеется несколько разделов метаматематики, одним из которых яв- является теория доказательств. Другие касаются теории множеств, теории опи- описаний, отношений между различными формальными системами и свойств их разрешимости, независимости и непротиворечивости аксиоматических систем, моделей и т. д.
266 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ принимаемая логическая система действительно включает «все, что надо», что методы вывода теорем не содержат сомнительных, «интуитивных» шагов. В соответствии с этим нам нужна эффек- эффективная процедура для определения того, действительно ли ис- используемое доказательство полностью построено из дедуктивных шагов, допускаемых в рассматриваемой логической системе. Да- Далее, «теоремы» могут быть получены лишь путем применения правил вывода к ранее полученным теоремам и аксиомам. Тогда мы должны потребовать, чтобы существовал эффективный спо- способ проверки того, что используемая цепочка заключений пол- полностью основана на правильном применении правил вывода. Для того чтобы сделать это более точно, мы примем следующие определения. Логистическая система L есть множество аксиом и множе- множество правил вывода. Алфавитом называется конечное множество символов. Словом называется любая последовательность символов. В дальнейшем предполагается, что все слова есть последова- последовательности символов, взятых из некоторого фиксированного ал- алфавита А = (аи а2, ..., пг). Множество аксиом есть некоторое заранее заданное множе- множество конечных слов. Мы будем рассматривать здесь лишь си- системы с конечными множествами аксиом. Правило вывода есть эффективно вычислимая функция R(s; si, ..., sn) от и + 1 слов. Функция R может принимать лишь два значения: 1 («истинно») и 0 («ложно»). Если R(s; Si, ..., sn) = 1, то мы говорим, что слово s непосредственно вы- выводится из слов Si, .... sn по правилу R. Иначе это можно за- записать так: Будем рассматривать лишь конечные множества правил вы- вывода. Часто мы будем просто говорить, что «s непосредственно выводимо из Si, ..., sn» (без упоминания R), если имеется пра- правило R, подтверждающее это. Поскольку всякая ^-проверка эф- эффективна, то эффективна и проверка, позволяющая установить, подтверждается ли то, что нам требуется, каким-либо R, по- поскольку множество правил R конечно. Доказательством в L слова s называется конечная последо- последовательность слов такая, что
12. СИСТЕМА ПОСТА 267 1) всякое слово Sj из этой последовательности либо есть аксиома в L, либо же непосредственно выводится из неко- некоторого множества слов, каждое из которых предшествует s,- в последовательности; 2) s есть sk, т. е. последнее слово в последовательности. Теорема в L есть любое слово, для которого имеется доказа- доказательство в L (читателю предлагается показать, что всякая ак- аксиома в L есть теорема в L). Мы стремились определить «доказательство» таким образом, чтобы существовал эффективный способ проверки, является ли предлагаемое доказательство «законным» в рамках данной си- системы. Наши определения отвечают этому требованию. Для того чтобы убедиться в этом, рассмотрим некоторое предполагаемое доказательство sit ..., sk слова s. Прежде всего проверим, яв- является ли s словом sK. (Если нет, то это не доказательство слова х в L.) Далее проверяем, является ли sK аксиомой. Эта проверка эффективна, поскольку нужно просматривать лишь ко- конечный набор аксиом, и при этом каждая аксиома есть конеч- конечная последовательность символов. Если sK есть s, но не аксиома, то мы должны проверить, не выводится ли Sk непосредственно из некоторого подмножества предшествующих слов Sj. Имеется лишь конечное число таких подмножеств. Для каждого из них нужно проверить конечное число правил R. Проверка каждого правила по определению эффективна. Если Sk удовлетворяет указанному требованию, то переходим к Sk-i и проделываем с ним то же самое, что и со словом sk (но при этом не требуется, чтобы s было Sk-i). Ясно, что конечное число (а именно К) итераций этого процесса при- приведет либо к принятию, либо к непринятию (отбрасыванию) до- доказательства. Ясно, что вся процедура проверки эффективна, поскольку она состоит из конечного набора конечных процедур. ЗАМЕЧАНИЕ Наше определение логистической системы имеет ряд ограни- ограничений. Мы могли бы рассматривать бесконечное множество ак- аксиом, если бы потребовали существования эффективного способа проверки, показывающей, является ли произвольное слово ак- аксиомой. Тогда понятие доказательства по-прежнему осталось бы эффективным. Это часто делается в логике, где допускается использование «аксиоматической схемы» — правила, которое устанавливает, что «любое слово такого-то вида есть аксиома». Можно было бы допустить и существование бесконечного мно- множества правил вывода. (И в этом случае можно было бы
268 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ получить эффективный способ проверки доказательств, если бы существовал эффективный способ определения, показывающего, имеется ли для каждого шага соответствующее правило вывода.) Но для наших целей вполне подходят системы с конечным бази- базисом. Вскоре мы покажем, что любая система с конечным бази- базисом без существенной потери общности может быть сведена к системе с одной лишь аксиомой и правилом вывода такого вида, что она в каждый момент времени работает в точности с одной предыдущей теоремой, С этой точки зрения мы получим эквивалент пошагового процесса для автоматов. 12.3. ПРОЦЕДУРЫ НАХОЖДЕНИЯ ДОКАЗАТЕЛЬСТВА Описанный выше процесс проверки доказательств является эффективным; если дано предполагаемое доказательство, то имеется вполне методичная однозначная процедура проверки, показывающая, является ли это доказательство правильным. Рассмотрим теперь несколько иной вопрос: дана предполагае- предполагаемая теорема, можем ли мы решить, действительно ли она яв- является теоремой, т. е. существует ли в рассматриваемой системе доказательство этой теоремы. Ответ состоит в том, что, хотя и су- существуют логистические системы, в которых имеются процедуры такой проверки, в общем случае таких процедур не имеется. В любой логистической системе всегда можно построить про- процедуру, которая будет просматривать все возможные доказа- доказательства, так что если рассматриваемая теорема есть в действи- действительности теорема, то этот факт будет обнаружен. Но в общем случае, если предполагаемая теорема на самом деле таковой не является, то нет способа это обнаружить. Для того чтобы тщательно разобраться в этом, посмотрим, каким образом можно эффективно генерировать все доказатель- доказательства, а следовательно, и автоматически все теоремы. Чтобы сде- сделать это, можно использовать процедуру, которая генерирует все последовательности слов, рассматривает их как предпола- предполагаемые доказательства и исследует каждое из предполагаемых доказательств с помощью процедуры проверки доказательств, описанной выше. Как генерировать все последовательности слов? Начинают с процедуры, генерирующей отдельно все слова. Как это сделать? Сначала генерируют все однобуквенные (односим- (односимвольные) слова, т. е. просматривают весь алфавит. Затем гене- генерируют все двухбуквенные слова. Для этого берут каждое слово, сформированное на предыдущем шаге (т. е. однобуквенные сло- слова), и приставляют к каждому по очереди каждую букву из ал- алфавита. Затем мы можем генерировать все трехбуквенные слова,
12. СИСТЕМА ПОСТА 269 беря каждое из двухбуквенных слов и приставляя к нему по оче- очереди каждую букву из алфавита. Ясно, что в конце концов та- таким способом можно получить любое конечное слово. Задача 12.3.1. Построить машину Тьюринга, которая записывает на своей ленте все конечные слова в трехбуквенном алфавите (а,Ь,с), отделяя их друг от друга специальным знаком пунктуации X. Машина должна отвечать тому ограничению (разд. 9.2), что она никогда не движется влево от X, так что можно отличить слова, уже сформированные машиной, от тех, над которыми она еще работает. Задача 12.3.2. Прежде чем читать дальше, постройте машину Тьюринга, которая перечисляет все конечные последовательности конечных слов в ал- алфавите (а,Ь,с). Теперь, для того чтобы получить все конечные последователь- последовательности конечных слов, можно модифицировать описанную выше процедуру генерирования всех слов. После каждого шага этой процедуры получают новое «-буквенное слово. Разделим теперь слово S на две части всеми способами. (Существует п—1 спо- способов выполнить это.) Если мы будем делать это после каждого акта генерирования слова с помощью основной процедуры, то мы получим все последовательности пар слов. Мы делаем это так, чтобы каждая пара слов генерировалась в точности одним и тем же способом. Так что мы получаем все возможные предпола- предполагаемые доказательства длины два. (Исходная процедура даст нам все доказательства длины один').) А теперь предположим, что, после того как генерирована каждая пара слов, мы разде- разделим каждое первое слово пары на две части всеми возможными способами. (Число возможных способов разбиения является пере- переменной величиной, зависящей от того, как было разбито исход- исходное слово.) Это дает нам (проверьте!) все возможные последо- последовательности из трех слов. Предположим далее, что каждый раз, когда слово разбивается на две части, затем последовательно производятся все возможные разбиения первой части еще на две части. Ясно, что для каждого первоначально генерированного слова этот процесс будет хотя и длинным и нудным, но конеч- конечным. В действительности для исходного слова длиной п суще- существует в точности 2п~1 последовательностей слов, которые мо- могут быть из него получены Задача 12.3.3. Доказать, что каждое слово длиной п может быть раз- разбито иа последовательности слов в точности 2n-I способами. Указание: имеется тривиальное доказательство. !) Очевидно, что доказательство длины один может либо быть аксиомой, либо вообще не быть теоремой (множество теорем данной системы вклю- включает в себя множество аксном). —Прим. перев.
270 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Итак, мы построили наконец эффективный процесс, который генерирует все конечные последовательности слов в данном алфавите. Помимо нашей, имеется много других таких процедур, однако наша обладает тем преимуществом (правда, не слиш- слишком важным), что каждая последовательность генерируется в точности один раз. Порядок генерирования последовательностей может быть использован для гёделевской нумерации (разд. 14.3) предполагаемых доказательств. В любом случае, после того как каждая последовательность получена, можно применить наш эффективный способ проверки того, является ли эта последова- последовательность доказательством некоторых заранее заданных канди- кандидатов в теоремы. Если слово в действительности есть теорема, то процесс за некоторое конечное время приведет к получению ее доказательства. Но если слово не есть теорема, то процесс никогда не закончится. Следовательно, у нас есть процедура получения доказательств теорем, но нет процедуры решения, т. е. процедуры, проверяющей «теоремность» слов. В дальней- дальнейшем мы увидим, что отыскание такой процедуры в общем случае невозможно. ЗАМЕЧАНИЕ В действительности в некоторых разделах математики такого рода процедуры существуют. Например, как показал Тарский [97], такой процедурой обладает построенная соответствующим образом евклидова геометрия. Имеет решающую процедуру и исчисление высказываний, т.е. логика вывода для простых вы- высказываний или для булевой алгебры. Действительно, хорошо известный метод «таблиц истинности» может быть легко превра- превращен в решающую процедуру. Но «элементарная логика» — логи- логика высказываний с кванторами, т.е. определяющими предложе- предложениями типа «для всех х...» или «существует такой х, что...», и символами для функций или отношений — в общем случае не- неразрешима. Случаи разрешимых систем изучены в работе Аккер- мана [1]; в работе Кара, Мура и Хао Вана [36] приводятся не- некоторые наиболее важные современные результаты по неразре- неразрешимым системам. Читатель, который прочтет лишь эту книгу, не будет вполне подготовлен к изучению этих статей. Поэтому сначала, по-видимому, целесообразно прочесть учебник Роджер- Роджерса [86]. Разумеется, если даже показано, что решающая про- процедура существует, и приведено, как это, например, проделано в случае решающей процедуры Тарского для евклидовой геоме- геометрии, то это не обязательно означает, что имеется практический способ доказательства теорем. В случаях, которые представляют
12. СИСТЕМА ПОСТА , 271 практический интерес, методы, полученные путем логического анализа проблемы разрешимости, требуют для получения ре- зультатов слишком большого объема вычислений. 12.4. ПРОДУКЦИИ ПОСТА. КАНОНИЧЕСКИЕ ФОРМЫ ПРАВИЛ ВЫВОДА В разд. 12.2 было определено правило вывода как эффектив- эффективный способ проверки того, может ли слово s быть выведенным из слов si, ..., sn- Мы поставили условие, чтобы проверка была эффективной, так что мы могли бы потребовать, чтобы и про- проверка доказательств также была эффективной. Но в действи- действительности мы не ввели достаточно строгих ограничений, посколь- поскольку можно также сделать правило вывода зависящим (некоторым эффективным способом) от смысла слов. Иначе говоря, можно иметь некоторое правило вывода, зависящее от определенной интерпретации слов, как некоторых утверждений по поводу ве- вещей, относительно которых существуют ясные представления. Слова могут быть, например, фразами на русском языке. (Например, слова «регулярные выражения» в гл. 4 использо- использовались для представления «регулярные множества», и в на- наших доказательствах, относящихся к регулярным выраже- выражениям, мы опирались на смысловое значение этого словосоче- словосочетания.) Чтобы избежать такого рода скользких вопросов, мы огра- ограничимся рассмотрением правил вывода, связанных лишь с рас- расположением символов в словах, т. е. с видимой формой слов, и полностью исключим ссылки на смысл. Это заставляет нас об- обратить внимание на то, что часто называется областью «синтак- «синтаксиса»,— на вопросы о том, как располагаются и как анализи- анализируются выражения, — а не на область «семантики» — вопросы, относящиеся к смыслу выражений. Чтобы убедиться в том, что это действительно можно сде- сделать, мы перефразируем доводы Тьюринга (изложенные в гл. 5) применительно к случаю, когда воображаемый «конечный мате- математик» должен иметь дело с символическими математическими выражениями. В любой момент времени наш математик должен работать лишь со словами, содержащими конечное число символов из ко- конечного алфавита, используя конечный набор аксиом и конечный набор правил вывода. Представим себе, что он проверяет спра- справедливость предполагаемого доказательства предполагаемой теоремы. Тогда на каждом шаге он будет сталкиваться с неко- некоторым утверждением, т. е. словом ., ain,
272 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ' а также с последовательностью утверждений, доказательства которых он уже проверил: .. alttl, S2 — а21а22 • • • а2л2> sr = arlar2 ... аГПг, где а, есть число букв в /-м слове. Он должен использовать одно из правил вывода и может попытаться, например, систематиче- систематически применять каждое правило к последнему подмножеству уже проверенных слов. Теперь, перефразируя доводы Тьюринга, мы предположим, что математик обладает ограниченным набором способностей: 1) может просматривать слово и выделять в нем некоторые фиксированные подпоследовательности символов1); 2) может извлекать эти последовательности из слова, сохра- сохраняя при этом и оставшиеся части; 3) может перестраивать части слов, вставляя некоторые фик- фиксированные слова в различные места и исключая какие-либо части слов. Мы увидим, что эти способности составляют все, что необхо- необходимо для проверки доказательств или выполнения любых других эффективных процедур. Правило, точно устанавливающее, как расчленять слово и перестраивать его части (возможно, удаляя при этом некоторые части и вставляя другие), называется «продукцией». Вместо точ- точного определения мы начнем с нескольких примеров простых, но полных систем, основанных на продукциях. Тогда при фор- формальном определении будет совершенно ясно, что имеется в виду и почему определение дается именно таким образом. ПРИМЕР 1. ЧЕТНЫЕ ЧИСЛА Алфавит: единственный символ 1 Аксиома: слово 1 1 Продукция', если какое-либо слово $ есть теорема, то теоремой является и слово $11. Удобно записывать это правило вывода в виде $->$ 1 I. ') В дальнейшем (в гл. 13 и 14) мы увидим, что все, что в действитель- действительности для этого необходимо, это способность распознавать один-единственный символ — первый в слове. Это соответствует результату Тьюринга относи- относительно того, что машине Тьюринга достаточно просматривать в каждый мо- момент одну ячейку на своей ленте.
12. СИСТЕМА ПОСТА 273 Очевидно, что теоремами этой системы будут являться толь- только слова II, 1111, 111111, 11111111 и т. д. т.е. четные числа, записанные в системе счисления с основа- основанием 1. ПРИМЕР 2. НЕЧЕТНЫЕ ЧИСЛА Алфавит: 1 Аксиома: 1 Продукция: $->$ I I ПРИМЕР 3. ПАЛИНДРОМЫ Алфавит: а, Ь, с Аксиомы: а, Ь, с, аа, ЬЬ, ее Продукции: $->-а $ а $^Ь $ Ъ $-»с % с Палиндромы — это слова, которые читаются одинаково з обоих направлениях, например саЪас или аЬсЪЪсЬа. Ясно, что если мы имеем слово $, которое уже является палиндромом, то оно останется таковым, если мы добавим одну и ту же букву к его началу и к концу. Ясно также, что, достраивая таким об- образом слова с двух сторон, мы можем получить одни палин- палиндромы. Задача 12.4.1. Доказать, что такой способ дает все палиндромы. (Оче- (Очевидно, что он не даст никаких других слов.) Задача 12.4.2. Этот пример, хотя и вполне тривиальный, интересен тем, что дает множество слов, которые не распознаются (в смысле гл. 4) конеч- конечным автоматом. Доказать это. Показать, что если мы устраним последние три аксиомы, но добавим продукцию ф ~*~ ф ф, то получим то же самое множество теорем. ПРИМЕР 4. ПРОСТЫЕ АРИФМЕТИЧЕСКИЕ РАВЕНСТВА Предположим, что мы хотим построить систему, теоремы которой представляют собой все справедливые утверждения от- относительно сложения положительных целых чисел, т. е. все утверждения типа 3 + 5 = 8, 21+35 = 56 и т. п.
274 ЧАСТЬ III, СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Для простоты мы будем использовать единичную (унарную) систему счисления, так что теоремы будут выглядеть как 1 I 1 + 1 I 1 I 1 = 1 I 1 1 I I 1 I Алфавит: 1, +, = Аксиомы: 1 + 1 = 1 I Продукции: $, + $2 = $3-* &1 + $2 - $э1 (»i) Таким образом, первая продукция означает: если имеется тео- теорема, которая состоит из некоторого слова $ь за которым идет « + », затем — другое слово $2, затем идет « = » и наконец — дру- другое слово $з, то мы можем построить новую теорему, которая состоит из первой части $!7 затем 1, затем « + », затем $2, затем « = », затем $3 и наконец еще одной 1. Для того чтобы уяснить себе, как все это работает, построим теорему, которая означает «2 + 3 = 5» I 1 1 1 1 + 1 1 + 1 + + 1 1 1 = 1 1 = 1 1 = 1 1 = 1 1 1 1 1 Другое доказательство этой 1 1 1 1 + + 1 + 1 1 + 1 1 1 1 = 1 1 = 1 1 = 1 1 = 1 1 1 1 1 1 1 1 же 1 1 1 1 1 1 теоремы: 1 1 1 аксиома согласно согласно согласно аксиома согласно согласно согласно я, щ Яд я2 я, В такой системе может быть много различных доказательств одной и той же теоремы. Задача 12.4.3. Заменить я2 на $i +$2-$з ->$2 + $i »$з и доказать туже теорему в новой системе. Почти то же самое можно сделать для умножения: Алфавит: 1, X, = Аксиома: 1X1 = 1 Продукции: $, X $2 - $3 -> $,1 X $2 -= $з$2 $\у (р _^ (р ^ (р чу (р ^_ ф 1 X 3J *¦ фЗ -> ф2 X 3I ¦" фЗ Доказать в этой системе, что 3 X 4 = 12. Задача 12.4.4. Построить систему, теоремы которой представляют собой арифметические утверждения как относительно сложения, так и относительно умножения. Пока это, может быть, еще трудно, но станет проще после сле- следующих примеров.
12. СИСТЕМА ПОСТА 275 ПРИМЕР 5. ПРАВИЛЬНО СФОРМИРОВАННЫЕ СЛОВА ИЗ СКОБОК В разд. 4.2.2 мы определили множество правильно сформи- сформированных слов из скобок типа О, (О), (()()). (())(). ((()())((()))). в которых каждой левой скобке должна соответствовать своя правая скобка. Мы можем получить все слова, как теоремы системы, и притом только такие, для которых Алфавит: ( , ) Аксиома: ( ) Продукции: $-*¦($) (щ) $ —*¦ $ $ $1 ( ) $2"~*"$1 $2 Например, выведем слово (()(())): ( ) аксиома (( )) согласно я, (( ))(( )) согласно я2 ((( ))(( ))) согласно я, (( )(( ))) согласно л3 Задача 12.4.5. Доказать в этой системе (()()((() ()))). Задача 12.4.6. Рассмотрим систему с теми же алфавитом н аксиомой и единственной продукцией: ф1ф2 -> ф1 I ) Ф2- Доказать, что система генерирует все правильно сформированные слова из скобок и только такие слова. Примечание: под $ может подразумеваться и пустое или «нулевое» слово, так что в этой системе допускается, например, () -*¦ ()(). 12.5. ОПРЕДЕЛЕНИЯ ПРОДУКЦИИ И КАНОНИЧЕСКОЙ СИСТЕМЫ Определим теперь «продукцию» более точно. В каждом из примеров разд. 12.4 каждая из продукций может быть пред- представлена как частный случай общей формы: ПОСЫЛКА СЛЕДСТВИЕ (п) где:
276 ЧАСТЬ Ш. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ каждое gt и h{ есть некоторые фиксированные слова, g0 и gn часто есть пустые слова, некоторые из ht также могут быть пустыми; каждое $г- есть «произвольное» или «переменное» слово, ко- которое может быть и пустым; каждое из $г представляет собой некоторое определенное СЛОВО ИЗ СЛОВ $j. Возьмем, например, продукцию Ф] X <t>2 = Фз —*¦ $1' X Фг = Ф3Ф2 из примера 4 разд. 12.4. Мы можем представить ее в указанной выше общей форме, приняв обозначения: ^0 = пустое слово, ^3 = пУстое слово, /i2 = << = >>. gi = «X», h0 = пустое слово, h3 — пустое слово, g2 = « = », hx = «1 X », hi = пустое слово и $г о о/ о 1 — Ф] > Ф2 — Ф2> $/ о С С з — h> \ ~ Ф2- Заметим, что два (или более) $* могут быть одним и тем же словом, как это имеет место в приведенном примере, где $4 = $2 = $2. Графически это можно изобразить как ПОСЫЛКА СЛЕДСТВИЕ ф] X Ф2 = Фз —* ф] I X Фг = Фз $2 I I I I I I I I I I I ?о $1 Si К S2 % 83-*ho $1 h\ §2 К К К % К ЗАМЕЧАНИЯ Самая общая формулировка Поста допускает возможность того, что каждая продукция имеет несколько посылок. Этот во- вопрос рассматривается в разд. 13.2, и мы предпочитаем не вво- вводить здесь это усложнение. В разд. 13.2 мы покажем, что такая более общая форма в некотором смысле эквивалентна форме с одной посылкой, рассматриваемой здесь. В своей наиболее общей формулировке Пост, кроме того, допускал возможность, что два из $4 в посылке одинаковы. Это означает, что правило вывода применяется к слову (тео- (теореме), в котором имеется точное повторение некоторых (пере- (переменных) подслов в двух местах посылки. Мы предпочитаем запретить посылки такого вида не потому, что стремимся огра-
12. СИСТЕМА ПОСТА 277 ничить общность системы, а потому, что это не согласовывалось бы с нашими интуитивными представлениями о том, что должно рассматриваться как элементарное (единичное) действие. Рас- Распознавание идентичности двух произвольно длинных слов осу- осуществляется итеративным процессом, иначе это противоречит положению Тьюринга (разд. 5.3) о том, что может быть сделано «сразу» и что требует многошагового процесса [1*]. ОПРЕДЕЛЕНИЯ Продукция — это правило преобразования слов, записывае- записываемое в общем случае в виде л (или в еще более общем случае в виде (я), приведенном в разд. 13.2). Каноническая система есть логистическая система, опреде- определяемая 1) алфавитом А, 2) набором аксиом (слов в Л), 3) набором продукций, постоянные слова которых есть сло- слова в Л. 12.6. КАНОНИЧЕСКИЕ СИСТЕМЫ ДЛЯ ПРЕДСТАВЛЕНИЯ МАШИНЫ ТЬЮРИНГА Теперь мы можем показать, каким образом формальную систему, состоящую лишь из аксиом и продукций, можно пред- представить как модель процесса. На первый взгляд формальная система представляется разрешающей, а не предписывающей. Кажется, что здесь нет ничего такого, что соответствовало бы управлению процессом в автомате, ничего подобного устройству, которое предписывает, что должно быть сделано в следующий момент. Здесь нет даже понятия времени или последовательно- последовательности, если не считать разве что последовательности шагов в до- доказательстве теоремы. Поскольку в общем случае имеется много различных доказательств одной и той же теоремы, то, каза- казалось бы, нельзя и ожидать, что мы сможем использовать после- последовательность шагов в доказательстве как механизм управле- управления процессом. Однако это можно сделать. Применяя некоторые приемы — главным образом используя различными способами специальные символы пунктуации, — мы все-таки можем ввести понятие автомата в описание формальной системы, состоящей лишь из аксиом и продукций. Мы покажем это, построив фор- формальную систему, которая весьма непосредственным образом «моделирует» действия машины Тьюринга.
278 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ ПРИМЕР 6. ПРОДУКЦИИ ДЛЯ ИЗМЕНЕНИЯ ОБОБЩЕННЫХ СОСТОЯНИЙ МАШИНЫ ТЬЮРИНГА Пусть (si, s2, ..., sr) есть алфавит и (qu Яъ ..., qn) — со- состояния некоторой машины Тьюринга Т. В любой момент t лен- лента машины Т будет содержать некоторую конечную последова- последовательность символов где nt есть длина заполненной части ленты в момент t. Чтобы определить обобщенное состояние машины Тьюринга в момент Л нужно установить: 1) текущее внутреннее состояние машины и 2) против какой ячейки ленты находится машина. Можно объединить все эти данные в одном слове, представляющем со- содержание ленты, поместив символ состояния машины в соответ- соответствующем месте этого слова. Например, можно написать Это слово интерпретируется следующим образом: машина на- находится в состоянии qu она просматривает k-ю заполненную ячейку на своей ленте; на ленте записана буквенная последова- последовательность (S); предполагается, что на ленте машины не запи- записано qi. Теперь мы можем представить описание функционирования машины посредством набора продукций Поста. Пусть пятер- пятерка машины имеет вид (йи sh Qih SU> Бхли da есть «вправо», то машина должна двигаться из любого обобщенного состояния, представляемого последовательностью ... skqts, ..., к состоянию, представляемому последовательностью если же йц есть «влево», то машина должна переходить к со- состоянию, представляемому последовательностью При этом можно использовать следующий набор продукций по одному для каждой тройки (/, /, к): («если d{f есть вправо»), («если dij есть влево»)./
12. СИСТЕМА ПОСТА 279 Эти правила не могут работать, когда машина (т. е. символ qt) приходит к концу заполненной части ленты. Но мы можем сделать так, что система будет автоматически расширять об- область представления, добавив произведения $qt-+$qfi (для всех г), q{$->-Oq{$ (для вс^х г). Эти продукции служат для того, чтобы добавлять незапол- незаполненные ячейки, когда машина подходит к концу ленты. Таким образом, мы можем считать, что работу машины Тьюринга все- всегда можно описать конечным словом, если есть возможность удлинения этого слова в случае, когда это потребуется. Сформулируем теперь следующее утверждение. УТВЕРЖДЕНИЕ Если даны указанные выше продукции и дано слово, содер- содержащее один символ qi и представляющее собой аксиому, то теоремы такой канонической системы будут представлять собой последовательность всех других обобщенных состояний машины Тьюринга, если она начала работу в состоянии, соответствую- соответствующем аксиоме. Каждая теорема системы будет иметь единствен- единственное доказательство, и шаги этого доказательства будут в точно- точности совпадать с шагами процесса вычислений. (Операции расширения свободной области ленты мы рассматриваем как шаги процесса функционирования машины Тьюринга.) Доказательство этого положения состоит просто в том, что если слово содержит лишь один символ q, то к нему можно применить лишь одну продукцию (проверьте это!). Вследствие способа реализации пятерок в рассматриваемой системе мы в результате получим слово, которое представляет следующий шаг процесса вычислений машины Тьюринга. Задача 12.6.1. Почему утверждение было бы неверным, если бы s* были слева от первых («правых») продукций? Задача 12.6.2. Построить такую же систему для машины Тьюринга, опи- описанной в разд. 6.1.1 (стр. 152). Задача 12.6.3. Предположим, что некоторая каноническая система Поста имеет единственную продукцию и известно, что она имеет единственную аксиому и что слово ху есть теорема в этой системе. Что можно сказать о неизвестной аксиоме? Опишите более точно класс аксиом, нз которых может быть выведено слово ху при исполь- использовании лишь данной продукции. Докажите ваше утверждение.
280 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ ПРИМЕР 7. КАНОНИЧЕСКАЯ СИСТЕМА ДЛЯ ГЕНЕРИРОВАНИЯ КВАДРА- КВАДРАТОВ ЧИСЕЛ В этом примере мы построим систему, генерирующую после- последовательность квадратов чисел натурального ряда 1, 4, 9, 16, 25, ... (в виде слов в единичной системе: 1, 1111, 111111111, ...). За- Заметив, что (п + IJ = п2 + Bл + 1), т. е. что мы можем получить квадрат следующего числа из квадрата предыдущего добавле- добавлением соответствующего нечетного числа, мы будем использовать систему Алфавит: 1, Р Аксиома: IP Продукция: $,P$2 -^$,11^82$, Это приводит к последовательному генерированию слов 1 Р =1'Р1° 1 1 1 Р 1 =1W 1 1 1 1 1 Р 1 1 1 1 =15Р14 1 1 1 1 1 1 1 Р 1 1 1 1 1 1 1 1 1 =17Р19 1 1 1 1 1 1 1 1 1 Р 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = 19Р116 По существу генерируются квадраты чисел. Символ Р исполь- используется для того, чтобы отделить друг от друга две величины: с левой стороны от Р вычисляется нечетное число, которое будет использоваться для получения следующего квадрата, с правой стороны — сумма нечетных чисел предыдущих ступеней (кото- (которая одновременно является и искомым квадратом). В общем случае можно использовать большее число знаков препинания типа Р, для того чтобы иметь возможность запоминать различ- различные вспомогательные величины в процессе вычислений В сле- следующем примере мы будем хранить, таким образом, сразу три величины. Задача 12.6.4. Проверьте, не сможете лн вы сейчас установить, как мож- можно реализовать работу программной машины, описанной в разд. 11.1, с по- помощью системы продукций, используя по одному знаку препинания дчя каждого регистра машины. Сколько вспомогательных букв нужно в дей- действительности? Решение дано в разд. 12.8. Задача 12.6.5. (Довольно трудная.) Доказать, что не существует системы продукций, теоремы которой были бы квадратами чисел (в единичной си- системе), причем такой, что в ее алфавите используется лишь символ 1, а до- дополнительные знаки препинания отсутствуют.
12. СИСТЕМА ПОСТА 281 12.7. КАНОНИЧЕСКИЕ РАСШИРЕНИЯ. ВСПОМОГАТЕЛЬНЫЕ АЛФАВИТЫ Пример 7 предыдущего раздела имеет один серьезный не- недостаток. Мы хотели получить каноническую систему, теоремы которой есть слова 1, 1111, 111111111 и т. д. В действительности вместо этого мы получили систему, которая в своих теоремах содержит всю требуемую информацию, но не в требуемой фор- форме. Если мы присоединим к имеющимся еще одну продукцию то мы в дополнение к уже полученным теоремам будем иметь теоремы 1, 1 1 1 1, 1 1 1 1 1 1 1 1 1, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 I и т. д. Теперь у нас есть теоремы, которые нам требовались, но у нас есть также и «рабочие результаты» IP, 1 1 1 Р 1, 1 1 1 1 1 Р 1 1 1 1 и т. д. которые нам не требовались. Мы легко можем отличить тре- требуемые теоремы от рабочих результатов, так как последние обязательно содержат символ Р, в то время как в требуемых теоремах он отсутствует. Таким образом, мы можем сказать, что квадраты чисел натурального ряда есть те теоремы кано- канонической системы Алфавит: 1, Р Аксиома: IP Продукции: $1Р$2-»-$1ПР$2$, tJ>lP$2—*• $2 которые являются словами в алфавите, состоящем из одного лишь символа 1. Вспомогательные символы, подобные Р, вообще необходимы в тех случаях, когда канонические системы используются для получения теорем, имеющих теоретический интерес. Введем об- общее определение, относящееся к использованию вспомогатель- вспомогательных букв. Предположим, что мы рассматриваем некоторую систему М, теоремы которой выражены в некотором алфавите А. (М — не обязательно каноническая система.) Пусть М' есть другая си- система, с большим алфавитом А'. В некоторых теоремах из М* могут использоваться лишь буквы из А, в других теоремах ис- используются и дополнительные буквы.
282 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ ОПРЕДЕЛЕНИЕ Если теоремы системы М есть в точности те же теоремы, что и теоремы ЛГ, использующие лишь буквы, из алфавита А, то го- говорят, что М' есть расширение системы М над А. Если М' есть каноническая система Поста, то говорят, что М' есть канониче- каноническое расширение М над А. Система, рассмотренная в примере 7 разд. 12.6, представ- представляет собой каноническое расширение любой системы, теоремы которой есть квадраты чисел натурального ряда. Первая про- продукция «работает» (т. е. используется для получения квадратов чисел), а вторая является чем-то вроде выходного устройства: она преобразует слова, содержащие Р, в слова без Р и выдает результат — квадрат числа, который уже не может быть преоб- преобразован, поскольку не содержит Р. Таким образом, вспомога- вспомогательную букву, принадлежащую расширенному и не принадле- принадлежащую исходному алфавиту, мы используем для установления того, что уже преобразовано, а что нет, и для предохранения уже полученных теорем от вторичного преобразования. В сле- следующем разделе мы рассмотрим более подробный пример та- такого рода. Задача 12.7.1. Построить каноническое расширение Поста для множества повторяющихся слов, например слов, имеющих вид $$. Палиндромы в при- примере 3 разд. 12.4 реализовались без использования вспомогательных букв. Можно ли это сделать здесь? Если нет, то доказать это. Алфавит должен со- содержать две исходные буквы. ПРИМЕР 8. КАНОНИЧЕСКОЕ РАСШИРЕНИЕ ДЛЯ ПРОСТЫХ ЧИСЕЛ Этот пример показывает, как небольшое число продукций может привести к достаточно сложному поведению. Рассмотрим расширение системы простых чисел (в единичной форме) над алфавитом «1». Добавим слово 11 в качестве аксиомы, так как в противном случае система генерирует лишь простые числа, начиная с 111. Алфавит: 1, А, В, С, D Аксиомы; Л 1 1 1, 1 1 Продукции: Л$-»-Л$1 (щ) Л$1->С$?)В$1 $1C?>$21-»C$1Z)$21 (л4) (л5)
12. СИСТЕМА ПОСТА 283 Таблица 12.7.1 А . . . . ¦ > А > и Т. Л- I I С. . . DB . . . С. . . . DB С . . D. В. . . .C...D.B.... ¦ ¦ С . D . . В . . С . . D . . В . . . . . CD ... В . ...CD. ..В.. С ... D... В. . ... CD .... В . . С. . D. . . В C....D....B. С . . DB С . . . D В . С. D . В . . . С . . . DB CD.. В. . С..D. В.... С D . . В . .. . . С . D . . В . . . С D... В . . . CD. . . В. . CD ..В С.. . D. . . В. . Конец С . . D . . . . в . 3-щтстое .. . с. о . . . в С. .db . С . D . В . . . . . .CD. . В. .. С . . D . .В ... . . С . D . . . В . : . . CD .... В С . . D . , . . В . и . С . D ...... В и т.д. 5-простое В табл. 12.7.1 показаны все слова, генерируемые системой. Для удобства чтения вместо 1 в таблице проставлены точки. 12.8. КАНОНИЧЕСКИЕ СИСТЕМЫ ДЛЯ ПРОГРАММНЫХ МАШИН Используя большое число вспомогательных букв, можно по- построить канонические системы, моделирующие сложные процес- процессы. Мы уже делали это в разд. 12.6 (пример 6), используя но- новую, вспомогательную букву для каждого состояния машины Тьюринга. Мы можем сделать то же самое для каждой из команд программной машины (гл. 11). Пусть команды програм- программной машины Р обозначены через 1\, ..., /п, а регистры — че- через Ru ¦ ¦ ¦, Rr- Рассмотрим машину, команды которой принад- принадлежат одному из двух типов. Каждое из Ij имеет вид либо «прибавить 1 к Rk и перейти к //+1», либо
284 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ «если Rk содержит нуль, то перейти к //', в противном случае вычесть из содержимого Rk единицу и перейти к //+i». Согласно разд. 11.4, такой набор команд является универ- универсальным базисом для программных машин. Мы можем модели- моделировать такую программную машину канонической системой, по- построенной следующим образом: Алфавит: /,, ..., /„, Ru ..., Rr, Rr+U 1 Аксиома: /,/Ml ... 11Д211 ... 11/?3 ... Я,И ... П/?,+|, что означает, что машина начинает с команды 1\ и в начальный момент имеет заданные единичные числа в регистрах. Продукции: если // есть «прибавить 1 к Rk и перейти к //+i», то используется продукция Если I] есть «если Rk^0, то вычесть 1 и перейти к Ij+l, в противном случае перейти к //'», то используется пара продукций: Такая система является «однородной» (разд. 14.6). Это озна- означает, что ко всякому слову S никогда нельзя применить более одной продукции. Действительно, в случае если /j есть команды сложения, то имеется лишь одна продукция, начинающаяся бук- буквой /j. В случае когда /j есть команда вычитания, имеются две продукции, начинающиеся с Л,, но так как в любом слове за Rk следует либо 1, либо Rh+u то применима лишь одна из этих продукций. Предположим, что /„ есть команда останова и ре- результат должен находиться в регистре Rr. Для выделения конеч- конечного результата в виде единичного числа добавим продукцию: Улучшенная формулировка этой теоремы дана в примечании в конце разд. 14.1. Задача 12.8.1. Показать, каким образом можно построить каноническое расширение для множества слов, представляемого регулярным выражением. Задача 12.8.2. Показать, как можно построить набор продукций, который дает множество слов (в качестве расширения), распознаваемых конечным ав- автоматом, исходя непосредственно из таблицы переходов автомата, без про- проверки регулярности выражений.
12. СИСТЕМА ПОСТА 285 Задача 12.8.3. Показать, как для данной канонической системы Поста можно построить машину Тьюринга, генерирующую все теоремы этой системы. ПРИМЕЧАНИЕ 1. Некоторые последние работы в области языков программирования ос- основываются на операциях разбиения слов, очень сходных с постовскими про- продукциями. В частности, весьма большие возможности этих языков вытекают из приема, связанного с допустимостью неограниченного использования вхож- вхождений одного и того же переменного слова. Первым таким языком был COMIT, построенный Ингве [106] для использования в исследованиях по линг- лингвистическому анализу. За ним последовал SNOBOL (см. Фарбер [19]) и ряд родственных языков, включенных в систему LISP, описанную в работах Боброу [3], Гузмена [26] и Тейтельмена [98].
13 ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 13.0. ВВЕДЕНИЕ Теорема, доказанная в этой главе, представляет собой тео- теорему о нормальной форме из статьи Поста [75]. Мне кажется, что это одна из наиболее замечательных теорем в математике: любая формальная система может быть сведена к канонической системе Поста с единственной аксиомой и продукциями лишь очень простого вида g$->$/i (нормальная продукция). Доказательство теоремы, данное Постом, довольно сложно. Наше доказательство представляется нам .существенно более простым, поскольку оно в меньшей степени связано с порядком, в котором происходят события. Несколько большая ясность из- изложения достигается за счет меньшего числа вспомогательных символов, но частично она, быть может, теряется вследствие того, что приходится одновременно оперировать со многими правилами. Для того чтобы как-то устранить этот недостаток, мы иллюстрируем доказательство детальными примерами, что должно помочь читателю интуитивно почувствовать справедли- справедливость теоремы. Мы сформулируем и докажем теорему в виде последова- последовательности ее форм возрастающей сложности, а затем получим некоторые новые результаты, используя те же общие методы, которые применялись в доказательствах. В следующей главе мы исследуем связь между этими результатами и результатами предшествующих глав. 13.1. ТЕОРЕМА 0 НОРМАЛЬНОЙ ФОРМЕ ДЛЯ ПРОДУКЦИЙ С ОДНОЙ ПОСЫЛКОЙ ТЕОРЕМА 13.1 Дана каноническая система Поста Р с алфавитом А и про- продукциями вида
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 287 Для этой системы можно построить новую, «нормальную» каноническую систему Р*, все продукции которой имеют вид и которая представляет собой каноническое расширение Р над А (т. е. все те теоремы из Р*, которые содержат лишь буквы из алфавита А, являются в точности и всеми теоремами систе- системы Р). Вспомнив смысл продукции (я), мы можем предвидеть сле- следующие трудности. Нам придется как-то обойти очевидное огра- ограничение, связанное с тем, что нормальные продукции «смотрят» лишь на начальные буквы. Они устанавливают, начинается ли слово с go', но как они смогут установить, содержит ли слово, например, g2, которому предшествует gi. Говоря более точно, несмотря на это ограничение, мы должны: 1) определить, имеет ли слово вид посылки в форме (я), т. е. имеет ли слово непе- неперекрывающиеся вхождения go, gu ..., gn в указанном порядке, и 2) выделить слова $, которые находятся между git и вставить такие же слова на соответствующие позиции в следствии, т. е. между постоянными словами ho, hi, ..., hm. Более того, мы должны 3) в случае, когда требования к посылке удовлетво- удовлетворяются несколькими различными способами, позаботиться о по- порождении всех соответствующих следствий. Мы будем использовать в наших построениях метод «вра- «вращения» слова, при котором каждая часть слова оказывается в конце концов впереди. Во всех конструкциях мы будем использовать строчные бук- буквы для обозначения вспомогательных символов в новой систе- системе Р*. Мы предположим также, что буква Т не занята, и будем использовать ее для обозначения теорем системы Р. Теоремы из Р будут представляться в Я* в том же виде, что и в Р, но с буквой Т впереди. Рассмотрим сначала способ построения Р* для частного примера. 13.1.1. Распознавание формы посылки Пусть, например, дана продукция вида Га&$,с&$2^$з-* Taa$3bb%iaa$3c, (л-прнмер) где Tab пустое слово А.= Л3 = Таа ЬЬ с
288 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ и мы хотим применить ее к слову S Tabefcbgbdc (которое соответствует требованиям к форме посылки при $i = ef, $2 = g, $з = dc). Результатом будет Taadcbbefaadcc. Начнем с того, что предусмотрим для нормальных продукций способность проверять, имеет ли слово форму посылки. Будем использовать следующую систему: Алфавит: буквы' алфавита А и Т, Tlt T2, ..., Тп Продукции: ТаЬ$-+$Т1 (для всех х в А) (для всех л: в Л и всех i = 1, ..., п) Г26$->$Г3 Эта система обладает способностью к распознаванию слов: если слово имеет вид Га6$]Сб$2&$з, то тогда и только тогда эта система порождает слово Г3. Чтобы увидеть, почему так получается, применим эти продукции к слову Tabefcbgbdc. В ре- результате будут последовательно порождаться следующие слова: \Т а Ь efcbgbdc -< / г Ь g Ь d с Т, cbgbdcT,e — Ь g Ь d с Т, е / g b d с Т, е / с -* b d с Т, е / с b - d с Т, е / с b g — сТ, e/cbgb-* Т, е / .с b g b d ¦ T,e/cbgbdc так что символ Т вновь оказался впереди слова. Теперь можно применить продукцию Т\е$—* $Т\ (и только ее). В результате
13 ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 289 получим fcbgbde-~ с b g b d с Т, b g b d Tt/ с b g b d с —• bg bdc T, ~ \7]Tt с b g b d - Tx с b g b d с Здесь впервые можно применить две различные продукции >$Г2 и Тхс%-*%Ти которые позволят получить два семейства слов Слова, которые не могут привести к получению 7j Слова, ноторые на могут привести 4 к получению Т3 Таким образом, система порождает слово Т3. Заметим, что для порождения Г3 система должна сначала произвести последова- последовательно 7"i и Т2. При этом каждое приращение индекса при Т требует, чтобы символ Т оказался перед gi — нужным подсло- -вом в форме посылки. Так что, например, слово bgbdcT\ «безна- «безнадежно», так как в нем символ Т\ никогда не окажется перед подсловом cb, которое требуется ему для того, чтобы перейти в Г2. Отсюда ясно, что если слово имеет форму посылки, то существует способ произвести Т3, а если само слово не имеет требуемой формы, то произвести Т3 невозможно. Таким образом, Ю М. Минский
290 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ на этом примере мы рассмотрели вполне общий метод, который можно сформулировать следующим образом: Система продукций *$->$* (для всех х в А) TjX$-+$T/ (для всех х в А и всех /) (для всех /) порождает слово Tn+i из слова S тогда и только тогда, когда слово S содержит непересекающиеся под слова g0, gu ¦ ¦ ¦, gn в указанном порядке. Теперь мы разрешили большинство стоявших перед нами проблем: мы знаем, как обойти ограничения, свойственные нор- нормальной форме продукции (они обходятся путем вращения сло- слова), и как обнаружить, что слово имеет форму посылки. Теперь нужно показать, как порождается следствие в соответствующей форме. ЗАМЕЧАНИЕ Если исходное слово можно рассматривать как слово в фор- форме посылки несколькими способами, то наша система будет по- порождать Г3 с помощью различных процедур. Например, слово Tabcbcbba допускает три различные интерпретации: Tabcbcbba, Tabcbcbba, Tabcbcbba. %\ $3 $2 Фз $2 $3 Эти три различные интерпретации в конце концов приведут к трем различным следствиям. Единственная неприятность, которую доставляет описанная система, состоит в том, что при распознавании посылок она раз- разрушает информацию о том, каковы слова $, а эта информация нужна для того, чтобы построить следствие. Чтобы сохранить эту информацию, мы будем использовать более сложную си- систему продукций, описанную ниже. Введем массив новых боль- больших букв Ах , (/ = 1, .... п) (для всех х, принадлежащих алфавиту А)
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ и новую (окончательную) систему продукций 291 Tlgj$-+$Tl+l (для всех х в А) (/=1, -..,«) (Р*) Эта система подобна предыдущей, за исключением того, что она сохраняет информацию о словах $. Например, для слова ТаЬЬсЬааЬ^, следуя лишь главному пути и игнорируя пути, приводящие к бесперспективным словам, мы получим \Т а Ь\ Ь с Ь а а Ь Ь с Ь а а Ь Г, |Г| b\c b a a b с b а а Ь А], Т\ 1 7", Тх с с Ь Ь а а а а а а Ь Ь b А\ А\ т2 Т2 а\ а а Ь Ь А\ Al Тг Ь А\ А\ \Т2Ь\ А\ Al А\ **Ь **п ^»л Гз А\ I Al A\ Al Al Q A[ Al Aa 10»
292 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ где предполагается, что $i = b, a $2 = аа. Аналогично слово Tabefcbgbdc приводит к (SO в то время как слово приводит к QA\'a\'a\~7^QA)А\а\ QXTZlAl 13.1.2. Конструкция следствия Чтобы построить следствие, нужно разместить копии $ слов на соответствующих позициях в следствии. Требуемая форма следствия достигается с помощью продукции ... VimhmZY (Р*-продолжение) в которой hi есть постоянные слова в следствии, а У, — новые буквы, указывающие, где должны размещаться соответствую- соответствующие слова $,. Иначе говоря, на место каждого У,- должно быть вставлено слово $j. Новые буквы Z и У будут использоваться в дальнейшем. Если эта продукция будет добавлена к продук- продукции системы, описанной в предыдущем разделе, то, применив ее к слову Tabefcbgbdc, мы получим (используя слова h из пер- первоначального примера) (sl Наш прием будет состоять в том, чтобы заставить А{ «про- «просачиваться» сквозь данное слово, не изменяя при этом своею порядка следования. Когда А*х проходит через Vt с тем же самым индексом (/), то оставляет за собой свой нижний ин- индекс— букву х. Таким образом, когда все слова А проходят
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 293 через все V{, за каждым Vt остается копия слова $». Продукции, реализующие это «просачивание», имеют вид: Аху%->-$уАх (для всех х в А и у в В) (для всех I = 1, ... , п) (эта продукция заставляет Ах проходить мимо строчных букв) AixVj%-+%VjAix (если i^O, (так что Ах проходит мимо Vj с несоответствую- несоответствующим индексом) Ар t$-*%V txAls (для всех х в А и всех (=1, ... , п) (эта продукция оставляет копию буквы х справа от Vt). Кроме того, нужны продукции чтобы обеспечить вращение слов. /^-продолже- /^-продолжение Применяя эти продукции к слову S" из нашего примера, мы получим большое число способов порождения слов, но в конце концов придем лишь к одному окончательному результату. Ти- Типичные слова, которые возникают в процессе перемещения А вправо, имеют вид YAleAlfAlAlA3caaV3bbViaaV3cZ, lf dcbA2gbV xaaVz dccA3dA3cZ, YaaV3dcbbAlVifaaA}A2gV3dccAdA3cZ. В конце концов мы получим YaaV3Чс\ЬЬУ{Щ]aaV3Щ cA\A\A\A3dA3cZ. В рамку заключены позиции, на которые были вставлены копии слов $. На этом наша работа закончена, если не считать не- необходимости устранения символов А, V, Y и Z, использовавших- использовавшихся в конструкции в качестве «строительных лесов». Для устра- устранения этих символов мы будем использовать прием, основанный на следующих соображениях. Символ А можно устранить, ко- когда он достигает Z, поскольку на этом его работа закончена Символ V можно устранить, как только через него прошли все А, поскольку на этом заканчивается его работа. Символ Y мы используем, чтобы узнать о том, что есе А прошли через V.
294 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ При этом мы не допускаем, чтобы Y проходил через А, но, как только все А прошли V, появляется Y и устраняет V. Таким об- образом, продукции (^¦-продолжение) будут уничтожать А при контакте с Z и V при контакте с Y. И лишь когда все А и V будут устранены, Y сможет оказаться слева от Z, и мы завершим весь процесс с помощью последней продукции нашей системы: Yx$ YVS AlxZ$ ->$xY ->$Y ->$Z (x в (i = (x в A) 1, -. A, ., n) '=1 n) YZ% -* %T (Р*-окончание) Применив все эти продукции к слову $ из нашего примера, окончательно получим Таа dcbbefaa dec. Задача 13.1.1. Перестроить это доказательство, используй продукции g$ -*¦ $Л, в которых g и h содержат не более двух букв. Задача 13.1.2. Показать, что для доказательства теоремы 13.1.1 иужиы лишь две вспомогательные буквы. В действительности необходима лишь одна буква, но доказать это гораздо труднее, и требуется совершенно иной под- подход к доказательству. 13.1.3. Окончание доказательства В нашем доказательстве осталось еще несколько пробелов. Прежде всего заметим, что мы не построили законного расши- расширения Р* системы Р, поскольку до сих пор Р* не производит ни одного слова с одними лишь строчными буквами. (Доказатель- (Доказательство этого: аксиомы системы Р содержат прописную букву Т. Всякая продукция с прописной буквой в своей посылке, должна содержать ее и в следствии. Таким образом, по индукции всякое порожденное слово содержит прописную букву.) Слова, которые мы хотим выделить, относятся к словам, начинающимся с Т, поскольку любое слово Г$ есть утверждение того, что $ есть теорема в системе Р. Может возникнуть соблазн ввести продук- продукцию Г$ -* $, чтобы просто устранить начальное Т, но такая си- система не будет работать. Это объясняется тем, что такой прием привел бы к возникновению ложных теорем, состоящих только из строчных букв, а именно к перевернутым вариантам законных теорем, поскольку рассматриваемая система уже содержит про
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 295 дукции х$ -> $х. По сути дела мы должны прийти к выводу, что в данной системе не существует способа избежать этого. Вы- Выход— начать все сначала с новым алфавитом, предполагая, что В = blt Ьг. ..., Ьт есть алфавит системы Р, а А = аи а2, ..., о, есть множество новых букв алфавита системы Р*. Теперь мы можем выделить теоремы системы Р с помощью продукций которые не допускают вращения буквы Ь. Разумеется, в этой системе буквы а могут быть преждевременно преобразованы в Ь, но это приводит лишь к появлению «бесперспективных» слов, но не ложных слов, состоящих из одних символов Ь. Задача. Доказать это. Что делать, если исходная система Р имеет больше чем одну продукцию? Мы просто снова выполним все построения для ка- каждой продукции из Р, используя полностью новые наборы вспо- вспомогательных букв. Общим является лишь ключевой символ Т. Тогда Р-продукции работают независимо друг от друга, будучи связанными лишь общим Т, что позволяет любой Р-продукции оперировать окончательным результатом действия другой Р-про- Р-продукции. Теперь нам нужна еще одна теорема для того, чтобы завер- завершить доказательство того, что канонические системы Поста в самом общем виде могут быть заменены нормальными расшире- расширениями. Мы должны теперь принять в расчет те более мощные продукции, посылки которых связаны не с одним, а с несколь- несколькими словами. Например, в логике часто используют правила вывода типа: «Из теоремы R и другой теоремы, устанавливаю- устанавливающей, что из R следует Q, мы выводим Q». На языке продукций это означает, что к продукциям системы должны относиться вы- выражения вида R и (#=>Q)->Q. Здесь и есть не слово, а лишь способ указать, что продукция имеет две отдельные посылки1). В следующем разделе мы до- докажем более общую теорему о таких системах. Как мы увидим '), Непосредственное представление логических систем как систем про- продукций связано с серьезными трудностями, если не ввести вспомогательные символы, которые позволяют проверить, правильно ли раскрыты наборы скобок.
296 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ в дальнейшем, метод доказательства представляет интерес сам по себе, так как он указывает на другую связь между логисти- логистическими системами и автоматами. 13.2. ТЕОРЕМА О НОРМАЛЬНОЙ ФОРМЕ ДЛЯ ПРОДУКЦИЙ С НЕСКОЛЬКИМИ ПОСЫЛКАМИ. СВЕДЕНИЕ К СИСТЕМЕ С ОДНОЙ АКСИОМОЙ Рассмотрим теперь более общую формулировку системы По- Поста, в которой продукция для формирования новой теоремы мо- может объединить несколько слов (теорем). В наиболее общей системе продукция имеет вид (л) ?lO4>ll?ll$12 • ¦ • $l/ii> §1/1,1 U §20Ф21§21Ф22 • • • Ф2р> g2n2' " gpO$plgpI$p2 • • • §рпрг gpnp —*¦ hnOthiwn < *. фмЛм U 1 i ? Til ttl где все ga и hi — данные постоянные слова, а все $»; — пере- переменные слова и каждое $^ есть одно из слов $ц. Смысл этой формулировки состоит в том, что если имеется р теорем, удов- удовлетворяющих требованиям к р посылкам, то новая теорема по- порождается в виде следствия, в котором могут использоваться части из всех посылочных слов. Согласно утверждению Поста, любое действие, выполняемое математиком, может быть описано некоторой продукцией такого вида. Мы хотим теперь показать, что любая система такого вида может быть заменена нормаль- нормальным каноническим расширением. В конце концов мы увидим, что это может быть сделано таким способом, что окажется необ- необходимой лишь одна аксиома. Как мы убедимся, это уточнение потребует от нас весьма значительных усилий. ТЕОРЕМА 13.2.1 Для всякой данной канонической системы Поста Р общего вида, содержащей продукции с несколькими посылками, можно построить новую каноническую систему Р*, которая содержит продукции только с одной посылкой, имеет одну аксиому и яв- является каноническим расширением Р. (Тогда, согласно теоре- теореме 13.1, мы можем затем построить нормальное расширение Р** системы Р также с одной аксиомой.) Пусть А есть алфавит системы Р (который, как и раньше, полагаем состоящим из строчных букв), и пусть <Di, ,,., Фг
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 297 есть аксиомы системы Р. Аксиомой новой системы будет слово ВВФ{ВВФ.2ВВ .. . ВВФГВВ. Теперь нет смысла иметь несколько аксиом, так как при продук- продукциях с одной посылкой не было бы возможности комбинировать их для получения теорем. В соответствии с каждой продукцией в форме л, принадлежащей исходной системе Р, мы введем сле- следующую чудовищно громоздкую продукцию: В$*0В... (в точности то же с^ мое, что в посылке).. .В$'рВ • • . $1га,Ф21$22 . . . $2«2 • • • $pl$p2 • • • Как работает эта продукция? В посылке проверяется, не со- содержит ли слово, заключенное между В, подслова, удовлетво- удовлетворяющие посылкам формы т. е. проверяется, не заключены ли подходящие составные части для продукции где-нибудь внутри цепочки теорем вида вв$вв$вв ... вв%вв%вв. (Если это имеет место, то в конце концов составляется соответ- соответствующее следствие и присоединяется к слову ВВ%ВВ%ВВ ... ВВ$ВВ$ВВ$СВВ, так что в дальнейшем новая теорема $с будет иметь статус ак- аксиомы.) Это всего лишь план. При его реализации возникают две трудности. Первая из них состоит в том, что наша громоздкая продукция требует, чтобы посылочные слова встречались в за- заданном порядке, — это нежелательное ограничение мы легко устраним. Другая трудность является более серьезной. Мы дол- должны проверять правильность анализа посылок в том смысле,
298 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ что слова, обозначаемые как $,;-, должны быть собственными частями старых теорем и аксиом. Опасность состоит в том, что $ij могут содержать слишком многое — они могут начинаться началом одного слова в Р, включать некоторые В и заканчи- заканчиваться другим словом в Р. Это будет иметь место тогда и только тогда, когда $^- содержит в себе одно или больше В. Наша про- продукция построена таким образом, чтобы можно было легко про- проверить слово по этому признаку. Именно поэтому в конце нашей продукции добавлено соединение всех переменных слов в виде Аф]] ... ф?/ . . . Фрп А (Заметим также, что следствие не заканчивается В, так что про- продукция не может' быть сразу же снова применена к нему.) Те- Теперь, используя продукции %iXx%2X-^%]X$2X (для всех х в А) $ХХ -> $ВВ мы можем проверить, не содержит ли эта последовательность букв В. Результатом является то, что внутренний символ X пере- перемещается вправо, стирая строчные буквы. Если он встречается с В, то слово является бесперспективным. Если внутренний сим- символ X проходит до конечного X, то это означает, что В не было. В этом случае система возвращается к аксиомной форме, но к списку теорем добавляется новая теорема. Теперь мы должны снять ограничение, состоящее в том, что компоненты посылки должны появляться в некотором фиксиро- фиксированном порядке. Один из способов может заключаться во вве- введении отдельных систем продукций для каждой перестановки компонентов посылки — это означало бы р\ форм для каждой продукции исходной системы. Более изящное решение состоит в том, чтобы добавить одну-единственную продукцию Задача. Почему такой прием устраняет необходимость в продукциях для перестановок? Как обычно, мы должны закончить наше изложение описа- описанием процедуры, с помощью которой слова системы Р освобо- освобождаются от вспомогательных букв (а именно от В и X). Для этого мы будем использовать тот же прием, который использо-
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 299 вался при проверке на наличие В, добавив продукции благодаря которым выделяется любое слово, заключенное ме- между двумя буквами В. 13.3. УНИВЕРСАЛЬНАЯ КАНОНИЧЕСКАЯ СИСТЕМА Можно сконструировать каноническую систему, которая в не- некотором смысле является аналогом универсальной машины Тьюринга. При этом мы будем использовать методы, развитые в предыдущем разделе. Отличие будет состоять в том, что вме- вместо применения этих методов к теоремам другой системы мы будем применять их к продукциям другой системы, рассматри- рассматривая сами продукции как последовательности символов. «Уни- «Универсальная» система — это такая система, которая, оперируя описанием другой системы, вычисляет, что делает это другая система. Как мы увидим, оперировать с описаниями систем По- Поста столь просто, что не требуется никаких специальных ариф- арифметических приемов или чего-либо в этом роде. ТЕОРЕМА 13.3.1 Существует некоторая система U продукций Поста, обладаю- обладающая следующим свойством: для любой другой заданной канони- канонической системы Q мы можем построить в U такую аксиому Aq, что система U с аксиомой Aq является каноническим расшире- расширением Q в следующем смысле. Пусть (а\, ..., аг) есть алфавит системы Q, и пусть а и b есть буквы, не входящие в алфавит (аь ..., От). Перекодируем этот алфавит в алфавит (а, Ь), за- заменяя букву а, последовательностью из / букв а, за которыми следует буква Ь. Тогда слова системы U с аксиомой AQ, состоя- состоящие лишь из букв а и Ь, будут в точности представлять собой перекодированные указанным образом теоремы системы Q. Для доказательства этого мы должны построить продукции системы U и показать, как строится аксиома AQ. Согласно теоремам, доказанным ранее в этой главе, всякая произвольная система Q имеет нормальное расширение Р. Пред- Предположим, что эта система Р имеет аксиомы Ф], ..., фа и про- продукции gi$-+$hi. Пусть (аи ..., а'г) есть алфавит системы Р, и пусть А, С, S и Г—буквы, не входящие в этот алфавит.
300 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Нашей системе U будет придана аксиома АР = ACAgiCh{Ag2Ch2A ... AgnChnAS<Z>iS<Z>2S.. ,S<Z>SSTTT Заметим, что эта аксиома представляет собой полное описание системы Р, так как из нее можно построить все аксиомы и про- продукции системы Р. Рассмотрим затем продукцию Последняя ищет «продукцию» в виде A$AC$cAi которая подби- подбирает теорему в виде S$a$S и стремится присоединить к списку теорем слово $$с в соответствии с «продукцией» $д$->$$с. Это является законной операцией только в таких случаях, когда 1) слова %в и $д идентичны и 2) ни одно из соответствующих слов (а именно ф, $д, $д и $с) не содержит ни одной прописной буквы. Только в этих случаях мы можем быть уверены, что $$с есть теорема системы Р, и допустимо добавление ее к списку теорем (или аксиом), представленному словами, расположен- расположенными между буквами S. Продукция (* в (а, аг)) (щ) проверяет оба эти условия. Прием состоит в следующем: эти продукции устраняют по одной одинаковые строчные буквы из слов $а$$с и $в$$с- Оба эти слова уничтожаются тогда и только тогда, когда оба они идентичны и целиком состоят из строчных букв, оставляя слово в виде $iTTT%2. Так что мы до- добавляем также продукцию (яг) которая восстанавливает слово в его исходном виде, за исклю- исключением новой теоремы $$с, включаемой в список теорем. Для того чтобы представить новую теорему в алфавите, состоящем только из строчных букв, мы добавляем еще одну ее копию в конце промежуточного слова. Тогда эта теорема может быть
13. ТЕОРЕМА ПОСТА О НОРМАЛЬНОЙ ФОРМЕ 301 выделена с помощью продукции (я*) ф\ТТТ$2 —> ч>2 Мы помещаем АСА в начало главной продукции для того, чтобы сами аксиомы могли порождаться в качестве теорем си- системы, как, например, в том случае, когда среди продукций си- системы Р отсутствует продукция $ -> $. Рассматриваемая система имеет тот недостаток, что исполь- использованные выше продукции зависят от алфавита системы Р. Если мы будем использовать двоичное кодирование, то система про- проверочных продукций может быть заменена двумя фиксирован- фиксированными продукциями $lTb$2Tb$3T$i->$lT$2T$3T$4 и вся наша система U будет иметь лишь пять продукций: пц, пг, nR, яа, ль. Задача 13.3.1. Продукция Пт $,Г7Т$2->$,ГГГ может быть устранена путем внесения очень простого изменения в посылку главной продукции п^. В чем суть этого изменения? Это сводит универсаль- универсальную систему всего к четырем продукциям. Я не вижу способа дальнейшего сокращения числа продукций, так как представляется, что одна нз продукций нужна «для того, чтобы работать», две—для проверки условий двоичного алфавита и еще одна—для освобождения слов от вспомогательных букв. Однако подобные доводы часто оказываются неверными. Задача 13.3.2. Построить вариант системы U, используя лишь одну про- прописную букву н лишь строчные буквы а и Ь. Можете ли вы сделать это, применяя по-прежиему четыре посылки? Получающаяся в результате система с тремя символами и четырьмя продукциями, вероятно, является в некотором смысле минимальной. Задача 13.3.3. Построить вариант U с одними нормальными продукциями. Не пытайтесь минимизировать число букв илн продукций. Задача 13.3.4. Используя аналогию с универсальной машиной Тьюринга, постройте иерешаемую задачу разрешения относительно слов, производимых системой U как функцией данной аксиомы. Рассмотрите перспективы построе- построения теории вычислимости на этой основе, сравнив ее с подобной теорией на базе машин Тьюринга или рекурсивных функций. Задача 13.3.5. Мы доказали не совсем все, что утверждается теоре- теоремой 13.3.1. Мы доказали теорему для любой нормальной системы Р. Докажите ее теперь для исходной, общей системы Q. Описанная система «очищает» теоремы системы Р (которая включает в себя все теоремы систе- системы Q и, кроме того, некоторые другие теоремы). Для завершения доказатель- доказательства требуется несколько более сложная система выделения теорем.
302 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ ¦ Задача 13.3.6. Мы никогда не допускали того, чтобы какое-нибудь из $< появилось в посылке дважды. Как указано в примечаниях к разд. 12.5, Пост допускал такие посылки. Однако иам представляется, что это нисколько ие соответствует духу конечного подхода. Покажите, во всяком случае, что для любок системы, которая допускает такие продукции более общего харак- характера, существуют канонические расширения нашего, более узкого типа, в частности начните с доказательства того, что действие продукции $i0$,ll$->$,0$ можно моделировать расширением, в посылке которого ие используются по- повторяющиеся $i. Используйте метод букв Г, как в разд. 13.1 [2*]. Примечания 1. Не существует, например, канонической системы для теорем исчисле- исчисления высказываний (в его обычной форме), которая ие использовала бы хотя бы одной буквы расширения. Я убежден в этом, однако не могу восстановить того, что представлялось бы мне доказательством. 2. См. примечание 1 к гл. 12.
14 ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 14.1. УНИВЕРСАЛЬНЫЕ ПРОГРАММНЫЕ МАШИНЫ С ДВУМЯ РЕГИСТРАМИ В разд. 11.1 мы ввели понятие «программной машины», кото- которая может вычислить любую рекурсивную функцию, выполняя программы, составленные из двух операций, над содержимым регистров-ячеек, хранящих числа: Прибавить единицу к числу в регистре а и пе- перейти к новой команде. |а~(ге)| Если число в регистре а не равно нулю, вычесть 1 из содержимого а и перейти к следующей команде, в противном случае перейти к я-й команде. В разд. 11.2 мы показали, что этих операций при работе над содержимым пяти регистров достаточно для построения эквива- эквивалента любой машины Тьюринга. В разд. 11.4 мы заметили, что это может быть сделано при использовании лишь двух регистров. Теперь мы докажем это. Но наша основная цель не исчерпывается сведением к минимуму средств описания программной машины. Этот результат будет использован для получения ряда теорем, которые без него не были бы достаточно ясными. Вспомним (из разд. 11.4), что операция [а0!, т. е. «запись нуля в регистр а», может быть смоделирована с помощью реги- регистра w, уже содержащего нуль. Кроме того, в этом случае в ка- качестве команды | переход к я| мы можем использовать коман- команду ю-(л). Здесь нам удобно сначала предположить, что в нашем рас- распоряжении есть команды | а' |, [ а~ (п) \ и | переход к п \. Далее программу
304 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ можно использовать в качестве команды а0, и тогда можно считать, что мы имеем а0, а- (л), а', переход к п Только эти операции и появляются на диаграмме в разд. 11.2, и, как показано, они представляют собой все, что необходимо для моделирования любой машины Тьюринга. Чтобы свести машину, показанную на рис. 11.2.1, к машине с двумя регистрами г и s, мы будем моделировать большее число регистров путем использования того элементарного факта из арифметики, что каждое целое число может быть разложено на простые множители единственным способом Предположим, например, что мы хотим моделировать три регистра х, у и z. Начнем с засылки числа 2Ж • 3"- 5Z в регистр г и нуля в регистр s. Важно то, что из одного числа 2х-Зу-52 можно найти числа х, у и z просто путем определения, сколько раз число может быть разделено на 2, на 3 и на 5 соответственно. Если, например, г = 1440, то х = 5, 1/ = 2 и г = 1. Для наших целей нам нужно лишь показать, как можно получить результат операций х' и лт, у' и у~, z' и г-. ПРИРАЩЕНИЕ Пусть нам нужно увеличить содержимое регистра х, т. е. при- прибавить единицу к х. Это означает, что мы хотим заменить 2ж-Зу-5г на 2*+1-3y-5z = 2 ¦ 2Ж • 3» • 5Z. Но это то же самое, что удвоение числа в регистре г. Подобно этому увеличение на 1 содержимого у или z есть соответственно утроение или упятере- ние содержимого г. Это делается с помощью программ, показан- показанных из рис. 14.1.1. Первый цикл в каждой из программ осуще- осуществляет подсчет нового содержимого г путем прибавления двух Рис. 14.1.1.
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 303 (или трех, или пяти) единиц к содержимому s столько раз, сколько единиц в регистре г, второй цикл осуществляет пере- передачу содержимого s в г. УМЕНЬШЕНИЕ Вычитание единицы из х оказывается несколько более слож- сложным, так как мы должны определить, не является ли х нулем; если х равен нулю, то нам нужно оставить его неизменным и осуществить | переход |. Если х не равен нулю, то нужно заме- заменить 2х-Зу-5х на 2x'l-3v-5z, т. е. разделить содержимое г на 2. Аналогично уменьшение у и г (если они не равны нулю) эквива- эквивалентно делению на 3 и на 5. Программа для уменьшения z по- показана на рис. 14.1.2. (если г=О) Рис. 14.1.2. С помощью левого цикла осуществляется деление путем по- последовательного вычитания. Если деление происходит нацело, т. е. без остатка, то с помощью нижнего цикла производится за- занесение частного снова в г. Если деление происходит не нацело (т. е. 2 равен нулю), правый цикл восстанавливает остаток (ко- (который в этот момент запоминается в виде состояния машины, т.е. в виде места в программе), а затем прибавляет к нему частное, умноженное на делитель, и направляет результат об- обратно в г. Это все, что нам требовалось доказать, так как ясно, что то же самое можно сделать и .для пяти регистров, о которых гово- говорилось в разд. 11.2. В этом случае мы просто помещаем в г число 2m-3n-5a-7z- \\w и используем описанные выше методы. Чтобы построить программную машину, эквивалентную машине, диаграмма которой показана на рис. 11.2.1, можно взять эту
305 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ диаграмму и заменить каждую из ее команд эквивалентной про- программой, подобной тем, которые мы сейчас построили. Сказан- Сказанное выше является доказательством следующей теоремы. ТЕОРЕМА 14.1.1 Для любой машины Тьюринга Т существует программная машина Мт с двумя регистрами, которая ведет себя так же, как Т (в смысле, указанном в разд. 10.1 и 11.2). При этом в исход- исходном состоянии в один из регистров помещается нуль, а в дру- другой— число 2а-Зт-5п. В этой машине используются лишь опе- операции О " В > причем в предыдущей команде содержится ин- информация о «переходе» для последующей команды. ЗАМЕЧАНИЕ Теперь, когда мы знаем, что существуют универсальные про- программные машины, использующие лишь два регистра, мы мо- можем улучшить результаты, полученные в разд. 12.8. Для такой машины имеются всего четыре вида команд: «прибавить 1 к Ri», «прибавить 1 к i?2». «вычесть (условно) 1 из Ri», «вычесть (условно) 1 из R2». В соответствующей системе Поста для такой машины мы можем опустить буквы R и использовать для разде- разделения двух регистров буквы /, так что для такой машины можно построить каноническую систему с простыми продукциями типа Ч>1« /<Р2 —*¦ «Plli / + I<?2 для сложения и ф|/у1ф2 —*¦ 4>l// + 14>2 $//->$//' для условного вычитания. 14.2. УНИВЕРСАЛЬНАЯ ПРОГРАММНАЯ МАШИНА С ОДНИМ РЕГИСТРОМ Мы можем получить еще более сильный результат, если до- допустим в качестве возможных команд машины операции умно- умножения и деления (на постоянные величины). В этом случае мы можем обойтись всего одним регистром. Из доказательства теоремы 14.1.1 видно, что нужен лишь один регистр, если мы можем осуществлять над его содержимым операции «умножить на 2 (или 3, 5, 7, 11)» и «разделить на 2 (или 3, 5, 7, 11) условно по условию целочисленности деления». Теперь еще одно, последнее замечание. Из доказательства тео-
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 307 ремы 14.1.1 видно, что результат умножения на 2 (или на 3) и деления на 2 (или на 3) чисел вида 2Ж-3^ в точности совпадает соответственно с результатом увеличения на единицу х (или у) и уменьшения на единицу х (или у). Кроме того, согласно тео- теореме 14.1.1, если мы хотим увеличить порядок числа до некото- некоторой другой величины, то нам по существу не требуется ничего другого, кроме этих четырех операций. Таким образом, применяя теорему 14.1.1 к ее собственному доказательству (!), мы получим следующую теорему. ТЕОРЕМА 14.2.1 Для любой машины Тьюринга существует программная машина Мт со всего одним регистром, которая ведет себя (в обычном смысле) так же, как Т, причем начальным состоянием этого регистра является число <ра-б-ъп . з. В этой машине ис- используются лишь операции умножения и деления (условного) на целые числа 2 и 3. Задача 14.2.1. Проверьте справедливость этого эскизного доказательства теоремы 14.2.1. Задача 14.2.2. Как в теореме 14.1.1, так и в теореме 14.2.1 конечным ре- результатом была программная машина с четырьмя типами команд. В одном случае это были две операции, каждая из которых могла быть применена к содержимому каждого нз двух регистров, в другом случае — четыре опе- операции над содержимым одного регистра. Покажите, что в каждом из указан- указанных случаев это число можно свести к трем путем замены двух из команд одной, которая воздействовала бы как на номера регистров, так и на их со- содержимое. Например, в машине Мт мы можем устранить s" и s', если сохра- сохраним г и г' и добавим обмен содержимым (r,s). В Мт мы можем использо- использовать «умножить на 6», «разделить на 3» и «разделить на 2». Мы можем свести базис даже к двум командам. Покажите, что для машины Мт доста- достаточно иметь команды: Прибавить 1 к г и произвести обмен между г и s. Если г не нуль, вычесть 1 из г и произвести обмен, в противном случае произвести обмен и совершить переход к п. Требуется некоторое изменение формы входных сигналов. ОБСУЖДЕНИЕ На первый взгляд теорема 14.2.1 может показаться более сильным результатом, чем теорема 14.1.1, так как в ней гово- говорится об использовании одного регистра вместо двух. Однако с точки зрения подхода Тьюринга (гл. 5) мы предпочтем теоре- теорему 14.1.1, поскольку m', m~, п' и п~ можно рассматривать как элементарные (базисные) конечные действия. В то же время
308 Часть hi. системы, оперирующие символами, и вычислимость операции умножения содержимого регистра на 2 нельзя рассма- рассматривать как фиксированное конечное действие, так как связан- связанный с этим объем работы при увеличении числа в регистре мо- может превысить любой фиксированный предел. (Такие же возра- возражения можно выдвинуть и против теоремы 14.1.1, если число в регистре представляется в двоичном коде. Код должен быть единичным, Почему?) 14.3. ЧИСЛА ГЁДЕЛЯ Удивительйо большие возможности описанных в разд. 14.1 методов вытекают из того фундаментального факта, что любое количество информации можно представить одним целым чис- числом, или, говоря более точно, всегда можно эффективно вычис- вычислить такое число и эффективно извлечь из него информацию. Так, в доказательстве теоремы 14.1.1 мы выбрали произвольную четверку (т, п, a, z) целых чисел и перекодировали ее в одно целое число 2m-3n-5a-7z. В этом нет ничего нового, так как еще при арифметическом описании машины Тьюринга (разд. 10.1) мы использовали числа тип для представления произвольных последовательностей из единиц и нулей, а при изучении (в разд. 10.3) способов нумерации частично-рекурсивных функций мы рассматривали еще более сложные методы представления информации одним целым числом. В разд. 12.3 мы показали, что одним целым числом можно представить произвольный спи- список списков букв алфавита. В еще более общем виде Гёделем [25] было показано, что одним целым числом можно представить произвольную списочную структуру (см. также разд. 10.7). Определим это соответствие индуктивным способом: Если К есть число, то К* = 2К. Если К есть список (a,b,c,d, ...), то Д'* = 3a*-5f*-7c*. •lld* ... . Например, 3* = 23, B, 4, 6)* = З22 • 52' • 72', A,B,3), 4)* = 32'-5з22-523-72\ @, @,0))*=3-53-5. Задача 14.3.1. Показать, что любые две различные структуры списков целых чисел приводят к различным "-числам, и описать эффективную про- процедуру для восстановления спнсочнон структуры нз *-чнсла.
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 309 Задача 14.3.2. Какое из следующих определений обладает тем свойством, что списочная структура может быть однозначно восстановлена по числу? 1 1 ,<n 1 B) C) ¦ ' К* = г К* = * к, 2К, * 3*, з2 3"* I • 52' * . 7"*..., 11-*.... -ll2d .... если если если если если если К — число, К = (а, Ь, с. К — число, К~ список; К — число, К — список. d, . • •); Введение гёделевской нумерации имело большое значение для математической логики, так как, будучи связанной внешне с понятием числа и основаниями математики, она становилась все более и более теорией математических теорий. Как показал Гёдель, можно говорить о положениях теории (а положения не есть числа), приписывая положениям числа, а также свойство интерпретации соответствующих чисел. В частности, благодаря этому можно без парадоксов интерпретировать теорию как тео- теорию ее собственных положений, и Гёдель, используя эти методы, доказал свою теорему о невозможности существования непро- непротиворечивой теории, содержащей доказательство своей замкну- замкнутости. Позже было замечено, что с тем же эффектом можно применить гораздо более простые системы нумерации, чем гёде- левская, не прибегая к результатам теории чисел, подобным тео- теореме об единственности способа разложения на простые множи- множители. Довольно изящны методы Смульяна [95]. На Смульяна в большой мере повлияло стремление Поста оперировать непо- непосредственно выражениями в символической форме, а не их чис- числовыми представлениями (это же влияние испытал и автор, и оно сказалось, например, в доказательстве теоремы 13.3.1). Однако я думаю, что наиболее прозрачными являются методы, подобные тем, что рассматривались в разд. 10.7 и 13.3, и цели- целиком связанные с арифметическими подходами. 14.4. ДВУХЛЕНТОЧНЫЕ МАШИНЫ ТЬЮРИНГА БЕЗ ЗАПИСЫВАЮЩИХ ГОЛОВОК Довольно просто обобщить понятие машины Тьюринга, рас- распространив его на машины с двумя и более лентами. Один спо- способ состоит в том, чтобы для каждого состояния машины Тью- Тьюринга и каждого набора символов, воспринимаемых считываю- считывающими головками, определить, что делать с каждой из лент (что за- записывать и в каком направлении перемещаться). В этом случае
310 ЧАСТЬ 111. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ вместо задающей обычную машину пятерки (qu Sj, дц, Su, с1ц) для определения машины с К лентами нужно использовать сле- следующий набор из B/( + 3) символов: Другой, более удобный способ состоит в том, чтобы описывать многоленточную машину как программную машину, система команд которой включает команды: «Передвинуть ленту / в направлении d», «Записать символ S* на ленту /», «Если головка / считывает символ sit перейти к команде...». Как мы знаем, очень трудно даже теоретически сконструи- сконструировать машину Тьюринга, способную выполнять задания сколь- нибудь значительной сложности, и уж никому не придет в го- голову строить ее для практических целей. Структуру машины Тьюринга, предназначенной для сложных вычислений, можно существенно упростить, если предусмотреть различные ленты для различных функций памяти; в этом случае не нужно при- прибегать к сложным устройствам пунктуации. Очень легко, напри- например, описать универсальную машину Тьюринга с двумя лентами, одна из которых используется для моделирования ленты ими- имитируемой одноленточной машины, а другая — для хранения ее описания. Задача. Покажите, как строится универсальная машина при использова- использовании двух лент. Не следует удивляться тому, что, хотя на первый взгляд многоленточные машины обладают большими возможностями, они имеют в точности такой же вычислительный диапазон, что и одноленточные машины Тьюринга, а именно они способны вычислять любую частично-рекурсивную функцию. Это можно показать, описав способ построения обычной одноленточной ма- машины, имитирующей Д'-ленточные машины. В нашей исходной конструкции универсальной машины Тью- Тьюринга (разд. 7.3) мы предусмотрели две области на ленте ма- машины. Одна из них — область описания — была конечной, но с тем же успехом она могла бы быть и бесконечной. Такой ме- метод, разумеется, не пригоден для случая более чем двух лент, так как лента имеет лишь два направления. Однако эффекта использования К лент можно добиться, просто располагая ячей- ячейки некоторой заданной ленты на ленте одноленточной машины
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 311 через каждые К ячеек. Построение конструкции такой машины предлагается читателю в качестве упражнения. Задача. Показать, что любая /С-ленточная машина может быть смодели- смоделирована однолеиточиой машиной. Хотя в общем случае /f-ленточные машины эквивалентны одноленточным, это может не иметь места, если мы наложим ограничения на то, что можно делать с лентой. На первый взгляд может показаться удивительной следующая теорема. ТЕОРЕМА 14.4.1 Любые вычисления, которые можно выполнить машиной Тью- Тьюринга, могут быть смоделированы машиной с двумя полубеско- полубесконечными (одноконечными) лентами, которая не может ни счи- считывать со своих лент, ни записывать на них, но способна лишь определять, подошла ли лента к концу. Имея в виду теорему 14.1.1, вряд ли целесообразно прово- проводить здесь доказательство этой теоремы. Длины лент от считы- считывающих головок до концов можно рассматривать как представ- представление чисел m и п, операции ш' и п' сдвигают головки в сто- стороны от концов, а т- и пт — в стороны к концам при условии, что не достигнут конец ленты. СЛЕДСТВИЕ 14.4.1 Любые вычисления на машине Тьюринга могут быть смодели- смоделированы машиной Тьюринга, лента которой всегда пуста, за ис- исключением самое большее трех ячеек, в которые записаны еди- единицы. Действительно, можно построить машину Тьюринга, эквива- эквивалентную данной машине в смысле чисел тили работающую с лентой вида 000 ... 010 ... 010 ... 010 m нулей п нулей Задача. Докажите следствие, показав, как построить такую машину. 14.5. УНИВЕРСАЛЬНАЯ МАШИНА ТЬЮРИНГА БЕЗ СТИРАНИЯ Теперь мы можем продемонстрировать замечательный факт, впервые установленный Хао Ваном [102] и состоящий в том, что для любой машины Тьюринга Т существует эквивалентная ей машина Тьюринга TN, которая никогда не изменяет однажды написанного символа^. Мы построим двухсимвольную машину
312 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ TN, которая может лишь записывать единицы в пустые ячейки, но не может заменить ячейку с единицей пустой ячейкой. Наше доказательство будет состоять из двух частей. Сна- Сначала мы покажем, как по данной машине Т построить эквива- эквивалентную ей машину Tn, которая использует четыре символа О, А, В, С и для которой допускаются лишь следующие измене- изменения символов: О^В, О^С, А-*-В, А-+С, В-+С Затем мы покажем, как из машины Тц построить машину TN без стирания таким образом, чтобы двухсимвольная машина Гд- работала над ячейками своей ленты сгруппированными по три. При этом символам машины T'N можно следующим образом сопоставить тройки символов машины TN\ Символы машины Т N Символы машины Г. 0 0 0 1 0 0 1 1 0 1 1 1 в При таком сопоставлении изменения символов, допускаемые для машины Tn, соответствуют только таким изменениям для ма- машины TN, в которых происходит замена нулей единицами, но никогда не требуется заменять единицы нулями. ТЕОРЕМА 14.5.1 Для любой машины Тьюринга Т существует эквивалентная ей двухсимвольная машина, которая может лишь записывать единицы в пустых ячейках, но не может стирать однажды запи- записанные единицы. Доказательство. Сначала построим упомянутую выше ма- машину. Для содержимого ленты машины Тьюринга Т будем ис- использовать в машине TN наше обычное представление в виде
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 313 двойки (т, п) целых чисел. Состояние ленты машины Т будет представляться в виде ... СССС ... СССВВ ... ВВАА ... АА000 ... 000 ..., где имеется пг букв В, га букв А и любое число букв С слева. Теперь нам нужно лишь показать, что можно построить таблицу переходов таким образом, чтобы выполнялись базисные опера- операции, определенные теоремой 14.1.1, а именно пг', га', пг~ и пг. Это означает, что нам нужно построить способ увеличения и уменьшения (условного) пг и п — чисел букв В и Л на ленте машины Гдг, — не нарушая при этом ограничений на способы замены символов. Рассмотрим теперь диаграмму переходов для четырех состояний, показанную на рис. 14.5.1. При таком спо- способе перехода из одних состояний в другие выполняется как раз то, что требуется. Рассмотрим, например, диаграмму переходов для га~ применительно к словам (пг, п) = B,1) и (пг, га) = B,0), начиная каждый раз где-то справа. (т, я) = B, I) (т, п) = B.0) ..СССВВА000... ..СССВВА000 ... О ..СССВВА000... а ..СССВВА000... О ..ССССВА000... О .ССССВА000 ... 0 ..ссссввооо ... о „ К следующей команде" ...сссввооо . .. о v . .СССВВООО . . . о ...сссввооо . .. о ...сссввооо . .. о ...ссссвооо . . . о ...ссссвооо... о ...CCCCSS00... о „ Переход по нулю" В каждом случае машина сначала движется вдоль ленты влево до тех пор, пока не наткнется на букву С. (Машина никогда не движется влево от самого правого С.) Затем машина начинает
314 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ двигаться вправо для выполнения требуемой операции. Только у операции п~ имеются некоторые тонкости. От машины тре- требуется «стереть» А, но она может это сделать, только замениз ее на одну из букв В или С. Она выполняет это путем устра- устранения крайнего левого В (если таковое имеется). Когда ма- машина наталкивается на А, она заменяет ее на В, уменьшая та- таким образом число букв А и восстанавливая число букв В. Читатель может сам убедиться в том, что все остается справед- справедливым и в том случае, когда буквы В отсутствуют. Наконец, т К следующей команде . К следующей команде *-К следующей команде ^•Переход по нулю И следующей команде /Терехов по нулю Рис. 14.5.1. в случае когда нет букв А (т. е. когда п = 0), число В остается неизменным, но машина «выходит» из диаграммы состояний по другой стрелке. Заметим также, что машина заканчивает работу где-то справа от букв С, так что мы можем уверенно связать выход из одной диаграммы со входом другой. Теперь, для того чтобы получить машину TN, мы просто по- построим программную машину, эквивалентную Г, используя тео- теорему 14.1.1. Затем мы заменим каждую команду программной машины последовательностью действий в соответствии с одной из четырех диаграмм состояний, указанных выше. Затем мы реализуем структуру «управления» программной машины, вводя соответствующие связи между входами и выходами наших диа- диаграмм состояний. Поскольку ни одна из диаграмм состояний не нарушает ограничений на допустимые замены символов, мы построили Гдг в соответствии с тем, что от нее требо- требовалось.
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 315 Для того чтобы завершить доказательство теоремы 14.5.1, нам нужно лишь показать, как можно преобразовать T'N в двухсимвольную машину TN без стирания. Для этого нужно описать упомянутый ранее способ работы машины TN с трой- тройками ячеек своей ленты. Мы сделаем это путем замены каждого состояния машины T'N набором состояний, которые оперируют тройками ячеек в соответствии с сопоставлением ШИШ,в** cm/|g|%.c~ О** Например, состояние которое означает «двигаться влево (по тройкам) до тех пор, пока не встретится тройка ИЩИ», реализуется в Гдг сетью, показанной на рис. 14.5.2, где петлеобразные структуры исполь- используются для того, чтобы обеспечить движение по тройкам ячеек. Состояния, соответствующие движению Гдг вправо, С — >В-В~ С С-*- Рис. 14.5.3.
316 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ 110=8 по=е Рис. 14.5.4. заменяются подобными же структурами. Например, правые части рис. 14.5.3 и 14.5.4 занимают соответствующие левые части. По- Последний пример снова показывает, как в состоянии поиска про- продолжается движение по тройкам ячеек ленты, до тех пор пока не находится один из искомых символов. Задача. Описанная выше машина ТN стирает все предыдущие записи в процессе вычислений, заменяя все старые символы на С. Можно построить машину, работающую аналогично во всех отношениях, за исключением того, что она сохраняет записи всех предыдущих шагов вычислений (т. е. всех шагов вычислений моделируемой машины Т). Постройте машину 7"^, кото- которая обладает тем свойством, что если (mt,nt) есть (т, п)-представление лен- ленты машины Т в момент /, то лента машины TN в момент / имеет вид /П[П1т2п2... т,п,. Можно, например, использовать пятиуровневое кодирование без стирания с кодами вида ... ЕЕЕ ... EEEDmiCHlDm* ... D™''^"'-ibVoOO ... 000 .... Прежде всего нужно построить диаграмму состояний, которая «копирует» mtn, путем преобразования этого слова в ... ЕЕЕ ... EEEDm'CniDm* ... D™'-> c"'-'d"V'b"V'000 ... 000, а затем показать, как можно видоизменить «копирующую» структуру так, чтобы она была в состоянии реализовать операции т',п',тг,гг без наруше- нарушения ограничений на допустимые изменения символов. Сравните эту систему с универсальной системой Поста, определяемой теоремой 13.3.1, которая также сохраняет записи всех предыдущих действий. 14.6 ТАГ-ПРОБЛЕМА И ОДНОРОДНЫЕ КАНОНИЧЕСКИЕ СИСТЕМЫ Будучи аспирантом Принстонского университета, в 1921 г. Пост [77] исследовал класс внешне простых, но на деле приво- приводящих в отчаяние задач, примером которых является следую- следующая:
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 317 Дано конечное слово 5 из нулей и единиц. Рассматри- Рассматриваем первую букву слова 5. Если она нуль, то вычеркиваем первые три буквы и прибавляем к результату 00. Если первая буква единица, то вычеркиваем первые три буквы и прибавляем 1101. Ту же операцию проделываем со сло- словом, которое получилось в результате, и продолжаем по- повторять процесс до тех пор, пока получаемое слово содер- содержит три или более букв. Если, например, исходным являет- является слово 10010, то мы получим 10010 IQllOl 1011101 LIOIJJOJ IItO11101 QIMOlllOl lonioiog. 1101001101 iOOIIOlllOI J10111011101 1110111011101 OIllOlllOIIIOI 1OIII0III0I0O П0П IQIOOIIOI i 1101001101 ilOJ. 0100110111011101 _>0l10!1101110100 01!10111010000 I0MI0IOO0O0O Повторяется ¦<, i iоioooooonoi 10001H011011101 000011011101llOf ^~- <0l 101 I 101 IIOIQP Длина слова возросла, но возникло повторение слова, встре- встречавшегося ранее, и, следовательно, последние шесть шагов будут повторяться без конца. Предположим, что мы начинаем с другого слова S'. Читатель может попробовать, например, на- начать процесс со слова (ЮОO, т. е. 100100100100100100100, но, почти наверное, он останется без ответа на вопрос: приведет ли это слово к повторяющемуся процессу? Действительно, более общий вопрос: имеется ли эффективный способ установить для любого данного слова, возникнет ли повторяющийся процесс, если начать с этого слова? — до сих пор остается без ответа. Пост иашел эту @0, 1101)-проблему неподдающейся. К такому же выводу пришел и я, несмотря даже на то, что пользовался вычислительной машиной. Разумеется, не располагая теорией,
318 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ. И ВЫЧИСЛИМОСТЬ трудно ожидать от машины большей помощи (если она сама не располагает теорией), чем выполнение чисто рутинных опе- операций 'в изучении примеров, но если читатель попытается без такой помощи изучить поведение 100100100100100100, ему мож- можно лишь посочувствовать. Пост мимоходом упомянул о @0, 1101)-проблеме в своей статье [75], в которой он сообщил о теореме о нормальной форме и заметил, что «незначительный прогресс, достигнутый в реше- решении. .. таких задач, делает их кандидатами на неразрешимость». Как оказалось, он был прав. В то время как разрешимость про- проблемы @0,1101) до сих пор не установлена (некоторые част- частные результаты рассмотрены в работе Ватанабе A04]), теперь известно, что некоторые проблемы столь же общего характера неразрешимы. Еще более интересен тот факт, что существуют системы этого класса, являющиеся универсальными в смысле теоремы 14.1.1, а именно что существует способ моделирования действий произвольной машины Тьюринга «таг-системой». ОПРЕДЕЛЕНИЕ Таг-система есть нормальная каноническая система Поста, удовлетворяющая следующим условиям: Если А = (oi, ..., ап) есть алфавит системы, a gi§-*§ht {/ = 1, ..., га) — ее продукции, то 1. Все постоянные слова ^-посылок имеют одинаковую дли- длину Р. 2. Слова hi следствий зависят лишь от первой буквы соот- соответствующих слов gi. Например, в упомянутой нами проблеме @0,1101) в действи- действительности имеется восемь продукций, составляющих систему с Р = 3: 000$^$00 100$-»$1101 001$->$00 101$ —^ $1101 010$->$00 110$->$1101 011$->$00 111$->$1101 Из-за того что hi определяется первой буквой одного лишь gi и что число букв во всех gt постоянно и равно Р, все таг-си- таг-системы имеют характер @0, 1101)-проблемы, а именно, для того чтобы оперировать с таг-системой, нужно Прочесть первую букву at Стереть Р букв в начале слова Прибавить к концу слова соответствующее слово ht след- следствия
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 319 Очень важно заметить, что само определение таг-системы устанавливает свойство, которое в общем случае отсутствует в нормальной или других канонических системах, а именно таг- система является однородной. ОПРЕДЕЛЕНИЕ Каноническая система Поста (или любая другая логическая система, оперирующая словами) является однородной, если для любого слова 5 имеется не более одного нового слова S', кото- которое может быть получено из него (за один шаг). Ясно, что таг-система является однородной, так как то, что происходит с любым словом S, зависит от его первой буквы. Два различных слова могут быть выведены только в том слу- случае, когда слово имеет две различные первые буквы, что яв- является абсурдом. В чем состоит важность свойства однородно- однородности? В том, что если система, оперирующая словами, однородна, то она во всех существенных аспектах подобна машине, так как она определяет детерминированный процесс или последова- Машина с одним састаянаем Рис. 14.6.1.
320 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ тельность событий (причем все это может рассматриваться в реальном времени). Действительно, легко представить себе машину, которая ставится в соответствие таг-системе (рис. 14.6.1). Эта машина несколько напоминает машину Тьюринга, за исключением того, что 1. Имеются две головки — одна для считывания, а другая для записи. 2. Лента выходит из системы, проходит через считываю- считывающую головку, имеет произвольно длинный участок «сво- «свободной петли», затем проходит через записывающую го- головку и наконец исчезает в «поглотителе». Лента может двигаться лишь в одном направлении. 3. Часть машины, имеющая конечное число состояний, дол- должна быть способна считывать символ, сдвигать ленту на Р ячеек и записывать перенос Лг- с помощью записы- записывающей головки. Никаких других внутренних состояний машина не имеет. Заметим, что таг-машина не способна стирать символы. Спо- Способность стирать символы ничего бы ей и не дала, так как она может считывать символ самое большее один раз. Слово «таг» происходит от названия детской игры (tag — салки, пятнашки). Пост интересовался возможностью разреше- разрешения следующего вопроса: догонит ли когда-нибудь читающая головка, которая движется с постоянной скоростью Р ячеек в единицу времени, записывающую головку, которая движется нерегулярно? (Мы не требовали, чтобы все Л,- имели одинако- одинаковые длины.) Так, в @0, 1101)-задаче читающая головка на каж-> дом шаге смещается на три разряда, а записывающая головка смещается либо на два, либо на четыре разряда. Очевидно, что обе головки имеют одинаковую среднюю скорость. Поэтому можно ожидать, что слово либо исчезнет, либо станет периоди- периодическим. Это можно предположить для большинства начальных слов, так как если шансы стать короче или длиннее одинаковы, то почти наверное время от времени слово будет становиться короче. Каждый раз, когда слово становится короче, имеется много шансов на повторение уже однажды написанного слова, а в однородном процессе повторение один раз означает по- постоянное повторение. Существует ли начальное слово, которое неуклонно растет несмотря на то, что статистика этому препят- препятствует? Никто не знает. Все слова, которые я изучал (с по- помощью вычислительной машины), либо становились периодиче- периодическими, либо исчезали, но некоторые лишь после многих миллио* нов итераций.
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 321 ТЕОРЕМА 14.6.1 Для любой машины Тьюринга Т существует таг-система Тт, которая ведет себя так же, как Т (в смысле (пг,п); разд. 11.2), если задана аксиома, которая перекодирует содержимое ленты машины Т в последовательность Аа аа аа...аа ВЪ ЪЪ bb...bb, где содержится m двоек аа и п двоек ЬЬ. Число исключаемых букв в системе Тт равно Р = 2. СЛЕДСТВИЕ Вычислимость для однородной нормальной системы эквива- эквивалентна вычислимости для обще-рекурсивных функций, машин Тьюринга, общих канонических систем и т. д. Доказательство. Построим отдельные таг-системы для каж- каждого из состояний машины Т. Затем объединим их (путем иден- идентификации некоторых букв из различных алфавитов), с тем чтобы сформировать единую таг-систему, которая ведет себя как машина Т. Начнем с построения таг-системы, которая ведет себя так же, как правая часть схемы на рис. 11.2.1. Мы привыкли представлять себе работу машины Тьюринга в соответствии со схемой на рис. 14.6.2. Cvumif samie \ п 1 -* Запись SiB Запись Движе- Движение DlO Пере- Переход к Qio Движе- Движение * Пере- too к Oil Рис. 14.6.2. Запись Si приже ние Bl *> Счета- game Переход Qi ПерехоО ft Qu Запись Запись Sit Рис 14.6.3. 11 М. Минский
322 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ. И ВЫЧИСЛИМОСТЬ Представление в соответствии со схемой 14.6.3 эквивалентно, но здесь оно более удобно и существенно проще. Рассматривае- Рассматриваемая таким образом машина Тьюринга будет иметь вдвое боль- большее число состояний, но в некотором смысле они были уже там в скрытом виде, так как каждое состояние машины на рис. 14.6.2 в действительности соответствует двум состояниям, одно из которых нужно для того, чтобы во время записи по- помнить считанный символ. Задача. Очевидно, что состояния новой системы не в точности соответ- соответствуют состояниям старой системы. Новые состояния также представляют собой пятерки, но теперь в виде Состояние Запись Движение Считывание: если 0, то переход к если 1, то переход к Qi Si Dt Qia Qn и для каждого состояния имеется одна, а не две пятерки. Используйте та- такое представление машины Тьюринга для того, чтобы упростить построение в разд. 11.3. Теперь, для того чтобы реализовать такое состояние таг-си- таг-системой, мы представим набор продукций, который будет соот- соответствовать состоянию движения вправо. В таком случае мы будем стремиться изменить тип так, чтобы {л/2, если п четно, 2 если п нечетно. При этом система на следующем шаге должна переходить в состояние Qio, если л четно, и в состояние Q,i, если л нечетно. Начнем со слова Аа{аа)тВЬ{ЬЬ)п, где @п означает повторение слова @ п раз. Нашими первымг продукциями будут I A a -+Cc -*-CCCC или A a -*Cccc -+CCCC в зависимости от того, какое из значений @ или 1) принимает S{. (Это зависит лишь от того, в каком состоянии мы находимся.) Для краткости мы будем записывать продукции таг-системы в сокращенном виде, указывая лишь первую букву посылки и слово следствия, так как запись агх$->$Лг является избыточ- избыточной. Во всех случаях число Р вычеркиваемых букв равно 2. Применение указанных продукций дает слово ВЬ(ЬЬ)пСс(сс)тпГ, где ш' есть либо 2т, либо 2т + 1 в зависимости от того, дол-
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 323 жна или не должна в данном состоянии машина записывать 1 или 0 в ячейку, которую она оставляет. Основная проблема здесь состоит в том, чтобы определить, четно или нечетно п. Процедура, выполняющая это, начинается с продукций т. е. Вх% Ьх% которые порождают слово Cc(cc)m'Ss\ и продукций которые приводят -к SsnDiD0(dld0)m. Теперь уже начинает оказывать влияние четность или нечетность п, так как продук- продукции л-1 приводят либо к DID0(d,d0)m T{T0{t{tQ) 2 при нечетном п, либо п к DoididoI"' Т{Т0У^0J при четном п. Это имеет большое значение, так как теперь система должна просматривать лишь символы с индексом 1 в первом случае и лишь символы с индексом 0 во втором случае. Следовательно, теперь мы можем обойтись двумя отдельными наборами про- продукций -п нечетно— п четно dn которые приводят соответственно к и То(Шп'аоЛоао(аоао)т\ где через п' обозначается либо rt -а- во втором случае. И* п-\ в первом случае, либо
324 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Наконец, продукции -л нечетно— г,-* в А —п четно— То -> В0Ь0 /0 -> bobo приводят к получению требуемых слов Да, , (ft,*,) rt-l 2 ИЛИ m' Эти два окончательных слова обладают тем важным свойством, что они полностью принадлежат совершенно разным, непересе- непересекающимся алфавитам. Это значит, что теперь для определения того, как будет изменяться слово на следующем шаге, мы мо- можем написать различные продукции для случаев, когда л четно и когда л нечетно. Теперь мы можем наметить структуру про- программы. Для каждого состояния Qt машины Тьюринга мы за- записываем набор продукций, подобный тому, который описы- описывали выше. При этом используем для каждого состояния пол- полностью отличные друг от друга алфавиты. Затем мы связываем между собой эти наборы продукций. Если при Qn машина пере- переходит в состояние Q,-, то мы выберем выходные буквы Аи аи В\ и Ь\ состояния Qi такими же, как входные буквы А, а, В и Ь состояния Qj. Аналогично выходные буквы состояния Q,o мы идентифицируем с входными буквами состояния, в которое ма- машина переходит при Q,o. Таким образом, мы можем моделировать взаимосвязь со- состояний произвольной машины Тьюринга путем объединения в одну большую таг-систему всех описанных выше таг-продук- таг-продукций. Этим и завершается доказательство теоремы 14.6.1. ^ 14.7. НЕРАЗРЕШИМОСТЬ „ПРОБЛЕМЫ СООТВЕТСТВИЯ" ПОСТА В 1947 г. Пост показал, что не существует эффективной про- процедуры для получения ответа на вопросы следующего типа: ПРОБЛЕМА СООТВЕТСТВИЯ Дан алфавит А и конечное множество пар слов (gt, h{) в ал- алфавите А. Существует ли последовательность Ui2 ... iN выбо- выборок, такая, что слова s<,Si2 • • • §iN <, t2 • • • iN>
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 325 образованные сцеплением (записью в некотором порядке) соот- соответствующих букв g и А, идентичны? Доказательство неразрешимости таких проблем, данное По- Постом, сложно, но результат разд. 14.6, состоящий в том, что однородные нормальные системы могут быть универсальными, позволит получить очень простое доказательство. Действитель- Действительно, можно показать, что любая процедура, которая способна эффективно ответить на все вопросы относительно соответствия, может с тем же успехом быть использована для того, чтобы решить, достигнет ли таг-система или другая однородная нор- нормальная система остановочного символа, а это эквивалентно тому, чтобы решить, остановится ли машина Тьюринга. Доказательство. Пусть М есть однородная нормальная си- система с аксиомой А и продукциями ?,•$-> $А*. Пусть теперь ока- оказалось так, что система закончила работу, выдав в итоге слово Z, которое не начинается ни одним из слов gt. Определим сле- следующим образом Gi и #,-: если gt = apaq ... at, то пусть Gt есть XapXaqX ... Xat и если hj = auav ... аг, то пусть Ht есть aJXavX ... агХ Рассмотрим теперь систему соответствия Go Gt 1XY \_ \ \ ХАН0 Ht Y где слово А сформировано из слова А путем введения после каждой буквы слова А буквы X, а слово 2 сформировано из слова Z путем введения перед каждой буквой слова Z буквы X. Y есть новая буква. УТВЕРЖДЕНИЕ Эта система будет иметь подходящую пару идентичных слов тогда и только тогда, когда однородная нормальная система (gri$_>$ft.)) начиная со слова А, заканчивает работу словом Z. Действительно, если имеется какое-либо решение вопроса о со- соответствии, то имеется только одно решение, и это решение представляет собой (для букв G,) последовательность посылок и (для букв Hi) последовательность следствий, возникающих при выводе слова Z из А.
326 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Если мы можем установить справедливость этого утвержде- утверждения, то отсюда следует неразрешимость общей проблемы соот- соответствия, так как любую проблему останова' машины Тьюрин- Тьюринга можно рассматривать как вопрос о том, достигнет ли рас- рассматриваемая машина некоторого специального состояния при чистой ленте. Далее в случае нормальной системы это можно свести к вопросу об окончании работы системы на некотором конкретном слове Z. (Кроме того, можно просто свести это к не- неразрешимой проблеме остановки для таг-систем.) Почему справедливо указанное утверждение? Прежде всего укажем, для чего нужны буквы X и Y. Буквы X нужны для того, чтобы была уверенность в том, что если вообще существует под- подходящая пара, то она должна начинаться с записи ХА аксиомы А. Это гарантируется тем, что если слово Я начинается с X, то оно обязательно начинается с ХАН0, а так как все слова G должны начинаться с X, мы можем быть уверены, что любой подходящий набор начинается с ХА. Аналогично любая подхо- подходящая пара слов должна заканчиваться записью Z, или, более точно, должна заканчиваться ZXY, так как в конце слова G не может стоять X, а в конце слова Я могут быть только X или Y. Отсюда следует, что если вообще имеется какое-либо решение проблемы соответствия, то это должно быть слово, представлен- представленное в одной из двух форм: _ XAH0HhHi2... HtY. Но если это так, то за последовательностью букв G* стоит в точности такая же последовательность, которая возникает при работе исходной однородной нормальной системы (gu ht)\ Мы можем доказать это по индукции^ Мы уже убедились в том, ято слово Я должно начинаться с ХА. Тогда слово G должно начи- начинаться с Go. Почему? Потому что система однородна] Это озна- означает, что в качестве начала аксиомы А подходит лишь g0. Но в таком случае go определяет h0 — слово, которое должно быть добавлено к А, — и позволяет нам исключить начальное Go. Следовательно, в качестве начала остающейся части слова под- ходит лишь Gt . Это означает, что на следующем шаге нормаль- нормальная система применит продукцию к git. Тогда Glx определяет Н( — слово, которое должно быть добавлено к тому, что оста- останется после исключения G{t из начальной части слова. Затем опять определяется Gt, поскольку система однородна, и это слово должно быть в точности посылкой продукции, которую нормальная система будет использовать на следующем шаге.
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 327 Таким образом, последовательность Gt должна быть точно такой же, как последовательность gu лежащих в основании од- однородной нормальной системы (и, следовательно, должна соот- соответствовать шагам вычислений машины Тьюринга). Если про- процесс заканчивается, то за последним Gu которое было использо- использовано, следует Z, т. е. то, что по определению останется тогда, когда уже нельзя будет применить ни одну продукцию. Следовательно, если слова соответствуют друг другу, то оба они должны представлять собой последовательность, о которой говорится в нашем утверждении. До сих пор единственными однородными нормальными си- системами, которые мы рассматривали, были таг-системы. Однако мы могли бы, более непосредственно используя теорему 14.1.1, показать, что однородные нормальные системы универсальны. Рассмотрим произвольную машину с двумя регистрами. Будем представлять ее состояния словом в форме I, 1 1 1 ... 1 1 1 /С/ 1 1 1 ... 1 1 1. Тогда, применяя те же методы, что и в разд. 12.6, мы можем следующим образом реализовать типы команд, рассматривае- рассматриваемые в теореме 14.1.1. Условное вычитание из первого регистра: IiKi$-+%Ij'Ki' (т. е. переход к 1Г, если регистр пуст) 1$-*$1 или *$//+1 (вычитание 1 и переход к //+1) Условное вычитание из второго регистра //$-*$// (переход для просмотра второго регистра) 1 /С///$ —" $/С///' (переход к //', если регистр пуст) (вычитание 1 и переход к //+1) Прибавление к первому регистру Прибавление ко второму регистру Задача. Сможете ли вы сделать подобные построения для случая трех или более регистров?
328 ЧАСТЬ Ш. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ. И ВЫЧИСЛИМОСТЬ 14.8. „МАЛЫЕ" УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА Существование универсальных машин достаточно удивитель- удивительно само по себе, но еще более поразительно то, что такие ма- машины могут иметь весьма простую структуру. Может возникнуть вопрос: насколько малыми могут быть такие машины? Но для того, чтобы ответить на него, прежде всего нужно иметь неко- некоторую меру величины или сложности машины. Шеннон [92] пред- предложил рассматривать в качестве такой меры произведение чис- числа символов и числа состояний, поскольку, как он показал, это произведение является в некотором смысле инвариантным. Пе- Перестановка состояний и изменение символов не слишком сильно влияют на величину этого произведения. В этом разделе'мы опишем машину Тьюринга с наименьшим известным до настоящего времени произведением числа состоя- состояний на числа символов. Эта машина является самым последним результатом «соревнования», начатого Икено [35], который пред- предложил конструкцию машины с шестью символами и десятью состояниями F,10), Ватанабе [103]—F, 8), Минским [61] — F, 7),. Ватанабе [104]— E,8), Минским [62]— F,6), и, наконец, в работе Минского [63] была предложена машина с четырьмя символами и семью состояниями D,7), описываемая в этом разделе. Будет принято, что читатель включится в это соревно- соревнование (я полагаю, что одна из машин с C, 6) может быть уни- универсальной, но не могу доказать этого), хотя нужно отчетливо понимать, что этот вопрос является очень сложной головолом- головоломкой, но не представляет серьезного математического интереса. Для того чтобы увидеть, насколько изощренные приемы могут здесь потребоваться, читатель может ознакомиться с машиной F,6), описанной в моей статье [63]. Эта машина гораздо слож- сложнее, чем машина, описываемая в этом разделе. 14.8.1. Универсальная машина с четырьмя символами и семью состояниями Само понятие универсальной машины Тьюринга связано с понятием описания. Машина, которая моделируется, должна быть описана на ленте универсальной машины в виде некото- некоторого кода. Один из способов такого описания состоит в том, чтобы почти буквально записать на ленте универсальной ма- машины пятерки моделируемой машины. Именно так мы и посту- поступали, описывая машину в гл. 7. С другой стороны, описание в виде пятерок не имеет каких-либо особых преимуществ, и, мо- может быть, другой способ описания позволит построить более простую универсальную машину. Тем не менее мы не должны
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 329 заходить слишком далеко в этом направлении, так как если допустить возможность проведения вычислений произвольных частично-рекурсивных функций с целью их кодирования и допу- допустить, чтобы код зависел от исходных данных, то в качестве кода можно использовать результаты самих вычислений ма- машины Тьюринга. Но это можно было бы рассматривать как мошенничество. (Это привело бы к машине B,0) так как от- ответ мог бы быть записан на ленте в единичном коде, и не тре- бовалось»бы никакой вычислительной части.) Поэтому мы вве- введем правило, согласно которому для осуществления кодирова- кодирования нельзя использовать ничего подобного полному проведению вычислений. Говоря содержательно, это будет гарантировано, если кодирование производится отдельно для структуры машины и для данных. В этом случае мы можем быть уверены, что в процессе кодирования машина не была приспособлена к кон- конкретным данным. Условие, которое мы выдвинули, объясняет то, что мы будем делать ниже. Более формально, можно было бы, например, потребовать, чтобы процесс кодирования пред- представлял собой примитивно-рекурсивную операцию манипулиро- манипулирования символами на входе; это также гарантировало бы нам, что если машина получилась бы универсальной, то это произо- произошло бы не благодаря специальным приемам, использованным в процессе кодирования. Этот вопрос рассматривается в работе Девиса [15]. Сначала мы опишем кодирование для нашей ма- машины, а затем — ее таблицу переходов для состояний и сим- символов. Машина с четырьмя символами и семью состояниями будет действовать путем моделирования произвольной таг-системы (с Р — 2). Согласно теореме 14.6.1, машина, способная это де- делать, должна быть универсальной. Из доказательства теоремы •14.6.1 мы знаем, что представление пятерок любой машины Тью- Тьюринга в виде таг-системы с Р = 2 связано с длительной, но тривиальной процедурой. Поскольку для любого такого пред- представления можно заранее оценить объем требуемой работы, пе- переход является примитивно-рекурсивной операцией. Для каждой пятерки требуется записать 16 продукций. Предположим теперь, что таг-система выглядит следующим образом: Алфавит: аи а2, ..., ат Продукции: а1-^-а11а12 ... а,П1 • • • а
330 ЧАСТЬ 111. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ где щ есть число букв в следствии из а,-. Для каждой буквы а потребуется вычислить число N{ следующим образом: так что Nt = 1 + ti\ + п2 + ... + л,-_|. Заметим, что это число на единицу больше, чем число букв, входящих в следствия всех продукций, предшествующих продукции для а{. Вскоре мы уви- увидим причину такого определения. Будем представлять любое слово (например, аксиому) aTas...az на ленте машины U в виде слова так что Л^ выражает длину слова из букв у, используемого для представления в машине слова а*. Буквы А используются для разделения этих слов. Продукции можно выразить следующим образом. Опреде- Определим так, что представление следствия посылки а* начинается с 11, после чего идут буквы следствия в обратном порядке, разделен- разделенные парами 01. (Здесь вместо слов из букв у мы используем слова из нулей.) Теперь мы можем окончательно описать всю ленту машины U. Эта лента выглядит как • ••000 Рт Рт., ••• Рг Р, И S 000 ••• Идея кодирования состоит в следующем. Пары 11 и 01 ис- используются как знаки препинания, 11 отмечает начало продук- продукции, а 01 разделяет буквы следствия продукции. В i-й продук- продукции Р{ содержится в точности щ знаков препинания и имеется один дополнительный знак 11 слева от слова S. Следовательно, между S и началом Pi имеется в точности Nt знаков препина- препинания. Таким образом, выбранный для представления а* код yN{ содержит всю информацию, необходимую для нахождения про- продукции, соответствующей этой букве. В машине будут использоваться только введенные уже бук- буквы: 0, 1, у и А. Ясно, что 0 представляет собой также пустой символ на оставшейся части бесконечной ленты. Таблица 14.8.1 представляет собой таблицу символов-состоя- символов-состояний машины. Понятно, что, если не задается новое состояние, машина остается в прежнем состоянии. Машина начинает работу в состоянии q2 с первого символа в слове S. По-видимому, бесполезно пытаться объяснить работу
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 331 Таблица 14.8.1 У 0 1 А 0L 0L li/2 \L <7l OL/1 V* AR yR/в <7з yL Останов AL 1Z./4 «74 VL VRI5 1L/7 \L <7e yR уф AR IR <7« yR AL/3 AR \R It OR yRie IR OR/2 машины иначе, как с помощью примера, так как все ее различ- различные функции достаточно перемешаны. В принципе в состояниях q\ и <7г производится считывание первого символа в S, нахожде- нахождение и выделение соответствующей продукции Яг и стирание пер- первого символа в 5. В состояниях q3, Ць Ць и <7б следствие про- продукции повторяется в конце слова S. (Повторение осуществляет- осуществляется изнутри наружу, именно поэтому продукции записывались в обратном порядке.) Когда находится конец продукции (в со- состояниях q\ и <77 мы ищем 11), то в состоянии qi лента восстана- восстанавливается путем удаления меток из области продукции и одно- одновременного стирания другого символа в S. Так как в S сти- стираются два символа и одновременно добавляется соответствую- соответствующая продукция, то мы имеем таг-процесс с Р — 2. Проблема построения «малой» машины состоит в том, чтобы избежать использования новых букв в качестве меток. Вся раз- разметка рабочего пространства машины осуществляется переста- перестановками нулей, единиц, букв у и А. Если в состоянии <7з встречается символ 0, то машина оста- останавливается. Оказывается, что это может произойти лишь при выполнении особых условий, но в конце концов эти условия реализуются, если в систему включается специальное слово Рн — 110101, используемое в качестве продукции, а на эту про- продукцию есть ссылка. Так что, если требуется, чтобы какие-ни- какие-нибудь буквы приводили к останову, мы придаем им продукцию Рн. Число Ля. приписываемое символу останова Рн, равно 3. Построение и описание примера представляет собой доволь- довольно утомительное занятие. Мы приведем здесь простой пример. ПРИМЕР Будем кодировать машину для простой таг-системы: Oj -*¦ а2, а2 -> а2а3, а3 -> Останов.
332 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Для этой системы n, = l #, = 1 Pi =11 О n2 = 2 N2=2 Р2=П0000 0100 Л^з = 4 /'з =11 01 01 (Продукция останова) Если мы начнем с аксиомы а^аь то она кодируется как ууАууАууА и лента выглядит как // 01 01 11 0000 01 00 1Г 0111 у у А уу А уу Машина размечает символы, двигаясь влево, обнаруживает две группы пунктуации, а затем идет вправо в состояние q& и запи- записывает букву А в конце. Лента, следовательно, выглядит так: // 01 01 11 0000 01 00 \лАу\йА уу у уу 1 уу А Заметим, что в начале слова произведены два вычеркивания. Теперь производится запись продукции в конце (в обратном порядке) в виде двух нулей, А и еще четырех нулей; при этом образуется yylyyyy: II 01 01 II уууу уА у у ААу\АА\ уу у уу 1 уу I уу 1 уууу При следующем перемещении влево машина наталкивается на 11 и устанавливает, что запись продукции закончена. Машина переходит в состояние qr и восстанавливает ленту в виде И 01 01 11 0000 01 00\И 0 00 0 00 О уу А уу А УУУУ Фактически это то же самое, что и начальное состояние (#2 дей- действует так же, как q\), за исключением того, что слово а2а2а2 заменено, как это и должно быть, словом а2агаз. Если читатель проследит операции до конца, то он увидит, что следующее слово будет аза%аз- После этого в результате
14. ОЧЕНЬ ПРОСТЫЕ БАЗИСЫ ДЛЯ ВЫЧИСЛИМОСТИ 333 некоторых усилий мы обнаружим, что символ а3 приведет к ос- останову машины. Машина прежде всего записывает А А, и эта последовательность в конце концов приводит к тому, что в со- состоянии q3 обнаруживается символ нуль. 14.8.2. Структура универсальных машин Можно было бы предположить или надеяться, что из свой- свойства универсальности машины Тьюринга будут вытекать неко- некоторые интересные выводы о диаграмме состояний. Однако пред- представляется, что в общем случае об этом больше нечего сказать, так как существуют универсальные машины со столь тривиаль- тривиальной структурой, что невозможно сделать сколько-нибудь инте- интересных выводов. Пусть, например, мы строим простую машину для таг-системы с Р = 2. Пусть аксиома S записана на ленте «| О 0 0...S... О 0 о\ и машина с диаграммой состояний, показанной на рис. 14.8.1, начинает работать с начала слова S. Теперь в соответствии Рис. 14.8.1. с разд. 14.6 мы можем сделать такую таг-машину для любой машины Тьюринга; так что мы можем сделать ее также и для некоторой универсальной машины Тьюринга. Следовательно, существует машина с такой структурой, являющаяся универ- универсальной. По-видимому, просто не требуется структуры, сколько- нибудь более сложной, чем структура автомата для умножения. Это и не удивительно, если иметь в виду теоремы, подобные теореме 14.2.1, и трудность исключения полной рекурсии, напри- например минимизации, в любой машине, обладающей какой-либо способностью выполнять итеративные операции. Шевнон [92]
334 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ показал, что, располагая достаточным числом символов, можно заменить любую машину Тьюринга машиной с двумя состоя- состояниями. Это указывает на то, что структура диаграммы состоя- состояний может быть спрятана в деталях работы и не будет замет- заметной в явном виде в топологий связей между состояниями. Задача. Выбрать любую машину с двумя символами и двумя состоя- состояниями и показать, что оиа не универсальна. Указание. Показать, ято задача ее останова разрешима, описав про- процедуру, которая решает, остановится или не остановится машина при любом данном содержании ленты. Боброу и автор в неопубликованной работе 1961 г. проделали это для всех машии B,2) путем кропотливого сведения к 30 с лиш- лишним случаям (опубликовать невозможно;.
15 Глава 2 УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 2.7.2. Выход О указывает на то, что до настоящего времени нули и еди- единицы всегда появлялись парамн. Заметим, что нижнее правое состояние яв- является поглощающим, т. е., придя в него однажды, машина никогда не может его покинуть. В соответствии с принятой в гл. 4 терминологией выход О соответствует классу эквивалентности предыстории @0 V 11) *. 2.7.3. Если бы машина имела k состояний и перешла к печатанию нулей н виде последовательности ... 0Л+1 1..., то она должна была бы перейти в одно из прежних состояний и никогда не смогла бы напечатать 1 и продол- продолжить «счет». 2.7.4. Выходы не содержат никакой информации, которая бы уже не со- содержалась в предыстории, оказывающей влияние на последующие выходные сигналы. 2.7.5. Основная идея состоит в том, чтобы организовать распространение вдоль цепи двух сигналов, одни нз которых движется втрое быстрее другого. Когда сигнал, имеющий большую скорость распространения, отражается от конца цепн, он встречается с другим сигналом в середине цепи. Таким обра- образом цепь может быть разделена на две равные части (если не вдаваться в детали, относящиеся к случаям четной и нечетной длины цепи). Процесс по- повторяется в каждой из двух частей после того, как в середине цепи генери- генерируется команда «стреляй, когда будешь готов». Солдат производит выстрел в тот момент, когда он оказывается в изолированной цепи длиной 1. Такое решение требует Зя моментов для цепи из п солдат. Напраши- Напрашивается мысль о том, что решение может быть получено за время порядка 2я. (Покажите здесь, что за более короткое время синхронизация цепи невоз- невозможна.) В действительности нетрудно построить решение с временем син- синхронизации порядка B + е)я при сколь угодно малом е > 0. Труднее пока- показать, что существует решение с временем синхронизации, в точности равным 2п. Впервые это было показано Е. Гото1). Решение было найдено Р. Бал- зером2). В этом решении автомат, представляющий солдата, имеет лишь 8 состояний, а вдоль цепи в каждом направлении распространяется 8 видов сигналов, что эквивалентно 64 входам. Некоторые новые результаты, относящиеся к этой задаче, содержатся в статье Фншера [21]3}. •) См. Goto E., A Minimum Time Solution of Firing Squad Problem, Dittoed Cource Notes for Applied Mathematica, 298, Harvard University, 1962. — Прим. перев. s) См. Balzer R., An 8-state Minimal Time Solution to the Firing Squad Synchronization Problem, Information and Control, 10, 1 A967).— Прим. перев. 8) Другие решения задачи о синхронизации цепи автоматов были полу- получены в работах: 1. Левей штейн В. И., Об одном методе решения задачи синхрониза- синхронизации цепи автоматов за минимальное время, Проблемы передачи информации, 1, 4 A965).
336 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Глава 3 3.2.1. Ключ к решению этой задачи состоит в том, что ложные числа, вырабатываемые цепью из двоичных счетчиков при переносе, по величине меньше, чем текущее число в счетчике. 3.2.4. Покажем на примере, как это можно сделать; читатель сможет сам найти общий метод. Для того чтобы умножить число х на 20, будем ис- использовать схему вида Двоичный сумматор 2х КЗ Двоичный сумматор Двоичный сумматор 8х Двоичный сумматор 16х и Двоичный сумматор 201- х. У- 3.6.1. Решением является следующая схема: 123 Глава 4 4.2.1. A)@ *10*10*)*0*. Запуск- Выход 2. Варшавский В. И., Мараховский В. В., Песчанский В.'А,. Некоторые варианты задачи о синхронизации цепи автоматов. Проблемы пе- передачи информации, 4, 3 A968). 3. Varshavsky V. I., Collective behaviour and control problems, Mashine Intelligence III, Edinburgh University Press, 1968. В первой из этих работ число состояний автомата равно 9, а во второй и третьей — 8 (время синхрони- синхронизации минимально). Во второй работе приводится также решение задачи для случая, когда стартовый сигнал может быть подан на любой автомат цепи. Значительный интерес представляет обобщенная постановка задачи, когда рассматривается синхронизация на произвольном графе. Насколько нам из- известно, решение такой задачи получено В. И. Левенштейном. — Прим. перга.
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ B) (О V1111 * ) * = ¦ 1111 * ) * ¦ 337 Выход C)(@V 1H00(OV 1H) *. Поглощающее состояние Запуск - Поглощающее состояние D) [0 *1 A1)*0*01 A1)* 0*0]* (И)*. 4.3.2. /?,, (ae V abg V dg) (A Vfg)*. 4.3.3. Правила ? V F =¦ F V Е, (Е V F)* - (Е* F)* Е* 4.3.4. Верно. Неверно. Неверно. Верно. Верно. 4.5.4. ?=.@1 V 001*0 V 11*0)*, ?Я-A0 V01*00 V 01*1)*. Поглощающее состояние Два состояния нельзя объединить, поскольку последовательность ООП может следовать после события 01, но не после события 000, так что они не могут представлять эквивалентные предыстории. Вот почему нужно исполь- использовать множества {Q}«oa для представления выражения аУЬ* единственным
338 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ состоянием, в то время как любое состояние, которое представляет вы- выражения а и Ь * , должно также допускать выражение ab * . 4.5.5. A) Может быть распознана: (О VI)*. B) Может быть распозна- распознана: 10 * . C) Не может: машина с конечным числом состояний должна «сбиться со счета». D) Не может. Заметим, что бесконечная машина, по- подобная описанной в разд. 4.2.3, может распознать такие последовательности. E) Не может. F) Может: @ V 1) * Е. G) Может: @ V 1)*? @ V 0*. (8) Не может! Не распознаются последовательности ЕЕ. Машина может распознавать ? = 0*1, но никакая машина не может распознать {0п10п1} 001001, 00010001, ... 4.5.6. (а * Ь * ) * , (а * F6) * Fа) * ) *, (a* ((bb)*.(ab) *)*)*. В общем случае это можно сделать, если двигаться с внешней стороны вы- выражения внутрь. Глава 6 6.1.1. Состояние, ассоциированное с движением влево, само по себе является полным двоичным счетчиком. (Можно опустить символ В и вместо него повсюду использовать I.) 6.1.2. A) Предложите конструкцию машины, которая сначала перепи- переписывает число, а затем действует как работающее в единичном коде множи- множительное устройство, которое описано в разд. 6.1.4. B) Естественно, существует много способов, чтобы сделать это, так что ваше решение ие обязательно должно быть таким, как предлагаемое ниже. Суммирование заканчивается слева от символа В. Почему мы использовали два с-имвола Л? Останов , Вычесть единицу" „ Придавать вданицу"
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 339 Запуск 6.1.3. В конце концов на ленте будут напечатаны произвольно длинные отрезки вида 001010010001000010... 6.3.1. А Начальное / \0 состояние \ / v~ Перезапись Прибавление единицы 12*
340 ЧАСТЬ III, СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ. И ВЫЧИСЛИМОСТЬ 6.3.3. A) 0—¦Применима Начальное состояние L У* х- B), C) Испольвуйте функции L )?—чг-»- Неприменима дайной конечной машниы для составления пятерок {qit sjt G(qiSS),0,l} дли Sj = 0,1 и {qit X, Н, 0@, 1}, где <t>(i) =0, если qt есть допустимое заключи- заключительное состояние, и 0(i),— X —в противном случае. D) Очевидно, что различие между машиной общего типа с движением головки вправо и рассмотренными выше машинами касается только вхо- входов siS; поскольку машина не может возвратиться назад, чтобы осмотреть их, они могли бы также быть и нулями! E) Нет. Из-за D) и того факта, что конечные машины не могут делать этого. F) Нет, если у вас иет способностей Тьюринга. Но вы сможете сделать это после прочтения гл. 8. Глава 7 7.4.1. Нетрудно описать основную идею решения. Представьте себе свер- свернутую вдвое бесконечную леиту машины Т, как это показано на рисунке. За- Затем всю информацию, содержащуюся на этой лепте, можно однозначно «ото- бразить> иа новой полубескоиечиой лейте. Для ее использования потребуются, конечно, кореииые изменения деталей конструкций иа рис 7.2.6 и 7.2.7. Более изящное решение получается при решении задачи 7.4.2, где результатом ре- решения является машина, работающая непосредственно с лентой, бесконечной в обоих направлениях»
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 341 7.4.3. Начните с построения машины Т, которая любую данную последо- последовательность символов из фиксированного алфавита {si, s2,... sr] ... s. преобразует в последовательность (Яо), 0, (?,)• *,,. 1. X, (?,). О, (q2), *li? I, где (qi) — представление целого числа i. Затем рассмотрите машину Т, и пусть последовательность s^ sl ... s^ будет представлением самой маши- машины Г, причем описание машины Т начинается с состояния qn+\. Длинная последовательность пятерок в этом случае описывает искомую машину. Глава 8 8.3.1. Машина Тв состоит в основном из машины Г плюс устройства для стирания всей информации, первоначально записанной иа ленте машины Т. Тв записывает сначала АОВ и начинает работу против этого 0. Когда необхо- необходимо иметь больше «пустого» пространства, она «раздвигает» символы А и В, уничтожая все, что было первоначально записано иа лейте. 8.3.3. Это просто особый случай задачи из разд. 8.3.4, потому что для рассматриваемых там типов машин не играет никакой роли то, является ли первоначально заполненная часть ленты конечной или бесконечной. 8.8.1. A) Процедура решения существует. Для данной длины L непустой ленты t и данного числа N состоянии машины Г можно вычислить границу B(L,N)=L-N2. Машина Г ие может сделать более чем L-N шагов без того, чтобы не повторить конфигурацию состояние—лента, либо стереть еди- единицу, либо повторить конфигурацию, двигаясь по пустой части бесконечной леиты. И существуют не более N единиц, которые стираются. Так что если Т ие запишет 1 за L№ шагов, оиа никогда не сделает этого. B) Ответом будет «нет» вследствие теоремы 14.5. 8.8.2. A) Нет; по тем же причинам, что указаны в разд. 8.3.4. B) Н () ; р B) Нет; причины в основном те же. C) Пй б ; р () Постройте машины, подобные рассматривавшимся в разд. 8.3.4, ко- которые, когда их прототипы останавливаются, стирают все между А и В. Пусть Г — машина, которая останавливается при условиях, описанных в разд. 8.3.4. Тогда эта проблема эквивалентна проблеме останова для ма- машины Т'. D) Оиа разрешима. Вычислите границу, как в задаче 8.8.1 A), и моди- модифицируйте счет и проверку так, чтобы видеть, войдет ли за это время ма- шииа Т в цикл. Глава 9 9.2.1. Если рациональное число определено как p/q, мы построим машину Тьюринга Гр, ч, которая сначала печатает целую часть от p/q (записывая ее цифры в первых нескольких состояниях TPiq). Затем мы должны напечатать (возможно, бесконечную) десятичную последовательность цифр остатка. Но эта последовательность всегда в конечном итоге периодична, например 22 -у- - 3, 142 857 142 857 142 867
342 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ так что этот цикл может быть заложен непосредственно в TPl q. Между прочим, можете ли вы использовать доводы, основанные на конечности числа состояний для доказательства того, что последовательность цифр рациональ- рационального числа периодична? ¦ ¦ 9.2.2. По данной машине Та, которая вычисляет ап— п-ю цифру а, когда п записано на ленте, мы построим новую машину Та, лента которой имеет (в конце процесса вычисления каждой цифры) вид Xa0XatXa2X ... ХапХ (л) У. Новая машина Та считывает число, которое находится между символами X и У, т. е. делает то, что должна делать Та, используя методы, напоминаю- напоминающие развитые в разд. 8.3.4. Однако эти методы модифицированы и расши- расширены так, чтобы предохранить от перекрытия ранее записанную машиной Та информацию, которая предшествует последнему символу X. Когда машина заканчивает вычисления, лента должна иметь вид Xa0XaiX ... ХапХап+1Х (п + 1) У. В машине необходимо сохранять числа п до конца вычисления, но это орга- организовать легко. Показать эквивалентность в другую сторону тоже нетрудно: по данной машине типа Та строится Та, такая, что по данному пТа будет работать до тех пор, пока не напечатано я символов X; затем стирается все слева от последнего X. 9.3.1. Основная идея решения очень проста, но плодотворна. Начнем с того, что снабдим машину М некоторым представлением n-й ленты, кото- которую она может интерпретировать как целое число N. Это приводит машину ТR в контролируемый режим работы. Она ждет, пока TR напечатает в точности п символов X (как в задаче 9.2.2). Затем она прекращает моде- моделировать Т„ и проверяет цифру слева от последнего символа X, который был напечатан. Эта цифра определяет ответ. 9.6.3. Число '/з = 0,33333..., очевидно, вычислимо, так что функция fC/з), если она вычислима, должна быть определена. Но не существует способа определить ее значение в любой конечный момент процесса просмотра ко- конечной входной ленты, так как в любой такой момент машина не считывает ничего, кроме троек. Следовательно, она должна проверить следующую вход- входную цифру. Определенное решение можно принять только в случае, когда она впервые натыкается на цифру, меньшую 3 (в этом случае f(x) =0) или же цифру, большую 3 (при этом f(x) = 1). Если же иет ни одной такой цифры, как в этом случае, она никогда не остановится. Глава 10 10.3.3. Если двоичные числа у и z представлены в системе счисления с основанием 3: f Ut. ') = „</,,z", то мы попусту расходуем '/з каждой цифры. В этом случае В общем случае при использовании основания г мы имеем
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 343 а величина 1/л может быть сколь угодно малой. Можно прийти к лучшим результатам при использовании более сложных кодов и получить C{y,z)<yz(\+e) (для любого е и достаточно больших у и г). Но нельзя получить результаты лучшие, чем С (у, г) ~ у • г, потому что для любых уо, 2о найдется уога пар (Уо,га), для которых У < У о и г < г0. 10.3.4. Для того чтобы найти у по данной С(у,г), найдите наибольшее п, для которого Тогда эта разность будет иметь значение у, подобная процедура существует И ДЛЯ 2. 10.4.1. Суммирование было выполнено в разд. 10.3.2; произведение на- находится аналогично. 10.4.2. Определите Е(х,у) и Ф(х) как Е (х, у) = \, если х = у, Е(х,у) = 0, если хфу. Это и есть искомая функция Ф. Убедитесь, что введенное выше определение может быть записано по схеме примитивной рекурсии (используйте задачу 10.4.1). 10.5.1. Л@) = 1, ЛA) = 3, Л B) = 7, ЛC) = 61, ЛD) = 2^ -3. 10.6.1. Мие не известны какие-либо особенно хорошие способы выполне- выполнения перечислений этих функций, хотя здесь нет никаких принципиальных труд- трудностей. Если бы мие нужно было описать способ перечисления, то я описал бы: 1) процедуру перечисления, скажем, лексикографического, всех последователь- последовательностей, позволяющую установить, образуют ли они «правильные» множества уравнений, удовлетворяющих определениям примитивной (или общей) рекур- рекурсии. Для описания этих процедур потребовалось бы только несколько строк при использовании одного из современных языков программирования, опе- оперирующих последовательностями (такие языки упоминаются в примечании к гл. 12). 10.6.2. Предполагая, что эффективная процедура оценки определений найдена в задаче 10.6.1, оцените rt-'e определение, полученное для значения аргумента х. Если входить в детали доказательства, то нужно рассмотреть тот случай, когда функции зависят более чем от одной переменной. 10.6.3. Если вспомнить, что оператор |Л нужно использовать лишь один раз, то эта задача не очень отличается от задачи 10.6.2. 10.6.4. Функция V(a, b) не является примитивно-рекурсивной-
344 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ 10.7.1. A) Prime (и) = Р (я, 2), Р (и, k) = (if я = k then I else (if и = k • (n/A) then 0 else Pr (n, A+l))). B) Определите R(m,n) —остаток от деления т иа ft— как R (m, «) = m — n . n Тогда и (m, ft) = (if m > n then и (ft, m) else (if /? (n, m) - 0 then m else u (/? (n, m), m))) C) 0(ft) = ij>(«. n-l), t|) (n, A) =¦ (if n = 1 then 0 else (ф (ft, A - 1) + N (u (n, k)))). 10.9.1. Определим целочисленные эквиваленты следующим образом: 0 i 2 1 \ I NIL (NIL • NIL) (NIL ¦ (NIL • NIL) ) и т. д. Иначе говоря, пусть NIL представляет 0, и если п представляет целое число, то пусть С (NIL, и) представляет его продолжение. Тогда для целых х и у мы можем определить equal (дг, у) - (if x = NIL then (if у = NIL then NIL else С (NIL, NIL)) else (if у-NIL then С (NIL, NIL) else equal (T (*), (T (*)))). В этом случае выражение «equal (x, у) = NIL» будет истинным только тогда, когда х и у — оавные целые числа. Глава 12 12.3.1. Прием состоит в том, чтобы рассматривать a, b и с как цифры 0, 1 и 2 в троичной системе счисления и построить машину, подобную той, которая рассматривалась в задаче 6.3.1, но для случая троичного сложения. 12.3.2. Используйте тот же самый прием, что и в задаче 12.3.1, но при- примените систему счисления с основанием 4, добавив лишнюю цифру, играю- играющую роль разделителя слов, т. е. «запятой». 12.3.3. Слово длины п. может быть разделено в любом месте или во всех ft — 1 местах. В каждом случае есть две возможности — делить или не де- делить. Таким образом, всего имеется 2n ~ ' возможностей. 12.4.1. Докажите это по индукции. БАЗА: все палиндромы длины 1 и 2 (так как являются аксиомами). Любой палиндром длины и>2 имеет вид хРх, где Р есть палиндром длины ft — 2. Используйте различные гипотезы индукции для четных и нечетных длин слов. 12.4.2. Если N есть число состояний машины, то она должна быть при- применима к палиндрому aaNbaNa,
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 345 но при этом во время первой последовательности букв а она должна по- повторить одно из своих прежних состояний. Если L есть длина возникшего таким образом цикла, то эта же машина должна быть применима и к слову aaN+LbaNa, которое не является палиндромом. 12.4.6. Можно считать, что любой набор скобок достраивается снаружи. Например, набор скобок в задаче 12.4.5 мы можем получить как о (О) (О О) (ООП) (О О (О)) (О О ((О») Так, для того чтобы получить ()() из (), мы полагаем, что $i есть (), а $2 — пустое слово. Для того чтобы доказать, что система порождает все правильно сформированные слова, используйте методы, подобные тем, что рассматривались в разд. 4.2.3. 12.6.1. Если бы слова Sh были удалены, то мы получили бы продукции Тогда к слову, начинающемуся с qt, были бы применены две различные про- продукции, и в конце концов мы могли бы получить два различных доказатель- доказательства одной и той же теоремы. 12.6.2. Здесь достаточно следующего набора продукций; При этом процесс останавливается после получения qaH или q\H. Благодаря специфике этой задачи иам не нужны продукции для порождения ленты. 12.6.3. Аксиома должна иметь вид правильно построенного набора ско- скобок, где х соответствует левой скобке, а у — правой. 12.6.5. Можно построить систему, которая порождает лишь квадраты чисел, например Алфавит: I Аксиома: I Продукция: $->$$$$ но при этом будут порождаться не все числа, явлиющиеся квадратами чисел натурального ряда.
346 ЧАСТЬ III. СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ Любая продукция в алфавите, состоящем из 1, может быть представлена в виде l©2 • • • ©n1 ~* 3>i a>2 • • • ©п ' ' (Почему?) Возможны два случая: либо все k равны между собой, либо среди них имеются неравные. Пусть k, Ф kj. Рассмотрим тогда любое чис- число х, порождаемое системой, и любое число г < х: k + (k k) + 1 km. х = (дг — т — г) + г + m -> ki (x — m — г) + kjr + I = k{x + (kj — k{)r + 1— k( Если ki =0, то при этом система содержит арифметические ряды r(kj — ki) + (I—kirn) по г, а множество чисел, являющихся квадратами чисел натурального ряда, ие содержит арифметических рядов. Если же kt = 0, то система содержит пары чисел, отличающихся друг от друга на произвольно большую величину ft, — kt, что также невозможно. Следова- Следовательно, все k должны быть равны между собой. В этом случае и каждая продукция порождает последовательность чисел, растущих по по- показательному закону. Никакое конечное множество таких последовательно- последовательностей не может образовать множества чисел, являющихся квадратами чисел натурального ряда. (Покажите, что для этого они слишком сильно расхо- расходятся.) 12.7.1. Алфанит: 0,1 Вспомогательная буква: А Аксиома: А Продукции: $Л -» $0Л Обойтись без вспомогательной буквы невозможно. Подробное доказатель- доказательство очень сложно, но для того, чтобы дать представление об идее этого доказательства, рассмотрим следующую продукцию: Рассмотрим теперь любое двойное слово вида При любом S такое сяово должно являться теоремой. Когда к этому слову применяется соответствующая продукция, можно положить $j = 0, если ие выполняется условие / = k, так что вместо каждого $ь в следствии появ- появляется слово sgk+1...gngogl...gks. Поскольку S произвольно, получаемое в результате слово в общем случае не будет двойным, если только $н ие появится дважды. Поскольку это спра- справедливо для каждого k, то можно показать, что само следствие должно «повторяться». Далее можно использовать довольно тонкие аргументы, отно- относящиеся к экспоненциальному росту длины слов, как это делалось в решении вадачи 12.6.5.
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 347 12.8.1. Следующая каноническая система является расширением для ре- регулярного выражения (Ь V c)ab(a V be * ) * '¦ Аксиома: XYZ Продукции: Х$ -> 6$ Х$->с$ ¦ $№$'-> $4' Здесь X соответствует F V с), Y — ab, Z — (aV be*)*, W — (a\/bc*) и V — с *, В чем состоит здесь основной принцип? Опишите конструкцию индуктивным способом. 12.8.2. Пусть, например, машина М описывается четверкой (qu Sj, qu, Гц), и пусть qA есть множество состояний, в которые машина попадает из начального состояния qo, воспринимая входное слово. Рассмотрим систему вида Алфавит: Qo, Qu .... Qn; *ь • ••> sm Аксиома: Qo Продукции: Qi%-*Qlt%Sj (для всех / и /) Q,$->$ (все qt из qA). Докажите, что эта система есть каноническое расширение множества слов, распознаваемых машиной М. Обратите внимание на ее изящество по срав- сравнению с понятием конечного автомата. Преобразуйте систему, чтобы распо- распознавание было связано с появлением некоторых выходных символов, а не с последовательностью состояний. 12.8.3. Эта задача довольно громоздка, хотя в принципе не очень трудна. Помимо аксиом, нужно помнить список теорем для всех слов, порожденных до настоящего времени. Кроме того, нужна процедура для проверки того, не подходит ли любая рассматриваемая теорема из списка теорем к посылке (левой части) какой-либо из продукций. Если подходит, то нужно затем представить найденную часть в форме следствня этой продукции и добавить результат к списку теорем. Нужно удостовериться в том, что каждая про- продукция проверена на применимость к каждой из теорем. [Если же рассма- рассматриваются продукции с несколькими посылками (разд. 13.2), то к каждому из подмножеств списка теорем.] Кроме того, нужно проверить каждый спо- способ возможного применения каждой из продукций к каждой из теорем, так как одна и та же продукция может быть различными способами применена к одной и той же теореме (разд. 13.1). Во всех этих случаях нужно по- построить соответствующие теоремы, полученные в результате применения про- продукций. Вследствие всего этого. требуемая машина Тьюринга будет очень сложна. Мы не будем производить здесь соответствующих построений, поскольку в гл. 13 мы доказываем теорему, что продукции, которые нам нужно рассматривать, оказываются настолько простыми, что конструкция со- соответствующей машины Тьюринга оказывается тривиальной. Поэтому чита- читателю предлагается тщательно рассмотреть, что нужно включить в требуемую
348 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ сложную процедуру, ио ему ие следует в дополнение к этому заниматься выяснением деталей, относящихся к соответствующей машине Тьюринга. Гораздо лучше направить усилия на то, чтобы попытаться понять и, воз- возможно, улучшить доказательства теорем в гл. 13. Глава 13 13.1.1. Вместо того чтобы использовать построения из разд. 13.1, столь же просто доказать теорему более общего вида: любая нормальная канони- каноническая система имеет нормальное расширение, в продукциях которого по- постоянные слова gt и ht содержат не более чем две буквы, причем общее нх число во всей продукции ие более трех. Это довольно трудная задача. В моем доказательстве используется много новых символов, упорядоченных таким образом, что получается нечто вроде двоичного представления для постоянных слов исходной системы. 13.3.1. Добавить $4'справа к посылке продукции Ли. 13.3.2. В системе U используются лишь прописные буквы А, С, S и Т и строчные буквы а и 6. Моделируемый алфавит системы Q имеет вид ab, aab, aaab, ..., (а)гЬ. Так что ЬЬ не появляется никогда. Поэтому ие возникнет никакой иеодиозиачиости, если мы заменим А, С, S и Т на АЬА, АЬЬА, АЬЬЬА и АЬЬЬЬА; процедура проверки на неверное размещение про- прописных букв при этом по-прежнему работает. 13.3.5. Постройте систему Р с алфавитом из трех букв: L, а н Ь. Пусть аб, ааб, ааай и т. д. представляют буквы алфавита системы Q, н пусть Lb, Lbb, Lbbb и т. д. используются как вспомогательные буквы системы Р. По- Постройте, наконец, систему U, используя слова LLb, LLLb, LLLLb и т. д. как вспомогательные буквы этой системы. Затем остается лишь построить про- процедуру освобождения от вспомогательных букв, которая ие затрагивает лю- любого слова, содержащего внутри себя L. 13.3.6. Выберите А и Т в качестве новых букв: пусть 7"$ означает, что $ есть теорема в старой системе. Используйте затем продукции Глава 14 14.2.1. Если число в единственном регистре R есгь 2Г3', то имеется сле- следующее соответствие между наборами команд: Прибавить 1 к г •«->¦ Умножить R на 2, Прибавить 1 к s *г-* Умножить R иа 3, Вычесть 1 из г •«->¦ Разделить R иа 2, Вычесть 1 из s *г-* Разделить R на 3 при обычных условиях иа выполнение вычитания и деления. Тогда из дока- доказательства теоремы 14.1.1 видно, что можно писать программы, используя левый набор команд. Если мы введем в R 2m3n5*llu>, то это эквивалентно командам Прибавить 1 к пг, Прибавить 1 к п и т. д. Вычесть 1 из п и т. д.
15. УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 349 Но тогда соответствующие программы, в которых используется правый на- набор команд, будут работать также, если в исходном состоянии R содержит Более подробно это описано в работе Минского [62]. 14.2.2. Определите две новые команды, каждая из. которых оперирует с содержимым двух регистров г и s. А: Прибавить 1 к г, поменять местами содержимое т и s, перейти к 1}, В: Если г > 0, вычесть 1 из г\, поменять местами содержимое г и s и перейти к /,¦; в противном случае поменять местами содержимое г и s и перейти к 1ц.. Рассмотрим теперь четыре программы: A B-* В А А А В | А А А ¦ в+h в I Если мы начинаем с четных чисел в обоих регистрах, то эти программы соответственно в точности эквивалентны г1, s', г и S', если ие считать удвоенных приращений. То же самое может быть сделано, если «нормальная» последовательность является следующей командой для /j. Видите ли вы трудности, связанные с крайней справа программой? Как устранить их, помещая перед каждой программой «л, А, В, В»? 14.3.2. A) Нет, так как и 16 и D) имеют тот же самый образ. B) Да; если число четно, то это не список; если число нечетно, то это список. C) Нет, так как и 8 и A) имеют тот же самый образ.
16 ПОЯСНЕНИЯ К ЛИТЕРАТУРЕ ВВЕДЕНИЕ Никакую математическую теорию (в том числе и теорию вычислимости) невозможно изложить в полном объеме — и не только вследствие большого количества материала, но также и потому, что в процессе подбора материала и его изложения появляются новые идеи, понятия и модели. Некоторые из них не имеют существенного значения, другие же порождают новые проблемы даже в иных областях математических знаний. Для того чтобы добиться компактности изложения, приходится (иногда произвольно) отбрасывать часть материала, иа неко- некоторые вопросы обращать особое внимание, а другие изла- излагать схематично. Чтобы дать читателю возможность самому более подробно ознакомиться с некоторыми разделами теории машин и смежными областями, мы приводим следующие по- пояснения к литературе. Для облегчения пользования литературой" соответствующие темы помечены римскими цифрами. АЛГЕБРАИЧЕСКАЯ ТЕОРИЯ МАШИН I Это новая ветвь абстрактной алгебры в основном обязана своим появле- появлением клинневской алгебре регулярных выражений. Статьи на эту тему те- теперь часто можно видеть во многих журналах по теории математических машин и лингвистике. Мы приводим здесь ряд литературных ссылок, чтобы показать, как можно исследовать свойства диаграмм состояний, рассматри- рассматривая входные слова как элементы групп, полугрупп и других алгебраических объектов. ТЕОРИЯ ВЫЧИСЛЕНИЙ II В настоящее время эта теория еще слишком слабо развита, чтобы с ее помощью можно было доказать, что некоторая данная программа вычис- вычисляет некоторую данную функцию или что две программы на одном или на разных языках вычисляют одну и ту же функцию. Тот факт, что в своем наиболее общем виде проблема рекурсивно неразрешима, не следует рассма-' тривать как неустранимое препятствие. Необходимо развивать классифика- классификацию важных случаев неразрешимости, как это делает Аккермаи [1] для исчисления предикатов.
1в. ПОЯСНЕНИЯ К ЛИТЕРАТУРЕ 351 ПРОБЛЕМЫ ПРИНЯТИЯ РЕШЕНИЙ III Некоторые читатели, возможно, захотят продолжить дальнейшее изу- изучение рекурсивной неразрешимости и известных разрешимых, но достаточно обширных классов задач. Мы привели необходимое количество ссылок на литературу, которые позволят приступить к такому изучению. Некоторые из них указывают иа интереснейшие варианты проблем, обсуждавшихся в разд. 14.7. (Хао Ван и его ученики трактуют эти проблемы как бесконечные двумерные картинки-загадки.) КОНЕЧНЫЕ АВТОМАТЫ IV По этой теме включено лишь небольшое число ссылок на разделы ко- конечной математики (например, теорию переключательных функций), которые относятся к основному материалу части I книги. ФОРМАЛЬНЫЕ ГРАММАТИКИ V Эта область, появившаяся благодаря ранним работам Хомского по линг- лингвистике, стала важной ветвью математики, относящейся как к языкам про- программирования, так и к теории автоматов, занимающих промежуточное поло- положение между конечными автоматами и машинами Тьюринга. ИЕРАРХИЯ СЛОЖНОСТИ VI В теории вычислимых функций можно найти интересные определения иерархии критериев сложности. Блюм [2], например, классифицирует функции по расходу времени или ленты на их вычисление; большое внимание он уде- уделяет вопросам о том, каким образом в двух совершенно различных случаях возникает одиа и та же абстрактная структура. ИСКУССТВЕННЫЙ РАЗУМ VII Автор считает, что «мышление» представляет собой вид эффективного вычисления, и хотел бы предостеречь читателя от попыток доказать, что благодаря различию между мозгом и машинами можно разрешить неразре- неразрешимое. Это совсем не очевидно. На самом деле, это невозможно — как бы вы могли установить, не вычисляет ли данная (материальная) машина не- невычислимое число? Статьи в сборнике под редакцией Фейгенбаума и Фельд- Фельдмана [20] посвящены составлению программ для вычислительных машин, обеспечивающих их разумное поведение. ЯЗЫКИ ПРОГРАММИРОВАНИЯ VIII Очень много языков программирования рождается каждый год, в чем можно убедиться, просмотрев любой номер журналов JACM, Computer J., Сотт. АСМ и т. д. Мы приводим здесь ссылки только на те из языков, которые -наиболее близки к каноническим системам Поста и системам для обработки списков. МАШИНЫ ПРОМЕЖУТОЧНЫХ ТИПОВ IX Очевидна важность разработки теорий, применимых к классам вычисле- вычислений, которые лежат между вычислениями, реализуемыми простыми конеч- конечными автоматами, и классом вычислимых функций. Ряд промежуточных
352 ЧАСТЬ III. СИСТЕМЫ. ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ понятий приводит постепенно к появлению новых классов автоматов — авто- автоматов с магазинной памятью (push down automata), линейно-ограниченных автоматов (linear bounded automata), автоматов, работающих в реальном времени, «считающих автоматов» (counting automata) и др., многие из ко- которых связаны с различными промежуточными формальными грамматиками. Мы также включили сюда ссылки на некоторые бесконечные «итеративные структуры» и «растущие» автоматы. НЕЙРОФИЗИОЛОГИЯ X Мы включили несколько ссылок иа статьи и книги, которые могут сти- стимулировать дальнейшее изучение представлений о мозге как вычислительной машине. ВЕРОЯТНОСТНЫЕ МАШИНЫ XI Очень важный практический вопрос заключается в том, можно ли в рамках теории отразить «шум» или другие реальные физические явления вероятностного характера. Мы привели ссылки иа ряд статей, в которых этот вопрос рассматривается с различных точек зрения. РЕКУРСИВНЫЕ ФУНКЦИИ И УРОВНИ ОТНОСИТЕЛЬНОЙ НЕРАЗРЕШИМОСТИ XII Эта теория, только намеченная в гл. 8, 10 и 11, уже является суще- существенной ветвью математики. Наиболее исчерпывающий подход дается у Роджерса [86]; можно также ознакомиться с работами Девиса [14] и Клиии [39]. Книга Девиса [15] представляет собой прекрасный сборник статей по этому вопросу. В работе Черча [11] подход к понятию эффективной вы- вычислимости значительно отличается от любого из тех, которые рассматрива- рассматривались здесь. МАШИНЫ ТЬЮРИНГА XIII Здесь дается ряд ссылок иа работы, в которых рассматриваются не- несколько иные подходы к определению машин Тьюринга. В работе Фишера [22] приводится их классификация.
ЛИТЕРАТУРА 1. Ackermann W., Solvable cases of the decision problem, III North-Holland, 1954. 2. Blum M., A machine-independent theory of recursive func- XII, VI tions, Doctoral Thesis, MIT, 1964. 3. Bob row D. G., Raphael В., A comparison of List-Pro- VIII cessing Computer Languages, Comm. ACM, 7, 4 (April 1964). 4. Bobrow D. G., METEOR: a LISP interpreter for string VIII manipulation, The programming language LISP: its operation and applications, MIT Press, Cambridge, 1966. 5. Buchi J. R., Turing machines and the entscheidungs- III problem, Math. Annalen, 148 A962). 6. Bullock Т. Н., Н о г г i d g e A. G., Structure and function X in the nervous systems of invertebrates, W. H. Freeman and Co., New York, 1965. 7. Burks A. W., Wang H a o, The logic of automata, JACM, IV, I 4 A957). 8. Burks A. W., Computation, behavior and structure in fixed IX and growing automata, Self-Organizing Systems, Pergamon Press, 1959; есть русский перевод: сб. Самоорганизующиеся системы, М., изд-во «Мир», 1964. 9. Chomsky N., Formal properties of grammars, Handbook V, I of mathematical psychology, 2, Wiley, 1963; есть русский пе- перевод: Кибернетический сб., новая серия, вып. 2, М., изд-во «Мнр», 1966. 10. Chomsky N.. Schutzenberger M. P., The algebraic V, I theory of context-free languages, Computer programming and formal systems. North-Holland, 1963; есть русский перевод: Кибернетический сб., новая сервя, вып. 3, М., «Мир», 1966. 11. Church A., The calculi of lambda-conversion, Annals of XII Mathematics Studies, 6, Princeton, 1941. 12. Co pi I. M., El got С. С, Wright J. В., Realization of IV events by logical nets, JACM, 5, 2 (April 1958); есть русский перевод: Кибернетвческий сб., вып. 3, М., ИЛ, 1961. 13. Courant R., Rob bins H., What is mathematics? Oxford Press, 1941; есть русский перевод: Курант Р., Роб- бинс Г., Что такое математика? М., Учпедгиз, 1961. 14. Davis M., Computability and unsolvability, McGraw-Hill, XII, XIII, 1958. Ill 15. Davis M., The undecidable, Raven Press, Hewlett, N. Y., XII, XIII, 1965. Ill 16. Dertouzos M., Threshold logic: a synthesis approach, IV Research monograph 32, MIT Press, Cambridge, 1965; есть
354 ЛИТЕРАТУРА русский перевод: Дертоузос М., Пороговая логика, М., изд-во «Мир», 1967. 17. Eggan L. С, Transition graphs and the star-height of re- IV, I gular events, Mich. Math. J., 10, 1963. 18. E v e у J., The theory and applications of pushdownstore ma- IX chines, Doctoral Thesis, Report NSF-10, Harvard University, 1963. 19. Farber D. J., Griswold R. E., Polonsky J. P., VIII SNOBOL: a string-manipulation language, JACM, 11 A964). 20. Fei genb aum E., Feldman J., (eds.J, Computers and VIII, VII thought, McGraw-Hill, 1963; есть русский перевод: Вычисли- Вычислительные машины и мышление, М., изд-во «Мир», 1967. 21. Fischer P. С, Generation of primes by a one-dimensional IX real-time iterative array, JACM, 12 A965); есть русский пе- перевод: Кибернетический сб., новая серия, вып. 5, М., изд-во «Мир», 1968. 22. Fischer P. С, On formalisms for Turing machines, JACM, XIII 12, 4 (October 1965). 23. Freudentha 1 H., LINCOS: design of a language for VII, V cosmic intercourse, North-Holland, 1960. 24. Gilbert E. N., Lattice theoretic properties of frontal switch- IV ing functions, /. of math, and physics, 33 (April 1954). 25. G б d e 1 K., Uber formal unentscheidbare Satze der Principia HI Mathematica und verwandter Systeme I, Monatshefte fur Ma- thematik und Physik, 38 A931). 26. Guzman A., M с I n t о s h H., «CONVERT», Comm. ACM, VIII 9, 8 (August 1966). 27. H a i n e s L., Generation and recognition of formal languages, V Doctoral Thesis, MIT, 1965. 28. H a r i n g D., The sequential transmission expression for flow IV graphs, Technical Memo. Electronic Systems Laboratory, MIT (November 1960). 29. Hartmanis J., Lewis P. M., Stearns R. E., Classifi- VI, IX cation of computations by time and memory requirements, IF IP Inter not. Congress, 1, Spartan Books, 1965. 30. H а г t m a n i s J., Stearns R. E., On the computational VI, IX complexity of algorithms, Trans. Amer. Math. Soc. (May 1965); есть русский перевод: Кибернетический сб., новая серия, вып. 4, М, изд-во «Мир», 1967. 31. Н ebb D. О., The organization of behavior, Wiley, 1949. X, VII 32. H e n n i e F. C, Iterative arrays of logical circuits, MIT IX Press, Cambridge, 1961. 33. Hooper P., The undecidability of the Turing machine im- III mortality problem, Doctoral Thesis, Harvard University (April 1965). 34. H u b e 1 D. H., W i e s e 1 T. N.. Receptive fields of single HI neurons in the cat's striate cortex, /. of Physiology, 148 A959). 35. I ken о N., A 6-symbol 10-state universal Turing machine, XIII Proc. Inst. of Elec. Communications, Tokyo A959). 36. Kahr A. S., Moore E. F., Wang H a o, Entscheidungs- III problem reduced to-the AEA case, Proc. Natl. Acad. Science, 48, 3 (March 1962). 37. Kahr A. S., Improved reductions of the Entscheidungspro- III. blem to subclasses of AEA formulas, Math. Theory of Auto- Automata, Polytechnic Press, Brooklyn, 1963.
ЛИТЕРАТУРА 355 38. Kleene S. С, General recursive functions of natural num- Xlf bers, Math. Annalen, 1936. 39. Kleene*S. C, Introduction to metamathematics, Van Nos- XII, III, trand, Princeton, 1952; есть русский перевод: Клин и С, XIII Введение в метаматематику, М., ИЛ, 1957. 40. Kleene S. С, Representation of events in nerve nets and IV, I finite automata, Automata Studies, Princeton, 1956; есть рус- русский перевод: Автоматы, М., ИЛ, 1956. 41. Krohn К. В., Rhodes J. L., Algebraic theory of machines, IV, I Math, theory of automata, Polytechnic Press, Brooklyn, 1963. 42. Lee C, The construction of a self-describing Turing machine, XIII, XII там же, 1963. 43.de Leeuw К., Moore E. F., Shannon С. Е., S h a- XI, XIII p i г о N., Computability by probabilistic machine, Automata Studies, Princeton, 1956; есть русский перевод: Автоматы, М., ИЛ, 1956. 44. Lettvin J. Y., Maturana H. R., McCulloch W. S., X Pitts W., What the frog's eye tells the frog's brain, Proc. IRE, 47 A959). 45. L о 11 k a A. J., Elements of mathematical biology, Dover, 1956. 46. M a p к о в А. А., Об инверсионной сложности систем буле- IV, I вых функций, ДАН СССР, 150, 3 A963). 47. Mason. S., Zimmerman H., Electronic circuits, signals IV and systems, Wiley, 1960; есть русский перевод: Мэзон С, Циммерман Г., Электронные цепи, сигналы и системы, М., ИЛ, 1963. 48. McCarthy J., The inversion of functions defined by Turing VII machines, Automata Studies, Princeton, 1956; есть русский перевод: Автоматы, М., ИЛ, 1956. 49. McCarthy J., Recursive functions of symbolic expressions, II, VIII Comm. ACM, 3 (April 1960). 50. McCarthy J., A basis for a mathematical theory of com- II, VIII nutation, Proc. Western Joint Computer Conference, 1961. 51. McCarthy J. et al., The LISP 1.5 Programmer's Manual, VIII MIT Press, Cambridge, 1962. 52. McCarthy J., A basis for a mathematical theory of com- II, VIII, putation, Computer programming and formal systems, Braf- VII fort and Hirschberg (Eds.), North-Holland, 1963. 53. McCarthy J., Painter J., Correctness of a compiler for II, V arithmetic expressions, Proc. of a symp. on Math, aspects of computer science A966), AMS, 1967. 54. M с С u 11 о с h W. S., Pitts W., A logical calculus of the IV, X, V ideas immanent in nervous activity, Bulletin of Math. Bio- Biophysics, 5 A943); есть русский перевод: Автоматы, ИЛ, 1956. 55. М с С и 11 о с h W. S., Agathe Tyche of nervous nets — the XI lucky reckoners, Mechanization of thought processes 2, Her Majesty's Stationery Office, London, 1959. 56. M с С u 11 о с h W. S., The reliability of biological systems, XI Self-Organizing Systems, Pergamon Press, 1960; есть рус- русский перевод: Самоорганизующиеся системы, М., изд-во «Мир», 1964. 57. McCulloch W. S., Embodiments of mind, MIT Press, IV,X,VII Cambridge, 1965. XI, V 58. McNaughton R., Yamada H., Regular expressions and IV, I state graphs for automata, Trans, of the IRE, EC-9, 1 A960).
356 ЛИТЕРАТУРА 59. М с N a u g h t о n, R., The theory of automata, a survey, V, IX, IV Advances in Computer, 2, Academic Press, 1961. I 60. M i n s к у М. L., Some universal elements for finite automata, IV Automata Studies, Princeton, 1956; есть русский перевод: Автоматы, М., ИЛ, 1956. 61. Minsk у М. L., Some methods of heuristic programming VII and artificial intelligence, Proc. Symp. on the mechanization of intelligence, HMSO, London, 1959. 62. Minsk у М. L., Recursive unsolvability of Post's problem XII, XIII of «tag» and other topics in theory of Turing machines, III Annals of Math., 74 A961). 63. Minsky M. L., Size and structure of universal Turing ma- XIII chines using tag systems, Recursive Function Theory, Sympo- Symposia in pure mathematics, 5, Amer. Math. Soc. A962). 64. Minsky M. L., Steps toward artificial intelligence, Compu- VIII ters and Thought, Feigenbaum and Feldman (Eds.), McGraw- Hill, 1963; см. также Proc. IRE (January 1961). 65. Minsky M. L, Matter, mind and models, Proc. IF IP Con- VIII, II eress, vol. 1, Spartan Books, 1965. 66. Minsky M. L., Pa pert S., Perceptions: threshold function II geometry, MIT Press, Cambridge, 1969. 67. Mo о г е E. F, Shannon С. Е., Reliable circuits using XI less reliable relays, J. of the Franklin Institute, 262 A956); есть русский перевод: Кибернетический сб., вып. 1, М., ИЛ, 1956. 68. Moore E. F., Gedanken-experiments on sequential machines, IV Automata Studies, Princeton, 1956; есть русский перевод: Автоматы, М., ИЛ, 1956. 69. М о о г е Е. F., Sequential machines: selected papers, Addi- IV, I, IX son-Wesley, 1964. 70. My hill J., Linear bounded automata, WADD Technical IX Note 60—165, Wright-Patterson AFB, Ohio, 1960. 71. Newell A., Shaw J. C, Simon H. A., The logic theory VIII machine, IRE Trans, on Information theory, IT-2, 3 A956). 72. 011 G., F e i n s t e i n N. H., Design of sequential machines IV from their regular expression, I ACM, 8, 4 A961). 73. P a p e r t S., M с N a u g h t о n R., On topological events, IV, I Theory of Automata, Univ. of Mich. Engrg. Summer Conf., 1966. 74. Peter R., Rekursive Functionen, Akaderriiai Kiad6, Budapest, XII 1951; есть русский перевод: Петер Р., Рекурсивные функ- функции, М., ИЛ, 1954. 75. Post E. L., Formal reductions of the general combinatorial XII, III decision problem, Am. J. of Math., 65 A943). 76. Post E. L., A variant of a recursively unsolvable problem, III Bull. Amer. Math. Soc, 52 A946). 77. Post E. L., Absolutely unsolvable problems and relatively HI,V,XII undecidable propositions — account of an anticipation, M. Da- Davis, The Undecidable (m. s. unpublished, 1941). 78. Quine W., Word and Object, Wiley, i960. 79. Rabin M. O., Scott D., Finite automata and their deci- IV, III sion problems, IBM I. of Research and Development, 3, 2 A959). 80. Rabin M. O., Probabilistic automata, Information and Con- IV, XI trol, 6 (September 1963); есть русский перевод: Кибернети- . ческий сб., вып. 9, М„ изд-во «Мир», 1964.
ЛИТЕРАТУРА 357 81. Rabin M. О., Real-time computation, Israel J. Math., 203— IX 211 A963). 82. Rashev&ky N., Mathematical Biophysics, Chicago, 1960. X, IV 83. R a she v sky N., Advances and application of mathemati- IV, X cal biology, Univ. of Chacigo Press, 1940. 84. Robinson R. M., Recursion and double recursion, Am. XII Math. Soc, 54 A948). 85. Rogers H., The present theory of Turing machine compu- XIII, XII tability, I. SI AM, 7 A959). 86. Rogers H., Theory of recursive functions and effective XII, III, computability, McGraw-Hill, 1967. ' VI,IX,XIII 87. Rosenblatt F., A comparison of several perceptron mo- X dels, Self-Organizing Systems, Spartan Books, Washington, 1962; есть русский перевод: Самоорганизующиеся системы, М., нзд-во «Мир», 1964. 88. Schutzenberger M. P., On context-free languages and V, IX puch-down automata, Information and Control, 6 A963). 89. Schutzenberger M. P., On finite monoids having only I trivial subgroups, Information and Control, 8 A965). 90. Shannon С. Е., A mathematical theory of communications, IV Bell System Tech. I., 27 A948); имеется русский перевод: Шеннон К., Работы по теории информации и кибернетике, М., ИЛ, 1963. • 91. Shannpn С. Е., Synthesis of two-terminal switching-cir- IV cuits, Bell System Tech. I., 28 (January 1949); есть русский перевод: Шеннон К., Работы по теории информации и кибернетике, М., ИЛ, 1963. 92. S h а п п о п С. Е., A universal Turing machine with two VII internal states, Automata Studies, Princeton, 1956; имеется русский перевод: Автоматы, М., ИЛ, 1956. 93. S hepherdson J. С, The reduction of two-way automata IV to one-way automata, IBM J. of Research and Development, 3, 2 A959). 94. S h e p h e r d s о n J. C, S t u r g i s H. E., Coinputability of XII, XIII recursive functions, J. ACM, 10 A963). 95. S m u 11 у a n R., Theory of formal systems, Princeton, III 1962. 96. S о 1 о m о п о f f R. J., A formal theory of inductive infe- VII rence, Information and Control, 7, 1—2 A964). 97. T a r s k i A., A decision method for elementary algebra and III feometry, Univ. of California Press, Berkeley, 951. eitelman W., PILOT, a step toward man-computer sym- VIII biosis, Ph. D. Thesis, MIT, 1966. 99. Turin g A. M., On computable numbers, with an applica- XIII, XII, tion to the Entscheidungsproblem, Proc. London Math. Soc, III Ser. 2, 42 A936). 100. Turing A. M., Computing machinery and intelligence, VII Mind 59, 1950; The World of Mathematics 4, Simon and Schuster, 1954; есть русский перевод: Тьюринг А., Может ли машина мыслить? М., Фнзматгиз, 1960. 101. von Neumann J., Probabilistic logics and the synthesis IV, XI of reliable organisms from unreliable components, Automata Studies, Princeton, 1956; есть русский перевод: Автоматы, М., ИЛ, 1956. 102. Wang На о, A variant to Turing's theory of computing XII, XIII machines, JACM, 4, 1 (I957J.
358 литература 103. Wat a nab e S., On a minimal universal Turing machine, XIII MCB Report, Tokyo, 1960. 104. Watanabe S., Periodicity of Post's system of tag, Math. XII theory of Automata, Polytechnic Press, Brooklyn, 1963. 105. Y a m a d a H., Real-time computation and recursive functions IX not real-time computable, IRE Trans, on Electr. Computers, EC-11, 753—760 A962). 106. Yngve H., COMIT as an information retrieval language, XIII Cotntn. ACM, 1 A962). 107. Yngve H., COMIT, Comm. ACM, 6 (March 1963). XIII ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА!) 1. Айзерман М. А., Гусев Л. А., Роз о но эр Л. И., ' Смирнова И. Mv Таль А. А., Логика, автоматы, алго- алгоритмы, М., Физматгиз, 1963. 2. Глушков В. М., Синтез цифровых автоматов, М., Физмат- Физматгиз, 1962. 3. Кобринский Н. Е., Трахтенброт Б. А., Введение в теорию конечных автоматов, М., Физматгиз, 1961. 4. Мальцев А. И., Алгоритмы и рекурсивные функции, М., нзд-во «Наука», 1965. 5. М а р к о в А. А., Теория алгоритмов, Труды МИ АН им. В. А. Стеклова, 42 A954). 6. П о с п е л о в Д. А., Логические методы анализа и синтеза схем, М., изд-во «Энергия», 1968. 7. Т р а х т е н б р о т Б. А., Алгоритмы и машинное решение за- задач, М., Физматгиз, 1960. 8. Успенский В. А., Лекции о вычислимых функциях, М., Физматгиз, 1960. IV, I XII, XII, XII, , XII, XIII IV, I IV, I XIII XIII IV, I XIII XIII ') Добавлено переводчиками, — Прим, ред.
ИМЕННОЙ УКАЗАТЕЛЬ Айзерман М. А. Аккерман (W. Ackermann) Балзер (R. Balzer) Баллок (Т. Н. Bullock) Беркс (A. W. Burks) Блюм (М. Blum) Боброу (D. G. Bobrow) Бучи (J. R. Buchi) Ван Хао (Нао Wang] Варшавский В. И. Ватанабе (S. Watanabe) Визел (Т. N. Wiesel) Гёдель (К. Godel) Гильберт (Е. N. Gilbert) Глушков В. М. Гото (Е. Goto) Грисволд (R. E. Griswold) Гузман (A. Guzman) Гусев Л. А. Дедекинд (R. Dedekind) Дертоузос (М. L. Dertouzos) Девис (М. Davis) Евклид (Euklid) Ивей (J. y} Икено (N. lkeno) Ингве (Н. Yngve) Кантор (G. Cantor) Кар (A. S. Kahr) Квайн (W. Quine) Клинн (S. С. Kleene) Кобринский Н. Е. Кок (J. Cock) Копи (I. M. Copi) Коши (A. L. Cauchy) Крон (К. В. Krohn) Курант (R. Courant) Левенштейн В. И. Леттвин (J. Y. Lettvin) Ли (С. Lee) Лоттка (A. J. Lottka) Лью (К. de Leeuw) Люнс (P. M. Lewis) Майхнлл (J. Myhill) Макинтош (Н. Mclntosh) Мак-Каллок (W. S. McCulloch) Мак-Карти (J. McCarthy) Макнотон (R. McNaughton)) Мальцев А. И. Мараховский В. Б. Марков А. А. Матурана (Н. R. Maturana) Минский (М. L. Minsky) Мур (Е. F. Moore) Мэзон (S. Mason) Нейман (J. von Neumann) Ньюэлл (A. Newell) Отт (G. Ott) Пейнгер (J. Painter) Пейперт (S. Papert) Песчанский В. А. Петер (R. Peter) Питтс (W. Pitts) Полонский (I. P. Polonsky) Поспелов Д. А. Пост (Е. L. Post) Рабин (М. О. Rabin) Райт (J. В. Wright) Рассел (В. Russell) Рафаэль (В. Raphael) Рашевский (N. Rashevsky) Роббинс (Н. Robbins) Робинсон (R. M. Robinson) Родес (J. L. Rhodes) Роджерс (Н. Rogers) Розенблатт (F. Rosenblatt)
360 ИМЕННОЙ УКАЗАТЕЛЬ Розоноэр Л. И. Харинг (D. Haring) Рочестер (N. Rochester) Хейнс (L. Haines) Хартманис (J. Hartmanis) Саймон (Н. A. Simon) Хебб (D. О. Hebb) Скотт (D. Scott) Хеннн (F. С. Hennie) Смирнова И. М. Хомский (N. Comsky) Соломонов (R. J. Solomonoff) Хорридж (A. G. Horridge) Стирис (R. Е. Stearns) хУпер (P. Hooper) Стургнс (Н. Е. Sturgis) Хьюбелл (D. H. Hubel) Таль А А Циммерман (Н. Zimmerman) Тарский (A. Tarski) „. .. г, .. Тейтельмен (W. Teitelman) ЧеРч I*- Church) Трахтенброт Б. А. ... ... _, . . Тьюринг (А. М. Turing) ^anHP° (N- Shapiro) v v &> Шенион (С. Е. Shannon) ,, . _ . ' Шефердсои (J. С. Shepherdson) Успеискии В. А. Шмульян (R. Smullyan) Шоу (J. С. Shaw) Файнстайн (N. Н. Feinstein) Шутценбергер (М. P. Schutzenbe Фарбер (D. J. Farber) ger) Фейнгенбаум (Е. Feigenbaum) Фельдман (J. Feldman) Эгган (L. С. Eggan) Ферма (Е. Fermay) Элгот (С. С. Elgot) Фишер (Р. С. Fischer) Фрейденталь (Н. Freudenthai) Ямада (Н. Yamada)
. ОГЛАВЛЕНИЕ Предисловие к русскому изданию , 5 Предисловие автора к русскому изданию 7 Предисловие 9 ФИЗИЧЕСКИЕ МАШИНЫ И ИХ 1 АБСТРАКТНЫЕ КСДЕЛИ 17 1.0. Что такое машина? 17 1.1. Об определениях 19 1.2. Мишины как физические модели абстрактных процессов 21 Часть I КОНЕЧНЫЕ МАШИНЫ МАШИНЫ С КОНЕЧНЫМ ЧИСЛСМ 2 СОСТОЯНИЙ 26 2.0. Введение 26 2.1. Состояния и сигналы 28 2.?. Эквивалентные предыстории; внутренние состояния 31 2.3. Таблицы и диаграммы 37 2.4. Диаграмма состояний изолированной машины 41 2.5. Переходы состояний при наличии внешних сигналов 43 2.6. «Проблема умножения» — задача, которая ие может быть решена никакой конечной машиной 45 2.7. Задачи 46 ИЕЙРСИНЫЕ СЕТИ. АВТОМАТЫ, СОСТАВЛЕННЫЕ 3 ИЗЭЛЕИЕНТСВ 50 3.0. Введение 50 3.1. «Нейроны» Мак-Каллока и Питтса 51 3.2. Машины из нейронов Мак-Каллока — Питтса 55 3.3. Дешифраторы и шифраторы двоичных кодов. Преобразование после- последовательных кодов в параллельные 68
362 ОГЛАВЛЕНИЕ 3.4. Реализация более сложных соотношений между входными сигналами и ответом на выходе. Поведение сетей без циклов 75 3.5. Общая эквивалентность нейронных сетей и конечных машин .... 80 3.6. Универсальные наборы ячеек 83 ПРЕДСТАВЛЕНИЕ СОБЫТИЙ В МАШИНАХ 4 С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ 94 4.0. Введение . 94 4.1. Значение выходного сигнала. Четыре примера 95 4.2. Регулярные выражения и регулярные множества последовательностей 99 4.3. Теорема Клини: конечный автомат может распознавать лишь регу- регулярные множества последовательностей 109 4.4. Теорема Клини (продолжение): любое регулярное множество может быть распознано некоторой машиной с конечным числом состояний 116 4.5. Задачи 128 Часть II БЕСКОНЕЧНЫЕ МАШИНЫ ВЫЧИСЛИМОСТЬ, ЭФФЕКТИВНЫЕ ПРОЦЕДУРЫ И АЛГОРИТМЫ. 5 БЕСКОНЕЧНЫЕ МАШИНЫ 132 5.0. Введение 132 5.1. Понятие «эффективной процедуры» 133 5.2. Тьюринговский анализ вычислительного процесса 137 5.3. Довод Тьюринга 138 5.4. План части II 143 5.5. Зачем изучать бесконечные машины? 145 6 МАШИНЫ ТЬЮРИНГА 149 6.0. Введение 149 6.1. Несколько примеров машин Тьюринга 152 6.2. Об эффективности машин Тьюринга 162 6.3. Некоторые связи между различными типами машин Тьюринга . . . 163 7 УНИВЕРСАЛЬНЫЕ МАШИНЫ ТЬЮРИНГА 167 7.0. Использование машин Тьюриига для вычисления значения функций 167 7.1. Универсальная машина как интерпретирующая вычислительная ма- машина 173 7.2. Описание машины . 174 7.3. Пример 179 7.4. Замечания jg[
ОГЛАВЛЕНИЕ 363 ОГРАНИЧЕНИЯ ЭФФЕКТИВНОЙ ВЫЧИОЛИМОСТИ: НЕКОТОРЫЕ ЯрОБЛЕМЫ, 8 НЕ РАЗРЕШИМЫЕ МАШИНАМИ, ВЫПОЛНЯЮЩИМИ ПРЕДПИСАНИЯ 183 8.1. Проблема останова 183 8.2. Неразрешимость проблемы останова- ..-...-</.• <• . . . . 185 8.3. Некоторые другие неразрешимые проблемы 187 8.4. Конструктивный характер доказательства неразрешимости .... 190 8.5. Следствия, связанные с алгоритмами и программами для вычисли- вычислительных машин: проблема отладки 191 8.6. Неразрешимость частных проблем останова 192 8.7. Сводимость одной проблемы неразрешимости к другой 193 8.8. Задачи 193 9 ВЫЧИСЛИМЫЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА 195 9.1. Системы вещественных чисел (обзор) 195 9.2. Вещественные числа, вычислимые по Тьюрингу 196 9.3. Существование невычислимых вещественных чисел 197 9.4. Вычислимые числа, если они вычислимы, не могут быть эффективно перечислены! 199 9.5. Описания и вычислимые числа 200 9.6. Задачи ' 206 10 МАШИНЫ ТЬЮРИНГА И РЕКУРСИВНЫЕ ФУНКЦИИ 20S 10.0. Введение 208 10.1. Арифметизация машии Тьюринга 209 10.2. Примитивно-рекурсивные функции 214 10.3. Проблемы рекурсии по нескольким переменным 217 10.4. Обще-рекурсивные функции 223 10.5. Обще-рекурсивные и частично-рекурсивные функции: терминология и теоремы 226 10.6. Эффективные перечисления частично-рекурсивных функций . . . 228 10.7. Условные выражения; формализм Мак-Карти 234 10.8. Описание вычислений посредством списочных структур 237 10.9. LISP 239 11 МОДЕЛИ, ПОДОБНЫЕ ВЫЧИСЛИТЕЛЬНЫЙ МАШИИАИ 242 11.0. Введение . 242 11.1. Программные машины и программы 243 11.2. Программы для машины Тьюринга 248 11.3. Языки программирования и компиляторы 249 11.4. Простая универсальная база для программной машины 250 11.5. Эквивалентность программных машин и обще-рекурсивиых функций 252 11.6. Замена операции «предшественник» операциями «следование» и «ра- «равенство» 255
364 ОГЛАВЛЕНИЕ 11.7. Примитивная и общая рекурсии, основанные на использовании операции «повторение» 256 11.8. Обзор доказательств эквивалентности различных концепций вычис- вычислимости 260 Часть III СИСТЕМЫ, ОПЕРИРУЮЩИЕ СИМВОЛАМИ, И ВЫЧИСЛИМОСТЬ 12 СИСТЕМА ПОСТА 262 12.0. Введение 262 12.1. Аксиоматические системы и логистический метод 264 12.2. Эффективная вычислимость как предпосылка для доказательства 265 12.3. Процедуры нахождения доказательства 268 12.4. Продукции Поста. Канонические формы правил вывода 271 12.5. Определения продукции и канонической системы 275 12.6. Канонические системы для представления машины Тьюринга . . . 277 12.7. Канонические расширения. Вспомогательные алфавиты 281 12.8. Канонические системы для программных машин 283 ТЕОРЕМА ПОСТА 0 НОРМАЛЬНОЙ 13 ФОРМЕ 286 13.0. Введение 286 13.1. Теорема о нормальной форме для продукций с одной посылкой . . 286 13.2. Теорема о нормальной форме для продукций с несколькими посыл- посылками. Сведение к системе с одной аксиомой 296 13.3. Универсальная каноническая система 299 ОЧЕНЬ ПРОСТЫЕ БАЗНОЫ ДЛЯ 14 ВЫЧИСЛИМОСТИ 303 14.1. Универсальные программные машины с двумя регистрами .... 303 14.2. Универсальная программная машина с одним регистром 306 14.3. Числа Гёделя 308 14.4. Двухленточиые машины Тьюринга без записывающих головок . . 309 14.5. Универсальная машина Тьюринга без стирания 311 14.6. Таг-проблема и однородные канонические системы 316 14.7. Неразрешимость «проблемы соответствия» Поста 324 14.8. «Малые» универсальные машины Тьюринга 328 15 УКАЗАНИЯ К РЕШЕНИЮ НЕКОТОРЫХ ЗАДАЧ 335 16 ПОЯОНЕНИЯ К ЛИТЕРАТУРЕ 350 Литература 353 Имеииой указатель , 359
УВАЖАЕМЫЙ ЧИТАТЕЛЬ! Ваши замечания о содержании книги, ее офор- оформлении, качестве перевода и другие просим присы- присылать по адресу: Москва, И-278, 1-й Рижский пер., д. 2. Издательство «Мир».
М. Минский ВЫЧНСЛЕННЯ Н АВТОМАТЫ Редактор М. Б. Великовский Художник В. Медников Художественный редактор В. М. Варлашин Технический редактор А. Г. Резоухова Корректор Г. П. Пашковская Сдаио в набор 1/VII 1970 г. Подписано к печати 16/П 1971 г. Бумага ки. журн. 60Х907и=11,50 бум. л. 23 печ. л., 20,90 уч.-изд. л. Изд. Ns 20/5301. Цеиа 1 р. 64 к. Зак. 750. ИЗДАТЕЛЬСТВО „МИР" Москва, 1-й Рижский пер.. 2. Ордена Трудового Красного Знамени Ленинградская типография J6 2 имеин Евгении Соколовой Главполиграфпрома Комитета по печати при Совете Министров СССР. Измайловский проспект, 29.
ИЗДАТЕЛЬСТВО «МИР» готовит к выпуску в 1971—1972 гг. русский перевод книги американских математиков Г. Дженкинса и Д. Ваттса СПЕКТРАЛЬНЫЙ АНАЛИЗ И ЕГО ПРИЛОЖЕНИЯ Перевод с английского, 40 л., цена 3 р. 60 к. * Спектральный анализ — новая и очень важная отрасль науки, посвящен- посвященная выделению из наблюдаемых явлении или процессов периодических ком- компонент, т. е. правильно меняющихся со временем составляющих. Подобные процессы очень часто встречаются в инженерном деле, различных отделах физики и геофизики, а также в экономике. Задача данной книги — дать инженерно-техническим работникам, фи- физикам и геофизикам, математикам-прнкладннкам и экономистам руководство, позволяющее овладеть приемами и методами спектрального анализа и при- применить их в своей практической работе. В русском издании книга выйдет в 2-х выпусках: В первый выпуск вошли общие принципы спектрального анализа, анализ Фурье, основы теории вероятностей, теория статистических зависимостей; во второй — методы анализа временных рядов, понятия спектра и корреля- корреляционного спектра, приемы оценок и анализов спектров. Книга снабжена библиографией; в каждой главе приведены вычисли- вычислительные схемы и программы для обработки спектров на ЭВМ. Выпуск 1 выйдет в свет в 1971 г., выпуск 2—в начале 1972 г. ИЗДАНИЕ БУДЕТ РАСПРОСТРАНЯТЬСЯ ТОЛЬКО ПО ПОДПИСКЕ. Подписка оформляется в магазинах подписных изданий^