Документация Engee

ReinforcementLearningBase.jl

# ReinforcementLearningBase.CHANCE_PLAYERConstant

Базовый тип игрока для случайного шага игры.

# ReinforcementLearningBase.CONSTANT_SUMConstant

Сумма наград всех игроков — константа.

# ReinforcementLearningBase.DETERMINISTICConstant

В среде нет ChancePlayer. Игра полностью детерминированная.

# ReinforcementLearningBase.EXPLICIT_STOCHASTICConstant

Обычно используется для описания игры в развернутой форме. В среде есть игрок «Случай», и соответствующая вероятность известна. Поэтому должна быть определена функция prob(env, player=chance_player(env)).

# ReinforcementLearningBase.FULL_ACTION_SETConstant

Псевдоним для FullActionSet().

# ReinforcementLearningBase.GENERAL_SUMConstant

Сумма наград всех игроков на каждом шаге может быть разной.

# ReinforcementLearningBase.IDENTICAL_UTILITYConstant

Все игроки получают одну и ту же награду.

# ReinforcementLearningBase.IMPERFECT_INFORMATIONConstant

Внутренние состояния наблюдений некоторых игроков могут различаться.

# ReinforcementLearningBase.MINIMAL_ACTION_SETConstant

Псевдоним для MinimalActionSet().

# ReinforcementLearningBase.PERFECT_INFORMATIONConstant

Все игроки наблюдают одно и то же состояние.

# ReinforcementLearningBase.SAMPLED_STOCHASTICConstant

В среде есть игрок «Случай», и соответствующая вероятность неизвестна. Обычно в таком случае допускается только фиктивное действие.

Игрок «Случай» (chance_player(env)) должен присутствовать в результате метода RLBase.players(env). В результате вызова action_space(env, chance_player) должно быть только одно фиктивное действие.

# ReinforcementLearningBase.SEQUENTIALConstant

В среде со стилем DynamicStyle SEQUENTIAL игроки должны выполнять действия по очереди.

# ReinforcementLearningBase.SIMULTANEOUSConstant

В среде со стилем DynamicStyle SIMULTANEOUS все или некоторые игроки должны выполнять действия одновременно.

# ReinforcementLearningBase.SPECTATORConstant

SPECTATOR

Зритель — это особый игрок, который не выполняет действий.

# ReinforcementLearningBase.STEP_REWARDConstant

Псевдоним для StepReward().

# ReinforcementLearningBase.STOCHASTICConstant

В среде нет игрока «Случай». Игра является стохастической. Для повышения воспроизводимости такие среды, как правило, должны принимать AbstractRNG в качестве именованного аргумента. Для некоторых сторонних сред в конструкторе доступен по крайней мере метод seed.

# ReinforcementLearningBase.TERMINAL_REWARDConstant

Получение награды происходит только по завершении выполнения среды.

# ReinforcementLearningBase.ZERO_SUMConstant

Сумма наград всех игроков равна 0. Частный случай CONSTANT_SUM.

# ReinforcementLearningBase.AbstractEnvType

act!(env::AbstractEnv, action, player=current_player(env))

Супертип всех сред обучения с подкреплением.

# ReinforcementLearningBase.AbstractEnvironmentModelType

TODO:

описывает, как моделируется среда обучения с подкреплением. TODO: требуются дополнительные исследования. Ссылка: https://bair.berkeley.edu/blog/2019/12/12/mbpo/

# ReinforcementLearningBase.AbstractPolicyType

plan!(π::AbstractPolicy, env) -> action

Политика — это самое основное понятие в обучении с подкреплением. Здесь действие агента определяется методом plan!, который принимает среду и политику и возвращает действие.

В этом обсуждении можно узнать, почему на вход подается объект AbstractEnv, а не состояние.

Политика π может изменять свое внутреннее состояние, но не должна изменять env. Если это все же необходимо сделать, обязательно создайте копию env, чтобы исходный объект env оставался без изменений.

# ReinforcementLearningBase.ConstantSumType

Стиль AbstractUtilityStyle для сред, в которых сумма наград всех игроков — константа.

# ReinforcementLearningBase.DeterministicType

Стиль AbstractChanceStyle для полностью детерминированных игр без ChancePlayer.

