Added zebra curriculum (#328)

* added zebra curriculum

* added metadata
This commit is contained in:
joesharratt1229 2025-03-11 00:22:54 +01:00 committed by GitHub
parent f204a848d9
commit 54074b17ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 115 additions and 5 deletions

View file

@ -2,6 +2,7 @@ from dataclasses import dataclass
from random import Random
from typing import Any, Optional
from ..coaching import AttributeType, BaseCurriculum, ScalarAttributeDefinition
from ..factory import ProceduralDataset, register_dataset
from .contrib.logic_puzzle.generate import generate_puzzle
@ -50,8 +51,7 @@ class ZebraDataset(ProceduralDataset):
"question": question,
"answer": answer,
"metadata": {
"num_people": K,
"num_characteristics": M,
"difficulty": {"num_people": K, "num_characteristics": M},
},
}
@ -74,4 +74,29 @@ class ZebraDataset(ProceduralDataset):
return 0.0
register_dataset("zebra_puzzles", ZebraDataset, ZebraConfig)
class ZebraCurriculum(BaseCurriculum):
def __init__(self):
super().__init__(ZebraCurriculum.__name__, ZebraConfig)
self._define_attributes(
ScalarAttributeDefinition(
name="num_people",
levels=list(range(2, 8)),
default_level=0,
description="The number of people in the Zebra puzzle",
attr_type=AttributeType.STATIC,
min_value=2,
field_name="num_people",
),
ScalarAttributeDefinition(
name="num_characteristics",
levels=list(range(2, 8)),
default_level=0,
description="The number of characteristics in the Zebra puzzle",
attr_type=AttributeType.STATIC,
min_value=2,
field_name="num_characteristics",
),
)
register_dataset("zebra_puzzles", ZebraDataset, ZebraConfig, ZebraCurriculum)