ReinforcementLearningBase.jl
#
ReinforcementLearningBase.CHANCE_PLAYER
— Constant
Базовый тип игрока для случайного шага игры.
#
ReinforcementLearningBase.CONSTANT_SUM
— Constant
Сумма наград всех игроков — константа.
#
ReinforcementLearningBase.DETERMINISTIC
— Constant
В среде нет ChancePlayer
. Игра полностью детерминированная.
#
ReinforcementLearningBase.EXPLICIT_STOCHASTIC
— Constant
Обычно используется для описания игры в развернутой форме. В среде есть игрок «Случай», и соответствующая вероятность известна. Поэтому должна быть определена функция prob
(env, player=chance_player(env))
.
#
ReinforcementLearningBase.FULL_ACTION_SET
— Constant
Псевдоним для FullActionSet()
.
#
ReinforcementLearningBase.GENERAL_SUM
— Constant
Сумма наград всех игроков на каждом шаге может быть разной.
#
ReinforcementLearningBase.IDENTICAL_UTILITY
— Constant
Все игроки получают одну и ту же награду.
#
ReinforcementLearningBase.IMPERFECT_INFORMATION
— Constant
Внутренние состояния наблюдений некоторых игроков могут различаться.
#
ReinforcementLearningBase.MINIMAL_ACTION_SET
— Constant
Псевдоним для MinimalActionSet()
.
#
ReinforcementLearningBase.PERFECT_INFORMATION
— Constant
Все игроки наблюдают одно и то же состояние.
#
ReinforcementLearningBase.SAMPLED_STOCHASTIC
— Constant
В среде есть игрок «Случай», и соответствующая вероятность неизвестна. Обычно в таком случае допускается только фиктивное действие.
Игрок «Случай» ( |
#
ReinforcementLearningBase.SEQUENTIAL
— Constant
В среде со стилем DynamicStyle
SEQUENTIAL
игроки должны выполнять действия по очереди.
#
ReinforcementLearningBase.SIMULTANEOUS
— Constant
В среде со стилем DynamicStyle
SIMULTANEOUS
все или некоторые игроки должны выполнять действия одновременно.
#
ReinforcementLearningBase.SPECTATOR
— Constant
SPECTATOR
Зритель — это особый игрок, который не выполняет действий.
#
ReinforcementLearningBase.STEP_REWARD
— Constant
Псевдоним для StepReward()
.
#
ReinforcementLearningBase.STOCHASTIC
— Constant
В среде нет игрока «Случай». Игра является стохастической. Для повышения воспроизводимости такие среды, как правило, должны принимать AbstractRNG
в качестве именованного аргумента. Для некоторых сторонних сред в конструкторе доступен по крайней мере метод seed
.
#
ReinforcementLearningBase.TERMINAL_REWARD
— Constant
Получение награды происходит только по завершении выполнения среды.
#
ReinforcementLearningBase.ZERO_SUM
— Constant
Сумма наград всех игроков равна 0. Частный случай CONSTANT_SUM
.
#
ReinforcementLearningBase.AbstractEnv
— Type
act!(env::AbstractEnv, action, player=current_player(env))
Супертип всех сред обучения с подкреплением.
#
ReinforcementLearningBase.AbstractEnvironmentModel
— Type
TODO:
описывает, как моделируется среда обучения с подкреплением. TODO: требуются дополнительные исследования. Ссылка: https://bair.berkeley.edu/blog/2019/12/12/mbpo/
-
Аналитическое вычисление градиента
-
Планирование на основе выборки
-
Генерирование данных на основе модели
-
Прогнозирование эквивалентности значений Обучение с подкреплением на основе модели: исследование Руководство по методам на основе моделей в обучении с подкреплением
#
ReinforcementLearningBase.AbstractPolicy
— Type
plan!(π::AbstractPolicy, env) -> action
Политика — это самое основное понятие в обучении с подкреплением. Здесь действие агента определяется методом plan!
, который принимает среду и политику и возвращает действие.
В этом обсуждении можно узнать, почему на вход подается объект |
Политика |
#
ReinforcementLearningBase.ConstantSum
— Type
Стиль AbstractUtilityStyle
для сред, в которых сумма наград всех игроков — константа.
#
ReinforcementLearningBase.Deterministic
— Type
Стиль AbstractChanceStyle
для полностью детерминированных игр без ChancePlayer
.
#
ReinforcementLearningBase.Episodic
— Type
Выполнение среды завершается за конечное число шагов.
#
ReinforcementLearningBase.FullActionSet
— Type
В пространстве действий среды могут быть недопустимые действия. Для сред стиля FULL_ACTION_SET
необходимо также определить legal_action_space
и legal_action_space_mask
.
#
ReinforcementLearningBase.GeneralSum
— Type
Стиль AbstractUtilityStyle
для сред, в которых сумма наград всех игроков не является константой.
#
ReinforcementLearningBase.GoalState
— Type
Служит для представления целевого состояния.
#
ReinforcementLearningBase.IdenticalUtility
— Type
Стиль AbstractUtilityStyle
для сред, в которых все игроки получают одинаковую награду.
#
ReinforcementLearningBase.ImperfectInformation
— Type
Игрокам (Player
) неизвестны действия других игроков (Player
).
#
ReinforcementLearningBase.InformationSet
— Type
См. определение информационного множества.
#
ReinforcementLearningBase.InternalState
— Type
Служит для представления внутреннего состояния.
#
ReinforcementLearningBase.MinimalActionSet
— Type
В пространстве действий среды все действия являются допустимыми.
#
ReinforcementLearningBase.MultiAgent
— Method
MultiAgent(n::Integer) -> MultiAgent{n}()
n
должно быть ≥ 2.
#
ReinforcementLearningBase.NeverEnding
— Type
Среда может выполняться бесконечно.
#
ReinforcementLearningBase.PerfectInformation
— Type
Все действия каждого игрока (Player
) видны другим игрокам (Player
).
#
ReinforcementLearningBase.Sequential
— Type
Игроки (Player
) выполняют действия по очереди.
#
ReinforcementLearningBase.Simultaneous
— Type
Игроки (Player
) выполняют действия одновременно.
#
ReinforcementLearningBase.SingleAgent
— Type
Стиль AbstractNumAgentStyle для сред с одним агентом.
#
ReinforcementLearningBase.StepReward
— Type
Получение награды может происходить после каждого шага.
#
ReinforcementLearningBase.TerminalReward
— Type
Получение награды происходит только по завершении выполнения среды.
#
ReinforcementLearningBase.ZeroSum
— Type
Стиль AbstractUtilityStyle
для сред, в которых сумма наград всех игроков равна нулю.
#
Base.:==
— Method
Base.:(==)(env1::T, env2::T) where T<:AbstractEnv
Проверяется только состояние всех игроков в среде. |
#
Base.copy
— Method
Создает независимую копию env
.
Генератор случайных чисел (если он есть в среде |
#
Random.seed!
— Method
Задает начальное значение для генератора случайных чисел.
#
ReinforcementLearningBase.ActionStyle
— Method
ActionStyle(env::AbstractEnv)
Для сред с дискретными действиями указывает, содержит ли текущее состояние среды env
полное или минимальное множество действий. По умолчанию возвращается MINIMAL_ACTION_SET
.
#
ReinforcementLearningBase.ChanceStyle
— Method
ChanceStyle(env) = STOCHASTIC
Указывает, какую роль играет случай в среде env
. Возможные возвращаемые значения:
-
STOCHASTIC
. Это значение возвращается по умолчанию.
#
ReinforcementLearningBase.DefaultStateStyle
— Method
Указывает стиль состояния по умолчанию при вызове state(env)
.
#
ReinforcementLearningBase.DynamicStyle
— Method
DynamicStyle(env::AbstractEnv) = SEQUENTIAL
Допускается только в средах со стилем NumAgentStyle
, имеющим значение MultiAgent
. Определяет, могут ли игроки выполнять действия одновременно. Возможные возвращаемые значения:
-
SEQUENTIAL
. Это значение возвращается по умолчанию.
#
ReinforcementLearningBase.InformationStyle
— Method
InformationStyle(env) = IMPERFECT_INFORMATION
Служит для различения сред со стилем PERFECT_INFORMATION
и IMPERFECT_INFORMATION
. По умолчанию возвращается значение IMPERFECT_INFORMATION
.
#
ReinforcementLearningBase.NumAgentStyle
— Method
NumAgentStyle(env)
Количество агентов, участвующих в среде env
. Возможные возвращаемые значения:
-
SingleAgent
. Это значение возвращается по умолчанию.
#
ReinforcementLearningBase.RewardStyle
— Method
Указывает, может ли получение награды происходить после каждого шага или только в конце игры. Возможные значения: STEP_REWARD
(по умолчанию) или TERMINAL_REWARD
.
Среды со стилем |
#
ReinforcementLearningBase.StateStyle
— Method
StateStyle(env::AbstractEnv)
Определяет возможные стили state(env)
. Возможные значения:
-
Observation{T}
. Это значение возвращается по умолчанию. -
При необходимости можно также определить собственный стиль состояния.
Может также возвращать кортеж, содержащий несколько из перечисленных выше значений.
Это полезно в случае со средами, имеющими более одного типа состояния.
#
ReinforcementLearningBase.UtilityStyle
— Method
UtilityStyle(env::AbstractEnv)
Задает стиль полезности в средах с несколькими агентами. Возможные значения:
-
GENERAL_SUM
. Возвращается по умолчанию.
#
ReinforcementLearningBase.action_space
— Function
action_space(env, player=current_player(env))
Возвращает все доступные действия из среды. См. также описание legal_action_space
#
ReinforcementLearningBase.chance_player
— Method
chance_player(env)
Допускается только для сред с игроком «Случай».
#
ReinforcementLearningBase.child
— Method
child(env::AbstractEnv, action)
Представляет env
как дерево игры. Создает независимый дочерний объект после применения action
.
#
ReinforcementLearningBase.current_player
— Method
current_player(env)
Возвращает следующего игрока, который должен выполнить действие. Для игр в развернутой форме может возвращаться игрок «Случай» . (См. также описание метода chance_player
.) Для сред со стилем SIMULTANEOUS
всегда возвращается одновременный игрок. (См. также описание simultaneous_player
.)
#
ReinforcementLearningBase.is_terminated
— Method
is_terminated(env, player=current_player(env))
#
ReinforcementLearningBase.legal_action_space
— Function
legal_action_space(env, player=current_player(env))
Для сред со стилем MINIMAL_ACTION_SET
результат такой же, как и у функции action_space
.
#
ReinforcementLearningBase.legal_action_space_mask
— Function
legal_action_space_mask(env, player=current_player(env)) -> AbstractArray{Bool}
Требуется для сред со стилем FULL_ACTION_SET
. В реализации по умолчанию legal_action_space_mask
создает маску пространства action_space
с подмножеством legal_action_space
.
#
ReinforcementLearningBase.next_player!
— Method
next_player!(env::E) where {E<:AbstractEnv}
Выполняет переход к следующему игроку. В играх с одним игроком и одновременных играх это холостая операция. Этот метод должен быть реализован в играх со стилями Sequential
и MultiAgent
.
#
ReinforcementLearningBase.optimise!
— Method
RLBase.optimise!(π::AbstractPolicy, experience)
Оптимизирует политику π
с использованием потокового или автономного опыта либо параметров.
#
ReinforcementLearningBase.players
— Method
players(env::RLBaseEnv)
Игроки, участвующие в игре. В играх с одним игроком это холостая операция. Этот метод должен быть реализован в играх со стилем MultiAgent
.
#
ReinforcementLearningBase.priority
— Method
priority(π::AbstractPolicy, experience)
Обычно используется в автономных политиках для оценки приоритетов эксперимента.
#
ReinforcementLearningBase.prob
— Function
Возвращает распределение действий для игрока «Случай».
Допускается только для сред со стилем |
#
ReinforcementLearningBase.prob
— Method
prob(π::AbstractPolicy, env, action)
Допускается только для сред с дискретными действиями.
#
ReinforcementLearningBase.prob
— Method
prob(π::AbstractPolicy, env) -> Distribution
Возвращает вероятностное распределение действий на основе политики π
и среды env
.
#
ReinforcementLearningBase.reset!
— Method
Сбрасывает внутреннее состояние среды.
#
ReinforcementLearningBase.reward
— Function
reward(env, player=current_player(env))
#
ReinforcementLearningBase.simultaneous_player
— Method
simultaneous_player(env)
Допускается только для сред со стилем SIMULTANEOUS
.
#
ReinforcementLearningBase.spectator_player
— Method
spectator_player(env)
Используется в средах с неполной информацией и несколькими агентами.
#
ReinforcementLearningBase.state
— Method
state(env, style=[DefaultStateStyle(env)], player=[current_player(env)])
Состояние может быть любого типа. Однако большинство алгоритмов на основе нейронных сетей предполагают, что возвращается AbstractArray
. Для сред со множеством разных состояний (внутреннее состояние, информационное состояние и т. д.) пользователям необходимо указывать style
для объявления требуемого состояния.
Состояние может использоваться повторно и изменяться на каждом шаге. Если этого не должно происходить, обязательно создайте копию. |
#
ReinforcementLearningBase.state_space
— Method
state_space(env, style=[DefaultStateStyle(env)], player=[current_player(env)])
Описывает все возможные состояния.
#
ReinforcementLearningBase.test_interfaces!
— Method
Вызовите эту функцию после создания настраиваемой среды, чтобы убедиться в том, что все необходимые интерфейсы реализованы правильно и согласованно.
#
ReinforcementLearningBase.walk
— Method
walk(f, env::AbstractEnv)
Вызывает функцию f
со средой env
и ее потомками. Следует использовать только с небольшими играми.