Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Непейвода. Прикладная логика

.PDF
Скачиваний:
901
Добавлен:
10.08.2013
Размер:
2.27 Mб
Скачать

13.2. АКСИОМАТИЧЕСКОЕ ОПИСАНИЕ ВЫЧИСЛИМОСТИ

351

Известно, что одним из основных свойств алгоритмов является их

выполнимость. Первоначально выполнимость понималась как возмож-

ность исполнения машиной заложенной в нее программы.

Но еще до по-

явления современных универсальных машин Тьюринг доказал, что уже

простейшая модель такой машины обладает любопытным свойством,

которое вовсю используется в современной информатике: есть одна ма-

шина (универсальная), которая может смоделировать поведение и ре-

зультаты любой другой. А именно:

 

(Аксиома универсального алгоритма) Имеется такой

алгоритм Υ, что для любого другого алгоритма ϕ

найдет-

ся его код dϕe, такой, что результаты вычисления

ϕ(x) и

Υ ([dϕe , x]) совпадают для любого x.

 

Возникает вопрос а почему мы сразу не записали данное утвержде ние формулой В частности, потому что эта аксиома сама по себе огра- ничивает набор? возможных ,формализаций, понятия алгоритма которые- необходимо использовать в соответствующей формуле и отсекает, неко торые из принимаемых обычно по умолчанию вариантов, -

Прежде всего что является входными данными и результатами. ал горитма Из анализа, аксиомы универсального алгоритма видно что не- сколько ?неудобно брать в качестве таких данных сами объекты, Лучше- пользоваться их структурами Таким образом лучше брать не универс.

а множество кортежей над .ним Из технических, соображений к целесообразноU, добавить два логическихU . значения ИСТИНА и ЛОЖЬU если их там не было ( Раз у нас есть множество). кортежей то нужно иметь элементарные

операции над кортежами Практика и теория, совместно показали что достаточно иметь одну двуместную. операцию см ,при соединяющую свой второй аргумент к первомуAPPENDКроме того( . (5нужны.3)), не- сколько одноместных операций две значением. которых являются, про- извольные кортежи либо объекты: , -

выделяющая последний элемент кортежа

TAIL(x), удаляющую из кортежа его хвост т е последнийx, элемент

BODY(x), , . . ;

и четыре предиката:

ATOM Проверяет, является ли x элементом исходного множества U.

SIMPLEПроверяет, что x

кортеж из одного элемента.

352

 

ГЛАВА 13. НЕПОЛНОТА И НЕФОРМАЛИЗУЕМОСТЬ

 

 

TRUE

Проверяет, что x атом, равный ИСТИНА.

 

 

 

 

 

 

 

 

 

NIL

 

Проверяет, что x

пустой кортеж [].

 

 

 

 

 

 

 

 

 

Пустой кортеж будем обозначать NULL. Через эти операции выражение,

 

 

стоящее в аксиоме об универсальном алгоритме, записывается следую-

 

 

щим образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

Υ (APPEND(APPEND(NULL, dϕe), x))

 

 

 

(13.4)

 

 

Конечно, мы не будем писать в стиле (13.4); это выражение просто по-

 

 

казывает, как записать кортеж через имеющиеся у нас операции, и дает

 

 

возможность в дальнейшем спокойно использовать конечные кортежи с

 

 

фиксированным числом элементом, пользуясь следующим соглашени-

 

 

ем:

Выражение APPEND(· · · (APPEND(NULL, t1), · · · ), tn) обо-

 

 

 

 

 

 

 

 

 

 

 

 

значается [t1, . . . , tn].

 

 

 

 

 

 

 

 

 

Термы, построенные из заданных известных алгоритмов и предикатов

 

 

при помощи перечисленных выше операций и имеющие лишь одну сво-

 

 

бодную переменную x, называются простейшими композициями алго-

 

 

ритмов. В компьютерах, как Вы знаете, исполняется только тот алго-

 

 

ритм, который переведен программой-транслятором с языка описаний

 

 

алгоритмов на язык самой машины. Программа-транслятор является уни-

 

 

версальным алгоритмом в смысле нашей аксиомы, а алгоритмический

 

 

язык

кодированием алгоритмов. Из рассмотрения данного частного

 

 

случая кодирования видно,

что некоторые простые операции над про-

 

 

граммами тоже должны быть алгоритмичны, а именно:

 

 

 

 

 

 

 

 

 

 

 

(Аксиома композиций) Если имеется простейшая ком-

 

 

 

 

 

 

позиция T (ϕ1, . . . , ϕn) переменных алгоритмов ϕ1, . . . , ϕn,

 

ϕn

 

]

 

то имеется алгоритм

, выдающий для кортежа кодов [

d

ϕ1

e

, . . . ,

d

e

 

 

7

 

 

 

 

 

 

код dT (ϕ1, . . . , ϕn)e.

 

 

 

 

 

 

 

 

 

 

Докажем, что

 

 

 

 

 

 

 

 

 

 

 

Предложение Из двух принятых выше аксиом следует невоз можность построить13.2.1. всюду определенный универсальный алгоритм. -

7 Примечание для математиков Такие кодирования алгоритмов являются главными вычислимыми нумерациями см . но мы не прикладывали никаких усилий к тому чтобы минимизировать требования( . [16]),и получить в точности это понятие. ,

13.2. АКСИОМАТИЧЕСКОЕ ОПИСАНИЕ ВЫЧИСЛИМОСТИ

353

Доказательство. Рассмотрим выражение ψ(x) = [Υ ([x, x]) , NULL]. Это

4

ее код.

простейшая композиция и она является алгоритмом. Пусть π

Тогда Υ([π, π]) есть по определению универсального алгоритма ψ(π).

По определению ψ, последнее выражение записывается как [Υ([π, π]), NULL].

Таким образом, мы получили, что кортеж Υ([π, π]) не меняется после

добавления еще одного элемента, чего не может быть. Значит,

значение

Υ([π, π]) не определено.

 

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

Заметим что результат, о неопределенности. не запрещает возмож ности недетерминированных, алгоритмов которые при одних и тех же- начальных данных могут давать разные результаты, Поэтому мы стара лись нигде не использовать знак равенства а говорить. осторожнее дает- тот же результат Утверждение что алгоритм, на входных данных:

может давать результат. b, обозначается, µ a µ(a) → b.

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

функции может выглядеть, как в следующей формуле:

Υ (APPEND(APPEND(NULL, dϕe), x)) → y ϕ(x) → y. (13.5)

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

354 ГЛАВА 13. НЕПОЛНОТА И НЕФОРМАЛИЗУЕМОСТЬ

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

ровки Дж. Маккарти. Заметим, что простейшие композиции, в которых

последним применялся предикат, можно сами рассматривать как преди-

каты, поскольку любое их возможное значение может быть только ло-

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

скими. Определим условные термы следующим образом:

 

услов-

Определение 13.2.1. Если t

простейшая композиция, то t

ный терм.

простейший алгоритмический предикат, а t и u

условные

Если P

термы сигнатуры σ, то

 

 

 

 

 

if P then t else u fi

 

 

условный терм той же сигнатуры. Его значения определяются следую-

щим образом:

 

 

 

 

if P then t else u fi → b

 

 

(P & t → b) (¬ P & r → b).

 

Таким образом, если условие не определено, то условный терм тоже

неопределен, а вот если одно из выражений не определено,

то условный

терм может быть определен.

Если все функ-

(Аксиома о рекурсивном определении)

ции сигнатуры σ проинтерпретированы как алгоритмы,

ψ не входит в σ,

а t(ψ, x) — условный терм со свобод-

ной переменной

x

в сигнатуре σ, пополненной

ψ, то

имеется алгоритм,

такой, что

 

 

ψ(a) → b t(ψ, a) → b.

 

 

Его определение записывается в форме

 

 

 

 

ψ(x) ← t(ψ, x).

 

 

Пример Рекурсивное определение функции выделяющей из кор тежа первый13.2.элемент1. , может быть задано следующим, образом: -

FIRST(x) ←

if ATOM(x) then NULL else if NIL(x) then NULL else

if SIMPLE(x) then TAIL(x) else FIRST(BODY(x))

fi fi fi

13.2. АКСИОМАТИЧЕСКОЕ ОПИСАНИЕ ВЫЧИСЛИМОСТИ

355

Заметим что мы умалчивали какое же значение принимают исходные функции, на неподходящих аргументах, скажем если ей подать атом или пустой кортеж Пример ( заодно,показываетBODY, что можно просто определять новые). алгоритмы13.2так.1 чтобы сомнительные, случаи исключались заранее оставались в другой, альтернативе условного тер ма Так что если нам зачем( то нужна всюду определенность элементар- ных). композиций то эти функции- можно доопределить произвольным- образом. ,

Пример Поскольку мы доказали что не все алгоритмы опреде лены на всех13.2.значениях2. естественно ожидать, что наша главная опера- ция рекурсивного определения, приводит к неопределенным, функциям- И в самом деле, рассмотрим .

ERR(x) ← APPEND(ERR(APPEND(x, NULL)), NULL).

Вычисление данного алгоритма не может привести ни к какому резуль тату ни при каком значении В самом деле результат должен был являть- ся кортежом поскольку последнейx. применяется, функция То - гда результат, для должен быть на один элементAPPENDкороче и. так- далее Получается[x,бесконечныйNULL] спуск в длинах значений ,

Заметим. что при стандартной семантике рекурсивных. процедур не определен гораздо, более простой алгоритм:

ERR1(x) ← ERR1(APPEND(x, NULL))).

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

