Лекция: Программы агентов
В основном все программы агентов имеют одну и ту же структуру: они принимают от датчиков в качестве входных данных результаты текущего восприятия и возвращают исполнительным механизмам выбранный вариант действия. Существуют и другие варианты структуры программы агента, например, можно было бы использовать в виде программ агентов сопроцедуры, которые действуют асинхронно со средой. Каждая такая сопроцедура имеет входной и выходной порты, а ее работа организована в виде цикла, в котором из входного порта считываются результаты восприятий, а в выходной порт записываются варианты действий. Необходимо указать на различие между программой агента, которая принимает в качестве входных данных результаты текущего восприятия, и функцией агента, которая принимает на входе всю историю актов восприятия. Программа агента получает в качестве входных данных только результаты текущего восприятия, поскольку больше ничего не может узнать из своей среды; если действия агента зависят от всей последовательности актов восприятия, то агент должен сам запоминать результаты этих актов восприятия. Можно написать несложную программу агента, которая регистрирует последовательность актов восприятия, а затем использует полученную последовательность для доступа по индексу к таблице действий и определения того, что нужно сделать. Таблица явно отображает функцию агента, воплощаемую данной программой агента. Чтобы создать рационального агента таким образом, проектировщики должны сформировать таблицу, которая содержит подходящее действие для любой возможной последовательности актов восприятия.
Анализ того, почему такой подход к созданию агента, основанный на использовании таблицы, обречен на неудачу, является весьма поучительным. Допустим, что Р — множество возможных актов восприятия, а Т — срок существования агента (общее количество актов восприятия, которое может быть им получено). Поисковая таблица будет содержать:
T
Σ |P|t записей.
t=l
Рассмотрим автоматизированное такси: визуальные входные данные от одной телекамеры поступают со скоростью примерно 27 мегабайтов в секунду (30 кадров в секунду, 640х480 пикселов с 24 битами информации о цвете). Согласно этим данным поисковая таблица, рассчитанная на 1 час вождения, должна содержать количество записей, превышающее 10 250 000 000 000.
И даже поисковая таблица для шахмат (крошечного, хорошо изученного фрагмента реального мира) имела бы, по меньшей мере, 10150 записей. Ошеломляющий размер этих таблиц (притом что количество атомов в наблюдаемой вселенной не превышает 1080) означает, что, во-первых, ни один физический агент в нашей вселенной не имеет пространства для хранения такой таблицы, во-вторых, проектировщик не сможет найти достаточно времени для создания этой таблицы, в-третьих, ни один агент никогда не сможет обучиться тому, что содержится во всех правильных записях этой таблицы, на основании собственного опыта, и, в-четвертых, даже если среда достаточно проста для того, чтобы можно было создать таблицу приемлемых размеров, все равно у проектировщика нет руководящих сведений о том, как следует заполнять записи подобной таблицы.
Несмотря на все сказанное, табличные программы выполняет именно то, что от них требуется: она реализует желаемую функцию агента. Основная сложность, стоящая перед искусственным интеллектом как научным направлением, состоит в том, чтобы узнать, как создавать программы, которые в рамках возможного вырабатывают рациональное поведение с использованием небольшого объема программного кода, а не большого количества записей таблицы. Существует множество примеров, показывающих, что такая задача может быть выполнена успешно в других областях; например, огромные таблицы квадратных корней, использовавшиеся инженерами и школьниками до 1970-х годов, теперь заменены работающей в электронных калькуляторах программой из пяти строк, в которой применяется метод Ньютона. Вопрос заключается в том, может ли искусственный интеллект сделать для интеллектуального поведения в целом то, что Ньютон сделал для упрощения вычисления квадратных корней?
В остальной части этого раздела рассматриваются четыре основных вида программ агентов, которые воплощают принципы, лежащие в основе почти, всех интеллектуальных систем:
· простые рефлексные агенты;
· рефлексные агенты, основанные на модели;
· агенты, действующие на основе цели;
· агенты, действующие на основе полезности.
Затем приведено описание в общих терминах того, как преобразовать агентов
всех этих типов в обучающихся агентов.