Текст книги "Новый ум короля: О компьютерах, мышлении и законах физики"
Автор книги: Роджер Пенроуз
Жанры:
Философия
,сообщить о нарушении
Текущая страница: 8 (всего у книги 47 страниц)
1 + T n ( n ) х H( n ; n ) = T k ( n ).
Но если мы подставим в это выражение n = k , то получится
1 + T k ( k ) x H( k ; k ) = T k ( n ).
Мы приходим к противоречию, потому что если T k ( k ) останавливается, то мы имеем невыполнимое равенство
1 + T k ( k ) = T k ( k )
(поскольку Н( k ; k ) = 1), тогда как в случае безостановочного действия T k ( k ) (т. е. когда Н( k ; k ) = 0) мы получаем не менее абсурдное соотношение
1 + 0 = □.
Вопрос о том, останавливается ли конкретная машина Тьюринга или нет, представляет собой совершенно четко определенную математическую задачу (а ранее мы уже видели, что, наоборот, различные важные математические задачи могут быть сведены к вопросу об остановке машины Тьюринга). Таким образом, доказав, что не существует алгоритма для решения вопроса об остановке машины, Тьюринг показал (также как и Черч, который использовал свой собственный и весьма отличающийся подход), что не может быть и общего алгоритма для решения математических задач. Проблема разрешимости Гильберта не имеет решения !
Это не означает, что в каждом отдельномслучае мы не в состоянии выяснить справедливость (или, наоборот, несостоятельность) некоторого конкретного математического утверждения или определить, остановится ли данная машина Тьюринга. С помощью интуиции, искусных технических приемов или же опираясь просто на здравый смысл, мы, вероятно, могли бы получить ответ на такие вопросы в частных случаях. (Так, например, если перечень инструкций некоторой машины Тьюринга не включает ни однойкоманды STOPили же, наоборот, состоит толькоиз таких команд, то одного здравого смысла достаточно для решения вопроса о ее остановке!) Но не существует ни одного алгоритма, который позволял бы решать любуюматематическую задачу или давал ответ на вопрос об остановке любоймашины Тьюринга при любых вводимых в нее числах.
Может показаться, что мы пришли к выводу о существовании по крайней мере несколькихнеразрешимых математических вопросов. Однако это совсем не так! Мы не показали, что существует какая-то необычайно громоздкая машина Тьюринга, для которой (в некотором абсолютном смысле) невозможнорешить вопрос об остановке при ее работе с каким-то особенно громоздким числом – в действительности, все как раз наоборот, как мы сможем скоро убедиться. Мы вообще ничего не говорили о неразрешимости какой-то отдельнойзадачи, а только лишь об алгоритмическойнеразрешимости классовзадач. В каждом конкретном случае ответ будет либо «да», либо «нет», поэтому алгоритм для решения частной задачи, конечно, существует, а именно алгоритм, который при применении к этой задаче просто дает ответ «да» или, может быть, «нет»! Трудность в данном случае состоит в том, что мы не знаем, какойименно из имеющихся алгоритмов применять в том или ином случае. Это вопрос об установлении математической истинности отдельного утверждения, но не об общем решении проблемы для целого класса утверждений. Очень важно сознавать, что сами по себе алгоритмы не доказывают математическую истину. Решение о правомерности использования каждого алгоритма должно всегда приходить извне.
Как превзойти алгоритм
К вопросу о том, как установить истинность математических утверждений, мы вернемся позднее, в связи с теоремой Геделя (см. главу 4). Пока же я бы хотел обратить ваше внимание на то, что доказательство Тьюринга носит гораздо более конструктивный характер и не столь негативно, как могло показаться из предыдущего изложения. Мы ведь не показали, что есть некая определенная машина Тьюринга, для которой абсолютно невозможно решить, останавливается она или нет. Более того, если внимательно проследить за доказательством, то выяснится, что для кажущихся «чрезвычайно сложными» машин сама процедура Тьюринга, использованная для их построения, неявным образом дает ответ! Посмотрим, как это происходит. Допустим, у нас есть алгоритм, который иногдапозволяет определить, что машина Тьюринга не остановится. Вышеописанная процедура Тьюринга позволяет явнопроследить за вычислениями машины Тьюринга в случае, когда этот конкретный алгоритм не дает ответа на вопрос об остановке вычислительного процесса. Однако тем самым эта процедура дает намв этом случае возможность узнать ответ! Конкретная машина Тьюринга, за работой которой мы следим, и вправду никогда не остановится.
Чтобы подробно разобраться в этом вопросе, предположим, что у нас есть некий алгоритм, который иногда позволяет решить проблему остановки. Как и ранее, мы обозначим этот алгоритм (машину Тьюринга) через H, но теперь мы допускаем, что этот алгоритм не всегда может точно определить, что машина Тьюринга не остановится:
так что Н( n ; m ) = □возможно в случае, когда T n ( m ) = □. Существует немало алгоритмов типа Н( n ; m ). (Например, Н( n ; m ) мог бы просто давать на выходе 1, как только машина T n ( m ) останавливается, хотя такойалгоритм едва ли представляет большой практический интерес!)
Мы можем повторить процедуру Тьюринга, следуя уже пройденным путем, с той только разницей, что теперь некоторые из « □» останутся не замененными на нули. Как и ранее, применив диагональный процесс, получим
1 + T n ( n ) х H( n ; n )
в качестве n -го элемента диагонали. (Мы будем иметь □каждый раз, когда H( n ; n ) = □.
Отметим, что □x □= □, 1 + □= □.) Это безупречно алгоритмизованное вычисление, поэтому оно может быть произведено некоторой машиной Тьюринга, скажем k -й, и тогда мы получим
1 + T n ( n ) х H( n ; n ) = Т k ( n ).
Для k -го диагонального элемента (т. е. n = k ) мы имеем
1 + T k ( k ) x H( k ; k ) = T k ( k ).
Если вычисления Т k ( k ) останавливаются, то мы приходим к противоречию (в этом случае Н( k ; k ) должно равняться единице, но тогда возникнет невыполнимое равенство: 1+ Т k ( k ) = Т k ( k ) ). Значит, Т k ( k ) не может остановиться, т. е.
Т k ( k ) = □.
Но алгоритм не может этого «знать», потому что, если бы он давал Н( k ; k ) = 0, мы снова пришли бы к противоречию (мы получили бы тогда неверное соотношение 1+0= □).
Таким образом, если мы можем отыскать k , то мы знаем, как построить вычислительную процедуру, для которой алгоритм не дает решения проблемы остановки, но нам ответ известен! А как нам найти k ? Это непростая задача. Необходимо тщательно изучить конструкцию H( n ; m ) и T n ( m ) и понять, как в точности действует 1 + Т n ( n ) х Н( n ; n ) в качестве машины Тьюринга. Затем надо определить номер этой машины, который и есть k . Конечно, это выполнить трудно, но вполне возможно [54]54
Фактически, самую трудную часть мы уже выполнили, когда построили универсальную машину Тьюринга U, поскольку она позволяет нам записывать T n ( n ) как машину Тьюринга, действующую на n .
[Закрыть]. Из-за этих трудностей вычисление Т k ( k ) нас бы вовсе не интересовало, не будь она специально предназначена для доказательства неэффективности алгоритма H! Важно то, что мы получили строго определенную процедуру, которая для любого наперед заданного алгоритма Hпозволяет найти такое k , что для Т k ( k ) этот алгоритм не может решить проблему остановки, т. е. мы тем самым превзошли его. Возможно, мысль о том, что мы «умнее» каких-то алгоритмов, принесет нам некоторое удовлетворение!
На самом деле, упомянутая процедура настолько хорошо определена, что мы могли бы даже найти алгоритмдля нахождения k по заданному H. Поэтому, прежде чем мы «погрязнем» в самодовольстве, мы должны осознать, что этот алгоритм может улучшить H [55]55
Мы могли бы, конечно, «обыграть» и этот модифицированный алгоритм, просто за счет повторного применения предыдущей процедуры. Тогда мы сможем использовать эти вновь полученные знания для дальнейшего улучшения алгоритма, который мы, в свою очередь, снова превзойдем; и так далее. Тип рассуждений, в который выливается этот повторяющийся процесс, будет рассмотрен нами в связи с теоремой Геделя в главе 4.
[Закрыть], поскольку он, по сути, «знает», что Т k ( k ) = □, – или все-таки нет? В предыдущем изложении было удобно использовать антропоморфный термин «знать» по отношению к алгоритму. Однако не мы ли в конечном счете «знаем», тогда как алгоритм просто следует определенным нами правилам? А может быть мы сами просто следуем правилам, запрограммированным в конструкции нашего мозга и в окружающей нас среде? Эта проблема затрагивает не только алгоритмы, но и то, как мы выносим суждения об истинности и ложности. К этим важнейшим проблемам мы вернемся позднее. Вопрос о математической истине (и ее неалгоритмической природе) будет рассмотрен в главе 4. На данный момент мы, по крайней мере, получили некоторое представление о значениислов «алгоритм» и «вычислимость» и достигли понимания некоторых из относящихся к ним вопросов.
Лямбда-исчисление Черча
Понятие вычислимости – очень важная и красивая математическая идея. Примечателен также и ее малый возраст в сравнении с другими столь же фундаментальными математическим проблемами: она была впервые выдвинута только в 1930-х годах. Эта проблема имеет отношение ко всем областям математики (хотя, справедливости ради, отметим, что большинство математиков пока не часто обращаются к вопросам вычислимости). Сила этой идеи связана отчасти с существованием четко определенных и все же неразрешимыхматематических операций (как, например, проблема остановки машины Тьюринга и некоторые другие, которые мы рассмотрим в главе 4). Если бы не было таких невычислимых объектов, то теория алгоритмической разрешимости не представляла бы особого интереса для математики. В конце концов, математики любят головоломки.
Задача о разрешимости определенной математической операции может их заинтриговать, особенно потому, что общее решение этой головоломки само по себе алгоритмически не разрешимо.
Следует сделать еще одно замечание. Вычислимость – это по-настоящему «абсолютная» математическая идея. Это абстрактное понятие, которое никак не зависит от какой-либо конкретной реализации в терминах «машин Тьюринга» в том виде, как я их описал выше. Как я уже указывал, нет необходимости придавать какое-либо специальное значение «лентам», «внутренним состояниям» и т. п., характерным для гениального, но тем не менее частного подхода Тьюринга. Существуют также и другие способы выражения идеи вычислимости, причем исторически первым было «лямбда-исчисление», предложенное американским логиком Алонзо Черчем совместно со Стивеном Клини. Процедура, предложенная Черчем, значительно отличалась от метода Тьюринга и была гораздо более абстрактна. Фактически, форма, в которой Черч изложил свою теорию, делала связь между ними и чем бы то ни было «механическим» совсем не очевидной. Главная идея, лежащая в основе процедуры Черча, абстрактна по своей сути – это математическая операция, которую сам Черч назвал «абстрагированием».
Мне кажется, что стоит привести краткое описание схемы Черча не только потому, что она подчеркивает математическую природу идеи вычислимости, не зависящую от конкретного понятия вычислительной машины, но и потому, что она иллюстрирует мощь абстрактных идей в математике. Читатель, не достаточно свободный в математике и не увлеченный излагаемыми математическими идеями как таковыми, скорее всего предпочтет сейчас перейти к следующей главе – и не утратит при этом нить рассуждений. Тем не менее я полагаю, что таким читателям будет небесполезно следовать за мной еще какое-то время и оценить чудесную по своей стройности и продуманности схему Черча (см. Черч [1941]).
В рамках этой схемы рассматривается «универсальное множество» различных объектов, обозначаемых, скажем, символами
каждый из которых представляет собой математическую операцию, или функцию. (Штрихованные буквы позволяют создавать неограниченные наборы символов для обозначения таких функций.) «Аргументы» этих функций, т. е. объекты, на которые эти функции действуют, в свою очередь являются объектами той же природы, т. е. функциями. Более того, результат действия одной функции на другую (ее «значение») также представляет собой функцию. (Поистине, в системе Черча наблюдается замечательная экономия понятий.) Поэтому, когда мы пишем [56]56
В более привычной форме эта запись имела бы вид а = b(с), но эти дополнительные скобки в действительности не нужны, поэтому лучше просто привыкнуть к их отсутствию. Их последовательное использование привело бы к довольно громоздким формулам вида
, соответственно.
[Закрыть]
а = bс ,
мы подразумеваем, что функция b , действуя на функцию c , дает в результате другую функцию а . В рамках этой схемы нетрудно сформулировать понятие функции двух или более переменных. Если мы хотим представить f как функцию двух переменных, скажем р и q , то мы можем просто написать
(fp)q
(что есть результат действия функции fp на функцию q ). Для функции трех переменных можно использовать выражение
((fp)q)r
и так далее.
Теперь мы можем перейти к описанию важнейшей операции абстрагирования. Для нее мы будем использовать греческую букву λ (лямбда). Непосредственно за ней будет следовать символ одной из функций Черча, скажем х , который мы будем рассматривать как «фиктивную переменную». Каждое появление х в квадратных скобках, следующих сразу за этим выражением, обозначает теперь просто место, куда подставляется все, что идет за всем этим выражением. Таким образом, когда мы пишем
λx . [ fx ],
мы подразумеваем функцию, которая при действии на, например, а имеет значение fа , т. е.
( λх . [ fx ]) a = fа .
Другими словами, λх . [ fх ] – это просто функция f , т. е.
λх . [ fх ] = f .
Сказанное выше требует определенного осмысления. Это одна из тех математических тонкостей, которые на первый взгляд кажутся настолько педантичными и тривиальными, что их смысл часто совершенно ускользает от понимания. Рассмотрим пример из знакомой всем школьной математики. Примем за f тригонометрическую функцию – синус угла. Тогда абстрактная функция «sin» будет определяться выражением
λх . [ sin х ] = sin .
(Не придавайте большого значения тому, что в качестве «функции» х может фигурировать величина угла. Мы скоро увидим, каким образом числа можно иногда рассматривать как функции, а величина угла – это просто число.) До сих пор все на самом делетривиально. Однако представим себе, что обозначение «sin» не было изобретено, но нам известно о существовании представления sin х в форме степенного ряда:
Тогда мы могли бы ввести определение
Можно было поступить еще проще и определить, например, операцию «одна шестая куба», для которой не существует стандартного «функционального» обозначения:
Тогда, например,
К обсуждаемым проблемам большее отношение имеют выражения, составленные просто из элементарных функциональных операций Черча, таких как
λf.[f (fx)]
Это функция, которая, действуя на другую функцию, скажем g , дает дважды итерированную g , действующую на x
(λf.[f (fx)])g = g(gx) .
Мы могли бы сначала «абстрагироваться» от x и рассмотреть выражение
λf. [λх. [f (fх)]] ,
которое можно сократить до
λfx. [f (fx)] .
Это и есть операция, применение которой к g дает функцию «вторая итерация g ». По сути, это та самая функция, которую Черч обозначил номером 2 :
2 = λfx.[f (fx)] ,
так что (2g) y = g (gy) . Аналогичным образом он определил:
3 = λ fx. [f (f (fx))] ,
4 = λfх. [f (f (f (fx)))] , и т. д.,
а также
1 = λfх. [fх] и 0 = λ fx.
[x] .
Видно, что 2 Черча больше похоже на «дважды», 3 – на «трижды» и т. д. Значит, действие 3 на функцию f , т. е. 3f равносильно операции «применить f три раза», поэтому 3f при действии на у превращается в
(3f)y = f (f (f (y))) -
Посмотрим, как в схеме Черча можно представить очень простую математическую операцию – прибавление 1 к некоторому числу. Определим операцию
S = λabc. [b ((аb)с)] .
Чтобы убедиться, что S действительно прибавляет 1 к числу в обозначениях Черча, проверим ее действие на 3 :
поскольку (3b)с = b (b (bc)) . Очевидно, эта операция с таким же успехом может быть применена к любому другому натуральному числу Черча. (В действительности, операция
λаbс. [(аb)(bс)] приводит к тому же результату, что и S .)
А как насчет удвоения числа? Удвоение числа может быть получено с помощью операции
что легко видеть на примере ее действия на 3 :
Фактически, основные арифметические операции – сложение, умножение и возведение в степень могут быть определены, соответственно, следующим образом:
А = λfgxy. [((fx)(gx))y],
М = λfgx. [f (gx)],
P = λfg. [fg]
Читатель может самостоятельно убедиться (или же принять на веру), что
(Am) n = m + n ,
(Mm) n = m x n ,
(Pm) n = n m ,
где m и n – функции Черча для двух натуральных чисел, m + n – функция, выражающая их сумму, и т. д. Последняя из этих функций поражает больше всего. Посмотрим, например, что она дает в случае m = 2, n = 3 :
Операции вычитания и деления определяются не так легко (на самом деле нам потребуется соглашение о том, что делать с ( m – n ), когда m меньше n , и с ( m/n ), когда m не делится на n ). Решающий шаг в развитии этого метода был сделан в начале 1930-х годов, когда Клини удалось найти выражение для операции вычитания в рамках схемы Черча! Затем были описаны и другие операции. Наконец, в 1937 году Черч и Тьюринг независимо друг от друга показали, что всякая вычислимая (или алгоритмическая) операция – теперь уже в смысле машин Тьюринга – может быть получена в терминах одного из выражений Черча (и наоборот).
Это воистину замечательный факт, который подчеркивает глубоко объективный и математичный характер понятия вычислимости. На первый взгляд, понятие вычислимости по Черчу не связано с вычислительными машинами. И тем не менее, оно имеет непосредственное отношение к практическим аспектам вычислений. В частности, мощный и гибкий язык программирования LISP включает в себя как существенный элемент основные структуры исчисления Черча.
Как я отмечал ранее, существуют и другие способы определения понятия вычислимости. Несколько позже, но независимо от Тьюринга, Пост предложил во многом сходную концепцию вычислительной машины. Тогда же благодаря работам Дж. Хербранда и Геделя появилось и более практичное определение вычислимости (рекурсивности). X. Б. Карри в 1929 году, и ранее, в 1924, М. Шенфинкель, предложили иной подход, который был отчасти использован Черчем при создании своего исчисления (см. Ганди [1988]). Современные подходы к проблеме вычислимости (такие как машина с неограниченным регистром, описанная Катлендом [1980]) в деталях значительно отличаются от разработанного Тьюрингом и более пригодны для практического использования. Однако понятие вычислимости во всех этих подходах остается неизменным.
Как и многие другие математические идеи, особенно наиболее фундаментальные и красивые, идея вычислимости кажется овеществленнойи объективно существующей в платоновскомсмысле. Именно к этому мистическому вопросу о платоновской реальности математических понятий мы и обратимся в следующих двух главах.
Глава 3
Математика и действительность
Страна Тор'Блед-Нам
Представим себе, что мы совершаем большое путешествие в некий далекий мир. Назовем его Тор'Блед-Нам. Наша телеметрическая система зарегистрировала сигнал, вывела его на монитор и, отфокусировав изображение, мы увидели следующую картину (рис. 3.1):
рис. 3.1. Первый взгляд на новый мир
Что бы это могло быть? Странного вида насекомое? А может быть, темное озеро с многочисленными втекающими в него ручьями? Или огромный причудливой формы внеземной город, с исходящими в разных направлениях дорогами, которые ведут в расположенные поблизости городки и деревушки? Возможно, это остров – и если это так, то давайте поищем поблизости континент, с которым он связан. Для этого «отойдем назад», т. е. уменьшим увеличение наших приборов раз в 15. И вот – посмотрите-ка – этот новый мир предстал перед нашим взором во всей своей полноте (рис. 3.2):
Рис. 3.2. Общий вид Тор'Блед-Нам. Стрелками
отмечены области, увеличенные изображения которых
даны на рис. 3.1, 3.3 и 3.4
На рис. 3.2 наш «островок» выглядит как маленькая точка под стрелкой «рис. 3.1». Все волокна (ручьи, дороги, мосты?), исходящие из первоначального островка, обрываются, за исключением одного – того, что выходит из внутренней части расположенной справа расщелины, и который, в свою очередь, соединен с объектом гораздо большего размера (он изображен на рис. 3.2). Последний, как нетрудно заметить, подобен первоначальному островку, хотя их формы несколько отличаются. При более подробном рассмотрении «береговой линии» выявляются бесчисленные округлые выступы, края которых, в свою очередь, густо усеяны выступами такой же формы. Каждый маленький выступ соединен в каком-нибудь месте с более крупным, и все вместе они образуют бородавчатую структуру, где более крупные выступы покрыты наростами помельче, те – еще более мелкими и т. д. По мере того, как картина становится все более отчетливой, мы видим мириады мельчайших волокон, исходящих из рассматриваемой структуры. Сами волоконца ветвятся в разных местах, беспорядочно извиваясь. В некоторых частях волокон просматриваются узлы более сложной структуры, неразрешимые при данном увеличении приборов. Ясно, что наш объект – это никакой не остров или континент, и даже не пейзаж. Не исключено, что перед нашим взором чудовищный жук, а то, что мы увидели вначале, – это его детеныш, все еще соединенный с родителем своеобразной волокнистой пуповиной.
Давайте исследуем один из наростов у нашего насекомого, для чего увеличим разрешение примерно в десять раз (см. рис. 3.3 – соответствующая область на рис. 3.2. отмечена как «рис. 3.3»).
Рис. 3.3. Бородавка
с «пятеричностью» своих волоконцев
Своим видом нарост сильно напоминает все существо целиком, за исключением места соединения. Обратите внимание, что на рис. 3.3 имеется множество точек, в которых сходятся пять волокон. По-видимому, этому конкретному наросту свойственна некая «пятеричность» (точно также как для самой верхней «бородавки» на рис. 3.2 характерна определенная «троичность»). На самом деле, если исследовать (на рис. 3.2) расположенный чуть ниже и левее следующий разумного размера нарост, то мы обнаружим у него «семеричность», а у следующего – характерную «девятеричность» и т. д. При углублении во впадину между двумя самыми крупными областями на рис. 3.2, справа будут встречаться наросты с постоянно нарастающим нечетным числом лучей. Давайте всмотримся внимательно вниз вглубь заостренной впадины, повысив увеличение еще в десять раз по сравнению с рис. 3.2 (рис. 3.4).
Рис. 3.4. Главная впадина. «Долина морских
коньков» едва различима справа внизу
Мы обнаружим множество других мельчайших наростиков на фоне общего беспорядочного завихрения. Справа видны едва различимые спиралевидные структуры, напоминающие «хвосты морских коньков», расположенные в области, которую мы так и назовем – «долина морских коньков». Здесь нам встретятся – если смотреть на это место при достаточно большом увеличении – разнообразные «морские анемоны» или области с богатой флорой. В конце концов, перед нами действительно может быть какой-то экзотический берег – возможно, коралловый риф, изобилующий всевозможными формами жизни. Объект, принятый нами за цветок, при более сильном увеличении может оказаться состоящим из мириада мельчайших и при этом невероятно сложных структур, с многочисленными волокнами и вихреобразными спиралевидными хвостами. Давайте рассмотрим подробнее один из более крупных хвостов морских коньков, а именно – едва различимое образование, обозначенное на рис. 3.4 как «рис. 3.5» (и соединенное с 29-ричным наростом!). Повысив увеличение в 250 раз, мы увидим изображенную на рис. 3.5 спираль.
Рис. 3.5. Хвост «морского конька» крупным планом
При этом окажется, что это не обычный хвост: и он тоже состоит из сложнейших вихреобразных структур с многочисленными мельчайшими спиралями и областями в форме осьминогов и морских коньков!
Рис. 3.6. Дальнейшее увеличение места соединения
спиралей. В центре едва различим маленький детеныш
Во многих местах видно, что исследуемые нами структуры расположены точно в том месте, где сходятся две спирали. Рассмотрим одно такое место (обозначенное как «рис. 3.6» на рис. 3.5) с дополнительным 30-кратным увеличением. Посмотрите-ка: в самой середине теперь виднеется странный объект, в котором, однако, есть что-то знакомое. Увеличим изображение еще в шесть раз (рис. 3.7) – появляется крохотный дочерний объект, практически идентичный всей структуре!
Рис. 3.7. При увеличении детеныш обнаруживает
сходство с целым миром
При более внимательном рассмотрении обнаруживаются некоторые отличия присоединенных к этой субструктуре волокон от тех, что выходят из основной структуры, – новые волокна, закручиваясь, уходят на значительно большие относительные расстояния. И при этом маленькое существо выглядит почти неотличимым от своего родителя, – у него даже есть аналогично расположенные собственные детеныши. Можно было бы исследовать и их, если вновь повысить увеличение приборов. «Внуки» тоже будут напоминать своего общего предка – и нетрудно увидеть, что так может продолжаться до бесконечности. Этот странный мир Тор'Блед-Нам можно исследовать как угодно долго, постоянно увеличивая разрешающую способность нашей системы наблюдения. И тогда перед нами предстанет бесконечное разнообразие: никакие две области не являются в точности одинаковыми, но всем им свойственны общие черты, которые очень быстро становятся узнаваемыми. Знакомые нам уже жукообразные существа появляются на все меньших и меньших масштабах. Каждый раз при этом расположенные рядом волокнистые структуры отличаются от предыдущих, демонстрируя новые фантастические сцены невероятной сложности.
В какой же странной и удивительно замысловатой по своей структуре стране мы оказались? Не сомневаюсь, что многие читатели уже знакомы с ней, но не все. Это не что иное, как фрагмент абстрактной математики – множество, известное под названием множества Мандельброта [57]57
См. Мандельброт [1986]. Выбранная мною конкретная последовательность коэффициентов увеличения взята из работы Пайтгена и Рихтера [1986], в которой можно познакомиться с большим количеством цветных изображений множества Мандельброта. Другие поразительные иллюстрации можно найти в книге Пайтгена и Заупе [1988].
[Закрыть]. При всей его несомненной сложности оно получается на редкость простым образом! Чтобы как следует объяснить правила построения этого множества, необходимо сначала рассказать о том, что такое комплексные числа . Именно этим я сейчас займусь. Комплексные числа нам понадобятся и в дальнейшем. Они являются неотъемлемой частью структуры квантовой механики и вследствие этого лежат в основе поведения самого мира, в котором мы живем. Кроме того, комплексные числа являют собой одно из великих чудес математики. Чтобы объяснить, что такое комплексные числа, мне сначала потребуется напомнить вам, что подразумевается под термином «действительные числа». Не лишним будет также отметить связь этого понятия с действительностью «реального мира»!