Document

ジョブショップスケジューリング問題に対する
遺伝的アルゴリズムの交叉の検討
A Discussion on Crossover of Genetic Algorithm
for Job-shop Scheduling Problem
同志社大学大学院工学研究科知識工学専攻
博士前期課程 2003年度 724番
森 隆史
はじめに
スケジューリング問題
• 交通機関の時刻表の決定
• 病院の看護士勤務順の決定
• 工場での生産スケジュールの決定
最適なスケジュールの生成は非常に重要
スケジューリング問題の1つ
ジョブショップスケジューリング問題
(Job-shop Scheduling Problem : JSP)
ジョブショップスケジューリング問題(JSP)
一定数の仕事を一定数の機械で処理する時の
最適なスケジュールを求める
全体の処理にかかる時間(makespan)の最小化
<問題による制約>
• 各仕事が機械を使う順序(技術的順序)
• 各仕事が各作業を各機械上で処理する時間
JSPの具体例
JSPの具体例
JSPの具体例
JSPの最適化
JSPには技術的順序などの制約条件がある
JSPの最適化は非常に困難
JSPに特化した手法でなければ,簡単に制約を外れてしまう
高性能で汎用性の高い最適化手法
遺伝的アルゴリズム(Genetic Algorithm : GA)
による最適化
<GAで考慮する点>
• 個体の表現方法
• 遺伝的オペレータ
遺伝的アルゴリズム(GA)
• 生物の進化を模倣した最適化手法
• 多点探索
• 選択,交叉,突然変異を繰り返し適用し
個体を進化させ,最適化を行う
交叉 : 個体情報の交換手段
GAは多点探索であり,
個体(解)間の情報交換を行うことで最適化を行う
適切な交叉の設定が重要
<研究目的>
JSPの最適化の際に適切な交叉手法について検討
個体の表現方法
交叉
一般的な交叉手法を用いると
制約条件を満たせない可能性が高い
制約を満たすことができる交叉手法
• Inter-machine Job-based Crossover
(Inter-machine JOX)[小野,1998]
JSPに有効である交叉手法
• Deterministic Multi-step Crossover Fusion
(dMSXF)[Ikeda,2002]
JSPに有効なMSXFを元に提案された手法
温度パラメータの設定が必要ない
Inter-machine JOX
Step 1 2つの親個体のペアを選択
Inter-machine JOX
Step 1 2つの親個体のペアを選択
Inter-machine JOX
Step 2 保存する仕事として1つ以上の仕事を選択(ここではJ2)
Inter-machine JOX
Step 3 残りの仕事を順序を崩さないように他方の親から継承
Inter-machine JOX
Step 3 残りの仕事を順序を崩さないように他方の親から継承
Inter-machine JOX
Deterministic Multi-step Crossover Fusion
Step 1 2つの親個体のペアを選択
Deterministic Multi-step Crossover Fusion
Step 2 親1の周りに子個体を生成
生成される個体は全て親2に近づく
Step 3 生成された個体の中でもっとも良い個体を選択
Deterministic Multi-step Crossover Fusion
Step 2 親1の周りに子個体を生成
生成される個体は全て親2に近づく
Step 3 生成された個体の中でもっとも良い個体を選択
Deterministic Multi-step Crossover Fusion
Step 4 もっとも良い個体に関して同じ操作を繰り返す
Step 5 生成された個体の中で最も良い個体を選択
• 親個体の周りに個体を生成する方法(近傍)
• 他方の親へ近づいているかの判定方法(距離)
近傍
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
近傍
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
近傍
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
近傍
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
近傍
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
近傍
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
個体間の距離
dMSXFにおける個体生成
一方の親個体から他方の親個体に近づくよう個体を生成する
個体間の距離を図る必要がある
<距離の測定方法>
• 各機械上である仕事の
次の仕事が違う場合
距離を 1 増加させる
• 各機械上である順番で
処理される仕事が異なるとき
距離を1増加させる
距離の測定方法
距離の測定方法
距離の測定方法
<処理する作業が異なる順序>
1番目
距離の測定方法
<処理する作業が異なる順序>
1番目,2番目
・・・ 2個
距離の測定方法
<処理する作業が異なる順序>
1番目,2番目
・・・ 2個
<次に処理する作業が異なる仕事>
J1
距離の測定方法
<処理する作業が異なる順序>
1番目,2番目
・・・ 2個
<次に処理する作業が異なる仕事>
J1,J2
・・・ 2個
距離 = 2 + 2 = 4
Inter-machine JOXとdMSXFの比較
以下の2点について検討を行う
• Inter-machine JOXとdMSXFの解探索性能の違い
• 解探索性能が異なるとき,その原因
<比較手法>
交叉に以下の2つを適用したGAのモデル
・ Inter-machine JOX
・ dMSXF
<対象問題>
ft20(20仕事5機械問題)
abz9(20仕事15機械問題)
実験パラメータ
パラメータ
個体数
エリート個体数
値
600
5
交叉率
1.0
突然変異率
0.1
選択手法
最大評価計算回数
試行回数
トーナメント選択
(トーナメントサイズ:
2)
8.0e+6
100
解探索性能
ft20
abz9
Inter-machine JOXが良好な結果を示している
解探索性能の違い
Inter-machine JOXの方が良好な解探索性能を示した
Inter-machine JOXとdMSXFの
探索方法の違いが原因
<検討事項>
• 探索途中での個体の多様性
多様性が失われると交叉が意味を成さない
• 1回の交叉による個体の変化量
局所的探索か大域的探索か
個体の多様性
dMSXF : 1回の交叉で個体を大量に生成し,
最も良い個体を子個体とする
選択圧が非常に高い可能性がある
選択圧が高いと母集団内の個体に多様性が無くなる
個体の多様性が失われると
交叉が無意味になってしまう
(同じ親個体から新しい個体は生成されないため)
両交叉手法の多様性の変化について検討する
個体の多様性の変化
個体の多様性の変化について検討を行う
<検討手法>
交叉に以下の2つを適用したGAのモデル
• Inter-machine JOX
• dMSXF
<対象問題>
ft20(20仕事5機械問題)
abz9(20仕事15機械問題)
個体の多様性(ft20)
Inter-machine JOX
dMSXF
Inter-machine JOX : 探索序盤で良好な解を発見
dMSXF : 良好な解を発見する前に多様性が無くなる
個体の多様性(abz9)
Inter-machine JOX
dMSXF
Inter-machine JOX : 探索序盤で良好な解を発見
dMSXF : 良好な解を発見する前に多様性が無くなる
個体の多様性の変化とその影響
両手法ともに個体に多様性がある間は良好な探索
Inter-machine JOX
• 探索序盤に多様性は急激に低下する
• 探索終盤でもある程度多様性が維持される
• 多様性が失われる前にある程度良好な解を発見できる
dMSXF
• 探索序盤はInter-machine JOXよりも多様性は大きい
• 探索終盤は多様性は失われる
• 多様性が失われる前にある程度良好な解を発見できない
最終的に発見された解は,Inter-machine JOXの方が良好
良好な解が発見できるまで
十分な個体の多様性が必要
交叉による個体の変化量
dMSXFでは親個体間に大量の個体を生成し,局所探索を行う
複数ステップ個体生成を続けるため,
最終的な子個体は大きく変化している可能性がある
Inter-machine JOXとdMSXFの間に
個体の変化量の違いがある場合
一方は局所的探索,もう一方は大域的探索
探索する空間の広さが大きく異なる
交叉による個体の変化量の検討
交叉による個体の変化量について検討を行う
<検討手法>
交叉に以下の2つを適用したGAのモデル
• Inter-machine JOX
• dMSXF
<対象問題>
ft20(20仕事5機械問題)
abz9(20仕事15機械問題)
交叉による個体の変化(ft20)
Inter-machine JOX
dMSXF
Inter-machine JOXの方が個体の変化量が大きい
個体の変化量に10倍程度の差が現れている
交叉による個体の変化(abz9)
Inter-machine JOX
dMSXF
Inter-machine JOXの方が個体の変化量が大きい
個体の変化量に10倍程度の差が現れている
交叉による個体の変化量とその影響
Inter-machine JOXの方が個体が大きく変化
変化量の差は非常に大きい
Inter-machine JOXは大域的探索
dMSXFは局所的探索
解探索性能はInter-machine JOXの方が良好
局所的探索ではなく
大域的な探索が重要
まとめ
JSPをGAで最適化する際の交叉設定の指針について検討
JSPに有効なInter-machine JOX
JSPに対して有効性が検討されていないdMSXF
• 解探索性能はInter-machine JOXがdMSXFよりも良好
• 個体の多様性が維持されている間は良好な探索が可能
• 交叉による個体の変化が小さいと
個体の多様性が失われるまでに良好な解を発見できない
JSPに対して有効な交叉設定の指針
• 十分な個体の多様性の維持
• 局所的探索よりも大域的探索
発表論文
三木光範,廣安知之,勝崎俊樹,森 隆史
「分散遺伝的アルゴリズムにおける
多様性を考慮した世代交代モデルの検討」
同志社大学 理工学研究報告
第45巻 第3号 2004年10月
Multi-step Crossover Fusion
Multi-step Crossover Fusion(MSXF)[山田.1997]
Step 1 親個体となる2個体を選択
Step 2 親1の周りに複数個の個体を生成する
Step 3 生成された個体群を親2との距離が小さいものから順に並び替える
Step 4 この順序に基づいたランキングルーレット選択により1個体を選択
Step 5 選択された個体が親個体よりも良好なら受理し,
 V  の確率で受理する

 T 
