particle swarm optimization を 用いた組合せ最適化問題の解法 · 背景...

20
Particle Swarm Optimization 用いた組合せ最適化問題の解法 大阪工業大学 桂敬晃 重弘裕二 増田達也

Upload: trinhdiep

Post on 07-Jun-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

Particle Swarm Optimization を用いた組合せ最適化問題の解法

大阪工業大学

桂敬晃

重弘裕二

増田達也

Page 2: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

背景

● 組合せ最適化問題– 応用例

● 携帯電話の周波数帯の割当、LSI の配置設計

● Particle Swarm Optimization (PSO) を組合せ最適化問題に適用

– PSO は連続値最適化問題に有効

– PSO は組合せ最適化問題にあまり適用されていない

– PSO を代表的な組合せ最適化問題である巡回セールスマン問題に適用

Page 3: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

Particle Swarm Optimization

● 複数の Particle が協調して解 (実数値ベクトル) を探索

● 連続値最適化問題の解を効率良く探索

-10

-5

0

5

10 -10-5

0 5

10

4

5

6

7

8

PSO はこのような関数の最小となる解 (実数値ベクトル)を求めることができる

Griewangk関数

最小値

Page 4: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

PSO の更新式

● 以下の式に基づいて解 (実数値ベクトル) を探索

● 効率良く探索するために、適切なパラメータを選択する必要がある

vik1=w⋅vi

k

c2⋅rand 2⋅gbestk−xik

x ik1=x i

kvik1

c1⋅rand 1⋅ pbest ik−xi

k

次に Particle i が移動する位置

w⋅vik

c1⋅rand 1⋅ pbest ik−xi

k

c2⋅rand 2⋅gbest k−xik

x ik1

速度ベクトル v ik1

解空間

k 回更新を行った後の Particle i の位置 x i

k

Page 5: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

巡回セールスマン問題

● 各都市を 1 度づつ訪問する最短の巡回路を求める問題

● 通常、解は都市の順列や枝の集合で表現される

L1,2

C1

C2

C3

C4

L1,3

L1,4

L2,4

L2,3

L3,4

都市

L1,2

C1

C2

C3

C4

L1,3

L2,4

L3,4L1,2

C1

C2

C3

C4

L1,4

L2,3

L3,4

C1

C2

C3

C4

L1,3

L1,4

L2,4

L2,3

巡回路

( C1 , C2 , C3 , C4 )

{ L1,2 , L1,4 , L2,3 , L3,4 }

( C1 , C2 , C4 , C3 )

{ L1,2 , L1,3 , L2,4 , L3,4 }

( C1 , C3 , C2 , C4 )

{ L1,3 , L1,4 , L2,3 , L2,4 }

都市の順列

枝の集合

Page 6: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

巡回セールスマン問題に PSO を適用

● 連続値最適化問題の解 (実数値ベクトル) を巡回セールスマン問題の解 (巡回路) に対応づける

  ⇒対応づけることで PSO による巡回セールスマン 問題の解の探索を可能にする

● 多断片法で生成した解を初期解とする

  ⇒少ない探索回数でより良い解を求めることがで きる

Page 7: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

実数値ベクトルと巡回路の対応づけ

● 実数値ベクトルと枝の順列の対応づけ– ベクトルの要素と枝を対応づけ

– 要素の大小関係による枝の整列

● 枝の順列と巡回路の対応づけ

実数値ベクトル

枝の順列

巡回路

対応づけ

PSO探索

対応づけ

Page 8: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

ベクトルの要素と枝の対応づけ

● 実数値ベクトルの要素の数を枝の数と同じにする

● 実数値ベクトルの要素と枝を 1 対 1 で対応させる

実数値ベクトル

( 5.0 2.5 1.2 3.4 4.7 ), , , , , 0.1

都市の数 : 4枝の数 : 6

Page 9: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

要素の大小関係による枝の整列

● 実数値ベクトルの要素を値の小さい順に並び替える

● 枝を対応する要素と同じ順番になるように並べる

( 5.0 2.5 1.2 3.4 4.7 )0.1, , , , , 0.1

0.1 1.2 2.5 3.4 4.7 5.0

枝の順列

Page 10: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

実数値ベクトルと巡回路の対応づけ

● 実数値ベクトルと枝の順列の対応づけ– ベクトルの要素と枝を対応づけ

– 要素の大小関係による枝の整列

● 枝の順列と巡回路の対応づけ

実数値ベクトル

枝の順列

巡回路

対応づけ

PSO探索

対応づけ

Page 11: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

枝の順列と巡回路の対応づけ

● 並べた順に枝を選択して巡回路を生成

0.1 1.2 2.5 3.4 4.7 5.0

部分巡回路ができるため、選ぶことができない

各都市に接続する枝の本数が2 を超えてしまうため、選ぶことができない

巡回路に対応する実数値ベクトルを PSO で探索

枝の順列

Page 12: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

巡回セールスマン問題に PSO を適用

● 連続値最適化問題の解 (実数値ベクトル) を巡回セールスマン問題の解 (巡回路) に対応づける

  ⇒対応づけることで PSO による巡回セールスマン 問題の解の探索を可能にする

● 多断片法で生成した解を初期解とする

  ⇒少ない探索回数でより良い解を求めることがで きる

Page 13: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

多断片法を用いた初期解

● 多断片法で生成した解を、1 つの Particle の初期解とする

– 多断片法 : 枝の長さの短い順に枝を次々と加えていく操作を、巡回路が完成するまで反復する手法

● 枝の長さを対応する実数値ベクトルの要素の初期値とする

  ⇒枝の長さが短いものから選ばれる

● 多断片法で生成した解の周辺を複数個の Particle が探索することになる

  ⇒少ない探索回数でより良い解を求めることがで きる

Page 14: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

初期解生成の例

● 枝の長さが短いものから選ばれる

1.0

1.8

3.0

1.9

2.82.4

( 1.0 3.0 1.8 2.8 1.9 ), , , , , 2.4

1.0 3.01.8 2.81.9, , , , ,2.4

実数値ベクトルの各要素と枝を要素の値の小さい順に並び替え

実数値ベクトルの要素と枝の対応づけ

巡回路の生成

Page 15: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

計算機実験

● ベンチマーク問題の att48, gr137 に適用

– 評価回数を 20,000、評価値を巡回路の総距離 (巡回路長) とする

– 提案手法におけるパラメータを変更した場合の探索性能の変化 (予備実験)

● c = c1 = c2 とし、w = 0.1, 0.2, …, 0.9 と c = 0.1, 0.2, …, 2.0 のそれぞれの組合せで実験

– 局所探索法 (LS)、シミュレーテッド・アニーリング法 (SA) と比較 (本実験)

● 提案手法は最も良い評価値を得られたパラメータを使用● LS と SA の近傍は枝交換近傍 (2-opt 近傍) を使用

Page 16: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

att48 に対する予備実験の結果

● 特定のパラメータで解が改善されている

● w, cが両方とも大きい場合に良い解を発見している

0 .20 . 4

0 . 60. 8

1 . 01 . 2

1 .41. 6

1 . 82 .0 0 . 1

0 . 20. 3

0 . 40 .5

0 . 60. 7

0 . 80 .9

3 4 0 0 0. 0

3 4 5 0 0. 0

3 5 0 0 0. 0

3 5 5 0 0. 0

3 6 0 0 0. 0

3 6 5 0 0. 0

3 7 0 0 0. 0

3 7 5 0 0. 0

3 8 0 0 0. 0

cw

34000 34500 35000 35500 36000 36500 37000 37500 38000

c

w

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

w

w

cc

巡回

路長

巡回

路長

w, c が両方とも大きい場合、特に良い解を探索することができている良い解を求めることができる w, c の

組合せには偏りがある

att48 に対しては、w, c を大きくすることで良い解を探索することができる最も良い解を求めたパラメータは w = 0.7, c = 2.0

この部分では良い解を探索することができていない

この部分で良い解を探索することができている

Page 17: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

att48 に対する本実験の結果

● 提案手法は他手法よりも少ない評価回数で良い解を探索していた

● 提案手法は探索が終了した時点で他手法よりも良い解を探索していた

0 5,000 10,000 15,000 20,00034,000

35,000

36,000

37,000

38,000

39,000

40,000

41,000

提案手法SALS

評価回数

巡回

路長

Page 18: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

gr137 に対する予備実験の結果

● 良い解を得ることができるパラメータが att48 とは異なっていた

0 . 20 .4

0. 60 . 8

1 . 01 .2

1 . 41 .6

1 . 80 .1

0 . 20 .3

0 . 40 . 5

0. 60 . 7

0. 80 .974 0 . 0

75 0 . 0

76 0 . 0

77 0 . 0

78 0 . 0

79 0 . 0

80 0 . 0

81 0 . 0

82 0 . 0

83 0 . 0

84 0 . 0

85 0 . 0

c w

740

760

780

800

820

840

c

w

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

巡回

路長

巡回

路長

w

w

cc

問題によって有効なパラメータが異なる最も良い解を求めたパラメータは w = 0.5, c = 1.9

att48 では良い解を求めることができたこの部分で、良い解を求めることができていない

この部分で良い解を探索することができている

Page 19: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

gr137 に対する本実験の結果

● att48 を対象とした場合と同様に、提案手法は他手法よりも少ない評価回数で良い解を探索し、探索が終了した時点で最も良い解を探索していた

0 5,000 10,000 15,000 20,000740

760

780

800

820

840

860

提案手法SALS

評価回数

巡回

路長

Page 20: Particle Swarm Optimization を 用いた組合せ最適化問題の解法 · 背景 組合せ最適化問題 – 応用例 携帯電話の周波数帯の割当、LSI の配置設計

まとめ

● 連続値最適化問題の解と巡回セールスマン問題の解を対応づけることにより、PSO で巡回セールスマン問題を解くことを可能にした

● 少ない探索回数でより良い解を発見するため、多断片法で作成した解を 1 つの Particle の初期解とした

● 局所探索法やシミュレーテッド・アニーリング法より少ない探索回数で良い解を探索することができた