m = size(T,1);
Q = sdpvar(szP(1), szP(2), 'full');
t = sdpvar(1);
Objective = t;
dpsi = sdpvar(3, 3*m, 'full');
for i = 1:3
dpsi(:, i:3:(3*(m-1)+i)) = Q(:,T(:,i+1)) - Q(:,T(:,1)); % slow
end
if 0
J = sdpvar(3, 3*m, 'full');
for i = 0:m-1
j = (1:3)+3*i;
J(:,j) = dpsi(:,j) * dphii(:,j);
end
else
dpsi = mat2cell(dpsi, 3, 3*ones(1,m)); % slow
dphii = mat2cell(dphii, 3, 3*ones(1,m));
J = cellfun(@mtimes, dpsi, dphii, 'uni', 0); % slow
J = [J{:}]; % slow
end
dd = J - Rs;
dd = reshape(dd, 9, m);
if ~isempty(Ceq)
eq_con = [Ceq * Q' == deq];
end
cones = [t * bt(bt==1)' kl(bt==0)'; dd(:,bt==1) dd(:,bt==0)];
Constraints = [eq_con; cone(cones)];
options = sdpsettings('verbose',2,'solver','cplex','savesolverinput',1,'debug',1,'showprogress',1);
sol = solvesdp(Constraints, Objective, options);
index1 = zeros(1,3*m);
index0 = zeros(1,3*m);
for i = 1:3
index1(i:3:(3*(m-1)+i))=T(:,i+1);
index0(i:3:(3*(m-1)+i))=T(:,1);
end
dpsi = Q(:,index1)-Q(:,index0);
[i,j,k] = find(dphii);i = i + 3*floor((j-1)/3);
S = sparse(i,j,k);
J = dpsi*S;
% This implements
% S = [];
% for i = 0:m-1
% j = (1:3)+3*i;
% S = blkdiag(S,sparse(dphii(:,j)));
% end
Presolved: 90 rows, 103 columns, 216 nonzeros
Presolved model has 12 second-order cone constraints
Ordering time: 0.00s
Barrier statistics:
Free vars : 12
AA' NZ : 8.100e+02
Factor NZ : 2.381e+03
Factor Ops : 7.321e+04 (less than 1 second per iteration)
tic; [Qres, success] = arap_Linf(Rs, P, Q, dphii, T, anc_id); toc;
Elapsed time is 10.765344 seconds.
24 6.0e-007 6.2e-011 1.0e-009 1.00e+000 -8.782900126e-001 -8.782900115e-001 6.0e-011 2.81
Interior-point optimizer terminated. Time: 2.81.
Optimizer terminated. Time: 2.89
Interior-point solution summary
Problem status : PRIMAL_AND_DUAL_FEASIBLE
Solution status : NEAR_OPTIMAL
Primal. obj: -8.7829001265e-001 Viol. con: 5e-007 var: 0e+000 cones: 0e+000
Dual. obj: -8.7829001147e-001 Viol. con: 0e+000 var: 5e-011 cones: 0e+000
prob.a(1+K.f+K.l:end,1:length(c)) = prob.a(1+K.f+K.l:end,1:length(c));
finished init
Elapsed time is 1.650960 seconds.
+ Solver chosen : MOSEK-SDP
+ Processing objective h(x)
+ Processing F(x)
+ Calling MOSEK
MOSEK Version 7.0.0.75 (Build date: 2013-7-1 14:54:58)
Copyright (c) 1998-2013 MOSEK ApS, Denmark. WWW: http://mosek.com
Computer
Platform : Windows/64-X86
Cores : 4
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 630061
Cones : 104358
Scalar variables : 1047492
Matrix variables : 0
Integer variables : 0
Optimizer started.
Conic interior-point optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Total number of eliminations : 3716
Eliminator terminated.
Eliminator started.
Total number of eliminations : 3717
Eliminator terminated.
Eliminator - tries : 2 time : 0.00
Eliminator - elim's : 3717
Lin. dep. - tries : 1 time : 0.67
Lin. dep. - number : 0
Presolve terminated. Time: 1.97
GP based matrix reordering started.
GP based matrix reordering terminated.
Optimizer - threads : 4
Optimizer - solved problem : the primal
Optimizer - Constraints : 104554
Optimizer - Cones : 104358
Optimizer - Scalar variables : 521986 conic : 521790
Optimizer - Semi-definite variables: 0 scalarized : 0
Factor - setup time : 5.63 dense det. time : 1.66
Factor - ML order time : 0.14 GP order time : 2.81
Factor - nonzeros before factor : 9.25e+005 after factor : 6.41e+006
Factor - dense dim. : 1 flops : 1.31e+009
Factor - GP saved nzs : 1.16e+006 GP saved flops : 8.58e+008
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 1.0e+005 1.0e+000 1.0e+000 0.00e+000 0.000000000e+000 0.000000000e+000 1.0e+000 7.86
1 5.3e+003 5.1e-002 5.1e-002 -9.99e-001 -3.687447512e+001 -1.844433904e+001 5.1e-002 8.42
2 3.5e+002 3.3e-003 3.3e-003 -7.95e-001 -1.402945955e+002 -8.070119303e+001 3.3e-003 8.89
3 1.6e+002 1.6e-003 1.6e-003 2.71e+000 -3.658494938e+001 -3.533229551e+001 1.6e-003 9.36
4 1.1e+002 1.0e-003 1.0e-003 5.80e+000 -1.258195797e+001 -1.174873587e+001 1.0e-003 9.81
5 2.0e+001 1.9e-004 1.9e-004 3.18e+000 -3.950322890e+000 -3.908683055e+000 1.9e-004 10.27
6 1.4e+001 1.4e-004 1.4e-004 4.79e+000 -1.909798765e+000 -1.882751319e+000 1.4e-004 10.75
7 1.0e+001 9.7e-005 9.7e-005 2.97e+000 -1.239889734e+000 -1.225816415e+000 9.7e-005 11.23
8 7.0e+000 6.7e-005 6.7e-005 2.25e+000 -9.445874766e-001 -9.370848004e-001 6.7e-005 11.70
9 5.0e+000 4.8e-005 4.8e-005 1.79e+000 -8.251338215e-001 -8.205109374e-001 4.8e-005 12.19
10 2.9e+000 2.8e-005 2.8e-005 1.47e+000 -7.577202960e-001 -7.552773175e-001 2.8e-005 12.66
11 1.4e+000 1.3e-005 1.3e-005 1.18e+000 -7.373004139e-001 -7.363431170e-001 1.3e-005 13.13
12 5.9e-001 5.7e-006 5.7e-006 1.07e+000 -7.251031644e-001 -7.247424808e-001 5.7e-006 13.61
13 2.6e-001 2.5e-006 2.5e-006 1.02e+000 -7.205099114e-001 -7.203771484e-001 2.5e-006 14.09
14 1.1e-001 1.1e-006 1.1e-006 1.01e+000 -7.187494922e-001 -7.186985924e-001 1.1e-006 14.56
15 4.4e-002 4.2e-007 4.2e-007 1.00e+000 -7.180203201e-001 -7.180034067e-001 4.2e-007 15.03
16 2.0e-002 1.9e-007 1.9e-007 1.00e+000 -7.177960491e-001 -7.177896829e-001 1.9e-007 15.53
17 1.0e-002 9.7e-008 9.7e-008 1.00e+000 -7.177162770e-001 -7.177134632e-001 9.7e-008 16.02
18 4.8e-003 4.6e-008 4.6e-008 1.00e+000 -7.176759040e-001 -7.176748063e-001 4.6e-008 16.47
19 2.5e-003 2.4e-008 2.4e-008 1.00e+000 -7.176602821e-001 -7.176597440e-001 2.4e-008 16.94
20 9.8e-004 9.4e-009 9.4e-009 1.00e+000 -7.176500354e-001 -7.176498695e-001 9.4e-009 17.39
21 5.7e-004 5.5e-009 5.5e-009 1.00e+000 -7.176475422e-001 -7.176474510e-001 5.5e-009 17.86
22 2.3e-004 2.2e-009 2.2e-009 1.00e+000 -7.176454554e-001 -7.176454248e-001 2.2e-009 18.33
23 1.0e-004 9.7e-010 1.0e-009 1.00e+000 -7.176446758e-001 -7.176446649e-001 9.7e-010 18.80
24 5.2e-005 5.0e-010 6.0e-010 1.00e+000 -7.176444002e-001 -7.176443957e-001 4.9e-010 19.28
25 2.3e-005 2.3e-010 4.4e-011 1.00e+000 -7.176442517e-001 -7.176442498e-001 2.2e-010 19.98
26 7.9e-006 7.6e-011 9.4e-010 1.00e+000 -7.176441717e-001 -7.176441706e-001 7.5e-011 20.47
27 2.0e-006 2.0e-011 6.5e-010 1.00e+000 -7.176441430e-001 -7.176441425e-001 1.9e-011 20.98
28 6.8e-007 8.3e-012 2.4e-009 1.00e+000 -7.176441347e-001 -7.176441364e-001 6.4e-012 21.45
29 2.7e-007 3.5e-012 1.8e-008 1.00e+000 -7.176441476e-001 -7.176441346e-001 2.5e-012 22.19
30 2.7e-007 3.5e-012 1.8e-008 1.00e+000 -7.176441476e-001 -7.176441346e-001 2.5e-012 22.97
Interior-point optimizer terminated. Time: 22.97.
Optimizer terminated. Time: 23.45
Interior-point solution summary
Problem status : PRIMAL_AND_DUAL_FEASIBLE
Solution status : NEAR_OPTIMAL
Primal. obj: -7.1764414764e-001 Viol. con: 6e-006 var: 0e+000 cones: 0e+000
Dual. obj: -7.1764413460e-001 Viol. con: 0e+000 var: 3e-012 cones: 0e+000
Optimizer summary
Optimizer - time: 23.45
Interior-point - iterations : 30 time: 22.97
Basis identification - time: 0.00
Primal - iterations : 0 time: 0.00
Dual - iterations : 0 time: 0.00
Clean primal - iterations : 0 time: 0.00
Clean dual - iterations : 0 time: 0.00
Clean primal-dual - iterations : 0 time: 0.00
Simplex - time: 0.00
Primal simplex - iterations : 0 time: 0.00
Dual simplex - iterations : 0 time: 0.00
Primal-dual simplex - iterations : 0 time: 0.00
Mixed integer - relaxations: 0 time: 0.00
Mosek error: MSK_RES_TRM_STALL ()
>>
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 630061
Cones : 104358
Scalar variables : 1047492
Matrix variables : 0
Integer variables : 0
Optimizer started.
Conic interior-point optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Total number of eliminations : 108073
Eliminator terminated.
Eliminator started.
Total number of eliminations : 108074
Eliminator terminated.
Eliminator - tries : 2 time : 0.00
Eliminator - elim's : 108074
Lin. dep. - tries : 1 time : 1.29
Lin. dep. - number : 0
Presolve terminated. Time: 118.08
load mosekdebug
[res,sol] = mosekopt('minimize info',prob,param);
>> cd \8
>> load mosekdebug
[res,sol] = mosekopt('minimize info',prob,param);
MOSEK Version 7.0.0.75 (Build date: 2013-7-1 14:54:58)
Copyright (c) 1998-2013 MOSEK ApS, Denmark. WWW: http://mosek.com
Computer
Platform : Windows/64-X86
Cores : 4
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 630061
Cones : 104358
Scalar variables : 1047492
Matrix variables : 0
Integer variables : 0
Optimizer started.
Conic interior-point optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Total number of eliminations : 3716
Eliminator terminated.
Eliminator started.
Total number of eliminations : 3717
Eliminator terminated.
Eliminator - tries : 2 time : 0.00
Eliminator - elim's : 3717
Lin. dep. - tries : 1 time : 0.69
Lin. dep. - number : 0
Presolve terminated. Time: 2.03
GP based matrix reordering started.
GP based matrix reordering terminated.
Optimizer - threads : 4
Optimizer - solved problem : the primal
Optimizer - Constraints : 104554
Optimizer - Cones : 104358
Optimizer - Scalar variables : 521986 conic : 521790
Optimizer - Semi-definite variables: 0 scalarized : 0
Factor - setup time : 5.64 dense det. time : 1.73
Factor - ML order time : 0.16 GP order time : 2.78
Factor - nonzeros before factor : 9.25e+005 after factor : 6.41e+006
Factor - dense dim. : 1 flops : 1.31e+009
Factor - GP saved nzs : 1.16e+006 GP saved flops : 8.58e+008
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 1.0e+005 1.0e+000 1.0e+000 0.00e+000 0.000000000e+000 0.000000000e+000 1.0e+000 7.94
1 5.3e+003 5.1e-002 5.1e-002 -9.99e-001 -3.687447512e+001 -1.844433904e+001 5.1e-002 8.59
2 3.5e+002 3.3e-003 3.3e-003 -7.95e-001 -1.402945955e+002 -8.070119303e+001 3.3e-003 9.06
3 1.6e+002 1.6e-003 1.6e-003 2.71e+000 -3.658494938e+001 -3.533229551e+001 1.6e-003 9.50
4 1.1e+002 1.0e-003 1.0e-003 5.80e+000 -1.258195797e+001 -1.174873587e+001 1.0e-003 9.94
5 2.0e+001 1.9e-004 1.9e-004 3.18e+000 -3.950322890e+000 -3.908683055e+000 1.9e-004 10.38
6 1.4e+001 1.4e-004 1.4e-004 4.79e+000 -1.909798765e+000 -1.882751319e+000 1.4e-004 10.83
7 1.0e+001 9.7e-005 9.7e-005 2.97e+000 -1.239889734e+000 -1.225816415e+000 9.7e-005 11.27
8 7.0e+000 6.7e-005 6.7e-005 2.25e+000 -9.445874766e-001 -9.370848004e-001 6.7e-005 11.72
9 5.0e+000 4.8e-005 4.8e-005 1.79e+000 -8.251338215e-001 -8.205109374e-001 4.8e-005 12.19
10 2.9e+000 2.8e-005 2.8e-005 1.47e+000 -7.577202960e-001 -7.552773175e-001 2.8e-005 12.64
11 1.4e+000 1.3e-005 1.3e-005 1.18e+000 -7.373004139e-001 -7.363431170e-001 1.3e-005 13.09
12 5.9e-001 5.7e-006 5.7e-006 1.07e+000 -7.251031644e-001 -7.247424808e-001 5.7e-006 13.58
13 2.6e-001 2.5e-006 2.5e-006 1.02e+000 -7.205099114e-001 -7.203771484e-001 2.5e-006 14.03
14 1.1e-001 1.1e-006 1.1e-006 1.01e+000 -7.187494922e-001 -7.186985924e-001 1.1e-006 14.47
15 4.4e-002 4.2e-007 4.2e-007 1.00e+000 -7.180203201e-001 -7.180034067e-001 4.2e-007 14.91
16 2.0e-002 1.9e-007 1.9e-007 1.00e+000 -7.177960491e-001 -7.177896829e-001 1.9e-007 15.34
17 1.0e-002 9.7e-008 9.7e-008 1.00e+000 -7.177162770e-001 -7.177134632e-001 9.7e-008 15.80
18 4.8e-003 4.6e-008 4.6e-008 1.00e+000 -7.176759040e-001 -7.176748063e-001 4.6e-008 16.23
19 2.5e-003 2.4e-008 2.4e-008 1.00e+000 -7.176602821e-001 -7.176597440e-001 2.4e-008 16.67
20 9.8e-004 9.4e-009 9.4e-009 1.00e+000 -7.176500354e-001 -7.176498695e-001 9.4e-009 17.11
21 5.7e-004 5.5e-009 5.5e-009 1.00e+000 -7.176475422e-001 -7.176474510e-001 5.5e-009 17.55
22 2.3e-004 2.2e-009 2.2e-009 1.00e+000 -7.176454554e-001 -7.176454248e-001 2.2e-009 17.98
23 1.0e-004 9.7e-010 1.0e-009 1.00e+000 -7.176446758e-001 -7.176446649e-001 9.7e-010 18.44
24 5.2e-005 5.0e-010 6.0e-010 1.00e+000 -7.176444002e-001 -7.176443957e-001 4.9e-010 18.89
25 2.3e-005 2.3e-010 4.4e-011 1.00e+000 -7.176442517e-001 -7.176442498e-001 2.2e-010 19.56
26 7.9e-006 7.6e-011 9.4e-010 1.00e+000 -7.176441717e-001 -7.176441706e-001 7.5e-011 20.03
27 2.0e-006 2.0e-011 6.5e-010 1.00e+000 -7.176441430e-001 -7.176441425e-001 1.9e-011 20.47
28 6.8e-007 8.3e-012 2.4e-009 1.00e+000 -7.176441347e-001 -7.176441364e-001 6.4e-012 20.91
29 2.7e-007 3.5e-012 1.8e-008 1.00e+000 -7.176441476e-001 -7.176441346e-001 2.5e-012 21.56
30 2.7e-007 3.5e-012 1.8e-008 1.00e+000 -7.176441476e-001 -7.176441346e-001 2.5e-012 22.31
Interior-point optimizer terminated. Time: 22.31.
Optimizer terminated. Time: 22.91
Interior-point solution summary
Problem status : PRIMAL_AND_DUAL_FEASIBLE
Solution status : NEAR_OPTIMAL
Primal. obj: -7.1764414764e-001 Viol. con: 6e-006 var: 0e+000 cones: 0e+000
Dual. obj: -7.1764413460e-001 Viol. con: 0e+000 var: 3e-012 cones: 0e+000
Optimizer summary
Optimizer - time: 22.91
Interior-point - iterations : 30 time: 22.31