# ReinforcementLearningBase.EpisodicType

Выполнение среды завершается за конечное число шагов.

# ReinforcementLearningBase.FullActionSetType

В пространстве действий среды могут быть недопустимые действия. Для сред стиля FULL_ACTION_SET необходимо также определить legal_action_space и legal_action_space_mask.

# ReinforcementLearningBase.GeneralSumType

Стиль AbstractUtilityStyle для сред, в которых сумма наград всех игроков не является константой.

# ReinforcementLearningBase.GoalStateType

Служит для представления целевого состояния.

# ReinforcementLearningBase.IdenticalUtilityType

Стиль AbstractUtilityStyle для сред, в которых все игроки получают одинаковую награду.

# ReinforcementLearningBase.ImperfectInformationType

Игрокам (Player) неизвестны действия других игроков (Player).

# ReinforcementLearningBase.InformationSetType

# ReinforcementLearningBase.InternalStateType

Служит для представления внутреннего состояния.

# ReinforcementLearningBase.MinimalActionSetType

В пространстве действий среды все действия являются допустимыми.

# ReinforcementLearningBase.MultiAgentMethod

MultiAgent(n::Integer) -> MultiAgent{n}()

n должно быть ≥ 2.

# ReinforcementLearningBase.NeverEndingType

Среда может выполняться бесконечно.

# ReinforcementLearningBase.ObservationType

Специалисты из разных областей иногда называют одно и то же по-разному. В данном пакете Observation{Any}() является стилем состояния по умолчанию.

Обсуждение см. здесь.

# ReinforcementLearningBase.PerfectInformationType

Все действия каждого игрока (Player) видны другим игрокам (Player).

# ReinforcementLearningBase.SequentialType

Игроки (Player) выполняют действия по очереди.

# ReinforcementLearningBase.SimultaneousType

Игроки (Player) выполняют действия одновременно.

# ReinforcementLearningBase.SingleAgentType

Стиль AbstractNumAgentStyle для сред с одним агентом.

# ReinforcementLearningBase.StepRewardType

Получение награды может происходить после каждого шага.

# ReinforcementLearningBase.StochasticType

Stochastic()

По умолчанию ChanceStyle.

# ReinforcementLearningBase.TerminalRewardType

Получение награды происходит только по завершении выполнения среды.

# ReinforcementLearningBase.ZeroSumType

Стиль AbstractUtilityStyle для сред, в которых сумма наград всех игроков равна нулю.

# Base.:==Method

Base.:(==)(env1::T, env2::T) where T<:AbstractEnv

Проверяется только состояние всех игроков в среде.

# Base.copyMethod

Создает независимую копию env.

Генератор случайных чисел (если он есть в среде env) также копируется!

# Random.seed!Method

Задает начальное значение для генератора случайных чисел.

# ReinforcementLearningBase.ActionStyleMethod

ActionStyle(env::AbstractEnv)

Для сред с дискретными действиями указывает, содержит ли текущее состояние среды env полное или минимальное множество действий. По умолчанию возвращается MINIMAL_ACTION_SET.

# ReinforcementLearningBase.ChanceStyleMethod

ChanceStyle(env) = STOCHASTIC

Указывает, какую роль играет случай в среде env. Возможные возвращаемые значения:

# ReinforcementLearningBase.DefaultStateStyleMethod

Указывает стиль состояния по умолчанию при вызове state(env).

# ReinforcementLearningBase.DynamicStyleMethod

DynamicStyle(env::AbstractEnv) = SEQUENTIAL

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

# ReinforcementLearningBase.InformationStyleMethod

InformationStyle(env) = IMPERFECT_INFORMATION

Служит для различения сред со стилем PERFECT_INFORMATION и IMPERFECT_INFORMATION. По умолчанию возвращается значение IMPERFECT_INFORMATION.

# ReinforcementLearningBase.NumAgentStyleMethod

NumAgentStyle(env)

Количество агентов, участвующих в среде env. Возможные возвращаемые значения:

# ReinforcementLearningBase.RewardStyleMethod

Указывает, может ли получение награды происходить после каждого шага или только в конце игры. Возможные значения: STEP_REWARD (по умолчанию) или TERMINAL_REWARD.

