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