大規模最適化問題、グラフ探索、機械学習やデジタルツインなど

旧名:最適化問題に対する超高速&安定計算

SDPA のチェックポイント

SDPA のチェックポイントについて

1: 途中で一旦止める
[fujisawa@opt-cps sdpa.7.4.3]$ time ./sdpa -ds ~/data/sdplib/theta6.dat-s -o out1 -p param.sdpa -k 12.0
SDPA start at [Mon Oct 5 22:17:41 2020]
Kappa = 12 :: line 135 in sdpa_exe.cpp
param is param.sdpa
data is /home/fujisawa/data/sdplib/theta6.dat-s : sparse
out is out1
NumThreads is set as 26
Schur computation : DENSE
mu thetaP thetaD objP objD alphaP alphaD beta
0 1.0e+04 1.0e+00 1.0e+00 -0.00e+00 +3.00e+04 5.7e-01 7.3e-01 2.00e-01
1 3.2e+03 4.3e-01 2.7e-01 +8.21e+01 +1.39e+05 1.0e+00 7.0e-01 2.00e-01
2 1.4e+03 8.8e-18 8.3e-02 +1.79e+02 +1.53e+04 7.2e-01 7.2e-01 2.00e-01
3 5.2e+02 1.3e-17 2.3e-02 +2.26e+02 +1.56e+03 7.6e-01 7.6e-01 2.00e-01
4 1.6e+02 1.8e-17 5.5e-03 +2.93e+02 +1.59e+02 9.0e-01 9.0e-01 2.00e-01
5 2.3e+01 1.8e-17 5.6e-04 +3.94e+02 +1.97e+01 9.0e-01 9.0e-01 2.00e-01

phase.value = pFEAS
Iteration = 5
mu = +2.3307154574536728e+01
relative gap = +1.8091826752074878e+00
gap = +3.7431965625060070e+02
digits = -2.5748242027562024e-01
objValPrimal = +3.9405969588335938e+02
objValDual = +1.9740039632758698e+01
p.feas.error = +1.7763568394002505e-15
d.feas.error = +1.6793970013287723e+01
total time = 1.466430

2: 5反復目から再出発する
[fujisawa@opt-cps sdpa.7.4.3]$ time ./sdpa -ds ~/data/sdplib/theta6.dat-s -o out1 -p param.sdpa -k 12.0 -id ./sdpara.init
SDPA start at [Mon Oct 5 22:18:59 2020]
Kappa = 12 :: line 135 in sdpa_exe.cpp
param is param.sdpa
data is /home/fujisawa/data/sdplib/theta6.dat-s : sparse
init is ./sdpara.init : dense
out is out1
NumThreads is set as 26
Schur computation : DENSE
mu thetaP thetaD objP objD alphaP alphaD beta
0 2.3e+01 1.8e-17 5.6e-04 +3.94e+02 +1.97e+01 1.0e+00 9.5e-01 2.00e-01
1 3.1e+00 2.2e-13 5.0e-02 +5.04e+02 +2.53e+00 9.8e-01 1.0e+00 2.00e-01
2 8.6e-01 3.3e-13 5.3e-17 +2.60e+02 +2.80e+00 6.8e-01 1.3e+00 1.00e-01
3 2.9e-01 7.1e-12 6.6e-17 +1.15e+02 +2.81e+01 7.3e-01 9.8e-01 1.00e-01
4 8.2e-02 7.1e-12 6.6e-18 +7.42e+01 +4.97e+01 8.2e-01 7.9e-01 1.00e-01
5 2.3e-02 1.4e-11 2.6e-17 +6.59e+01 +5.91e+01 8.8e-01 8.8e-01 1.00e-01
6 4.8e-03 1.4e-11 2.6e-17 +6.39e+01 +6.24e+01 9.0e-01 9.2e-01 1.00e-01
7 8.5e-04 1.4e-11 4.0e-17 +6.35e+01 +6.33e+01 9.1e-01 9.4e-01 1.00e-01
8 1.3e-04 1.4e-11 4.0e-17 +6.35e+01 +6.34e+01 9.1e-01 9.5e-01 1.00e-01
9 2.0e-05 1.4e-11 7.3e-17 +6.35e+01 +6.35e+01 9.2e-01 9.5e-01 1.00e-01
10 3.1e-06 1.4e-11 2.9e-18 +6.35e+01 +6.35e+01 9.3e-01 9.5e-01 1.00e-01
11 4.6e-07 1.4e-11 1.6e-16 +6.35e+01 +6.35e+01 9.5e-01 9.9e-01 1.00e-01
12 5.4e-08 1.4e-11 5.3e-16 +6.35e+01 +6.35e+01 9.6e-01 1.0e+00 1.00e-01
13 5.7e-09 1.4e-11 2.6e-15 +6.35e+01 +6.35e+01 9.6e-01 1.0e+00 1.00e-01

