資源制約スケジューリング問題 ―メタヒューリス

Download Report

Transcript 資源制約スケジューリング問題 ―メタヒューリス

Slide 1

資源制約スケジューリング問題
―メタヒューリスティクスによるアプ
ローチ
野々部宏司
法政大学デザイン工学部


Slide 2

背景




組合せ(最適化)問題: “離散的”な集合を扱う問題


計算の複雑さの理論: NP困難性



現実には,多くの場合において厳密解を求めることは困難

実用上の要請








解きたい問題(問題例)に対して,一定時間内に実務上許容可能な解が実際
に得られること
比較的良質の解で満足 近似解法,発見的手法

高性能アルゴリズム


問題構造を巧く利用



適用範囲限定

汎用近似アルゴリズム


性能と汎用性のトレードオフ


Slide 3

本研究の目指すところ


実用性の高いスケジューリング・エンジンの開発


適用可能性(汎用性): 拡張RCPSPモデル



高性能: メタヒューリスティクス

RCPSPに
定式化

スケジュール
汎用モデル
RCPSP

RCPSP
ソルバ

スケジューリング最適化エンジン

理 論 ―――― 応 用 ―――― 実 用
Theory
Application
Practice


Slide 4

モデル


Slide 5

RCPSP
(Resource Constrained Project Scheduling Problem)






資源 r ∈ R


機械,工具,マンパワー,…



各時間 Kr まで利用可能

作業(仕事,工程) i ∈ I


処理時間: di (中断不可)



必要資源量: ki,r



開始時刻(決定変数, 非負整数): si

r ∈ Ri

先行制約 i → j




for

si + di  sj

評価基準


最大完了時刻,フロー時間,最大納期遅れ,…


Slide 6

ガントチャート

ki,r
3

di

4
2

5

1

1

2

3

i

4

5

6

7

8

9 10 11 12

t


Slide 7

ガントチャート
資源 r

ki,r

6

i

5
3

Kr = 4

di

4

3
2
1

3

2

4

5

4

1

1

2

3

4

5

6

7

8

9 10 11 12

t


Slide 8

拡張RCPSP


資源供給量が時間の経過とともに変化




資源供給量: Kr  Kr,t (t = 1, 2, …)

作業による資源消費量が処理の経過とともに変化


資源消費量: ki,r  ki,r,t (t = 1, 2, …, di)



時間制約(一般化先行制約)



Multiple 処理モード



作業の中断,並列処理


Slide 9

時間制約
sj – si  dij


dij  0 の場合


最小遅延時間,最早開始時刻

i

dij  0
j

si

sj

t


Slide 10

時間制約
sj – si  dij


dij  0 の場合


最大遅延時間,納期

i
dji < 0
j

si

sj

t


Slide 11

時間制約
sj – si  dij


時間枠の設定なども可能

i
dji < 0

dij  0
j
sj
j の i に対する時間枠

t


Slide 12

時間制約スケジューリング


Activity-on-node project network


作業間の先行関係(時間制約)を表現
1
1
2
–3
4
0
0
1 6

0
0

0
–1

3
2
5





4

–4

0

8



2

3

–5

i

2

j

si + dij  sj
6

4

dij

10
dist(0, i): 最早開始時刻

8

i から j への最長路を dist(i, j) とすれば,si + dist(i, j)  sj
実行可能スケジュールが存在することは,長さ正の閉路が存在しないこ
とに対応
(全点間)最長路問題: O(n (m + n log n)) 時間


Slide 13

Multiple 処理モード




作業の処理方法(=処理時間,必要資源量)


処理モードとして,複数の選択肢を設定可能






性能の異なる機械



作業量(人×日)一定



特急処理





MRCPSP(Multi-mode RCPSP)


各作業をいつ,どの処理モードで行うかを決定


Slide 14

Multiple 処理モード


作業 i の処理モード集合 Mi



0-1 変数 xi,m を用いて作業 i の処理モードを表現




xi,m =1 ⇔ 作業 i を処理モード m で処理



m∈Mi




xi,m = 1, for all i

処理モード割当て: x = (xi,m | i ∈ I, m ∈ Mi)

非再生資源制約 s ∈ Rnon


スケジュール全体での利用可能量に制限
例: 原材料,予算,...



  hm,s xi,m  Hs
i



m

処理モードのみに関する制約


Slide 15

作業の中断
作業は中断後, 再処理可能


作業 i (処理時間 d) を d個の小作業 iτ (1  τ  d) に分解

d
作業 i

