Fluence Optimization

The goal of the fluence optimization is to find a set of bixel/spot weights that yield the best possible dose distribution according to the clinical objectives and constraints underlying the radiation treatment.

For mathematical optimization, these clinical objectives and constraints have to be translated into mathematical objectives and constraints. matRad supports the mathematical optimization of a weighted sum of objectives to help finding an optimal trade-off between adequate target coverage and normal tissue sparing for an individual patient as well as the formulation of constraints. The individual objectives and constraints are defined per structure, can be chosen by the user.

The overall fluence optimization process is coordinated by the top-level function matRad_fluenceOptimization().

Since Version 2.10.0

Since version 2.10.0 objectives and constraints are implemented with an object oriented approach. For the old format, see further down below.

At the moment, matRad allows for objectives and constraints based on dose. Each objective and constraint is defined in a class derived from matRad_DoseOptimizationFunction. Objectives and Constraints are distinguished by the abstract subclasses DoseObjectives.matRad_DoseObjective & DoseConstraints.matRad_DoseConstraint within the respective package folders. This enables the easy implementation of new (dose-based) constraints & objectives by writing your own class, inheriting from those and implementing the therein declared interface, i.e. the parameter definition, and respective objective/constraint function and its gradient/jacobian. New objectives/constraints are then automatically recognized also in the GUI.

Currently, the available objectives are found in the matRad.optimization.DoseObjectives package and the available constraints in the matRad.optimization.DoseConstraints package. The available objectives and constraints are listed in the following tables:

Objective

Class

Effect on the objective function

square underdosing

DoseObjectives.matRad_SquaredUnderdosing

Only dose values lower than the threshold dose for this VOI are considered for the objective function. The deviations are squared, multiplied with the penalty factor and added to the objective function value. The penalty is normalized to the number of voxels per VOI.

square overdosing

DoseObjectives.matRad_SquaredOverdosing

Only dose values larger than the threshold dose for this VOI are considered for the objective function. The deviations are squared, multiplied with the penalty factor and added to the objective function value. The penalty is normalized to the number of voxels per VOI.

square deviation

DoseObjectives.matRad_SquaredDeviation

All deviation from a reference dose for this VOI are considered for the objective function. All deviations are squared, multiplied with the penalty factor and added to the objective function value. The penalty is normalized to the number of voxels per VOI.

mean

DoseObjectives.matRad_MeanDose

All dose values inside this VOI are weighted with the specified, and normalized (see above), penalty factor and added to the objective function value.

EUD

DoseObjectives.matRad_EUD

EUD is the abbreviation for equivalent uniform dose. For this method a weighting factor and an exponent a have to be defined. For the calculation of the objective function value the dose in each voxel is taken to the power of a. Then the sum of all these values is taken (Σ Dia) and divided by the number of voxels. The a-th root of this value is then multiplied with the weighting factor and added to the objective function value.

Min/max DVH objective

DoseObjectives.matRad_MaxDVHObjective DoseObjectives.matRad_MinDVHObjective

Only deviations from the reference dose over/under a reference volume are considered according to Wu & Mohan (2000 Medical Physics).

Constraint

Class

Description

Min/Max Dose

DoseConstraints.matRad_MinMaxDose

Keeps dose above and below the set minimum and maximum dose. Can use a LogSumExp Approximation or a voxel-wise constraint.

Min/Max Mean Dose

DoseConstraints.matRad_MinMaxMeanDose

Keeps the mean dose above and below the set minimum and maximum mean dose.

Min/Max EUD

DoseConstraints.matRad_MinMaxEUD

Keeps the EUD above and below the set minimum and maximum EUD. The EUD is calculated using the same method as for the EUD objective.

min/max DVH

DoseConstraints.matRad_MinMaxDVH

Keeps the dose volume histogram above and below the set minimum and maximum volunme for a given dose level.

This is extended to the implementation of optimization problems and optimizers. An optimization problem matRad_OptimizationProblem combines the single objectives into an objective function and organizes the constraint structure to give a standard optimization problem to the optimizer. matRad implements optimizers as derived classes of matRad_Optimizer and defaults to the IPOPT package for large scale non-linear optimization which is included via a MEX file and interfaced in matRad_OptimizerIPOPT. MATLAB’s proprietary fmincon support is added in matRad_OptimizerFmincon, other optimizers may be added as well. So far, only non-linear constrained optimization is supported by matRad_OptimizationProblem and for optimizers. Optimizers can be changed by setting pln.propOpt.optimizer. The matRad_OptimizationProblem class also enables to implement advanced planning problems as subclasses, like direct aperture optimization as implemented in matRad_OptimizationProblemDAO.

Before Version 2.10.0

The objectives and constraints are stored as a dose objective struct within the cst cell. The objectives and constraints can be set including all necessary parameters via the matRad GUI. All functions involved in the optimization process are located in a subfolder called “optimization” within the matRad root folder. matRad relies on the IPOPT package for large scale non-linear optimization which is included via a MEX file. IPOPT requires call back functions for objective function, gradient, constraint, and Jacobian evaluation. We use the wrapper functions matRad_objFuncWrapper.m, matRad_gradFuncWrapper.m, matRad_constFuncWrapper.m, and matRad_jacobFuncWrapper.m to coordinate the evaluation of all defined objectives and constraints.

Optimization based on dose, effect, and RBE weighted dose

All optimization functionalities work equally for optimization processes based on physical dose as well as biological effect Wilkens & Oelfke (2006) and RBE-weighted dose according to Krämer & Scholz (2006). The biological effect and the RBE-weighted dose are calculated with α and β base data that has been calculated according to the local effect model IV. α and β tables are available as part of the base data set carbon_Generic which is provided with the matRad release.

Direct aperture optimization

For photons, matRad also features an experimental direct aperture optimization that largely follows the implementation described in Wild et al. (2015) which is based on Bzdusek et al. (2009) and (with some modification) Unkelbach & Cassioli (2012).