phase.value = pdOPT
Iteration = 13
mu = +5.7184832313872390e-09
relative gap = +2.7026284641941761e-08
gap = +1.7155498142074066e-06
digits = +7.5682136535394378e+00
objValPrimal = +6.3477087587819398e+01
objValDual = +6.3477085872269583e+01
p.feas.error = +2.8421709430404007e-14
d.feas.error = +4.2965631052993558e-14
total time = 3.870450

3: 参考:途中で止めないで最後まで実行した場合
[fujisawa@opt-cps sdpa.7.4.3]$ time ./sdpa -ds ~/data/sdplib/theta6.dat-s -o out1 -p param.sdpa -k 12.0
SDPA start at [Mon Oct 5 22:19:58 2020]
Kappa = 12 :: line 135 in sdpa_exe.cpp
param is param.sdpa
data is /home/fujisawa/data/sdplib/theta6.dat-s : sparse
out is out1
NumThreads is set as 26
Schur computation : DENSE
mu thetaP thetaD objP objD alphaP alphaD beta
0 1.0e+04 1.0e+00 1.0e+00 -0.00e+00 +3.00e+04 5.7e-01 7.3e-01 2.00e-01
1 3.2e+03 4.3e-01 2.7e-01 +8.21e+01 +1.39e+05 1.0e+00 7.0e-01 2.00e-01
2 1.4e+03 8.8e-18 8.3e-02 +1.79e+02 +1.53e+04 7.2e-01 7.2e-01 2.00e-01
3 5.2e+02 1.3e-17 2.3e-02 +2.26e+02 +1.56e+03 7.6e-01 7.6e-01 2.00e-01
4 1.6e+02 1.8e-17 5.5e-03 +2.93e+02 +1.59e+02 9.0e-01 9.0e-01 2.00e-01
5 2.3e+01 1.8e-17 5.6e-04 +3.94e+02 +1.97e+01 9.5e-01 9.5e-01 2.00e-01
6 3.1e+00 1.8e-17 2.8e-05 +4.98e+02 +2.53e+00 9.7e-01 1.0e+00 2.00e-01
7 8.5e-01 5.6e-16 1.5e-20 +2.59e+02 +2.83e+00 6.8e-01 1.3e+00 1.00e-01
8 2.9e-01 5.6e-16 1.9e-20 +1.15e+02 +2.81e+01 7.3e-01 9.7e-01 1.00e-01
9 8.2e-02 4.2e-16 1.5e-20 +7.42e+01 +4.97e+01 8.4e-01 7.9e-01 1.00e-01
10 2.2e-02 4.2e-16 7.4e-21 +6.58e+01 +5.91e+01 8.8e-01 8.7e-01 1.00e-01
11 4.7e-03 4.2e-16 1.1e-20 +6.39e+01 +6.24e+01 9.0e-01 9.2e-01 1.00e-01
12 8.2e-04 4.2e-16 1.2e-21 +6.35e+01 +6.33e+01 9.1e-01 9.5e-01 1.00e-01
13 1.3e-04 4.2e-16 7.4e-21 +6.35e+01 +6.34e+01 9.1e-01 9.5e-01 1.00e-01
14 1.9e-05 4.2e-16 2.2e-20 +6.35e+01 +6.35e+01 9.2e-01 9.5e-01 1.00e-01
15 2.9e-06 4.2e-16 6.3e-20 +6.35e+01 +6.35e+01 9.3e-01 9.5e-01 1.00e-01
16 4.2e-07 4.2e-16 1.1e-19 +6.35e+01 +6.35e+01 9.5e-01 9.9e-01 1.00e-01
17 5.0e-08 4.2e-16 2.8e-19 +6.35e+01 +6.35e+01 9.6e-01 1.0e+00 1.00e-01
18 5.2e-09 4.2e-16 2.1e-18 +6.35e+01 +6.35e+01 9.6e-01 1.0e+00 1.00e-01

phase.value = pdOPT
Iteration = 18
mu = +5.2141967858225042e-09
relative gap = +2.4643033835421679e-08
gap = +1.5642679969118944e-06
digits = +7.6083058266669079e+00
objValPrimal = +6.3477087546647120e+01
objValDual = +6.3477085982379123e+01
p.feas.error = +4.2632564145606011e-14
d.feas.error = +6.1950444774083735e-14
total time = 4.935758