Из неопределенности вычислимых функций функций определяе мых алгоритмами следует что не для всякого предиката( множество, его- истинности можно) задать ,всюду определенным вычислимым предика том. Появляются следующие определения: -

Определение Множество называется разрешимым если имеет ся всюду определенный13.2.2. алгоритм вычисляющий его характеристиче, - скую функцию таким образом данный, алгоритм должен всегда давать- значение логическое( значение, и только одно из логических значений такой алгоритм, называется вычислимым, предикатом Множество на; зывается перечислимым, если имеется однозначный алгоритм). , дающий-

356 ГЛАВА 13. НЕПОЛНОТА И НЕФОРМАЛИЗУЕМОСТЬ

значение ИСТИНА тогда и только тогда, когда элемент принадлежит

данному множеству.8

 

Например, множество троек hA, a, bi, где A код алгоритма, таких,

что алгоритм с кодом A дает значение b на входных данных a, является

перечислимым, но не разрешимым.

 

Заметим, что дополнения некоторых перечислимых множеств мо-

гут быть неперечислимы. Чтобы легче показать это, рассмотрим еще од-

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

щие, отражая желательное и выполняющееся почти всегда в реализаци-

ях свойство вычислений. А именно,

мы выразим, что алгоритмы выпол-

няются шаг за шагом и выдают решение через конечное число шагов.

Соответственно, привлекая компьютерные аналогии, мы вспоминаем,

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

полняются шаг за шагом при помощи специальной программы-интерпретатора.

Существование интерпретатора

более сильное свойство, чем суще-

ствование универсальной функции,

и может быть записано следующим

образом:

 

(Аксиома перечислимости) Имеется такой разрешимый

предикат Ψ, что для любого алгоритма ϕ ϕ(a) → b тогда и

только тогда, когда имеется кортеж C, первым членом кото-

рого является пара [dϕe , a], все последующие члены имеют

вид [d$ie , ai], где $i

некоторый алгоритм, а последний

[NULL, b], на котором Ψ(C) = ИСТИНА.

можно интерпретировать как предикат проверяющий является ли даннаяΨ конечная последовательность пар начальным, отрезком, вычисле ния некоторого алгоритма - Если принять аксиому. перечислимости то в частности для нату ральных чисел любое множество такое что, и оно, само и его, дополне- ние являются перечислимыми разрешимо, , Правда для действительных, - чисел и других сложных не кодируемых, .достаточно, просто натураль ными числами объектов ситуация( может быть несколько сложнее -

Порою нужна) не разрешимость а более слабое понятие отдели.

мость. , : -

8 Но конечно же этот алгоритм может не давать никакого значения если элемент множеству, не принадлежит, . ,

13.2. АКСИОМАТИЧЕСКОЕ ОПИСАНИЕ ВЫЧИСЛИМОСТИ

357

Определение 13.2.3. Множество Z отделяет два непересекающихся

множества X и Y , если X Z, Y Z.

 

¯

 

Таким образом, отделимость понятие относительное. Она зави-

сит от рассматриваемой системы множеств и универса.

 

Теорема 13.2. (Теорема о неотделимости) Имеются два перечислимых

множества X и Y , таких, что нет разрешимого множества Z, отде-

ляющего их.

 

Идея доказательства. В качестве таких двух множеств можно взять

{[x, y] | Υ ([x, y]) → 0} ,

 

{[x, y] | Υ ([x, y]) → 1} .

 

Если предикат равенства вычислим, то любые два одноэлементных

