Skip to content

[GP-02] Add Unit Commitment heuristics #239

Description

@aoustry

Affected Component

Optimization problem construction (simulation/)

Type of Change

Major: backward-incompatible change or major new feature (e.g. rolling horizon)

Description

Introduce the possibility of having a 2-stage heuristic for solving of the dispatch problems with integer variables.

  • The user should declare inside optim-config.yml the name of the heuristic used for each model. The name of the heuristic refers to a Python method hardcoded in a dedicated submodule of GemsPy.
  • The user should declare inside system.yml the integer-strategy: exact (default) | relaxed | heuristic

The code modification should be done "below" the function run_block of session.py, so that the changes directly benefit to run_frontal, run_parallel and run_sequential.

Results Impact

No impact if the integer-strategy is exact. Else, potential impacts.

Validation Strategy

  • Parallel run with Legacy Antares Simulator for very simple studies

Process Checklist

Step 1 — Issue Creation

  • Issue created and linked to process GP-02

Step 2 — Triage

  • Process confirmed applicable
  • Assigned to responsible contributor
  • Priority and milestone set (if applicable)

Step 3 — Impact Analysis ⚠️ extended results analysis required

  • Affected modules identified
  • Results impact explicitly stated: change intended / no change intended
  • If results expected to change: before/after difference described and justified
  • Breaking vs backward-compatible change determined

Step 4 — Implementation

  • Code changes implemented
  • Backward compatibility maintained unless explicitly intended as breaking

Step 5 — Testing & Validation

  • If results expected to change: reference studies updated with new expected values
  • If results must not change: solver equivalence confirmed via tests
  • Unit tests cover changed components

Step 6 — CI Validation

  • Type checking passes (mypy)
  • Formatting passes (black, isort)
  • All tests pass in CI (pytest)

Step 7 — Review & Merge

  • PR reviewed; documentation changes included

Step 8 — Versioning

  • pyproject.toml version bumped

Step 9 — Supporting Files

  • AGENTS.md reviewed for impact and updated if needed

Step 10 — Release

  • If a release is needed: follow the release process in the Developer Guidelines

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions