How bullygen/gds works
GDS is a C++17 finite scheduling library with a Python interface; its main workflow models and compiles a problem, searches for a schedule, then independently checks feasibility. The repository also contains a distinct satellite-operations planner with event-driven simulation and multiobjective replanning. The graph preserves these documented capabilities, but some subsystem links use enclosing paths because their implementation was not sampled.
Main entry points: project.py Project and replanning · engine.py GDE3 engine · scheduling.hpp Schedule result · __init__.py Python API
Components 19
GDS scheduling library
- Python API
python/gds/__init__.py - Python bindings
bindings - Problem model
include/gds/scheduling.hpp - Compile constraints
src/scheduling.cpp - GDS network
src/network.cpp - Search algorithms
src/solvers.cpp - Schedule result
include/gds/scheduling.hpp - Independent checks
src/scheduling.cpp
Satellite planner
- Scenario data
hackathon/data - Operations session
hackathon/model/operations.py - Resource environment
hackathon/model/resource_env.py - Project and replanning
hackathon/solver/project.py - GDE3 engine
hackathon/solver/engine.py - Native decoder
hackathon/solver/native.cpp - Reports and metrics
hackathon/solver/reports.py - Planner results
hackathon/solver
Optional visualization
- Schedule plots
python/gds_plot/__init__.py
Other components
- Problem author
- Duration provider
Connections 23
- Problem author → Python API: defines problem
- Python API → Python bindings: calls
- Python bindings → Problem model: exposes types
- Problem model → Compile constraints: compiles
- Compile constraints → GDS network: builds network
- Compile constraints → Duration provider: requests durations
- Python API → Search algorithms: invokes search
- Search algorithms → GDS network: runs search
- Search algorithms → Schedule result: produces
- Schedule result → Independent checks: checks feasibility
- Independent checks → Schedule result: returns checked result
- Schedule result → Schedule plots: renders
- Problem author → Scenario data: provides scenario
- Scenario data → Operations session: initializes
- Operations session → Resource environment: advances state
- Problem author → Project and replanning: requests planning
- Project and replanning → Operations session: replays and branches
- Project and replanning → GDE3 engine: requests replanning
- GDE3 engine → Resource environment: validates resources
- GDE3 engine → Native decoder: decodes genomes
- GDE3 engine → Reports and metrics: summarizes results
- Project and replanning → Reports and metrics: generates reports
- Reports and metrics → Planner results: writes results