множества отделимы. Но, скажем, для действительных чисел естествен-

но, в частности, рассматривать вычислимость на базисе некоторых стан-

дартных непрерывных аналитических функций (·, +, , \, exp, sin, cos,

ln. . . ) и предиката <, определенного как частичный, чтобы сохранить

непрерывность: если x = y, то значение x < y не определено. Поэто-

му естественно появляется понятие отделимых элементов: два элемента

отделимы, если есть вычислимый предикат, истинный на одном из них

и ложный на другом.

 

Имеется просто формулируемая и общая теорема, показывающая,

что для свойств вычислимых функций нельзя почти никогда надеять-

ся на разрешимость. Детерминированный алгоритм ϕ называется экс-

тенсиональным по первому аргументу, если для всех A и B, таких, что

функции, ими вычисляемые, одинаковы, имеем ϕ([A] X) → y

ϕ([B] X) → y. Таким образом, он на одинаковых функциях дает оди-

наковые результаты.

 

Теорема 13.3. (Теорема Успенского-Райса) Пусть предикат равен-

ства разрешим. Тогда,

если экстенсиональный алгоритм всюду опре-

делен, то он не зависит от первого аргумента, т.е.

x, y(x, y

коды алгоритмов

z, u(ϕ([x] z) → u ϕ([y] z) → u)).

Доказательство Рассуждаем от противного Пусть есть такое что ψ = λx ϕ([x] z). не является тождественной функцией. . z,

358

ГЛАВА 13. НЕПОЛНОТА И НЕФОРМАЛИЗУЕМОСТЬ

 

Пусть ERROR

нигде не определенная функция, а e

код од-

ного из алгоритмов,

ее вычисляющих. Пусть ϕ([e] z) → a.

Тогда, по

экстенсиональности

ϕ, для любого кода e0 нигде не определенной функ-

ции ϕ([e0] z) → a.

Поскольку ψ не является тождественной, найдется

такой код d, соответствующий некоторой вычислимой функции χ, что

ϕ([d] z) → b. Теперь построим следующее определение:

 

 

