Роман Елизаров - Сборник бихевиорационализма
Сейчас я намерен указать на характерную особенность соответствия, возникающего в пределах инструкции. Я заявляю, что это соответствие не является функциональным. Итак, инструкция вообще может не быть соответствием, но если она может быть рассмотрена как соответствие, то совершенно не обязательным является то, чтобы это соответствие было функциональным. Соответствие является функциональным если элементу из области определения функции соответствует только один элемент из области значений. «Функциональное соответствие» является своего рода промежуточным между стихийным и деликатным.
Приведу примеры. Допустим, я «стреляю из пистолета» с друзьями на стадионе, если хотите, «нажимаю на спусковой крючок». Эта инструкция из тех, которые имеют значение: первое, что приходит в голову то, что значением инструкции будет «выстрел». Можно в самом деле указывать на зависимость, даже функциональную, между моделями пистолета и собственно «выстрелом» по дальности и другим параметрам. Но, допустим, я стреляю из пистолета в районе стадиона, где к старту приготовилась группа спортсменов. Я выстрелю, а они побегут. Старт группы спортсменов будет таким же значением инструкции «стрелять из пистолета» как и «выстрел». И дело здесь как раз не в том, что спортсмены реагируют на «выстрел», а не на стрельбу из пистолета, что «выстрел» предшествует старту. На практике мы сталкиваемся с фальш-стартами. В конце концов пистолет может дать осечку, но это вызовет старт. Таким образом то, что спортсмены стартуют является точно таким же значением инструкции «стрелять из пистолета» как и «выстрел». Выстрелив из пистолета может раздаться выстрел и последовать старт, а может последовать только одно значение, а может не последовать ни одного. Данное соответствие не является функциональным.
Допустим, я постоянно покупаю вино в одном магазине. Для того, чтобы получить бутылку вина я расплачиваюсь. Речь идет о соответствии между суммой денег и бутылкой вина определенной марки. Это соответствие также функциональным не является. Во-первых, это вино постоянно дорожает как в зависимости от инфляции так и по неизвестным мне причинам, так что когда я составляю домашний бюджет одному и тому же вину соответствует несколько сумм денег. Как-то раз под Новый год хозяин магазина сделал мне как постоянному покупателю подарок – он подарил мне бутылку. Я никогда с точностью не знаю на какую сумму мне рассчитывать, чтобы купить вино, сколько мне нужно выложить продавцу, чтобы получить бутылку.
В конце концов я выкладываю сумму денег в магазине за какой-либо товар, предполагая получить не только товар, но и сдачу. Моей сумме денег соответствует два значения– «товар» и «сдача». Но таким образом это действие не является функцией. Однако если спросить человека в здравом уме является ли это действие чем-то «единым», «одним», является ли для него естественным заплатить сумму денег за товар и получить товар и сдачу или он считает, что он совершает два разных действия, то, я полагаю, человек в здравом уме согласится, что это одно действие. Это действие я называю инструкцией и противопоставляю функции.
Допустим, я играю на рулетке. Предполагая выиграть, я делаю ставку. «Делать ставку» это инструкция, которая очевидно может иметь два значения – выигрыш и проигрыш. Любой здесь заявит: «да в данном случае мы не имеем дело с функцией».
45.
Однако все эти соответствия могут быть формализованы, для них могут быть заданы алгоритмы.
Допустим
(z, y) = 2x
при z=2x, если x-четное,
y=2x, если x-нечетное.
Скажут, вы в данном случае задали две функции, для четных и нечетных чисел. Я этого не делал. Я просто записал одну инструкцию. Надеюсь, эта инструкция совершенно интуитивно ясна человеку в здравом уме, однако термина для нее в математике не существовало.
46.
Фундаментальной идеей, с которой вы должны ознакомиться, является не идея функции, как функционального соотвествия, а машина Тюринга-Поста. Этот термин действительно имеет фундаментальное значение для математики, программирования, а, как я убежден, и общенаучный смысл. Я изложу его содержание.
Исходным материалом для нас будет служить такое соответствие как лента, разделенная на равные участки, называемые ячейками. Лента будет считаться конечной длины в каждый момент времени, неограниченно продолжаемой в обе стороны и направленной, так что у каждой ячейки есть соседняя справа и соседняя слева. Каждая ячейка ленты может находиться в различных состояниях и эти состояния сравнимы, так что можно однозначно решить, находятся ли две произвольные ячейки ленты в одинаковых состояниях или в разных. Одно из возможных состояний ячеек называется исходным. Ячейки, находящиеся в этом состоянии называются пустыми. Остальные состояния обозначаются буквами, занимающими соответствующие ячейки. Произвольная конечная совокупность букв называется алфавитом. Если говорят, что имеют алфавит состоящий из букв А, В то это значит, что рассматривается лента, ячейки которой могут находиться в состояниях, условно обозначаемых символами А, В. Последовательность ячеек, занятых некоторыми буквами, называется словом. Словом в данном алфавите называется каждое слово, все буквы которого принадлежат этому алфавиту. Если алфавит состоит из букв А, В, С, то слова А, ВАА, СА, ВВ, ССАВВ будут словами в этом алфавите. Длиной слова называется число входящих в него символов. Так длинами написанных выше слов являются числа 1, 3, 2, 2, 5. Два слова называются графически равными если они имеют одинаковые длины и на соответствующих местах в них находятся равные буквы. Операции применяемые к словам, есть инструкции. Мы говорим, что инструкция примененная к слову 1 переводит слово 1 в слово 2. Слово 1 и слово 2 – слова в одном алфавите.
На сегодняшний момент соответствием соответствий является соответствие: «рабочая лента машины Тюринга-Поста»:
рабочая лента машины Тюринга-Постаячейка1содержимое ячейки (символ1)ячейка2содержимое ячейки (символ2)ячейка3содержимое ячейки (символ3)ячейка4содержимое ячейки (символ1)ячейка5содержимое ячейки (символ3)ячейка6содержимое ячейки (символ2)и т. д.
Рабочая лента бесконечна. О символы, которые могут записываться как содержание ячейки говорят, что они заданы на определенном алфавите.
Машина Тюринга-Поста– механическое устройство состоящее из следующих основных частей.
1) В машине имеется потенциально неограниченная память, разбитая на отдельные линейно-упорядоченные ячейки. В каждой ячейке может быть записан символ из некоторого конечного алфавита, или она может быть пустой. Считают, что в ячейке записан особый символ, называемый пустым. В каждый момент времени память, обычно называемая рабочей лентой машины, состоит из конечного числа ячеек, однако при необходимости к ней могут быть пристроены слева или справа новые ячейки с записанных в них пустым символом. Рабочая лента и информация, записанная в ней, представляются конечной цепочкой символов над словарем рабочей ленты.
2) Помимо рабочей ленты в машине Тюринга имеется еще и другое запоминающее устройство. Это регистр состояний – особая память, рассчитанная на хранение одного символа. Символ, который запоминается в регистре, выбирается из конечного множества, определяющего множество состояний машины.
3) В каждый момент времени машина Тюринга анализирует не всю информацию, хранящуюся на рабочей ленте, а содержимое лишь одной ячейки этой ленты. Для определения этой ячейки служит управляющая головка, которая всегда указывает на некоторую ячейку рабочей ленты.
Выполняя заданный алгоритм, машина Тюринга последовательно производит ряд элементарных действий, причем каждое такое действие выполняется за один рабочий такт машины. Элементарные действия можно разбить на следующие три группы:
1) Машина изменяет состояние в регистре (т. е. стирая символ, хранящийся в регистре, записывает в него новый символ) и содержимое ячейки, на которую указывает управляющая головка.
2) Машина изменяет состояние и продвигает управляющую головку на одну ячейку влево.
3) Машина изменяет состояние и продвигает управляющую головку на одну ячейку вправо.
В последних двух случаях может оказаться, что до такта управляющая головка указывала на самую левую или самую правую ячейку рабочей ленты. Если требуется произвести сдвиг влево (или, соответственно, вправо), то к рабочей ленте пристраивается новая ячейка с записанным в ней пустым символом.