Главная arrow Предыстория arrow Программы агентов
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Программы агентов Печать

Все программы агентов, которые будут представлены на этом веб-сайте, имеют одну и ту же структуру: они принимают от датчиков в качестве входных данных результаты текущего восприятия и возвращают исполнительным механизмам выбранный вариант действия6. Необходимо указать на различие между программой агента, которая принимает в качестве входных данных результаты текущего восприятия, и функцией агента, которая принимает на входе всю историю актов восприятия. Программа агента получает в качестве входных данных только результаты текущего восприятия, поскольку больше ничего не может узнать из своей среды; если действия агента зависят от всей последовательности актов восприятия, то агент должен сам запоминать результаты этих актов восприятия.

Для описания программ агентов будет применяться простой язык псевдокода. Например, в следующем листинге показана довольно несложная программа агента, которая регистрирует последовательность актов восприятия, а затем использует полученную последовательность для доступа по индексу к таблице действий и определения того, что нужно сделать.

Таблица явно отображает функцию агента, воплощаемую данной программой агента. Чтобы создать рационального агента таким образом, проектировщики должны сформировать таблицу, которая содержит подходящее действие для любой возможной  
последовательности актов восприятия.


function Table-Driven-Agent(percept) returns действие action
  static: percepts, последовательность актов восприятия,
                           первоначально пустая
            table, таблица действий, индексированная по
                     последовательностям актов восприятия и
                     полностью заданная с самого начала
  добавить результаты восприятия percept к концу
  последовательности percepts
action <- Lookup (percepts, table)
return action

 



Анализ того, почему такой подход к созданию агента, основанный на использовании таблицы, обречен на неудачу, является весьма поучительным. Допустим, что P — множество возможных актов восприятия, а Т— срок существования агента (общее количество актов восприятия, которое может быть им получено). Поисковая таблица будет
содержать.


 

Рассмотрим автоматизированное такси: визуальные входные данные от одной телекамеры поступают со скоростью примерно 27 мегабайтов в секунду 30 кадров в секунду, 640x480 пикселов с 24 битами информации о цвете). Согласно этим данным поисковая таблица, рассчитанная на 1 час вождения, должна содержать количество записей, превышающее 10250 000 000. И даже поисковая таблица для шахмат (крошечного, хорошо изученного фрагмента реального мира) имела бы, по меньшей мере, 10150 записей. Ошеломляющий размер этих таблиц (притом что количество атомов в наблюдаемой вселенной не превышает 1080) означает, что, во-первых, ни один физический агент в нашей вселенной не имеет пространства для хранения такой таблицы, во-вторых, проектировщик не сможет найти достаточно времени для создания этой таблицы, в-третьих, ни один агент никогда не сможет обучиться тому, что содержится во всех правильных записях этой таблицы, на основании собственного опыта, и, в-четвертых, даже если среда достаточно проста для того, чтобы можно было создать таблицу приемлемых размеров, все равно у проектировщика нет руководящих сведений о том, как следует заполнять записи подобной таблицы.

Несмотря на все сказанное, программа Table-Driven-Agent выполняет именно то, что от нее требуется: она реализует желаемую функцию агента. Основная сложность, стоящая перед искусственным интеллектом как научным направлением, состоит в том, чтобы узнать, как создавать программы, которые в рамках возможного вырабатывают рациональное поведение с использованием небольшого объема кода, а не большого количества записей таблицы. Существует множество примеров, показывающих, что такая задача может быть выполнена успешно в других областях; например, огромные таблицы квадратных корней, использовавшиеся инженерами и школьниками до 1970-х годов, теперь заменены работающей в электронных калькуляторах программой из пяти строк, в которой применяется метод Ньютона. Вопрос заключается в том, может ли искусственный интеллект сделать для интеллектуального поведения в целом то, что Ньютон сделал для упрощения вычисления квадратных корней? Многие ученые полагают, что ответ на этот вопрос является положительным.

В остальной части этого раздела рассматриваются четыре основных вида программ агентов, которые воплощают принципы, лежащие в основе почти всех интеллектуальных систем:

  • простые рефлексные агенты;
  • рефлексные агенты, основанные на модели;
  • агенты, действующие на основе цели;
  • агенты, действующие на основе полезности.

Затем приведено описание в общих терминах того, как преобразовать агентов
всех этих типов в обучающихся агентов.