ファジィ制約充足問題への 連続領域の導入

ファジィ制約充足問題への
連続領域の導入
Introducing continuous domains to
fuzzy constraint satisfaction problems
須藤 康裕
Yasuhiro Sudou
三田村 保
大堀 隆文
Tamotsu Mitamura Takahumi Oohori
栗原 正仁
Masahito Kurihara
目次
はじめに
 制約充足問題とは
 離散領域の問題点
 連続領域の導入
 反復改善アルゴリズムの適応
 変更候補値の算出方法
 計算例
 おわりに

制約充足問題とは

n
{
D
}
有限で離散的な領域
i i 1 から値を選ぶ複数
の変数 { X i }in1 に対して、全ての制約 {Ck }rk 1 を
満たすような値の割り当てを探し出す問題
拡張
ファジィ制約充足問題
通常の制約充足問題の制約に、ファジィ関係を 導
入し充足に程度が存在する最適化問題の一種
制約充足問題の例
変数
領域
X1
青,黄
X2
青,黄
X3
青,黄
X4
青,黄
X5
青,黄
X6
青,黄
:制約
隣接するノード
と異なる色にす
る
X1
X2
X3
X4
X5
X6
制約充足問題(グラフ色塗り問題)の例
離散領域の問題点
離散的である
 有限である

例: Di = {1, 2, 5, 9, 12, …}
領域を多く持つ必要があるときに
探索範囲を広げてしまう
連続領域の導入
離散的な領域の他に、連続領域をドメインに加える
混合領域制約充足問題と定義
さらに適切な解が得られるようになる
 離散的な領域だけで定式化するより、高速に解
を得ることができる

混合領域制約充足問題の定義
ファジィ制約充足問題の変数領域に連続
領域を導入する
 領域を
と定義する
 lj=ujの場合、離散的な領域と同じである

例: Di = {1, [2, 5], 7, [9, 12], …}
反復改善アルゴリズムの適応
そのままでは通常のCSPの為のアルゴリズムが
使用できない
 領域を離散化すると不都合がある

領域を離散化せずに探索可能な
アルゴリズムを適用する必要がある
基本的なアルゴリズム
反復改善法
全探索
特定の条件下で使用可能
使用不可能
変更候補値の算出が条件
最も改善される値
反復改善アルゴリズム
制約違反が減少するように変数の値を1つ
ずつ変更していく
 ファジィ制約充足問題では最も違反してい
る制約違反を改善する

最悪の制約違反に関係する全ての変数の
変更候補値を求める必要がある
反復改善アルゴリズム
最も違反している制約の有する全ての変数
の変更候補値を算出する
 全ての変更候補値の中で、最も値の大きい
ものを持つ変数の値を変更する
 最悪の違反が減少しない場合は隣接する変
数の値を変更していく
 繰り返し

変更候補値の算出方法
Xa
C
X
C1
X1
C:最悪の制約違反
Cn
Xn

変数 X の値を変更する場合その他の変数
を全て固定して考える
変更候補値の算出方法
R
1
C
C1
Cn
0
l

u
変更候補値をmax(Cmin)とし、全ての極、交点、
l, u について充足度を求め、最大のものを得る
計算例
領域:
A
C1
DA = 1, 2, [3, 7], 9
C2
DB = 4, 5, [6, 10]
DC = [0, 3], [6, 8]
B
初期
値:
C3
C
制約:
VA = 3
C1 = A(A-2B)
VB = 6
C2 = 2A-C
VC = 7
C3 = C(B-C)
計算例
1段階目
A
C1
B
C2
C3
C
VA = 3
C1 = A(A-2B) = -27
DA = 1, 2, [3, 7], 9
VB = 6
C2 = 2A-C = -1
DB = 4, 5, [6, 10]
VC = 7
C3 = C(B-C) = -7
DC = [0, 3], [6, 8]
A について変更候補値を求める
場合C1とC2についてBとCを固定
C2 = 2A-7
C1 = A(A-12)
クリスプな領域:
VA = 1:-27 → -11
VA = 2: -27 → -20
VA = 9: -27 → -27
←連続領域:
VA = 3:-27 → -27
B について変更候補値を求める
場合C1とC3についてAとCを固定
C1 = 9-6B
C3 = 7B-24
クリスプな領域:
VB = 4:-27 → -21
VB = 5: -27 → -14
←連続領域:
VB = 6:-27 → -27
計算例
2段階目
A
C1
B
C2
C3
C
VA = 1
C1 = A(A-2B) = -11
DA = 1, 2, [3, 7], 9
VB = 6
C2 = 2A-C = -5
DB = 4, 5, [6, 10]
VC = 7
C3 = C(B-C) = -7
DC = [0, 3], [6, 8]
B について変更候補値を求める
場合C1とC3についてAとCを固定
C3 = 7B-49
C1 = 1-2B
クリスプな領域:
VB = 4:-27 → -21
VB = 5: -27 → -14
←連続領域:
VB = 6:-11 → -11
C について変更候補値を求める
場合C2とC3についてAとBを固定
C3 = C(6-C)
C2 = 2-C
←連続領域:
VC ≒0.3:
-11 → -1.7
A, Bについては現
在の割り当てが最
善なので C を変更
する
計算例
3段階目
A
C1
B
C2
C3
C
VA = 1
C1 = A(A-2B) = -11
DA = 1, 2, [3, 7], 9
VB = 6
C2 = 2A-C = 1.7
DB = 4, 5, [6, 10]
VC = 0.3
C3 = C(B-C) = 1.71
DC = [0, 3], [6, 8]
A について変更候補値を求める
場合C1とC2についてBとCを固定
C1 = A(A-12)
C2 = 2A-0.3
クリスプな領域:
VA = 1:-27 → -11
VA = 2: -27 → -20
VA = 9: -27 → -27
連続領域:
1段階目を参照
B について変更候補値を求める
場合C1とC3についてAとCを固定
C1 = 1-2B
C3 = 0.3(B-0.3)
クリスプな領域:
VB = 4:-11 → -7
VB = 5: -11 → -9
←連続領域:
VB = 6:-11 → -11
計算例
4段階目
A
C1
B
C2
C3
C
VA = 1
C1 = A(A-2B) = -7
DA = 1, 2, [3, 7], 9
VB = 4
C2 = 2A-C = 1.7
DB = 4, 5, [6, 10]
VC = 0.3
C3 = C(B-C) = 1.11
DC = [0, 3], [6, 8]
A について変更候補値を求める
場合C1とC2についてBとCを固定
C1 = A(A-8)
C2 = 2A-0.3
クリスプな領域:
VA = 1:-7 → -7
VA = 2: -7 → -12
VA = 9: -7 → 9
連続領域:
VA = 7:-7 → -7
B について変更候補値を求める
場合C1とC3についてAとCを固定
Bは直前に変更したばかりなので最
善な割り当てである
計算例
5段階目
A
C1
B
C2
C3
C
VA = 9
C1 = A(A-2B) = 9
DA = 1, 2, [3, 7], 9
VB = 4
C2 = 2A-C = 17.7
DB = 4, 5, [6, 10]
VC = 0.3
C3 = C(B-C) = 1.11
DC = [0, 3], [6, 8]
B について変更候補値を求める
場合C1とC3についてAとCを固定
C1 = 81-18B
C3 = 0.3(B-0.3)
クリスプな領域:
VB = 4:0.1 → 1.11
VB = 5:0.1 → -9
←連続領域:
VB = 6:0.1 → -7
C について変更候補値を求める
場合C2とC3についてAとBを固定
C3 = C(4-C)
C2 = 18-C
←連続領域:
VC =2:
1.11 → 4
計算終了
A
C1
B

C2
C3
C
VA = 9
C1 = A(A-2B) = 9
VB = 4
C2 = 2A-C = 17.7
VC = 2
C3 = C(B-C) = 4
これ以上どの変数の値を変更しても違反
が改善されない局所最適状態
おわりに
制約充足問題に連続領域を導入すること
に成功した
 制約を表すメンバーシップ関数が1つの区
間で微分可能ならば、高速に変更候補値
を求めることが可能である
