# tinker_cookbook.rl.ProblemGroupBuilder ## *class* [**tinker_cookbook.rl.ProblemGroupBuilder**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L162)(*[EnvGroupBuilder](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/envgroupbuilder/index.md)*) Builds a group of ProblemEnv instances from a factory callable. **Fields:** - [**env_thunk**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L165) (*Callable\[[], [ProblemEnv](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/problemenv/index.md)\]*) - [**num_envs**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L166) (*int*) - [**dataset_name**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L167) (*str*, default: `'problems'`) ### [**make_envs**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L169)() Create `num_envs` ProblemEnv instances using the factory callable. **Returns:** *Sequence\[[Env](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/env/index.md)\]* ### [**compute_group_rewards**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L173)(*trajectory_group*, *env_group*) Return zero group rewards (all rewards come from per-step scoring). **Parameters:** - [**trajectory_group**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L174) (*list\[[Trajectory](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/trajectory/index.md)\]*) - [**env_group**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/rl/problem_env.py#L174) (*Sequence\[[Env](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/rl/env/index.md)\]*) **Returns:** *list\[tuple[float, Metrics]\]*