Skip to content

Gyozas

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