OptHub

機械加工スケジューリング問題(多目的)

2023年 進化計算コンペ 多目的部門の問題
機械加工スケジューリング問題(多目的)

Abstract

本問題は自動化が進んだ製造工場における機械加工スケジューリング問題です.
現在,産業界では,少子化や若者のものづくり離れなどの影響による人手不足が問題となっています.そのため,人手不足を補うために,デジタル技術を活用した生産工程の自動化が進められています.しかし,作業者と自動処理可能な機械が混在する実際の製造現場では,作業者の休憩時間や機械の稼働時間など様々な制約が存在します.そのため,多制約最適化問題のための効率的な最適化手法の開発が期待されています.
このような背景をもとに本問題では実際の製造現場で起こっている問題を取り上げ,良質なスケジュールの導出を目指してもらいます.


機械加工スケジューリング問題

問題の概要

今回の問題で想定する工場は下図に示すような自動パレットシステムを導入しています.

auto_pallet_system

マシニングセンタと呼ばれる加工機械が加工対象物(ワーク)の加工を行い,作業者はワークを固定する台(パレット)にワークの取り付け/取り外しを行います.マシニングセンタの前にはパレットが12個設置されています.各パレットにはそれぞれワークを1つ取り付けることができます.

ワークは以下の手順で処理されます.

  1. ワークをパレットに取り付ける(作業者)
  2. ワークを加工する(マシニングセンタ)
  3. ワークをパレットから取り外す(作業者)

ワークが取り付けられているパレットは自動パレットシステムによって,任意の順番でマシニングセンタに投入されます.作業者とマシニングセンタは独立して仕事を行うことができます.また作業者には作業ができない時間が存在し,夜間(17:00〜翌朝9:00)のほか,休憩時間(10:00〜10:10,12:00〜12:45,15:00〜15:15)が設定されています.なお多目的部門では,作業者は残業として夜間に作業が可能ですが,ペナルティが発生します.また各日の作業は9:00を開始時刻とするため,9:00に日付が変わるものとします.したがって,1日目の9:00から2日目の9:00までを1日目とします.なお,作業者の作業は休憩時間を跨ぐことはできません.また,作業者の作業とマシニングセンタの作業は共に日付の切り替え(翌朝9:00)を跨ぐことができません(0:00を跨ぐことはできます).

ワークをパレットに取り付ける際,治具と呼ばれるワークを固定する器具が必要です.治具はワークごとに使えるものが決まっています.治具の交換はパレットにワークを取り付ける際に行い,45分余分にかかります.

ワークには品番が存在し,同一パレット上でワークを交換する際,ワークの品番が異なる場合は10分の段取り替え時間が発生します.治具を交換する場合は,この段取り替え時間は発生しません.

問題定義

本問題は作業者とマシニングセンタの2機械のジョブショップ・スケジューリング問題(Job-shop Scheduling Problem: JSP)として捉えることができます.本問題ではこちらの論文で提案する混合整数計画モデルを基に,多目的最適化向けに変更を加えたものを使用します.変更部分はメイクスパンを目的関数に加え,納期制約を削除,作業者が残業できるようにした点です.本問題では皆さまに決定変数の一部を決めて頂き,残りの変数をサーバー側で混合整数計画モデルを基に決定するため,目的関数を1つにする必要があります.そこで,緩和した制約を目的関数に追加しました.

本問題は最小化問題です.

minimizew1f1+w2f2+w3f3+w4f4\text{minimize} \quad w_1 f_1 + w_2 f_2 + w_3 f_3 + w_4 f_4

  • 納期余裕の最大化(最小化問題で定義するためマイナスを付けています)
    f1=j=1W(EjtjF)f_1 = - \sum^{W}_{j=1} (E_j - t^{\text{F}}_{j})
  • メイクスパンの最小化
    f2=ξf_2 = \xi
  • 納期遅れの最小化
    f3=j=1WψjPf_3 = \sum^{W}_{j=1} \psi^\text{P}_j
  • 残業時間の最小化
    f4=s=1DzsPf_4 =\sum^{D}_{s=1} z^\text{P}_s

第1項には納期遅れ分が含まれますが,ペナルティとして第3項も追加しています.一方,納期遅れや残業が発生しない場合は第3項,第4項は0になります.

本問題で使用する混合整数計画モデルの全体はこちらをご確認ください.なお,表記の簡易化のため,本ページでは tjFt^{\text{F}}_j の定義をワーク jj の全ての作業の終了時刻としています.

各変数の定義は以下のとおりです.

変数 説明
tjFt^{\text{F}}_j ワーク jj の全ての作業の終了時刻
EjE_j ワーク jj の納期
WW ワーク数
ξ\xi メイクスパン
ψjP\psi^\text{P}_j ワーク jj の納期遅れ量
zsPz^\text{P}_s ss 日目の残業時間
DD スケジュール日数
w1,w2,w3,w4w_1,w_2,w_3,w_4 目的関数各項の重み

設計変数

本問題には5種類の決定変数がありますが,実行可能解を見つけるのが難しい複雑な問題となっています.そのため,皆さまには決定変数のうち作業の日付割り当てのみを決定していただきます.残りの変数はサーバーでSCIPを使い導出し,評価値を返します.

また本問題は多目的問題ですがSCIPを使うため,目的関数の重みをあらかじめ設定しておく必要があります.本問題ではそれらの重みも皆さまに決定してもらいます.なお,最終的な評価にはハイパーボリュームを使います.

solving

Problem Owner

jpnsec

jpnsec

ID

machine-scheduling-mop

docker_icon

Docker

opthub/machine-scheduling-mop:latest