9. Another De?nition of Closed Convex Cone
閉凸錐の定義として, 以下のようなものもある.
(以降では, 証明を簡単にするためにこの定義を用いる)
De?nition 2.2
閉集合 K ∈ Rn
が以下を満たすとき,
K を閉凸錐 (closed convex cone) とよぶ.
1. x ∈ K, α ∈ [0, ∞) ? αx ∈ K
2. x, y ∈ K ? x + y ∈ K
9
19. Dual Cone of K?
Theorem 2.2
閉凸錐 K ? Rn
に対して, (K?
)?
= K が成り立つ.
(i) K ? (K?
)?
(i.e., b ∈ K ? b ∈ (K?
)?
) を示す.
b ∈ K とする. K?
の定義より, 全ての y ∈ K?
に対して,
?y, b? = ?b, y? ≥ 0 より, b ∈ (K?
)?
(ii) K ? (K?
)?
(i.e., b /∈ K ? b /∈ (K?
)?
) を示す.
b ∈ Rn
K とする. 分離定理より, 全ての x ∈ K について,
?y, x? ≥ 0 かつ ?y, b? = ?b, y? < 0 となるベクトル y が存在する.
一つめの不等式より y ∈ K?
. また, 2 つめの不等式より b /∈ (K?
)?
.
19
20. Cone Linear Programming
K ? Rn
を閉凸錐とする.
このとき, 以下の非線形最適化問題を考える.
Minimize ?c, x? (4)
subject to ?ai, x? = bi (i = 1, . . . , m)
x ∈ K.
このように, 線形制約と錐制約のみをもち,
線形目的関数を最小化, または最大化する問題を
錐線計画問題 (cone linear programming problem) とよぶ.
20
21. Dual Problem
(4) の双対問題 (dual problem) を
Maximize b?
y (5)
subject to s +
m∑
i=1
yiai = c,
s ∈ K?
.
と定める. 双対問題に対し, (4) を主問題という.
21
39. Semide?nite Matrix Set
n × n 次実対称行列全体の集合を Sn とおく. 即ち,
Sn = {X ∈ Rn×n
| X?
= X}.
また, n 次半正定値対称行列全体の集合 Pn とする. 即ち,
Pn = {X ∈ Rn×n
| u?
Xu ≥ 0 (?u ∈ Rn
} ? Sn
また, X, Y ∈ Sn に対して, X と Y の内積 ? を
X ? Y =
n∑
i=1
n∑
j=1
Xi,jYi,j
と定義する.
39
40. Semide?nite Programming
今, Ai, C ∈ Sn と bi ∈ R (i = 1, . . . , m) が与えられたときに,
以下の最適化問題を考える.
Minimize C ? X (11)
subject to Ai ? X = bi (i = 1, . . . , m)
X ∈ Pn.
これを
半正定値計画問題 (semide?nite programming problem) という.
この問題は, 線形制約と錐制約のみをもち, 線形目的関数を最小化, もし
くは最大化する問題なので, 錐線形計画の一種である.
40
41. Dual of SDP
半正定値計画問題の双対問題を, 以下のように決める.
Maximize b?
y (12)
subject to S +
m∑
i=1
yiAi = C
S ∈ P?
n
実は, Pn は自己双対錐である. 即ち, P?
n = Pn.
41
42. Dual Cone of P?
n
Sn?1
= {x ∈ Rn
| ∥x∥ = 1} とする.
Pn が自己双対錐であることを示す前に, 以下の補題の結果を証明なし
に用いる.
Lemma 3.1
X ∈ Rn×n
とする. 以下の 2 つは同値である.
1. X ? 0
2. 以下の式を満たすある単位ベクトル ei, . . . , en ∈ Sn?1
と
非負の実数 λ1, . . . , λn が存在する.
X =
n∑
i=1
λieie?
i .
(証明)
( 2 ? 1 )eie?
i が半正定値であることから, その非負結合なので X ? 0.
42
43. Dual Cone of P?
n
(1 ? 2)
X ? 0 より, X = QDQ?
とする. Q は正規直交基底で, D は各固有値
λi ≥ 0 (i = 1, . . . , n) を対角成分にもつ対角行列である.
D(i)
を行列の (i, i) 成分が λi, それ以外を 0 とする対角行列とすると,
X = Q(
n∑
i=1
D(i)
)Q?
=
n∑
i=1
QD(i)
Q?
=
n∑
i=1
λiei
ここで ei は Q の i 番目の列ベクトルとなる. Q は正規直交基底なので,
∥ei∥ = 1 (i = 1, . . . , n)
43
44. Proof of P?
n = Pn
Proposition 3.1
P?
n = Pn
(証明)
まず, Pn ? P?
n, 即ち, X ∈ Pn ? X ∈ P?
n を示す.
X, Y ? 0 とする. Lemma 3.1 より, X は λi ≥ 0 と単位ベクトル ei で
X =
∑n
i=1 λieie?
i とかけて, 更に Tr(AB) = Tr(BA) より,
X ? Y =Tr(
n∑
i=1
λieie?
i Y ) =
n∑
i=1
λiTr(eie?
i Y )
=
n∑
i=1
λiTr(e?
i Y ei) =
n∑
i=1
λie?
i Y ei ≥ 0
44
45. Proof of P?
n = Pn
次に, Pn ? P?
n, 即ち, Y ∈ P?
n ? Y ? 0 を示す.
任意の x ∈ Rn
について, xx?
? 0 なので
(?v ∈ Rn
, v?
(xx?
)v = (x?
v)?
(x?
v) ≥ 0),
0 ≤ Y ? xx?
= Tr(Y xx?
) = Tr(x?
Y x) = x?
Y x
よって Y ? 0 である.
45
49. Review: Maximum Weighted Cut Problem
Weighted Max Cut Problem
Input: G = (V, E): 無向グラフ, c: E → R+: 重み関数
Task: (13) を最大にする S ? V を求める
∑
u∈S
∑
v∈V S
c(u, v) (13)
V = {1, . . . , n}, cij = c(i, j) とする.
zi を i ∈ S のとき 1, そうでないとき ?1 とすると,
最大カットの問題は (14) のように定式化できる.
Maximize
∑
{i,j}∈E
cij
1 ? zizj
2
(14)
subject to zi ∈ {?1, 1}, i = 1, . . . , n
49
50. Maxcut: Relaxation to Vector Programming
再掲
Maximize
∑
{i,j}∈E
cij
1 ? zizj
2
(5)
subject to zi ∈ {?1, 1}, i = 1, . . . , n
これを, 次の vector programming (6) に緩和する.
Maximize
∑
{i,j}∈E
cij
1 ? u?
i uj
2
(6)
subject to ui ∈ Sn?1
, i = 1, . . . , n
ここで, Sn?1
= {x ∈ Rn
| ∥x∥ = 1} である.
50
51. Maxcut: Reformulation to SDP
ui を列としてもつ以下のような行列 U ∈ Rn×n
を考える.
U = [u1u2 . . . un] (7)
X = U?
U とすると, 以下が成り立つ.
Lemma 4.1
X は半正定値行列である.
Proof.
v ∈ Rn
とする.
v?
Xv = v?
U?
Uv
= (Uv)?
Uv ≥ 0
51
52. Maxcut: Reformulation to SDP
xij = u?
i uj を要素にもつ行列 X を考えると,
以下の半正定値計画問題 (8) に書き換えられる.
Maximize
∑
{i,j}∈E
cij
1 ? xij
2
(8)
subject to xii = 1, i = 1, . . . , n
X ? 0
これを解き, X から U を得ることで vector programming (6) の解を
得る.
(X の Cholesky 分解によって U は求まる)
52
53. Mapping from Sn?1
to S0
= {?1, 1}
ランダムに p ∈ Sn?1
を選び,
以下のようにして u ∈ Sn?1
から {?1, 1} に写す.
u →
{
1 if p?
u ≥ 0
?1 otherwise.
(9)
p は, 単位球面 Sn?1
上のベクトルを,
閉半球面 H = {u ∈ Sn?1
| p?
u ≥ 0} とその補集合に分割する.
53
54. Probability that u, u′
∈ Sn?1
map to di?erent values
Lemma 4.2
u, u′
が (9) によって異なる値に写される確率は,
1
π
arccos u?
u′
.
α ∈ [0, π] を u, u′
の角度とする.
cos α = u?
u′
∈ [?1, 1]
よって,
α = arccos u?
u′
∈ [0, π]
α = 0, π のとき, 補題は成り立つ.
54
55. Probability that u, u′
∈ Sn?1
map to di?erent values
α ?= 0, π のとき,
u, u′
で張る 2 次元の線型部分空間 L ? Rn
を考える.
p を L に射影した r ∈ L について, p?
u = r?
u かつ p?
u′
= r?
u′
.
よって, r が下図の半開空間 W に入っているとき, かつそのときのみ,
p?
u と p?
u′
は異なる値をとる.
p は Sn?1
から一様ランダムに選ばれるので, r の向きも [0, 2π] から一
様ランダムとなる. よって, r ∈ W となる確率は, 2α/2π = α/π.
55
56. Getting the Bound
vector programming (6) の解を u?
1, u?
2, dots, u?
n とする.
これまでの結果と, 期待値の線型性より,
p ∈ Sn?1
をランダムに選ぶ事によって以下が得られる.
E
?
?
∑
{i,j}∈E
cij
1 ? (p?
u?
i )(p?
u?
j )
2
?
? =
∑
{i,j}∈E
ci,j
arccos u?
i
?
u?
j
π
また, 数値計算によって, 以下の結果を得ることができる.
f(x) =
2 arccos (x)
π(1 ? x)
≥ 0.8785672 if x ∈ [?1, 1].
よって, 全ての x ∈ [?1, 1] について, 以下の不等式が成り立つ.
arccos (x)
π
≥ 0.8785672
1 ? x
2
.
56