Skip to content

aaronkjin/ivey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ivey

An AI-powered poker engine with modern reinforcement learning techniques. A CS 229 project.

Agent 1 First-to-Act: agent_1_first_action Agent 2 vs. Raise: agent_2_vs_raise Agent 2 vs. Call: agent_2_vs_call Agent 1 vs. Raise: agent_1_vs_raise Poster:

ivey_poster

Getting Started

Prerequisites:

# create a virtual env
python3 -m venv ivey_env

# activate the virtual env
source ivey_env/bin/activate

# install core dependencies
pip install -r requirements.txt

# run scripts, e.g.
python3 src/poker_push_fold.py

# for charts, run script
python3 src/poker_chart.py

To deactivate the virtual environment, simply run:

deactivate

Background

Ivey presents a RL approach to developing poker agents, focusing on preflop decision-making in heads-up No-Limit Texas Hold'em. Starting with push/fold decisions and expanding to more complex betting, the system uses a single-agent paradigm for Q-learning, where one agent learns both positions (SB + BB). Careful state design and learning optimization led to agents that fundamentally understand poker principles, such as position and hand strength. The results demonstrate that basic RL techniques can discover preflop strategies in-line with GTO when properly implemented.

Developers

Aaron Jin

Ryan Cheng

About

An RL poker engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages