ファジィ制約充足問題のハイブリッド解法 に関する研究 study...

Post on 18-Oct-2019

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Study on Hybrid Algorithms for Solving Fuzzy Constraint Satisfaction Problems

北海道大学大学院 工学研究科システム情報工学専攻

須藤康裕

ファジィ制約充足問題のハイブリッド解法に関する研究

背景と目的(1)制約充足問題(CSP)変数間の制約を全て満たすような変数への 割当てを決定する組合せ探索問題スケジューリング,プランニング等への応用

ファジィ制約充足問題(ファジィCSP)CSPの拡張形式で,制約がファジィ制約不完全に充足される解を求め,現実の問題解決への有用な情報の提供

(ファジィ)CSPの解法は大きく分けて2つ,      系統的木探索手法および局所的探索手法それぞれメリット・デメリットが潜在ハイブリッド解法の研究の進展GAと領域フィルタリングの協調 [Bowen96]典型的な局所探索(NN)[Wong98]の効率を上回るものではない

背景と目的(2)

新しい考え方のハイブリッド解法SRSアルゴリズムの開発と評価

第1章 序論第2章 制約充足とファジィ制約充足問題第3章 制約充足アルゴリズム第4章 系統的/局所的探索の融合第5章 連続領域に対するアプローチ第6章 結論

学位論文の構成

第2章制約充足とファジィ制約充足問題

制約充足とファジィCSP (1)

変数の集合       X = {x1, ..., xn}値域の集合       D = {D1, ..., Dn}制約の集合    C = {c1, ..., cm}

制約充足問題(CSP)の定義

全ての制約を満たすような変数の割当を求める組合せ探索問題(NP完全問題)

制約ckはXの部分集合上の関係Rkであり,各変数が同時に取り得る値の組を表す

制約充足とファジィCSP (2)制約構造の視覚的表現

x1 c1

x2

x3

x4

c3 c4c2

c1

c3

c4c2x5

制約グラフ(ハイパーグラフ)        双対制約グラフ

x1 x3

x1

x1

x4

制約充足とファジィCSP (3)

変数

変数

変数

変数

変数

変数

各変数の値域={R, G, B}

平面地図の彩色問題:隣り合った地域を異なる色で塗り分ける

制約

制約充足とファジィCSP (4)CSP

動的CSP

分散CSP

ソフトCSP最大CSP 重み付きCSP

確率的CSPファジィCSP

制約充足とファジィCSP (5)

変数の集合       V = {v1, ..., vn}値域の集合       D = {D1, ..., Dn}ファジィ制約の集合   C = {c1, ..., cm}

ファジィ制約 ck : メンバーシップ関数 μRk(v[Sk])   0 ≦ 制約の充足度 ≦ 1  

ファジィCSP (FCSP)の定義 [Meseguer 97]

Sk : 制約の範囲 v : 全変数への割当て

制約充足とファジィCSP (6)

全制約の充足度の論理積 : μ∩ Rk(v)

Cmin(v) = min(μRk(v[Sk]))

ファジィCSPの充足度

1≦k≦r

k=1 r

Cmin(v) > 0 であれば v はファジィCSPの解

制約充足とファジィCSP (7)解のうち最大の充足度を与えるものが           ファジィCSPの最適解

充足度が最も低い制約の充足度を最大化する組合せ最適化問題

max(min(µRk(v[Sk])))v 1≦k≦r

第4章系統的/局所的探索の融合

制約充足アルゴリズム

系統的探索(しらみつぶし)分枝限定法 (BB)フォワードチェック (FC)

局所的探索(状態空間航行)山登り法 (HC)ニューラルネット(GENET)焼きなまし法 (SA)

系統的/局所的探索の特徴系統的探索 局所的探索

基本概念 部分的な割当ての逐次拡張 完全な割当ての局所的修正

探索制御 バックトラックに基づく深さ優先が基本

ヒューリスティックな評価関数の値を反復的に改善するために変数の値を修正する

完全性 解が存在すれば必ず発見  できる 完全性なし

探索効率 大規模な問題では天文学的時間が必要な場合もある

大規模な問題でも短時間で解を発見できる場合がある

系統的/局所的探索の融合 (1)

CSPのハイブリッド解法の基本 [Jussien 02]局所的探索を系統的探索の前または後に行う     (フィルタリング)[Wallace 96]系統的探索の途中に局所的探索を行う       (枝刈り)局所的探索において次状態の選択または探索空間の枝刈りに系統的探索を用いる          (タブーリストの構築)

系統的/局所的探索の融合 (2)

ファジィCSPの特性充足度が最低の制約(c*)の改善が全体の改善に直結する.

Spread-Repair-Shrink(SRS)のアイデア全体を通して局所的探索を行う.c*の改善を集中的かつ組織的に行うために系統的探索を行う.

系統的/局所的探索の融合 (3)

局所最適でのSpread制約違反のRepair影響伝播のShrink

SRSアルゴリズムの概念:       グリーディな制約違反の改善

変数 制約

変数

変数

変数

制約

制約

制約

変数

変数

制約違反

open/closed リストを 用いて3つのモードを制御

Repair範囲S0の要素である1つの変数への割当を変更し, c0の充足度を高める

SRSアルゴリズム (1) -Repair-

select v’subject to µR0(v’[S0]) > µR0(v[S0])

v : 現在の割当てv’ : 変更後の割当てc0変数制約 制約変数

SRS1近傍の充足度を下げることなく   c0の充足度を最大化する

maximize µR0(v’[S0])subject to µR0(v’[S0]) > µR0(v[S0])

µRi(v’[Si]) ≧ µRi(v[Si]), 1 ≦ i ≦ m

近傍の制約をc1, c2, ..., cmとするとき,

SRSアルゴリズム (2) -Repair-

※局所的な最適化

SRS3近傍の充足度がCmin(v)より小さくならない範囲でc0の充足度を最大化する

maximize µR0(v’[S0])subject to µR0(v’[S0]) > µR0(v[S0])

µRi(v’[Si]) > Cmin(v), 1 ≦ i ≦ m

SRSアルゴリズム (3) -Repair-

Spread改善の対象をckに隣接する制約に広げる(探索木の展開)

x1x2

x4

x6

x5 x3

c2c0

c1

c3 c0

c1 c2

c0 open

open open

closed

SRSアルゴリズム (4) -Spread-

Shrink改善の対象をckから一つ前の制約に戻す(探索木の収縮)

x1x2

x4

x6

x5 x3

c2c0

c1

c3

c0

c1 c2closed

closed

closed

c3 open

c0

c1 c2 open

closed

closed

SRSアルゴリズム (5) -Shrink-

Spread & Shrink探索木の展開と縮小 c*

C C

C O N C

C O

c*

C C

C O C C

C O

c*

C O

C O

O C O

(root)

N

OC : closed: open: node

ShrinkSpread

O

SRSアルゴリズム (6)

SRSアルゴリズム (7)

アルゴリズムの動作例

アルゴリズムの動作例 (1/6)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

2 1

3

2

1 2

0.3

0.4

0.5

0.8

c1

アルゴリズムの動作例 (2/6)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

2 1

3

2

1 2

0.3

0.4

0.5

0.8

c1

c2 c3

c4

アルゴリズムの動作例 (3/6)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

2 1

3

2

1 2

0.3

0.4

0.5

0.8

c1

c2 c3

Repair

c4

アルゴリズムの動作例 (4/6)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

2 1

3

2

2 2

0.3

0.4

0.3

1.0

c1

c2 c3

Repair

アルゴリズムの動作例 (5/6)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

2 1

2

2

2 2

0.3

0.3

1.0

1.0

c1

c2 c3

Repair

アルゴリズムの動作例 (6/6)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

2 1

2

2

2 2

1.0

1.0

1.0

1.0

評価実験

評価実験実験1 解の質(近似度)の評価最適解をFCを用いて求める最適解との比を近似度とする

実験2 計算時間の評価実験3 問題サイズに対する漸近特性実験4 系統的探索の前処理としての活用

解の質の評価 (1)

x1 x2x1 \ x2 1 2 3 4

1 0.22 0.41 0.76 0.14

2 0.32 0.54 0.83 0.92

3 0.86 0.04 0.35 0.68

4 0.10 0.98 0.21 0.49

変数の数=10領域の要素数=1~10

x3x4 x6

x5

x9

x7

x8x10

制約の有無と緊密度をランダム

d=0.2 d=0.4 d=0.6 d=0.80

25

50

75

100

t=0.2t=0.6

t=0.4t=0.8

d=0.2 d=0.4 d=0.6 d=0.80

25

50

75

100

t=0.2t=0.6

t=0.4t=0.8

Cmin(充足度) Cave(平均充足度)

解の質の評価 (2)

計算時間の評価 特に初期状態直後の収束速度が大きい

SRS

SRFGENET

実験 3(2)漸近特性横軸=問題のサイズ,縦軸=時間(log)近似直線の傾きは  指数関数の基数部分 に対応

SRSの傾きが最も 小さく、大規模問題に対する優位性がある

系統的探索の前処理SRSとFCの組み合わせによる活用SRSによって得られた近似解の充足度をFCにおける枝刈りの初期値として用いる(フィルタリング)

d t = 0.2 t = 0.4 t = 0.6 t = 0.80.2 10900 48700 146600 264000.4 82800 43800 80800 1050000.6 109000 74600 48600 2280000.8 10500 83300 514000 116000

d t = 0.2 t = 0.4 t = 0.6 t = 0.80.2 225 166 266 1780.4 171 220 207 2100.6 132 146 138 1400.8 157 156 154 145

FC SRS→FC単位:ms

数百ー数千倍の高速化が実現

第5章連続領域に対するアプローチ

連続領域に対するアプローチ(1)制約をメンバーシップ関数で主観的に表現 可能であることがファジィCSPの長所

変数領域が有限離散集合ではメンバーシップ関数の特性を利用した最適化は困難

値域が離散値と連続値を取るファジィCSP(HDFCSP)をSRSを拡張して最適化を行う

HDFCSPの局所改善も,各ステップは   局所的な1変数の最適化SRSでは最適化の候補を離散的に     絞り込む手法を採用

連続領域に対するアプローチ(2)

連続領域に対するアプローチ(3)グラフ彩色問題を連続(グレイスケール)   に拡張した問題をランダム生成値域を離散化して山登り法を適応した結果と比較

連続領域に対するアプローチ(4)

横軸=離散化精度,縦軸=時間 (log)概して2-12以上の 精度が必要な場合はSRS(2-52)が速い

第6章結論

結論ハイブリッド解法SRS

基本概念 部分的な割当ての逐次拡張

探索制御局所最適において近傍の制約の改善による影響を伝播させるために探索木を動的に成長・収縮させる

完全性 一般的には完全性なし

探索効率 大規模な問題でも質の良い近似解を   高速に得ることができる

今後の課題解の質の改善(SAとの協調など)並列分散処理への対応動的制約充足への応用

今後の課題

付録

アルゴリズムの動作例 (1)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

S1 = {xi=x2, xj=x1, xk=x3}, S2 = {xi=x2, xj=x3, xk=x4}S3 = {xi=x3, xj=x4, xk=x5}, S4 = {xi=x4, xj=x5, xk=x6}

2 1

3

2

1 2

0.3

0.4

0.5

0.8

xi xj=1, xk=1 xj=1, xk=2 xj=1, xk=3123

1.00.20.1

0.20.80.2

0.10.60.3

xi xj=2, xk=1 xj=2, xk=2 xj=2, xk=3123

0.00.20.5

0.31.00.3

0.30.20.3

xi xj=3, xk=1 xj=3, xk=2 xj=3, xk=3123

0.00.70.1

0.40.00.2

0.10.91.0

アルゴリズムの動作例 (2)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

S1 = {xi=x2, xj=x1, xk=x3}, S2 = {xi=x2, xj=x3, xk=x4}S3 = {xi=x3, xj=x4, xk=x5}, S4 = {xi=x4, xj=x5, xk=x6}

2 1

3

2

1 2

0.3

0.4

0.5

0.8

xi xj=1, xk=1 xj=1, xk=2 xj=1, xk=3123

1.00.20.1

0.20.80.2

0.10.60.3

xi xj=2, xk=1 xj=2, xk=2 xj=2, xk=3123

0.00.20.5

0.31.00.3

0.30.20.3

xi xj=3, xk=1 xj=3, xk=2 xj=3, xk=3123

0.00.70.1

0.40.00.2

0.10.91.0

アルゴリズムの動作例 (3)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

xi xj=1, xk=1 xj=1, xk=2 xj=1, xk=3123

1.00.20.1

0.20.80.2

0.10.60.3

xi xj=2, xk=1 xj=2, xk=2 xj=2, xk=3123

0.00.20.5

0.31.00.3

0.30.20.3

xi xj=3, xk=1 xj=3, xk=2 xj=3, xk=3123

0.00.70.1

0.40.00.2

0.10.91.0

S1 = {xi=x2, xj=x1, xk=x3}, S2 = {xi=x2, xj=x3, xk=x4}S3 = {xi=x3, xj=x4, xk=x5}, S4 = {xi=x4, xj=x5, xk=x6}

2 1

3

2

1 2

0.3

0.4

0.5

0.8

アルゴリズムの動作例 (4)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

xi xj=1, xk=1 xj=1, xk=2 xj=1, xk=3123

1.00.20.1

0.20.80.2

0.10.60.3

xi xj=2, xk=1 xj=2, xk=2 xj=2, xk=3123

0.00.20.5

0.31.00.3

0.30.20.3

xi xj=3, xk=1 xj=3, xk=2 xj=3, xk=3123

0.00.70.1

0.40.00.2

0.10.91.0

S1 = {xi=x2, xj=x1, xk=x3}, S2 = {xi=x2, xj=x3, xk=x4}S3 = {xi=x3, xj=x4, xk=x5}, S4 = {xi=x4, xj=x5, xk=x6}

2 1

3

2

2 2

0.3

0.4

0.3

1.0

アルゴリズムの動作例 (5)

x1 c1 x2

x3

x4

x5 x6

c2

c3

c4

xi xj=1, xk=1 xj=1, xk=2 xj=1, xk=3123

1.00.20.1

0.20.80.2

0.10.60.3

xi xj=2, xk=1 xj=2, xk=2 xj=2, xk=3123

0.00.20.5

0.31.00.3

0.30.20.3

xi xj=3, xk=1 xj=3, xk=2 xj=3, xk=3123

0.00.70.1

0.40.00.2

0.10.91.0

S1 = {xi=x2, xj=x1, xk=x3}, S2 = {xi=x2, xj=x3, xk=x4}S3 = {xi=x3, xj=x4, xk=x5}, S4 = {xi=x4, xj=x5, xk=x6}

2 1

2

2

2 2

0.3

0.3

1.0

1.0

top related