47
最大クリーク問題に対する Memetic アルゴリズムのトライ木による高速化 平成 26 2 森中 諒太 (128T263T) 指導教員 山口一章 准教授 神戸大学大学院工学研究科 電気電子工学専攻

修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

修 士 論 文

 最大クリーク問題に対するMemeticアルゴリズムのトライ木による高速化 

平成 26 年 2 月

 森中諒太 (128T263T) 

指導教員 山口一章 准教授

神戸大学大学院工学研究科

電 気 電 子 工 学 専 攻

Page 2: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

内容梗概

最大クリーク問題とは,無向グラフ中から頂点数が最大となるクリーク (任意の二頂点

間が隣接している頂点集合)を見つける問題である.最大クリーク問題は NP困難な組合

せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは知られ

ていない.最大クリーク問題の解法は符号理論やパターン認識,バイオ情報処理などの分

野に応用を持つ.

組合せ最適化問題に対する効果的なアプローチの一つとして Memetic アルゴリズム

(MA)がある.MAとは,遺伝的アルゴリズムと局所探索法を組み合わせた従来手法であ

る.最大クリーク問題に対しても MA を用いた解法が提案されており,比較的精度の高

い解を求められることが示されている.

 本論文では従来手法の高速化を目指す.従来手法では隣接頂点集合の再計算が頻繁に現

れる.本論文ではトライ木を用いてその処理を可能な限り省略する方法を提案する.トラ

イ木とは順序付き木構造の一種であり,キーが文字列である連想配列の実構造として用い

られる.また任意のノードに値を持たせることが出来る.提案手法では,クリークの要素

を並べて出来る系列をトライ木のキーとし,クリークに対応するノードに隣接頂点集合を

保持する.トライ木に保持されたクリークと同じ頂点を含むクリークが現れた場合に隣接

頂点集合を計算する過程を省略することが出来る.

DIMACSベンチマーク問題,ランダムグラフを入力とした計算機実験を行い,性能を

確認した.実験の結果,提案手法は従来手法と比べ多くのグラフにおいて高速に解を求め

ることが出来た.

また既存のMAの選択方法に関する変更を行った.辺密度が小さいグラフにおいて,使

用されていない頂点が選択されやすい網羅性に特化した選択方法が有効であると考えられ

る.ランダムグラフを入力とした計算機実験を行った結果,低辺密度のグラフにおいて,

集中性より網羅性に特化した選択方法が良い解を得ることが確認出来た.

Page 3: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

Abstract

For an undirectted graph,a clique is a vertex set in which any pair of vertices in it are

adjacent.The maximum clique problem is to find the clique of maximum cardinality in an

undirected graph.It is an NP-hard combinatorial optimization problem,namely,no algo-

rithms are known to solve the problem in polynomial time.Algorithms for finding large

cliques have applications in code theory,pattern recognition and bioinformatics.

Memetic algorithm(MA) is an effective approach for the combinatorial optimization prob-

lem.MA is a conventional algorithm which combines genetic algorithm and local search.

The solution which uses MA is proposed for the maximam clique problem,and it can find a

solution relatively high accuracy.

In this paper,we aim to speed up the conventional algorithm.Recalculation of the set of

vertices adjacent to all the key vertices appears frequently in the conventional algorithm.In

this paper,we propose the method which omitted the processing by using a trie as possible.

A trie is an ordered tree data structure which is available to store mappings from ordered

sets to certain objects.In this paper,vertex sequences of the clique are the keys of the

trie tree,and the the set of vertices adjacent to all the key vertices are stored in the node

corresponding to the clique.The proposed algorithm can omit the recalculation of the set of

vertices adjacent to all the key vertices when the same clique appeared,even partially.

We examined the efficiency of new ideas by some computer experiments with DIMACS

bench mark problems and random graphs.Experimental results show that the proposed al-

gorithm is fast in the many graphs compared with the conventional algorithm.

In addition,we have made changes on the selection operation of MA.The selection oper-

ation specialized to comprehensiveness,which unused vertices are likely selected,is effective

in the graphs whose edge density are low.We examined the efficiency of new ideas by some

computer experiments with random graphs.Experimental results show that the proposed

idea get good results in the graphs whose edge density are low.

ky
取り消し線
ky
ハイライト表示
based on
ky
ハイライト表示
good approximate solution
ky
ハイライト表示
omits
ky
ハイライト表示
when the adjacent vertices of key vertices have been calculated (ちょっと自信なし)
ky
ハイライト表示
In addition, we tried some experiments with different selection strategy in the selection steps of MA.
ky
ハイライト表示
英語が分かりません. 消しましょう.
Page 4: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

目次

第 1章 まえがき 1

第 2章 準備 3

第 3章 従来手法 5

3.1 遺伝的アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2 最大クリーク問題を解く遺伝的アルゴリズム . . . . . . . . . . . . . . . . 5

3.2.1 Memeticアルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2.2 Phased Local Searchを組み込んだ集団ヒューリスティクス . . . . . 7

3.3 手法の流れ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.1 手法1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.2 手法 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3.3 手法 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

第 4章 提案手法 19

4.1 トライ木とは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2 トライ木を用いた高速化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3 従来手法における選択方法の変更 . . . . . . . . . . . . . . . . . . . . . . 30

第 5章 計算機実験 31

5.1 実験環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2 実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

第 6章 あとがき 39

Page 5: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

1

第 1章

まえがき

無向グラフ G = (V,E)において,任意の二頂点間に辺が存在するような V の部分集合

をクリークという.図 1.1にクリークの例を示す.グラフが与えられたときに頂点数が最

大のクリークを求める問題は最大クリーク問題と呼ばれる.最大クリーク問題は NP困難

な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

知られていない.最大クリーク問題の解法は符号理論やパターン認識,バイオ情報処理

などの分野に応用を持つ [1][2].これまでに厳密解法や発見的手法がいくつか提案されて

いる.

図 1.1: クリークの例

代表的なメタヒューリスティクスである遺伝的アルゴリズム (GA)を,最大クリーク問

Page 6: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

2

題の解法に応用したものとして片山らの手法 [3]がある.GAとは,生物が環境に適応し

ながら進化していく過程を参考にし,最適化問題に用いたものである.GAとは,集団で

個体を持ち,個体 1つ 1つに適応度という評価値を与える.適応度に応じて親個体に対し

て突然変異,交叉などを用いて子個体を生成し,適応度の高い個体を選択することで,最

終的に良い個体が残るというメタヒューリスティクスである.片山らの手法では GAと局

所探索法を組み合わせた Memeticアルゴリズム (MA)を用いて最大クリーク問題を解い

ている.片山らの手法では 3つの主な操作,突然変異,局所探索,選択がある.片山らの

手法の突然変異はクリークの頂点の多くが入れ替わる処理を行っている [4].局所探索は

K-opt Local Search(KLS)という高速な局所探索法を用いている.選択はなるべく似たよ

うなクリークを選ばない選択を行っている.また片山らの手法の応用として山崎らの手法

[5]がある.山崎らの手法では突然変異操作,局所探索,選択操作に変更を加えている.突

然変異の変更はクリークの一部分をランダムに削除する.局所探索の変更は Phased Local

Search(PLS)[6]を用いる.選択の変更は1つの親から異なる手法で3つの子を生成し,そ

れぞれの子から優先的に選択し残りを全体から選択する.

 山崎らの手法では突然変異操作,局所探索において隣接頂点集合の計算に多くの時間を

要することがわかっている.よって本論文ではトライ木 [7]という木構造を用いた計算時

間の短縮方法を提案する.トライ木とは順序付き木構造の一種であり,キーが文字列であ

る連想配列の実構造として用いられる.また任意のノードに値を持たせることが出来る.

本論文ではクリークの要素を並べて出来る系列をトライ木のキーとし,クリークに対応す

るノードに隣接頂点集合を保持する.突然変異操作や局所探索において,トライ木に保持

されたクリークと同じ頂点を含むクリークが現れた場合に隣接頂点集合を計算する過程を

省略することが出来る.トライ木に存在しないクリークが現れた場合は新たにトライ木に

挿入する.クリークから系列を作る際にクリークの要素を何らかの順序でソートすること

で,過去に現れたクリークに対し必ず過去に求めた隣接頂点集合を得ることが出来る.ま

