Наиболее эффективный способ организации работы в условиях частичной наблюдаемости состоит в том, чтобы агент отслеживал ту часть мира, которая воспринимается им в текущий момент. Это означает, что агент должен поддерживать своего рода внутреннее состояние, которое зависит от истории актов восприятия и поэтому отражает по крайней мере некоторые из ненаблюдаемых аспектов текущего состояния.
Для решения задачи торможения поддержка внутреннего состояния не требует слишком больших затрат — для этого достаточно сохранить предыдущий кадр, снятый видеокамерой, чтобы агент мог определить тот момент, когда два красных световых сигнала с обеих сторон задней части идущего впереди автомобиля загораются или гаснут одновременно. Для решения других задач вождения, таких как переход с одной полосы движения на другую, агент должен следить за тем, где находятся другие автомобили, если он не может видеть все эти автомобили одновременно.
Для обеспечения возможности обновления этой внутренней информации о состоянии в течение времени необходимо, чтобы в программе агента были закодированы знания двух видов. Во-первых, нужна определенная информация о том, как мир изменяется независимо от агента, например, о том, что автомобиль, идущий на обгон, обычно становится ближе, чем в какой-то предыдущий момент. Во-вторых, требуется определенная информация о том, как влияют на мир собственные действия агента, например, что при повороте агентом рулевого колеса по часовой стрелке автомобиль поворачивает вправо или что после проезда по автомагистрали в течение пяти минут на север автомобиль находится на пять миль севернее от того места, где он был пять минут назад.
Эти знания о том, «как работает мир» (которые могут быть воплощены в простых логических схемах или в сложных научных теориях) называются моделью мира. Агент, в котором используется такая модель, называется агентом, основанным на модели.
На рисунке приведена структура рефлексного агента, действующего с учетом внутреннего состояния, и показано, как текущее восприятие комбинируется с прежним внутренним состоянием для выработки обновленного описания текущего состояния. Программа такого агента приведена в листинге. В этом листинге интерес представляет функция Update-State, которая отвечает за создание нового описания внутреннего состояния. Эта функция не только интерпретирует результаты нового восприятия в свете существующих знаний о состоянии, но и использует информацию о том, как изменяется мир, для слежения за невидимыми частями мира, поэтому должна учитывать информацию о том, как действия агента влияют на состояние мира.
function Reflex-Agent-With-State(percept) returns действие action static: state, описание текущего состояния мира rules, множество правил условие-действие action, последнее по времени действие; первоначально не определено state <— Update-State(state, action, recept) rule <— Rule-Match (state, rules) action <— Rule-Action[rule] return action
|