Библия и искусство программирования (Дональд Кнут)

член-корреспондент РАН, доктор геолого-минералогических наук, профессор Сергей Владимирович Кривовичев

Привожу интересный отрывок из книги «Наука верующих или вера ученых: век XX«. Кривовичев Сергей. М.: ООО «ТД Алгоритм», 2015, 208 с. ISBN 978-5-4438-1036-2

«Пожалуй, ничто так не изменило нашу жизнь за прошедшие несколько десятилетий, как компьютеры. Никто не мог предвидеть такого интенсивного развития как технического (hardware), так и программного (software) обеспечения электронно-вычислительных машин. Наиболее поразительным и не совсем видным обычному пользователю стало бурное развитие методов и приемов программирования и связанной с этим обработки информации и изображений. За всей этой техникой лежит универсальная теория алгоритмов — способов для решения тех или иных вычислительных задач. Одним из признанных мировых лидеров в этой области является американский математик и программист Дональд Кнут. Его многотомник «Искусство программирования» является настольной книгой программистов и выдержал несколько изданий как на английском, так и на других (в том числе и на русском) языках.

профессор Дональд Эрвин Кнут

Кнут также является автором широко известной настольной издательской системы «ТеХ», чрезвычайно популярной среди ученых, работающих в области физики и математики (некоторые научные журналы принимают рукописи статей, написанные только в этой системе). Влияние Дональда Кнута на развитие программирования в XX веке трудно переоценить, но ему также принадлежат и интересные разработки в дискретной математике и теории чисел. Правда, сам о себе он всегда говорил именно как о человеке, составляющем программы, — такие люди имеют совершенно особый образ мышления: «Я убежден, что компьютерная наука выросла так быстро и так активна сегодня, поскольку в мире есть люди с особенным образом мышления, со специфической манерой структурировать знания в своей голове, — это ментальность, <…> которая отличается от ментальности физиков и математиков. Это люди, которые в старые времена были рассеяны по разным департаментам, будучи более или менее изгнанниками в стенах университетов. Когда неожиданно оказалось, что их особенность мышления прекрасно коррелирует со способностью писать компьютерные программы, эти люди неожиданно нашли друг друга. <…> Одна из основных характеристик компьютерной ментальности — это способность очень быстро перескакивать с одного уровня абстракции на другой, практически бессознательно. <…> Опыт показывает, что примерно один человек из 50 обладает «компьютерным» взглядом на мир» [1].

Создание компьютерных программ можно сопоставить с созданием параллельной реальности, а их использование — с пребыванием в этой реальности. Виртуальный мир, создаваемый компьютерными программами, иногда проще и интереснее, чем реальный мир, и в нем человеку открывается гораздо больше возможностей, чем в реальности (например, способность летать). Видимо, именно с этим связана такая популярность компьютерных игр среди подрастающего поколения. Но если программисты создают свои отдельные вселенные, которые могут развиваться в соответствии с поведением в них отдельных личностей-игроков, то что, если, наоборот, вся видимая Вселенная является результатом программирования Великого Программиста, определяющего обстановку и правила игры, но оставляющего за нами, как за игроками, свободу выбора и действия? Если встать на эту точку зрения, то оказывается, что программирование имеет, может быть, гораздо большее отношение к проблемам бытия Бога и Его действия в мире, чем это может показаться со стороны. Именно поэтому так интересны взгляды на соотношение компьютерной науки и религии выдающего специалиста в области компьютерной математики и верующего христианина Дональда Кнута.

Дональд Кнут родился в 1938 году в городе Милуоки (штат Висконсин, США). Он окончил Институт технологии Кейза (Case Institute of Technology) и в 1963 году получил степень доктора философии по математике в Калифорнийском технологическом институте. Технологии программирования заинтересовали его уже в студенческом возрасте — в 1958 году он написал программу для баскетбольной команды своего колледжа. В 1960-х годах программирование было полностью новой областью, и предстояло оформить его в отдельную область науки, дать строгие доказательства отдельных положений, построить теорию анализа алгоритмов и т. д. Основным жизненным проектом Кнута стало написание уже упомянутой выше книги «Искусство программирования», первый том которой вышел в 1968 году. Эта книга, наряду с другими работами, принесла ему мировую известность и ряд престижных международных наград и премий, включая высшую американскую награду в области науки — Национальную медаль Науки США в 1979 году и премию Тьюринга в 1974-м — своего рода «Нобелевскую премию по программированию». Приятно отметить, что Дональд Кнут также является иностранным членом Российской Академии наук. Будучи с детства воспитанным в религиозном духе («я вырос с идеей, что Бог постоянно читает мои мысли, и я всегда чувствовал себя вполне комфортно с подобным вторжением в мою частную жизнь»), в зрелом возрасте он заинтересовался возможностью изложения своих религиозных взглядов для своих коллег, — прежде всего тех, которые отрицательно относились к религии (таких, по его расчетам, было от 5 до 10 процентов).

The Tech (MIT): What is your religious background like? Are you knowledgeable on all religions?

Knuth: «I grew up in a warm friendly environment and my family always always went to Church. My father was a teacher for a Lutheran School. I’m Protestant, and I’ve studied most branches of Christianity. I don’t know that much about other religions, however. I just know enough to know there are many connections. I also have a great deal of respect towards other religions» [2].

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

Кнут весьма осторожен в вопросах веры и неверия («я никогда особенно не пропагандирую свою веру; обычно я жду, когда люди спросят меня об этом, если это им интересно»), но находит место и для критики:

«Для людей в науке очень легко поверить в то, что если ты однажды что-то выучил, то тебе уже не нужна помощь ни в чем другом. Я никогда не мог понять эту точку зрения. <…> Я всегда восхищался словами апостола Павла в начале его первого послания к Коринфянам. Сначала он цитирует пророка Исайю: «разум разумных отвергну» (Ис. 29,14); затем он устанавливает базовый математический принцип упорядочения: «немудрое Божие премудрее человеков»; и говорит о том, что “Бог избрал немудрое мира, чтобы посрамить мудрых… для того, чтобы никакая плоть не хвалилась пред Богом» (Кор. 1:20-29).

…После того, как я вошел в «высшую лигу» университетов мирового класса, я стал встречать все меньше и меньше людей твердой веры, я стал встречать все больше и больше людей, которые утверждают, что им этого не надо… Я был сильно расстроен тем, что их знания о вере ограничивались тем, что они слышали по радио от людей достаточно диких. Представления о вере моих коллег были сформированы «телеевангелистами», которые способны, например, предсказывать будущее на основании книги пророка Даниила. Большинство моих университетских друзей не имели понятия о том, что значит Бог для меня и моих церковных друзей».

В связи с этим, осенью 1978 года Кнут решил расширить свои религиозные познания путем исследования Библии «…одним из методов, которые я использовал для понимания больших компьютерных программ и которые помогли мне в изучении других весьма сложных предметов». Этим методом стал алгоритм рандомизации, когда знания о системе добываются путем случайной выборки и последующего анализа ее отдельных компонентов. Библия содержит около 31 ООО стихов, распределенных по 66 книгам. Кнут решил выбрать по стиху из каждой книги, то есть осуществить стратифицированную или послойную выборку.

«Как раз в это время меня попросили провести библейский класс в нашей церкви. На протяжении многих лет я посещал библейские классы, но в качестве преподавателя — никогда. Мне сказали, что вот, наконец, пришла и моя очередь… «Хорошо, — сказал я, — но учтите, что со мной вам придется стать участниками эксперимента. Мы будем рассматривать случайно взятые стихи из Библии»».

И все же стихи были выбраны не совсем случайно — Кнут решил исследовать 16-й стих 3-й главы каждой библейской книги. Такой выбор был обусловлен тем, что одним из самых известных (по крайней мере, в США) библейских стихов является стих 3:16 из Евангелия от Иоанна: «Ибо так возлюбил Бог мир, что отдал Сына Своего единородного, дабы всякий, верующий в Него, не погиб, но имел жизнь вечную». Этот стих настолько популярен среди протестантов-фундаменталистов в США, что иногда они держат на футбольных матчах (имеется в виду, конечно же, американский футбол) транспаранты с надписью «John 3:16». По словам Кнута, «проект 3:16» оказался чрезвычайно успешным и так заинтересовал посетителей библейского класса, что к разбору стиха 3:16 из Откровения Иоанна Богослова (последней книги Библии) зал был полностью забит слушателями. Правда, из 66 книг Библии только 59 имеют стих 3:16 (например, послание к Титу заканчивается на стихе 3:15), в связи с чем необходимо было изучить всего 59 стихов, включая толкования к ним разных авторов, рассыпанные в широком временном интервале. Ученому пришлось прочитать большое количество литературы, начиная от древней до самой современной. На этом пути его ожидало немало сюрпризов — например, к своему удивлению, он узнал, что Исаак Ньютон написал 20-страничное толкование на стих 3:16 из первого послания апостола Павла к Тимофею. На основании подстрочника он даже предложил новый перевод для нескольких стихов. Все полученные им сведения Кнут собрал в книге «3:16. Освещение библейских текстов». Толкование каждого библейского стиха в этой книге сопровождается его каллиграфическим воспроизведением, над которыми трудились выдающиеся каллиграфы Старого и Нового света. Работа над книгой заняла достаточно долгое время и была оценена коллегами Кнута как его очередная экстравагантная выходка.

«В том году (1985-1986 академический год. — С. К.) я был в Бостоне на конференции по образованию в компьютерных науках. <…> Когда люди, сидевшие у столика регистрации, спросили меня: «Над чем ты в последнее время работаешь, Дон?» — я вынужден был ответить: «Я пишу книгу о Библии». Это было мощное средство для прекращения разговора! <…>
В те дни было приемлемо быть религиозным иудеем или приверженцем других религий, но никак не христианином».

Сложно сказать, насколько сильное влияние оказала книга Кнута «3:16», но ее приятно держать в руках. Напечатанная на хорошей бумаге, она прекрасно проиллюстрирована цветными каллиграфическими рисунками. Но, видимо, ценность этого издания не только в хорошей полиграфии — осенью 1999 года Дональда Кнута попросили прочитать цикл лекций в рамках проекта «Бог и компьютеры» в Массачусетском технологическом университете. Эти лекции — вместе с вопросами из аудитории и ответами лектора — были изданы в виде небольшой книги «Вещи, о которых специалисты в компьютерных науках говорят редко» (Things a Computer Scientist Rarely Talks About). В ней Кнут излагает историю «проекта 3:16», а также (в последней лекции) высказывает ряд интересных мыслей касательно соотношения компьютерах наук и религии. В первую очередь, считает он, несмотря на обилие литературы, посвященной вопросам соотношения веры и естественных наук (разумеется, речь идет прежде всего о современной западной литературе), компьютерным специалистам есть что сказать по этому вопросу.

«Компьютерная наука — не естественная наука. Она имеет дело с искусственными вещами, не ограниченными условиями природы. Когда я выбирал название для этой лекции («Бог и компьютерные науки». — С. К.), я чувствовал, что специалисты в компьютерных науках могут пролить новый свет на рассматриваемые вопросы — в дополнение к тому замечательному вкладу, который, наряду с теологами, уже сделали биологи, физики и другие ученые, — поскольку я считаю, что компьютерные науки дают нам новые аналогии и теории, которые могут помочь нам понять Бога. <…> Когда я говорю о компьютерных науках как о возможной основе познания Бога, разумеется, я не представляю себе Бога как сверхумный интеллект, окруженный кластерами сверхбыстрых рабочих станций на Linux и мощными поисковыми системами. <…> Я имею в виду научную часть компьютерных наук, абстрактное понимание процессов и теорий, которые были развиты специалистами для того, чтобы работать с большим количеством разнообразных данных в динамическом режиме. Сейчас эти моменты стали гораздо яснее, чем когда-либо раньше, и вполне очевидно, что они имеют глубокое отношение к действиям Бога как создателя и хранителя Вселенной. Кроме того, вычислительные модели позволяют описать многие аспекты Вселенной гораздо лучше, чем остальные известные нам модели. Все научные теории, например, могут быть смоделированы программами»

См. например, книгу «Программируя Вселенную. Квантовый компьютер и будущее науки«)

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

«Думаю, вполне можно сказать, что многие из современных больших программ находятся среди наиболее сложных интеллектуальных достижений всех времен. Они абсолютно тривиальны сравнительно с любым из творений Бога, но они в каком-то смысле ближе к ним, чем что-либо нам известное».

Одним из неожиданных открытий современной компьютерной науки является абсолютно непредсказуемое поведение простых систем, управляемых простыми же правилами. Одним из видов таких систем являются клеточные автоматы, поведение которых не может быть смоделировано никак иначе, как пошаговым выполнением предписанных инструкций исходя из начальной конфигурации. К клеточным автоматам относится хорошо известная игра Джона Конвея «Жизнь» (Life).

