Глава 2 из 3
1: Мир программирования вокруг нас
Глава 2: "Программы природы"
Алиса, Профессор Бит и Байт расположились на лужайке в парке. Был теплый весенний день, и вокруг них кипела жизнь.
— Алиса, ты выполнила задание с командами для Байта? — спросил Профессор, раскладывая на траве небольшой микроскоп.
— Да! — радостно ответила девочка. — Хотя сначала у меня получился не квадрат, а какая-то странная фигура. Я забыла указать, на сколько шагов Байт должен двигаться.
Профессор Бит кивнул:
— Отличное наблюдение! В программировании очень важно быть точным. Но знаешь, не только люди пишут программы. Посмотри вокруг — природа полна программ, которые работают миллионы лет!
— Природа? — удивилась Алиса. — Но ведь в лесу нет компьютеров и программистов.
Логик, сидевшая на ветке ближайшего дерева, спустилась ниже:
— В природе программы записаны не в компьютерах, а в ДНК — молекулах, которые есть в каждой живой клетке. ДНК содержит инструкции для всего живого.
Профессор достал из кармана маленький проектор, и на белом листе появилось изображение двойной спирали.
— Это ДНК, — пояснил он. — Представь, что это огромная книга рецептов. В ней записано, какого цвета будут твои глаза, как устроено твое сердце, и даже когда цветы должны раскрывать свои лепестки!
Байт вдруг оживился и указал на группу муравьев, двигающихся цепочкой:
— Смотрите! Муравьи следуют программе!
Алиса присела, чтобы лучше рассмотреть маленьких тружеников:
— Они все идут по одной дорожке. Как будто кто-то нарисовал им линию.
— Верно подмечено, — сказал Профессор. — Муравьи следуют простому алгоритму. Когда муравей-разведчик находит пищу, он возвращается в муравейник, оставляя после себя специальный запах — феромон. Другие муравьи чувствуют этот запах и идут по нему. Чем больше муравьев проходит по дорожке, тем сильнее запах и тем больше муравьев его чувствуют.
— Это как... цикл! — догадалась Алиса. — Чем больше муравьев идет по пути, тем сильнее путь, и тем больше муравьев по нему идет!
— Именно так! — обрадовался Профессор. — Природа использует циклы, условия и другие приемы, которые мы находим в программировании.
Логик указала крылом на пролетающую стаю птиц:
— Посмотри на этих птиц. Как ты думаешь, почему они летят клином?
Алиса пожала плечами:
— Наверное, так им удобнее?
— Правильно, — кивнула Логик. — Этот строй помогает им экономить энергию. Каждая птица, кроме ведущей, летит в восходящем потоке воздуха, создаваемом птицей впереди. Когда ведущая птица устает, она уступает место другой. Это как программа с ротацией задач.
Профессор Бит достал из сумки небольшую шишку:
— А вот еще пример природного программирования. Видишь узор на шишке? Это не случайные линии. Чешуйки шишки расположены по спирали, и количество этих спиралей всегда соответствует числам Фибоначчи — особой математической последовательности.
— Числа Фи... что? — переспросила Алиса.
— Фибоначчи, — повторил Профессор. — Это последовательность чисел, где каждое следующее число равно сумме двух предыдущих: 1, 1, 2, 3, 5, 8, 13... Природа использует эту последовательность повсюду — в расположении лепестков цветов, ветвей деревьев, даже в форме галактик!
Байт поднял с земли осенний лист:
— А деревья? Они тоже следуют программе?
— Конечно! — подтвердил Профессор. — Каждую осень листья меняют цвет и опадают, а весной вырастают новые. Это сезонный цикл. А внутри дерева есть условные алгоритмы: "ЕСЛИ мало воды, ТО сбрось часть листьев, чтобы снизить испарение".
Алиса широко раскрыла глаза:
— Получается, вся природа работает как огромный компьютер!
— В каком-то смысле, да, — согласился Профессор. — Только природа "программировала" свои создания миллионы лет через эволюцию.
Алиса задумалась на мгновение, глядя на окружающий мир:
— Профессор, а кто же этот программист? Кто запрограммировал всё это?
— Глубокий вопрос, — улыбнулся Профессор. — Может быть, ответ на него скрыт в самой природе?
В начале — хаос, всплеск и гром,
Огнём кипящий водоём.
Но в этом пламени и мгле
Рождался код в живой земле.
В спирали скрученной, как нить,
Он научился быть и жить.
В узорах волн, в кольце ветров,
В ростке, что вьется от основ.
Весна рисует первый штрих
Вплетает лето в сети ситх,
А осень превращает в сок,
Зима укутывает в лед
И пишет шифры, пишет код
Порой так схожий на узор
Из года в год от рода род
Тот переписывает код
То Не пером и не рукой —
Писатель-время, программист
Законы света, тьмы земной
Запрограммировала жизнь
Ошибки? Лишь на первый взгляд
Они непрочное куют
Чтоб новый сотканный наряд
Нес окружающим уют
И вот итог — ты здесь, живой!
Твой код, как звёздный свет, незной.
Ты — часть узора, часть пути,
И этот код — в твоей груди.
— Удивительно, — прошептала Алиса, разглядывая узоры на листьях. — Я никогда не думала, что природа может быть так похожа на компьютерную программу.
— Природа — лучший программист из всех, — подмигнул Профессор. — Ее программы отлаживались миллиарды лет!
Логик расправила крылья:
— И ещё одна важная вещь, Алиса. Как и в программировании, в природе всё взаимосвязано. Изменение одного параметра может повлиять на работу всей системы.
— Как если бы я допустила ошибку в коде? — спросила девочка.
— Именно! — кивнул Профессор. — Например, если температура на планете изменится всего на несколько градусов, это может привести к изменению многих природных "программ" — сроков миграции птиц, цветения растений, таяния льдов.
Байт, который всё это время изучал муравейник, вдруг воскликнул:
— Профессор, смотрите! Муравьи перестраивают свои тропы! Кто-то положил веточку поперёк их дорожки.
Все подошли к муравейнику. Действительно, маленькие труженики быстро находили обходной путь вокруг преграды.
— Вот это адаптивный алгоритм в действии, — пояснил Профессор. — Муравьи не только следуют программе "иди за феромоном", но и способны перестраивать свои действия при изменении условий. Это похоже на то, как современные программы умеют подстраиваться под разные ситуации.
— А я знаю ещё один пример! — воскликнула Алиса. — Мой кот Рыжик! Когда приходит время обеда, он всегда трётся о мои ноги и мяукает. Это тоже программа?
— Ты права, — улыбнулся Профессор. — Это поведенческий алгоритм: "ЕСЛИ хочешь есть И хозяин дома, ТО мяукай и трись о ноги, ПОКА не получишь еду". Животные инстинктивно следуют таким алгоритмам.
— А что насчёт растений? — спросила Алиса, глядя на высокие деревья. — Они ведь не могут двигаться, как животные.
— Но у них есть свои удивительные программы, — ответил Профессор. — Возьмём подсолнух. Ты замечала, что он всегда поворачивается к солнцу?
— Да! Моя бабушка выращивает подсолнухи, и они как будто следят за солнцем в течение дня.
— Это явление называется "гелиотропизм", — объяснил Профессор. — Подсолнух запрограммирован реагировать на свет и поворачивать свои листья и соцветия к источнику света. А теперь представь, что мы запишем это как компьютерную программу:
ПОВТОРЯТЬ КАЖДЫЙ ЧАС:
ИЗМЕРИТЬ направление самого яркого света
ЕСЛИ текущее направление соцветия != направление света:
ПОВЕРНУТЬ соцветие к свету— Ого, я понимаю этот код! — удивилась Алиса. — Это же так просто!
— Верно, — кивнул Профессор. — Многие природные программы можно описать простыми алгоритмами, хотя их реализация может быть очень сложной.
Логик указала крылом на небо:
— А теперь давайте подумаем о самой большой природной программе — смене времён года. Это классический пример цикла в природе.
— Точно! — подхватил Профессор. — Земля вращается вокруг своей оси и одновременно движется вокруг Солнца. Это создаёт циклы дня и ночи, а также сезонные циклы.
— Как в песенке про год? — спросила Алиса. — "Зима сменяется весной, весна — летом"?
— Совершенно верно! Это бесконечный цикл, который повторяется снова и снова. В программировании мы называем такие циклы "бесконечными", и они могут выглядеть примерно так:
ПОКА Земля_существует:
ВЫПОЛНИТЬ зима()
ВЫПОЛНИТЬ весна()
ВЫПОЛНИТЬ лето()
ВЫПОЛНИТЬ осень()Байт вдруг замер с озадаченным видом:
— А что, если бы в природной программе была ошибка? Как в компьютерных программах?
Профессор задумчиво потёр подбородок:
— Интересный вопрос, Байт. В природе тоже случаются "ошибки" — например, мутации в ДНК. Иногда они вредны, иногда нейтральны, а иногда... приводят к появлению новых возможностей и даже новых видов! Природа использует эти "ошибки" как часть процесса эволюции — своеобразной программы улучшения программ.
— Значит, эволюция — это как обновление программного обеспечения? — спросила Алиса.
— В каком-то смысле, да, — рассмеялся Профессор. — Только это обновление происходит очень медленно, на протяжении многих поколений.
Алиса внимательно осмотрелась вокруг, как будто видела парк впервые:
— Теперь я буду смотреть на природу совсем по-другому. Как на огромную библиотеку программ!
— Вот почему многие современные технологии вдохновлены природой, — добавила Логик. — Учёные и инженеры часто изучают природные алгоритмы, чтобы создавать лучшие технологии.
— Это называется "биомимикрия", — пояснил Профессор. — Например, самолёты созданы по принципу полёта птиц, липучки-застёжки изобретены после изучения репейника, а многие алгоритмы искусственного интеллекта имитируют работу нейронов в мозге.


Ещё задание из книги
Его делают без окна с кодом: можно в тетради или прямо в поле ниже. Текст задания всегда разный — внимательно прочитай, что нужно сделать.
2. Смотри около 15 минут и записывай в тетради: что повторяется снова и снова? Меняется ли поведение, если меняется солнце, ветер, звук или люди рядом?
3. Составь короткий список наблюдений — 5–7 фраз достаточно.
4. Попробуй оформить это как «природный алгоритм» словами из главы: ЕСЛИ …, ТО …, ПОВТОРЯТЬ, ПОКА (не обязательно идеально — важно, чтобы было понятно, что сначала, что потом и что повторяется).