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

OSCHINA-MIRROR/daochenzha-rlcard

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

В запросе используется язык Markdown.

  • Доступен человеческий интерфейс NoLimit Holdem. Абстрагировано пространство действий NoLimit Holdem. Спасибо за вклад @AdrianP-!

  • Доступна новая игра Gin Rummy и человеческий графический интерфейс. Спасибо за вклад @billh0420!

  • Доступно PyTorch-внедрение. Спасибо за вклад @mjudell!

Вкладчики

Следующие игры в основном разработаны и поддерживаются участниками сообщества. Спасибо!

Игра Разработчик
Gin Rummy @billh0420
Bridge @billh0420

Спасибо всем участникам!

daochenzha   hsywhu   CaoYuanpu   billh0420   ruzhwei   adrianpgob   Zhigal   aypee19   Clarit7   lhenry15   ismael-elatifi   mjudell   jkterry1   kaanozdogru   junyuGuo  

...


Xixo99   rodrigodelazcano   Michael1015198808   mia1996   kaiks   claude9493   SonSang   rishabhvarshney14   aetheryang   rxng8   Если вы считаете этот репозиторий полезным, вы можете сослаться на него:

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 можно гибко подключать к различным алгоритмам. См. следующие примеры:

  • Игра с агентами-рандомами (docs/toy-examples.md#playing-with-random-agents);
  • Глубокое Q-обучение в блэкджеке (docs/toy-examples.md#deep-q-learning-on-blackjack);
  • Обучение CFR (выбор шанса) в Leduc Hold'em (docs/toy-examples.md#training-cfr-on-leduc-holdem);
  • Веселье с предварительно обученной моделью Leduc (docs/toy-examples.md#having-fun-with-pretrained-leduc-model);
  • Обучение DMC в Dou Dizhu (docs/toy-examples.md#training-dmc-on-dou-dizhu);
  • Оценка агентов (docs/toy-examples.md#evaluating-agents);
  • Обучение агентов на PettingZoo (examples/pettingzoo).

Демоверсия

Запустите 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 для новичков

Шпаргалка по API

Как создать окружение

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

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

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

  • env.num_actions: Количество действий.
  • env.num_players: Количество игроков.
  • env.state_shape: Форма пространства состояний наблюдений.
  • env.action_shape: Форма функций действия (действие Dou Dizhu может быть закодировано как функция).

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

Состояние — это словарь 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.

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

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

  • env.reset(): инициализировать игру. Вернуть состояние и идентификатор первого игрока.
  • env.step(action, raw_action=False): сделать один шаг в среде. action может быть необработанным действием или целым числом; 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: зоопарк моделей, включая предварительно обученные модели и модели правил.

Дополнительные документы

Дополнительную документацию см. в документах для общего ознакомления. Документы API доступны на нашем веб-сайте.

Участие

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

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

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

Комментарии ( 0 )

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

Введение

Пакет инструментов для игр карточного типа с элементами усиления обучения/искусственного интеллекта, включая Баккара, Покер, Бакгаммон, Баккара, Баккрад, Бакбинго, Бакбоулинг, Бакбейсбол, Бакбокс, Бакбридж, Баккрокет, Бакдартс, Бакполо, Бакрегби, Бакроллер, Бакскат, Баксквош, Бакстрайк, Бактеннис, Бактриатлон, Бакфутбол, Бакхоккей, Бакшахматы, Б... Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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