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

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions