Gyozas¶

Pure-Python reinforcement learning for combinatorial optimization.
Gyozas provides a modular RL environment built on PySCIPOpt and Gymnasium. It lets you train agents to make decisions inside SCIP's branch-and-bound solver -- variable selection (branching) and node selection -- with pluggable rewards, observations, and problem instance generators.
Why Gyozas?¶
- Pure Python -- no C++ compilation, just
pip install gyozas - Gymnasium-style API -- familiar
reset()/step()interface - Modular -- swap dynamics, rewards, observations, and instance generators independently
- Research-ready -- bipartite graph observations from Gasse et al. (NeurIPS 2019)
Quick Example¶
import gyozas
instances = gyozas.SetCoverGenerator(n_rows=100, n_cols=200)
env = gyozas.Environment(
instance_generator=instances,
observation_function=gyozas.NodeBipartite(),
reward_function=gyozas.NNodes(),
)
obs, action_set, reward, done, info = env.reset()
while not done:
action = action_set[0] # pick first candidate
obs, action_set, reward, done, info = env.step(action)
env.close()
Next Steps¶
- Getting Started -- install SCIP, install gyozas, run your first episode
- Concepts -- understand the environment lifecycle, dynamics, rewards, and observations
- API Reference -- full class documentation
Contributors¶
| Name | Affiliation | GitHub |
|---|---|---|
| Olivier JUAN | EDF Lab | @olivierjuan |
| Paul STRANG | EDF Lab · CNAM · ISAE | @abfariah |