• 検索結果がありません。

大規模な制約なし最小化問題に対する コーダル部分グラフを用いた

N/A
N/A
Protected

Academic year: 2021

シェア "大規模な制約なし最小化問題に対する コーダル部分グラフを用いた"

Copied!
28
0
0

読み込み中.... (全文を見る)

全文

(1)

特別研究報告書

大規模な制約なし最小化問題に対する コーダル部分グラフを用いた

スパース準ニュートン法

指導教員 福嶋雅夫 教授      山下信雄 助教授     

京都大学工学部情報学科 数理工学コース

平成15年4月入学 平成19年3月卒業

黒川 典俊

平成19年1月31日提出

(2)

大規模な制約なし最小化問題に対する

コーダル部分グラフを用いたスパース準ニュートン法

黒川 典俊

摘要

本報告書では,大規模な制約なし最小化問題に対する準ニュートン法を取り扱う.準ニュートン法が中小 規模の問題に対して有効な解法であることはよく知られているが,各反復で更新される近似ヘッセ行列は 密になるため,大規模な問題に対して準ニュートン法を適用するには何らかの工夫が必要である.大規模な 問題では,目的関数のヘッセ行列は一般に疎な行列となる.その疎性を利用した準ニュートン更新の手法と して,Matrix Completion Quasi-Newton method (行列補完を用いた準ニュートン法,MCQN法)が提案され ている.

ヘッセ行列の疎構造に対応するグラフ(疎構造グラフ)がコーダルグラフとなるとき,MCQN法で更新 される近似行列は,疎な三角行列の積として表すことができる.疎構造グラフがコーダルグラフとならな いとき,従来の

MCQN

法では,疎構造グラフのコーダル拡張を用いて行列の更新を行っている.そのため,

問題によっては,ヘッセ行列の非ゼロ要素数と比べて近似行列の非ゼロ要素数が大幅に増え,必要とする記 憶量と計算時間が増大してしまう.

上記の問題を解決するため,本報告書では疎構造グラフのコーダルな部分グラフを用いて準ニュートン 更新を行う手法を提案する.この手法を用いると,近似行列の非ゼロ要素数はヘッセ行列の非ゼロ要素数以 下に抑えることができるので,実装に必要な記憶量と各反復の計算時間を減らすことができる.提案手法 が速く収束するためには,元の疎構造グラフの枝をより多く含むようなコーダル部分グラフを用いること が望ましい.本報告書では,そのような部分グラフを求める工夫についても考察する.また,いくつかの数 値実験結果から提案手法の有効性を議論する.

(3)

目 次

1

序論

1

2

行列の疎性とコーダルグラフ

2

2.1

コーダルグラフの基本的性質

. . . . 2

2.2

行列の疎性とコーダルグラフ

. . . . 4

2.3

コーダル拡張を求めるアルゴリズム

. . . . 5

2.4

コーダル縮小を求めるアルゴリズム

. . . . 6

3

コーダル部分グラフを用いた準ニュートン法

8 3.1

準ニュートン法とその問題点

. . . . 8

3.2

コーダル拡張を用いた

MCQN

法とその計算量

. . . . 9

3.2.1 Ext-MCQN

法の概要

. . . . 9

3.2.2 Ext-MCQN

法の計算量

. . . . 11

3.3

コーダル縮小を用いた

MCQN

法とその計算量

. . . . 12

3.3.1 Del-MCQN

法の概要

. . . . 12

3.3.2 Del-MCQN

法の計算量

. . . . 14

4

数値実験

16 5

まとめと今後の課題

19 A

コーダルグラフに関するアルゴリズム

22 A.1 MCS

アルゴリズム

. . . . 22

A.2 RIP

を満たす極大クリーク族とクリーク木を求めるアルゴリズム

. . . . 22

B

半正定値行列補完

22

C 4

節,【実験

2

】の結果

24

(4)

1 序論

次の制約なし最小化問題を考える.

minimize f (x)

subject to x ∈ R

n

(1.1)

ここで,

f : R

n

→ R

2

回連続的微分可能な関数とする.本報告書では,特に

n

が大きく,

f

のヘッセ行 列が疎,つまりヘッセ行列のほとんどの成分が

0

となる場合を取り扱う.

制約なし最小化問題の解法としては,最急降下法,ニュートン法,準ニュートン法,共役勾配法などがあ る.その中でも準ニュートン法は,実装が容易であり収束の性質も良いので,広く用いられている

[5, 9, 14].

準ニュートン法は,目的関数のヘッセ行列(もしくはその逆行列)の近似行列を用いて,点列を生成する反 復法である.近似行列の更新公式としては

BFGS

公式や

DFP

公式が代表的である.準ニュートン法によっ て生成される点列はある条件下で超一次収束することが知られている.よって,準ニュートン法を用いれば,

比較的少ない反復回数で問題

(1.1)

の解を得ることができる.しかし,ヘッセ行列が疎であっても,BFGS 公式や

DFP

公式で生成された近似ヘッセ行列は一般に密な行列となるため,n

2

乗に比例した記憶容量 が必要となる.そのため,これまで大規模な問題には準ニュートン法を適用することができなかった.

大規模な最小化問題では,一般にヘッセ行列が疎になる.そのため,ヘッセ行列の疎性を利用して近似行 列を更新すれば,記憶容量を大幅に減らすことができる.ヘッセ行列の疎性を利用した近似行列の更新規則 として,行列補完を用いた準ニュートン法

(Matrix Completion Quasi-Newton method,

以下

MCQN

法)が提 案されている

[15].MCQN

法は,コーダルグラフと半正定値行列補完に関する理論を巧みに用いて,ヘッ セ行列の疎性を利用する方法である.MCQN法では,まず従来の準ニュートン法における近似行列の更新

公式

(BFGS

公式,

DFP

公式など)を用いて疎構造に対応した部分行列の更新を行う.次に,その部分行列

(行列式を最大にする)

正定値行列補完を求め,その行列を近似行列とする.疎構造が コーダルグラフに

関連した性質を持つとき,部分行列の

(行列式を最大にする)

正定値行列補完は疎な三角行列の積として表 せることが知られている.

一般にヘッセ行列の疎構造に対応するグラフ(以下,疎構造グラフ)は必ずしもコーダルグラフとは限 らない.そこで,

[15]

では,疎構造グラフのなるべく枝数の少ない「コーダル拡張」1を用いて行列の更 新を行うことを提案している.この方法を,本報告書ではコーダル拡張を用いた

MCQN

(Ext-MCQN

)

と呼ぶことにする.

Ext-MCQN

法で求めた近似ヘッセ行列は疎な三角行列の積で表すことができるので,

Ext-MCQN

法は従来の準ニュートン法よりも大幅に少ない記憶容量で実装できる.したがって,Ext-MCQN

法は大規模な問題には非常に有効である. 理論的な面からも

Ext-MCQN

法は優れた性質を持っており,従 来の

DFP

公式と同様の仮定のもとで,Ext-MCQN法によって生成される点列は超1次収束することが示さ れている.しかし,Ext-MCQN法では,枝数のできるだけ少ないコーダル拡張を用いたとしても,問題に よってはヘッセ行列の非ゼロ要素数と比べて近似行列の非ゼロ要素数が大幅に増えてしまうことがある.

そこで,本報告書では,疎構造グラフのコーダル部分グラフを用いる手法

(Del-MCQN

法)を提案する.こ の場合,近似行列の非ゼロ要素数をヘッセ行列の非ゼロ要素数以下に抑えることができるので,Del-MCQN

法は

Ext-MCQN

法よりもさらに少ない記憶容量で実装することができる.

一方,Del-MCQN法ではヘッセ行列の情報を省いてしまうため,MCQN法がもつ高速な収束性が失われ てしまう可能性がある.そのため,コーダル部分グラフを求める際,疎構造グラフから枝をできるだけ削ら ないようにすることが望ましい.そのような問題は,疎構造グラフの枝数最大のコーダル部分グラフを求 める問題(以後,最大コーダル部分グラフ問題と呼ぶ)として定式化できる.最大コーダル部分グラフ問題

NP

完全であるため

[8],それを近似的に解く実用的なヒューリスティックアルゴリズムがいくつか提案

されている

[2, 13].本報告書では,Xue

のアルゴリズム

[13]

によって得られるコーダル部分グラフを用い

Del-MCQN

法を構成する.さらに,数値実験を行い,既存の方法との比較を行った結果を報告する.

本報告書の構成は,以下のとおりである.まず,2節において行列の疎性と関連の深いコーダルグラフの 性質について簡単にまとめる.Del-MCQN法を実装する際に必要となる,最大コーダル部分グラフ問題に

1コーダル拡張については,2章で説明する.

(5)

対するアルゴリズムについてもこの節で紹介する.次に,3.1,3.2節で準ニュートン法,ならびに

Ext-MCQN

法を紹介し,その問題点についてまとめる.さらに,3.3節で,コーダル部分グラフを用いた近似行列の新 たな更新規則

(Del-MCQN

法)を提案する.4節では,3.3節で提案した

Del-MCQN

法を凸

2

次計画問題に 適用した数値実験の結果を報告し,提案手法の有効性を議論する.最後に,5節で,まとめと今後の課題に ついて述べる.また,付録として,実験に用いたコーダルグラフに関するアルゴリズム,ならびに半正定値 行列補完に関する理論のまとめを与える.

2 行列の疎性とコーダルグラフ

2.1

コーダルグラフの基本的性質

本節では,コーダルグラフに関する基本的な事柄をまとめる.本節で述べるコーダルグラフの性質は,主

[1], [4]

の内容をまとめたものであるので,詳しくはそちらを参照していただきたい.特に,

[1]

は,コー

ダルグラフとクリーク木について丁寧に解説している論文である.一方,

[4]

は,コーダルグラフについて の論文ではないが,2.1節にコーダルグラフについての簡単なまとめが載っている.

本報告書を通して,Vを頂点の集合,E

V × V

を枝の集合とし,G

= (V, E)

で無向グラフを表すものと する.グラフにはループがない,すなわち,すべての

vV

に対して,(v,

v) < E

と仮定する.

本報告書で用いるグラフに関する用語を,以下で定義する.

