Rev | Line | |
---|
[37] | 1 | yalmip('clear') |
---|
| 2 | sdpvar u v x(2,1) |
---|
| 3 | |
---|
| 4 | % With decomposed problem |
---|
| 5 | % min_x max_w c(w)'*x |
---|
| 6 | % |
---|
| 7 | % s.t A(w)*x <= b(w) for all E*w <=f |
---|
| 8 | A = [-9 -2+5*u+v;3 -2;u 1-v;0 1] |
---|
| 9 | c = [6-u;-7-u+v*8]; |
---|
| 10 | b = [4;1-v;9;6]; |
---|
| 11 | E = [eye(2);-eye(2)]; |
---|
| 12 | f = 0.3*[1;1;1;1]; |
---|
| 13 | solve_robust_lp(c,A,b,E,f,x,[u;v],set([]),sdpsettings) |
---|
| 14 | double(x) |
---|
| 15 | |
---|
| 16 | % Automatic decomposition! |
---|
| 17 | w = [u;v]; |
---|
| 18 | F = set(A(1:end-1,:)*x < b(1:end-1)) + set(E*w < f) + set(x(2) < 6); |
---|
| 19 | solverobust(F,c'*x,[],w); |
---|
| 20 | double(x) |
---|
| 21 | |
---|
| 22 | % Automatic decomposition! |
---|
| 23 | w = [u;v]; |
---|
| 24 | F = set(A*x < b) + set(E*w < f); |
---|
| 25 | solverobust(F,c'*x,sdpsettings('solver','sedumi'),w); |
---|
| 26 | double(x) |
---|
| 27 | |
---|
| 28 | % Automatic decomposition! |
---|
| 29 | w = [u;v]; |
---|
| 30 | F = set(A*x < b) + set(E*w < f) |
---|
| 31 | solverobust(F,c'*x,sdpsettings('solver','sedumi'),w); |
---|
| 32 | double(x) |
---|
| 33 | |
---|
| 34 | |
---|
| 35 | |
---|
| 36 | % By hand |
---|
| 37 | sdpvar t |
---|
| 38 | uu{1} = 0.3; |
---|
| 39 | vv{1} = 0.3; |
---|
| 40 | uu{2} = -0.3; |
---|
| 41 | vv{2} = 0.3; |
---|
| 42 | uu{3} = 0.3; |
---|
| 43 | vv{3} = -0.3; |
---|
| 44 | uu{4} = -0.3; |
---|
| 45 | vv{4} = -0.3; |
---|
| 46 | F = set([]); |
---|
| 47 | for i = 1:4 |
---|
| 48 | F = F + set([-9 -2+5*uu{i}+vv{i};3 -2;uu{i} 1-vv{i};0 1]*x < [4;1-vv{i};9;6]); |
---|
| 49 | F = F + set([6-uu{1} -7-uu{1}+vv{1}*8]*x < t); |
---|
| 50 | end |
---|
| 51 | solvesdp(F,t) |
---|
| 52 | double(x) |
---|
| 53 | |
---|
Note: See
TracBrowser
for help on using the repository browser.