Releases: sotetsuk/pgx
v2.4.2
What's Changed
- [Chess] Reduce
_is_attacked
call by @sotetsuk in #1260 - [CI] Cancel old workflows by @sotetsuk in #1266
- [Shogi] Extract game specific attributes by @sotetsuk in #1265
- [Shogi] Extract logic functions by @sotetsuk in #1269
- [Shogi] Separate core logic to
_src/games/shogi.py
by @sotetsuk in #1270 - [Shogi] Add
Game
class by @sotetsuk in #1271 - [Shogi] Unuse assets by @sotetsuk in #1272
- [Shogi] Make core singlefile by @sotetsuk in #1273
- [Shogi] move
shogi_utils.py
to experimental by @sotetsuk in #1274 - [Shogi] move
INIT_LEGAL_ACTION_MASK
by @sotetsuk in #1275 - [MinAtar] Fix CI by @sotetsuk in #1277
- [Backgammon] unuse
clip
by @sotetsuk in #1278 - [Test] Remove
.svg
files from assets by @sotetsuk in #1280 - [CI] Add old Jax tests by @sotetsuk in #1279
- [Test] Enhance test experience by @sotetsuk in #1281
- [MinAtar] Update submodule by @sotetsuk in #1282
- [Shogi] Move reward and terminal by @sotetsuk in #1276
- Python3.13 support by @sotetsuk in #1283
Full Changelog: v2.4.1...v2.4.2
v2.4.1
What's Changed
- [Visualization] Remove file name assertion by @sotetsuk in #1256
- [Chess] speed up
_is_attacked
by @sotetsuk in #1257 - [Hex] Modify visualizer.py to handle TypeError when displaying the initial state of hex. by @KazukiOhta in #1261
- [Release] v2.4.1 by @sotetsuk in #1262
Full Changelog: v2.4.0...v2.4.1
v2.4.0
TL;DR
- Superko rule change in Go (
v0
->v1
) - Internal refactor in Chess
What's Changed
- [Go] Use hash by @sotetsuk in #1224
- [Go] internal refactor by @sotetsuk in #1225
- [Chess] Separate Chess specific attributes by @sotetsuk in #1226
- [Chess] Extract game logic functions by @sotetsuk in #1227
- [Chess] Move game logic to
_src/games
by @sotetsuk in #1228 - [Chess] Add game class by @sotetsuk in #1229
- [Chess] Skip
_flip
in checking mate by @sotetsuk in #1230 - [Chess] Reduce
_is_checked
call by @sotetsuk in #1231 - [Chess] Summarize
_is_checked
calls by @sotetsuk in #1232 - [Chess] Enhance
CAN_MOVE
by @sotetsuk in #1234 - [Chess] Remove cached info by @sotetsuk in #1233
- [Chess] Simplify
legal_underpromotions
by @sotetsuk in #1236 - [Chess] Remove
_is_pseudo_legal
by @sotetsuk in #1237 - [Chess] Tidy
_apply_move
by @sotetsuk in #1238 - [Chess] Tidy comments by @sotetsuk in #1239
- [Chess] Simplify hash by @sotetsuk in #1235
- [Chess] Reduce lines by @sotetsuk in #1240
- [Chess] Use numpy in
to_fen
by @sotetsuk in #1241 - [CI] Remove type check from CI by @sotetsuk in #1244
- [Chess] Remove
chess_utils.py
by @sotetsuk in #1243 - [Chess] Simplify castling attributes by @sotetsuk in #1245
- [Chess] Simplify hash implementation by @sotetsuk in #1246
- [Chess] Tidy by @sotetsuk in #1247
- [Chess] Rename
turn
tocolor
by @sotetsuk in #1248 - [Chess] Tidy by @sotetsuk in #1250
- [Go] Tidy by @sotetsuk in #1249
- [Chess] use
from jax import lax
by @sotetsuk in #1251 - [Go] Remove
hash
attribute by @sotetsuk in #1252
Full Changelog: v2.3.0...v2.4.0
v2.3.0
What's Changed
- [README] Enhance link to docs by @sotetsuk in #1214
- [README] Add other JAX envs by @sotetsuk in #1216
- [Animal Shogi] Dropping PAWN on the final rank is legal by @KazukiOhta in #1218
- [MinAtar] Fix
svg
visualization by @sotetsuk in #1219 - [AnimalShogi] Update version by @sotetsuk in #1221
- [CI] Drop py3.8 and test py3.9 by @sotetsuk in #1222
- [Release] v.2.3.0 by @sotetsuk in #1220
Full Changelog: v2.2.0...v2.3.0
v2.2.0
What's Changed
- [Animal Shogi] Modify the visualizer of animal shogi. by @KazukiOhta in #1208
- [Animal Shogi] Modify the move of GOLD in animal_shogi.py by @KazukiOhta in #1209
- Update README.md by @KazukiOhta in #1211
- [Animal Shogi] Update documents by @sotetsuk in #1212
Full Changelog: v2.1.2...v2.2.0
v2.1.2
What's Changed
- [KuhnPoker] Update docs by @sotetsuk in #1197
- [Backgammon] Fix deprecated
a_min
anda_max
by @sotetsuk in #1201 - [LeducHoldem] suppress warnings in tests by @sotetsuk in #1202
- [MinAtar] Restore MinAtar tests by @sotetsuk in #1203
- [MinAtar] make
minatar
submodule by @sotetsuk in #1204 - [BridgeBidding] Update version by @sotetsuk in #1206
Full Changelog: v2.1.1...v2.1.2
v2.1.1
v2.1.0
There is a breaking change in Kuhn Poker in #1171
There are several internal changes in Go, Tic-tac-toe, and ConnectFour.
What's Changed
- [Example] Use optax policy loss by @sotetsuk in #1106
- [Example] Extract loss input computation by @sotetsuk in #1107
- [Example] Add MCTS example by @sotetsuk in #1109
- [CI] Hotfix haiku install errors by @sotetsuk in #1114
- [CI] Suppress codecov by @sotetsuk in #1110
- [CI] Simplify GitHub Action file by @sotetsuk in #1112
- [colab] Fix link to colab by @sotetsuk in #1117
- Update
.gitignore
by @sotetsuk in #1118 - [Docs] Add JaxMARL to README by @sotetsuk in #1120
- [CI] Fix build by @sotetsuk in #1121
- [Mahjong] Reduce compilation/run time of
_pass()
by @OkanoShinri in #1122 - Add XLand-MiniGrid to README by @Howuhh in #1124
- [Docs] Add notes in AZ readme by @sotetsuk in #1125
- [Tidy] Remove unnecessary comments by @sotetsuk in #1126
- [Docs] Reorder README badges by @sotetsuk in #1128
- [Go] Separate go specific attributes by @sotetsuk in #1129
- [Go] Extract game logic functions by @sotetsuk in #1130
- [Go] Move game logic to
_src/games
by @sotetsuk in #1131 - [Go] Refactor naming by @sotetsuk in #1132
- [Go] Add new logic class by @sotetsuk in #1133
- [Go] Use
NamedTuple
instead ofdataclass
by @sotetsuk in #1134 - [Mahjong] Add some comments for development by @OkanoShinri in #1123
- [Format] Use
line_length = 120
by @sotetsuk in #1136 - [Go] Tidy by @sotetsuk in #1137
- [Go] make
color
optional inobserve
by @sotetsuk in #1138 - [Go] Fix to use
history_length
by @sotetsuk in #1139 - [Go] rename
terminal_values
toreturns
by @sotetsuk in #1140 - [Game API] Add
__init__.py
by @sotetsuk in #1142 - [Docs] UPDATE
README.md
by @sotetsuk in #1143 - [Protocol] Add
TwoPlayerPerfectInfoGame
by @sotetsuk in #1144 - [Go] Tidy signatures by @sotetsuk in #1145
- [TicTacToe] Separate TicTacToe specific attributes by @sotetsuk in #1146
- [Version]
2.1.0-rc0
by @sotetsuk in #1147 - [TicTacToe] Split game specific methods by @sotetsuk in #1148
- [TicTacToe] Extract
games/tic_tac_toe.py
by @sotetsuk in #1149 - [Go, TicTacToe] Align
step
functions by @sotetsuk in #1150 - [ConnectFour] Separate game specific attributes by @sotetsuk in #1151
- [ConnectFour] Separate game specific methods by @sotetsuk in #1152
- [ConnectFour] Extract
games/connect_four.py
by @sotetsuk in #1153 - [Go] Add
step_count
by @sotetsuk in #1155 - [Go] Move
max_termination_steps
togames/go.py
by @sotetsuk in #1156 - [Go] Refactor using
_player_order
by @sotetsuk in #1157 - [Go] Fix
size
attribute jittable by @sotetsuk in #1158 - [Go] Tidy Go environment by @sotetsuk in #1160
- [Game] Rename
returns
torewards
by @sotetsuk in #1161 - [Format] Apply update black format by @sotetsuk in #1168
- Add
from_fen/to_fen
topgx.experimental.chess
by @sotetsuk in #1167 - [Chess] Accelerate
chess_utils.py
import (jnp => np) by @Akulen in #1170 - [Hotfix] Restore CI by @sotetsuk in #1175
- [Kuhn Poker] Simplify action space by @Egiob in #1171
- [README] Enhance citation information by @sotetsuk in #1181
- Bump jinja2 from 3.1.2 to 3.1.3 in /docs by @dependabot in #1182
- [Go] Extract
from_sgf
by @sotetsuk in #1184 - Bump jinja2 from 3.1.3 to 3.1.4 in /docs by @dependabot in #1185
- [Chess] fix dummy observation by @bkorpan in #1186
- [Bridge] Enhance DDS dataset by @sotetsuk in #1187
- Replace deprecated jax.tree_map function with jax.tree_util.tree_map by @KazukiOhta in #1188
- [CI] Remove Mahjong from CI by @sotetsuk in #1189
- Bump zipp from 3.18.0 to 3.19.1 in /docs by @dependabot in #1190
- [BridgeBidding] Improve efficiency in using dds results by @sotetsuk in #1191
- [Docs] Add
https://github.com/sotetsuk/make-dds-dataset
to bridge docs by @sotetsuk in #1194 - [Release] v2.1.0 by @sotetsuk in #1195
New Contributors
- @Howuhh made their first contribution in #1124
- @Akulen made their first contribution in #1170
- @Egiob made their first contribution in #1171
- @bkorpan made their first contribution in #1186
- @KazukiOhta made their first contribution in #1188
Full Changelog: v2.0.1...v2.1.0
v2.0.1
What's Changed
- [Colab] Adjust to API v2 by @sotetsuk in #1096
- [Docs] Update AlphaZero example docs by @sotetsuk in #1097
- [Example] Adjust PPO example to API v2 by @sotetsuk in #1098
- [Docs] Update AlphaZero training example docs by @sotetsuk in #1099
- [Docs] Update README by @sotetsuk in #1100
- [experimental] Add error message to
auto_reset
by @sotetsuk in #1102 - [experimental] Add error message to
act_randomly
by @sotetsuk in #1101 - [v2] Add error messages for wrong usage by @sotetsuk in #1103
Full Changelog: v2.0.0...v2.0.1
v2.0.0
API v2
Pgx has been updated from API v1 to v2 as of November 8, 2023 (release v2.0.0
). As a result, the signature for Env.step
has changed as follows:
- v1:
step(state: State, action: Array)
- v2:
step(state: State, action: Array, key: Optional[PRNGKey] = None)
Also, pgx.experimental.auto_reset
are changed to specify key
as the third argument.
Purpose of the update: In API v1, even in environments with stochastic state transitions, the state transitions were deterministic, determined by the _rng_key
inside the state
. This was intentional, with the aim of increasing reproducibility. However, when using planning algorithms in this environment, there is a risk that information about the underlying true randomness could "leak." To make it easier for users to conduct correct experiments, Env.step
has been changed to explicitly specify a key.
Impact of the update: Since the key
is optional, it is still possible to execute as env.step(state, action)
like API v1 in deterministic environments like Go and chess, so there is no impact on these games. As of v2.0.0
, only 2048, backgammon, and MinAtar suite are affected by this change.
What's Changed
- [Docs] Update 2048 version by @sotetsuk in #1036
- [Mahjong] Imprement
ryuukyoku
by @OkanoShinri in #1038 - [Mahjong] Imprement
ron
by @OkanoShinri in #1040 - Update leduc_holdem.md by @bleu48 in #1042
- [Mahjong] Imprement
tsumo
by @OkanoShinri in #1041 - [Mahjong] Convert to
json
format by @OkanoShinri in #1048 - [Backgammon] Add description to the playable_dice_count_vec by @nissymori in #1047
- [CI] Comment out some expensive tests as hotfix by @sotetsuk in #1052
- [Mahjong] Implement Menzen by @OkanoShinri in #1045
- [Mahjong] Determine
current_player
afterpass
by @OkanoShinri in #1053 - [Docs] Add license doc by @sotetsuk in #1057
- [Mahjong] Implement kandora by @OkanoShinri in #1054
- [Docs] Update citation by @sotetsuk in #1063
- [Docs] Add arXiv link by @sotetsuk in #1064
- [Mahjong] Dora-score calculation by @OkanoShinri in #1061
- [Test] Run CI with python3.10 only by @OkanoShinri in #1066
- [Colab] Update chess check by @sotetsuk in #1068
- [Mahjong] Add
mahjong
to Env by @OkanoShinri in #1069 - [Example] Add wandb link by @sotetsuk in #1072
- [Example] Use default Gumbel AlphaZero hyperparameters by @sotetsuk in #1055
- [API] Use
int32
instead ofint8/16
by @sotetsuk in #1074 - [Test] Remove redundant random play tests by @sotetsuk in #1076
- [Chess] Fix wrong zobrist hash by @sotetsuk in #1078
- [Experimental] Fix
act_randomly
API by @sotetsuk in #1077 - [2048] Fix bug in legal action mask by @sotetsuk in #1049
- [Mahjong] Remove old files by @sotetsuk in #1075
- [Backgammon] Update document by @sotetsuk in #1046
- [dataclass] Fix dataclass mutable defaults error by @carlosgmartin in #1067
- [dataclass] Suppress C901 by @sotetsuk in #1080
- [Mahjong] Add type annotations by @sotetsuk in #1081
- Add Python 3.11 CI by @sotetsuk in #997
- [CI] Add Python 3.12 to CI by @sotetsuk in #1082
- v2 API by @sotetsuk in #1058
- [Docs] Fix API document by @sotetsuk in #1083
- [Dependency] Update JAX version by @sotetsuk in #1084
- [Typing] Add
types.py
by @sotetsuk in #1085 - [dataclass] Trace Flax dataclass updates by @sotetsuk in #1086
- [Tidy] Add
requirements.txt
by @sotetsuk in #1087 - [experimental] Adjust
auto_reset
to v2 API by @sotetsuk in #1088 - [Mahjong] Add assets in release by @sotetsuk in #1089
- [MinAtar] Fix minatar usage by @sotetsuk in #1090
- [Backgammon, 2048] Update versions by @sotetsuk in #1092
- [Docs] v2 API description by @sotetsuk in #1091
- [Chess] Update version by @sotetsuk in #1093
- [2048] Update documents by @sotetsuk in #1094
- [Mahjong] Unregister mahjong due to large file size by @sotetsuk in #1095
New Contributors
- @bleu48 made their first contribution in #1042
- @carlosgmartin made their first contribution in #1067
Full Changelog: v1.4.0...v2.0.0