«Совершенно ясно, — говорит Кнут, — что программист может создать нечто и прекрасно знать законы, управляющие программой, и при этом быть в совершенном неведении о результатах действия этих законов».

Ситуация драматически усложняется, если в искусственном мире, созданном программой, начинают действовать независимые агенты со свободной волей, пусть и с ограниченным выбором возможностей (как это происходит в компьютерных играх). Кнут рассматривает так называемое бинарное дерево событий. Предположим, говорит он, что мы находимся на самой вершине диаграммы,

«…где в точке разветвления мы должны сделать выбор. Также представим себе, что наше решение идти направо или налево изменит будущую историю всей Вселенной. Сначала этот эффект будет невелик, но постепенно он будет накапливаться. После первого выбора (например, налево), нужно будет принять новое решение и т.д. <…> Все пути в этом дереве событий будут соответствовать законам квантовой механики, независимо от выбора решений. <…> Используя эту схему, мы можем думать о Боге как о садовнике (см. Ин. 20:15), подрезающем ветви, иногда влияющем на исход событий в отдельных ветвях и одновременно подправляющем ненаблюдаемую информацию так, чтобы все наблюдения были согласны с квантовой механикой. И сами мы — даже мы, наш дух или душа или ум или любое другое название нашего существа — мы также, вероятно, маленькие подрезчики ветвей, с гораздо более ограниченными и локальными возможностями, разумеется, но способные использовать свою свободу воли. Кто знает, может быть, это даже и легко, если Бог наградил нас некоторой способностью вроде полезного технического устройства, скрытого в иных измерениях. В контексте метафоры садовника слово «дух», означающее «дыхание жизни», становится неожиданно вполне подходящим».

Какую ненаблюдаемую информацию, известную одному Богу, имеет в виду Кнут? Во-первых, ученый отмечает, что Богу не обязательно иметь атрибут бесконечности для того, чтобы управлять конечной Вселенной. Знание о Вселенной является хотя и колоссальным, но не бесконечным — согласно существующим оценкам, наблюдаемая Вселенная содержит 10 в 92 степени бит информации (напомним, что бит — это ячейка информации в двоичной системе, т. е. она может иметь значение 0 или 1; количество информации в библиотеке Конгресса США, например, оценивается как 10 в 16 степени бит). Таким образом, дело вовсе не в бесконечности, которая может оказаться и не нужна. Количество философской литературы на тему конечности и бесконечности весьма велико, но, по мнению Кнут, она не относится к сути проблемы.

«Подлинный смысл, я думаю, — говорит он, — вполне выражен в псалме 139 (в Библии короля Иакова; 138-й псалом русского синодального издания):
(1) Господи! Ты испытал меня и знаешь…
(2) …Ты разумеешь помышления мои издали…
(4) Еще нет слова на языке моем, — Ты, Господи, знаешь его совершенно…
(17) Как возвышенны для меня помышления Твои, Боже, и как велико число их!
(18) Стану ли исчислять их, но они многочисленнее песка…
Другими словами, Бог знает гораздо больше, чем мы можем понять».

А понимаем мы, согласно представлениям квантовой механики, не так много, как считалось еще в XIX веке. Согласно принципу неопределенности Гейзенберга, невозможно одновременно точно знать координаты объекта и его скорость — или то, или другое останется для нас неизвестным. Именно об этом незнании и говорит Кнут, подразумевая, что Бог является обладателем скрытой информацией и может ею управлять.

Как специалиста в компьютерных науках и религиозного человека, Дональда Кнута не может не интересовать проблема искусственного интеллекта или проблема происхождения сознания.

«Сознание остается наиболее важным вопросом в котором наука пока еще не достигла большого прогресса, если достигла его вообще. Вполне вероятно, что ученые, исследующие искусственный интеллект, имеют прекрасный шанс раскрыть эту тайну, если она вообще может быть раскрыта. Наиболее обещающий подход, о котором я слышал, говорит о том, что сознание работает как генетический алгоритм, в котором большое число идей постоянно конкурируют за внимание в нашем мозге. Эти идеи обогащают друг друга, и наиболее приспособленные выживают, продолжая процесс по дарвиновскому механизму (механизму естественного отбора. — С. К). Когда я сейчас говорю с вами, в наших головах идет борьба идей за выживание. Может быть, подобная теория сработает. Кажется, что она имеет целый ряд похожих на правду свойств. Но, может быть, ситуация все же контролируется свободными духами, действующими за пределами наблюдаемой части квантовой механики».

