Тимур смотрел на аквариум, посреди которого висел идеальный черный шар, отблескивающий в монохромном освещении. Блестки хаотично метались, но ни одна не выбивалась за границы геометрически правильной сферы.
— Эти нанороботы созданы для работы в составе огромной стаи в вязкой среде, например в крови. — продолжал Ральф. — При отсутствии сильного ветра такой средой может быть воздух.
— А как вы заставили их сформировать шар? — Тимур боролся с желанием засунуть руку в аквариум и потрогать сферу.
— Ты видишь старое поколение. Агенты несут в себе короткий фрагмент кода, который определяет их расположение и поведение относительно смежных агентов. Они перемещаются по принципу косяка рыб. Нет внешней силы, управляющей рыбами. Каждая рыба из группы следит за своими соседями и двигается в зависимости от их движений. Когда косяк атакует хищник, сначала уворачиваются ближайшие к нему рыбы, за ними реагируют соседние, и вот через секунду вся стая уже мчится прочь. Нечто подобное и с агентами. Я задаю функцию вида F = f (
Ральф склонился над клавиатурой.
— Поверхность может быть насколько угодно сложной, — рой «поплыл», а потом вмиг застыл, сформировав фигуру, похожую на зафиксированный фотокамерой взрыв. — Можно также вводить функцию с четырьмя параметрами, где четвертая переменная — время.
Задав на панели управления формулу, Ральф отошел назад. Рой опять образовал сферу, затем она начала сплющиваться, превращаясь в эллипсоид, эллипсоид вытянулся в цилиндр с закругленными краями, а цилиндр, изогнувшись, соединил торцы в тор («бублик»). Тор снова сомкнулся в сферу, и процесс стал повторяться.
— А где еще можно использовать таких нанороботов?
— Применений масса. Начиная со шпионажа и заканчивая медициной. Японцы планировали использовать нанороботов для борьбы с раком. Введенные в кровеносную систему, они должны были отыскивать и уничтожать раковые клетки. Такая была идея. Кейтаро как раз руководил этой работой. Но проект, к сожалению, не был доведен до конца. Джеп как будто обезумел — целиком и полностью перекинулся на создание ботов.
— А как вы их программируете? Куда компилируется код каждого агента?
— У каждого есть свой мозг, образованный молекулами DRQ (2,3,5,6-тетраметил-1-4-бензокинона). Эта система может работать как микропроцессор. Одна молекула DRQ представляют собой кольцо с четырьмя отростками, которые могут занимать различные положения относительно друг друга. Шестнадцать таких молекул сведены в кольцо, в центре которого находится семнадцатая их «сестра». Вместе они образуют молекулярную машину, способную кодировать в размещении своих частей свыше четырех миллиардов комбинаций. Этого достаточно.
— Ральф, но это… этот рой в реальности реализует агентно-ориентированный подход. Вы воплотили в реальность абстракцию, которая только начинает закрепляться на теоретическом уровне.
Ральф просиял:
— Кейтаро был прав, думая, что тебе это понравится. Еще четверть столетия назад никто об этом даже и не догадывался. Не было самого понятия «разумная туманность». Никто не подозревал, сколько всего можно выжать из этого облака.
Тимур пока не мог до конца разделить его энтузиазм. Он сам работал с подобными системами. Только его агенты были виртуальными — крошечными компьютерными подпрограммами.
— Вы пробовали обучать рой? — спросил Тимур.
Агент программируется достаточно просто: «обнаружь соседа — выясни его состояние — подстрой соответственно свое». Ни на что большее он не способен. Но когда таких элементов набирается миллион, возникает эффект, называемый в программировании
— Мы сделали все, чтобы они
Тимур перевел взгляд на подвижное облако. Ральф подошел к лифту и нажал кнопку вызова. Двери лифта медленно открылись.
— Прошу за мной. Нас ждут более серьезные вещи.
Пока двери лифта закрывались, Тимур не отрывал глаз от аквариума. Одна мысль не давала ему покоя: «Это же хаос! Классическая хаотическая система, но только не на бумаге или в компьютере, а в реальной жизни!» Занимаясь программированием агентных систем, Тимур быстро понял, что они обладают уникальными свойствами. Они поддаются обучению, могут делать выбор, самостоятельно планировать и выполнять задания. Но есть у них и один важный недостаток: обусловленное поведение в некоторых случаях может полностью выйти из-под контроля.
XXXII