Среды со стилем TERMINAL_REWARD можно рассматривать как подмножество сред со стилем STEP_REWARD. Некоторые алгоритмы, например MCTS, могут быть реализованы немного эффективнее для сред со стилем TERMINAL_REWARD.

# ReinforcementLearningBase.StateStyleMethod

StateStyle(env::AbstractEnv)

Определяет возможные стили state(env). Возможные значения:

  • Observation{T}. Это значение возвращается по умолчанию.

  • InternalState{T}

  • InformationSet{T}

  • При необходимости можно также определить собственный стиль состояния.

Может также возвращать кортеж, содержащий несколько из перечисленных выше значений.

Это полезно в случае со средами, имеющими более одного типа состояния.

# ReinforcementLearningBase.UtilityStyleMethod

UtilityStyle(env::AbstractEnv)

Задает стиль полезности в средах с несколькими агентами. Возможные значения:

# ReinforcementLearningBase.action_spaceFunction

action_space(env, player=current_player(env))

Возвращает все доступные действия из среды. См. также описание legal_action_space

# ReinforcementLearningBase.chance_playerMethod

chance_player(env)

Допускается только для сред с игроком «Случай».

# ReinforcementLearningBase.childMethod

child(env::AbstractEnv, action)

Представляет env как дерево игры. Создает независимый дочерний объект после применения action.

# ReinforcementLearningBase.current_playerMethod

current_player(env)

Возвращает следующего игрока, который должен выполнить действие. Для игр в развернутой форме может возвращаться игрок «Случай» . (См. также описание метода chance_player.) Для сред со стилем SIMULTANEOUS всегда возвращается одновременный игрок. (См. также описание simultaneous_player.)

# ReinforcementLearningBase.is_terminatedMethod

is_terminated(env, player=current_player(env))

# ReinforcementLearningBase.legal_action_spaceFunction

legal_action_space(env, player=current_player(env))

Для сред со стилем MINIMAL_ACTION_SET результат такой же, как и у функции action_space.

# ReinforcementLearningBase.legal_action_space_maskFunction

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.playersMethod

players(env::RLBaseEnv)

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

# ReinforcementLearningBase.priorityMethod

priority(π::AbstractPolicy, experience)

Обычно используется в автономных политиках для оценки приоритетов эксперимента.

# ReinforcementLearningBase.probFunction

Возвращает распределение действий для игрока «Случай».

Допускается только для сред со стилем EXPLICIT_STOCHASTIC. Текущим игроком среды env должен быть игрок «Случай».

# ReinforcementLearningBase.probMethod

prob(π::AbstractPolicy, env, action)

Допускается только для сред с дискретными действиями.

# ReinforcementLearningBase.probMethod

prob(π::AbstractPolicy, env) -> Distribution

Возвращает вероятностное распределение действий на основе политики π и среды env.

# ReinforcementLearningBase.reset!Method

Сбрасывает внутреннее состояние среды.

# ReinforcementLearningBase.rewardFunction

reward(env, player=current_player(env))

# ReinforcementLearningBase.simultaneous_playerMethod

simultaneous_player(env)

Допускается только для сред со стилем SIMULTANEOUS.

# ReinforcementLearningBase.spectator_playerMethod

spectator_player(env)

Используется в средах с неполной информацией и несколькими агентами.

# ReinforcementLearningBase.stateMethod

state(env, style=[DefaultStateStyle(env)], player=[current_player(env)])

Состояние может быть любого типа. Однако большинство алгоритмов на основе нейронных сетей предполагают, что возвращается AbstractArray. Для сред со множеством разных состояний (внутреннее состояние, информационное состояние и т. д.) пользователям необходимо указывать style для объявления требуемого состояния.

Состояние может использоваться повторно и изменяться на каждом шаге. Если этого не должно происходить, обязательно создайте копию.

# ReinforcementLearningBase.state_spaceMethod

state_space(env, style=[DefaultStateStyle(env)], player=[current_player(env)])

Описывает все возможные состояния.

# ReinforcementLearningBase.test_interfaces!Method

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

# ReinforcementLearningBase.walkMethod

walk(f, env::AbstractEnv)

Вызывает функцию f со средой env и ее потомками. Следует использовать только с небольшими играми.