Поскольку программы вели себя как живые, программисты начали проводить аналогии с поведением реальных живых существ в реальном мире. Собственно, для того, чтобы как-то прогнозировать поведение программы и влиять на конечный результат, подобные программы стали создавать на основе моделей поведения настоящих живых существ.
Поэтому программисты взялись изучать внутреннюю жизнь муравейника, или процесс строительства у термитов, или танцы у пчел — чтобы потом на основе этого создавать программы, регулирующие расписание посадки самолетов, или транспортировку багажа, или программы для перевода с одного языка на другой. Такие программы работали великолепно, но они тоже могли давать внезапные сбои — особенно если внешние условия резко менялись. Тогда программы забывали поставленную цель.
Именно поэтому пять лет назад я начал разрабатывать модель отношений «Хищник — Добыча» — для того, чтобы удержать программы от потери цели. Потому что голодного хищника ничто не отвлечет от поиска добычи. Обстоятельства могут заставить его действовать разными способами, он может пробовать неоднократно, прежде чем достигнет успеха, — однако хищник никогда не забудет о своей цели.
Так я стал экспертом по отношениям «хищник — добыча». Я знал все о стаях гиен, африканских диких собак, об охотящихся львицах и атакующих колоннах армии муравьев. Моя команда программистов изучила специальную литературу — отчеты полевых биологов-исследователей, и мы обобщили полученные сведения в программном модуле, который назвали «Хи-Доб» (сокращение от «Хищник-Добыча»). Этот программный модуль мог контролировать поведение любой мультиагентной системы и делать ее поведение целенаправленным. Модуль «Хи-Доб» заставлял программу искать цель.
Глядя на экран монитора перед Рики, где группа рабочих единиц упорядоченно и скоординированно разворачивалась в воздухе, я спросил:
— Вы использовали «Хи-Доб», когда программировали отдельные агенты?
— Да. Мы использовали эти правила.
— Признаться, по-моему, они ведут себя довольно неплохо, — сказал я, глядя на экран. — Почему у вас с ними что-то не так?
— Мы не совсем уверены.
— Что ты имеешь в виду?
— Я имею в виду вот что. Мы знаем, что проблема существует, но не знаем точно, в чем именно ее причина. В программировании или в чем-то другом.
— В чем-то другом? В чем это, например? — я нахмурился. — Я не понимаю, Рики. Это же всего лишь группа микророботов. Вы можете заставить их делать все, что угодно. Если программа неправильная — измените ее, и все. Чего я недопонимаю, Рики?
Рики посмотрел на меня как-то обеспокоенно. Потом оттолкнул стул от стола и встал.
— Давай я покажу тебе, как мы делаем эти агенты, — предложил он. — Тогда ты поймешь ситуацию лучше.
После просмотра демонстрационного ролика Джулии мне было ужасно интересно увидеть то, что собирался показать мне Рики. Поскольку очень многие уважаемые мною люди полагали, что создать производство на молекулярном уровне невозможно. Одним из главных теоретических возражений было время, которое понадобилось бы для того, чтобы создать действующую молекулу с заданными свойствами. Чтобы собрать наноцепочку, которая вообще может хоть что-то выполнять, требуются гораздо более эффективные технологии, чем все существовавшие прежде технологии производства, созданные человеком. В основном все человеческие линии сборки работают с примерно одинаковой скоростью — они добавляют по одной составляющей части за секунду. В автомобиле, например, несколько тысяч деталей. Значит, процесс полной сборки автомобиля занимает примерно несколько часов. Пассажирский самолет состоит из шести миллионов деталей, и, чтобы его построить, нужно несколько месяцев.
Но стандартная искусственная молекула состоит из десяти в двадцать пятой степени отдельных частей. Это 10.000.000.000.000.000.000.000.000 частей. В приложении к практике это число невообразимо велико. Человеческий мозг не в состоянии его даже осознать. Но расчеты показывают, что, если даже скорость сборки достигнет миллиона частей в секунду, время, которое понадобится для создания одной молекулы, будет больше, чем известное время существования мира, а именно — три тысячи триллионов лет. В этом и заключалась основная проблема. Ее назвали проблемой срока сборки.
Я сказал Рики:
— Если вы наладили промышленное производство…
— Мы сделали это.
— Значит, вы нашли решение проблемы срока сборки.
Читать дальше