そうでなければ, exp 
Step 6 選択された個体が受理されれば,その個体に関して処理を繰り返す
そうでなければ,親個体に同じ処理を繰り返す
突然変異
距離の測定方法
距離の測定方法
距離の測定方法
<処理する作業が異なる順序>
M1の1番目
距離の測定方法
<処理する作業が異なる順序>
M1の1番目,M1の2番目,M1の3番目,M2の1番目,
M1の2番目,M3の1番目,M3の2番目,M3の3番目
・・・ 8個
距離の測定方法
<処理する作業が異なる順序>
M1の1番目,M1の2番目,M1の3番目,M2の1番目,
M1の2番目,M3の1番目,M3の2番目,M3の3番目
・・・ 8個
<次に処理する作業が異なる仕事>
距離の測定方法
<処理する作業が異なる順序>
M1の1番目,M1の2番目,M1の3番目,M2の1番目,
M1の2番目,M3の1番目,M3の2番目,M3の3番目
・・・ 8個
<次に処理する作業が異なる仕事>
M1のJ1
距離の測定方法
<処理する作業が異なる順序>
M1の1番目,M1の2番目,M1の3番目,M2の1番目,
M1の2番目,M3の1番目,M3の2番目,M3の3番目
・・・ 8個
<次に処理する作業が異なる仕事>
M1のJ1,M1のJ2,M2のJ2,M2のJ3,M3のJ1,M3のJ3
・・・ 6個
距離 = 8 + 6 = 14
Minimal Generation Gap
Minimal Generation Gap(MGG)[佐藤ら,1996]
Step1
Step2
Step3
母集団からランダムに2個体を選出
同じ親個体から複数の子個体を生成
親個体と子個体の中から
良好な2個体を母集団に戻す
{
多様性の維持に優れる
形質遺伝に優れる
(形質遺伝:親個体の良好な性質を
子個体に受け継ぐこと)
sGAとMGGの違い
sGA
 sGAは毎世代すべての個体を更新
 MGGは2個体だけ更新していく
MGG
多様性の維持
分散遺伝的アルゴリズム
分散遺伝的アルゴリズム(DGA)[Tanese,1989]
母集団を複数のサブ母集団に分割する
各サブ母集団間で移住を行う
部分解を組み合わせて探索を行う
単一母集団GA
DGA
解探索性能
Inter-machine JOXとdMSXFの比較
<比較手法>
交叉に以下の2つを適用したGAのモデル
・ Inter-machine JOX
・ dMSXF
<対象問題>
ft10(10仕事10機械問題)
ft20(20仕事5機械問題)
abz9(20仕事15機械問題) orb01(10仕事10機械問題)
解探索性能(ft20,abz9)
ft20
abz9
Inter-machine JOXが良好な結果を示している
解探索性能(ft10,orb01)
ft10
orb01
Inter-machine JOXが良好な結果を示している
解探索性能(ft20,abz9) MGG
ft20
abz9
Inter-machine JOXが良好な結果を示している
解探索性能(ft10,orb01) MGG
ft10
orb01
Inter-machine JOXが良好な結果を示している
解探索性能(ft20,abz9) DGA
ft20
abz9
Inter-machine JOXが良好な結果を示している
解探索性能(ft10,orb01) DGA
ft10
orb01
Inter-machine JOXが良好な結果を示している
個体の生成位置
個体の生成位置
dMSXFは親個体の間にしか子個体を生成できない
親個体間外(親個体から離れる方向)の
良好な解は発見できない
Inter-machine JOXは親個体の間以外にも個体を生成
親個体間外へ個体生成
dMSXFを以下のように変更する
• 親個体間外にのみ子個体を生成する(OPdMSXF)
• 0.5の確率で親個体間に子個体を生成する
それ以外の場合は外に子個体を生成する(EdMSXF)
<比較手法>
交叉に以下の4つを適用したGAのモデル
• Inter-machine JOX
• dMSXF
• OPdMSXF
• EdMSXF
<対象問題>
ft20(20仕事5機械問題)
abz9(20仕事15機械問題)
外へ個体生成(ft20,abz9)
ft20
abz9
dMSXF,OPdMSXF,EdMSXFの解探索性能に
大きな違いはない
外へ個体生成(ft10,orb01)
ft10
orb01
dMSXF,OPdMSXF,EdMSXFの解探索性能に
大きな違いはない
外へ個体生成(ft20,abz9) MGG
ft20
abz9
dMSXF,OPdMSXF,EdMSXFの解探索性能に
大きな違いはない
外へ個体生成(ft10,orb01) MGG
ft10
orb01
dMSXF,OPdMSXF,EdMSXFの解探索性能に
大きな違いはない
外へ個体生成(ft20,abz9) DGA
ft20
abz9
dMSXF,OPdMSXF,EdMSXFの解探索性能に
大きな違いはない
外へ個体生成(ft10,orb01) DGA
ft10
orb01
dMSXF,OPdMSXF,EdMSXFの解探索性能に
大きな違いはない
親個体間外へ個体生成による影響
個体間外に個体を生成する手法
OPdMSXF,EdMSXF
<解探索性能>
• dMSXFとの間に大きな差はない
• Inter-machine JOXに劣る
個体を個体間外に生成することが
Inter-machine JOXに劣る原因ではない
個体の多様性の変化
個体の多様性の変化
個体の多様性の変化について検討を行う
<検討手法>
交叉に以下の2つを適用したGAのモデル
• Inter-machine JOX
• dMSXF
<対象問題>
ft10(10仕事10機械問題)
ft20(20仕事5機械問題)
abz9(20仕事15機械問題) orb01(10仕事10機械問題)
個体の多様性(ft20)
Inter-machine JOX
dMSXF
Inter-machine JOX : 探索序盤で良好な解を発見
dMSXF : 良好な解を発見する前に多様性が無くなる
個体の多様性(abz9)
Inter-machine JOX
dMSXF
Inter-machine JOX : 探索序盤で良好な解を発見
dMSXF : 良好な解を発見する前に多様性が無くなる
個体の多様性(ft10)
Inter-machine JOX
dMSXF
Inter-machine JOX : 探索序盤で良好な解を発見
dMSXF : 良好な解を発見する前に多様性が無くなる
個体の多様性(orb01)
Inter-machine JOX
dMSXF
Inter-machine JOX : 探索序盤で良好な解を発見
dMSXF : 良好な解を発見する前に多様性が無くなる
交叉による個体の変化量
交叉による個体の変化量の検討
交叉による個体の変化量について検討を行う
<検討手法>
交叉に以下の2つを適用したGAのモデル
• Inter-machine JOX
• dMSXF
<対象問題>
ft10(10仕事10機械問題)
ft20(20仕事5機械問題)
abz9(20仕事15機械問題) orb01(10仕事10機械問題)
交叉による個体の変化(ft20)
Inter-machine JOX
dMSXF
Inter-machine JOXの方が個体の変化量が大きい
個体の変化量に10倍程度の差が現れている
交叉による個体の変化(abz9)
Inter-machine JOX
dMSXF
Inter-machine JOXの方が個体の変化量が大きい
個体の変化量に10倍以上の差が現れている
交叉による個体の変化(ft10)
Inter-machine JOX
dMSXF
Inter-machine JOXの方が個体の変化量が大きい
個体の変化量に10倍以上の差が現れている
交叉による個体の変化(orb01)
Inter-machine JOX
dMSXF
Inter-machine JOXの方が個体の変化量が大きい
個体の変化量に10倍以上の差が現れている
大域的探索
大きく変化するdMSXF
大域的探索ができるように変更したdMSXF
近傍の変わりにInter-machine JOXを適用(dMSXF(JOX))
<比較手法>
交叉に以下の2つを適用したGAのモデル
・ Inter-machine JOX
・ dMSXF
・ dMSXF(JOX)
<対象問題>
ft10(10仕事10機械問題)
ft20(20仕事5機械問題)
abz9(20仕事15機械問題) orb01(10仕事10機械問題)
解探索性能(ft20,abz9)
ft20
abz9
解探索性能がInter-machine JOXにかなり近づいている
解探索性能(ft10,orb01)
ft10
orb01
解探索性能がInter-machine JOXにかなり近づいている
解探索性能(ft20,abz9) MGG
ft20
abz9
dMSXF(JOX)は
Inter-machine JOXと同等以上の解探索性能
解探索性能(ft10,orb01) MGG
ft10
orb01
dMSXF(JOX)は
Inter-machine JOXと同等以上の解探索性能
解探索性能(ft20,abz9) DGA
ft20
abz9
dMSXF(JOX)は
Inter-machine JOXと同等以上の解探索性能
解探索性能(ft10,orb01) DGA
ft10
orb01
dMSXF(JOX)は
Inter-machine JOXと同等以上の解探索性能
I2距離
I2距離
I2距離
I2距離
距離の測定方法による解探索性能の違い
距離測定にI2距離を用いるdMSXF(dMSXF(I2))
<比較手法>
交叉に以下の2つを適用したGAのモデル
・ Inter-machine JOX
・ dMSXF
・ dMSXF(I2)
<対象問題>
ft10(10仕事10機械問題)
ft20(20仕事5機械問題)
abz9(20仕事15機械問題) orb01(10仕事10機械問題)
I2距離を用いたdMSXF(ft20,abz9)
ft20
abz9
I2距離を用いたdMSXF (ft10,orb01)
ft20
abz9
ジョブショップスケジューリング問題(JSP)
一定数の仕事を一定数の機械で処理する
全体の処理にかかる時間(makespan)の最小化
以下のようなことが問題によって決められている
• 各仕事が機械を使う順序(技術的順序)
• 各仕事が各作業を各機械上で処理する時間
ジョブショップスケジューリング問題(JSP)
一定数の仕事を一定数の機械で処理する
全体の処理にかかる時間(makespan)の最小化
以下のようなことが問題によって決められている
• 各仕事が機械を使う順序(技術的順序)
• 各仕事が各作業を各機械上で処理する時間
近傍の生成方法
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
近傍の生成方法
dMSXFにおける個体生成
一つの親個体の周りに子個体を生成する
近傍を決定する必要がある
用いる近傍 ・・・ CB近傍 [山田,1994]
個体間の距離
dMSXFにおける個体生成
一方の親個体から他方の親個体に近づくよう個体を生成する
個体間の距離を図る必要がある
<距離の測定方法>
• 各機械上である仕事の
次の仕事が違う場合
距離を 1 増加させる
• 各機械上である仕事を
処理する順序が異なるとき
距離を1増加させる
個体の多様性が維持されたときの探索
ft20
abz9
探索終盤でもより良好な解を発見している
ただし,ある程度良好な解が発見されると探索は停滞する
解探索性能の違い
Inter-machine JOXの方が良好な解探索性能を示した
Inter-machine JOXとdMSXFの
探索方法の違いが原因
<2つの交叉の違い>
• 個体間外への個体生成の有無
Inter-machine JOXでは個体間外にも個体が生成される
• 探索途中での個体の多様性
多様性が失われると交叉が意味を成さない
• 1回の交叉による個体の変化量
局所的探索か大域的探索か
実験結果のまとめ
<用いた交叉手法>
• Inter-machine JOX
• dMSXF
解探索性能はInter-machine JOXがdMSXFよりも良好
<原因として考えられること>
• 個体間外への個体生成の有無
個体間外へ個体を生成するようにdMSXFを変更し検討したが,
解探索性能に変化はなかった
• 個体の多様性の変化
dMSXFは多様性が失われるまでに良好な解を発見できない
多様性が大きいときは良好な探索が可能
• 交叉による個体の変化量
dMSXFでは個体の変化が小さく,局所的探索しかできない
まとめ
JSPをGAで最適化する際の交叉設定の指針について検討
JSPに有効なInter-machine JOX
JSPに対して有効性が検討されていないdMSXF
解探索性能はInter-machine JOXがdMSXFよりも良好
• 個体間外への個体生成による解探索性能の改善は見られない
• 個体の多様性が維持されている間は良好な探索が可能
• 交叉による個体の変化が小さいと
個体の多様性が失われるまでに良好な解を発見できない
JSPに対して有効な交叉設定の指針
• 十分な個体の多様性の維持
• 局所的探索よりも大域的探索
研究目的
JSPをGAで最適化する場合について検討
GAにおける最適化では
適切な遺伝的オペレータの設定が重要
個体の情報交換を行う交叉は非常に重要
適切な交叉を設定するのは困難
適切な交叉手法を決定するための指針について検討
Inter-machine Job-based Crossover
Step 1 1つ以上の仕事を選択(ランダム)
Step 2 選択した仕事についての遺伝子を継承
親1から子1へ,親2から子2へ
Step 3 残りの仕事を順序を守るように継承
親1から子2へ,親2から子1へ
“Step 1” で選択された仕事は必ず技術的順序が守られる
“Step 3” で継承される仕事も各仕事内で順序は変わらない
交叉によって技術的順序が崩されることはない
Inter-machine JOX
実験結果のまとめ
<用いた交叉手法>
• Inter-machine JOX
• dMSXF
解探索性能はInter-machine JOXがdMSXFよりも良好
<原因として考えられること>
• 個体の多様性の変化
dMSXFは多様性が失われるまでに良好な解を発見できない
多様性が大きいときは良好な探索が可能
• 交叉による個体の変化量
dMSXFでは個体の変化が小さく,局所的探索しかできない