ТОП авторов и книг ИСКАТЬ КНИГУ В БИБЛИОТЕКЕ
– Это еще мягко сказано.
В последние десятилетия наблюдения за обусловленным поведением стали причиной небольшой революции в компьютерной науке. Для программистов это означало, что они могли запрограммировать правила поведения отдельных агентов, но не агентов, действующих единой группой.
Отдельные агенты – будь то программные модули, или процессоры, или, как в данном случае, микророботы – могут быть запрограммированы на совместные действия в обоих случаях и на самостоятельное поведение в других случаях. Им могут быть заданы цели. Их можно запрограммировать так, чтобы они все усилия приложили к достижению поставленной цели или же чтобы всегда были готовы отвлечься и прийти на помощь другим агентам. Однако результаты всех этих взаимодействий запрограммировать невозможно. Они просто проявляются зачастую совершенно неожиданным образом.
В некотором смысле это очень увлекательно. Впервые в истории науки программа выдает результаты, непредсказуемые для программиста. По поведению такие программы больше похожи на живые существа, чем на созданные человеком автоматы. Это восхищало программистов, но и доставляло им массу неприятностей.
Потому что обусловленное поведение программ проявляется беспорядочно и странно. Иногда самостоятельные агенты начинали конкурировать друг с другом, и программа вообще не могла выполнить никакую задачу. Иногда агенты настолько сильно влияли друг на друга, что конечная цель совершенно забывалась и вместо этого система делала что-то совсем другое. В этом смысле такие программы были очень похожи на детей – непредсказуемостью поведения и повышенной отвлекаемостью. Один программист сказал про это так: «Программировать распределенный разум – это все равно что сказать пятилетнему ребенку, чтобы тот пошел в свою комнату и переоделся. Он может это сделать, а может сделать что-то совсем другое и не вернуться обратно».
Поскольку программы вели себя как живые, программисты начали проводить аналогии с поведением реальных живых существ в реальном мире. Собственно, для того, чтобы как-то прогнозировать поведение программы и влиять на конечный результат, подобные программы стали создавать на основе моделей поведения настоящих живых существ.
Поэтому программисты взялись изучать внутреннюю жизнь муравейника, или процесс строительства у термитов, или танцы у пчел – чтобы потом на основе этого создавать программы, регулирующие расписание посадки самолетов, или транспортировку багажа, или программы для перевода с одного языка на другой. Такие программы работали великолепно, но они тоже могли давать внезапные сбои – особенно если внешние условия резко менялись. Тогда программы забывали поставленную цель.
Именно поэтому пять лет назад я начал разрабатывать модель отношений «Хищник – Добыча» – для того, чтобы удержать программы от потери цели. Потому что голодного хищника ничто не отвлечет от поиска добычи. Обстоятельства могут заставить его действовать разными способами, он может пробовать неоднократно, прежде чем достигнет успеха, – однако хищник никогда не забудет о своей цели.
Так я стал экспертом по отношениям «хищник – добыча». Я знал все о стаях гиен, африканских диких собак, об охотящихся львицах и атакующих колоннах армии муравьев. Моя команда программистов изучила специальную литературу – отчеты полевых биологов-исследователей, и мы обобщили полученные сведения в программном модуле, который назвали «Хи-Доб» (сокращение от «Хищник-Добыча»). Этот программный модуль мог контролировать поведение любой мультиагентной системы и делать ее поведение целенаправленным. Модуль «Хи-Доб» заставлял программу искать цель.
Глядя на экран монитора перед Рики, где группа рабочих единиц упорядоченно и скоординированно разворачивалась в воздухе, я спросил:
– Вы использовали «Хи-Доб», когда программировали отдельные агенты?
– Да. Мы использовали эти правила.
– Признаться, по-моему, они ведут себя довольно неплохо, – сказал я, глядя на экран. – Почему у вас с ними что-то не так?
– Мы не совсем уверены.
– Что ты имеешь в виду?
– Я имею в виду вот что. Мы знаем, что проблема существует, но не знаем точно, в чем именно ее причина. В программировании или в чем-то другом.
– В чем-то другом? В чем это, например? – я нахмурился. – Я не понимаю, Рики. Это же всего лишь группа микророботов. Вы можете заставить их делать все, что угодно. Если программа неправильная – измените ее, и все. Чего я недопонимаю, Рики?
Рики посмотрел на меня как-то обеспокоенно. Потом оттолкнул стул от стола и встал.
– Давай я покажу тебе, как мы делаем эти агенты, – предложил он. – Тогда ты поймешь ситуацию лучше.
После просмотра демонстрационного ролика Джулии мне было ужасно интересно увидеть то, что собирался показать мне Рики. Поскольку очень многие уважаемые мною люди полагали, что создать производство на молекулярном уровне невозможно. Одним из главных теоретических возражений было время, которое понадобилось бы для того, чтобы создать действующую молекулу с заданными свойствами. Чтобы собрать наноцепочку, которая вообще может хоть что-то выполнять, требуются гораздо более эффективные технологии, чем все существовавшие прежде технологии производства, созданные человеком. В основном все человеческие линии сборки работают с примерно одинаковой скоростью – они добавляют по одной составляющей части за секунду. В автомобиле, например, несколько тысяч деталей. Значит, процесс полной сборки автомобиля занимает примерно несколько часов. Пассажирский самолет состоит из шести миллионов деталей, и, чтобы его построить, нужно несколько месяцев.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126