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