ξ(f, x, y) ← if ATOM(Υ(f, x) then χ(y) else χ(y) fi.

(13.6)

Эта функция нигде не определена, еслиf(x)не определено, а в против-

ном случае при фиксированных f, x дает χ. Таким образом,

проверяя,

чему равно ϕ(λy ξ(f, x, y)), мы могли бы проверить, применима ли функ-

ция к аргументу, что является неразрешимой проблемой.

 

 

И наконец, рассмотрим ту систему алгоритмов, которая обычно пред-

ставляется в книгах по теории вычислимости. Она может быть описана

следующим образом.

много атомов

натуральные числа. Истину ото-

Имеется бесконечно

ждествляем с 1, ложь

с 0. Имеются две исходные функции и один

предикат, определенные на атомах:

 

S(n),

дающая по n n + 1,

 

Pd(n), дающая по n > 0 n − 1, a для 0 — NULL;

Z(n),

предикат, проверяющий, равен ли его аргумент 0.

Такие алгоритмы, конечно же, детерминированы, поскольку детермини-

рованы исходные функции, и называются рекурсивными функциями. Со-

ответственно, множества, разрешимые при помощи рекурсивных функ-

ций, называются рекурсивно разрешимыми, а перечислимые с их помо-

щью

рекурсивно перечислимыми.

 

Пример Построим алгоритм осуществляющий сложение двух натуральных13.2.чисел3. : ,

PLUS([m, n]) ← if Z(n) then m else PLUS([m, Pd(n)]) fi.

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

Mu, n, φ([m, n]) =

0.

Muk(φ, [m, k]) ← if Zφ(m, k) then k else Muk(φ, [m, S(k)]) fi;

Mu(φ, m) ← Muk(φ, [m, 0]).

13.2. АКСИОМАТИЧЕСКОЕ ОПИСАНИЕ ВЫЧИСЛИМОСТИ

359

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

квантором минимизации, , введенным. Д. Гильбертом:

µn P (n),

где P алгоритмический предикат.

Есть экспериментальный факт степень подтвержденности которого в настоящий момент неизмеримо выше, чем у любого естественнонауч ного принципа все изобретенные детерминированные, алгоритмы вы- ражаются как рекурсивные: схемы над примененным базисом исходных- функций Этот факт имеет и теоретическое подтверждение но уже тре бующее перехода. к неклассической логике Если несколько, ограничить- логические средства так чтобы существование. означало построение то из полученного доказательства, можно извлечь рекурсивное определе, ние способа построения искомого объекта через функции осуществля- ющие построение результатов примененных утверждений, Как и приня- то в естественных науках это экспериментальное наблюдение. возведе- но в ранг общего утверждения, но в отличие от скажем законов Ньюто- на скромно называется тезис ,Черча может быть, правильнее, было бы- добавить сюда еще и фамилию Тьюринга( )9: ,

9 Алан Тьюринг английский математик в конце х гг создавший математиче скую модель простейшейвычислительной машины, пригодной30- . для вычисления всего- того что можно фактически сделать в математике ,Эта машина имеет память в виде ленты, в каждой ячейке которой стоит символ либо. и программу записанную в постоянной, памяти и неизменяемую в момент вычисления0 1, каждая команда, в которой состоит в анализе одной из ячеек ленты записи туда нового, значения сдвиге на одну ячейку влево или вправо и переходе к явно, указанной следующей команде, Во время второй мировой войны он внес немалый вклад в победу союзников обеспечив. нечита емость английских шифров для немцев и дешифровку немецких а,также улучшив ме- тоды расшифровки сигналов радиолокаторов После войны он опубликовал, небольшую- книгу о только что появившихся тогда компьютерах. в которой в частности заявил что вопрос Может ли машина мыслить должен решаться, не на, эмоциональном, уровне, а при помощи: “ точных критериев того?” что такое мышление Он предложил в качестве, одного из таких критериев тест Тьюринга, . .

Если машина может длительное время поддерживать телетайпный диалог с человеком сидящим в другом помещении и не знающим кто его партнер и тот, уверен что разговаривал с человеком то она, может считаться, разумной. , ,

Этот тест в его примитивном понимании был опровергнут Дж Вейценбаумом но в дан ном случае и сама формулировка такого теста, и его опровержение. внесли блестящие, -

360 ГЛАВА 13. НЕПОЛНОТА И НЕФОРМАЛИЗУЕМОСТЬ

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

Из этого тезиса следует строгое утверждение которое доказано для всех используемых в математике понятий алгоритма, все они эквивалентны в том смысле что алгоритмически определимые :функции над минималь ным базисом, понятий совпадают10 Но еще более важно то что для всех- явно выделенных в математике способов. построения алгоритмов, найде но их представление, согласующееся с тезисом Черча.11 -

Упражнения к

А почему мы§ не13.взяли2 в качестве множества структур более про 13.2.1.стое множество U? - В доказательстве предложения о невозможности всюду опреде 13.2.2ленного. универсального алгоритма есть неточность. Постарайтесь-

страницы в историю околокомпьютерной методологии, в которой на самом деле мало

утверждений, не являющихся благоглупостями и требующих серьезного опровержения.

Почти сразу после публикации книги А. Тьюринг умер.

10 Тут есть две ловушки. Во-первых, совпадение определимости не означает сопоста-

вимости ресурсов, необходимых для вычисления данной конкретной функции различ-

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

шине Тьюринга, является математической демагогией, когда применимость подменяют

определимостью. Во-вторых, если исходный базис брать не минимальным и общепри-

нятым, а произвольным (как делали мы), то даже определимость начинает различаться.

Рекурсивные схемы

один из мощнейших в смысле относительной определимости

аппаратов теории алгоритмов.

11 Есть одно исключение найденное автором Если имеются вращающиеся черные ды ры то в принципе можно,организовать вычислительный. процесс таким образом чтобы- получить, ответ на неразрешимую задачу но при этом нужно самому успешно, совер шить путешествие сквозь такую черную ,дыру в другую Вселенную Таким образом в- некотором смысле тезис Черча и общая теория относительности друг. другу противоре, чат На самом деле именно логики порою выдвигали обоснованные возражения против- теории. относительности слишком часто подвергавшейся неквалифицированной кри тике Так Курт Гёдель построил, пример Вселенной в которой время может идти по- кругу. и тем, самым опроверг мнение Эйнштейна что из, общей теории относительности должна, следовать однонаправленность времени ,после чего сам А Эйнштейн выдвинул эту работу на одну из самых престижных научных( премий Серьезная. теория требует глубоких возражений а глубинные взаимосвязи научного знания). гораздо сильнее чем можно вообразить наблюдая, современную науку разделенную на почти невзаимодей, ствующие отрасли,. , -