source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/dev/tests-mbg/logic/test_logic_sat_2.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 2.4 KB
Line 
1function test_logic_sat_2
2
3randn('seed',12345);
4rand('seed',12345);
5
6A1 = randn(8,2);
7b1 = rand(8,1)*2-A1*[3;3];
8A2 = randn(8,2);
9b2 = rand(8,1)*2-A2*[-3;3];
10A3 = randn(8,2);
11b3 = rand(8,1)*2-A3*[3;-3];
12A4 = randn(8,2);
13b4 = rand(8,1)*2-A4*[-3;-3];
14
15binvar inp1 inp2 inp3 inp4
16F = set(inp1 | inp2 | inp3 | inp4);
17x = sdpvar(2,1);
18F = F + set(iff(inp1,A1*x < b1));
19F = F + set(iff(inp2,A2*x < b2));
20F = F + set(iff(inp3,A3*x < b3));
21F = F + set(iff(inp4,A4*x < b4));
22F = F + set(-100 < x < 100);
23sol = solvesdp(F,-x(2));
24mbg_asserttolequal(sol.problem,0);
25mbg_asserttolequal(double(x),[1.89084694511033   4.32311245145436]',1e-6);
26mbg_asserttolequal(double([inp1 inp2 inp3 inp4]),[0 0 0 1]);
27
28F = set(inp1 | inp2 | inp3 | inp4);
29F = F + set(inp1 == (A1*x < b1));
30F = F + set(inp2 == (A2*x < b2));
31F = F + set(inp3 == (A3*x < b3));
32F = F + set(inp4 == (A4*x < b4));
33F = F + set(-100 < x < 100);
34sol = solvesdp(F,-x(2));
35mbg_asserttolequal(sol.problem,0);
36mbg_asserttolequal(double(x),[1.89084694511033   4.32311245145436]',1e-6);
37mbg_asserttolequal(double([inp1 inp2 inp3 inp4]),[0 0 0 1]);
38
39F = set(inp1 | inp2 | inp3 | inp4);
40F = F + set(implies(inp1,A1*x < b1));
41F = F + set(implies(inp2,A2*x < b2));
42F = F + set(implies(inp3,A3*x < b3));
43F = F + set(implies(inp4,A4*x < b4));
44F = F + set(-100 < x < 100);
45sol = solvesdp(F,-x(2));
46mbg_asserttolequal(sol.problem,0);
47mbg_asserttolequal(double(x),[1.89084694511033   4.32311245145436]',1e-6);
48mbg_asserttolequal(double([inp1 inp2 inp3 inp4]),[0 0 0 1]);
49
50F = set( (A1*x < b1) | (A2*x < b2) | (A3*x < b3) | (A4*x < b4));
51F = F + set(-100 < x < 100);
52sol = solvesdp(F,-x(2));
53mbg_asserttolequal(sol.problem,0);
54mbg_asserttolequal(double(x),[1.89084694511033   4.32311245145436]',1e-6);
55mbg_asserttolequal(double([inp1 inp2 inp3 inp4]),[0 0 0 1]);
56
57x = sdpvar(2,1);
58bounds(x,-100,100);
59F = set( (A1*x < b1) | (A2*x < b2) | (A3*x < b3) | (A4*x < b4));
60F = F + set(-100 < x < 100);
61sol = solvesdp(F,-x(2));
62mbg_asserttolequal(sol.problem,0);
63mbg_asserttolequal(double(x),[1.89084694511033   4.32311245145436]',1e-6);
64mbg_asserttolequal(double([inp1 inp2 inp3 inp4]),[0 0 0 1]);
65
66ii = sdpvar(1,1);
67jj = sdpvar(1,1);
68x = sdpvar(1,8);
69p = [0 1 7 2 3 4 3 20];
70solvesdp(set(-100 < [x(:);ii;jj] < 100) + set(x == p)+set(x([ii jj]) <= 3)+set(ii~=jj),-ii-jj);
71mbg_asserttolequal(sol.problem,0);
72mbg_asserttolequal(min(double([ii jj])),[5]);
73mbg_asserttolequal(max(double([ii jj])),[7]);
74
75
Note: See TracBrowser for help on using the repository browser.