В запросе используется язык Markdown.
Доступен человеческий интерфейс NoLimit Holdem. Абстрагировано пространство действий NoLimit Holdem. Спасибо за вклад @AdrianP-!
Доступна новая игра Gin Rummy и человеческий графический интерфейс. Спасибо за вклад @billh0420!
Доступно PyTorch-внедрение. Спасибо за вклад @mjudell!
Следующие игры в основном разработаны и поддерживаются участниками сообщества. Спасибо!
Игра | Разработчик |
---|---|
Gin Rummy | @billh0420 |
Bridge | @billh0420 |
Спасибо всем участникам!
...
Zha, Daochen и др. «RLCard: A Platform for Reinforcement Learning in Card Games». IJCAI. 2020.
@inproceedings{zha2020rlcard,
title={RLCard: A Platform for Reinforcement Learning in Card Games},
author={Zha, Daochen and Lai, Kwei-Herng and Huang, Songyi and Cao, Yuanpu and Reddy, Keerthana and Vargas, Juan and Nguyen, Alex and Wei, Ruzhe and Guo, Junyu and Hu, Xia},
booktitle={IJCAI},
year={2020}
}
Установка
Убедитесь, что у вас установлены Python 3.6+ и pip. Мы рекомендуем установить стабильную версию rlcard с помощью pip:
pip3 install rlcard
По умолчанию установка будет включать только карточные среды. Чтобы использовать реализацию обучения алгоритмов PyTorch, выполните команду:
pip3 install rlcard[torch]
Если вы находитесь в Китае и предыдущая команда выполняется слишком медленно, вы можете использовать зеркало, предоставленное Университетом Цинхуа:
pip3 install rlcard -i https://pypi.tuna.tsinghua.edu.cn/simple
В качестве альтернативы вы можете клонировать последнюю версию (если вы находитесь в Китае, а Github работает медленно, вы также можете использовать зеркало в Gitee):
git clone https://github.com/datamllab/rlcard.git
или клонировать только одну ветку, чтобы ускорить процесс:
git clone -b master --single-branch --depth=1 https://github.com/datamllab/rlcard.git
Затем установите с помощью команды:
cd rlcard
pip3 install -e .
pip3 install -e .[torch]
Мы также предоставляем метод установки с использованием conda (https://anaconda.org/toubun/rlcard):
conda install -c toubun rlcard
Метод установки с помощью conda предоставляет только карточные окружения, вам необходимо вручную установить Pytorch по своему усмотрению.
Примеры
Вот краткий пример.
import rlcard
from rlcard.agents import RandomAgent
env = rlcard.make('blackjack')
env.set_agents([RandomAgent(num_actions=env.num_actions)])
print(env.num_actions) # 2
print(env.num_players) # 1
print(env.state_shape) # [[2]]
print(env.action_shape) # [None]
trajectories, payoffs = env.run()
RLCard можно гибко подключать к различным алгоритмам. См. следующие примеры:
Демоверсия
Запустите examples/human/leduc_holdem_human.py
, чтобы поиграть с предварительно обученной моделью Leduc Hold'em. Leduc Hold'em — это упрощённая версия Texas Hold'em. Правила можно найти здесь (docs/games.md#leduc-holdem). ## Поддерживаемые алгоритмы
Алгоритм | Пример | Ссылка |
---|---|---|
Deep Monte-Carlo (DMC) | examples/run_dmc.py | [paper] |
Deep Q-Learning (DQN) | examples/run_rl.py | [paper] |
Neural Fictitious Self-Play (NFSP) | examples/run_rl.py | [paper] |
Counterfactual Regret Minimization (CFR) | examples/run_cfr.py | [paper] |
Мы предоставляем модельный зоопарк, который можно использовать в качестве базовых моделей.
Модель | Объяснение |
---|---|
leduc-holdem-cfr | Предобученная модель CFR (вероятностный отбор проб) на Leduc Hold'em |
leduc-holdem-rule-v1 | Основанная на правилах модель для Leduc Hold'em, v1 |
leduc-holdem-rule-v2 | Основанная на правилах модель для Leduс Hold'em, v2 |
uno-rule-v1 | Основанная на правилах модель для UNO, v1 |
limit-holdem-rule-v1 | Основанная на правилах модель для Limit Texas Hold'em, v1 |
doudizhu-rule-v1 | Основанная на правилах модель для Dou Dizhu, v1 |
gin-rummy-novice-rule | Модель Gin Rummy для новичков |
Вы можете использовать следующий интерфейс для создания окружения. При необходимости вы можете указать некоторые конфигурации с помощью словаря.
env_id
— это строка окружения; config
— словарь, который определяет некоторые конфигурации окружения, а именно:
seed
: По умолчанию None
. Устанавливает локальное случайное начальное число среды для воспроизведения результатов.allow_step_back
: По умолчанию False
. True
, если разрешить функции step_back
перемещаться назад по дереву.game_
. В настоящее время мы поддерживаем только game_num_players
в блэкджеке.После создания окружения мы можем получить доступ к некоторой информации об игре.
Состояние — это словарь Python. Он состоит из наблюдения state['obs']
, допустимых действий state['legal_actions']
, необработанного наблюдения state['raw_obs']
и необработанных допустимых действий state['raw_legal_actions']
.
Следующие интерфейсы обеспечивают базовое использование. Это легко использовать, но у агента есть предположения. Агент должен следовать [агенту]. env.set_agents(agents): agents — это список объектов Agent. Длина списка должна быть равна количеству игроков в игре.
env.run(is_training=False): запустить полную игру и вернуть траектории и выплаты. Функцию можно использовать после вызова set_agents. Если is_training равно True, то для игры будет использоваться функция step в агенте. Если is_training равно False, вместо неё будет вызываться eval_step.
Для расширенного использования следующие интерфейсы позволяют гибко работать с деревом игры. Эти интерфейсы не делают никаких предположений об агенте.
Цели основных модулей перечислены ниже:
Дополнительную документацию см. в документах для общего ознакомления. Документы API доступны на нашем веб-сайте.
Мы будем очень признательны за ваш вклад в этот проект! Пожалуйста, создайте проблему для обратной связи/ошибок. Если вы хотите внести свой вклад в код, пожалуйста, обратитесь к Руководству по внесению вклада. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь с Даочен Чжа по адресу daochen.zha@rice.edu.
Мы хотели бы поблагодарить JJ World Network Technology Co., LTD за щедрую поддержку и все вклады от участников сообщества.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )