Power Point File

Download Report

Transcript Power Point File

ロジスティクス工学
第9章
スケジューリングモデル
補助資料:OptSeqによるスケジューリング入門
http://www.logopt.com/OptSeq/OptSeq.htm
からpdfファイルをダウンロード可能
補助資料2:組合せ最適化短編集(朝倉書店)
東京商船大学
久保 幹雄
スケジューリングとは
• オペレーション,作業(operation),ジョブ,仕事
(job),タスク(task),活動(activity):遂行すべき仕
事のこと.作業時間や納期の情報が付加される.
• 先行制約:ある作業(ジョブ,活動)がある作業
(ジョブ,活動)の前に処理されなければならない
ことを表す制約.
• 資源(resource),機械(machine):作業を行うとき
に必要とされるもので,その量に限りがあるもの.
資源は一般的.機械はジョブによって占有される
資源.
航空機を早く離陸させよう!(OptSeq 3節)
• PERT: Program Evaluation and Review Technique,第二次
世界大戦のポラリス潜水艦の建造で利用.(ORの古典)
作業1
作業3
作業4
13分
15分
27分
完了時刻最小化
ダミー作業
先行制約
作業
作業2
25分
作業5
22分
点が作業(活動)のグラフ->点上活動図式
作業1:乗客降ろし(13分)
作業2:荷物降ろし(25分)
作業3:機内清掃(15分)
作業4:乗客搭乗(27分)
作業5:荷物積み込み(22分)
航空機を早く離陸させよう!(1)
0+13=13
作業1
作業3
作業4
13分
15分
27分
0分
ダミー作業
(作業開始)
ダミー作業
0+25=25
作業2
作業5
25分
22分
ダミーの開始作業を追加.最早終了時刻を0とする.
ダミーの開始作業の後続する点の作業終了時刻を更新.
その後,ダミーの開始作業をグラフから除く.
航空機を早く離陸させよう!(2)
13
28=13+15 52=25+27
作業1
作業3
作業4
13分
15分
27分
25
ダミー作業
47=25+22
作業2
作業5
25分
22分
先行する点がない点から順に,後続する点の最早終了時刻を更新.
(大きいものに置き換える!):作業1,作業2の後続点を更新.
航空機を早く離陸させよう!(3)
13
28
作業1
作業3
55=max{28+27,52}
作業4
47=47+0
15分
13分
27分
25
47
作業2
作業5
25分
22分
ダミー作業
先行する点がない点から順に,後続する点の最早終了時刻を更新.
(大きいものに置き換える!):作業3,作業5の後続点の更新
航空機を早く離陸させよう!(4)
13
28
55
作業1
作業3
作業4
55=max{55+0,47}
15分
13分
27分
25
47
作業2
作業5
ダミー作業
25分
22分
作業4の後続点の更新;最早終了時刻 56 分後!
最早終了時刻+後続する点の作業時間=後続する点の最早終了時刻の枝
(->クリティカルパス:図の赤線)
最適解
解法:閉路をもたないグラフ上での最長路問題(組合せ最適化と
アルゴリズム(共立出版)3.1.5節参照)->簡単に解ける!
作業1
作業3
作業4
15分
13分
27分
作業5
作業2
25分
22分
0
時間
55
横軸に時間をとって作業を並べた図->ガント図式(Gantt’s chart)
並列ショップスケジューリング
ピットイン時間を短縮せよ! (OptSeq 5節)
gas
3秒
作業1
作業9
11
秒
R
TE
WA
3人のピットクルー
(資源制約)
2
作業2
秒
作業5
2秒
4
作業6
作業3
作業7
作業8
作業4
2
秒
秒
4
秒
4秒
4
秒
2
秒
作業10
資源(機械)制約
があると難しい!
有効スケジュール生成スキーム
(1)
適合作業(ジョブ)
0
クルー1
クルー2
作業1
作業2 作業3 作業4
5
10
15
作業1
作業の優先ルール
によって解が異なる
のでスキームとよぶ!
クルー3
適合作業から1つの作業を選択(たとえば作業時間の長いもの)
->ピットクルー1に割り付け(作業1の開始時刻を0に設定)
有効スケジュール生成スキーム
(2)
作業9
適合作業
0
クルー1
作業2 作業3 作業4
5
作業1
10
作業1がスケジュール
されたので適合作業
に入る
15
作業9
クルー2 作業2 作業4
クルー3 作業3
同様に適合作業から作業を選択し,開始可能な最早時刻に
割り付け(作業2,3の開始時刻を0に,作業4の開始時刻を2に,
作業9の開始時刻を3に設定)
有効スケジュール生成スキーム
(3)
作業4がスケジュールされたので適合作業に追加
適合作業
作業5
0
クルー1
作業6
作業7
5
作業1
10
作業8
15
作業9
クルー2 作業2 作業4
作業5
作業7
クルー3 作業3
作業6
作業8
適合作業から作業を選択し,開始可能な最早時刻に割り付け
有効スケジュール生成スキーム
(4)
作業5,6,7,8がスケジュールされたので適合作業に追加
適合作業
作業10
0
クルー1
5
作業1
10
15
作業9
クルー2 作業2 作業4
作業5
作業7
クルー3 作業3
作業6
作業8
作業10
残った作業10を開始可能な最早時刻に割り付け
(完了時刻=14のスケジュールの完成!)
有効スケジュール生成スキームの性質
• 作業の選択順(優先ルール)によって色々なスケ
ジュールが得られる.
• 有効スケジュール(active schedule:他の作業の
開始時刻を遅らせることなしに,いかなる作業の
開始時刻を早めることができないスケジュール)
を生成する.
• 作業を早く開始する方が良いスケジューリング問
題に対しては,最適解は必ず有効スケジュール
になる.
遅れなしスケジュール生成スキーム(1)
時刻0における
適合作業(ジョブ)
0
クルー1
作業1
作業2 作業3 作業4
5
10
15
作業1
クルー2 作業2
クルー3 作業3
現在時刻(0)における適合作業から作業を選択して,開始時刻
を 0 に設定(作業4は資源がないので適合作業から除かれる.)
作業1,2,3が活動作業(ピンク色)
遅れなしスケジュール生成スキーム(2)
時刻 2 における
適合作業(ジョブ)
作業4
0
クルー1
5
10
15
作業1
クルー2 作業2 作業4
クルー3 作業3
作業完了時刻の最早のもの(作業2,3)の完了時刻を現在時刻(2)とする.
活動作業から作業2,3を除く.
時刻 2 における適合作業から作業4を選択.開始時刻を2に設定.
遅れなしスケジュール生成スキーム(3)
時刻 3 における
適合作業(ジョブ)
0
クルー1
作業9
5
作業1
10
15
作業9
クルー2 作業2 作業4
クルー3 作業3
現在時刻を 3 に進め,時刻 3 における適合作業(作業9)を選択.
作業9の開始時刻を3に設定.
遅れなしスケジュール生成スキーム(4)
時刻 4 における
適合作業(ジョブ)
0
クルー1
作業5
作業6
作業7
作業8
5
作業1
10
15
作業9
クルー2 作業2 作業4
作業5
クルー3 作業3
作業6
現在時刻を 4 に進め,時刻 4 における適合作業(作業5,6,7,8)から
適当な優先ルールにしたがって作業を選択.
作業5,6の開始時刻を4に設定.
遅れなしスケジュール生成スキーム(5)
時刻 8 における
適合作業(ジョブ)
0
クルー1
作業7
作業8
5
作業1
10
15
作業9
クルー2 作業2 作業4
作業5
作業7
クルー3 作業3
作業6
作業8
現在時刻を 8 に進め,時刻 8 における適合作業(作業7,8)から
適当な優先ルールにしたがって作業を選択.
作業7,8の開始時刻を 8 に設定.
遅れなしスケジュール生成スキーム(6)
時刻 12 における
適合作業(ジョブ)
作業10
0
クルー1
5
作業1
10
15
作業9
クルー2 作業2 作業4
作業5
作業7
クルー3 作業3
作業6
作業8
作業10
現在時刻を 12 に進め,時刻 12 における適合作業(作業10)選択.
作業 10 の開始時刻を 12 に設定.
完了時刻 14 のスケジュールの完成!
遅れなしスケジュール生成スキームの性質
• 作業の選択順(優先ルール)によって色々なスケ
ジュールが得られる.
• 遅れなしスケジュール(nondelay schedule:作業
の途中中断を許したとしても,他の作業の完了
時刻を遅らせることなしに,いかなる作業の開始
時刻を早めることができないスケジュール)を生
成する.
• 作業を早く開始する方が良いスケジューリング問
題に対しても最適解を含むとは限らない.
• 遅れなしスケジュールの集合は,有効スケジュー
ルの集合に含まれる.
練習問題 9-1
• 以下ように条件を変えたとき,有効スケジュール
生成スキームと遅れなしスケジュール生成ス
キームで生成せよ.(ただし,作業の番号が小さ
いもの先に割り付ける優先ルールを用いるもの
とする.)
• ピットクルー(作業員)を4人に増やした場合
• 作業時間をすべて1秒減らした場合
• 先行制約をすべて外した場合
優先ルール(priority rule,dispatching rule)
• 適合作業(ジョブ)から作業を選択するため
のルール
– SPT(shortest processing time)ルール:作業時
間の短い順
– EDD(earliest due date)ルール:納期の早い順
– 先行制約における後続する作業数の多い順
– ....問題に依存してたくさんある!
資源制約付きスケジュールング
お家を早く造ろう!(OptSeq 7節)
作業時間=2日
1日目1人,2日目2人の資源
が必要!
1階
屋根
土台
完成!
1人の作業員休暇
資源量(人)
内装
2人
0
3
時間(日)
最適解
資源量(人)
時間(日)
資源制約付きスケジューリングは一般的なモデル
(ジョブショップ,並列ショップスケジューリングを特殊形として含む.)
1機械スケジュールング
納期遅れを最小にしよう!(OptSeq 8
節)
• 完了時刻最小化(メイクスパン)以外の目的関数の例
–
–
–
–
–
納期遅れ最小化
納期ずれ最小化
納期遅れした作業(ジョブ)数最小化
納期遅れの最大値の最小化
上の指標の重み付きの尺度最小化 ....
会社名
A社
B社
C社
D社
作業時間 1日
2日
3日
4日
納期
9日後
6日後
4日後
5日後
最適解
作業4(D社)
作業1(A社)
作業3(C社)
納期遅れ
作業2(B社)
納期遅れ
時間(日)
0
10
A社納期
C社納期
D社納期
B社納期
フローショップスケジューリング
車メーカーの生産ライン(OptSeq 12節)
ジョブ(一連の作業)
セダン
3
4
1
作業時間
機械(工程)
スポーツカー
4
6
8
バン
2
5
組み立て
3
塗装
タイヤ取り付け
フローショップ->すべてのジョブの機械順が同じ
最適解のGantt図式
8
4
5
6
3
2
4
3
1
機械別に表示(ジョブ別に表示する方法もある)
ジョブショップスケジューリンング
ジョブごとに機械(工程)順が異なっても良い!
作業
機械
5分
3分
7分
2分
3分
4分
8分
6分
5分
ジョブ
離接グラフ表現
有向枝
離接枝
開始
終了
離接(disjunctive)=「または(or)」の意味
離接グラフ上での解の表現
5
3
8
7
2
6
9
5
3
離接枝に(閉路ができないように)向きをつける.
=各機械上での作業の順番の決定.
クリティカルパス(最長路)
5
3
8
7
2
6
9
5
3
離接枝を決定->クリティカルパスを求める!=1つの近似解