n = 20;
x = binvar(n,1); % x is the binary variable vector
Q = [Q2(x)] - eps*eye(2*n);
% Q2(x) is some matrix related to x that I would like it to be positive definite
% eps is a small positive number ranging from say 0.0001~0.001
F = set( Q > 0 ); % set Q to be p.d.
F = F + set(sum(x)<=k); % set the number of non-zero entries of x to be smaller than some integer k
ops = sdpsettings();
ops.verbose = 1;
ops.bnb.maxiter = 1000;
ops.savesolveroutput = 1;
info = solvesdp(F, -f'*x,ops); % my objective is to max_x f'x s.t. the positive definite constraint
* Starting YALMIP integer branch & bound.* Lower solver : PENSDP-TOMLAB* Upper solver : rounder* Max iterations : 1000 Node Upper Gap(%) Lower Open 1 : -2.436E+00 59.64 -9.639E+00 2 Successfully solved 2 : -2.436E+00 59.64 -9.639E+00 3 Successfully solved 3 : -2.436E+00 59.64 -9.639E+00 4 Successfully solved 4 : -2.436E+00 59.64 -9.639E+00 5 Successfully solved 5 : -2.436E+00 59.64 -9.637E+00 6 Successfully solved 6 : -2.436E+00 59.64 -9.637E+00 7 Successfully solved 7 : -2.436E+00 59.61 -9.630E+00 8 Successfully solved 8 : -2.436E+00 59.61 -9.630E+00 9 Successfully solved 9 : -2.436E+00 59.61 -9.629E+00 10 Successfully solved 10 : -2.436E+00 59.61 -9.629E+00 11 Successfully solved 11 : -2.436E+00 59.58 -9.621E+00 12 Successfully solved 12 : -2.436E+00 59.58 -9.621E+00 13 Successfully solved 13 : -2.436E+00 59.58 -9.621E+00 14 Successfully solved 14 : -2.436E+00 59.58 -9.621E+00 15 Successfully solved 15 : -2.436E+00 59.55 -9.612E+00 16 Successfully solved 16 : -3.666E+00 44.78 -9.612E+00 17 Successfully solved 17 : -3.666E+00 44.58 -9.564E+00 18 Successfully solved 18 : -3.666E+00 44.58 -9.564E+00 19 Successfully solved 19 : -5.447E+00 27.40 -9.559E+00 20 Successfully solved 20 : -5.447E+00 27.40 -9.559E+00 21 Successfully solved 21 : -5.447E+00 26.59 -9.394E+00 22 Successfully solved 22 : -5.447E+00 26.59 -9.394E+00 23 Successfully solved 23 : -5.447E+00 26.47 -9.369E+00 24 Successfully solved 24 : -5.447E+00 26.47 -9.369E+00 25 Successfully solved 25 : -5.447E+00 26.40 -9.356E+00 26 Successfully solved 26 : -5.447E+00 26.40 -9.356E+00 27 Successfully solved 27 : -5.447E+00 26.36 -9.347E+00 28 Successfully solved 28 : -5.447E+00 26.36 -9.347E+00 29 Successfully solved 29 : -5.447E+00 26.35 -9.346E+00 30 Successfully solved 30 : -5.447E+00 26.35 -9.346E+00 31 Successfully solved 31 : -5.447E+00 26.33 -9.342E+00 32 Successfully solved 32 : -5.447E+00 26.33 -9.342E+00 33 Successfully solved 33 : -5.447E+00 26.33 -9.341E+00 34 Successfully solved 34 : -5.447E+00 26.33 -9.341E+00 35 Successfully solved 35 : -5.447E+00 26.30 -9.336E+00 36 Successfully solved 36 : -5.447E+00 26.30 -9.336E+00 37 Successfully solved 37 : -5.447E+00 26.29 -9.334E+00 38 Successfully solved 38 : -5.447E+00 26.29 -9.334E+00 39 Successfully solved 39 : -5.447E+00 26.29 -9.333E+00 40 Successfully solved 40 : -5.447E+00 26.29 -9.333E+00 41 Successfully solved 41 : -5.447E+00 26.28 -9.330E+00 42 Successfully solved 42 : -5.447E+00 26.28 -9.330E+00 43 Successfully solved 43 : -5.447E+00 26.26 -9.326E+00 44 Successfully solved 44 : -5.447E+00 26.26 -9.326E+00 45 Successfully solved 45 : -5.447E+00 26.26 -9.326E+00 46 Successfully solved 46 : -5.447E+00 26.26 -9.326E+00 47 Successfully solved 47 : -5.447E+00 26.22 -9.319E+00 48 Successfully solved 48 : -5.447E+00 27.69 -9.620E+00 49 Maximum iterations or time limit exceeded 49 : -5.447E+00 27.69 -9.620E+00 50 Maximum iterations or time limit exceeded 50 : -5.447E+00 26.97 -9.470E+00 51 Maximum iterations or time limit exceeded 51 : -9.651E+00 0.00 -9.651E+00 0 Maximum iterations or time limit exceeded + 51 Finishing. Cost: -9.6512
info.problem = 0
* Starting YALMIP integer branch & bound.* Lower solver : PENSDP-TOMLAB* Upper solver : rounder* Max iterations : 1000 Node Upper Gap(%) Lower Open 1 : -1.404E+00 52.58 -4.518E+00 2 Successfully solved 2 : -1.404E+00 52.58 -4.518E+00 3 Successfully solved 3 : -1.404E+00 52.58 -4.518E+00 4 Successfully solved 4 : -1.404E+00 52.58 -4.518E+00 5 Successfully solved 5 : -4.518E+00 0.00 -4.518E+00 2 Successfully solved + 5 Finishing. Cost: -4.5177
Maximum iterations or time limit exceeded
is the message the lower bound solver (pensdp) returned when solving the relaxation. This message means you should be careful about drawing too strong conclusions about the lower bound, since the lower bound computation has had problems
* Starting YALMIP integer branch & bound.
* Lower solver : MOSEK-SDP
* Upper solver : rounder* Max iterations : 1000 Node Upper Gap(%) Lower Open
1 : 0.000E+00 99.99 -1.225E+01 2 Successfully solved 2 : 0.000E+00 99.99 -1.225E+01 3 Successfully solved 3 : -7.890E-01 87.89 -1.225E+01 4 Successfully solved 4 : -7.890E-01 87.89 -1.225E+01 5 Successfully solved 5 : -7.890E-01 87.89 -1.225E+01 6 Successfully solved 6 : -7.890E-01 87.89 -1.225E+01 7 Successfully solved 7 : -7.890E-01 87.89 -1.225E+01 8 Successfully solved 8 : -7.890E-01 87.89 -1.225E+01 9 Successfully solved 9 : -7.890E-01 87.89 -1.225E+01 10 Successfully solved 10 : -7.890E-01 87.89 -1.225E+01 11 Successfully solved 11 : -7.890E-01 87.89 -1.225E+01 12 Successfully solved 12 : -7.890E-01 87.89 -1.225E+01 13 Successfully solved 13 : -7.890E-01 87.89 -1.225E+01 14 Successfully solved 14 : -7.890E-01 87.89 -1.225E+01 15 Successfully solved 15 : -7.890E-01 87.89 -1.225E+01 16 Successfully solved 16 : -7.890E-01 87.89 -1.225E+01 17 Successfully solved 17 : -7.890E-01 87.89 -1.225E+01 18 Successfully solved 18 : -7.890E-01 87.89 -1.225E+01 19 Successfully solved 19 : -7.890E-01 87.89 -1.225E+01 20 Successfully solved 20 : -7.890E-01 87.89 -1.225E+01 21 Successfully solved 21 : -7.890E-01 87.89 -1.225E+01 22 Successfully solved 22 : -7.890E-01 87.89 -1.225E+01 23 Successfully solved 23 : -7.890E-01 87.89 -1.225E+01 24 Successfully solved 24 : -7.890E-01 87.89 -1.225E+01 25 Successfully solved 25 : -7.890E-01 87.89 -1.225E+01 26 Successfully solved 26 : -1.225E+01 0.00 -1.225E+01 1 Successfully solved + 26 Finishing. Cost: -12.2467
% info.problem
ans =
0
% smallest eigenvalueans =
-1.0000e-05
ops = sdpsettings('bnb.inttol',1e-6);
ops.bnb.inttol = 1e-6;
* Starting YALMIP integer branch & bound.* Lower solver : MOSEK-SDP* Upper solver : rounder* Max iterations : 1000 Node Upper Gap(%) Lower Open
1 : 0.000E+00 99.99 -1.224E+01 2 Successfully solved 2 : 0.000E+00 99.99 -1.224E+01 3 Successfully solved 3 : -7.890E-01 87.89 -1.224E+01 4 Successfully solved 4 : -7.890E-01 87.89 -1.224E+01 5 Successfully solved 5 : -7.890E-01 87.89 -1.224E+01 6 Successfully solved 6 : -7.890E-01 87.89 -1.224E+01 7 Successfully solved 7 : -7.890E-01 87.89 -1.224E+01 8 Successfully solved 8 : -7.890E-01 87.89 -1.224E+01 9 Successfully solved 9 : -7.890E-01 87.88 -1.224E+01 10 Successfully solved 10 : -7.890E-01 87.88 -1.224E+01 11 Successfully solved 11 : -7.890E-01 87.88 -1.224E+01 12 Successfully solved 12 : -7.890E-01 87.88 -1.224E+01 13 Successfully solved 13 : -7.890E-01 87.88 -1.224E+01 14 Successfully solved 14 : -7.890E-01 87.88 -1.224E+01 15 Successfully solved 15 : -7.890E-01 87.88 -1.224E+01 16 Successfully solved 16 : -7.890E-01 87.88 -1.224E+01 17 Successfully solved 17 : -7.890E-01 87.88 -1.224E+01 18 Successfully solved 18 : -7.890E-01 87.88 -1.224E+01 19 Successfully solved 19 : -7.890E-01 87.88 -1.224E+01 20 Successfully solved 20 : -7.890E-01 87.88 -1.224E+01 21 Successfully solved 21 : -7.890E-01 87.88 -1.224E+01 22 Successfully solved 22 : -7.890E-01 87.88 -1.224E+01 23 Successfully solved 23 : -7.890E-01 87.88 -1.224E+01 24 Successfully solved 24 : -7.890E-01 87.88 -1.224E+01 25 Successfully solved 25 : -7.890E-01 87.88 -1.224E+01 26 Successfully solved 26 : -7.890E-01 87.88 -1.224E+01 27 Successfully solved 27 : -7.890E-01 87.88 -1.224E+01 28 Successfully solved 28 : -2.026E+00 71.59 -1.224E+01 29 Successfully solved 29 : -2.026E+00 71.59 -1.224E+01 30 Successfully solved 30 : -4.341E+00 47.65 -1.224E+01 31 Successfully solved 31 : -4.341E+00 47.63 -1.224E+01 32 Successfully solved 32 : -4.341E+00 47.63 -1.224E+01 33 Successfully solved 33 : -4.341E+00 47.62 -1.223E+01 34 Successfully solved 34 : -4.341E+00 47.62 -1.223E+01 35 Successfully solved 35 : -4.341E+00 47.62 -1.223E+01 36 Successfully solved 36 : -4.341E+00 47.62 -1.223E+01 37 Successfully solved 37 : -4.341E+00 47.61 -1.223E+01 38 Successfully solved 38 : -4.341E+00 47.61 -1.223E+01 39 Successfully solved 39 : -4.341E+00 47.50 -1.220E+01 40 Successfully solved 40 : -4.341E+00 47.50 -1.220E+01 41 Successfully solved 41 : -4.341E+00 47.35 -1.215E+01 42 Successfully solved 42 : -4.341E+00 47.35 -1.215E+01 41 Infeasible problem 43 : -4.341E+00 47.22 -1.211E+01 40 Infeasible problem 44 : -4.341E+00 47.22 -1.211E+01 41 Successfully solved 45 : -4.341E+00 47.22 -1.211E+01 42 Successfully solved 46 : -4.341E+00 47.22 -1.211E+01 43 Successfully solved 47 : -4.341E+00 47.22 -1.211E+01 44 Successfully solved 48 : -4.341E+00 47.22 -1.211E+01 45 Successfully solved 49 : -4.341E+00 47.22 -1.211E+01 46 Successfully solved 50 : -4.341E+00 47.22 -1.211E+01 47 Successfully solved 51 : -4.341E+00 47.22 -1.211E+01 48 Successfully solved 52 : -4.341E+00 47.22 -1.211E+01 49 Successfully solved 53 : -4.341E+00 47.22 -1.211E+01 50 Successfully solved 54 : -4.341E+00 47.22 -1.211E+01 51 Successfully solved 55 : -4.341E+00 47.22 -1.211E+01 52 Successfully solved 56 : -4.341E+00 47.22 -1.211E+01 53 Successfully solved 57 : -4.341E+00 47.22 -1.211E+01 54 Successfully solved 58 : -4.341E+00 47.22 -1.211E+01 55 Successfully solved 59 : -4.341E+00 47.22 -1.211E+01 56 Successfully solved 60 : -4.341E+00 47.22 -1.211E+01 57 Successfully solved 61 : -4.341E+00 47.22 -1.211E+01 58 Successfully solved 62 : -4.341E+00 47.22 -1.211E+01 59 Successfully solved 63 : -4.341E+00 47.22 -1.211E+01 60 Successfully solved 64 : -4.341E+00 47.22 -1.211E+01 61 Successfully solved 65 : -4.341E+00 47.22 -1.211E+01 62 Successfully solved 66 : -4.341E+00 47.22 -1.211E+01 63 Successfully solved 67 : -4.341E+00 47.21 -1.211E+01 64 Successfully solved 68 : -4.341E+00 47.21 -1.211E+01 65 Successfully solved 69 : -4.341E+00 47.21 -1.211E+01 66 Successfully solved 70 : -4.341E+00 47.21 -1.211E+01 67 Successfully solved 71 : -4.341E+00 47.19 -1.210E+01 68 Successfully solved 72 : -4.341E+00 47.19 -1.210E+01 69 Successfully solved 73 : -4.341E+00 47.19 -1.210E+01 70 Successfully solved 74 : -4.341E+00 47.19 -1.210E+01 71 Successfully solved 75 : -4.341E+00 47.17 -1.209E+01 72 Successfully solved 76 : -4.341E+00 47.17 -1.209E+01 73 Successfully solved 77 : -4.341E+00 47.17 -1.209E+01 74 Successfully solved 78 : -4.341E+00 47.17 -1.209E+01 75 Successfully solved 79 : -4.341E+00 47.08 -1.206E+01 76 Successfully solved 80 : -4.341E+00 47.08 -1.206E+01 77 Successfully solved 81 : -4.341E+00 47.07 -1.206E+01 78 Successfully solved 82 : -4.341E+00 47.07 -1.206E+01 79 Successfully solved 83 : -4.341E+00 47.06 -1.206E+01 80 Successfully solved 84 : -4.341E+00 47.06 -1.206E+01 81 Successfully solved 85 : -4.341E+00 47.06 -1.206E+01 82 Successfully solved 86 : -4.341E+00 47.06 -1.206E+01 83 Successfully solved 87 : -4.341E+00 47.05 -1.206E+01 84 Successfully solved 88 : -4.341E+00 47.05 -1.206E+01 85 Successfully solved 89 : -4.341E+00 47.04 -1.205E+01 86 Successfully solved 90 : -4.341E+00 47.04 -1.205E+01 87 Successfully solved 91 : -4.341E+00 47.04 -1.205E+01 88 Successfully solved 92 : -4.341E+00 47.04 -1.205E+01 89 Successfully solved 93 : -4.341E+00 47.03 -1.205E+01 90 Successfully solved 94 : -4.341E+00 47.03 -1.205E+01 91 Successfully solved 95 : -4.341E+00 47.03 -1.205E+01 92 Successfully solved 96 : -4.341E+00 47.03 -1.205E+01 93 Successfully solved 97 : -4.341E+00 47.02 -1.205E+01 94 Successfully solved 98 : -4.341E+00 47.02 -1.205E+01 95 Successfully solved 99 : -4.341E+00 47.02 -1.205E+01 96 Successfully solved 100 : -4.341E+00 47.02 -1.205E+01 97 Successfully solved 101 : -4.341E+00 47.01 -1.204E+01 98 Successfully solved 102 : -4.341E+00 47.01 -1.204E+01 99 Successfully solved 103 : -4.341E+00 47.00 -1.204E+01 100 Successfully solved 104 : -4.341E+00 47.00 -1.204E+01 101 Successfully solved 105 : -4.341E+00 47.00 -1.204E+01 102 Successfully solved 106 : -4.341E+00 47.00 -1.204E+01 103 Successfully solved 107 : -4.341E+00 47.00 -1.204E+01 104 Successfully solved 108 : -4.341E+00 47.00 -1.204E+01 105 Successfully solved 109 : -4.341E+00 47.00 -1.204E+01 106 Successfully solved 110 : -4.341E+00 47.00 -1.204E+01 107 Successfully solved 111 : -4.341E+00 46.99 -1.204E+01 108 Successfully solved 112 : -4.341E+00 46.99 -1.204E+01 109 Successfully solved 113 : -4.341E+00 46.99 -1.204E+01 110 Successfully solved 114 : -4.341E+00 46.99 -1.204E+01 111 Successfully solved 115 : -4.341E+00 46.99 -1.204E+01 112 Successfully solved 116 : -4.341E+00 46.99 -1.204E+01 113 Successfully solved 117 : -4.341E+00 46.99 -1.204E+01 114 Successfully solved 118 : -4.341E+00 46.99 -1.204E+01 115 Successfully solved 119 : -4.341E+00 46.99 -1.204E+01 116 Successfully solved 120 : -4.341E+00 46.99 -1.204E+01 117 Successfully solved 121 : -4.341E+00 46.98 -1.203E+01 118 Successfully solved 122 : -4.341E+00 46.98 -1.203E+01 119 Successfully solved 123 : -4.341E+00 46.98 -1.203E+01 120 Successfully solved 124 : -4.341E+00 46.98 -1.203E+01 121 Successfully solved 125 : -4.341E+00 46.97 -1.203E+01 122 Successfully solved 126 : -4.341E+00 46.97 -1.203E+01 123 Successfully solved 127 : -4.341E+00 46.97 -1.203E+01 124 Successfully solved 128 : -4.341E+00 46.97 -1.203E+01 125 Successfully solved 129 : -4.341E+00 46.97 -1.203E+01 126 Successfully solved 130 : -4.341E+00 46.97 -1.203E+01 127 Successfully solved 131 : -4.341E+00 46.97 -1.203E+01 128 Successfully solved 132 : -4.341E+00 46.97 -1.203E+01 129 Successfully solved 133 : -4.341E+00 46.97 -1.203E+01 130 Successfully solved 134 : -4.341E+00 46.97 -1.203E+01 131 Successfully solved 135 : -4.341E+00 46.96 -1.203E+01 132 Successfully solved 136 : -4.341E+00 46.96 -1.203E+01 133 Successfully solved 137 : -4.341E+00 46.95 -1.203E+01 134 Successfully solved 138 : -4.341E+00 46.95 -1.203E+01 135 Successfully solved 139 : -4.341E+00 46.94 -1.202E+01 136 Successfully solved 140 : -4.341E+00 46.94 -1.202E+01 137 Successfully solved 141 : -4.341E+00 46.88 -1.200E+01 138 Successfully solved 142 : -4.341E+00 46.88 -1.200E+01 137 Infeasible problem 143 : -4.341E+00 46.84 -1.199E+01 136 Infeasible problem 144 : -4.341E+00 46.84 -1.199E+01 137 Successfully solved 145 : -4.341E+00 46.84 -1.199E+01 138 Successfully solved 146 : -4.341E+00 46.84 -1.199E+01 139 Successfully solved 147 : -4.341E+00 46.84 -1.199E+01 140 Successfully solved 148 : -4.341E+00 46.84 -1.199E+01 141 Successfully solved 149 : -4.341E+00 46.81 -1.198E+01 142 Successfully solved 150 : -4.341E+00 46.81 -1.198E+01 143 Successfully solved 151 : -4.341E+00 46.79 -1.197E+01 144 Successfully solved 152 : -4.341E+00 46.79 -1.197E+01 145 Successfully solved 153 : -4.341E+00 46.77 -1.197E+01 146 Successfully solved 154 : -4.341E+00 46.77 -1.197E+01 147 Successfully solved 155 : -4.341E+00 46.76 -1.197E+01 148 Successfully solved 156 : -4.341E+00 46.76 -1.197E+01 149 Successfully solved 157 : -4.341E+00 46.74 -1.196E+01 150 Successfully solved 158 : -4.341E+00 46.74 -1.196E+01 149 Infeasible problem 159 : -4.341E+00 46.72 -1.195E+01 150 Successfully solved 160 : -4.341E+00 46.72 -1.195E+01 149 Infeasible problem 161 : -4.341E+00 46.54 -1.190E+01 148 Infeasible problem 162 : -4.341E+00 46.54 -1.190E+01 149 Successfully solved 163 : -4.341E+00 46.54 -1.190E+01 150 Successfully solved 164 : -Inf Inf -Inf 0 Unbounded objective function + 164 Finishing. Cost: -Inf
ans =
2
ans =
-1.0000e-04
if output.problem == 2 & ~isinf(lower)
% Solver must have made a mistake
output.problem = 1;
end
813 : -4.534E+00 43.42 -1.149E+01 712 Successfully solved 814 : -4.534E+00 43.42 -1.149E+01 713 Successfully solved 815 : -4.534E+00 43.42 -1.149E+01 714 Successfully solved 816 : -4.534E+00 43.42 -1.149E+01 715 Successfully solved 817 : -4.534E+00 43.41 -1.149E+01 716 Successfully solved 818 : -4.534E+00 43.41 -1.149E+01 717 Successfully solved 819 : -4.534E+00 43.41 -1.149E+01 718 Successfully solved 820 : -4.534E+00 43.41 -1.149E+01 719 Successfully solved 821 : -4.534E+00 43.41 -1.149E+01 720 Successfully solved 822 : -4.534E+00 43.41 -1.149E+01 721 Successfully solved 823 : -4.534E+00 43.41 -1.149E+01 722 Successfully solved 824 : -4.534E+00 43.41 -1.149E+01 723 Successfully solved 825 : -4.534E+00 43.41 -1.149E+01 724 Successfully solved 826 : -4.534E+00 43.41 -1.149E+01 725 Successfully solved 827 : -4.534E+00 43.40 -1.149E+01 726 Successfully solved 828 : -4.534E+00 43.40 -1.149E+01 725 Infeasible problem 829 : -4.534E+00 43.40 -1.149E+01 726 Successfully solved 830 : -4.534E+00 43.40 -1.149E+01 727 Successfully solved 831 : -4.534E+00 43.40 -1.149E+01 728 Successfully solved 832 : -4.534E+00 43.40 -1.149E+01 729 Successfully solved 833 : -4.534E+00 43.38 -1.148E+01 730 Successfully solved 834 : -4.534E+00 43.38 -1.148E+01 731 Successfully solved 835 : -4.534E+00 43.38 -1.148E+01 732 Successfully solved 836 : -4.534E+00 43.48 -1.151E+01 733 Unknown problem in solver (try using 'debug'-flag in sdpsettings) Reference to non-existent field 'sol'.
Error in callmosek>call_mosek_sdp (line 389)x = res.sol.itr.y;
Error in callmosek (line 28) [x,D_struc,problem,res,solvertime,prob] = call_mosek_sdp(interfacedata);
Error in bnb_solvelower (line 128) output = feval(lowersolver,p);
Error in bnb>branch_and_bound (line 605) output = bnb_solvelower(lowersolver,relaxed_p,upper+abs(upper)*1e-2+1e-4,lower);
Error in bnb (line 279)[x_min,solved_nodes,lower,upper,profile,diagnostics] = branch_and_bound(p,pss);
Error in solvesdp (line 355) eval(['output = ' solver.call '(interfacedata);']);
Error in MIP_SDP_Yuting_0520 (line 52)
info = solvesdp(F, -f'*x,ops);