定義

2.1 (基本的な用語)

• 2

つの頂点

u, vV

(u, v)E

のとき隣接しているという.

vV

に隣接している頂点の集合を

Adj

G

(v) = {u ∈ V | (u, v)E}

で表す.紛れのないときは,Gを省 略して,単に

Adj(v)

とかく.

vV

に接続している枝の数を

v

の次数といい,deg(v)で表す2

相異なる

2

つの頂点がすべて隣接しているとき,グラフは完全であるという.

• 2

つのグラフ

G = (V, E)

G

0

= (V

0

, E

0

)

に対して,V0

V

かつ

E

0

E

が成り立つとき,G0

G

の部 分グラフという.

V

0をグラフ

G = (V, E)

の頂点集合

V

の部分集合とする.このとき,頂点集合を

V

0,枝集合を

E

0

:=

E(V

0

× V

0

)

とするグラフ

G

0

= (V

0

, E

0

)

を,(V0による)Gの誘導部分グラフという3

C

をグラフ

G = (V, E)

の頂点集合

V

の部分集合とする.このとき,Cによる

G = (V, E)

の誘導部分グ ラフが完全であるならば4,その部分グラフを

G

のクリー クという.クリーク中の任意の

2

頂点間に は枝があることから,本報告書ではそれに属する頂点集合のみを明示して,クリーク

C

と表す.

ある頂点

vV

に隣接する頂点の集合

Adj(v)

が,グラフ

G = (V, E)

上でクリークを形成しているとす る.このとき,その頂点

v

を単体的頂点という.

他のクリークの真の部分グラフにならないクリークを,極大クリークという.さらに,あるグラフの 極大クリークの集合をそのグラフの極大クリーク族という.

サイクル中の連続していない

2

つの頂点を結ぶ枝を弦(コード)という.

2すなわち,deg(v)=|AdjG(v)|である.

3G0Gの部分グラフになっていることに注意

4すなわち,異なるi,jCのすべてのペアに対して(i,j)E

(6)

定義

2.2 (コーダルグラフ)

グラフ

G = (V, E)

に含まれる長さ

4

以上のすべてのサイクルが弦をもつとき,

G

コーダルグラフである,または単にコーダルであるという.

1:

コーダルグラフの例(a)とコーダルグラフでない例(b)

1

に示したグラフのうち,左のグラフ

(a)

はコーダルグラフであるが,右のグラフ

(b)

は左下の長さ

4

のサイクルが弦を持たないので,コーダルグラフでない.

コーダルグラフの最も基本的な性質は,次の

2

つである.

性質

1

コーダルグラフは,単体的頂点をもつ.

性質

2 G = (V, E)

をコーダルグラフとし,v1

V

をその単体的頂点とする.このとき,V

\ {v

1

}

により誘導 される部分グラフもまたコーダルである.

性質

1,2

より,V

\ {v

1

}

により誘導される部分グラフも単体的頂点をもつ.それを

v

2とする.これを繰り 返すことで,Adj(vi

) ∩ {v

i+1

, v

i+2

, · · · , v

n

}

がすべての

i = 1, 2, · · · , n − 1

に対してクリークになるように,G の頂点に順序付け

(v

1

, v

2

, · · · v

n

)(ただし,n = |V|)を行うことができる.この順序を完全消去順序(perfect elimination ordering,

以後

PEO

と表す)と呼ぶ.PEOの存在は,次のようにコーダル性を特徴づけている.

性質

3

グラフ

G = (V, E)

がコーダルであるための必要十分条件は,G

PEO

をもつことである.

注意

1 PEO

は唯一ではない.例えば,図

2

のコーダルグラフにおいて,(1,

2, 3, 4, 5, 6, 7)

PEO

であるが,

(3, 2, 4, 6, 7, 1, 5)

もまた

PEO

である.

コーダルグラフの極大クリークは,PEOを用いて次のように簡単に列挙することができる.G

= (V, E)

をコーダルグラフとし,(v1

, v

2

, · · · , v

n

)

G

PEO

とする.v1は単体的頂点なので,v1を含む極大クリー クは唯一であり,{v1

} ∪ Adj(v

1

)

で与えられる.そして,v1を含まない極大クリークは,{v2

, v

3

, · · · , v

n

}

から 導かれた部分グラフの極大クリークである.したがって,コーダルグラフ

G = (V, E)

の極大クリーク族は,

{v

i

} ∪ Adj(v

i

) ∩ {v

i+1

, v

i+2

, · · · , v

n

}

, i = 1, 2, · · · , n

の中で極大なものの集合として与えられる.よって,l

G

の極大クリークの総数とすると,次の性質が成り立つ.

性質

4 G = (V, E)

をコーダルグラフとし,(v1

, · · · , v

n

)

G

PEO

とする.このとき,Gの極大クリーク族

{C

r

| r = 1, 2, · · · , l}

は,次のように構成することができる:

C

r

= {v

i

} ∪ Adj(v

i

) ∩ {v

i+1

, v

i+2

, · · · , v

n

}

, i = min

vj∈Cr

j

性質

4

から,極大クリークの数

l

の上界は

n

であることがわかる.図

2

に,コーダルグラフとその極大ク リークの例を示す.(1,

2, 3, 4, 5, 6, 7)

がこのグラフの

PEO

である.この例では,4つの極大クリークが存在 し,C1

= {1, 5, 7}, C

2

= {2, 3, 4, 6}, C

3

= {4, 6, 7}, C

4

= {5, 6, 7}

である.

さらに,コーダルグラフの極大クリーク族は,次の条件を満たすように添え字をつけることができること が知られている.

(7)

2:

コーダルグラフとその極大クリークの例 性質

5 G = (V, E)

がコーダルグラフであるとき,r

= 1, 2, · · · , l − 1

に対して,

∃s ≥ r + 1 : C

r

(C

r+1

C

r+2

∪ · · · ∪ C

l

) ( C

s

(2.1)

となる極大クリーク族

{C

r

| r = 1, 2, · · · , l}

が存在する.

性質

5

Running Intersection Property(以降 RIP

と表す)と呼ばれる.図

2

に示した極大クリーク族

{C

1

, C

2

, C

3

, C

4

}

は,RIPを満たしている.

2.2

行列の疎性とコーダルグラフ

本節では,行列の疎性とコーダルグラフの関係について述べる.

まず,n

× n

対称行列

A

に対し,集合

E

E := {(i, j) | A

i j

, 0}

と定義し,これを本報告書では行列

A

の疎 構造と呼ぶことにする.次に,集合

V, E

を,V :=

{1, 2, · · · , n}, E := E \ {(i, i) | i = 1, · · · , n}

で定め,頂点集 合を

V

,枝集合を

E

とする無向グラフ

G = (V, E)

を考える5.本報告書では

G = (V , E)

を行列

A

の疎構造グ ラフと呼ぶことにする6

1

行列

A

の非ゼロ要素が図

3(a)

のように与えられているとする.ただし,図中の

A

i j

, 0,他は A

i j

= 0

を表す.行列

A

の疎構造グラフは図

3(b)

となる.

3:

行列

A

とその疎構造グラフの例

3(b)

のように,グラフ

G = (V, E)

は必ずしもコーダルでないことに注意する.そこで,疎構造を表す グラフにコーダル性をもたせることを考える.

定義

2.3

一般の(必ずしもコーダルでない)グラフ

G = (V, E)

が与えられたとする.

グラフ

G

0

= (V, F)

G

のコーダル拡張

(chordal extension)

であるとは,G0がコーダルグラフであり,

かつ

FE

が成り立つときをいう.

5したがって,G=(V,E)はループを持たない.

6行列Aの非対角成分において非ゼロな箇所は,グラフG=(V,E)の隣接行列の非対角成分において非ゼロな箇所と一致すること に注意しておく.

(8)

グラフ

G

0

= (V , F)

G

のコーダル縮小

(chordal deletion)

であるとは,G0がコーダルグラフであり,

かつ

FE

が成り立つときをいう.

すなわち,一般のグラフ

G = (V, E)

にいくつか枝を付け加えてコーダルグラフにしたものを(Gの)コー ダル拡張,逆にグラフ

G

からいくつか枝を削ってコーダルグラフにしたものを(Gの)コーダル縮小と呼 ぶ.今後,文脈から紛れのないときは,「Gの」を省略し,単に「コーダル拡張」,「コーダル縮小」と呼ぶ.

なお,グラフ

G

の頂点集合と,そのコーダル拡張,コーダル縮小の頂点集合は同じであることに注意する.

また,コーダル拡張,コーダル縮小は一意ではない.

2

3(b)

で与えられるグラフ

G

のコーダル拡張,コーダル縮小の例をそれぞれ図

4(a),(b)

に示す.(a)

G

(3, 4), (5, 7), (6, 4), (6, 7)

間の枝を付け加えたグラフ,(b)

G

から

(1, 7)

間の枝を削除したグラフである.

4:

3(b)

で与えられるグラフ

G = (V, E)

のコーダル拡張

(a),コーダル縮小 (b)

の例

コーダル拡張は,疎行列のコレスキー分解と密接に関連することが知られている

[11].行列 A

を疎な正定値 対称行列とし,

A = LL

T(ただし,

L

は下三角行列)をそのコレスキー分解とする.このとき,

A

i j

= 0

であって も,コレスキー分解を行うと

L

i j

, 0

となり,非ゼロ要素が増加してしまうことがある.このようにコレスキー 分解前の行列で

0

であったところにコレスキー分解後

0

でない値が入ることを充填

(fill-in)

という.行列

L

疎構造を

G

0

= (V, F)(ただし,V := {1, 2, · · · , n}, F := {(i, j) | L

i j

, 0 or L

ji

, 0}, F := F \ {(i, i) | i = 1, 2, · · · , n})

で表現すると,(コレスキー分解の計算過程で数値的な打ち消しが起こらないと仮定すれば)グラフ

G

0は,

行列

A

の疎構造グラフ

G = (V , E)

のコーダル拡張になることが知られている

[4].

充填が起こると,行列

L

の非ゼロ要素が増加する.非ゼロ要素の増加はそのまま計算量の増加につなが り,行列

A

が疎であってもその性質を有効に利用することができない.そこで,行列

A

に前処理を行って,

なるべく充填の数を少なくすることが求められる7.上で述べたことから,行列

A

のコレスキー分解におけ る充填の最小化問題は,行列

A

の疎構造を表現するグラフの枝数最小のコーダル拡張を求める問題と等価 である.

一方,コーダル縮小は,一般のグラフに含まれる最大のクリークを見つける問題(最大クリーク問題)や 疎な線形方程式を解くアルゴリズムへの応用に関連して研究されている

[2, 13].一般のグラフに対する最

大クリーク問題は

NP

困難であるが,与えられたグラフの枝数最大のコーダル縮小を用いることで,最大ク リーク問題に対する比較的よい解を見つけられることが知られている.

しかし,与えられたグラフの枝数最小のコーダル拡張を求める問題は

NP

完全であることが知られてい

[8].同様に,与えられたグラフの枝数最大のコーダル縮小を求める問題も NP

完全である

[8].そのため,

これらの問題に対する発見的手法がいくつか提案されている.その方法を次節以降で説明する.

2.3

コーダル拡張を求めるアルゴリズム

枝数最小のコーダル拡張を求めるヒューリスティクスとしては,最小次数法(最小次数順序法,Minimum

degree ordering algorithm)を用いた手法が有名である.最小次数法は,コレスキー分解における充填の発生

7充填の数は,コレスキー分解の計算過程における行(または列)の順序に依存することが知られている.したがって,充填の数が 少なくなるようにあらかじめ行列Aの行(列)を並べ替えておく.

(9)

を観察することにより考案されたグラフの頂点のオーダリング手法である.その基本的な考え方は,「隣接 頂点の少ない順に頂点に番号を振る」ということである.具体的には,次数の小さい頂点をグラフから除去 し,その除去された部分グラフを作る.そして,頂点がすべて除去されるまで同様の操作を繰り返すという アルゴリズムである8.その手続きを正確に述べると次のようになる.

¶ ³

最小次数法

Step 1 : V

0

:= V, E

0

:= E, S := ∅, k := 1

とする.

Step 2 : G

k−1

:= (V

k−1

, E

k−1

)

とし,グラフ

G

k−1において次数が最小の頂点を

v

kとする.S :=

(S , v

k

)

する.

Step 3 : G

k−1から頂点

v

kを削除し,新しいグラフ

G

k

:= (V

k

, E

k

)

をつくる.

Step 4 : k = k + 1

とし,k

> |V|

ならば,終了.そうでなければステップ

2

へ.

µ ´

このアルゴリズムを適用すると,頂点の順番は

S = (v

1

, · · · , v

n

)

に保存される.S の第

i

要素が第

i

番目の 頂点を表している.

最小次数順序

S

PEO

とするコーダル拡張を求めるには,次の

Parter

が提案した手法

[10]

を用いればよ い.ここで,最小次数順序を

S = (v

1

, v

2

, · · · , v

n

)

とする.

¶ ³

順番

S

から

G = (V, E)

のコーダル拡張を求めるアルゴリズム

Step 1 : k := 1

とする.G0

= G

とし,E

= E

とする.

Step 2 : k > n

ならば終了.そうでなければ頂点

v

kとそれに接続する枝をグラフ

G

0から削除する.

Step 3 : Adj

G0

(v

i

)

が完全グラフとなるように枝を

E

に追加する.

Step 4 : k := k + 1

とし,ステップ

2

へ.

µ ´

このアルゴリズムにより得られるグラフ

G

= (V, E

)

は,S

PEO

にもつグラフ

G

のコーダル拡張となる.

2.4

コーダル縮小を求めるアルゴリズム

一般のグラフに含まれる枝数最大のコーダル部分グラフを見つける問題

(最大コーダル部分グラフ問題)

NP

完全であり,さまざまな発見的解法が提案されている9.その基本的な考え方を説明する.

いま,グラフ

G = (V, E)

が与えられ,Gの頂点には順番

{v

1

, v

2

, · · · , v

n

}

が振られているとする.Vk

:=

{v

j

| jk}

とし,頂点集合を

V

k,枝集合を

E

k

V

k

× V

kとするグラフ

G

k

= (V

k

, E

k

)

を考える.グラフ

G

コーダル部分グラフを求める基本的アイデアは,次のとおりである.

まず,1頂点のみからなるグラフ

G

n

:= ({v

n

}, ∅)

はコーダルグラフである.次に,Gk

= (V

k

, E

k

)

G

コーダル部分グラフであるとしよう.このとき,{vk−1

, v

k

, v

k+1

, · · · , v

n

}

を頂点とするコーダル部分グラフ

G

k−1

= (V

k−1

, E

k−1

)

を次のように構成することができる.

Step 0 : G

k−1

:= G

k

Step 1 : G

k−1の頂点集合

V

k−1に頂点

v

k−1を追加する.

Step 2 : v

k−1が単体的頂点になるように,次の条件を満たす

G

kのクリーク

CV

kの各頂点と 頂点

v

k−1とを結ぶ枝を

E

k−1に付け加える.

8グラフにおいて次数の少ない頂点は,対応する行列において非ゼロ要素の少ない列に対応する.

9与えられたグラフの枝数最大のコーダル縮小を求める問題は,与えられたグラフに含まれる枝数最大のコーダル部分グラフを求 める問題と等価であることに注意.

(10)

¶ ³

【条件】

V

k

(v

k−1

) := Adj

G

(v

k−1

) ∩ V

kとする10.Cは,Vk

(v

k−1

)

で誘導される

G

kの部分グラフに含まれるクリー クである.

µ ´

こうして得られたグラフ

G

k−1は,Gのコーダルな部分グラフである.これを

k = n, n − 1, n − 2, · · · , 1

とく り返して得られるグラフ

G

1

= (V

1

, E

1

)

は,V1

= V

を満たすグラフ

G

の部分グラフになる.グラフ

G

1

(v

1

, v

2

, · · · , v

n

)

PEO

にもつので,定理

3

から

G

1はコーダルである.すなわち,G1

G

のコーダル縮小

である.

枝数のできるだけ多いコーダル縮小を求めるため,頂点の選び方にさまざまな工夫がなされている.ここ では,Xueのアルゴリズム

[13]

を紹介する.このアルゴリズムは,一般のグラフに対する最大クリーク問題 への応用を念頭に考えられたアルゴリズムである.表記の簡単のため,

Suc

G

(v

i

) := {v

j

| j > i and v

j

∈ Adj

G

(v

i

)}

とする.

¶ ³

Edge-maximal chordal subgraph (Xue [13])

入力

:

グラフ

G = (V, E)

出力

:

グラフ

G

のコーダル部分グラフ(コーダル縮小)G0

= (V, E

0

)

Step 0 : k := n

とし,Vk

:= ∅, E

k

:= ∅, peo := ∅, U := V

とする.また,∀v

V

に対し,t(v)

= ∅, s(v) = 0

とする.

Step 1 : k = 1

なら終了.Gk

:= (V

k

, E

k

)

peo = (v

1

, · · · , v

n

)

PEO

にもつ枝数最大のコーダル部分グ ラフである.

Step 2 : s(v) = max{s(u) | uU}

を満たす

vU

1

つ選ぶ.

V

k−1

:= V

k

∪{v}, peo := (v, peo), U := U \{v}

とする. Ek−1

:= E

k

∪ {(v, u) | u = t(v) or u ∈ Adj

G

(v) ∩ Suc

Gk

(t(v))}

とする.頂点

v

のラベルを

v

k する.

Step 3 : ∀u ∈ Adj

G

(v)U

に対し,ru

:= 1 + |Suc

Gk−1

(v) ∩ Adj

G

(u)|

とする.

もし,ru

s(u)

なら,t(u) :=

v, s(u) := r

uとする. k :=

k − 1

とし,Step1へ戻る.

µ ´

注意

2 Step2

において

max{s(u) | uU}

を満たす頂点が複数あるとき,Xueはグラフ

G

において次数が最大 となるものを選ぶことを推奨している

[13].

Xue

のアルゴリズムで生成される

G

のコーダル縮小については,次の性質が知られている.

定理

2.1 ([13],Theorem 3.1) G = (V, E)

に対して

Xue

のアルゴリズムを適用して得られたコーダル縮小を

G

0

= (V, E

0

)

とする. G0

peo = (v

1

, · · · , v

k

)

PEO

にもつ

G

のコーダル部分グラフの中で枝数最大のもの である.

なお,Xueのアルゴリズムの計算量は,O(|V|

+ P

deg(v) + P

deg

2

(v))O(∆ × |E|)

である

[13].

(ただし,

∆ = max

deg(v) | vV

である.

10すなわち,グラフGk=(Vk,Ek)の頂点のうち,与えられたグラフG=(V,E)においてvk−1と隣接した頂点の集合をVk(vk−1) する.

(11)

3 コーダル部分グラフを用いた準ニュートン法

3.1

準ニュートン法とその問題点

この節では,準ニュートン法とその問題点について述べる.

準ニュートン法は,目的関数のヘッセ行列(もしくはその逆行列)の近似行列を用いて点列を生成する反 復法である.xkを現在の反復点とし,Bkを目的関数のヘッセ行列

2

f (x

k

)

の近似行列とする.ここで,Bk

は正定値対称行列であるとしよう.準ニュートン法では,まず探索方向

p

k

p

k

= −B

−1k

f (x

k

)

で定める11.次に,pk方向に直線探索を行って,次回の反復点

x

k+1

x

k+1

= x

k

+ α

k

p

k

により定める.ただし,αkは非負の実数(ステップ幅)である.

行列

B

kは各反復において適宜更新する.ここでは,Bkの逆行列

H

k

= B

−1k を更新することを考える12.行

H

kは,セカント条件:

H

k+1

y

k

= s

k

を満たすように更新される.ただし,

s

k

= x

k+1

x

k

, y

k

= ∇ f (x

k+1

) − ∇ f (x

k

) (3.1)

である.一般に,セカント条件を満たす行列は無数に存在するので,いろいろな種類の更新公式が考えられ ており,その中でも

BFGS

法と

DFP

法が代表的である.

DFP

法では,次の最適化問題の解を

H

k+1とする

[3].

min

H

ψ(H

k12

HH

1 2

k

) subject to Hy

k

= s

k

H = H

T

H 0

(3.2)

ただし,ψ

: R

n×n

→ R

ψ(A) = trace(A)ln det(A)

で定義される狭義凸関数である.また,H

0 (H 0)

は,Hが半正定値(正定値)であることを表す.

特に,Hが正定値行列で,条件:

s

Tk

y

k

> 0 (3.3)

を満たすとき13,問題

(3.2)

の解は一意に定まり,その解

H

DFPk+1 は次式で計算できる

[3].

H

k+1DFP

= H

k

H

k

y

k

(H

k

y

k

)

T

y

Tk

H

k

y

k

+ s

k

s

Tk

s

Tk

y

k

(3.4)

この更新公式は,DFP公式と呼ばれる.

また,BFGS法は,次式で与えられる更新公式(BFGS公式)を用いて近似行列の更新を行う方法である.

H

k+1BFGS

= H

k

H

k

y

k

s

Tk

+ s

k

(H

k

y

k

)

T

s

Tk

y

k

+

 

 1 + y

Tk

H

k

y

k

s

Tk

y

k

 

s

k

s

Tk

s

Tk

y

k

(3.5) DFP

公式や

BFGS

公式で求まる

H

k+1は,sk

(s

k

)

T などの影響で,∇2

f (x)

が疎であっても一般には密な行 列になる.したがって,行列

H

k+1の保持には

O(n

2

)

のメモリが必要になる.ゆえに,次元数

n

が大きい問 題に対してはこれらの方法を使うことができない.

11探索方向pkは,必ず目的関数の降下方向になる.なぜなら,Bkの正定値性よりf (xk)Tpk=−∇f (xk)B−1kf (xk)<0が成り立つ からである.

12このとき,探索方向pkpk=−Hk∇f (xk)と行列とベクトルの積で計算できる.

13fが強凸関数のとき,条件(3.3)は任意の2xk,xk+1に対して成り立つ.また.f が非凸であるとき,ステップ幅αkWolfe の条件を満たすようにすれば,条件(3.3)は満たされることが知られている[9].

(12)

3.2

コーダル拡張を用いた

MCQN

法とその計算量

3.2.1 Ext-MCQN

法の概要

次元数

n

が大きい問題では,目的関数のヘッセ行列が疎になることが多い.そこで,Hk+1DFPを与える問題

(3.2)

の制約条件に対し,疎性の条件を加えた次の問題を考える.

min

H

ψ(H

k12

HH

1 2

k

) subject to Hy

k

= s

k

H = H

T

H 0

(H

−1

)

i j

= 0 ∀(i, j) < F

(3.6)

ここで,集合

F

は,F

V ×V

かつ

FE := {(i, j) |

ある

x ∈ R

nに対して

[∇

2

f (x)]

i j

, 0 }

を満たすように選ぶ.

ただし,V

= {1, 2, · · · , n}

である.本報告書を通して,(1) (i,

i)F, i = 1, 2, · · · , n (2) (i, j)F( j, i)F

と仮定する.集合

F

はなるべく

F = E

となるように選ぶのが望ましい.

残念なことに,問題

(3.2)

のように問題

(3.6)

の最適解を陽に書き下すことができないので,問題

(3.6)

近似解を

H

k+1としようというのが,MCQN法の基本的な考え方である

[15].

¶ ³

(MCQN

法のプロトタイプ)

Step 1:

既存の準ニュートン法の更新公式(DFP公式

(3.4)

や,BFGS公式

(3.5)

など)を用いて,

H

kから

(H

k+1

)

i j

, ∀(i, j)F

の成分を計算しておく.

Step 2: (H

k+1

)

i j

, (i, j)F

を用いた最適化問題:

min

H

ψ(H

k12

HH

1 2

k

) subject to H = H

T

H

i j

= (H

k+1

)

i j

∀(i, j)F H 0

(H

−1

)

i j

= 0 ∀(i, j) < F

(3.7)

の最適解を

H

k+1とする.

µ ´

問題

(3.7)

は,問題

(3.6)

の制約条件に含まれるセカント条件

Hy

k

= s

kを,Hi j

= (H

k+1

)

i j

, ∀(i, j)F

で置き 換えた問題である.問題

(3.7)

の解は,問題

(3.6)

の近似解とみなすことができる.(F

= V × V

のときは,問

(3.7)

は問題

(3.2)

と等価である.)なお,今後

H

k+1を,単に

H

と書くことにする.

問題

(3.7)

は,半正定値行列補完問題,すなわち,Hi j

= H

i j

, ∀(i, j)F

を満たし, (i,

j) < F

の部分の要素 をすべて補ってできる半正定値対称行列

H

を見つける問題である.(半正定値行列補完については,付録

B

を参照.)問題

(3.7)

も一般には簡単に解くことはできないが,Fが次の条件を満たすとき,その解を陽に表

せることが知られている.

¶ ³

【コーダル条件】 

頂点集合を

V

,枝集合を

F := F \ {(i, i) | i = 1, · · · , n}

とする無向グラフ

G

0

= (V, F)

コーダルグラフとなる14

µ ´

問題の疎性を利用するためには

F = E

とすることが望ましいのだが,ヘッセ行列の疎構造グラフ

G = (V, E)

は一般にコーダルグラフとは限らない.そこで,

[15]

では,集合

F

を次の条件を満たすように選ぶことが

14グラフG0にはループはないことに注意.

(13)

提案されている.

条件

1 FE.

条件

2

集合

F

は,コーダル条件を満たす.

(3.8) (3.8)

2

条件を満たす

F

を求めることは,グラフ

G = (V, E)

のコーダル拡張

G

0

= (V, F)

を求めることと 等価である.本報告書では,グラフ

G

のコーダル拡張

G

0を用いて構成した

MCQN

法を,Ext-MCQN法と 呼ぶことにする.また,今後単に「疎構造グラフ」と言ったときはヘッセ行列の疎構造グラフを指すことに する.疎性を利用するためには,なるべく

F \ E

の要素が少なくなるように

F

を選ぶことが望ましい.言い 換えると,疎構造グラフ

G

の枝数最小のコーダル拡張を

G

0として用いることが望ましい.そのためには,

2.3

節で述べた方法などを用いてコーダル拡張

G

0を求めればよい.

さて,コーダル条件を満たす集合

F

が与えられたときの問題

(3.7)

の解を具体的に与えよう.まず,補題

1

つ準備する.

補題

3.1 ( [15],Theorem 2) s

Tk

y

k

> 0

と仮定する.Hkは正定値対称行列で,(Hk−1

)

i j

= 0, ∀(i, j) < F

と仮定 する.このとき,問題

(3.7)

は次の最適化問題と等価になる:

maxmize det(H)

subject to H

i j

= H

i j

∀(i, j)F H = H

T

H 0

(3.9)

さらに,この解は唯一つであり,解として得られた行列

H

は,(H−1

)

i j

= 0, ∀(i, j) < F

を満たす.

注意

3

問題

(3.9)

は,Hi j

, ∀(i, j)F

が要素として与えられた部分行列の半正定値補完行列の中で,行列式 が最大となるものを求める問題である.

F

がコーダル条件を満たすとき,問題

(3.9)

の解が陽に計算できる疎行列の積で表されることを示す.

G

0

= (V, F)

がコーダルグラフであるとき,2.1節で述べたように,次の

2

条件をを満たす極大クリーク族

{C

r

| r = 1, 2, · · · , l}

が存在する.

F = S

l

r=1

C

r

× C

r

• RIP(式 (2.1))

:r

= 1, 2, · · · , l − 1

に対して

∃s ≥ r + 1 : C

r

(C

r+1

C

r+2

∪ · · · C

l

) ( C

s

を満たす.

この極大クリーク族を用いて,{Cr

}

の部分集合の族

{S

r

| r = 1, 2, · · · , l}, {U

r

| r = 1, 2, · · · , l}

を以下で定義 する.

S

r

:= C

r

\ (C

r+1

C

r+2

∪ · · · ∪ C

l

), r = 1, · · · , l (3.10) U

r

:= C

r

(C

r+1

C

r+2

∪ · · · ∪ C

l

), r = 1, · · · , l (3.11)

ここで,V

= ∪

lr=1

S

rかつ

S

i

S

j

= ∅

であることに注意しておく.S1

, S

2

, · · · , S

lの順にそれぞれの要素を取 り出して並べたときに

1, 2, · · · , n

となるように

G

0の頂点の番号をつけかえる15.そのような順序の付け替 えを行う置換行列を

P

とする.

15定義により,S1の各要素は非空であり,S1に属する各頂点はG0の単体的頂点である.さらに,Siの各要素は,SiSi+1∪ · · ·Sl

により導かれるG0の部分グラフの単体的頂点である.したがって,S1,S2,· · ·,Slの順にそれぞれの要素を取り出して並べた順序は G0PEOになる.こうして求めたPEO(1,2,· · ·,n)となるように頂点の番号を付け替えることになる.

図 2: コーダルグラフとその極大クリークの例 性質 5 G = (V, E) がコーダルグラフであるとき,r = 1, 2, · · · , l − 1 に対して,
表 2: 反復回数の比較(行列 A のサイズ n = 1000)
表 3: コーダル縮小,コーダル拡張の枝数と反復回数の関係(行列 A の次元 n = 100)

参照

関連したドキュメント

 処分の違法を主張したとしても、処分の効力あるいは法効果を争うことに

睡眠を十分とらないと身体にこたえる 社会的な人とのつき合いは大切にしている

地盤の破壊の進行性を無視することによる解析結果の誤差は、すべり面の総回転角度が大きいほ

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

(( .  entrenchment のであって、それ自体は質的な手段( )ではない。 カナダ憲法では憲法上の人権を といい、

彩度(P.100) 色の鮮やかさを 0 から 14 程度までの数値で表したもの。色味の

17‑4‑672  (香法 ' 9 8 ).. 例えば︑塾は教育︑ という性格のものではなく︑ )ット ~,..

と判示している︒更に︑最後に︑﹁本件が同法の範囲内にないとすれば︑