function sol = solverobust(varargin) %SOLVEROBUST Solve robust conic problem % % sol = solverobust(F,h,options,uncertain) is used for finding a robust % solution to an uncertain conic problem. % % Currently, YALMIP supports robust solutions to conic problems where % uncertainty only enter in linear inequality constraints. The % uncertainty set is allowed to be an arbitrary conic set. For uncertain % SOCP and SDP constraints, the uncertainty set has to be polytopic. % % The robust problem supported can be formulated as % % min max_w f(x)+c(w)'*x % % subject to H(x) >(=) 0 % A(w)x <= b(w) for all w:G(w) >(=) 0 % % The data c, A and b are linearly parameterized by uncertainty w, % the constraints H and G are general conic sets. % % INPUT % F : SET object with constraints and uncertainty description % h : scalar SDPVAR object (can be []) % options : options structure obtained from SDPSETTINGS (can be []) % uncertain : SDPVAR object defining uncertain variables % % OUTPUT % sol : Solution diagnostic. % % EXAMPLE % sdpvar x w % F = set(x + w <= 1) + set(-0.5 <= w <= 0.5); % solverobust(F,-x,[],w) % Optimal value x=0.5 % % NOTES % % The constraints and objective have to satisfy a number of conditions % for the robustification to be tractable. Please refer to the YALMIP % Wiki for the current assumptions (this is constantly developing) % % See also SOLVESDP, SOLVESOS, SDPSETTINGS, SDPVAR, SET if nargin < 3 varargin{3} = sdpsettings; ops = varargin{3}; else ops = varargin{3}; if isempty(ops) ops = sdpsettings; varargin{3} = ops; end end % convert to robust model [F,h,failure] = robustify(varargin{:}); if failure error('Failed to create robustified model. Check the Wiki!') else % and solve this model instead sol = solvesdp(F,h,ops); end