1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/daochenzha-rlcard

Клонировать/Скачать
README.zh-CN.md 9.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 18:31 21f438a

Поддержка алгоритмов

Алгоритм Пример Ссылка
Глубина Монте-Карло (Deep Monte-Carlo, DMC) examples/run_dmc.py https://arxiv.org/abs/2106.06135
Глубокое Q-обучение (Deep Q Learning, DQN) examples/run_rl.py https://arxiv.org/abs/1312.5602
Виртуальное самообучение (Neural Fictitious Self-Play, NFSP) examples/run_rl.py https://arxiv.org/abs/1603.01121
Минимальное сожаление о контрфактах (Counterfactual Regret Minimization, CFR) examples/run_cfr.py http://papers.nips.cc/paper/3306-regret-minimization-in-games-with-incomplete-information.pdf

Предварительное обучение и модели на основе правил

Мы предоставляем набор моделей в качестве базовой линии.

Модель Объяснение
leduc-holdem-cfr Leduc
Название модели Описание модели
:--: :--:
leduc-holdem-rule-v1 Основанная на правилах модель Leduc Hold'em, версия v1
leduc-holdem-rule-v2 Основанная на правилах модель Leduc Hold'em, версия v2
uno-rule-v1 Основанная на правилах модель UNO, версия v1
limit-holdem-rule-v1 Основанная на правилах модель Limit Hold'em, версия v1
doudizhu-rule-v1 Основанная на правилах модель Дудичжу, версия v1
gin-rummy-novice-rule Модель правил для новичков Gin Rummy

API краткое изложение

Создание новой среды

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

  • env = rlcard.make(env_id, config={}): создать среду. env_id — это строковый идентификатор среды; config — словарь с некоторыми конфигурациями среды, включая:
    • seed: по умолчанию None. Устанавливает локальное случайное начальное число для воспроизведения результатов.
    • allow_step_back: по умолчанию False. True позволяет функции step_back выполнять обратный ход по дереву игры.
    • Другие конкретные конфигурации игр, которые начинаются с game_. В настоящее время мы поддерживаем только конфигурацию количества игроков в игре Blackjack game_num_players.

После создания среды мы можем получить доступ к некоторой информации об игре.

  • env.num_actions: количество состояний.
  • env.num_players: количество игроков.
  • env.state_shape: форма наблюдаемого пространства состояний (shape).
  • env.action_shape: форма характеристик состояния, состояние Баккара может быть закодировано как характеристики.

Что такое состояние в RLCard?

Состояние (State) — это словарь Python. Он включает в себя наблюдаемое значение state['obs'], допустимое действие state['legal_actions'], исходное наблюдаемое значение state['raw_obs'] и исходное допустимое действие state['raw_legal_actions'].

Основные интерфейсы

Следующие интерфейсы предоставляют основные функции, хотя они просты и удобны в использовании, они делают некоторые предположения о агентах. Агенты должны соответствовать шаблону агента Agent Template.

  • env.set_agents(agents): агенты — это список объектов Agent. Длина списка должна быть равна количеству игроков в игре.
  • env.run(is_training=False): запустить полную игру и вернуть траектории (trajectories) и выплаты (payoffs). Эту функцию можно вызвать после вызова set_agents. Если is_training установлено в True, она будет использовать функцию step агента для игры; если is_training установлен в False, он вызовет eval_step.

Расширенные интерфейсы

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

  • env.reset(): инициализировать игру и вернуть состояние и идентификатор первого игрока.
  • env.step(action, raw_action=False): продвинуть среду на один шаг. Действие может быть исходным действием или целым числом; когда передается исходное действие (строка), raw_action должно быть установлено в True.
  • env.step_back(): доступно только тогда, когда allow_step_back установлено в True, вернуться назад на один шаг. Эта функция может использоваться в алгоритмах, требующих работы с деревом игр, таких как CFR (случайный отбор).
  • env.is_over(): возвращает True, если текущая игра окончена, в противном случае возвращает False.
  • env.get_player_id(): возвращает идентификатор текущего игрока.
  • env.get_state(player_id): возвращает состояние игрока с идентификатором player_id.
  • env.get_payoffs(): возвращает список выплат всех игроков после окончания игры.
  • env.get_perfect_information(): (в настоящее время поддерживает только часть игр) получает полную информацию о текущем состоянии.

Структура библиотеки

Основные модули выполняют следующие функции:

  • /examples: примеры использования RLCard.
  • /docs: документация RLCard.
  • /tests: тестовые сценарии RLCard.
  • /rlcard/agents: алгоритмы обучения с подкреплением и человеческие агенты.
  • /rlcard/envs: упаковка среды (формулировка состояния, кодирование действий и т. д.).
  • /rlcard/games: различные игровые движки.
  • /rlcard/models: коллекция моделей, включая предварительно обученные модели и модели на основе правил.

Дополнительная документация

Пожалуйста, обратитесь к здесь для получения дополнительной документации Documents. Документация API доступна на нашем веб-сайте.

Вклад

Мы очень благодарны за ваш вклад в этот проект! Пожалуйста, создайте Issue для обратной связи или ошибок. Если вы хотите поздравить код, пожалуйста, обратитесь к Руководству по вкладу. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь с Daochen Zha через daochen.zha@rice.edu.

Благодарности

Мы искренне благодарим JJ World Network Technology Co., LTD за их большую поддержку этого проекта, а также за вклад сообщества.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/daochenzha-rlcard.git
git@api.gitlife.ru:oschina-mirror/daochenzha-rlcard.git
oschina-mirror
daochenzha-rlcard
daochenzha-rlcard
master