Рефлексные агенты, основанные на модели

Наиболее эффективный способ организации работы в условиях частичной наблюдаемости состоит в том, чтобы агент отслеживал ту часть мира, которая воспринимается им в текущий момент. Это означает, что агент должен поддерживать своего рода внутреннее состояние, которое зависит от истории актов восприятия и поэтому отражает по крайней мере некоторые из ненаблюдаемых аспектов текущего состояния. Для решения задачи торможения поддержка внутреннего состояния не требует слишком больших затрат — для этого достаточно сохранить предыдущий кадр, снятый видеокамерой, чтобы агент мог определить тот момент, когда два красных световых сигнала с обеих сторон задней части идущего впереди автомобиля загораются или гаснут одновременно. Для решения других задач вождения, таких как переход с одной полосы движения на другую, агент должен следить за тем, где находятся другие автомобили, если он не может видеть все эти автомобили одновременно.
Для обеспечения возможности обновления этой внутренней информации о состоянии в течение времени необходимо, чтобы в программе агента были закодированы знания двух видов. Во-первых, нужна определенная информация о том, как мир изменяется независимо от агента, например, о том, что автомобиль, идущий на обгон, обычно становится ближе, чем в какой-то предыдущий момент. Во-вторых, требуется определенная информация о том, как влияют на мир собственные действия агента, например, что при повороте агентом рулевого колеса по часовой стрелке автомобиль поворачивает вправо или что после проезда по автомагистрали в течение пяти минут на север автомобиль находится на пять миль севернее от того места, где он был пять минут назад. Эти знания о том, "как работает мир" (которые могут быть воплощены в простых логических схемах или в сложных научных теориях) называются моделью мира. Агент, в котором используется такая модель, называется агентом, основанным на модели.
На рис. 2.4 приведена структура рефлексного агента, действующего с учетом внутреннего состояния, и показано, как текущее восприятие комбинируется с прежним внутренним состоянием для выработки обновленного описания текущего состояния. Программа такого агента приведена в листинге 2.4. В этом листинге интерес представляет функция Update-State, которая отвечает за создание нового описания внутреннего состояния. Эта функция не только интерпретирует результаты нового восприятия в свете существующих знаний о состоянии, но и использует информацию о том, как изменяется мир, для слежения за невидимыми частями мира, поэтому должна учитывать информацию о том, как действия агента влияют на состояние мира. Более подробные примеры приведены в главах 10 и 17.
Листинг 2.4. Рефлексный агент, основанный на модели, который следит за текущим состоянием мира с использованием внутренней модели, затем выбирает действие таким же образом, как и простой рефлексный агент
function Reflex-Agent-With-State(percept) returns действие action static: state, описание текущего состояния мира rules, множество правил условие-действие action, последнее по времени действие; первоначально не определено
state <— Update-State(state, action, percept) rule <— Rule-Match(state, rules) action <— Rule-Action[rule] return action
Агенты, основанные на цели
Знаний о текущем состоянии среды не всегда достаточно для принятия решения о том, что делать. Например, на перекрестке дорог такси может повернуть налево, повернуть направо или ехать прямо. Правильное решение зависит от того, куда должно попасть это такси. Иными словами, агенту требуется не только описание текущего состояния, но и своего рода информация о цели, которая описывает желаемые ситуации, такие как доставка пассажира в место назначения. Программа агента может комбинировать эту информацию с информацией о результатах возможных действий (с такой же информацией, как и та, что использовалась при обновлении внутреннего состояния рефлексного агента) для выбора действий, позволяющих достичь этой цели.
Иногда задача выбора действия на основе цели решается просто, когда достижение цели немедленно становится результатом единственного действия, а иногда эта задача становится более сложной, и агенту требуется рассмотреть длинные последовательности движений и поворотов, чтобы найти способ достижения цели. Подобластями искусственного интеллекта, посвященными выработке последовательностей действий, позволяющих агенту достичь его целей, являются поиск (главы 3—6) и планирование (главы 11 и 12).
Следует учитывать, что процедура принятия решений такого рода имеет фундаментальные отличия от описанной выше процедуры применения правил условие-действие, поскольку в ней приходится размышлять о будущем, отвечая на два вопроса: "Что произойдет, если я сделаю то-то и то-то?" и "Позволит ли это мне достичь удовлетворения?" В проектах рефлексных агентов такая информация не представлена явно, поскольку встроенные правила устанавливают непосредственное соответствие между восприятиями и действиями. Рефлексный агент тормозит, увидев сигналы торможения движущего впереди автомобиля, а агент, основанный на цели, может рассудить, что если на движущемся впереди автомобиле загорелись тормозные огни, то он замедляет свое движение. Учитывая принцип, по которому обычно изменяется этот мир, для него единственным действием, позволяющим достичь такой цели, как предотвращение столкновения с другими автомобилями, является торможение.
Хотя на первый взгляд кажется, что агент, основанный на цели, менее эффективен, он является более гибким, поскольку знания, на которые опираются его решения, представлены явно и могут быть модифицированы. Если начинается дождь, агент может обновить свои знания о том, насколько эффективно теперь будут работать его тормоза; это автоматически вызывает изменение всех соответствующих правил поведения с учетом новых условий. Для рефлексного агента, с другой стороны, в таком случае пришлось бы переписать целый ряд правил условие—действие. Поведение агента, основанного на цели, можно легко изменить, чтобы направить его в другое место, а правила рефлексного агента, которые указывают, где поворачивать и где ехать прямо, окажутся применимыми только для единственного места назначения; для того чтобы этого агента можно было направить в другое место, все эти правила должны быть заменены.
Агенты, основанные на полезности
В действительности в большинстве вариантов среды для выработки высококачественного поведения одного лишь учета целей недостаточно. Например, обычно существует много последовательностей действий, позволяющих такси добраться до места назначения (и тем самым достичь поставленной цели), но некоторые из этих последовательностей обеспечивают более быструю, безопасную, надежную или недорогую поездку, чем другие. Цели позволяют провести лишь жесткое бинарное различие между состояниями "удовлетворенности" и "неудовлетворенности", тогда как более общие показатели производительности должны обеспечивать сравнение различных состояний мира в точном соответствии с тем, насколько удовлетворенным станет агент, если их удастся достичь. Поскольку понятие "удовлетворенности" представляется не совсем научным, чаще применяется терминология, согласно которой состояние мира, более предпочтительное по сравнению с другим, рассматривается как имеющее более высокую полезность для агента8.
Функция полезности отображает состояние (или последовательность состояний) на вещественное число, которое обозначает соответствующую степень удовлетворенности агента. Полная спецификация функции полезности обеспечивает возможность принимать рациональные решения в описанных ниже двух случаях, когда этого не позволяют сделать цели. Во-первых, если имеются конфликтующие цели, такие, что могут быть достигнуты только некоторые из них (например, или скорость, или безопасность), то функция полезности позволяет найти приемлемый компромисс. Во-вторых, если имеется несколько целей, к которым может стремиться агент, но ни одна из них не может быть достигнута со всей определенностью, то функция полезности предоставляет удобный способ взвешенной оценки вероятности успеха с учетом важности целей.
В главе 16 будет показано, что любой рациональный агент должен вести себя так, как если бы он обладал функцией полезности, ожидаемое значение которой он пытается максимизировать. Поэтому агент, обладающий явно заданной функцией полезности, имеет возможность принимать рациональные решения и способен делать это с помощью алгоритма общего назначения, не зависящего от конкретной максимизируемой функции полезности. Благодаря этому "глобальное" определение рациональности (согласно которому рациональными считаются функции агента, имеющие наивысшую производительность) преобразуется в "локальное" ограничение на проекты рациональных агентов, которое может быть выражено в виде простой программы.
Структура агента, действующего с учетом полезности, показана на рис. 2.6. Программы агентов, действующих с учетом полезности, приведены в части V, которая посвящена проектированию агентов, принимающих решения, способных учитывать неопределенность, свойственную частично наблюдаемым вариантам среды.







Материалы

Яндекс.Метрика