feat(env): Binary Matrix Curriculum (#279)

* binary matrix curriculum

* register BinaryMatrixCurriculum

---------

Co-authored-by: Andreas Koepf <andreas.koepf@provisio.com>
This commit is contained in:
Zafir Stojanovski 2025-03-07 22:58:47 +01:00 committed by GitHub
parent 1888fe2bb4
commit 25b8e35589
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 68 additions and 7 deletions

View file

@ -2,7 +2,7 @@
import pytest
from reasoning_gym.algorithmic.binary_matrix import BinaryMatrixConfig, BinaryMatrixDataset
from reasoning_gym.algorithmic.binary_matrix import BinaryMatrixConfig, BinaryMatrixCurriculum, BinaryMatrixDataset
def test_binary_matrix_config_validation():
@ -121,3 +121,28 @@ def test_binary_matrix_answer():
answer = None
entry = {"answer": "0 0 0\n0 1 0\n1 2 1"}
assert dataset.score_answer(answer, entry) == 0.0
def test_n_queens_curriculum():
curriculum = BinaryMatrixCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: BinaryMatrixConfig = curriculum.generate_configuration(base_value)
assert base_cfg.seed == 1
assert base_cfg.size == 150
assert base_cfg.p_zero == 0.5
assert base_cfg.min_n == 10 and base_cfg.max_n == 10
# test incrementing attribute levels for n and p_zero
curriculum.increment_attr_level("n")
curriculum.increment_attr_level("p_zero")
increased_cfg = curriculum.generate_configuration(base_value)
assert increased_cfg.p_zero == 0.25
assert increased_cfg.min_n == 10 and increased_cfg.max_n == 50
# test decrementing attribute level for n again
curriculum.decrement_attr_level("n")
partially_decreased_cfg = curriculum.generate_configuration(base_value)
assert partially_decreased_cfg.p_zero == 0.25
assert partially_decreased_cfg.min_n == 10 and partially_decreased_cfg.max_n == 10