た山崎らの手法に対し突然変異操作,選択操作における割合に変更を施し,入力に応じた

適切な割合を確認した.

 本論文の構成を以下に示す.第2章では本論文で用いる用語や表記などについての説明

を示す.第3章では従来手法として,山崎らの手法における Memeticアルゴリズムを用

いた最大クリーク問題の解法について述べる.第4章ではトライ木を用いた提案手法・選

択の割合の変更について説明する.第5章では DIMACSベンチマーク問題・ランダムグ

ラフで実験を行った結果を示す.最後に第6章で本論文のまとめと今後の課題について述

べる.

Page 7: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

3

第 2章

準備

本章では,本研究に関するいくつかの定義を示す.なお,本論文では単にグラフと書け

ば,ループや多重辺の無い無向グラフのことを指す.

諸定義

V を頂点集合,E を辺集合とし,グラフを G = (V, E)と表す.グラフ G = (V, E)におい

て,C ⊆ V なる C の任意の 2頂点間に辺が存在するとき,C をクリークと呼ぶ.グラフ

G = (V, E)に存在するクリークのうちで,最も頂点数の多いものを最大クリークと呼ぶ.

図 2.1: 最大クリークの例

図 2.1において最大クリークの例を示す.図のグラフにおいて,アルファベットは頂点

番号である.グラフ内のクリークの例として {a, b, d}, {b, c, d, e} などが挙げられる.グラフ内で頂点数の最も多いクリークは {b, c, d, e} であるので,{b, c, d, e} が最大クリークである.

Page 8: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

4

グラフ G = (V, E) の 2 頂点をランダムに選んだときにそれらの間に辺が存在する確率

をそのグラフの辺密度と呼ぶ.辺密度とはグラフ G = (V, E)に対して

(辺密度) =2|E|

|V | × (|V | − 1)

で計算される.例えば図 2.1のグラフの辺密度は 0.8となる.

Page 9: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

5

第 3章

従来手法

3.1 遺伝的アルゴリズム

遺伝的アルゴリズム (Genetic Algorithm,GA)とは,生物が交叉,突然変異,淘汰 (選択)

を繰り返しながら,環境に適応して進化する過程を,最適化問題を解く枠組みとして用い

たものである.問題の目的関数を適応度と呼び,個体に交叉,突然変異を行い,適応度に

応じて選択することで,最終的に適応度の高いものが残り良い個体が得られる.一般的な

GAは以下の流れで行う.

まずランダムに個体を作成し,初期集団を生成する.次に適応度の評価を行う.各個体

が環境に適応しているかを数値で表現し,適応度の低い個体は,選択によって淘汰され

る.交叉とは2つ以上の個体 (親)から新たな個体 (子)を生成する操作である.個体はそ

れぞれ遺伝子を持っており,一般的には,どちらの親の要素を選ぶかという指標を下に,

親同士の遺伝子の交換を行い,新たな個体を作成する.ここまでの操作だと,初期集団で

生成された個体の遺伝子以外を含む個体は生成されない.そこで個体に一定の確率で突然

変異を施す.突然変異によって個体の多様性を維持する.突然変異操作の例としては,あ

る遺伝子をランダムに別の遺伝子に変えるものや,遺伝子をある確率によって削除するも

のなどがある.以上を一世代の探索とし,終了条件に達するまで世代を繰り返すのが一般

的な GAである.GAの流れを図 3.1に表す.

3.2 最大クリーク問題を解く遺伝的アルゴリズム

3.2.1 Memeticアルゴリズム

GAは大域的探索能力に優れているが局所的な探索能力が欠けている.これらの相反す

る探索をバランスよく,より良好な探索性能を持つアルゴリズムとして,Memeticアルゴ

リズム (Memetic Algorithm,MA)がある.MAは GAと局所探索の融合化手法である.

Page 10: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

6

図 3.1: 遺伝的アルゴリズム (GA)の流れ

MAを用いた最大クリーク問題に対する研究に片山らの手法 [3]があるが,片山らの手

法では交叉を行っていない.交叉が有効な問題とは,質の良い解の周辺には,さらに上質

の解が多く存在する構造の問題である.そうした問題には,集中性をもたせた探索が有効

であり,解同士の類似部分の継承である交叉は有効だと考えられる.しかし本論文の実験

でも用いている DIMACSベンチマーク問題は,最適解と局所最適解の関連性は大きくな

い [3].そのため DIMACSベンチマーク問題に対して,GAの交叉は効果的ではないと思

われる.片山らの手法では選択と突然変異によって探索の多様化を図り,局所探索におい

て解の集中的探索を図る.この手法は交叉を用いないため,多くの解を保持しながら探索

を行い,広い範囲の探索を行う,進化型集団ヒューリスティクスの枠組みであると言え

る.また片山らの手法において突然変異,局所探索,選択に変更を加えた山崎らの手法

[5]がある. 山崎らの手法において,実験結果に誤りがあることがわかっているが,手法は

有効だと考えられる. 本論文では山崎らの手法に改良を施したものを提案手法として用い

る.よって本章では山崎らの手法の突然変異,選択に変更を施したものを従来手法として

説明する.

Page 11: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

7

3.2.2 Phased Local Searchを組み込んだ集団ヒューリスティクス

■Phased Local Search 山崎らの手法では文献 [6] で提案されている Phased Local

Search を Memetic アルゴリズムの局所探索に用いる.まず PLS について説明してい

く.PLS とは Random S ub_Algorithm,Degree S ub_Algorithm,Penalty S ub_Algorithm

という3つの異なる S ub_Algorithm を段階的に用いて,局所探索を行うものである.

それぞれの手法で頂点の追加方法が異なる.Random S ub_Algorithm とは追加候補集

合内からランダムにクリークに追加する手法である.Penalty S ub_Algorithm とは追

加候補集合内の頂点で,クリークに選ばれた回数が少ない順に頂点を追加する手法で

ある.Degree S ub_Algorithm とは追加候補集合内から頂点の次数の大きい順にクリー

クに追加する手法である.図 3.2 にアルゴリズム全体の流れを示す.入力はグラフ

G = (V,E),最適解の値 tcs,最大頂点追加回数 max_selections である.それぞれの

Phase で S ub_Algorithm を繰り返し用いて頂点の追加,削除を行う.S ub_Algorithm は

Random → Penalty → Degreeの順に使用する.終了条件は最適解が得られた場合,頂点

の追加回数が最大頂点追加回数を超えた場合である.

入力:グラフ G = (V,E),tcs(target clique size),max_selections

出力:tcs or failed

1: RandomS elect v ∈ V

2: C ← {v}3: while(selections < max_selections)

4: Phase(50,RandomS elect, Pertrub(Reinitialise))

5: if |C| ← tcs then return C

6: Phase(50, PenaltyS elect, Pertrub(Reinitialise))

7: if |C| ← tcs then return C

8: Phase(100,DegreeS elect, Pertrub(Initialise))

9: if |C| ← tcs then return C

10: end while11: return failed

図 3.2: PLSアルゴリズム

次に図 3.2内の Phaseの説明をする.この Phaseでは,iterations,S elect,Perturbを

Page 12: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

8

入力する.iterations はそれぞれの Phase の繰り返し回数を入力する.RandomPhase と

PenaltyPhaseでは繰り返し回数は 50回,DegreePhaseでは 100回である.S electはどの

S ub_Algorithmを用いるか入力する.Perturbは初期化方法を入力する.Reinitialiseは現

在のクリークに対して新たな1頂点を加え,隣接していない頂点を削除する.Initialiseは

現在のクリークの頂点をすべて削除し,任意の方法で(乱数を用いるなど)クリークを作

り直す.Phaseの流れを図 3.3に示す.

入力: iterations,fuction S elect, function Perturb

出力: クリーク C

1: while (iterations > 0 and selections < max_selections)

2: while (|PA0(C)| , 0 or |PA1(C) \ U | , 0)

3: while |(PA0(C) \ U | , 0)

4: v = S elect(PA0(C))

5: C = C ∪ {v}6: selections = selections + 1

7: if |C| = tcs then return C

8: U = ϕ

9: end while10: if (|PA1(C) \ U | , 0) then11: v = S elect(PA1(C) \ U)

12: {i} = C \ N(v)

13: C = [C ∪ {v}]\ {i}14: U = U ∪ {i}15: selections = selections + 1

16: end if17: end while18: iterations = iterations − 1

19: U pdatePenalties

20: Perturb

21: end while22: return C

図 3.3: Phase関数

Page 13: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

9

まず各記号の説明をする.頂点数は N で表す.PAn(C)は追加候補集合を表す.PAn(C)

はクリーク C と隣接していない数が n 個である頂点集合を表す.PA0(C) はクリーク C

と隣接していない数が 0,つまりクリーク C のすべての頂点と隣接している頂点集合で

ある.deg(v) は頂点 v と隣接する数を表し,G(C) はグラフ G における集合 C を表す.

degG(C)(v)は頂点 vと隣接する集合 C の数を表す.集合 U は追加,削除された頂点を再

び追加,削除されないように用いる.個体の親集団を Pp,子集団 Pc と定め,それぞれの

解集団のサイズを kとする.

line3-9 では極大クリークになるまで頂点の追加を繰り返す.S elect はそれぞれの

S ub_Algorithm に基づいて頂点を選択する.line10-13 では,極大クリークになった後,

PA1(C) \ U が存在すれば,PA1(C) \ U 内の頂点 v を追加し,クリーク C の v と隣接し

ていない頂点を削除する.N(v)はクリーク C に隣接している集合を表す.削除された頂

点を U に追加し,次の探索に選ばれないようにする.PA0(C) = PA1(C) \ U = ϕ になれ

ば 1Phase終了となる.頂点はそれぞれペナルティ値を持ち,Phase終了時にクリーク C

含まれている頂点のペナルティ値を 1つ増やす.PenaltyS ub_Algorithmではこのペナル

ティ値を用いる.

3.3 手法の流れ

3.3.1 手法1

PLS ではそれぞれの S ub_Algorithm を段階的に繰り返し用いている.しかしそれ

ぞれの S ub_Algorithm はグラフの構造によって向き不向きがある.例えばグラフ中

で次数の大きい頂点が,大きなクリークに含まれやすいランダムグラフなどでは,

Degree S ub_Algorithmが有効であり,Penalty S ub_Algorithmはあまり有効ではない.つ

まりグラフによってあまり効果的ではない S ub_Algorithm を繰り返し用いていることに

なる.そこで毎回の探索でそれぞれの S ub_Algorithm を用いることで,より速く最適解

に達すると考えられる.手法 1では毎世代 3つの S ub_Algorithmを用いて 1つの親から

3 つの子を生成する.毎回 3 つの子を生成することで,最適解への到達を速くすると共

に,解の多様性が期待できる.

図 3.4 に手法 1 のアルゴリズムを示す.手法 1 の流れは,まず極大クリークの解集団

である親集団 Pp を任意の方法で(乱数を使うなどして)k 個生成する (図 3.5).次に Pp

の各要素の近傍を S ub_Algorithm を用いて探索し新たな子集団 Pc を生成する (図 3.6).

Random S ub_Algorithmを用いて生成した子クリーク集合を CR,Penalty S ub_Algorithm

を用いて生成した子クリーク集合を CY,Degree S ub_Algorithm を用いて生成した子ク

リーク集合を CDとする.次に Pp,Pc から次世代親集団となる個体を選択する. 選択の

Page 14: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

10

操作に関して,手法 1では CR,CY,CDから優先的に選択し,残りを CR,CY,CD,CP

を一つとした CA からサイズ順に選択する (図 3.7).また選択の割合は変更可能である.

次に次世代親集団に対し突然変異を行う (図 3.8).突然変異の操作に関して,手法 1では

親集団の各個体に対し各個体の大きさを乱数を用いて4割削除するものである.削除の割

合は予備実験にて得た最適な数値である. これらを頂点数分の世代数だけ繰り返す.

3.3.2 手法 2

図 3.9 に手法 2 のアルゴリズムを示す.手法 2 では手法 1 の S ub_Algorithm に

Mutate S ub_Algorithm を加える (図 3.10).Mutate S ub_Algorithm とは突然変異を

S ub_Algorithmの中で行い,その後に乱数を用いて極大化したものを新たな子クリーク集

合 CM とするものである. 突然変異とは,手法 1と同様に Pp の各 C に対し要素の 4割を

ランダムで削除するものである.また突然変異を S ub_Algorithm 中で行うため,手法 1

における選択の後に行っていた突然変異は用いない.選択の操作に関して,手法 2 では

CD,CR,CY,CM から選択する (図 3.11).また選択の割合は変更可能である.これら

を頂点数分の世代数だけ繰り返す.

3.3.3 手法 3

図 3.12に手法 3のアルゴリズムを示す.手法 3では手法 1における突然変異操作を N

の 1/10 の世代数を消化する毎に行う (図 3.14).また突然変異の方法にも変更を加える.

手法 3における突然変異とは,各子集団からからサイズ順に上位 1割を次世代親集団に加

え,残り 7割は初期集団と同様に乱数を用いて生成する.また選択の操作に関して,手法

3では CR,CY,CDから選択する (図 3.13).また選択の割合は変更可能である.これら

を頂点数分の世代数だけ繰り返す.

Page 15: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

11

入力:グラフ G = (V,E),集団個数 k

出力:クリーク C

1: for(i from 1 to k) do CPi ← ϕ end for2: 初期集団の生成 (図 3.5参照)

3: generations← 1

4: while(generations ≦ |V |) then5: 局所探索 (図 3.6参照)

6: 選択 (図 3.7参照)

7: 突然変異 (図 3.8参照)

8: generations← generations + 1

9: end while10: C ← |CPi|が最大である CPi

11: return C

図 3.4: 手法 1のアルゴリズム

入力:グラフ G = (V,E),集団個数 k,親集団 CPi

出力:親集団 CPi

1: for(i from 1 to k) do2: RandomS elect v ({v} ∈ V)

3: CPi ← CPi ∪ {v}4: while |PA0(CPi)| > 0 then5: RandomS elect v ({v} ∈ PA0(CPi))

6: CPi ← CPi ∪ {v}7; end while8: end for9: return CPi

図 3.5: 初期集団の生成

Page 16: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

12

入力:グラフ G = (V,E),集団個数 k,親集団 CPi

出力:子集団 CRi,CYi,CDi

1: for(i from 1 to k) do2: if (|PA1(CPi)| , 0) then3: v← RandomS elect(PA1(CPi))

4: j← C \ N(v)

5: CRi ← [CPi ∪ {v}] \ j

6: PA0(CRi),PA1(CRi)を更新

7: v← PenaltyS elect(PA1(CPi))

8: j← C \ N(v)

9: CYi ← [CPi ∪ {v}] \ j

10: PA0(CYi),PA1(CYi)を更新

11: v← DegreeS elect(PA1(CPi))

12: j← C \ N(v)

13: CDi ← [CPi ∪ {v}] \ j

14: PA0(CDi),PA1(CDi)を更新

15: end if16: end for17: return CRi,CYi,CDi

図 3.6: 局所探索 (手法 1・手法 3)

Page 17: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

13

入力:グラフ G = (V,E),集団個数 k,親集団 CPi,子集団 CRi・CYi・CDi

出力:親集団 CPi

1: for(i from 1 to k) do CPi next← ϕ end for2: {w,x,y,z}←任意の自然数.ただし (w + x + y + z) = k

3: (CRi,CYi,CDi)をそれぞれサイズ順に降順ソート

4: for(i from 1 to w) do5: CPi next← CRi

6: CRi ← ϕ7: end for8: for(i from 1 to x) do9: CPi+w next← CYi

10: CYi ← ϕ11: end for12: for(i from 1 to y) do13: CPi+w+x next← CDi

14: CDi ← ϕ15: end for16: for(i from 1 to 4k) do CAi ← ϕ end for17: for(i from 1 to k) do18: CAi ← CPi

19: CAi+k ← CRi

20: CAi+2k ← CXi

21: CAi+3k ← CYi

22: end for23: CAi をサイズ順に降順ソート

24: for(i from 1 to z) do25: CPi+w+x+y next← CAi

26: end for27: CPi ← CPi next

28: return CPi

図 3.7: 選択 (手法 1)

Page 18: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

14

入力:グラフ G = (V,E),集団個数 k,親集団 CPi

