Skip to content

Conversation

@tobiasbecher
Copy link
Collaborator

Started on a more flexible optimization problem framework that allows for easier integration of individual plan calculation methods like weighted sum, lexicographic optimization, etc., as well as tradeoff exploration strategies, like sandwich methods.

tobiasbecher and others added 7 commits February 20, 2025 09:31
- InversePlanningProblem added
- Added callbacks for function evaluations to scalarization and tradeoff problem
- Moved scalarization strategy instance creation to tradeoff strategy constructor
@tobiasbecher tobiasbecher changed the title More flexible optimizatin framework More flexible optimization framework Feb 21, 2025
@tobiasbecher tobiasbecher changed the base branch from main to develop February 21, 2025 10:14
@wahln
Copy link
Collaborator

wahln commented Feb 21, 2025

Some comments on the draft:

  • is there a reason for the function name changes in the Problems?
  • I am still not super convinced by the strategy separation. For example, a trade-off strategy using a scalarization strategy - wouldn't you run into troubles there? I guess a Sandwiching algorithm has very limited use for other salarization strategies than weighted sum. A lexicographic will redefine so much in each sequence that it probably doesn't make sense to rely on an existing scalarization strategy. I don't know if this forced interdependence is really necessary.
  • what about the new_templates folder?
  • The objective convexity and linearity is good. However, you discussed the issue of objectives being linear / convex sometimes based on their parameters. Do you want this to be dropped now?

tobiasbecher and others added 3 commits February 21, 2025 13:07
Patch Release v0.2.2

See merge request e040/e0404/pyRadPlan!65
Fix formatting and make formatting mandatory in the CI Pipeline

See merge request e040/e0404/pyRadPlan!66
@wahln wahln added the enhancement Functionality in need of improvement label Feb 27, 2025
@codecov-commenter
Copy link

Codecov Report

Attention: Patch coverage is 69.78131% with 152 lines in your changes missing coverage. Please review.

Please upload report for BASE (develop@45cc48b). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...rategies/scalarization_strategies/_weighted_sum.py 46.66% 24 Missing ⚠️
...ation_strategies/_base_scalarization_strategies.py 59.18% 20 Missing ⚠️
pyRadPlan/dose/engines/_base_pencilbeam.py 0.00% 11 Missing ⚠️
pyRadPlan/optimization/problems/_optiprob.py 70.27% 11 Missing ⚠️
pyRadPlan/stf/generators/_factory.py 73.80% 11 Missing ⚠️
pyRadPlan/dose/engines/_base.py 16.66% 10 Missing ⚠️
...on/strategies/scalarization_strategies/_factory.py 61.53% 10 Missing ⚠️
...ization/strategies/tradeoff_strategies/_factory.py 61.53% 10 Missing ⚠️
...lan/optimization/problems/_simple_least_squares.py 0.00% 9 Missing ⚠️
...yRadPlan/dose/engines/_base_pencilbeam_particle.py 27.27% 8 Missing ⚠️
... and 9 more
Additional details and impacted files
@@            Coverage Diff             @@
##             develop       #1   +/-   ##
==========================================
  Coverage           ?   64.79%           
==========================================
  Files              ?      102           
  Lines              ?     5377           
  Branches           ?        0           
==========================================
  Hits               ?     3484           
  Misses             ?     1893           
  Partials           ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@philsuess
Copy link

I would like to see a class interaction diagram. I am not clear on the what the role of each scalarization_{method/strategies} and tradeoff_strategies are.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Functionality in need of improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants