Line | |
---|
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.