dilate is used to derive affine dilations for polynomially parametrized uncertain SDPs. The dilated constraint can then be used for conservatively solving robust SDP with polytopic uncertainty.
Syntax
[G,H,M] = dilate(X,w)
Examples
The robust SDP framework in YALMIP allows SDP constraints with affine dependence on the uncertainty, and a polytopic uncertainty description. However, it is not uncommon that the dependence with respect to the uncertainty is polynomial.
A recent approach to address this is matrix dilations, where the polynomial dependence is reduced to an affine dependence, at the cost of a larger SDP and possible conservatism. Note that the implementation in YALMIP uses a slightly alternative approach.
Consider the problem of finding an upper bound on a polynomial f in the range 0 to 1 (this example is taken from the reference above)
f = -375*t1^4 + 800*t1^3-570*t1^2+144*t1-375*t2^4 + 800*t2^3-570*t2^2+144*t2
This can be formulated as a robustness problem; find the smallest possible x such that x-f is positive on the region of interest.
The expression x-f is not affine in the uncertainty t1 and t2, hence the standard robust framework in YALMIP is not applicable. To get a robustness problem with affine dependence, we dilate the constraint
Fdilated = dilate(x-f>=0,[t1 t2])
The dilated constraint is affine in the uncertainty, and we can apply standard robust programming.
solvesdp(F,x)
The command can alternatively be called with an sdpvar object instead of a set object. The output arguments are then the matrices used in the dilation. The code above is equivalent to the following
W = sdpvar(size(G,1),size(H,2))
F = [G + W*H' + H*W' >= 0, uncertain([t1 t2]), 0 <= [t1 t2] <= 1]
solvesdp(F,x)
See also
uncertain, robustify, solvesdp, solvesos, robust optimization tutorial, robust MPC example, Robust SDP example