出力:親集団 CPi

1: for(i from 1 to k) do2: m← |CPi ∗ 2/5|3: for( j from 1 to m) do4: RandomS elect v ({v} ∈ CPi)

5: CPi \ v

6: end for7: PA0(CPi),PA1(CPi)を更新

8: while |PA0(CPi)| > 0 then9: RandomS elect v ({v} ∈ PA0(CPi))

10: CPi ← CPi ∪ {v}11; end while12: end for13: return CPi

図 3.8: 突然変異 (手法 1)

入力:グラフ G = (V,E),集団個数 k

出力:クリーク C

1: for(i from 1 to k) do CPi ← ϕ end for2: 初期集団の生成 (図 3.5参照)

3: generations← 1

4: while(generations ≦ |V |) then5: 局所探索・突然変異 (図 3.10参照)

6: 選択 (図 3.11参照)

7: generations← generations + 1

8: end while9: C ← |CPi|が最大である CPi

10: return C

図 3.9: 手法 2のアルゴリズム

Page 19: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

15

入力:グラフ G = (V,E),集団個数 k,親集団 CPi

出力:子集団 CRi,CYi,CDi,CMi

1: for(i from 1 to k) do2: if (|PA1(CPi)| , 0) then3: v← RandomS elect(PA1(CPi))

4: j← C \ N(v)

5: CRi ← [CPi ∪ {v}] \ j

6: PA0(CRi),PA1(CRi)を更新

7: v← PenaltyS elect(PA1(CPi))

8: j← C \ N(v)

9: CYi ← [CPi ∪ {v}] \ j

10: PA0(CYi),PA1(CYi)を更新

11: v← DegreeS elect(PA1(CPi))

12: j← C \ N(v)

13: CDi ← [CPi ∪ {v}] \ j

14: PA0(CDi),PA1(CDi)を更新

15: end if16: m← |CPi ∗ 2/5|17: for( j from 1 to m) do18: RandomS elect v ({v} ∈ CPi)

19: CPi \ v

20: end for21: PA0(CPi),PA1(CPi)を更新

22: CMi ← CPi

23: while |PA0(CMi)| > 0 then24: RandomS elect v ({v} ∈ PA0(CMi))

25: CMi ← CMi ∪ {v}26: end while27: end for27: return CRi,CYi,CDi,CMi

図 3.10: 局所探索・突然変異 (手法 2)

Page 20: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

16

入力:グラフ G = (V,E),集団個数 k,子集団 CRi・CYi・CDi・CMi

出力:親集団 CPi

1: {w,x,y,z}←任意の自然数.ただし (w + x + y + z) = k

2: (CRi,CYi,CDi,CMi)をそれぞれサイズ順に降順ソート

3: for(i from 1 to w) do4: CPi ← CRi

5: end for6: for(i from 1 to x) do7: CPi+w ← CYi

8: end for9: for(i from 1 to y) do10: CPi+w+x ← CDi

11: end for12: for(i from 1 to z) do13: CPi+w+x+z ← CMi

14: end for15: return CPi

図 3.11: 選択 (手法 2)

Page 21: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

17

入力:グラフ G = (V,E),集団個数 k

出力:クリーク C

1: for(i from 1 to k) do CPi ← ϕ end for2: 初期集団の生成 (図 3.5参照)

3: generations← 1

4: while(generations ≦ |V |) then5: 局所探索 (図 3.6参照)

6: 選択 (図 3.13参照)

7: 突然変異 (N ∗ 1/10世代消化毎,図 3.14参照)

8: generations← generations + 1

9: end while10: C ← |CPi|が最大である CPi

11: return C

図 3.12: 手法 3のアルゴリズム

入力:グラフ G = (V,E),集団個数 k,子集団 CRi・CYi・CDi

出力:親集団 CPi

1: {x,y,z}←任意の自然数.ただし (x + y + z) = k

2: (CRi,CYi,CDi,CMi)をそれぞれサイズ順に降順ソート

3: for(i from 1 to x) do4: CPi ← CRi

5: end for6: for(i from 1 to y) do7: CPi+x ← CYi

8: end for9: for(i from 1 to z) do10: CPi+x+y ← CDi

11: end for12: return CPi

図 3.13: 選択 (手法 3)

Page 22: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

18

入力:グラフ G = (V,E),集団個数 k,親集団 CPi,子集団 CRi・CYi・CDi

出力:親集団 CPi

1: (CRi,CYi,CDi)をそれぞれサイズ順に降順ソート

2: for(i from 1 to k/10) do3: CPi ← CRi

4: CPi+k/10 ← CDi

5: CPi+2k/10 ← CYi

6: end for7: for(i from 3k/10 to k) do8: CPi ← ϕ9: RandomS elect v ({v} ∈ V)

10: CPi ← CPi ∪ {v}11: while |PA0(CPi)| > 0 then12: RandomS elect v ({v} ∈ PA0(CPi))

13: CPi ← CPi ∪ {v}14; end while15: end for16: return CPi

図 3.14: 突然変異 (手法 3)

Page 23: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

19

第 4章

提案手法

本論文における提案手法とは,Memeticアルゴリズム (MA)を用いた最大クリーク問題

に対する解法 [5]にトライ木 [7]を組み込むことで高速化を計るものである.図 4.1にお

いて提案手法の概略をフローチャートで示す.

図 4.1: 提案手法のフローチャート

提案手法では,トライ木を用いることで,従来手法における局所探索・突然変異の操作

における隣接頂点集合の計算を高速に行う.まず 4.1節ではトライ木の一般的な使用方法

について示す.次に 4.2 節では MA を用いた最大クリーク問題に対するトライ木の使用

Page 24: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

20

方法について示す.また 4.3節では従来手法における選択方法の変更について示す.

4.1 トライ木とは

トライ木とは M 進木の順序付き木構造の一種であり,トライ木の節点は数字あるいは

文字に相当する要素の M 個の配列である.レベル l の各節点は語頭と呼ぶ l 個の文字の

並びで始まる全てのキーの集合を表す.その節点は (l + 1)番目の文字によって最大 M 通

りの枝分かれをする.また任意の節点に対し値を持たせることが出来る.トライ木はキー

が文字列である連想配列の実装構造として使われる.二分探索木と比較した場合,主な利

点は以下の通りである.

• キー検索が高速である.長さ mのキー検索は最悪で O(m)の時間がかかる.2分探索

木では O(logn)の時間であり,nは木を構成するノード数である(木の深さに応じた

時間がかかり,2分探索木の深さは nの対数となる).トライ木が検索処理で行う文

字でインデックス付けした配列の操作なども,実際のマシンでは高速である.特に失

敗探索に関しては高速である.

• 多数の短い文字列を格納する場合にはトライ木の方がメモリを節約できる.これは

キーが明示的に格納されないためであり,複数のキーによってノードが共有されるた

めである.

• トライ木は最も長い語頭とマッチするので,あるキーと最も長い語頭が共通なキーを

効率的に捜すこともできる.そのような共通語頭に対応したノードに新たに値を格納

することもできる.

• トライ木は木構造として平衡を保つ必要はない.2分探索木は深さが平衡していない

と性能に悪影響がある.

また主な欠点は以下の通りである.

• トライ木はキーの順序が必要であり,何かしらの順序でソートされていなければなら

ない.

• トライ木は状況によっては極めて巨大になる.例えば,少数の非常に長い文字列を格

納するトライ木などである.

• トライ木のアルゴリズムは単純な 2分探索木よりも複雑である.

• データを文字列として表すのは常に簡単とは言えない.例えば,複雑なデータ構造や

浮動小数点数などをキーとする場合,工夫が必要となる.

トライ木の典型的な応用として辞書の格納がある.例えば,携帯電話などで使われてい

る.トライ木の利点として検索の高速性と新たなエントリの挿入やエントリの削除の容易

Page 25: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

21

性が活用されている.よってトライ木はスペルチェッカなどの近似的マッチングアルゴリ

ズムの実装にも適している.

図 4.2にトライ木の具体例を示す.

図 4.2: "i","in","tea","to"というキー群によるトライ木

図 4.2は,英単語を成す文字列をキーとし,キーに対するノードに数値を与えるもので

ある.

4.2 トライ木を用いた高速化

予備実験により,従来手法は局所探索,突然変異において C が更新された際,PA0(C),

PA1(C)の計算に多くの時間を費やしていることが分かった.

従来手法においては,処理中に現れるクリーク(極大とは限らない)C に対し適宜

PA0(C)や PA1(C)を求める.PA0(C)と PA1(C)が分かっているとき,C に新たに頂点を

加えた後の PA0(C)と PA1(C)を求めるのは容易に行えるが,C から頂点を一つ削除した

後の PA1(C)を求める際は V の要素をしらみつぶしに調べる.このことが計算時間のネッ

クになっていると思われる.

提案法ではクリーク C の要素を並べてできる系列をトライ木のキーとし,C に対応す

るノードに PA0(C), PA1(C)を保持する.突然変異や局所探索で,トライ木に保存された

C と同じ頂点を含む C が出現した場合に PA0,PA1 を計算する過程を省略することが出

来る.トライ木に存在しない C が現れた場合は新たにトライ木に保存する.C から系列

を作る際,C の要素を何らかの順序で(例えば頂点番号順に)ソートすることで,過去に

現れた C に対し必ず過去に求めた PA0,PA1 を得ることができる.従来手法の手法 1に

トライ木を用いたアルゴリズムを図 4.3~4.6,トライ木の使用例を図 4.7~4.9で示す.ま

Page 26: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

22

た図 4.3~図 4.6 における記号について説明する.TrieTree とはトライ木のことを示す.

C{i} とはクリーク C を構成する頂点系列に対し,1 番目から i 番目までの頂点で構成さ

れる部分的なクリークのことを示す.C{i}に関する例として,C = {a,b,c,d}に対してC{3} = {a,b,c}である.PA0(C{i}),PA1(C{i})とは,C{i}に対する隣接頂点集合である.PA0(C{i}),PA1(C{i}) がトライ木に保持される場合,C{i} の頂点系列をキーとし,i 番目

の頂点をキーの終端としたノードに PA0(C{i}),PA1(C{i}) が保持される.TrieTreeKey,

TrieTreeNode とは,それぞれトライ木に保存するキー (クリークの頂点系列) と,その

キーに対応するノード (クリークに対応する隣接頂点集合)を示す.

入力:グラフ G = (V,E),集団個数 k

出力:クリーク C

1: create TrieTree

2: for(i from 1 to k) do CPi ← ϕ end for3: 初期集団の生成 (図 3.5参照)

4: generations← 1

5: while(generations ≦ |V |) then6: 局所探索 (図 4.4参照)

7: 選択 (図 3.7参照)

8: 突然変異 (図 4.5参照)

9: generations← generations + 1

10: end while11: C ← |CPi|が最大である CPi

12: return C

図 4.3: 提案手法 (手法 1)のアルゴリズム

Page 27: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

23

入力:グラフ G = (V,E),集団個数 k,親集団 CPi,トライ木 TrieTree

出力:子集団 CRi,CYi,CDi

1: for(i from 1 to k) do2: if (|PA1(CPi)| , 0) then3: v← RandomS elect(PA1(CPi))

4: j← C \ N(v)

5: CRi ← [CPi ∪ {v}] \ j

6: トライ木への検索・挿入 (図 4.6)

7: v← PenaltyS elect(PA1(CPi))

8: j← C \ N(v)

9: CYi ← [CPi ∪ {v}] \ j

10: トライ木への検索・挿入 (図 4.6)

11: v← DegreeS elect(PA1(CPi))

12: j← C \ N(v)

13: CDi ← [CPi ∪ {v}] \ j

14: トライ木への検索・挿入 (図 4.6)

15: end if16: end for17: return CRi,CYi,CDi

図 4.4: 局所探索 (提案手法 (手法 1))

Page 28: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

24

入力:グラフ G = (V,E),集団個数 k,親集団 CPi,トライ木 TrieTree

出力:親集団 CPi

1: for(i from 1 to k) do2: m← |CPi ∗ 2/5|3: for( j from 1 to m) do4: RandomS elect v ({v} ∈ CPi)

5: CPi \ v

6: end for7: トライ木への検索・挿入 (図 4.6)

8: while |PA0(CPi)| > 0 then9: RandomS elect v ({v} ∈ PA0(CPi))

10: CPi ← CPi ∪ {v}11; end while12: end for13: return CPi

図 4.5: 突然変異 (提案手法 (手法 1))

Page 29: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

25

入力:クリーク C ,トライ木 TrieTree

出力: C ,隣接頂点集合 PA0(C),PA1(C),トライ木 TrieTree

1: c← |C|2: C を昇順ソート

3: for(i from 1 to c) do4: if(C{i}がトライ木に存在しない) then5: if(i>1) then PA0(C{i − 1}),PA1(C{i − 1})をトライ木から引用 end if6: for( j from i to c) do7: PA0(C{ j}),PA1(C{ j})を更新8: TrieTreeKey← C j

9: TrieTreeNode← PA0(C{ j}),PA1(C{ j})10: end for11: i← c − 1

12: end if13: else if(i=c) then C{c}の PA0(C),PA1(C)をトライ木から引用 end if14: end for15: return C,PA0(C),PA1(C),TrieTree

図 4.6: トライ木への検索・挿入

Page 30: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

26

図 4.7: トライ木の一例

Page 31: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

27

図 4.7では,{b,c,d,e}からなるクリーク C0 の PA0,PA1 を求める際に,C0 の各頂点

に対する PA0,PA1 がトライ木に保存される流れを示す.C0 における PA0,PA1 を求め

るまでに C0 の頂点からなる PA0,PA1 は全てトライ木に保存される.続いて突然変異な

どで {a,b,d}からなるクリーク C1 を求める際の流れを図 4.8で示す.

図 4.8は,トライ木が効率良く使用出来なかった場合の一例である.{a,b,d}からなるC1 の PA0,PA1 を求める際,図 4.7で得られた {b}に {a,d}を加えると C1 の PA0,PA1

は求まる.しかしトライ木へ C1 の PA0,PA1 を挿入する際に,キーとなる C1 の頂点系列

は頂点番号順にソートをする必要がある.何故ならば,ソートをすることで過去に現れた

クリークを必ず見つけることが出来るからである.例えば,{a,b,d}と {b,a,d}は同じクリークだが,トライ木では挿入順序が違うと同じ要素からなるキーであっても区別はつ

かない.トライ木に C1 を保存する場合は,{b}の先端に {a,d}をつぎ足すことは出来ないので,図 4.8の様な保存方法になりトライ木の容量が増える要因の一つとなる.また,

更に突然変異などで {b,c,f } からなるクリーク C2 の PA0,PA1 を求める際の流れを図

4.9で示す.

図 4.9において,従来手法では {b},{b,c}における PA0,PA1 を逐次求めた後に C2 の

PA0,PA1 を求める.しかしトライ木には {b,c}における PA0,PA1 が既に保存されてい

る.よってトライ木を参照することで {b,c} からなるクリークに { f } を加えた際の PA0

,PA1 を求めることで C2 における PA0,PA1 を求めることが出来る.このようにしてト

ライ木を用いることで,同じクリークの PA0,PA1 の再計算をする手間を省略することが

出来る.

Page 32: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

28

図 4.8: トライ木の一例

Page 33: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

29

図 4.9: トライ木の一例

Page 34: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

30

4.3 従来手法における選択方法の変更

従来手法では,選択方法について変更が可能である.本節ではそれぞれの選択法方につ

いての考察をし,グラフに応じた特性を記載していく.従来手法の選択において,中心と

なる選択方法は RandomS elect,PenaltyS elect,DegreeS elect の 3種類である.よってこ

れらについて再度考察し,具体的な説明を加える.

RandomS elect ランダムに頂点を選択する.網羅性に特化した選択方法.

PenaltyS elect 使用頻度の低い頂点を選択する.網羅性に特化しており,初期状態では効

     果を発揮しないが,世代数が消化された後では RandomS electより性能の

     高い網羅性を発揮する.

DegreeS elect 次数の高い頂点を選択する.集中性に特化した選択方法.

ここで網羅性とは,解の探索空間を広げていく様に頂点を選択する性質である.集中性と

は,解に対し次数の高い近傍を探索する性質である.よって RandomS elect,PenaltyS elect

を中心に選択すると網羅性に特化した選択方法となり,DegreeS elect を中心に選択する

と集中性に特化した選択法方となる.問題によって,網羅性・集中性のどちらに特化すれ

ば良いかは変わると考えられる.辺密度が大きいグラフでは次数が大きい頂点同士がク

リークに含まれている可能性が高いので,集中性に特化する選択方法が有効だと考えられ

る.辺密度が小さいグラフでは辺密度が大きいグラフと比べると次数が解に与える影響は

少ない.よって探索範囲を広げる網羅性に特化した選択方法が,集中性に特化した探索方

法と比べ有効だと考えられる.

Page 35: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

31

第 5章

計算機実験

従来法と提案法に対し,計算機実験を行い比較,考察した.最大クリーク問題に対する

アルゴリズムの評価には,DIMACSベンチマーク問題 [8]がよく用いられる.本実験には,

DIMACSベンチマーク問題・ランダムグラフを使用した.

  DIMACSベンチマークグラフとは,1990年から行われた,様々な問題に対してて同じ

ベンチマーク問題を用いて,アルゴリズムの性能を分析するというものである.本論文で

は,最大クリーク問題のベンチマーク問題を用いる.以下にグラフの詳細を示す.

C:ランダムグラフであり,Cn.p というインスタンスは,頂点数 n,辺密度 10p%となる.

DSJC:D.Johnsonによって文献 [9]で作られたランダムグラフ.

MANN:スタイナー問題による集合被覆問題を変換した問題 [10].

brock:文献 [11]を元にした問題で,同じ頂点数・辺密度のランダムグラフと比べ大きい

クリークが存在する問題である.また大きいクリークが隣接数などの情報だけでは見つけ

にくく作られている.

gen:文献 [12]を元にしたもので,最大クリークを設定した後に人工的に作られたグラフ.

hamming:符号理論の問題に基づいて作成された問題で,n, d二つのパラメータから生成

される.長さ nの各ビット列に対応する頂点を持ち,各二頂点間はハミング距離が d以上

のときに隣接する.

keller:超立方体を用いたタイリングに関するケラーの推測に基づいた問題 [13].

p_hat:ランダムグラフであり,p_hatn − d というインスタンスは頂点数 n,辺密度 0.25d

となる.このグラフは一様にランダムとして生成されたグラフよりも各頂点の次数のひろ

がりが大きく,クリークも大きなものを持つ [14].

Page 36: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

32

5.1 実験環境

DIMACS ベンチマーク問題での実験では各ベンチマーク問題に対して 100 回ずつ実

行し,その平均を求めた.アルゴリズムの終了条件は,規定世代数に達したときである.

集団の個数 N は 20,規定世代数 G は頂点数とし上限を 1000 とした.またプログラム

の終了時間は上限を 120 秒とした. 実験で用いた計算機の CPU は Intel(R)Core(TM)i7-

[email protected], プログラム言語は Java,OS は Ubuntu12.10(maverick) である.表

5.1~5.3に DIMACSベンチマーク問題に対する各手法の結果を示す.グラフの頂点数は

グラフ名の 3,4桁の数字,辺密度は表内に記した.グラフ名に頂点数の載ってないもの

は,辺密度の項に記した.またそれぞれのグラフの厳密解も記している.≥がついているものは厳密解であることは証明されていない値で,これまでに知られている最良解を記し

ている.

 またランダムグラフでの実験では頂点数が 3000・5000,辺密度が 0.1 刻みで 0.1 から

0.3までのランダムグラフ 100個に対し,その平均を求めた.これらのグラフを選択した

理由として,DIMACSベンチマーク問題では頂点数が多く辺密度が低いグラフがなかっ

たため,提案手法の性能を確認するために自作したものである.アルゴリズムの終了条件

等の実験環境は DIMACSベンチマーク問題と同様である.

図 5.1に各手法におけるトライ木の有無・選択比率に関する一覧を記載する.図 5.1に

おけるトライ木に関する列について,トライ木を使用していなければ 0,使用していれば

1とする.また Random,Penalty,Degree,All,Mutateに関する列については,各手法に

おいてどの選択方法が何割選択されたかについて記載している.今後,各手法の記載方法

について,例として図 5.1における従来手法の 1行目については,従来手法 013510の様

に記載する.ただし,提案手法の 3行目における手法は選択比率が移行するため提案手法

Penaltyとする.提案手法 Penaltyでは解の更新が頂点数の 1/10世代行われなかった際に

Penaltyの割合を大きくし,クリークに選ばれなかった頂点をクリークに追加することで

解の更新を計るものである.本論文では各手法に対して,大別して Degreeの割合を大き

く取り集中性に特化した選択方法,Random,Penaltyの割合を大きく取り網羅性に特化し

た選択方法の 2種類について実験を行った.表 5.4にランダムグラフに対する各手法の結

果を示す.

5.2 実験結果

表 5.1~5.3より計算時間に関して,トライ木を用いた提案手法 113510は辺密度が 0.9

を超える密なグラフに対して, トライ木を用いていない従来手法 013510 に劣る結果と

Page 37: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

33

図 5.1: 各手法におけるトライ木の有無・選択比率

なった.しかし辺密度が 0.9未満のグラフに対しては,全てのグラフでトライ木を用いて

いない従来手法 013510と比べ高速に解を求めることが出来た.トライ木を用いた提案手

法 Penaltyはトライ木を用いていない従来手法 013510と比べ,辺密度に関わらず多くの

グラフで高速に解を求めることが出来た.トライ木を用いた提案手法 112403,提案手法

123500はトライ木を用いていない従来手法 012403,従来手法 023500と比べ,全てのグ

ラフにおいて高速に解を求めることが出来た.近似解の精度に関して,従来手法 013510

が従来手法 012403,従来手法 023500,提案手法 Penaltyと比べ多くのグラフにおいて良

い結果を得ることが出来た.また brockに関して,全ての手法で良い結果を得ることが出

来なかった.

 表 5.4,5.5より計算時間に関して,辺密度 0.1,0.2においては提案手法 113510,提案

手法 135110が高速に解を求めることが出来た.辺密度 0.3においては提案手法 123500,

提案手法 144200が高速に解を求めることが出来た.表 5.4,5.5において,それぞれ計算

時間が 1 つのみである理由として,選択の割合を変えただけのものは計算時間自体に変

化がないためである.近似解の精度に関して,辺密度が低いグラフに関して,提案手法

144200が良い結果を得ることが出来た.

Page 38: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

34

考察

計算時間に関して,トライ木を用いた提案手法 113510 は辺密度が 0.9 未満では高速

に解を求めることができ,トライ木を用いた提案手法 112403,提案手法 123500 におい

ても全てのグラフにおいて高速に解を求めることが出来た.トライ木を用いた提案手法

113510が辺密度 0.9以上でトライ木を用いていない従来手法 013510と同等,もしくは劣

る結果となった原因について考察する.トライ木を用いた提案手法 113510では全ての親

集団に対し突然変異を行い,その際に出てくる全てのクリークと PA0,PA1 をトライ木に

保存する.よって辺密度が非常に高いグラフではトライ木を用いた提案手法 112403,提

案手法 123500と比べトライ木に保存する情報量が増大する.トライ木を用いた計算時間

の短縮と比べ,メモリ不足にはならなかったもののトライ木に保存する情報量が多く,ト

ライ木への挿入に多くの時間が掛かることがわかった.しかしトライ木へ保存する情報量

が過多でない場合,トライ木を用いた利点は大きく作用することが分かった.近似解の精

度に関して,従来手法 013510が多くのグラフで良い結果を得た.よって従来手法 013510

が集中性と網羅性のバランスが最も良いと考えられる.従来手法 013510が brockなどの

解くことが困難であるグラフで良い結果を出せなかったことから,提案手法 Penaltyを提

案したが良い結果は得られなかった.

 辺密度が低いランダムグラフにおいて,計算時間に関して,辺密度 0.1,0.2では提案手

法 113510,提案手法 135110が,辺密度 0.3では提案手法 123500,提案手法 144200が高

速に解を求めることが出来た.しかし辺密度 0.3では提案手法 113510,提案手法 135110

は提案手法 123500,提案手法 144200に大きく劣ることから提案手法 123500,提案手法

144200が低辺密度においては有効だと考えられる.クリークのサイズに関して,わずか

ながら提案法 6が良い結果を得ることが出来た.よって低辺密度のグラフにおいては,集

中性よりも網羅性に特化した選択方法が良い解を得ることがわかった.

Page 39: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

35

表 5.1: 実験 1(計算時間 [sec])

グラフ 辺密度 厳密解 従来手法 013510 提案手法 113510 提案手法 Penalty

C125.9 0.9 ≧ 34 0.68 0.95 1.34

C250.9 0.9 ≧ 44 2.55 2.56 3.04

C500.9 0.9 ≧ 57 12.95 9.79 12.47

C1000.9 0.9 ≧ 68 71.24 68.69 72.2

C2000.5 0.5 ≧ 16 96.8 24.92 10.77

C2000.9 0.9 ≧ 78 timeover timeover timeover

C4000.5 0.5 ≧ 18 timeover 97.85 48.02

DSJC1000.5 0.5 ≧ 13 30.56 7.67 2.92

MANN_a27 0.99(378) 126 18.47 19.65 20.54

MANN_a45 0.99(1035) 345 timeover timeover timeover

brock200_2 0.5 12 0.8 0.57 0.48

brock200_4 0.65 17 0.94 0.73 0.66

brock400_2 0.75 29 5.18 2.46 1.98

brock400_4 0.75 33 5.22 2.46 1.96

brock800_2 0.65 24 22.95 7.49 5.4

brock800_4 0.65 26 23.31 7.54 5.34

gen200_p0.9_44 0.9 44 1.68 1.9 2.16

gen200_p0.9_55 0.9 55 1.51 1.43 1.88

gen400_p0.9_55 0.9 55 7.82 6.95 8.03

gen400_p0.9_65 0.9 65 6.45 5.39 6.91

gen400_p0.9_75 0.9 75 5.98 4.72 6.39

hamming8-4 0.63(256) 16 0.99 0.65 0.65

hamming10-4 0.83(1024) 40 53.4 47.51 46.52

keller4 0.65(171) 11 0.71 0.6 0.47

keller5 0.75(776) 27 25.21 9.69 7.55

keller6 0.82(3361) 59 timeover timeover timeover

p_hat300-1 0.25 8 1.21 0.61 0.46

p_hat300-2 0.5 25 2.44 1.43 1.36

p_hat300-3 0.75 36 3.09 3.08 4.14

p_hat700-1 0.25 11 9.85 1.74 0.63

p_hat700-2 0.5 ≧ 44 20.17 15.33 22.23

p_hat700-3 0.75 ≧ 62 26.93 18.55 27.56

p_hat1500-1 0.25 ≧ 12 45.03 9.71 1.44

p_hat1500-2 0.5 ≧ 65 97.75 63.79 99.69

p_hat1500-3 0.75 ≧ 94 timeover 116.51 timeover

Page 40: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

36

表 5.2: 実験 2(計算時間 [sec])

グラフ 辺密度 厳密解 従来手法 012403 提案手法 112403 従来手法 023500 提案手法 123500

C125.9 0.9 ≧ 34 0.61 0.48 0.53 0.4

C250.9 0.9 ≧ 44 2.13 0.82 1.98 0.53

C500.9 0.9 ≧ 57 11.12 2.31 10.49 0.92

C1000.9 0.9 ≧ 68 62.28 10.24 58.61 2.66

C2000.5 0.5 ≧ 16 81.06 6.05 76.13 2.17

C2000.9 0.9 ≧ 78 timeover 33.08 timeover 10.99

C4000.5 0.5 ≧ 18 timeover 21.65 timeover 13.21

DSJC1000.5 0.5 ≧ 13 25.50 2.09 22.97 0.75

MANN_a27 0.99(378) 126 10.7 7.02 8.67 3.8

MANN_a45 0.99(1035) 345 timeover timeover timeover timeover

brock200_2 0.5 12 0.62 0.38 0.55 0.34

brock200_4 0.65 17 0.77 0.43 0.7 0.41

brock400_2 0.75 29 4.34 0.79 3.89 0.49

brock400_4 0.75 33 4.4 0.79 3.95 0.49

brock800_2 0.65 24 19.04 1.85 18.29 0.7

brock800_4 0.65 26 19.66 1.84 17.62 0.69

gen200_p0.9_44 0.9 44 1.42 0.75 1.3 0.5

gen200_p0.9_55 0.9 55 1.29 0.7 1.16 0.47

gen400_p0.9_55 0.9 55 6.73 1.71 6.24 0.79

gen400_p0.9_65 0.9 65 6.1 1.55 5.73 0.78

gen400_p0.9_75 0.9 75 5.44 1.48 5.56 0.82

hamming8-4 0.63(256) 16 0.73 0.39 0.62 0.3

hamming10-4 0.83(1024) 40 37.79 6.82 29.76 1.22

keller4 0.65(171) 11 0.61 0.36 0.56 0.34

keller5 0.75(776) 27 22.38 2.58 21.35 0.92

keller6 0.82(3361) 59 timeover 63.79 timeover 41.93

p_hat300-1 0.25 8 0.98 0.41 0.88 0.37

p_hat300-2 0.5 25 2.09 0.64 1.96 0.43

p_hat300-3 0.75 36 2.62 0.82 2.45 0.53

p_hat700-1 0.25 11 8.15 0.88 8.13 0.47

p_hat700-2 0.5 ≧ 44 17.8 2.5 16.9 0.94

p_hat700-3 0.75 ≧ 62 23.5 4.21 22.19 1.39

p_hat1500-1 0.25 ≧ 12 37.8 2.88 36.09 1.38

p_hat1500-2 0.5 ≧ 65 87.17 12.58 82.19 3.77

p_hat1500-3 0.75 ≧ 94 111.2 20.77 105.13 6.98

Page 41: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

37

表 5.3: 実験 3(近似解)

グラフ 辺密度 厳密解 従来手法 013500 従来手法 012403 従来手法 023500 提案手法 Penalty

C125.9 0.9 ≧ 34 33.9 33.8 33.7 33.1

C250.9 0.9 ≧ 44 43.4 42.6 41.8 40.1

C500.9 0.9 ≧ 57 54.6 52.8 52.2 47.8

C1000.9 0.9 ≧ 68 64 62 60.8 61.8

C2000.5 0.5 ≧ 16 14.7 14.4 14.2 13.3

C2000.9 0.9 ≧ 78 63.9 69.3 68.5 64.6

C4000.5 0.5 ≧ 18 16 15.5 15.2 14.3

DSJC1000.5 0.5 ≧ 13 13 13 13 12.7

MANN_a27 0.99(378) 126 123.5 125 124.1 122.6

MANN_a45 0.99(1035) 345 334.9 338.1 338.3 335.1

brock200_2 0.5 12 10.2 10.1 10 10.4

brock200_4 0.65 17 15.6 15.2 15 15

brock400_2 0.75 29 23.4 22.9 22.5 21.8

brock400_4 0.75 33 23.6 23 22.9 21.6

brock800_2 0.65 24 19.4 19 18.7 17.6

brock800_4 0.65 26 19.2 18.9 18.6 17.6

gen200_p0.9_44 0.9 44 41.4 39.8 39.1 40.4

gen200_p0.9_55 0.9 55 53.2 50.1 49.8 55

gen400_p0.9_55 0.9 55 51.5 49.3 48.7 45.7

gen400_p0.9_65 0.9 65 62.8 52.7 51.8 64.3

gen400_p0.9_75 0.9 75 75 63.1 58.1 74.7

hamming8-4 0.63(256) 16 16 16 16 16

hamming10-4 0.83(1024) 40 32.7 38.0 37.1 33.1

keller4 0.65(171) 11 11 11 11 10.8

keller5 0.75(776) 27 26.5 24.7 23.6 21.2

keller6 0.82(3361) 59 54.2 49.8 45.7 48.5

p_hat300-1 0.25 8 7.9 7.8 7.8 7.8

p_hat300-2 0.5 25 25 25 24.9 24.8

p_hat300-3 0.75 36 35.4 34.8 34.3 33.3

p_hat700-1 0.25 11 9.7 9.3 9.2 10

p_hat700-2 0.5 ≧ 44 44 43.6 43.6 42.1

p_hat700-3 0.75 ≧ 62 61.7 61.5 61.1 58.2

p_hat1500-1 0.25 ≧ 12 10.9 10.4 10.2 10.1

p_hat1500-2 0.5 ≧ 65 64.5 64.5 64.1 60.6

p_hat1500-3 0.75 ≧ 94 92.8 92.1 89.6 91

Page 42: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

38

表 5.4: 実験 4

提案手法 113510 提案手法 135110 提案手法 113510 提案手法 135110

グラフ 辺密度 近似解 近似解 計算時間 [sec] 計算時間 [sec]

3000 0.1 6 6 0.67 0.65

3000 0.2 7.7 7.6 1.34 1.35

3000 0.3 9.9 9.8 3.22 3.12

提案手法 112403 提案手法 124103 提案手法 112403 提案手法 124103

グラフ 辺密度 近似解 近似解 計算時間 [sec] 計算時間 [sec]

3000 0.1 6 6 5.93 5.9

3000 0.2 7.5 7.9 7.36 7.38

3000 0.3 9.6 9.9 9.49 9.41

提案手法 123500 提案手法 144200 提案手法 123500 提案手法 144200

グラフ 辺密度 近似解 近似解 計算時間 [sec] 計算時間 [sec]

3000 0.1 5.9 6 1.1 1.08

3000 0.2 7.6 8 1.39 1.38

3000 0.3 9.5 10 1.49 1.42

提案手法 113510 提案手法 135110 提案手法 113510 提案手法 135110

グラフ 辺密度 近似解 近似解 計算時間 [sec] 計算時間 [sec]

5000 0.1 6 6 0.84 0.84

5000 0.2 8 8 2.62 2.6

5000 0.3 10.1 10.1 13.05 13.01

提案手法 112403 提案手法 124103 提案手法 112403 提案手法 124103

グラフ 辺密度 近似解 近似解 計算時間 [sec] 計算時間 [sec]

5000 0.1 6 6 14.15 14.2

5000 0.2 8 8 20.3 20.2

5000 0.3 10.1 10.2 27.5 27.4

提案手法 123500 提案手法 144200 提案手法 123500 提案手法 144200

グラフ 辺密度 近似解 近似解 計算時間 [sec] 計算時間 [sec]

5000 0.1 6 6.1 2.35 2.36

5000 0.2 8.1 8.1 2.89 2.88

5000 0.3 10 10.2 3.54 3.51

Page 43: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

39

第 6章

あとがき

本論文では一つの親集団から複数の子集団を作成し,それらから次世代親集団を選択す

る既存の Memeticアルゴリズム (MA)を用いた最大クリーク問題の解法に,トライ木を

用いて隣接頂点集合の再計算を省略することで高速化を実現した.計算機実験により,従

来の MA に対しトライ木に保存する情報量が膨大にならない限り,トライ木を用いるこ

とで高速に解を求めることが出来た.トライ木に保存する量が膨大になった場合,トライ

木への挿入の手間がトライ木を用いた計算時間の短縮より多くの計算時間を要したため従

来手法に劣る結果となった.

また既存の MA の選択方法に関する変更を行い,辺密度に応じた適切な選択比率を確

認した.従来手法では次数に重きを置いた集中性に特化した選択方法が有効だとされてい

た.しかし低辺密度のグラフにおいては,解の近傍を集中して探索することと比べ,網羅

性に特化した選択方法が良い解を得ることが出来た.

今後の課題としては,トライ木に保存する頂点集合の取捨選択が挙げられる.使用頻度

の高い頂点集合のみがトライ木に保存されることで,トライ木に無駄な頂点集合を保存す

る手間が無くなり,またメモリ容量も取らないため高辺密度に対しても良い結果が得られ

ると考えられる.

また本論文の手法では brockなどの頂点数が少ない割に大きなクリークを持ち,また隣

接数では大きなクリークを見つけにくいグラフに対し良い結果が得られなかった.よって

選択方法の中で有効な Penaltyの使い方の考案などが挙げられる.

Page 44: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

40

謝辞

本研究を進めるにあたり,有意義な討論と適切なご指導をいただいた,神戸大学工学部

電気電子工学科,山口一章准教授,増田澄男教授,斎藤寿樹助教に深く感謝いたします.

また日頃から研究活動を通じてご協力いただきました電気電子工学研究科の院生,ならび

に電気電子工学部の学部生に感謝いたします.

Page 45: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

41

参考文献

[1] I.Bomze, M.Budinich, P.Pardalos and M.Pelillo, “The maximum cllique problem, in

Handbook of Combinatorial Optimization (suppl.vol.A),”eds. D.Z. Du, and P.M. Parda-

los, pp.1-74, Kluwer Academic Publishers, Hingham, 1999.

[2] K.C. Dukka Bahadur, T.Akutsu, E.Tomita, T.Seki, and A.Fujiyama, “Point matching

under non-uniform fistoritions and protein side packing based on an efficient maximum

clique algorithm,”Genome Inormatics, vol.13, pp.143-153, 2002.

[3] 片山謙吾,定松政史,南原英生,成久洋之,“最大クリーク問題に対する進化的アル

ゴリズム,”情報処理学会論文誌, Vol.49, No.11,pp.3715-3724, 2008.

[4] K.Katayama,A.Hashimoto,and H.Narihisa,“An Effective Local Search for the Max-

imum Clique Problem,” Information Processing Letters, Vol.95, No.5, pp.503-511,

2005.

[5] 山崎渉,山口一章,増田澄男,“最大クリークを求める進化型アルゴリズムに関する一

考察,”平成 24年電気関係学会関西支部連合大会講演論文集 CD-ROM,9pmT-11,

2012.

[6] W.Pullan,“Phased local search for the maximum clique problem,”Journal of Combi-

natorial Optimization, 12, pp.303-323, 2006.

[7] Donald Knuth, “The Art of Computer Programming, Vol.3 : Sorting and Searching,

Third Edition,”Addison-Wesley, 1997.

[8] D.SJohnson,and M.A.Trick,“Second dimacs implemention challange:cliques,coloring

and satisfibility,DIMACS Series in Discrete Mathematics and Theoretical Computer

Science.AMS,vol.26,1996.

[9] D.Johnson,C.Aragon,L.McGeoch,and C.Schevon,“Optimization by simulated

annealing:an experimental evaluation:part ii,graph coloring and number partitioning,”

Operations Research,pp.378-406,1991.

[10] C.Mannino, and A.Sassano, “Edge projection and the maximum cardinality sta-

ble set problem,”in Cliques,coloring,and satisfiability:second DIMACS implemention

Page 46: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

42

challenge, October 11-13,1993,eds.D.Johnson,and M.Trick,vol.26,pp.205-220, Amer

Mathematical Society, 1996.

[11] M.Brockington,andJ.C.Cullberson,“Camouflaging independent sets in quasi-random

graphs,”sencond DIMACS implementation challenge,pp.75-88,1996.

[12] L.Sanchis,“Test case construction for the vertex cover ptoblem,”Computational Support

for Discrete Mathmatics,pp.315-326,1994.

[13] J.Lagarias, and P.Shor, “Keller’s cube-tiling conjecture is false in high dimentions,”

Bulletin of the American Mathematical Society, vol.27,no.2, pp.315-326,1994.

[14] M.Gendreau,P.Soriano,and L.Salvali, “Solving the maximum clique problem using a

tabu search approach,”Annals of Operations Reserch,vol.41,no.4,pp.385-403,1993.

Page 47: 修 士 論 文 - Kobe Universityky/S4ronbun/2014/2014-0205-morinaka-shuron3.pdf · な組合せ最適化問題であり,大規模な問題の最適解を多項式時間で求めるアルゴリズムは

発表論文リスト

[1] 森中諒太,清水悟司,山口一章,増田澄男,"最大重みクリーク抽出法における分枝

順序の検討"平成 24年度情報処理学会関西支部支部大会,B-05,2012

[2] 清水悟司,森中諒太,山口一章,増田澄男,"ある最大重みクリーク抽出法における

頂点集合の効率的な実装方法の提案" 平成 24 年度情報処理学会関西支部 支部大会,

B-101,2012

[3] 森中諒太,山口一章,斎藤寿樹,増田澄男"最大クリーク問題に対する発見的手法の

高速化に関する研究"平成 25年度電気関係学会関西連合大会,P-27,2013