4.3.0 - 2025-11-25¶
← Previous: 4.2.0 | Next: 4.3.1 → | 📋 All Releases | 🏷️ GitHub Release
Summary: Penalty is now a first-class Effect - add penalty contributions anywhere (e.g., effects_per_flow_hour={'Penalty': 2.5}) and optionally define bounds as with any other effect.
If upgrading from v2.x, see the v3.0.0 release notes and Migration Guide.
✨ Added¶
- Penalty as first-class Effect: Users can now add Penalty contributions anywhere effects are used:
- User-definable Penalty: Optionally define custom Penalty with constraints (auto-created if not defined):
♻️ Changed¶
- Penalty is now a standard Effect with temporal/periodic dimensions, and periodic weights in the objective
- Results structure: Penalty now has same structure as other effects in solution Dataset
- Use
results.solution['Penalty']for total penalty value (same as before, but now it's an effect variable) - Access components via
results.solution['Penalty(temporal)']andresults.solution['Penalty(periodic)']if needed
📝 Docs¶
- Updated mathematical notation for Penalty as Effect
👷 Development¶
- Unified interface: Penalty uses same
add_share_to_effects()as other effects (internal only)
← Previous: 4.2.0 | Next: 4.3.1 → | 📋 All Releases | 🏷️ GitHub Release