Line | |
---|
1 | function micp |
---|
2 | |
---|
3 | |
---|
4 | Loc_n=4; |
---|
5 | Sen_n=3; |
---|
6 | Nvar=Loc_n*Sen_n; %Variable number |
---|
7 | |
---|
8 | %Constants |
---|
9 | C=[1 1;1 0;0 1;0 1]; |
---|
10 | s1=5.0693; |
---|
11 | s4=3.8259; |
---|
12 | Cov_M=[1.501 0.523 0.978 0.978; 3.002 1.046 1.956 1.956; 4.503 1.569 2.934 2.934]'; |
---|
13 | Z=[2500 1500 800]; %$,cost |
---|
14 | |
---|
15 | %variable claim |
---|
16 | X=binvar(Nvar,1); % [q11 q12 q13 q21 q22 q23 q31 q32 q33 q41 q42 q43] |
---|
17 | |
---|
18 | %Constraints (LMIs) |
---|
19 | |
---|
20 | for i=1:Loc_n |
---|
21 | k=3*i-2; |
---|
22 | Xigma_inv(i,i)=1./Cov_M(i,:).^2*X(k:k+2); |
---|
23 | end |
---|
24 | |
---|
25 | P1(2:3,2:3)=C'*Xigma_inv*C; |
---|
26 | P1(1,1)=s1; |
---|
27 | P1(1,2:3)=C(1,:); |
---|
28 | P1(2:3,1)=C(1,:)'; |
---|
29 | |
---|
30 | P2=P1; |
---|
31 | P2(1,1)=s4; |
---|
32 | P2(1,2:3)=C(4,:); |
---|
33 | P2(2:3,1)=C(4,:)'; |
---|
34 | |
---|
35 | P3(1,1)=1-sum(X(1:3)); |
---|
36 | P3(2,2)=1-sum(X(4:6)); |
---|
37 | P3(3,3)=1-sum(X(7:9)); |
---|
38 | P3(4,4)=1-sum(X(10:12)); |
---|
39 | |
---|
40 | |
---|
41 | F=set(P1>0)+set(P2>0)+set(diag(P3)>=0); |
---|
42 | |
---|
43 | %Objective |
---|
44 | cc=zeros(1,Nvar); |
---|
45 | cc(1:Sen_n)=Z; |
---|
46 | cc(Sen_n+1:2*Sen_n)=Z; |
---|
47 | cc(2*Sen_n+1:3*Sen_n)=Z; |
---|
48 | cc(3*Sen_n+1:end)=Z; |
---|
49 | |
---|
50 | obj=cc*X; |
---|
51 | |
---|
52 | sol = solvesdp(F,obj); |
---|
53 | |
---|
54 | mbg_asserttolequal(sol.problem,0); |
---|
55 | mbg_asserttolequal(double(obj), 3000, 1e-5); |
---|
56 | |
---|
Note: See
TracBrowser
for help on using the repository browser.