1 2 …
作業 i

t …
it

d


Slide 16

作業の中断
作業は中断後, 再処理可能


作業 i (処理時間 d) を d個の小作業 iτ (1  τ  d) に分解



小作業間で中断可能



iτ, iτ+1 間の最大中断時間 b(τ) を設定可能

1 2 …
作業 i
中断

t
it

t+1
it+1
 b(t)

dm


Slide 17

作業の中断
作業は中断後, 再処理可能


作業 i (処理時間 d) を d個の小作業 iτ (1  τ  d) に分解



小作業間で中断可能



iτ, iτ+1 間の最大中断時間 b(τ) を設定可能

1 2 …
作業 i

t
it

t+1
it+1



各作業の開始時刻ベクトル si = (sit | 1  t  di) を決定



中断中も資源を消費可能

dm


Slide 18

例:勤務時間を考慮した生産スケジュー
リング
ジョブショップ型のスケジューリング問題


各製品は複数の工程を経て生産



工程は,手動処理(前半) + 自動処理(後半)



設備資源は工程全体を通して,作業員資源 は手動処理においてのみ必要



休憩時間,シフト間においては,


手動処理を中断,自動処理は続行



割り込み不可

手動処理
8

12

自動処理
18

24

6




Slide 19

例:勤務時間を考慮した生産スケジュー
リング
ジョブショップ型のスケジューリング問題


各製品は複数の工程を経て生産



工程は,手動処理(前半) + 自動処理(後半)



設備資源は工程全体を通して,作業員資源 は手動処理においてのみ必要



休憩時間,シフト間においては,


手動処理を中断,自動処理は続行



割り込み不可

手動
8

手動
12

手動 自動処理
18

24

割り込み禁止(中断中も設備資源を消費)

6




Slide 20

作業の並列処理
小作業を並列処理可能


資源集合 R を,消費のされ方によって Rsum, Rmax に 分割

作業 i

1 2 …t …
i1 i2
it

d

 p(t): 最大並列数

it


Slide 21

例: 配員計画を含む生産スケジューリン





大きな構造物が対象


作業: 溶接,研磨,塗装など



資源: 構造物の配置場所,工員

総仕事量のみが与えられ,詳細な計画なし

溶接

研磨

塗装
t


Slide 22

例: 配員計画を含む生産スケジューリン





大きな構造物が対象


作業: 溶接,研磨,塗装など



資源: 構造物の配置場所,工員

総仕事量のみが与えられ,詳細な計画なし

溶接

研磨

塗装
t


Slide 23

例: 配員計画を含む生産スケジューリン





大きな構造物が対象


作業: 溶接,研磨,塗装など



資源: 構造物の配置場所,工員

総仕事量のみが与えられ,詳細な計画なし

溶接

研磨

作業の並列処理

塗装
t



「工員」資源 ∈ Rsum: 各小作業が消費する資源量の合計が必要
「配置場所」資源 ∈ Rmax: 小作業が消費する資源量の中で最大のものが
必要


Slide 24

アルゴリズム


Slide 25

局所探索法
1. 適当な初期解 x を何らかの方法で生成
2. x に対して,局所的な変更を加えて得られる解の集合(近傍) N(x) の中
に x よりもよい解 x が存在すれば,x := x として
(x から x に移動して)2. に戻る
存在しなければ終了
N(x)
x
x


Slide 26

タブー探索法


局所探索法の拡張



改悪解への移動を許可


近傍内の最良解へ(改悪であっても)移動



過去の探索履歴を基に,近傍を制限


Slide 27

アルゴリズムの概略



基本的枠組みはタブー探索
解 (x, ℓ)


実行可能処理モード割当て x = (xi,m | i∈I, m∈Mi)

非再生可能資源制約をすべて満足




作業リスト (作業の順列) ℓ = (ℓ1, ℓ2,…, ℓ|I|):

リストスケジューリングによって,解 (x, ℓ) からスケジュール (x, s) を
生成
s = (si | i ∈ I )
si = (siτ | 1  τ  di,m) : 作業 i の開始時刻ベクトル


リストスケジューリングにより得られるスケジュールで解を評価


Slide 28

リストスケジューリング
入力: 解 (x, ℓ)
出力: 実行可能スケジュール (x, s) or “failure”




各作業の開始時刻ベクトル si(各小作業の開始時刻)をリストの順に決

si : すべての制約を満たす最早開始時刻(最小ベクトル)




フォワード・スケジューリング

実行可能な開始時刻ベクトルが存在しない場合は,バックトラック


Slide 29

リストスケジューリング: バッ
クトラック
入力: 解 (x, ℓ)
出力: 実行可能スケジュール (x, s) or “failure”

i

4

j
i

...

j
t

1

2

3

4

5

6

7

8

9 10 11 12


Slide 30

リストスケジューリング: バッ
クトラック
入力: 解 (x, ℓ)
出力: 実行可能スケジュール (x, s) or “failure”

i

-4

j
i

...

j
t

1

2

3

4

5

6

7

8

9 10 11 12


Slide 31

リストスケジューリング: バッ
クトラック
入力: 解 (x, ℓ)
出力: 実行可能スケジュール (x, s) or “failure”


バックトラック回数に制限

i

-4

j
i

... j
t

1

2

3

4

5

6

7

8

9 10 11 12


Slide 32

解空間の縮小
Activity-on-node project network の利用


以下の条件を満たす解 (x, ℓ) のみ探索
1.

dist(i, j) < , dist( j, i) =   リスト ℓ において,i は j に先行

2.

同一強連結成分内の作業はリスト ℓ 中連続して出現

1

0
0

1

0
–1

–3

2

3

5

–5

4

6
4

–4

2

8

2

6

4
2


Slide 33

初期解
初期解 (x0, ℓ0)


初期処理モード割当て x0






実行可能性判定(すべての非再生可能資源制約を満たすことができるかどう
かの判定)がNP困難
制約充足問題に対するメタヒューリスティクス(TabuCSP)

初期リスト ℓ0


ランダムもしくは発見的手法


Slide 34

近傍


近傍 N(x, ℓ)


解 (x, ℓ) に対し, 以下のいずれかひとつの操作を適用することで得られる解
の集合

1. ChangeMode(i, m)
2. ShiftForward(i, j)


Slide 35

近傍


近傍 N(x, ℓ)


解 (x, ℓ) に対し, 以下のいずれかひとつの操作を適用することで得られる解
の集合

1. ChangeMode(i, m)





作業 i の処理モードを m∈ Mi に変更
その結果,x が非再生可能資源制約に違反するようであれば, x を初期解と
して TabuCSP を実行
TabuCSP は,ある定められた反復回数で打ち切り

2. ShiftForward(i, j)


Slide 36

近傍


近傍 N(x, ℓ)


解 (x, ℓ) に対し, 以下のいずれかひとつの操作を適用することで得られる解の集合

1. ChangeMode(i, m)
2. ShiftForward(i, j)


作業 i が作業 j に先行し,かつ以下の 2条件を満たすようリスト ℓ を修正
1. dist(i, j) < , dist( j, i) =   リスト ℓ において,i は j に先行
2. 同一強連結成分内の作業はリスト ℓ 中連続して出現


Slide 37

近傍


近傍 N(x, ℓ)


解 (x, ℓ) に対し, 以下のいずれかひとつの操作を適用することで得られる解の集合

1. ChangeMode(i, m)
2. ShiftForward(i, j)


クリティカルパスによる近傍の縮小


Slide 38

計算実験


Slide 39

ベンチマーク問題: MRCPSP


Multi-mode RCPSP (資源制約,



PSPLIB [Kolisch and Sprecher, 1997]



j20: 554 個の問題例



|R| = |Rnon| = 2, | I | = 20, |Mi| = 3

アルゴリズム

先行制約)

計算時


#実行可能

最良値からの
平均誤差

Tabu search1

30 秒

95/270

284.07%

Priority-rule method2

30 秒

270/270

180.05%

Our tabu search3

10 秒

269/270

95.88%

1. [De Reyck and Herroelen, 1999] 333MHz PC 上で実行
2. [Heilmann, 2001] 333MHz PC上で実行
3. 1GHz PC上で実行


Slide 40

ベンチマーク問題:
MRCPSP/max


Multi-mode RCPSP with minimum and maximum time lags



ProGen/max [Schwindt, 1998]



270 個の問題例: |R| = |Rnon| = 3, | I | = 100, |Mi| = 3, 4 or 5

アルゴリズム

計算時


#実行可能

最良値からの
平均誤差

Tabu search1

30 秒

95/270

284.07%

Priority-rule method2

30 秒

270/270

180.05%

Our tabu search3

10 秒

269/270

95.88%

1. [De Reyck and Herroelen, 1999] 333MHz PC 上で実行
2. [Heilmann, 2001] 333MHz PC上で実行
3. 1GHz PC上で実行