Наконец, для Кнута как лютеранина важным остается вопрос свободы воли и ее соотношения с Божественным Всеведением. Если Бог знает все, что случится во Вселенной и в жизни каждого человека наперед, то как тогда объяснить свободу выбора, которой, как нам кажется, мы обладаем?

«Я думаю, что этот аргумент (отрицание свободы воли. — С. К.) достаточно слаб ввиду неадекватности нашего языка для точного описания технических деталей [механизма свободы воли]. Мне кажется гораздо более вероятным, что Бога интересуют наши жизненные решения и что Он нарочно отрешается от тотального контроля происходящего. Зачем создавать что-то, если знаешь исход заранее?»

Для описания своего религиозного опыта Кнут использует следующую любопытную аналогию.

«…Это достаточно слабая аналогия, но с точки зрения пользователя программного обеспечения вполне подходит… это похоже на систему MACSYМА, которую Джоель Мозес создал двадцать лет назад в Массачусетском технологическом институте (МТИ. — С. К). Я обычно входил в систему из Калифорнии, а народ в МТИ наблюдал, как я ее использую. Мне было приятно, что они знали, что я делал, поскольку всегда, когда я заходил в тупик, мой терминал вдруг сам собой выдавал какое-нибудь сообщение вроде «Попробуй функцию TELLRAT». Именно так я вижу способ, который Бог использует в моей жизни».

«Я думаю о молитве как об общении с Богом. Даже если я не знаю, будет ли молитва услышана, я буду все равно молиться. Это так естественно».

Последним стихом Библии, который Дональд Кнут толкует в своей книге «3:16», является стих 3:16 из Откровения Иоанна Богослова: «Но как ты тепл, а не горяч и не холоден, то извергну тебя из уст Моих». Толкование этого стиха Кнут заканчивает следующим образом:

«Я надеюсь, что мои детальные исследования этих стихов (стихов 3:16 из разных книг Библии. — С. К.) были не просто интересными интеллектуальными упражнениями, которые оставили у меня и моих читателей неопределенные теплые чувства. Вместо этого я молюсь, чтобы смысл этих стихов проник вглубь и зажег сильный, угодный Богу, огонь».»

 

Поделиться в соц. сетях

Автор

Дмитрий Федоров

Редактор сайта, старший преподаватель кафедры вычислительных систем и программирования СПбГЭУ. Сфера интересов: разработка и проведение обучающих курсов на основе языка программирования Python для всех специальностей; проведение семинаров по методологии научной деятельности; исследование трансформации рынка труда с использованием методов анализа данных.

Библия и искусство программирования (Дональд Кнут): 3 комментария

  1. Библия состоит из 77 книг. 50 книг это Ветхий Завет и 27 Новый Завет. Канон книг Ветхого Завета сформировался до пришествия Господа Иисуса Христа. Канон книг Нового Завета сформировался в 4 веке. В статье упоминается лишь 66 книг Библии почему??

    1. Библе́йский кано́н – 66 книг Библии (39 содержится в Ветхом Завете и 27 – в Новом), признанные Вселенской Церковью богодухновенными, в отличие от 11 неканонических (к последним относятся Послание Иеремии, книги Варуха, Товита, Иудифи, Премудрости Иисуса, сына Сирахова, 2-я и 3-я книги Ездры и три книги Маккавейские).

      В православной традиции 11 книг, не вошедших в канон, признаются назидательными и полезными для чтения, однако в их наименовании нет единообразия: они могут называться «второканоническими» (как у католиков), «неканоническими» или «анагиноскомена» (ἀναγινοσκόμενα, т. е. рекомендуемые для чтения, полезные). Распространенный термин «неканонические книги» не является удовлетворительным и может быть принят только как условный. В Православной Церкви важнейшим свидетельством каноничности книг является их богослужебное употребление, в которое входят Книга Премудрости Соломона или «неканонические» части Книги пророка Даниила, читаемые за богослужением.

      https://azbyka.ru/kanon-biblejskij

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *