以下、生産スケジュール作成装置を実施形態1乃至3で、図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。
<実施形態1>
以下、図1および図2を基に、実施形態1の構成について説明する。図1は、実施形態1における、生産スケジュール作成装置のハードウェア構成を示す図である。図2は、実施形態1における、生産スケジュール作成装置の構成を示すブロック図である。
生産スケジュール作成装置は、例えば、通常のコンピュータから構成され、入力装置1、ROM(リードオンリメモリ)2、CPU(中央演算処理装置)3、RAM(ランダムアクセスメモリ)4、外部記憶装置5、表示装置6、及び記録媒体駆動装置7を備えて構成させる。入力装置1、ROM2、CPU3、RAM4、外部記憶装置5、表示装置6、及び記録媒体駆動装置7は内部のバスに接続され、このバスを介して種々のデータ等が入出され、CPU3の制御の下、種々の処理が実行される。
入力装置1は、キーボード、マウス等から構成され、ユーザが種々のデータを入力するために使用される。ROM2には、BIOS(Basic Input/Output System)等のシステムプログラムが記憶される。外部記憶装置5は、ハードディスクドライブ等から構成され、所定のOS(Operating System)及び生産スケジュール作成プログラムが記憶される。CPU3は、外部記憶装置5からOS等を読み出し、各ブロックの動作を制御する。RAM4は、CPU3の作業領域等として用いられる。
表示装置6は、液晶表示装置等から構成され、CPU3の制御の下に種々の画像を表示する。記録媒体駆動装置7は、CD−ROMドライブ、フレキシブルディスクドライブ等から構成される。
なお、本生産スケジュール作成プログラムは、CD−ROM等のコンピュータ読み取り可能な記録媒体8に格納されて市場に流通される。ユーザはこの記録媒体8を記録媒体駆動装置7に読み込ませることで、生産スケジュール作成プログラムをコンピュータにインストールする。また、生産スケジュール作成プログラムをインターネット上のサーバに格納し、このサーバからダウンロードすることで、生産スケジュール作成プログラムをコンピュータにインストールしてもよい。
図1に示す生産スケジュール作成装置は、同種の複数の設備が存在し、各ジョブを複数の同種の設備のいずれか1台で1度だけ処理する場合に、対象であるジョブに対して、利用する設備と設備での処理順序を決定する生産スケジュール作成装置であって、記憶部(図示せず)および処理部(図示せず)を備えて構成される。記憶部は、図1に示すRAM4や外部記憶装置5により構成され、図2に示すように、ジョブ情報記憶部31と、設備情報記憶部32と、割当記憶部33と、スケジュール記憶部34との機能を備えて構成される。処理部は、図1に示すCPU3により構成され、図2に示すように、割当候補生成部11と、処理負荷算出部12と、第1の評価値算出部13と、割当候補変更部14と、割当候補探索部15と、ジョブ配列部16と、第2の評価値算出部17と、配列順序変更部18と、生産スケジュール生成部19との機能を備えて構成される。これらの機能はCPU3が生産スケジュール作成プログラムを実行することで実現される。
以下、記憶部および処理部の各機能について、詳述する。
ジョブ情報記憶部31は、図1に示す入力装置1により入力された、生産スケジュール作成の対象となるジョブに関するジョブ情報を記憶する装置である。ジョブ情報は、複数のジョブのそれぞれに関する情報(ジョブ識別子、品種情報、処理負荷情報、納期情報、使用設備情報)および処理準備期間情報(段取り替え情報)である。
ジョブ識別子(ジョブID)は、ジョブを特定し識別するための識別子である。
品種情報は原料の組成などであり、例えば、前記アルミ合金や銅合金等の合金を鋳造する工程では、純アルミや純銅等の主成分と添加原料などの組成である。
処理負荷情報は、ジョブの処理に必要な処理量(時間、コスト、処理長、重量など)である。
納期情報は、ジョブの処理を終了するべき時刻である。
使用設備情報は、ジョブを処理するのに使用可能な設備の設備識別子(設備ID;設備を特定し識別するための識別子)である。
段取り替え情報は、時系列的に前後するジョブの組み合わせから発生する前のジョブの処理が終了してから後のジョブを開始するのに要する所定の処理準備期間である。より具体的には、段取り替え情報は、処理順序が前後のジョブの品種の組合せに対する、段取り替えの処理の有無および段取り替えの処理に要する所定の処理準備期間である。アルミ合金や銅合金等の合金を鋳造する工程では、処理順序が前後のジョブIDに対する炉洗い(緩衝チャージ)の有無が段取り替え情報としてテーブル形式で記憶され、さらに、その炉洗いに要する所定の処理準備期間が記憶される。例えば、前記アルミ合金や銅合金等の合金を鋳造する工程において、ジョブ1が品種Pを製造するジョブ、ジョブ2が品種Qを製造するジョブであり、ジョブ1、ジョブ2の何れにおいても製造に使用される主成分純原料および添加元素の種類が同じであり、添加元素の濃度のみが異なる(ジョブ2、ジョブ1の順に添加元素の濃度が高くなる)とする。同一設備で、ジョブ1に続いてジョブ2が処理される処理順序の場合には、ジョブ2の添加元素の濃度がジョブ1より低いため、ジョブ1の処理終了後からジョブ2の処理開始前に、炉洗いが有り、この炉洗いに要する時間が処理準備期間である。一方、同一設備で、ジョブ2に続いてジョブ1が処理される処理順序の場合には、ジョブ1の添加元素の濃度がジョブ2より高いため、ジョブ2の処理終了後、炉洗いが無く、ジョブ1の処理が開始される。生産スケジュールの作成過程において、段取り替え情報を参照することで、処理順序が前後するジョブの組み合わせを参照して段取り替えの有無が判断され、段取り替えが必要な場合には、その処理準備期間が求められ、段取り替えの発生に伴う処理準備期間を考慮した生産スケジュールの作成が可能となる。
設備情報記憶部32は、図1に示す入力装置1により入力された、生産スケジュール作成の対象となる設備に関する設備情報を記憶する装置である。設備情報は、複数の設備のそれぞれについての情報(設備識別子、計画対象期間、区間情報、処理能力情報)である。
設備識別子は、設備を特定し識別するための識別子である。
計画対象期間は実際の設備における作業実績時間に基づいて予め設定された、作業開始予定時刻から作業終了予定時刻までの期間に相当し、さらに予め設定された区間間隔によって、複数の区間に分割される。
区間情報は、これらの区間を特定し識別するための識別子である区間識別子(区間ID)、区間の開始時間および終了時間である。例えば、作業開始予定時刻が4月1日、作業終了予定時刻が4月30日、区間間隔が10日間であれば、区間は3個に分割される。区間1の開始時刻は4月1日で終了時刻は4月10日、区間2の開始時刻は4月11日で終了時刻は4月20日、区間3の開始時刻は4月21日で終了時刻は4月30日である。
処理能力情報は、予め設定された区間毎(区間ID毎)に所定の操業制約に従って予め設定(規定)された設備の処理能力(時刻、コスト)である。
割当記憶部33は、後述する割当候補探索部15で探索された割当候補を記憶する装置である。割当候補については、後述する。
スケジュール記憶部34は、生産スケジュール生成部19が作成した生産スケジュールを記憶する装置である。
割当候補生成部11は、ジョブ情報記憶部31に記憶されたジョブ情報および設備情報記憶部32に記憶された設備情報を読み込み、各ジョブをいずれか1つの設備IDに割り当てると共に、各ジョブをいずれか1つの区間IDに割り当てることで割当候補を生成し、処理負荷算出部12および割当候補変更部14に出力する。より具体的には、割当候補は、各ジョブIDに、区間IDと設備IDとを組み合わせたものである。
処理負荷算出部12は、割当候補生成部11または割当候補変更部14から入力した割当候補に対し、ジョブ情報を参照し、各設備の各区間における処理負荷を算出し、第1の評価値算出部13へ出力する。
第1の評価値算出部13は、割当候補に対し、処理負荷算出部12により区間毎に算出された処理負荷と、各設備の各区間において予め定められた処理能力との過不足量を基に割当候補を評価するための第1の評価値V1を算出し、割当候補と第1の評価値V1とを対応づける。
第1の評価値V1は、生成された割当候補のうち、最適な割当候補を選択するための指標である。第1の評価値V1は、割当候補に対し、各区間各設備での処理負荷と各区間各設備での処理能力とを変数とした所定の関数で与えられる。所定の関数は、処理負荷と処理能力との差(過不足量)の変化に応じて、第1の評価値V1が増加および減少する関数の何れかであればよい。例えば、この所定の関数は、処理負荷と処理能力との差(過不足量)が少ないほど、第1の評価値V1が減少する関数であるとする。このような関数を用いれば、複数の割当候補に対し、第1の評価値V1が最も小さい割当候補が、処理負荷と処理能力との差がより小さい割当である、すなわち、各設備にほぼ均等にジョブが割当てられている生産効率のより良い割当であるといえる。
割当候補変更部14は、割当候補からあるジョブを特定し、ジョブ情報を参照し、特定したジョブを、使用可能な別の設備に移動させることで、割当候補を変更した割当候補(以下、暫定割当候補)を生成し、処理負荷算出部12に出力する。上述のように、割当候補変更部14によって、割当候補を変更した割当候補が処理負荷算出部12に出力されることで、上述したように、第1の評価値算出部13によって、暫定割当候補に対する第1の評価値TV1が算出され、暫定割当候補と対応づけられる。より具体的には、暫定割当候補は、割当候補とは異なる、各ジョブIDに、区間IDと設備IDとを組み合わせである。
割当候補探索部15は、割当候補変更部14に割当候補を繰り返し変更させることで、割当候補と、割当候補に対応づけられた第1の評価値V1とを参照し、第1の評価値V1を指標として、最も生産効率のよい割当候補を選択し、選択した割当候補を割当記憶部33に記憶させる。
ジョブ配列部16は、割当記憶部33に記憶された割当候補において、各設備に割り当てられた各ジョブを、ジョブ情報に基づいて、処理される順番である配列順序(処理順序)に配列し、処理順序候補として後述する第2の評価値算出部17に出力する。より具体的には、各設備に割り当てられた各ジョブを配列した割当候補は、各設備IDに割り当てられたジョブIDとジョブが処理される順序である処理順序に関する情報とを組み合わせたものである。処理順序とジョブの処理負荷を基に、各ジョブの処理時刻(処理開始時刻および処理終了時刻)を算出することができる。
第2の評価値算出部17は、ジョブ配列部16または後述する配列順序変更部18から入力された処理順序候補に対し、ジョブ情報および設備情報を参照し、ジョブの配列順序を評価するための第2の評価値V2を算出し、後述する生産スケジュール生成部19へ出力する。
第2の評価値V2は、生成された処理順序候補のうち、段取り替えの回数や段取り替え時間が最も少ない処理順序を選択するための指標である。第2の評価値V2は、各設備における処理順序に対し、時系列的に前後するジョブの品種の組み合わせから発生するジョブの段取り替え時間の和である、段取り時間総和を変数とした所定の関数で与えられる。この所定の関数は、段取り替え時間総和における増減に応じて、第2の評価値V2が増加および減少する関数の何れかであればよい。例えば、この所定の関数は、段取り時間総和が減少するほど、第2の評価値V2が減少する関数であるとする。このような関数を用いれば、複数の処理順序候補に対し、第2の評価値V2が最も小さい処理順序候補が、段取り替え時間総和が小さい処理順序候補である、すなわち、段取り替えに伴う時間のロスを低減させた処理順序候補であるといえる。
第2の評価値V2は、生成された処理順序のうち、納期の遅れ時間、および、段取り替え時間の両方が少ない処理順序候補を選択するための指標であってもよい。この第2の評価値V2は、各設備における処理順序に対し、各ジョブの納期遅れ時間の和である納期遅れ時間総和と、段取り替え時間総和とを変数とした所定の関数で与えられる。所定の関数は、納期遅れ時間総和および段取り替え時間総和における増減に応じて、第2の評価値V2が増加および減少する関数の何れかであればよい。例えば、この所定の関数は、納期遅れ時間総和とおよび段取り時間総和が減少するほど、第2の評価値V2が減少する関数であるとする。このような関数を用いれば、複数の処理順序候補に対し、第2の評価値V2が最も小さい処理順序候補が、納期遅れ時間総和および段取り替え時間総和がより小さい処理順序候補である、すなわち、納期遅れを減らし、段取り替えに伴う時間のロスを低減させ、かつ、各設備にほぼ均等にジョブが割り当てられた、生産効率のより良い生産スケジュールであるといえる。
配列順序変更部18は、ジョブ配列部16によりジョブが処理順序に配列された処理順序候補において、あるジョブを特定し、特定したジョブの処理順序を同一設備内で変更させることでジョブの処理順序を変更し、変更した処理順序を暫定処理順序候補として第2の評価値算出部17へ出力する。
生産スケジュール生成部19は、配列順序変更部18にジョブの処理順序を繰り返し変更させることで、第2の評価値V2が最小となるジョブの処理順序候補を抽出し、抽出した処理順序候補を基に、生産スケジュールを生成し、スケジュール記憶部34に記憶させ、表示装置6に出力する。より具体的には、生産スケジュール生成部19は、抽出した処理順序候補とジョブIDに対応する処理負荷とを参照し、各設備に割り当てられたジョブIDと、ジョブの処理順序とを用いて、各設備に割り当てられた各ジョブの処理時間(処理開始時刻および処理終了時刻)を算出し、生産スケジュールを生成し、スケジュール記憶部34に記憶させ、表示装置6に出力する。
次に、実施形態1の動作について説明する。
図3は、実施形態1における、生産スケジュールを作成するフローチャートである。図4は、実施形態1における、ジョブの設備への初期割り付けと設備間でのジョブ移動とを説明するための図である。図5は、実施形態1における、ジョブの設備への割り付け状態(設備間でのジョブ移動後)を説明するための図である。図6は、実施形態1における、ジョブの処理順序決定を説明するための図である。図7は、実施形態1における、ジョブの処理順序決定を説明するための図である。
なお、図4乃至7に示す図は、ガントチャートである。このガントチャートは、時間を横軸に取るとともに複数の設備を縦軸にとり、複数のジョブを、各設備での1回のジョブ単位ごとに、ジョブ単位の開始時刻から終了時刻までの時間幅に対応する長方形枠(ジョブ枠)で表したタイルを描画したものである。また、図6の横軸に平行な太線は、段取り替えに要する時間を示す。
以下、生産スケジュール作成装置の動作について、一具体例を交えて説明する。
具体例は、生産スケジュール作成装置の動作をより具体的に説明するための一例である。この一具体例における設備情報とジョブ情報は、以下の通りである。
計画対象期間は、4月1日(作業開始予定時刻)から4月30日(作業終了予定時刻)までであり、計画対象期間は10日間隔で予め3つの区間に分割されている。
3つの区間は、区間ID(区間1、区間2、区間3)によって識別され、区間IDと各区間の開始時刻および終了時刻は予め対応づけられている。区間1の開始時刻は4月1日で終了時刻は4月10日、区間2の開始時刻は4月11日で終了時刻は4月20日、区間3の開始時刻は4月21日で終了時刻は4月30日である。
設備は、4個であり、設備ID(設備M1、M2、M3、M4)によって識別される。設備IDと区間IDと該区間IDにおける設備能力とは予め対応づけられている。区間1、2、3での各設備の設備能力は10日間である。
ジョブは、ジョブID(例えば、ジョブ1、・・、ジョブJ;Jは正の整数)によって識別される。ジョブIDと納期情報と処理負荷情報(本具体例では時間)と品種情報と使用設備情報とは予め対応づけられている。ここで使用設備情報は設備IDによって表される。段取り替え情報は、全てのジョブに対する処理順序の組み合わせ、該組み合わせによる段取り替えの有無および該組み合わせによる段取り替えに所要する処理準備期間をテーブル形式で表したものである。
図3に示すように、ステップS11において、割当候補生成部11は、設備情報記憶部32に記憶された設備情報およびジョブ情報記憶部31に記憶されたジョブ情報を読み込む。
ステップS12において、割当候補生成部11は、区間情報および納期情報を参照し、納期と、各区間の開始時刻と終了時刻とを比較し、ジョブの納期が区間の開始時刻と終了時刻との間にくるような区間を選択し、ジョブと選択した区間とを対応づける。より具体的には、割当候補生成部11は、ジョブIDと区間IDとを対応づける。例えば、ジョブ1の納期が4月12日であれば、区間2を選択し、ジョブ1と区間2とを対応づける。この他、ジョブの納期と各区間の終了時刻を比較し、ジョブの納期が区間の終了時刻より早くなるような区間をランダムに選択する方法であってもよい。例えば、ジョブの納期が4月12日であれば区間2また区間3の何れかをランダムに選択させる。
次に、割当候補生成部11は、使用設備情報を参照し、設備の何れかをランダムに選択することで、全てのジョブを設備の何れかと組み合わせ、割当候補を生成する。より具体的には、割当候補生成部11は、全てのジョブIDに対し、ジョブIDと区間IDと設備IDとを組み合わせる(対応づける)。割当候補は、ジョブIDと区間IDと設備IDとの組み合わせである。例えば、ジョブ1の使用設備情報が設備M1または設備M2であれば、割当候補生成部11は、このジョブを設備M1または設備M2の何れかと組み合わせるが、設備M3または設備M4の何れかと組み合わせることはない。
図4は、上述のように生成された割当候補をガントチャート上で示したものである。図4において、区間1と対応づけられたジョブは白色のジョブ枠で示され合計17個であり、区間2に対応づけられたジョブは灰色のジョブ枠で示され合計14個であり、区間3に対応づけられたジョブは斜線のジョブ枠で示され合計20個である。さらに各ジョブは、設備M1〜M4の何れかに割り当てられており、例えば、設備M1に割り当てられたジョブは合計15個であり、そのうち、区間1に対応づけられたジョブは7個、区間2に対応づけられたジョブは3個、区間3に対応づけられたジョブは5個である。
ステップS13において、割当候補変更部14は、割当候補に対し、あるジョブ(1または複数)をランダムに選択し、選択したジョブを、使用設備情報を参照し、使用可能な別の設備に移動させることで、割当候補を変更する。より具体的には、割当候補変更部14は、割当候補とは異なる、ジョブIDと区間IDと設備IDとの組み合わせ(以下、暫定割当候補)を所定の個数p生成する。ここで、所定の個数pは、適宜設定される(例えば、pは4)。この他、所定の個数pは、1以上定数(例えば、4)以下の値がランダムに選択されたものでもよい。
例えば、図4に、暫定割当候補を4個生成する場合について説明する。図4において、割当候補に対し、矢印の始点は割当候補変更部14によって選択されたジョブを、矢印の終点は選択されたジョブの移動先の設備を示す。図4では、割当候補に対し設備M1から設備M4にジョブ1個を移動させた暫定割当候補、割当候補に対し設備M2から設備M3へ2個のジョブを移動させた暫定割当候補、割当候補に対し設備M3から設備M2へ1個のジョブを移動させた暫定割当候補、割当候補に対し設備M4から設備M3へ1個のジョブを移動させた暫定割当候補、合計4個の暫定割当候補を生成する。このように、割当候補に対し、選択したジョブの、設備との組み合わせを変更させることで、所定の個数pの暫定割当候補を生成する。
ステップS14において、処理負荷算出部12は、割当候補に対して、設備毎、区間毎に、割り当てられたジョブの処理負荷の総和を算出する。より具体的には、処理負荷算出部12は、ジョブIDと区間IDと設備IDとの組み合わせである割当候補に対して、各設備ID、各区間IDに組み合わされたジョブIDを全て抽出し、抽出されたジョブIDに対応する処理負荷の総和を求め、割当候補と設備IDと区間IDと処理負荷の総和とを対応づける。
例えば、図4に示すように、設備M1、区間1に割り当てられたジョブは7個であり、これら7個のジョブの処理負荷の総和は、白色のジョブ枠の横軸に平行な辺の長さの総和r1に相当する。設備M1、区間2に割り当てられたジョブは3個であり、これらのジョブの処理負荷の総和はジョブ枠の横軸に平行な辺の長さの総和r2に相当する。設備M1、区間3に割り当てられたジョブは5個であり、これらのジョブの処理負荷の総和はジョブ枠の横軸に平行な辺の長さの総和r3に相当する。
処理負荷算出部12は、暫定割当候補に対しても同様に、設備毎、区間毎に、割り当てられたジョブの処理負荷の総和を算出する。
第1の評価値算出部13は、割当候補に対し、設備毎、区間毎の、処理負荷の総和と設備能力情報とを基に、処理負荷合計と設備能力合計とを算出し、処理負荷合計と設備能力合計とを比較し、処理負荷合計が設備能力合計以上である場合には処理負荷合計の超過量である負荷超過量を、処理負荷合計が設備能力合計未満である場合には処理負荷合計の不足量である負荷不足量を算出し、負荷超過量および負荷不足量を基に、第1の評価値V1を算出する。
以下で、設備毎、区間毎の、負荷超過量および負荷不足量の算出方法について説明するが、区間のうち、開始時刻が最も早い区間1と、区間2および区間3とでは、負荷超過量、負荷不足量の算出方法は異なる。以下、区間1、区間2、区間3での算出方法について詳述する。
はじめに、区間1での処理負荷超過量または負荷不足量の算出方法について説明する。第1の評価値算出部13は、区間1、設備M1での、処理負荷合計と設備能力合計とを算出する。区間1、設備M1での、処理負荷合計は、区間1、設備M1での処理負荷の総和である。区間1、設備M1での、設備能力合計は、区間1、設備M1での設備能力である。第1の評価値算出部13は、区間1、設備M1における、処理負荷合計と設備能力合計を比較し、処理負荷合計が設備能力合計以上であるか否かを判断する。処理負荷合計が設備能力合計以上であれば、処理負荷合計から設備能力合計を減算した値が設備M1、区間1における負荷超過量である。一方、処理負荷合計が設備能力合計以上でなければ、設備能力から処理負荷総和を減算した値が設備M1、区間1における負荷不足量である。例えば、図4に示すように、設備M1、区間1における、処理負荷合計はジョブ枠の横軸に平行な辺の長さの合計r1に相当し、設備能力合計は10日であり作業開始予定時刻から区間1の終了時刻(4月10日)までの横軸の長さs1に相当する。これらの長さの差から示されるように、設備M1、区間1においては、処理負荷合計が設備能力合計を超えている。この処理負荷合計から設備能力合計を減算した値(r1―s1)が、設備M1、区間1における負荷超過量である。
第1の評価値算出部13は、設備M2、設備M3、設備M4においても、設備M1と同様に、区間1における負荷超過量または負荷不足量の何れかを算出する。
次に、区間2での処理負荷の超過量・不足量の算出方法について説明する。第1の評価値算出部13は、区間2、設備M1での、処理負荷合計と設備能力合計とを算出する。区間2、設備M1での処理負荷合計は、設備M1での区間2と区間1とにおける処理負荷の総和を合計した値である。区間2、設備M1での、設備能力合計は、設備M1での区間2と区間1における設備能力を合計した値である。第1の評価値算出部13は、区間2、設備M1における、処理負荷合計と設備能力合計を比較し、処理負荷合計が設備能力合計以上であるか否かを判断する。処理負荷合計が設備能力合計以上であれば、処理負荷総和から設備能力を減算した値が設備M1、区間2における負荷超過量である。一方、処理負荷総和が設備能力以上でなければ、設備能力から処理負荷総和を減算した値が設備M1、区間2における負荷不足量である。
第1の評価値算出部13は、設備M2、設備M3、設備M4においても設備M1と同様に、区間2における負荷過不足量(負荷超過量または負荷不足量の何れか)を算出する。
このように、区間2においては、何れの設備においても、区間1での負荷過不足量の算出とは異なり、区間2での処理負荷の総和および処理能力のみならず、区間1での処理負荷の総和および処理能力をそれぞれに加算することで、区間2での負荷過不足量の算出を行っている。これは、区間2での負荷過不足量の算出に、区間1の負荷過不足量による影響を含めるためである。
例えば、図4に示すように、設備M1、区間2における、ジョブの処理負荷の総和はジョブ枠の横軸に平行な辺の長さの合計r2に相当し、設備能力は10日であり区間2の開始時刻から終了時刻まで(4月10日から4月20日まで)の横軸の長さs2に相当する。これらの長さの差から示されるように、設備M1、区間2においては、処理負荷の総和が設備能力以下である。しかしながら、上述のように、区間2以前の区間(区間2の開始時刻以前の区間)である区間1においては、処理負荷の総和が設備能力を超えており、図4に示すように、設備M1、区間2での、処理負荷合計(r1+r2)と設備能力合計(s1+s2)とを比較すると、処理負荷合計(r1+r2)が設備能力合計(s1+s2)以上である。このように、区間1の負荷の過不足(負荷超過量または負荷不足量)が区間2に直接影響を与えている。よって、区間2における負荷超過量、負荷不足量の算出においては、区間2での、処理負荷合計と設備能力合計とを用いる。上述のように、設備M1、区間2での、処理負荷合計と、設備能力合計とを比較し、処理負荷合計が設備能力合計未満であれば、設備能力合計から処理負荷合計を減算した値が、設備M1、区間2における負荷不足量となる。一方、区間1および区間2での、処理負荷合計が設備能力合計以上であれば、処理負荷合計から設備能力合計を減算した値が、設備M1、区間2における負荷超過量となる。
第1の評価値算出部13は、設備M2、設備M3、設備M4においても設備M1と同様に、設備毎に、区間2における負荷超過量または負荷不足量の何れかを算出する。
次に、区間3での処理負荷の超過量・不足量の算出方法について説明する。第1の評価値算出部13は、設備M1での、区間3と区間2と区間1とにおける処理負荷合計と、区間3と区間2と区間1とにおける設備能力合計とを比較する。処理負荷合計が設備能力合計以上であれば、処理負荷合計から設備能力合計を減算した値が設備M1、区間3における負荷超過量である。一方、処理負荷合計が設備能力合計未満であれば、設備能力合計から処理負荷合計を減算した値が設備M1、区間3における負荷不足量である。
第1の評価値算出部13は、設備M2、設備M3、設備M4においても設備M1と同様に、設備毎に、区間3における負荷超過量または負荷不足量を算出する。
区間2における負荷過不足量の算出と同様に、区間3においては、何れの設備においても、区間1での負荷過不足量の算出とは異なり、区間3での処理負荷の総和および処理能力のみならず、区間1および区間2での処理負荷の総和および処理能力をそれぞれに加算することで、区間3での負荷過不足量の算出を行っている。これは、区間3での負荷過不足量の算出に、区間1および区間2の負荷過不足量による影響を含めるためである。
例えば、図4に示すように、設備M1、区間3における、ジョブの処理負荷の総和はジョブ枠の横軸に平行な辺の長さの合計r3に相当し、設備能力は10日であり区間3の開始時刻から終了時刻まで(4月20日から4月30日まで)の横軸の長さs3に相当する。これらの長さの差から示されるように、設備M1、区間3においては、処理負荷の総和は設備能力とほぼ等しい。しかしながら、上述のように、区間3以前の区間(区間3の開始時刻以前の区間)である区間2においては、処理負荷合計が設備能力合計を超えており、図4に示すように、設備M1、区間3での、処理負荷合計(r1+r2+r3)と設備能力合計(s1+s2+s3)とを比較すると、処理負荷合計(r1+r2+r3)が設備能力合計(s1+s2+s3)以上である。このように、区間2の負荷の過不足(負荷超過量または負荷不足量)が区間3に直接影響を与えている。よって、区間3における負荷超過量、負荷不足量の算出においては、区間3での、処理負荷合計と設備能力合計とを用いる。上述のように、設備M1、区間3での、処理負荷合計と、設備能力合計とを比較し、処理負荷合計が設備能力合計未満であれば、設備能力合計から処理負荷合計を減算した値が、設備M1、区間3における負荷不足量となる。一方、設備M1、区間3での、処理負荷合計が設備能力合計以上であれば、処理負荷合計から設備能力合計を減算した値が、設備M1、区間2における負荷不足量となる。
続いて、第1の評価値算出部13は、複数の暫定割当候補に対し、設備毎、区間毎に、負荷超過量または負荷不足量をそれぞれ算出する。
ステップS15において、第1の評価値算出部13は、処理負荷算出部12が算出した、割当候補に対する設備毎、区間毎の、負荷超過量または負荷不足量に基づき、各区間での負荷超過量または負荷不足量を算出し、第1の評価値V1を算出する。
区間N(Nは、1、2、3)の負荷超過量O(N)は、区間Nにおける、各設備での負荷超過量を二乗した値の、全ての設備(本実施形態では、M1、M2、M3、M4)についての総和であり、(1)式で表される。
上記の(1)式において、区間Nの負荷超過量O(N)は、区間Nにおける、設備iでの負荷超過量o(N,i)の、全ての設備についての総和ではなく、区間Nにおける、設備iでの負荷超過量o(N,i)を二乗した値の、全ての設備についての総和である。このように、負荷超過量o(N,i)を二乗するのは、区間Nの負荷超過量O(N)に、設備iごとの負荷超過量o(N,i)のばらつきの大小を反映させるためである。設備iごとの負荷超過量o(N,i)のばらつきが大きくなるほど、区間Nの負荷超過量O(N)は、大きくなる。
より具体的には、複数の暫定割当候補に対し、区間Nにおける、設備iでの負荷超過量o(N,i)の、全ての設備についての総和がそれぞれ同じでも、設備iごとの負荷超過量o(N,i)のばらつきによって、区間Nの負荷超過量O(N)はそれぞれ異なる。例えば、区間1において、暫定割当候補Aの設備M1、M2、M3、M4での負荷超過量が、それぞれ、2、3、2、3であり、暫定割当候補Bの設備M1、M2、M3、M4での負荷超過量が、それぞれ、0、4、0、6であるとする。暫定割当候補Aの各設備iの負荷超過量o(1,i)が2ないし3であるのに対し、暫定割当候補Bの各設備iの負荷超過量o(1,i)が0、4または6であり、暫定割当候補Bは、暫定割当候補Aよりも設備iごとの負荷超過量o(1,i)のばらつきが大きい。しかしながら、区間1での負荷超過量o(1,i)の、全設備についての総和は、暫定割当候補Aでは2+3+2+3=10であり、暫定割当候補Bでは0+4+0+6=10であるので、暫定割当候補A、暫定割当候補Bに対し、区間1での負荷超過量o(1,i)の全設備についての総和はいずれも同じであり、設備iごとの負荷超過量o(1,i)のばらつきの大小は反映されない。一方、区間1の負荷超過量O(1)は、暫定割当候補Aでは22+32+22+32=4+9+4+9=26であり、暫定割当候補Bでは02+42+02+62=0+16+0+36=52であるので、暫定割当候補Bの区間1の負荷超過量O(1)は、暫定割当候補Aの区間1の負荷超過量O(1)より大きく、設備iごとの負荷超過量のo(1,i)のばらつきの大小が反映されている。
このように、区間Nにおける、各設備iでの負荷超過量o(N,i)を二乗することで、区間Nの負荷超過量O(N)は、区間Nにおける、各設備iでの負荷超過量o(N,i)のみならず、負荷超過量o(N,i)の設備iごとのばらつきの大小を反映した値となる。よって、区間Nの負荷超過量O(N)が小さいほど、区間Nにおける、各設備iでの負荷超過量o(N,i)が少なく、かつ、設備iごとの負荷超過量o(N,i)のばらつきが小さい割当候補といえる。
区間N(Nは、1、2、3)の負荷不足量U(N)は、区間Nにおける、各設備での負荷不足量を二乗した値の、全ての設備(本実施形態では、M1、M2、M3、M4)についての総和であり、(2)式で表される。
上記の(2)式において、区間Nの負荷不足量U(N)は、区間Nにおける、設備iでの負荷不足量u(N,i)の、全ての設備についての総和ではなく、区間Nにおける、設備iでの負荷不足量u(N,i)を二乗した値の、全ての設備についての総和である。このように、負荷不足量u(N,i)を二乗するのは、区間Nの負荷不足量U(N)に、設備iごとの負荷不足量u(N,i)のばらつきの大小を反映させるためである。上述の負荷超過量O(N)と同様に、設備iごとの負荷不足量u(N,i)のばらつきが大きくなるほど、区間Nの負荷不足量U(N)は、大きくなる。
このように、区間Nにおける、各設備iでの負荷不足量u(N,i)を二乗することで、区間Nの負荷不足量U(N)は、区間Nにおける、各設備iでの負荷不足量u(N,i)のみならず、設備iごとの負荷不足量u(N,i)のばらつきの大小を反映した値となる。よって、区間Nの負荷不足量U(N)が小さいほど、区間Nにおける、各設備iでの負荷不足量u(N,i)が少なく、かつ、設備iごとの負荷不足量u(N,i)のばらつきが小さい割当候補といえる。
第1の評価値V1は、区間Nの負荷超過量O(N)に定数Aを乗算した値と区間N(の負荷不足量U(N)に定数Bを乗算した値とを加算した値の、全てのN(区間1、区間2、区間3)についての総和であり、(3)式であらわされる。
ここで、A、Bは非負の重み定数であり、適宜設定される。例えば、生産スケジュール作成上で、負荷超過を抑制したい場合には、Bをゼロと設定してもよいし、負荷不足を抑制したい場合には、Aをゼロと設定してもよい。AおよびBにそれぞれ別の値を設定することで、負荷超過または負荷不足の何れかをより抑制した生産スケジュール作成が可能となる。
上記の(3)式において、AおよびBは非負であるので、割当候補および暫定割当候補に対し、O(N)とU(N)が小さい(処理負荷量および処理不足量が小さい、かつ、処理負荷量および処理不足量の設備ごとのばらつきが小さい)ほど、第1の評価値V1は小さい、すなわち、処理負荷の過不足が少なく、処理負荷の過不足の設備ごとのばらつきが小さい割当候補であるといえる。
第1の評価値算出部13は、(1)式を用いて、割当候補に対し、第1の評価値V1を算出し、割当候補と第1の評価値V1とを対応づける。
続いて、第1の評価値算出部13は、同様に、1又は複数の暫定割当候補に対し、第1の評価値V1を算出し、その第1評価値V1をTV1=V1として、第1評価値V1が最小となる暫定割当候補を抽出し、抽出した暫定割当候補と、TV1とを対応づける。
ステップS16において、割当候補探索部15は、暫定割当候補に対する第1の評価値TV1と、割当候補に対する第1の評価値V1とを比較し、TV1<V1であるか否か判断し、判断に応じて、割当候補を更新する。
TV1<V1である場合、割当候補に代えて、暫定割当候補を割当候補とする。そして、V1=TV1とし、ステップS17に進む。一方、TV1<V1でない場合、ステップS17に進む。
ステップS17において、割当候補探索部15は、ステップS13〜ステップS17を繰り返した回数kをカウントし、回数kと所定値ki(例えば、1000)とを比較し、k<kiであるか否か判断する。
k<kiである場合(ステップS17においてNo)、ステップS13に戻る。一方、k<kiでない場合(ステップS17においてYes)、ステップS18に進む。
なお、上記の回数kに代えて、割当候補を更新しない回数lを用いてもよい。この回数lを用いる際も同様に、割当候補探索部15は、この回数lと所定値li(例えば、100)とを比較し、l<liであるか否か判断する。
l<liである場合(ステップS17においてNo)、ステップS13に戻る。一方、l<liでない場合(ステップS17においてYes)、ステップS18に進む。
このように、ステップS13〜ステップS17を所定の回数繰り返し、第1の評価値V1に基づいて、割当候補を更新することで、全ての区間において、処理負荷過不足量がより小さい割当候補を決定できる。このように決定された割当候補を図5に示す。図5の割当候補は、図4の割当候補よりも区間1、区間2、区間3のそれぞれの区間で処理過不足量がより小さい。
ステップS18において、ジョブ配列部16は、各設備に割り当てられたジョブに対応する、納期情報を参照し、各設備に割り当てられたジョブを納期の早いものから遅いものへ並びかえることで、ジョブを時系列的に配列させ、配列させた割当候補を処理順序候補として、第2の評価値算出部17に出力すると共に配列順序変更部18に出力する。
より具体的には、ジョブ配列部16は、割当記憶部33に記憶された、ジョブIDと区間IDと設備IDとの組み合わせ(対応づけされたもの)である割当候補に対し、設備ID毎に、対応づけられたジョブIDを全て抽出する。抽出したジョブIDに対応する納期情報を参照し、納期が早いジョブIDから納期が遅いジョブIDへと、ジョブIDに順序を識別するための順序識別子(例えば、整数であり、早い番号ほど順番が早い)でジョブの処理順序を番号づけし、割当候補の各ジョブに処理順序識別子を対応づける(組み合わせる)。割当候補は、ジョブIDと区間IDと設備IDとの組み合わせであるので、ジョブ配列部16によって、ジョブIDと処理順序識別子と区間IDと設備IDとの組み合わせが生成される。処理順序候補は、ジョブIDと処理順序識別子と区間IDと設備IDとの組み合わせである。例えば、設備M1に対応づけられたジョブが、ジョブ1(納期4月12日)、ジョブ2(納期4月1日)、ジョブ3(納期4月5日)であれば、ジョブ配列部16は、ジョブ2、ジョブ3、ジョブ1に、それぞれ順序識別子1、2、3を対応づけられる。
例えば、図6は、処理順序候補をガントチャート上で示したものである。各設備に割り当てられた各ジョブは、順序識別子を基に、時間軸に対し、納期順を基にした処理順序で描画されている。
続いて、配列順序変更部18は、処理順序候補に対し、あるジョブ(1又は複数)をランダムに選択し、選択したジョブを、同一設備内で移動させることで、処理順序候補を変更する。より具体的には、配列順序変更部18は、処理順序候補での各ジョブIDに対し、区間IDと設備IDとを固定したまま、処理順序識別子を変更した組み合わせ(以下、暫定処理順序候補)を所定の個数p生成する。ここで、所定の個数pは、適宜設定される(例えば、pは4)。この他、所定の個数pは、1以上定数(例えば、4)以下の値がランダムに選択されたものでもよい。暫定処理順序候補を生成する方法は、例えば、同一設備で、ジョブを2つランダムに選択し、それぞれの順序を交換する方法であってもよい。
例えば、図6において、処理順序候補を1個生成する場合について説明する。図6において、矢印の始点は選択されたジョブであり、矢印の終点は選択されたジョブの移動先を示す。このように、配列順序変更部18は、暫定処理順序候補を生成し、生成した暫定処理順序候補を、第2の評価値算出部17に出力する。
ステップS19において、第2の評価値算出部17は、処理順序候補、および、1又は複数の暫定処理順序候補に対し、同一設備内で処理順序が前後のジョブの組み合わせと、段取り替え情報とを参照し、処理順序が前後のジョブの組み合わせから発生する前のジョブの処理が終了してから後のジョブを開始するのに要する所定の処理準備期間を基に、第2の評価値V2を算出する。
より具体的には、第2の評価値算出部17は、処理順序候補に対し、処理順序が前後のジョブの組み合わせと、段取り替え情報とを参照し、段取り替えの処理の有無を判断し、段取り替えが必要な場合には、処理準備期間を求め、処理準備期間の総和STを基に、第2の評価値V2を算出する。処理順序候補に対し、処理順序が前後するジョブの組み合わせ全てについて、処理準備期間を求め、処理準備時間の総和STを算出する。
例えば、図6に示すように、処理順序候補に対し、設備M1では、処理順序が前後のジョブの組み合わせのうち、ジョブ枠yで示されるジョブyとジョブ枠zで示されるジョブzとの組み合わせにおいて、段取り替えが有り、ジョブyの処理が終了後、ジョブzの開始までに、処理準備時間st1を要する。処理順序候補に対し、同様に、設備M2では、1回の段取り替えが有り処理準備時間st2を要し、設備M3では、2回の段取り替えが有りそれぞれ処理準備時間st3、st4を要し、設備M4では、1回の段取り替えが有り処理準備時間st5を要する。このように合計5回の段取り替えが有り、これらの段取り替えに要する処理準備時間の合計(st1+st2+st3+st4+st5)が処理準備時間総和STに相当する。第2の評価値算出部17は、処理準備時間総和STを基に、例えば、(4)式を用いて、第2の評価値V2を算出する。
ここで、βは非負の定数であり、適宜設定される。(4)式において、βは非負であるので、処理順序候補に対し、処理準備時間時間の総和STが小さいほど、第2の評価値V2は小さい、すなわち、生産効率がよいといえる。
第2の評価値算出部17は、納期遅れ時間の総和ATをさらに算出し、(4)式に代えて、(5)式を用いて第2の評価値V2を算出してもよい。
ここで、α、βは適宜設定される非負の定数である。以下、納期遅れ時間の総和ATの算出について説明する。
第2の評価値算出部13は、処理準備候補に対し、各ジョブの処理終了時刻を算出し、各ジョブの処理終了時刻と各ジョブに対応する納期とを比較することで、各ジョブの処理終了時刻が納期を充足(遵守)しているか否かを判断し、各ジョブの処理終了時刻が納期を遵守していない場合には、各ジョブの処理終了時刻から納期を減算した値である納期遅れ時間を算出し、納期遅れ時間の総和ATを算出する。
各ジョブの処理終了時間は、同一設備での、処理順序が該ジョブ以前であるジョブ全ての処理負荷と、処理順序が該ジョブ以前のジョブの前後の組み合わせから発生した処理準備時間とを合計した時間を、作業開始予定時刻に加算したものである。例えば、図6に示すように、設備M1においてはジョブ枠yとジョブ枠zとの間に1回の段取り替えが発生しており、処理準備時間はジョブ枠yとジョブ枠zとの間の太線の長さst1に相当する。ジョブ枠zのジョブの処理終了時刻は、ジョブ枠x、y、zそれぞれの横軸に平行な辺の長さと、ジョブ枠yとジョブ枠zとの間の処理準備時間st1とを合計した時間を作業開始予定時刻(本具体例では4月1日)に加算したものである。
各ジョブの処理終了時刻が納期よりも早い時刻であれば、納期を充足しない状態(納期遅れ)が発生する。その納期遅れの時間(納期遅れ時間)はジョブの処理終了時刻から納期を減算した値である。第2の評価値算出部13は、各ジョブについて、納期遅れ時間を算出し、納期遅れ時間の総和ATを算出する。
(5)式において、αおよびβは非負であるので、処理順序候補に対し、処理準備時間の総和STと納期遅れ時間の総和ATとが小さいほど、第2の評価値V2は小さい、すなわち、納期遅れのより少ない、生産効率のよい処理順序候補であるといえる。αとβに等しい値を設定すれば、段取り替えの発生および納期遅れを抑制した生産スケジュール作成が可能となる。(5)式において、αおよびβは非負であるので、処理順序に対し、所要時間の総和STと納期遅れ時間の総和ATとが小さいほど、第2の評価値V2は小さい、すなわち、納期遅れのより少ない、生産効率のよい設備割当であるといえる。なお、(4)式によれは、(5)式より計算量を低減し、生産スケジュールを作成することができる。
この他、生産スケジュール作成上で、納期遅れを抑制したい場合には、(5)式において、βをゼロと設定してもよい。
このように、αおよびβの値を適宜設定することで、段取り替えの発生または納期遅れの何れかをより抑制した生産スケジュール作成が可能となる。
第2の評価値算出部17は、処理順序候補と第2の評価値V2とを生産スケジュール生成部19に出力する。
次に、第2の評価値算出部17は、1又は複数の暫定処理順序候補に対し、第2の評価値V2を算出し、第2の評価値V2が最小となる暫定処理順序候補を抽出し、その第2の評価値V2をTV2=V2として、抽出した暫定処理順序候補と、TV2とを生産スケジュール生成部19に出力する。
ステップS20において、生産スケジュール生成部19は、暫定処理順序候補に対する第2の評価値TV2と、処理順序候補に対する第2の評価値V2とを比較し、TV2<V2であるか否か判断し、判断に応じて、処理順序候補を更新する。
TV2<V2である場合、既に記憶された処理順序候補に代えて、暫定処理順序候補を処理順序候補とする。そして、V2=TV2とし、ステップS21に進む。一方、TV2<V2でない場合、ステップS21に進む。
ステップS21において、生産スケジュール生成部19は、ステップS18〜ステップS21を繰り返した回数kをカウントし、回数kと所定値ki(例えば、1000)とを比較し、k<kiであるか否か判断する。
k<kiである場合(ステップS21においてNo)、ステップS18に戻る。一方、k<kiでない場合(ステップS21においてYes)、ステップS22に進む。
なお、上記の暫定処理順序候補の個数kに代えて、同じ処理順序候補が更新されない回数lを用いてもよい。この回数lを用いる際も同様に、生産スケジュール生成部19は、この回数lと所定値li(例えば、100)とを比較し、l<liであるか否か判断する。
l<liである場合(ステップS21においてNo)、ステップS18に戻る。一方、l<liでない場合(ステップS21においてYes)、ステップS22に進む。
このように、ステップS18〜ステップS21を所定の回数繰り返すことで、第2の評価値V2に基づいて、段取り替えが少なく、かつ、納期遅れ時間が小さい、生産効率の良い処理順序候補を選択できる。
ステップS22において、生産スケジュール生成部19は、処理順序候補に対し、各設備でのジョブの開始時刻および終了時刻を算出し、生産スケジュール記憶部34に記憶させ、表示装置6に表示させる。
なお、各ジョブの処理開始時刻は、同一設備での、処理順序が該ジョブより前であるジョブ全ての処理負荷と、処理順序が該ジョブ以前のジョブの前後の組み合わせから発生した処理準備時間とを合計した時間を、作業開始予定時刻に加算したものである。例えば、図6に示すように、設備M1においてはジョブ枠yとジョブ枠zとの間に1回の段取り替えが発生しており、処理準備時間はジョブ枠yとジョブ枠zとの間の太線の長さst1に相当する。ジョブ枠zのジョブの処理開始時刻は、ジョブ枠x、yそれぞれの横軸に平行な辺の長さと、ジョブ枠yとジョブ枠zとの間の処理準備時間st1とを合計した時間を作業開始予定時刻(本具体例では4月1日)に加算したものである。
各ジョブの処理終了時刻は、ステップS19で説明した通りである。
この他、ステップS19で(5)式を用いて第2の評価値V2を算出する場合には、処理順序候補に対し、既に算出された、各設備での各ジョブの終了時刻を、生産スケジュール記憶部34に記憶させればよい。
表示装置6は、作成した生産スケジュールに加えて、第1の評価値V1、第2の評価値V2、および、納期遅れ時間なども、表示してもよい。
図7は、生産スケジュール作成装置が作成した、生産スケジュールの一例である。図7においては、段取り替えが発生せず、図6より納期遅れが少ないことがわかる。
このように、生産スケジュール作成装置は、第1の評価値V1および第2の評価値V2を指標にすることで、生産効率の良い生産スケジュールを作成する。図6と図7とを比較すれば、納期を極力犠牲にせず、段取り時間の無い効率の良いスケジュールが作成されていることが分かる。
この他の実施形態において、暫定割当候補を生成する方法、および、第1の評価値V1を基に最適な割当候補を選択する方法として、確率的に評価値の改悪を許容するシミュレーテッド・アニーリング法や、移動後のジョブと設備の組合せを遺伝子型の表現に置き換えて遺伝子操作を行う遺伝的アルゴリズム法などの準最適化手法や、分枝限定法のような厳密な最適化手法を利用しても良い。
さらに、他の実施形態において、第2の評価値V2を基に最適(本実施例では最小)な処理順序を選択する方法については、確率的に改悪を許容するシミュレーテッド・アニーリング法や、ジョブと設備の組合せを遺伝子型の表現に置き換えて遺伝子操作を行う遺伝的アルゴリズム法など準最適化手法や、分枝限定法のような厳密な最適化手法を利用しても良い。
<実施形態2>
図8は、実施形態2における、生産スケジュール作成装置の構成を示すブロック図である。
実施形態2では、実施形態1とは異なる割当候補探索であり、計画対象期間を複数の区間に分割し、各区間を時系列順に計算対象区間として順次選択することによって、計算対象区間毎に、割当候補を生成し、第1の評価値を算出し、最適な割当候補を探索する。
実施形態2では、図8に示すように、実施形態1における処理部が区間選択部20の機能をさらに備え、実施形態1における処理負荷算出部12、第1の評価値算出部13、割当候補変更部14、割当候補探索部15のそれぞれに代えて、処理負荷算出部12b、第1の評価値算出部13b、割当候補変更部14b、割当候補探索部15bの機能を備えて構成される。
区間選択部20は、割当候補生成部11が生成した割当候補において、各区間を計算対象区間として時系列順で順次に選択する。
処理負荷算出部12bは、割当候補生成部11または割当候補変更部14bから入力した割当候補に対し、各設備の各区間に割り当てられた各ジョブの処理負荷情報を参照し、計算対象区間より過去の各区間に割り当てられたジョブと計算対象区間に割り当てられたジョブとの設備毎の処理負荷の総和を、第1の評価値算出部13bへ出力する。
第1の評価値算出部13bは、処理負荷算出部12bが算出した処理負荷に基づいて、割当候補に対し、処理負荷算出部12bにより算出された設備毎の処理負荷の総和と、計算対象区間より過去の各区間及び計算対象区間において予め定められた設備毎の処理能力の総和との過不足量を基に、計算対象区間における割当候補を評価するための第1の評価値を算出し、割当候補と第1の評価値とを対応づける。
割当候補変更部14bは、計算対象区間に割り当てられたジョブの中からあるジョブを特定し、特定したジョブを、計算対象区間内において使用可能な別の設備に移動させることで計算対象区間内でのジョブの割り当てを変更する。
割当候補探索部15bは、割当候補変更部14bに計算対象区間でのジョブの割り当てを繰り返し変更させることで、第1の評価値が最小となる計算対象区間でのジョブの割当候補を探索し、計算対象区間での探索が終了する毎に区間選択部20に次の計算対象区間を選択させる。
次に、実施形態2の動作について説明する。
図9は、実施形態2における、生産スケジュールを作成するフローチャートである。図10は、実施形態2における、ジョブの設備への初期割り付けと設備間でのジョブ移動とを説明するための図であり、(A)は、計算対象区間1における割当候補を説明するための図であり、(B)は、計算対象区間1における、設備間でのジョブ移動後の割当候補を説明するための図である。図11は、実施形態2における、ジョブの設備への初期割り付けと設備間でのジョブ移動とを説明するための図であり、(A)は、計算対象区間2における割当候補を説明するための図であり、(B)は、計算対象区間2における、設備間でのジョブ移動後の割当候補を説明するための図である。図12は、実施形態2における、ジョブの設備への初期割り付けと設備間でのジョブ移動とを説明するための図であり、(A)は、計算対象区間3における割当候補を説明するための図であり、(B)は、計算対象区間3における、設備間でのジョブ移動後の割当候補を説明するための図である。
なお、図10乃至12に示す図は、ガントチャートである。
以下、生産スケジュール作成装置の動作について、一具体例を交えて説明する。具体例は、生産スケジュール作成装置の動作をより具体的に説明するための一例である。この一具体例における設備とジョブの基礎データは、実施形態1と同様である。
実施形態2に係る生産スケジュール作成装置の動作では、実施形態1におけるステップS13〜ステップS17に代えて、図9に示すように、ステップS30〜ステップS37の処理を備えている。このステップS30〜ステップS37の処理では、計算対象区間として、区間の開始時刻が最も早い区間である区間1と設定し(ステップS30)、先頭の計算対象区間(区間1)から開始時刻が遅い区間へ(区間3)へと、全ての計算対象区間の割当候補が順次決定するまで、下記のステップS31〜ステップS37(計算対象区間毎の割当候補決定フロー)の処理を繰り返し、設備とジョブとの最適な割当を決定する。
より具体的には、ステップS30において、区間選択部20は、計算対象区間N(N=1)と設定する。続いて、区間選択部20は、割当候補生成部11によって生成された割当候補に対し、設定された計算対象区間Nに対応づけられた割当候補のみを、計算対象区間Nにおける割当候補として、処理負荷算出部12bおよび割当候補変更部14bに出力する。
ステップS31において、割当候補変更部14bは、計算対象区間Nにおける割当候補に対し、計算対象区間Nと対応づけられたジョブのうち、あるジョブ(1または複数)をランダムに選択し、選択したジョブを、使用設備情報を参照し、使用可能な別の設備に移動させることで、割当候補を変更する。より具体的には、割当候補変更部14bは、計算対象区間Nにおいて、割当候補とは異なる、ジョブIDと設備IDとの組み合わせ(以下、暫定割当候補)を所定の個数p生成する。ここで、所定の個数pは、適宜設定される(例えば、pは3)。この他、所定の個数pは、1以上定数(例えば、3)以下の値がランダムに選択されたものでもよい。
例えば、計算対象区間1における割当候補に対し、暫定割当候補を3個生成する場合について、図10(A)に示す。なお、割当候補は、実施形態1と同様に割当候補生成部11によって生成されるが、計算対象区間1の割当候補のみ割当候補として図示している。図10(A)の計算対象区間1における割当候補において、設備M1に割り当てられたジョブは7個、設備M2に割り当てられたジョブは3個、設備M3に割り当てられたジョブは2個、設備M4に割り当てられたジョブは5個である。割当候補に対し、矢印の始点は割当候補変更部14bによって選択されたジョブを、矢印の終点は選択されたジョブの移動先の設備を示す。図10(A)では、計算対象区間1における割当候補に対し、設備M1から設備M4にジョブ1個を移動させた暫定割当候補、設備M2から設備M3へ1個のジョブを移動させた暫定割当候補、割当候補に対し設備M4から設備M3へ1個のジョブを移動させた暫定割当候補、合計3個の暫定割当候補を生成する。このように、割当候補に対し、選択したジョブの、設備との組み合わせを変更させることで、所定の個数pの暫定割当候補を生成する。
ステップS32において、処理負荷算出部12bは、計算対象区間Nにおける、割当候補、および1又は複数の暫定割当候補に対して、設備毎に、割り当てられたジョブの処理負荷の合計をそれぞれ算出する。例えば、図10(A)に計算対象区間1における割当候補および暫定割当候補を示す。図10(A)の計算対象区間1における割当候補において、設備M1に割り当てられたジョブは7個、設備M2に割り当てられたジョブは3個、設備M3に割り当てられたジョブは2個、設備M4に割り当てられたジョブは5個である。設備M1に割り当てられたジョブは7個であり、これらのジョブの処理負荷の合計はジョブ枠の横軸に平行な辺の長さの合計に相当する。設備M2、設備M3、設備M4においても同様に設備に割り当てられたジョブの処理負荷の合計を算出する。
ステップS33において、第1の評価値算出部13bは、計算対象区間Nにおける、割当候補、および、1又は複数の暫定割当候補に対し、設備毎の、処理負荷合計と設備能力合計とをそれぞれ算出し、処理負荷合計と設備能力合計とを基に、負荷超過量または負荷不足量の何れかを(1)式または(2)式を用いて算出し、負荷超過量および負荷不足量を基に、第1の評価値V1をそれぞれ算出する。
計算対象区間Nにおける第1の評価値V1(N)は、(計算対象区間Nの負荷超過量O(N)にある定数を乗算した値と計算対象区間N(の負荷不足量U(N)にある定数を乗算した値とを加算した値の、計算対象区間Nの開始時刻以前の区間(区間1〜N)全てについての総和であり、(6)式で表される。
ここで、A、Bは非負の定数であり、本実施形態ではiは1〜3の整数である。
第1の評価値算出部13bは、(6)式を用いて、計算対象区間Nでの割当候補に対し、第1の評価値V1(N)を算出し、割当候補と第1の評価値V1(N)とを対応づける。
続いて、第1の評価値算出部13bは、同様に、1又は複数の暫定割当候補に対し、計算対象区間Nでの、それぞれ第1の評価値V1(N)を算出し、第1評価値V1が最小となる暫定割当候補を抽出し、その第1の評価値V1(N)をTV1(N)=V1(N)として、抽出した暫定割当候補と、TV1(N)とを割当候補探索部15に出力する。
ステップS34において、割当候補探索部15bは、入力した暫定割当候補に対する第1の評価値TV1(N)と、割当候補に対する第1の評価値V1(N)とを比較し、TV1(N)<V1(N)であるか否かを判断し、判断に応じて、割当候補を更新する。
TV1(N)<V1(N)である場合、既に記憶された割当候補に代えて、暫定割当候補とする。そして、V1(N)=TV1(N)とし、ステップS35に進む。一方、TV1(N)<V1(N)でない場合、ステップS35に進む。
ステップS35において、割当候補探索部15bは、ステップS31〜ステップS35を繰り返した回数kをカウントし、回数kと所定値ki(例えば、1000)とを比較し、k<kiであるか否か判断する。
k<kiである場合(ステップS35においてNo)、ステップS31に戻る。一方、k<kiでない場合(ステップS35においてYes)、ステップS36に進む。
なお、上記の暫定割当候補の個数kに代えて、割当候補を更新しない回数lを用いてもよい。この回数lを用いる際も同様に、割当候補探索部15bは、この回数lと所定値li(例えば、100)とを比較し、l<liであるか否か判断する。
l<liである場合(ステップS35においてNo)、ステップS31に戻る。一方、l<liでない場合(ステップS35においてYes)、ステップS36に進む。
このように、ステップS31〜ステップS35を所定の回数繰り返すことで、第1の評価値V1(N)に基づいて、処理過不足量がより小さい、計算対象区間Nでの割当候補を選択できる。
ステップS36において、割当候補探索部15bは、全ての計算対象区間の割当候補を決定したか否かを判断する。
全ての計算対象区間の割当候補を決定していない場合には(ステップS36においてNo)、計算対象区間Nを、計算対象区間N=N+1として更新し(ステップS37)、ステップS31に戻る。一方、全ての計算対象区間の割当候補を決定した場合には(ステップS36においてYes)、計算対象区間N毎の割当候補を割当記憶部33に記憶させ、ステップS18に進む。
このように、割当候補探索部15bが計算対象区間全てについて割当候補を決定したと判断するまで、ステップS31〜ステップS36が繰り返される。
上記のように、実施形態2においては、計算対象区間が開始時刻の早い区間から遅い区間へと順次選択され(区間1、区間2、区間3)、各計算対象区間での割当を決定するフロー(ステップS31〜35)が実行される。
実施形態1においては、ジョブと設備の組合せを決定する場合に、計画対象の全ジョブを対象に設備割り当てを変更し、その結果を評価する場合のみ区間ごとに第1の評価値を算出した。実施形態2においては、設備割り当ての変更と第1の評価値の算出とを計算対象区間ごとに行うので、設備割り当て決定問題の組合せ規模を縮小し、より計算量を低減することができる。
例えば、計算対象区間1における割当候補に対し、暫定割当候補を3個生成する場合について、図10(A)に示す。なお、割当候補は、実施形態1と同様に割当候補生成部11によって生成されるが、計算対象区間1の割当候補のみ割当候補として図示している。
図10(A)に、計算対象区間Nが区間1である場合(計算対象区間N=1)での、割当候補生成部11が生成した割当候補、および、割当候補変更部14bが生成した暫定割当候補の一例を示す。図10(A)の計算対象区間1における割当候補において、設備M1に割り当てられたジョブは7個、設備M2に割り当てられたジョブは3個、設備M3に割り当てられたジョブは2個、設備M4に割り当てられたジョブは5個である。割当候補に対し、矢印の始点は割当候補変更部14によって選択されたジョブを、矢印の終点は選択されたジョブの移動先の設備を示す。図10(A)では、計算対象区間1における割当候補に対し、設備M1から設備M4にジョブ1個を移動させた暫定割当候補、設備M2から設備M3へ1個のジョブを移動させた暫定割当候補、割当候補に対し設備M4から設備M3へ1個のジョブを移動させた暫定割当候補、合計3個の暫定割当候補が生成された状態である。このように、ステップS31において、割当候補変更部14bは、3個の暫定割当候補を生成する。計算対象区間1での割当候補と暫定割当候補に対し、ステップS31〜35がステップS35の割当候補探索終了条件を満たすまで繰り返された後には、図10(B)に示すように区間1での割当候補が決定された状態になる。
図11(A)に、計算対象区間Nが区間2である場合(計算対象区間N=2)での、割当候補生成部11bが生成した割当候補および暫定割当候補の一例を示す。図11(A)の計算対象区間2における割当候補において、設備M1に割り当てられたジョブは2個、設備M2に割り当てられたジョブは5個、設備M3に割り当てられたジョブは3個、設備M4に割り当てられたジョブは3個である。割当候補に対し、矢印の始点は割当候補変更部14bが選択したジョブであり、矢印の終点は割当候補変更部14bが選択したジョブの移動先の設備を示す。図11(A)では、計算対象区間2における割当候補に対し、設備M1から設備M3にジョブ1個を移動させた暫定割当候補、設備M2から設備M3へ1個のジョブを移動させた暫定割当候補、設備M4から設備M3へ1個のジョブを移動させた暫定割当候補、合計3個の暫定割当候補が生成された状態である。このように、割当候補変更部14bは、割当候補を変更した暫定割当候補を3個生成する。計算対象区間2での割当候補と暫定割当候補に対し、ステップS31〜35がステップS35の割当候補探索終了条件を満たすまで繰り返された後には、図11(B)に示すように区間2での割当候補が決定された状態になる。なお、区間1における割当候補は、図10(B)で示した、計算対象区間1で既に決定された割当候補である。
図12(A)に、計算対象区間Nが区間3である場合(計算対象区間N=3)での、割当候補生成部11bが生成した割当候補および暫定割当候補の一例を示す。図12(A)の計算対象区間3における割当候補において、設備M1に割り当てられたジョブは4個、設備M2に割り当てられたジョブは3個、設備M3に割り当てられたジョブは6個、設備M4に割り当てられたジョブは5個である。計算対象区間3における割当候補に対し、矢印の始点は割当候補変更部14bによって選択されたジョブを、矢印の終点は選択されたジョブの移動先の設備を示す。図11(A)では、計算対象区間3における割当候補に対し、設備M1から設備M2にジョブ1個を移動させた暫定割当候補、設備M3から設備M2へ1個のジョブを移動させた暫定割当候補、設備M3から設備M4へ1個のジョブを移動させた暫定割当候補、合計3個の暫定割当候補が生成された状態である。このように、ステップS31において、割当候補変更部14bは、割当候補を変更した暫定割当候補を3個生成する。計算対象区間3での割当候補と暫定割当候補に対し、ステップS31〜35がステップS35の割当候補探索終了条件を満たすまで繰り返された後には、図12(B)に示すように割当候補が決定された状態になる。なお、区間1および区間2における割当候補は、図10(B)、図11(B)で示した、計算対象区間1および計算対象区間2で既に決定された割当候補である。
他の実施形態において、暫定割当候補を生成する方法、および、第1の評価値V1(N)を基に最適な割当候補を選択する方法として、確率的に評価値の改悪を許容するシミュレーテッド・アニーリング法や、移動後のジョブと設備の組合せを遺伝子型の表現に置き換えて遺伝子操作を行う遺伝的アルゴリズム法などの準最適化手法や、分枝限定法のような厳密な最適化手法を利用しても良い。
<実施形態3>
図13は、実施形態3における、生産スケジュール作成装置の構成を示すブロック図である。図14は、実施形態3における、生産スケジュールを作成するフローチャートである。図15は、ジョブグループの編成とジョブグループ内での処理順序の決定とを説明するための図であり、(A)は、ジョブグループ編成を説明するための図であり、(B)は、ジョブグループ内での処理順序の固定を説明するための図である。図15(A)に示される長方形は、品種Pを製造するジョブ枠、品種Qを製造するジョブ枠、品種Rを製造するジョブ枠であり、枠の中の括弧の数字は納期を示す。例えば、P(4/1)は、納期が4月1日で品種Pを製造するジョブ枠である。なお、品種Pを製造するジョブ(以下、ジョブP)、品種Qを製造するジョブ(以下、ジョブQ)、品種Rを製造するジョブ(ジョブR)の何れにおいても主成分純原料および添加元素の種類が同じであり、添加元素の濃度のみが異なる(ジョブP、ジョブQ、ジョブRの順に添加元素の濃度が高くなる)。
実施形態3では、図13に示すように、実施形態1または実施形態2のいずれかにおいて、処理部がジョブグループ編成部21とジョブグループ内順序決定部22との機能をさらに備え、記憶部がジョブグループ情報記憶部35の機能をさらに備えて構成される。これらの機能はCPU3が生産スケジュール作成プログラムを実行することで実現される。
ジョブグループ情報記憶部35は、複数のジョブを同一設備でまとめて処理する単位であるジョブグループとしてグループ化するための条件を記憶する。
条件は、主成分純原料と添加元素が同じジョブであり、かつ、ジョブの納期の差が所定時間以内であるジョブをジョブグループとしてグループ化し、ジョブグループ内での処理順序を添加元素の濃度の低い品種から濃度の高い品種を製造するジョブの順とするものである。
ジョブグループ編成部21は、ジョブグループ情報記憶部35に記憶された条件を参照し、複数のジョブを同一設備で処理する単位であるジョブグループとしてグループ化する。
ジョブグループ内順序決定部22は、ジョブグループ情報記憶部35に記憶された条件を参照し、ジョブグループを構成する複数のジョブの処理順序を決定し、ジョブグループとそのグループ内の処理順序とを対応づけてジョブグループ情報記憶部35に記憶させる。
次に、実施形態3の処理のフローについて、図14に基づいて、説明する。
図14に示すように、実施形態3に係る生産スケジュール作成装置の動作では、実施形態1または実施形態2の何れかに係る生産スケジュール作成装置の処理のフローと比較して、割当候補を生成する(ステップS12)前に、複数のジョブを同一の設備でまとめて処理する単位であるジョブグループ(ロット)を編成し、ジョブグループ内での処理順序を決定する処理を更に備えている。
より具体的には、ステップS41において、ジョブグループ編成部21は、ジョブ情報記憶部31に記憶されたジョブ情報と、ジョブグループ情報記憶部35に記憶された条件と、設備情報記憶部32に記憶された設備情報とを読み込む。
ステップS42において、ジョブグループ編成部21は、ジョブ情報を参照し、ジョブ情報を、ジョブグループ編成のための条件値が同一のジョブの集合であるジョブグループ情報として編成(合成)する。本具体例では、主成分純原料および添加元素の種類が同じで、納期の差が10日間以内であるジョブの集合を1つのジョブグループとして編成する。
ステップS43において、ジョブグループ内順序決定部22は、ジョブグループ内順序決定のための条件に基づき、ジョブグループ内のジョブの処理順序を決定する。本具体例では、添加元素の濃度が低い品種から高い品種へと、ジョブの処理順序を決定する。ジョブグループ情報記憶部35は、ジョブグループに関する情報を記憶し、ステップS12へ進む。
例えば、図15(A)のジョブグループA、ジョブグループBおよびジョブグループCは、主成分純原料および添加元素の種類が同じジョブで、かつ、納期の差が10日以内であるジョブの集合を、それぞれジョブグループとしてまとめたものである。また、それぞれのジョブグループ内において、添加元素の濃度が低い品種から高い品種へと、ジョブの処理順序が決定されている。
実施形態3では、ステップS12では、割当候補生成部11がさらにジョブグループ情報記憶部35に記憶された、ジョブグループに関する情報を読み込み、以降のフローにおいて、ジョブグループに関する情報を参照し、ジョブグループを、1つのジョブ単位として扱い、生産スケジュールを作成する。
より具体的には、ジョブと設備の組合せを決定する際には、使用設備情報を参照し、編成されたジョブグループに同一の設備が割り当てられ、設備内でのジョブの処理順序の決定の際には、ジョブグループとして順序が決定され、その中のジョブの処理順序は上で決定された順序に固定される。
例えば、図15(B)に示すように、ガントチャートには、ジョブ枠とジョブグループ枠とが混在している。実施形態3においては、ジョブグループ1,ジョブグループ2、ジョブグループ3を1つのジョブ単位として扱うので、割当候補を変更する場合には、1つのジョブグループ枠を1つのジョブ枠として設備に移動させ(ジョブグループ枠を始点とする縦軸に平行な矢印で表される)、処理順序を変更する場合には、1つのジョブグループ枠を1つのジョブ枠として処理順序を変更させる(ジョブグループ枠を始点とする横軸に平行な矢印で表される)。
アルミや銅のスラブを製造する溶解・鋳造工程では、添加元素の濃度の少ない品種の順に(品質外れを防止し、炉洗い等の段取り作業を減らすために)作業を行う「操業基準」がある。ジョブグループ化のための条件に基づいて、ジョブグループを編成し、各ジョブグループを1つのジョブ単位として扱い、生産スケジュールを作成することで、このような操業基準を満たし、かつ、納期遅れを低減した生産スケジュールを作成することができる。また、品質確保や段取り作業抑制などを目的として操業基準を容易に実現できる。さらに、実質的な組合せ規模が小さくなるために、計算時間の短縮化の効果が得られる。
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更および/または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。