360 likes | 656 Views
ロジスティクス工学 第 9 章 スケジューリングモデル 補助資料: OptSeq によるスケジューリング入門 http://www.logopt.com/OptSeq/OptSeq.htm から pdf ファイルをダウンロード可能 補助資料2:組合せ最適化短編集(朝倉書店) 東京商船大学 久保 幹雄. スケジューリングとは. オペレーション,作業( operation ),ジョブ,仕事 (job) ,タスク (task) ,活動( activity ) :遂行すべき仕事のこと.作業時間や納期の情報が付加される.
E N D
ロジスティクス工学第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:乗客降ろし(13分) 作業2:荷物降ろし(25分) 作業3:機内清掃(15分) 作業4:乗客搭乗(27分) 作業5:荷物積み込み(22分) 点が作業(活動)のグラフ->点上活動図式
航空機を早く離陸させよう!(1) 0+13=13 0分 0+25=25 ダミー作業 (作業開始) ダミーの開始作業を追加.最早終了時刻を0とする. ダミーの開始作業の後続する点の作業終了時刻を更新. その後,ダミーの開始作業をグラフから除く.
航空機を早く離陸させよう!(2) 13 28=13+15 52=25+27 25 47=25+22 先行する点がない点から順に,後続する点の最早終了時刻を更新. (大きいものに置き換える!):作業1,作業2の後続点を更新.
航空機を早く離陸させよう!(3) 55=max{28+27,52} 13 28 47=47+0 25 47 先行する点がない点から順に,後続する点の最早終了時刻を更新. (大きいものに置き換える!):作業3,作業5の後続点の更新
航空機を早く離陸させよう!(4) 55 13 28 55=max{55+0,47} 25 47 作業4の後続点の更新;最早終了時刻 56 分後! 最早終了時刻+後続する点の作業時間=後続する点の最早終了時刻の枝 (->クリティカルパス:図の赤線)
最適解 解法:閉路をもたないグラフ上での最長路問題(組合せ最適化と アルゴリズム(共立出版)3.1.5節参照)->簡単に解ける! 横軸に時間をとって作業を並べた図->ガント図式(Gantt’s chart)
並列ショップスケジューリングピットイン時間を短縮せよ! (OptSeq 5節) 3人のピットクルー (資源制約) 資源(機械)制約 があると難しい!
有効スケジュール生成スキーム(1) 作業1 作業4 作業3 作業2 適合作業(ジョブ) 作業1 クルー1 作業の優先ルール によって解が異なる のでスキームとよぶ! クルー2 クルー3 適合作業から1つの作業を選択(たとえば作業時間の長いもの) ->ピットクルー1に割り付け(作業1の開始時刻を0に設定)
有効スケジュール生成スキーム(2) 作業1がスケジュール されたので適合作業 に入る 作業9 適合作業 作業4 作業3 作業2 作業1 作業9 クルー1 作業2 作業4 クルー2 作業3 クルー3 同様に適合作業から作業を選択し,開始可能な最早時刻に 割り付け(作業2,3の開始時刻を0に,作業4の開始時刻を2に, 作業9の開始時刻を3に設定)
有効スケジュール生成スキーム(3) 作業4がスケジュールされたので適合作業に追加 作業5 作業6 作業7 作業8 適合作業 作業1 作業9 クルー1 作業2 作業4 作業5 作業7 クルー2 作業6 作業8 作業3 クルー3 適合作業から作業を選択し,開始可能な最早時刻に割り付け
有効スケジュール生成スキーム(4) 作業5,6,7,8がスケジュールされたので適合作業に追加 適合作業 作業10 作業1 作業9 クルー1 作業2 作業4 作業5 作業7 作業10 クルー2 作業6 作業8 作業3 クルー3 残った作業10を開始可能な最早時刻に割り付け(完了時刻=14のスケジュールの完成!)
有効スケジュール生成スキームの性質 • 作業の選択順(優先ルール)によって色々なスケジュールが得られる. • 有効スケジュール(active schedule:他の作業の開始時刻を遅らせることなしに,いかなる作業の開始時刻を早めることができないスケジュール)を生成する. • 作業を早く開始する方が良いスケジューリング問題に対しては,最適解は必ず有効スケジュールになる.
遅れなしスケジュール生成スキーム(1) 時刻0における 適合作業(ジョブ) 作業1 作業4 作業3 作業2 作業1 クルー1 作業2 クルー2 クルー3 作業3 現在時刻(0)における適合作業から作業を選択して,開始時刻 を 0 に設定(作業4は資源がないので適合作業から除かれる.) 作業1,2,3が活動作業(ピンク色)
遅れなしスケジュール生成スキーム(2) 時刻 2 における 適合作業(ジョブ) 作業4 作業1 クルー1 作業2 作業4 クルー2 クルー3 作業3 作業完了時刻の最早のもの(作業2,3)の完了時刻を現在時刻(2)とする. 活動作業から作業2,3を除く. 時刻 2 における適合作業から作業4を選択.開始時刻を2に設定.
遅れなしスケジュール生成スキーム(3) 時刻 3 における 適合作業(ジョブ) 作業9 作業1 作業9 クルー1 作業2 作業4 クルー2 クルー3 作業3 現在時刻を 3 に進め,時刻 3 における適合作業(作業9)を選択. 作業9の開始時刻を3に設定.
遅れなしスケジュール生成スキーム(4) 作業5 作業6 時刻 4 における 適合作業(ジョブ) 作業7 作業8 作業1 作業9 クルー1 作業2 作業4 作業5 クルー2 クルー3 作業3 作業6 現在時刻を 4 に進め,時刻 4 における適合作業(作業5,6,7,8)から 適当な優先ルールにしたがって作業を選択. 作業5,6の開始時刻を4に設定.
遅れなしスケジュール生成スキーム(5) 時刻 8 における 適合作業(ジョブ) 作業7 作業8 作業1 作業9 クルー1 作業2 作業4 作業5 作業7 クルー2 クルー3 作業3 作業6 作業8 現在時刻を 8 に進め,時刻 8 における適合作業(作業7,8)から 適当な優先ルールにしたがって作業を選択. 作業7,8の開始時刻を 8 に設定.
遅れなしスケジュール生成スキーム(6) 時刻 12 における 適合作業(ジョブ) 作業10 作業1 作業9 クルー1 作業2 作業4 作業5 作業7 作業10 クルー2 クルー3 作業3 作業6 作業8 現在時刻を 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人の作業員休暇 2人
最適解 資源制約付きスケジューリングは一般的なモデル (ジョブショップ,並列ショップスケジューリングを特殊形として含む.)
1機械スケジュールング納期遅れを最小にしよう!(OptSeq 8節) • 完了時刻最小化(メイクスパン)以外の目的関数の例 • 納期遅れ最小化 • 納期ずれ最小化 • 納期遅れした作業(ジョブ)数最小化 • 納期遅れの最大値の最小化 • 上の指標の重み付きの尺度最小化 ....
フローショップスケジューリング車メーカーの生産ライン(OptSeq 12節) ジョブ(一連の作業) セダン 作業時間 スポーツカー バン 組み立て 塗装 タイヤ取り付け 機械(工程) フローショップ->すべてのジョブの機械順が同じ
最適解のGantt図式 機械別に表示(ジョブ別に表示する方法もある)
ジョブショップスケジューリンング ジョブごとに機械(工程)順が異なっても良い! ジョブ 作業 機械 8分 3分 5分 7分 2分 6分 5分 3分 4分
離接グラフ表現 有向枝 離接枝 終了 開始 離接(disjunctive)=「または(or)」の意味
離接グラフ上での解の表現 3 8 5 5 7 6 2 3 9 5 離接枝に(閉路ができないように)向きをつける. =各機械上での作業の順番の決定.
クリティカルパス(最長路) 3 8 5 5 7 6 2 3 9 5 離接枝を決定->クリティカルパスを求める!=1つの近似解