0001 classdef matRad_OptimizationProblem < handle 0002 %matRad_OptimizationProblem Main Class for fluence optimization problems 0003 % Describes a standard fluence optimization problem by providing the 0004 % implementation of the objective & constraint function/gradient wrappers 0005 % and managing the mapping and backprojection of the respective dose- 0006 % related quantity 0007 % 0008 % References 0009 % - 0010 % 0011 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0012 % 0013 % Copyright 2020 the matRad development team. 0014 % 0015 % This file is part of the matRad project. It is subject to the license 0016 % terms in the LICENSE file found in the top-level directory of this 0017 % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part 0018 % of the matRad project, including this file, may be copied, modified, 0019 % propagated, or distributed except according to the terms contained in the 0020 % LICENSE file. 0021 % 0022 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0023 0024 properties 0025 BP %matRad_BackProjection object for mapping & backprojection 0026 bioOpt = ''; 0027 end 0028 0029 methods 0030 function obj = matRad_OptimizationProblem(backProjection) 0031 obj.BP = backProjection; 0032 end 0033 0034 %Objective function declaration 0035 fVal = matRad_objectiveFunction(optiProb,w,dij,cst) 0036 0037 %Objective gradient declaration 0038 fGrad = matRad_objectiveGradient(optiProb,w,dij,cst) 0039 0040 %Constraint function declaration 0041 cVal = matRad_constraintFunctions(optiProb,w,dij,cst) 0042 0043 %Constraint Jacobian declaration 0044 cJacob = matRad_constraintJacobian(optiProb,w,dij,cst) 0045 0046 %Jacobian Structure 0047 jacobStruct = matRad_getJacobianStructure(optiProb,w,dij,cst) 0048 0049 [cl,cu] = matRad_getConstraintBounds(optiProb,cst) 0050 0051 function lb = lowerBounds(optiProb,w) 0052 lb = zeros(size(w)); 0053 end 0054 0055 function ub = upperBounds(optiProb,w) 0056 ub = Inf * ones(size(w)); 0057 end 0058 end 0059 end 0060