Эмерджентность: Связанная жизнь муравьев, мозга, городов и компьютерных программ - Стивен Джонсон
Книгу Эмерджентность: Связанная жизнь муравьев, мозга, городов и компьютерных программ - Стивен Джонсон читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!
Шрифт:
Интервал:
Закладка:
«Минский думал о самоорганизации и децентрализованных системах больше — и глубже, — чем почти кто-либо другой, — пишет Резник. — Когда я объяснил ему правила, лежащие в основе программы слизевика, он сразу понял, что происходит. Но его первоначальная реакция была весьма показательна. Тот факт, что даже Марвин Минский отреагировал подобным образом, указывает на то, насколько сильна тяга к централизованным объяснениям».
Конечно, на самом фундаментальном уровне StarLogo сама по себе является централизованной системой: она подчиняется правилам, установленным единственной властью — программистом. Но путь от кода Резника к этим кластерам слизевика — непрямой. Вы не программируете клетки слизевика на объединение в кластеры; вы программируете их следовать по следам, оставленным их соседями. Если клеток достаточно много, а следы сохраняются достаточно долго, то возникнут кластеры, но вы не сможете управлять этим процессом напрямую. А предсказать количество кластеров или их долговечность практически невозможно без многочисленных экспериментов с системой методом проб и ошибок. Кевин Келли назвал свою новаторскую книгу о децентрализованном поведении «Вне контроля», но эта фраза не вполне отражает суть эмерджентных систем — по крайней мере, тех, что мы намеренно создаем на экране компьютера. Системы вроде StarLogo — это не абсолютная анархия: они подчиняются правилам, которые мы задаем заранее, но эти правила управляют лишь микромотивами. Макроповедение — совсем другое дело. Вы не можете контролировать его напрямую. Всё, что вы можете сделать, — это создать условия, которые, по вашему мнению, сделают такое поведение возможным. А затем нажать кнопку запуска и смотреть, что произойдет.
С подобным опосредованным контролем странно сталкиваться в мире программного обеспечения, но он становится всё более распространенным явлением. Раньше программирование представлялось сферой абсолютного контроля: вы говорили компьютеру, что делать, и у него не оставалось иного выбора, кроме как подчиняться вашим приказам. Если компьютер не выполнял вашу волю, это неизбежно объяснялось ошибкой в коде, а не автономностью самой машины. Лучшими программистами были те, кто держал систему под самым жестким контролем, кто мог заставить машины выполнять работу с помощью минимального объема кода. Неслучайно Норберт Винер произвел термин «кибернетика» от греческого слова, означающего «рулевой»: искусство создания ПО с самого начала строилось вокруг систем управления и того, как эффективнее всего ими рулить.
Но эта парадигма контроля постепенно уступает место более опосредованной форме программирования: ПО, которое вы скорее «выращиваете», а не проектируете, ПО, которое учится решать задачи автономно, — именно так, как представлял себе Оливер Селфридж в своей модели «Пандемониум». Новая парадигма во многом заимствует приемы из арсенала естественного отбора, выводя новые программы из разнообразного генофонда. Первые несколько десятилетий существования программного обеспечения по своей философии были, по сути, креационистскими: всемогущая сила вызывает программу к жизни своей волей. Однако следующее поколение оказывается глубоко дарвиновским.
* * *
Вспомним программу для сортировки чисел, разработанную несколько лет назад легендой суперкомпьютерных технологий Дэнни Хиллисом, — программу, которая опровергает все наши традиционные представления о том, как должно создаваться программное обеспечение. На протяжении многих лет сортировка чисел служила одним из эталонных тестов для изобретательных программистов, подобно шахматным приложениям. Скормите программе сотню случайных чисел и посмотрите, сколько шагов ей потребуется, чтобы выстроить цифры в правильном порядке. При использовании традиционных методов программирования рекорд по сортировке чисел составлял шестьдесят шагов, когда Дэнни Хиллис решил попробовать свои силы. Но Дэнни Хиллис не просто сел писать приложение для сортировки чисел. То, что он создал, было рецептом обучения, программой для создания другой программы. Иными словами, он не учил компьютер сортировать числа. Он научил компьютер разбираться, как сортировать числа, самостоятельно.
Дэнни Хиллис провернул этот фокус, подключив колоссальные возможности естественного отбора к массивно-параллельному суперкомпьютеру — Connection Machine, в проектировании которого он сам принимал участие. Вместо того чтобы писать программу сортировки чисел вручную — строка за строкой, выискивая ошибки, — Хиллис поручил компьютеру сгенерировать тысячи мини-программ, каждая из которых состояла из случайных комбинаций инструкций, создав своего рода цифровой генофонд. Каждой программе предлагалась хаотичная последовательность чисел, и каждая пыталась выстроить их в нужном порядке. Первая партия программ, как и следовало ожидать, оказалась абсолютно безнадежной в сортировке чисел. (На самом деле подавляющее большинство программ вообще ни на что не годилось.) Но некоторые программы справлялись лучше других, и поскольку Хиллис задал количественно измеримую цель эксперимента — выстроить числа в правильном порядке, — компьютер смог отобрать те немногие программы, которые были близки к результату. Эти программы стали основой для следующей итерации, однако теперь Хиллис также слегка мутировал их код и скрещивал их с другими перспективными программами. А затем весь процесс повторялся: выбирались наиболее успешные программы нового поколения, которые затем подвергались тем же преобразованиям. Смешать, мутировать, оценить, повторить.
Всего через несколько минут — и после тысяч циклов — этот эволюционный процесс породил мощную программу сортировки чисел, способную упорядочить последовательность случайных чисел за семьдесят пять шагов. Ни в коей мере не мировой рекорд, но тем не менее впечатляюще. Проблема, однако, заключалась в том, что цифровой генофонд уперся в потолок на отметке в семьдесят пять шагов. Каждый раз, когда Хиллис запускал этот процесс, компьютер быстро создавал мощный и эффективный сортировщик чисел, но примерно на семидесяти пяти шагах его пыл угасал. Проведя достаточно экспериментов, Хиллис понял, что его система столкнулась с препятствием, которое часто обсуждают теоретики эволюции: программное обеспечение наткнулось на локальный максимум в ландшафте приспособленности.
Представьте себе пространство всех возможных программ сортировки чисел, раскинувшееся подобно физическому ландшафту, где более успешные программы располагаются на возвышенностях, а менее успешные таятся в низинах. Эволюционное программное обеспечение — это способ вслепую прощупывать это пространство в поисках градиентов, ведущих к вершинам. Вспомните ранний этап в цикле Хиллиса: одна из эволюционировавших программ сортирует на несколько шагов быстрее, чем ее «родитель», и потому выживает, переходя в следующий раунд. Это выживание эквивалентно подъему на одну ступеньку по ландшафту приспособленности. Если ее «потомок» сортирует еще эффективнее, его «гены» передаются следующему поколению, и он поднимается еще на одну ступеньку выше.
Проблема такого подхода в том, что на ландшафте приспособленности существуют ложные вершины. Есть бесчисленное множество способов запрограммировать компьютер для сортировки чисел с приемлемой эффективностью, но лишь единицы путей ведут к сортировке, способной установить мировой рекорд. И эти различные программы кардинально отличаются по способу решения задачи. Представьте себе эти разные подходы как пики на ландшафте приспособленности: здесь есть тысячи мелких хребтов, но лишь несколько одиноких Эверестов. Если программа эволюционирует в рамках одного подхода, ее потомки могут никогда не нащупать дорогу к
Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
- 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
- 2. Просьба отказаться от оскорблений, угроз и запугиваний.
- 3. Просьба отказаться от нецензурной лексики.
- 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.
Оставить комментарий
-
Гость Наталья13 июнь 08:53
Отличная книга! Прочитала с удовольствием! Спасибо автору и дальнейших творческих успехов! ...
Лишняя жена дракона. Газетная империя попаданки - Нина Новак
-
Гость Наталья12 июнь 10:47
Интересная книга, прочитала с удовольствием! Любопытный сюжет, с любовью выписанные герои, каждый со своим характером. Любовь,...
Истинный выбор - Елена Солт
-
Гость Светлана11 июнь 18:31
Ну невозможно эту муть читать! Героине пять минут назад чуть голову не оторвали, а она отказывается от охраны. ...
Развод. Приручить Бандита. - Айрин Лакс
