(57)【要約】【課題】適切なスケジュールを短時間で作成する。【解決手段】スケジュール対象のジョブのジョブ情報を読み込み、処理順を未決定とし、従来技術によりスケジュール対象のジョブの処理順の初期解を生成する（Ｓ１〜Ｓ３）。処理順ｗ＝１と設定し（Ｓ４）、全てのジョブの処理順が決定するまでＳ５〜Ｓ９の処理を繰り返す。まず、初期解に基づいて処理順が未決定のジョブを先頭から予め設定した個数獲得して部分計画対象ジョブとし、評価値が最適となる処理順を計算する（Ｓ５、Ｓ６）。評価値が最適となる処理順の初めから１つまたは複数のジョブをｗ番目から処理するジョブとして決定し、処理順が決定したジョブの個数分だけ処理順を更新する（Ｓ７〜Ｓ９）。全ジョブの処理順を決定すると（Ｓ８）、スケジュール結果を出力する（Ｓ１０）。【選択図】図３
2007102435.tif 000002
【特許請求の範囲】
【請求項１】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、
所定のスケジュール目的と操業条件に基づいて、前記ジョブの処理順の初期解を生成する処理順初期解作成手段と、
前記ジョブの全ての処理順を決定する処理順決定手段と、を備え、
前記処理順決定手段は、
前記初期解の中の処理順が未決定のジョブの内、処理順の初めから複数のジョブを部分計画対象ジョブとして取り出す部分計画対象ジョブ獲得手段と、
所定のスケジュール目的に基づいて、前記ジョブの任意の処理順の評価値を計算する処理順評価手段と、
操業制約を満たす前記部分計画対象ジョブの全ての順列に対して前記処理順評価手段で評価値を計算し、評価値が最適となる前記部分計画対象ジョブの処理順を選択する部分計画最適計算手段と、
前記部分計画最適計算手段で選択された前記部分計画対象ジョブの処理順の初めから１つまたは複数のジョブを、当該処理順として決定する部分計画処理順決定手段と、
を備え、前記ジョブの全ての処理順が決定するまで、前記部分計画対象ジョブ獲得手段、前記処理順評価手段、前記部分計画最適計算手段、及び、前記部分計画処理順決定手段の処理を繰り返すことを特徴とする生産スケジューリング装置。
【請求項２】
前記処理順決定手段で決定した前記ジョブの処理順を、前記処理順初期解作成手段で生成した前記ジョブの処理順の初期解に替えて、前記ジョブの処理順の初期解として設定する処理順初期解再設定手段、を更に備え、
前記処理順初期解再設定手段で設定した前記ジョブの処理順の初期解に基づいて、前記処理順決定手段において前記ジョブの全ての処理順を決定することを特徴とする請求項１に記載の生産スケジューリング装置。
【請求項３】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、
複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ前記ジョブの内の処理順が未決定の未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算手段と、
所定のスケジュール目的に基づいて、前記未決定ジョブの処理順の評価値を計算する処理順評価手段と、
前記評価値が最適となる前記未決定ジョブの処理順の始めのジョブを次順のジョブとして決定する処理順決定手段と、
を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算手段、前記処理順評価手段、及び、前記処理順決定手段の処理を繰り返すことを特徴とする生産スケジューリング装置。
【請求項４】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、
前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する処理順計算手段と、
所定のスケジュール目的に基づいて、前記未決定ジョブの処理順の評価値を計算する処理順評価手段と、
前記評価値が最適となる前記未決定ジョブの処理順の仮設定したジョブを次順のジョブとして決定する処理順決定手段と、
を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算手段、前記処理順評価手段、及び、前記処理順決定手段の処理を繰り返すことを特徴とする生産スケジューリング装置。
【請求項５】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、
前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算手段と、
所定のスケジュール目的に基づいて、前記未決定ジョブの処理順の評価値を計算する処理順評価手段と、
前記評価値が最適となる前記未決定ジョブの仮設定したジョブを次順のジョブとして決定する処理順決定手段と、
を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算手段、前記処理順評価手段、及び、前記処理順決定手段の処理を繰り返すことを特徴とする生産スケジューリング装置。
【請求項６】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、
所定のスケジュール目的と操業条件に基づいて、前記ジョブの処理順の初期解を生成する処理順初期解作成ステップと、
前記ジョブの全ての処理順を決定する処理順決定ステップと、を備え、
前記処理順決定ステップは、
前記初期解の中の処理順が未決定のジョブの内、処理順の初めから複数のジョブを部分計画対象ジョブとして取り出す部分計画対象ジョブ獲得ステップと、
操業制約を満たす前記部分計画対象ジョブの全ての順列に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、
前記評価値が最適となる前記部分計画対象ジョブの処理順を選択する部分計画最適計算ステップと、
前記部分計画最適計算ステップで選択された前記部分計画対象ジョブの処理順の初めから１つまたは複数のジョブを、当該処理順として決定する部分計画処理順決定ステップと、
を備え、前記ジョブの全ての処理順が決定するまで、前記部分計画対象ジョブ獲得ステップ、前記処理順評価ステップ、前記部分計画最適計算ステップ、及び、前記部分計画処理順決定ステップの処理を繰り返すことを特徴とする生産スケジューリング方法。
【請求項７】
前記処理順決定ステップで決定した前記ジョブの処理順を、前記ジョブの処理順の初期解として設定する処理順初期解再設定ステップ、を更に備え、
前記処理順初期解再設定ステップで設定した前記ジョブの処理順の初期解に基づいて、前記処理順決定ステップにおいて前記ジョブの全ての処理順を決定することを特徴とする請求項６に記載の生産スケジューリング方法。
【請求項８】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、
複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ前記ジョブの内の処理順が未決定の未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップと、
前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、
前記評価値が最適となる前記未決定ジョブの処理順の始めのジョブを次順のジョブとして決定する処理順決定ステップと、
を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする生産スケジューリング方法。
【請求項９】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、
前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する処理順計算ステップと、
前記仮設定したジョブ毎の前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、
前記評価値が最適となる前記未決定ジョブの処理順の仮設定したジョブを次順のジョブとして決定する処理順決定ステップと、
を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする生産スケジューリング方法。
【請求項１０】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、
前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップと、
前記仮設定したジョブ毎の前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、
前記評価値が最適となる前記未決定ジョブの仮設定したジョブを次順のジョブとして決定する処理順決定ステップと、
を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする生産スケジューリング方法。
【請求項１１】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、
所定のスケジュール目的と操業条件に基づいて、前記ジョブの処理順の初期解を生成する処理順初期解作成ステップ、
前記ジョブの全ての処理順を決定する処理順決定ステップ、をコンピュータに実行させ、
前記処理順決定ステップは、
前記初期解の中の処理順が未決定のジョブの内、処理順の初めから複数のジョブを部分計画対象ジョブとして取り出す部分計画対象ジョブ獲得ステップ、
操業制約を満たす前記部分計画対象ジョブの全ての順列に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、
前記評価値が最適となる前記部分計画対象ジョブの処理順を選択する部分計画最適計算ステップ、
前記部分計画最適計算ステップで選択された前記部分計画対象ジョブの処理順の初めから１つまたは複数のジョブを、当該処理順として決定する部分計画処理順決定ステップ、
をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記部分計画対象ジョブ獲得ステップ、前記処理順評価ステップ、前記部分計画最適計算ステップ、及び、前記部分計画処理順決定ステップの処理を繰り返すことを特徴とするプログラム。
【請求項１２】
前記処理順決定ステップで決定した前記ジョブの処理順を、前記ジョブの処理順の初期解として設定する処理順初期解再設定ステップ、を更にコンピュータに実行させ、
前記処理順初期解再設定ステップで設定した前記ジョブの処理順の初期解に基づいて、前記処理順決定ステップにおいて前記ジョブの全ての処理順を決定することを特徴とする請求項１０に記載のプログラム。
【請求項１３】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、
複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ前記ジョブの内の処理順が未決定の未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップ、
前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、
前記評価値が最適となる前記未決定ジョブの処理順の始めのジョブを次順のジョブとして決定する処理順決定ステップ、
をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とするプログラム。
【請求項１４】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、
前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する処理順計算ステップ、
前記仮設定したジョブ毎の前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、
前記評価値が最適となる前記未決定ジョブの処理順の仮設定したジョブを次順のジョブとして決定する処理順決定ステップ、
をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とするプログラム。
【請求項１５】
スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、
スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、
前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップ、
前記仮設定したジョブ毎の前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、
前記評価値が最適となる前記未決定ジョブの仮設定したジョブを次順のジョブとして決定する処理順決定ステップ、
をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、資源に割り付けるスケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムに関する。
【背景技術】
【０００２】
通常、一つの製品は複数の工程を経て製造される。ここで、各製品の各工程での処理をジョブと言う。即ち、一つの製品は複数のジョブを実施することにより、製品として完成する。そして、これらの製品群を製造する工場では、通常は複数の資源（設備や人）を有している。従って、工場では複数のジョブが複数の資源で同時に処理されている場合が多い。この工場において、各資源で処理するジョブの順序を決めてスケジュールを作成する生産スケジューリングを最適なものとするには、スケジュール対象とする期間におけるスケジュール対象のジョブ全体における最適性を考慮すること、即ち、全ての資源や工程を含めた工場全体の最適性を考慮することが好ましい。しかし、工場全体の最適性を考慮した生産スケジューリングを作成するには、その組合せの数が膨大なものとなるため、多くの場合は実現できていない。
【０００３】
このため、従来から、各工程（資源）で適切となる生産スケジューリングを行い、必要に応じて、前後の工程（資源）のを調整する技術が開発されている。また、近年は、ボトルネックとなる工程（資源）に着目して、この工程の最適スケジューリングを行い、その他の工程のスケジュールはボトルネック工程の生産スケジューリング結果を展開する技術も注目されている。
【０００４】
例えば、特許文献１には、ディスパッチングルールに基づいて生産スケジューリングを行う技術が開示されている。具体的には、下記の手順に従い、生産スケジューリングを行う。尚、図１１にディスパッチングルールに基づく並び順制御の一例を示す。
１．資源に対してディスパッチングルールを設定する。
２．ディスパッチングルールに対応する複数のディスパッチングキーを指定する。
３．未割付けのジョブがなくなるまで下記の手順を繰り返す。
３−１．資源へのジョブの割付けにおいて、割付可能なジョブの各々に対してディスパッチングキーの値と重みの値を用いて評価値を求める。
３−２．評価値の最も高い候補のジョブを割付ける。
【０００５】
また、特許文献２には、メタヒューリスティクスに基づいて生産スケジューリング行う技術が開示されている。具体的には、下記の手順に従い、生産スケジューリングを行う。尚、図１２にGA（遺伝的アルゴリズム）法における構成例を、図１３に図１２の個体に対応するスケジュールを示す。
１．スケジュール対象の問題を、オーダ数を長さとする染色体と複数種類の遺伝子によりモデル化する。
２．モデル化された問題に対する解となる個体を作成することにより、個体集団を作成する。
３．下記の操作を繰り返す。
３−１．各個体を評価しつつ評価結果に基づいて個体を選択する。
３−２．選択された個体間で考査を行う。
【０００６】
【特許文献１】特開２００２−３７３０１３号公報
【特許文献２】特開平８−２３５２５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで、従来の生産スケジューリング技術では、単一工程（資源）での最適な生産スケジューリングを行うことが求められているが、通常は単一工程でもその工程の組合せの数は膨大であり、適切なスケジュールを短時間で作成することが困難である。
【０００８】
例えば、特許文献１に示すようなディスパッチングルールに基づく生産スケジューリングの技術において、資源が複数の場合を想定しているが、資源数を１としてジョブを当該資源のジョブだけに限定すれば、当該資源における処理順を決定する生産スケジューリングの技術となる。そして、資源数を１としてジョブを当該資源のジョブだけに限定した場合、一つのジョブを割付ける際に、割付け候補のジョブに対する評価点のみで割付けるジョブを決めている。従って、計算時間は早く、また、個々のジョブに対して判断すれば、比較的適切なスケジュールとなる。しかしながら、当該ジョブを割付けた後の処理順については考慮しないために、最終的には適切なスケジュール結果が得られない場合も多い。また、個々のジョブを割付けるためのルールや評価式が設定できるが、処理順に対する評価（即ち、生産スケジューリングの結果に対する評価）を設定することはできない。
【０００９】
また、特許文献２に示すようなメタヒューリスティクスに基づく生産スケジューリングの技術において、資源が複数の場合を想定しているが、資源数を１としてジョブを当該資源のジョブだけに限定すれば、当該資源における処理順を決定する生産スケジューリングの技術となる。そして、資源数を１としてジョブを当該資源のジョブだけに限定した場合、遺伝的アルゴリズムを用い、解の候補である個体の集団に対して遺伝操作を加えることを繰り返して、より良い解を探索する。しかしながら、この検索は確率的な検索であるために、遺伝操作の処理を膨大な回数繰り返すのが通常であり、且つ、遺伝操作の処理を膨大な回数繰り返したとしても適切な組合せが探索できる保証はない。
【００１０】
本発明は、上記問題点に鑑みてなされたものであり、適切なスケジュールを短時間で作成することができる生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムを提供するものである。
【課題を解決するための手段及び効果】
【００１１】
上記課題を解決するために、本発明に係る生産スケジューリング装置は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、所定のスケジュール目的と操業条件に基づいて、前記ジョブの処理順の初期解を生成する処理順初期解作成手段と、前記ジョブの全ての処理順を決定する処理順決定手段と、を備え、前記処理順決定手段は、前記初期解の中の処理順が未決定のジョブの内、処理順の初めから複数のジョブを部分計画対象ジョブとして取り出す部分計画対象ジョブ獲得手段と、所定のスケジュール目的に基づいて、前記ジョブの任意の処理順の評価値を計算する処理順評価手段と、操業制約を満たす前記部分計画対象ジョブの全ての順列に対して前記処理順評価手段で評価値を計算し、評価値が最適となる前記部分計画対象ジョブの処理順を選択する部分計画最適計算手段と、前記部分計画最適計算手段で選択された前記部分計画対象ジョブの処理順の初めから１つまたは複数のジョブを、当該処理順として決定する部分計画処理順決定手段と、を備え、前記ジョブの全ての処理順が決定するまで、前記部分計画対象ジョブ獲得手段、前記処理順評価手段、前記部分計画最適計算手段、及び、前記部分計画処理順決定手段の処理を繰り返すことを特徴とする。
【００１２】
本発明に係る生産スケジューリング方法は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、所定のスケジュール目的と操業条件に基づいて、前記ジョブの処理順の初期解を生成する処理順初期解作成ステップと、前記ジョブの全ての処理順を決定する処理順決定ステップと、を備え、前記処理順決定ステップは、前記初期解の中の処理順が未決定のジョブの内、処理順の初めから複数のジョブを部分計画対象ジョブとして取り出す部分計画対象ジョブ獲得ステップと、操業制約を満たす前記部分計画対象ジョブの全ての順列に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、前記評価値が最適となる前記部分計画対象ジョブの処理順を選択する部分計画最適計算ステップと、前記部分計画最適計算ステップで選択された前記部分計画対象ジョブの処理順の初めから１つまたは複数のジョブを、当該処理順として決定する部分計画処理順決定ステップと、を備え、前記ジョブの全ての処理順が決定するまで、前記部分計画対象ジョブ獲得ステップ、前記処理順評価ステップ、前記部分計画最適計算ステップ、及び、前記部分計画処理順決定ステップの処理を繰り返すことを特徴とする。
【００１３】
本発明に係るプログラムは、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、所定のスケジュール目的と操業条件に基づいて、前記ジョブの処理順の初期解を生成する処理順初期解作成ステップ、前記ジョブの全ての処理順を決定する処理順決定ステップ、をコンピュータに実行させ、前記処理順決定ステップは、前記初期解の中の処理順が未決定のジョブの内、処理順の初めから複数のジョブを部分計画対象ジョブとして取り出す部分計画対象ジョブ獲得ステップ、操業制約を満たす前記部分計画対象ジョブの全ての順列に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、前記評価値が最適となる前記部分計画対象ジョブの処理順を選択する部分計画最適計算ステップ、前記部分計画最適計算ステップで選択された前記部分計画対象ジョブの処理順の初めから１つまたは複数のジョブを、当該処理順として決定する部分計画処理順決定ステップ、をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記部分計画対象ジョブ獲得ステップ、前記処理順評価ステップ、前記部分計画最適計算ステップ、及び、前記部分計画処理順決定ステップの処理を繰り返すことを特徴とする。
【００１４】
これによると、スケジュール対象の全てのジョブの最適な処理順を求めず、初期解を元に取り出した部分計画対象ジョブに対して最適な処理順を求めていることから、ジョブの数を少なくしてその順列の数を減らして、部分計画対象ジョブの全ての順列を評価することが容易にできる。また、部分計画対象ジョブに対する最適な処理順の中から、最初の１又は複数のジョブの処理順のみ決定していることから、当該処理順の後半の処理順を決定することによる部分計画対象ジョブ以外のジョブに対して及ぼす影響を避けることができる。そして、初期解を元に取り出した部分計画対象ジョブに対して最適な処理順を求め、部分計画対象ジョブに対する最適な処理順の中から、最初の１又は複数のジョブの処理順のみ決定する操作を繰り返して、スケジュール対象のジョブの処理順を順次求め、適切なスケジュールを短時間で作成することができる。
【００１５】
ここで、本発明に係る生産スケジューリング装置は、前記処理順決定手段で決定した前記ジョブの処理順を、前記処理順初期解作成手段で生成した前記ジョブの処理順の初期解に替えて、前記ジョブの処理順の初期解として設定する処理順初期解再設定手段、を更に備え、前記処理順初期解再設定手段で設定した前記ジョブの処理順の初期解に基づいて、前記処理順決定手段において前記ジョブの全ての処理順を決定して良い。
【００１６】
本発明に係る生産スケジューリング方法は、前記処理順決定ステップで決定した前記ジョブの処理順を、前記ジョブの処理順の初期解として設定する処理順初期解再設定ステップ、を更に備え、前記処理順初期解再設定ステップで設定した前記ジョブの処理順の初期解に基づいて、前記処理順決定ステップにおいて前記ジョブの全ての処理順を決定して良い。
【００１７】
本発明に係るプログラムは、前記処理順決定ステップで決定した前記ジョブの処理順を、前記ジョブの処理順の初期解として設定する処理順初期解再設定ステップ、を更にコンピュータに実行させ、前記処理順初期解再設定ステップで設定した前記ジョブの処理順の初期解に基づいて、前記処理順決定ステップにおいて前記ジョブの全ての処理順を決定して良い。
【００１８】
これにより、初期解を元に取り出した部分計画対象ジョブに対して最適な処理順を求め、部分計画対象ジョブに対する最適な処理順の中から、最初の１又は複数のジョブの処理順のみ決定する操作を繰り返して、順次求めたスケジュール対象のジョブの処理順を初期解にして、再度、スケジュール対象のジョブの処理順を順次決定する。従って、初期解に依存することなく、スケジュール対象のジョブの処理順を順次求め、より適切なスケジュールを短時間で作成することができる。
【００１９】
また、本発明に係る生産スケジューリング装置は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ前記ジョブの内の処理順が未決定の未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算手段と、所定のスケジュール目的に基づいて、前記未決定ジョブの処理順の評価値を計算する処理順評価手段と、前記評価値が最適となる前記未決定ジョブの処理順の始めのジョブを次順のジョブとして決定する処理順決定手段と、を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算手段、前記処理順評価手段、及び、前記処理順決定手段の処理を繰り返すことを特徴とする。
【００２０】
本発明に係る生産スケジューリング方法は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ前記ジョブの内の処理順が未決定の未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップと、前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、前記評価値が最適となる前記未決定ジョブの処理順の始めのジョブを次順のジョブとして決定する処理順決定ステップと、を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする。
【００２１】
本発明に係るプログラムは、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ前記ジョブの内の処理順が未決定の未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップ、前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、前記評価値が最適となる前記未決定ジョブの処理順の始めのジョブを次順のジョブとして決定する処理順決定ステップ、をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする。
【００２２】
これによると、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ複数のスケジュール目的に対応した未決定ジョブの処理順を求め、それぞれのスケジュール目的に対応した処理順全体の評価値を基に、最も評価値の良かった未決定ジョブの処理順の最初のジョブを次順のジョブとして決定している。また、処理順を１ジョブずつ決定するのは従来技術であるディスパッチングルールに基づく生産スケジューリングの技術と同様であるが、処理順を１ジョブずつ決定するのに際してディスパッチングルールに基づく生産スケジューリングの技術では個々のジョブに対するミクロな観点での評価値を用いるのに対し、処理順を１ジョブずつ決定するのに際して本発明では全ジョブの処理順に対するマクロな観点での評価値を用いている。従って、処理順を１ジョブずつ決定するのに際して全ジョブの処理順に対するマクロな観点での評価値を用い、ジョブの全ての処理順を決定するために（スケジュール目的の数）×（スケジュール対象のジョブの数）だけの処理を行うことで、複数のスケジュール目的を考慮して従来からの生産スケジューリングのノウハウを活用しつつ、適切なスケジュールを短時間で作成することができる。
【００２３】
また、本発明に係る生産スケジューリング装置は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する処理順計算手段と、所定のスケジュール目的に基づいて、前記未決定ジョブの処理順の評価値を計算する処理順評価手段と、前記評価値が最適となる前記未決定ジョブの処理順の仮設定したジョブを次順のジョブとして決定する処理順決定手段と、を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算手段、前記処理順評価手段、及び、前記処理順決定手段の処理を繰り返すことを特徴とする。
【００２４】
本発明に係る生産スケジューリング方法は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する処理順計算ステップと、前記仮設定したジョブ毎の前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、前記評価値が最適となる前記未決定ジョブの処理順の仮設定したジョブを次順のジョブとして決定する処理順決定ステップと、を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする。
【００２５】
本発明に係るプログラムは、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する処理順計算ステップ、前記仮設定したジョブ毎の前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、前記評価値が最適となる前記未決定ジョブの処理順の仮設定したジョブを次順のジョブとして決定する処理順決定ステップ、をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする。
【００２６】
これによると、未決定ジョブの内で操業制約を満たす全てのジョブを次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を求め、仮設定したそれぞれのジョブに対応した処理順全体の評価値を基に、最も評価値の良かった処理順の仮設定したジョブを次順のジョブとして決定している。また、処理順を１ジョブずつ決定するのは従来技術であるディスパッチングルールに基づく生産スケジューリングの技術と同様であるが、処理順を１ジョブずつ決定するのに際してディスパッチングルールに基づく生産スケジューリングの技術では個々のジョブに対するミクロな観点での評価値を用いるのに対し、処理順を１ジョブずつ決定するのに際して本発明では全ジョブの処理順に対するマクロな観点での評価値を用いている。従って、処理順を１ジョブずつ決定するのに際して全ジョブの処理順に対するマクロな観点での評価値を用い、ジョブの全ての処理順を決定するために（未決定ジョブの内で操業制約を満たすジョブの数の平均）×（スケジュール対象のジョブの数）だけの処理を行うことで、ジョブを漏れなく検討対象としてより適切なスケジュールを短時間で作成することができる。
【００２７】
また、本発明に係る生産スケジューリング装置は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング装置であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶手段と、前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算手段と、所定のスケジュール目的に基づいて、前記未決定ジョブの処理順の評価値を計算する処理順評価手段と、前記評価値が最適となる前記未決定ジョブの仮設定したジョブを次順のジョブとして決定する処理順決定手段と、を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算手段、前記処理順評価手段、及び、前記処理順決定手段の処理を繰り返すことを特徴とする。
【００２８】
本発明に係る生産スケジューリング方法は、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成する生産スケジューリング方法であって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップと、前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップと、前記仮設定したジョブ毎の前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップと、前記評価値が最適となる前記未決定ジョブの仮設定したジョブを次順のジョブとして決定する処理順決定ステップと、を備え、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする。
【００２９】
本発明に係るプログラムは、スケジュール対象の複数のジョブの処理順を決定してスケジュールを作成するためのプログラムであって、スケジュール対象の複数のジョブ及びその特性を登録するジョブ情報記憶ステップ、前記ジョブの内の処理順が未決定の未決定ジョブで操業制約を満たす全てのジョブをひとつずつ選択して次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を計算する、複数のスケジュール目的に対応した複数の処理順計算ステップ、前記仮設定したジョブ毎の前記複数のスケジュール目的に対応した前記未決定ジョブの処理順に対して、所定のスケジュール目的に基づいた評価値を計算する処理順評価ステップ、前記評価値が最適となる前記未決定ジョブの仮設定したジョブを次順のジョブとして決定する処理順決定ステップ、をコンピュータに実行させ、前記ジョブの全ての処理順が決定するまで、前記処理順計算ステップ、前記処理順評価ステップ、及び、前記処理順決定ステップの処理を繰り返すことを特徴とする。
【００３０】
これによると、未決定ジョブの内で操業制約を満たす全てのジョブを次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ複数のスケジュール目的に対応した残りの未決定ジョブの処理順を求め、仮設定したそれぞれのジョブのそれぞれのスケジュール目的に対応した処理順全体の評価値を基に、最も評価値の良かった処理順の仮設定したジョブを次順のジョブとして決定している。また、処理順を１ジョブずつ決定するのは従来技術であるディスパッチングルールに基づく生産スケジューリングの技術と同様であるが、処理順を１ジョブずつ決定するのに際してディスパッチングルールに基づく生産スケジューリングの技術では個々のジョブに対するミクロな観点での評価値を用いるのに対し、処理順を１ジョブずつ決定するのに際して本発明では全ジョブの処理順に対するマクロな観点での評価値を用いている。従って、処理順を１ジョブずつ決定するのに際して全ジョブの処理順に対するマクロな観点での評価値を用い、ジョブの全ての処理順を決定するために（未決定ジョブの内で操業制約を満たすジョブの数の平均）×（スケジュール目的の数）×（スケジュール対象のジョブの数）だけの処理を行うことで、複数のスケジュール目的を考慮して従来からの生産スケジューリングのノウハウを活用しつつ、未決定ジョブを漏れなく検討対象として更に適切なスケジュールを短時間で作成することができる。
【００３１】
尚、本発明に係るプログラムは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disk）などのリムーバブル型記録媒体やハードディスクなどの固定型記録媒体に記録して配布可能である他、有線又は無線の電気通信手段によってインターネットなどの通信ネットワークを介して配布可能である。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照しつつ、本発明である生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムを実施するための最良の形態について、具体的な一例に即して説明する。
【００３３】
まず、本実施形態において、対象工程は図１に示すように１工程であり、資源は図１に示す１つの設備であり、ジョブを順次処理していく。図１は、本実施形態における対象工程を示す図である。
【００３４】
また、ジョブ種は表１に示すように１、２、３の３種類であり、ジョブ種により処理時間が異なる。
【００３５】
【表１】
2007102435.tif 000003
【００３６】
そして、表２に示すように、同じジョブ種のジョブが連続する場合は段取り替え時間が不要であるが、異なるジョブ種のジョブに切り替える場合は、前後のジョブ種に応じた段取り替え時間を要する。尚、表２において、「ジョブ種１」が前工程のジョブ種であり、「ジョブ種２」が後工程のジョブ種である。
【００３７】
【表２】
2007102435.tif 000004
【００３８】
また、表３に示すように、スケジュール対象とするジョブはＪ個のジョブ（ジョブ番号ｊ＝１〜Ｊであり、表３の例ではＪ＝３０）であり、それぞれ納期が設定されている。
【００３９】
【表３】
2007102435.tif 000005
【００４０】
また、本実施形態においては、処理順が既に決定しているジョブ（表３以外のジョブ）の中の最終ジョブ（ジョブ番号ｊ＝０）のジョブ種は１で、時刻０に終了する。
【００４１】
［第一の実施形態］
第一の実施形態に係る生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムについて、説明する。まず、第一の実施形態に係る生産スケジューリング装置について、図２に基づいて説明する。図２は、第一の実施形態に係る生産スケジューリング装置のブロック図である。
【００４２】
図１に示すように、生産スケジューリング装置１は、記憶装置１０と、演算装置２０と、インターフェース装置３０とから構成される。そして、記憶装置１０は、ジョブ情報１１と、処理順初期解１２と、部分計画対象ジョブ１３と、スケジュール結果１４とを記憶する。また、演算装置２０は、割り付け優先度決定機能２１、処理順初期解作成機能２２、処理順決定機能２３の処理を行う。更に、処理順決定機能２３は、部分計画対象ジョブ獲得機能２４、部分計画最適計算機能２５、処理順評価機能２６、部分計画処理順決定機能２７の処理を行う。
【００４３】
ジョブ情報１１は、図示しない入力装置により入力されたジョブ種、段取り替え時間、スケジュール対象とするジョブを記憶する。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【００４４】
割り付け優先度決定機能２１は、所定のスケジュール目的に基づいて、割り付け優先度を決定するためのものである。本実施形態においては、「納期の迫っている（早い）ジョブほど早く処理する。」という納期優先のスケジュール目的に基づいて、割り付け優先度を決定する。即ち、納期の早いジョブほど割り付け優先度が高く決定される。
【００４５】
処理順初期解作成機能２２は、割り付け優先度決定機能２１で決定した割り付け優先度に基づいて、操業制約を考慮しつつ、ジョブ情報１１として記憶装置１０に記憶されているジョブの処理順の初期解を生成するためのものである。ここで、操業制約とは操業上の制約のことである。また、ジョブの処理順の初期解を生成するにあたっては従来技術を用いる。そして、処理順初期解作成機能２２で生成された初期解は、処理順初期解１２として記憶装置１０に記憶される。尚、本実施形態において、納期優先のスケジュール目的に基づいた割り付け優先度により生成された初期解を、表４に示す。
【００４６】
【表４】
2007102435.tif 000006
【００４７】
処理順決定機能２３は、記憶装置１０に記憶された処理順初期解１２を元にして、処理順初期解１２の先頭の処理順から、全てのジョブの処理順が決定するまで、部分計画対象ジョブ獲得機能２４、部分計画最適計算機能２５、処理順評価機能２６、部分計画処理順決定機能２７の処理を繰り返して、ジョブの処理順を決定していくためのものである。これらの機能２４〜２７について、以下で詳細に説明する。
【００４８】
部分計画対象ジョブ獲得機能２４は、記憶装置１０に記憶された処理順初期解１２のジョブの処理順の先頭から、処理順が未決定のジョブを予め設定した個数獲得し、部分計画対象ジョブとする。本実施形態では、部分計画対象ジョブの獲得個数は７個と設定した。そして、部分計画対象ジョブ獲得機能２４で獲得した部分計画対象ジョブは、部分計画対象ジョブ１３として記憶装置１０に記憶される。
【００４９】
部分計画最適計算機能２５は、記憶装置１０に記憶された部分計画対象ジョブ１３に対し、後述する処理順評価機能２６で計算した評価値が最適となる処理順を計算するためのものである。即ち、部分計画対象ジョブ１３の全ての順列の中で、操業制約及び処理順制約を満足する全ての処理順に対して、処理順評価機能２６で評価値を計算し、その評価値が最も良い処理順として計算する。ここで、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。
【００５０】
処理順評価機能２６は、部分計画対象ジョブ１３の処理順に対して、スケジュール目的に基づいて設定した評価値を計算するためのものである。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、数１に示す評価式に基づいて、部分計画対象ジョブ１３に対する評価値Ｅを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅは、納期優先のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。尚、数１において、Ｂは部分計画対象ジョブの集合を表しており、定式のΣは部分計画対象ジョブに対する評価値を表す。
【００５１】
【数１】
2007102435.tif 000007
【００５２】
部分計画処理順決定機能２７は、部分計画最適計算機能２５で計算した評価値が最適となる部分計画対象ジョブ１３の処理順の初めから１つまたは複数のジョブを次順から処理するジョブとして決定するためのものである。そして、処理順が決定したジョブは、スケジュール結果１４として記憶装置１０に記憶される。本実施形態においては、部分計画最適計算機能２５で計算した評価値が最適となる部分計画対象ジョブ１３の処理順の最初のジョブを次順で処理するジョブとして決定する。
【００５３】
インターフェース装置３０は、記憶装置１０に記憶されたスケジュール結果１４を、スケジュール結果出力インターフェース（スケジュール結果出力Ｉ／Ｆ）３１を介して、プリンタ３２又はディスプレイ３３等の出力装置に表示するためのものである。本実施形態において、最終的に記憶装置１０に記憶されたスケジュール結果１４を表５に示す。
【００５４】
【表５】
2007102435.tif 000008
【００５５】
表５に示すように、表４に示す初期解と比較して、納期遅れとなるジョブがなく、また、全ジョブの評価値の和も大きく改善していることがわかる。
【００５６】
次に、第一の実施形態に係る生産スケジューリング方法の処理の手順について、図３に基づいて、説明する。図３は、第一の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
尚、以下で説明する第一の実施形態に係る生産スケジューリング方法の処理は、コンピュータにおいても同様に、プログラムとしてＣＰＵにより読み出して実行することができる。また、このプログラムは、ＣＤ−ＲＯＭやＤＶＤなどのリムーバブルな記憶媒体に記録しておくことにより、様々なコンピュータの記憶装置にインストールすることが可能である。
【００５７】
図３に示すように、まず、マスタデータ（ジョブ種毎の処理時間、段取り替え時間）及びスケジュール対象のジョブを読み込み、スケジュール対象のジョブの処理順を未決定とする（ステップＳ１、Ｓ２：ジョブ情報記憶ステップ）。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【００５８】
そして、所定の割り付け優先度に基づいて、操業制約を考慮しつつ、スケジュール対象のジョブの処理順の初期解を生成する（ステップＳ３：処理順初期解作成ステップ）。ここで、操業制約とは操業上の制約のことである。また、ジョブの処理順の初期解を生成するにあたっては従来技術を用いる。本実施形態では、「納期の迫っている（早い）ジョブほど早く処理する。」という納期優先のスケジュール目的に基づいて、割り付け優先度を決定される。即ち、納期の早いジョブほど割り付け優先度が高い。尚、本実施形態において、納期優先のスケジュール目的に基づいた割り付け優先度により生成された初期解は、表４に示すとおりである。
【００５９】
処理順ｗ＝１と設定し（ステップＳ４）、先頭の処理順（ｗ＝１）から、全てのジョブの処理順が決定するまで、下記のステップＳ５〜Ｓ９（処理順決定ステップ）の処理を繰り返してジョブの処理順を決定していく。
【００６０】
ジョブの処理順の先頭から、処理順が未決定のジョブを予め設定した個数獲得し、部分計画対象ジョブとする（ステップＳ５：部分計画対象ジョブ獲得ステップ）。尚、本実施形態においては、部分計画対象ジョブの獲得個数を７個と設定した。
【００６１】
次に、部分計画対象ジョブに対し、スケジュール目的に基づいて設定した評価値が最適となる処理順を計算する（ステップＳ６：処理順評価ステップ、部分計画最適計算ステップ）。即ち、部分計画対象ジョブの全ての順列の中で、操業制約及び処理順制約を満足する全ての処理順に対して評価値を計算し、その評価値が最も良い処理順として計算する。ここで、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。また、本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、数１に示す評価式に基づいて、部分計画対象ジョブに対する評価値Ｅを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅは、納期優先のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。尚、数１において、Ｂは部分計画対象ジョブの集合を表しており、定式のΣは部分計画対象ジョブに対する評価値を表す。
【００６２】
そして、ステップＳ６で得られた評価値が最適となる処理順の初めから１つまたは複数のジョブをｗ番目から処理するジョブとして決定する（ステップＳ７：部分計画処理順決定ステップ）。本実施形態では、ステップＳ６で得られた評価値が最適となる処理順の最初のジョブをｗ番目に処理するジョブとして決定する。
【００６３】
次に、全ジョブの処理順を決定したかどうかを判断する（ステップＳ８）。
全ジョブの処理順を決定していない場合は（ステップＳ８：ＮＯ）、ステップＳ７で処理順が決定したジョブの個数分だけ処理順を更新する（ステップＳ９）。本実施形態においては、ステップＳ７で処理順が決定したジョブの個数が１つであるので、処理順ｗ＝ｗ＋１として、処理順を更新する。
一方、全ジョブの処理順を決定した場合は（ステップＳ８：ＹＥＳ）、処理順決定ステップの処理を終了して、決定された全ジョブの処理順であるスケジュール結果を出力し（ステップＳ１０）、生産スケジューリング方法の処理を終了する。本実施形態において、ステップＳ１０で出力されたスケジュール結果は表５に示す通りである。表５に示すように、表４に示す初期解と比較して、納期遅れとなるジョブがなく、また、全ジョブの評価値の和も大きく改善していることがわかる。
【００６４】
このように、第一の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムによれば、スケジュール対象の全てのジョブの最適な処理順を求めず、初期解を元に取り出した部分計画対象ジョブに対して最適な処理順を求めていることから、ジョブの数を少なくしてその順列の数を減らして、部分計画対象ジョブの全ての順列を評価することが容易にできる。例えば、５ジョブの順列は１２０通りしかないが、３０ジョブの順列は１０32通り以上ある。従って、３０ジョブの全ての順列を評価することは困難であるが、５ジョブの全ての順列を評価することは容易である。即ち、部分計画対象ジョブはスケジュール対象のジョブに対して少数であるので、その順列の数は全ジョブの順列の数に比べて格段に少なく、少ない計算処理量で良好なスケジュール結果を得ることができる。また、部分計画対象ジョブに対する最適な処理順の中から、最初の１又は複数のジョブの処理順のみ決定していることから、当該処理順の後半の処理順を決定することによる部分計画対象ジョブ以外のジョブに対して及ぼす影響を避けることができる。そして、初期解を元に取り出した部分計画対象ジョブに対して最適な処理順を求め、部分計画対象ジョブに対する最適な処理順の中から、最初の１又は複数のジョブの処理順のみ決定する操作を繰り返して、スケジュール対象のジョブの処理順を順次求め、適切なスケジュールを短時間で作成することができる。
【００６５】
ここで、上述の第一の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムにおいては、「納期が迫っている（早い）ジョブほど早く処理する」という納期優先のスケジュール目的により決定した割り付け優先度に基づいて、操業制約を考慮しつつ、従来技術によりスケジュール対象のジョブの処理順の初期解を生成しているが、それに限らない。例えば、「段取り替え時間を最少とするジョブを選択する」という生産性優先のスケジュール目的により決定した割り付け優先度に基づいて、操業制約を考慮しつつ、従来技術によりスケジュール対象のジョブの処理順の初期解を生成してもよい。かかる生産性優先のスケジュール目的により決定した割り付け優先度に基づいて生成したスケジュール対象のジョブの処理順の初期解を表６に示す。
【００６６】
【表６】
2007102435.tif 000009
【００６７】
そして、表６に示す初期解に基づいて第一の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムを適用した結果を表７に示す。
【００６８】
【表７】
2007102435.tif 000010
【００６９】
表７に示すように、各ジョブの評価値の和は、表６に示す初期解に比べて改善しているものの、表５に示すスケジュール結果と比較してかなり悪い結果となっていることがわかる。即ち、第一の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムは、初期解に依存していることがわかる。第一の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムの変形例として、次に説明する第二の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムは、初期解に依存するという問題に対応するものである。
【００７０】
［第二の実施形態］
ここで、第一の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムの変形例である、第二の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムについて、説明する。まず、第二の実施形態に係る生産スケジューリング装置について、図４に基づいて説明する。図４は、第二の実施形態に係る生産スケジューリング装置のブロック図である。
【００７１】
図４に示すように、第二の実施形態に係る生産スケジューリング装置４０では、図２に示す第一の実施形態に係る生産スケジューリング装置１と比較して、演算装置２０が処理順初期解再設定機能２８を更に備えている。
【００７２】
処理順初期解再設定機能２８は、終了条件を満たすまで、記憶装置１０に記憶されている処理順初期解１２に替えて、処理順決定機能２３で決定された全てのジョブの処理順を処理順初期解１２として記憶させ、記憶装置１０に記憶される処理順初期解１２を再設定するためのものである。そして、再設定された処理順初期解１２に基づいて、再度、処理順決定機能２３において、全てのジョブの処理順を決定する。終了条件は、例えば、繰り返し回数を設定しても良いし、各ジョブの評価値の和が改善しなくなるまで繰り返すように設定しても良い。尚、本実施形態においては、終了条件として、繰り返し回数を３回に設定した。本実施形態において、最終的に記憶装置１０に記憶されたスケジュール結果１４を表８に示す。
【００７３】
【表８】
2007102435.tif 000011
【００７４】
表８に示すように、表８に示すスケジュール結果は、表５に示す第一の実施形態のスケジュール結果と一致しており、初期値の影響が排除されていることがわかる。
【００７５】
次に、第二の実施形態に係る生産スケジューリング方法の処理の手順について、図５に基づいて説明する。図５は、第二の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
尚、以下で説明する第二の実施形態に係る生産スケジューリング方法の処理は、コンピュータにおいても同様に、プログラムとしてＣＰＵにより読み出して実行することができる。また、このプログラムは、ＣＤ−ＲＯＭやＤＶＤなどのリムーバブルな記憶媒体に記録しておくことにより、様々なコンピュータの記憶装置にインストールすることが可能である。
【００７６】
図５に示すように、第二の実施形態に係る生産スケジューリング方法の処理の手順では、図３に示す第一の実施形態に係る生産スケジューリング方法の処理の手順と比較して、スケジュール結果を出力する（ステップＳ１０）前に、終了条件を満足するまで、処理順初期解を再設定する（ステップＳ１１、Ｓ１２：処理順初期解再設定ステップ）処理を更に備えている。終了条件は、例えば、繰り返し回数を設定しても良いし、各ジョブの評価値の和が改善しなくなるまで繰り返すように設定しても良い。尚、本実施形態においては、終了条件として、繰り返し回数を３回に設定した。
【００７７】
具体的には、終了条件を満足していない場合（ステップＳ１１：ＮＯ）には、ステップＳ８を経て決定された全てのジョブの処理順を処理順初期解として再設定し（ステップＳ１２）、ステップＳ４に戻り、再度、処理順決定ステップの処理（ステップＳ４〜Ｓ８）により全てのジョブの処理順を決定する。
一方、終了条件を満足する場合（ステップＳ１１：ＹＥＳ）には、決定された全てのジョブの処理順であるスケジュール結果を出力する（ステップＳ１０）。本実施形態において、ステップＳ１０で出力されるスケジュール結果は表８に示した通りである。表８に示すように、表８に示すスケジュール結果は、表５に示す第一の実施形態のスケジュール結果と一致しており、初期値の影響が排除されていることがわかる。
【００７８】
以上のように、第二の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムによれば、初期解を元に取り出した部分計画対象ジョブに対して最適な処理順を求め、部分計画対象ジョブに対する最適な処理順の中から、最初の１又は複数のジョブの処理順のみ決定する操作を繰り返して、順次求めたスケジュール対象のジョブの処理順を初期解にして、再度、スケジュール対象のジョブの処理順を順次決定する。従って、初期解に依存することなく、スケジュール対象のジョブの処理順を順次求め、第一の実施形態に比べて、より適切なスケジュールを短時間で作成することができる。
【００７９】
［第三の実施形態］
次に、第三の実施形態に係る生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムについて、説明する。まず、第三の実施形態に係る生産スケジューリング装置について、図６に基づいて説明する。図６は、第三の実施形態に係る生産スケジューリング装置のブロック図である。
【００８０】
図６に示すように、生産スケジューリング装置１０１は、記憶装置１１０と、演算装置１２０と、インターフェース装置１３０とから構成される。そして、記憶装置１１０は、ジョブ情報１１１と、処理順シミュレーション結果１１２と、スケジュール結果１１３とを記憶する。また、演算装置１２０は、割り付け優先度決定機能１２１、処理順シミュレータ（処理順計算手段）１２２、処理順評価機能１２３、処理順決定機能１２４の処理を行う。
【００８１】
ジョブ情報１１１は、図示しない入力装置により入力されたジョブ種、段取り替え時間、スケジュール対象とするジョブを記憶する。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【００８２】
割り付け優先度決定機能１２１は、スケジュール目的に基づいて、割り付け優先度を決定するためのものである。尚、割り付け優先度決定機能１２１は、後述する処理順シミュレータ１２２と一対で処理されるものであり、スケジュール目的の数に対応した数の割り付け優先度決定機能１２１及び処理順シミュレータ１２２が存在する。本実施形態においては、「納期遅れ最少」と「生産性最大」の２種類のスケジュール目的が存在し、それぞれ２個の割り付け優先度決定機能１２１及び処理順シミュレータ１２２が存在する。そして、「納期遅れ最少」をスケジュール目的とする割り付け優先度決定機能１２１は、納期の最も迫っているジョブの優先度を高くする。「生産性最大」をスケジュール目的とする割り付け優先度決定機能１２１は、段取り替え時間最少のジョブの優先度を高くする。
【００８３】
処理順シミュレータ１２２は、割り付け優先度決定機能１２１で決定した割り付け優先度に基づいて、操業制約及び処理順制約を考慮しつつ、ジョブ情報１１１として記憶装置１１０に記憶されているジョブの内の処理順が未決定のジョブ（以下、「未決定ジョブ」と略する。）の処理順をシミュレーションするためのものである。そして、処理順シミュレータ１２２でシミュレーションされた未決定ジョブの処理順は、処理順シミュレーション結果１１２として記憶装置１１０に記憶される。ここで、操業制約とは操業上の制約のことである。また、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。尚、参考までに、本実施形態において「納期遅れ最少」のスケジュール目的とする割り付け優先度決定機能１２１で決定した割り付け優先度に基づいた処理順シミュレータ１２２を用いた全ジョブの処理順のシミュレーション結果を表９に示す。また、「生産性最大」のスケジュール目的とする割り付け優先度決定機能１２１で決定した割り付け優先度に基づいた処理順シミュレータ１２２を用いた全ジョブの処理順のシミュレーション結果を表１０に示す。
【００８４】
【表９】
2007102435.tif 000012
【００８５】
【表１０】
2007102435.tif 000013
【００８６】
尚、表９、１０に示すように、シミュレーション結果としては、表９に示す評価値合計は６８６．７０、表１０に示す評価値合計は９９１．１１であるので、評価値が小さい表９のほうが好ましい結果となっている。尚、表９、表１０に示すシミュレーション結果は、それぞれ、表４、表６に示す従来技術による結果に対応している。
【００８７】
処理順評価機能１２３は、記憶装置１１０に記憶されたスケジュール目的の数に対応する数の処理順シミュレーション結果１１２に基づいて、全ジョブの処理順を評価するためのものである。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、数２に示す評価式に基づいて、全ジョブの処理順に対する評価値Ｅを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅは、納期遅れ最少のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。
【００８８】
【数２】
2007102435.tif 000014
【００８９】
処理順決定機能１２４は、処理順評価機能１２３で算出した評価値に基づいて、最適な評価値が得られる未決定ジョブの処理順の先頭のジョブを次順の処理順として決定するためのものである。そして、処理順が決定したジョブは、スケジュール結果１１３として記憶装置１１０に記憶される。
【００９０】
そして、未決定ジョブがなくなり、全てのジョブの処理順が決定するまで、演算装置１２０において、上述した割り付け優先度決定機能１２１、処理順シミュレータ１２２、処理順評価機能１２３、処理順決定機能１２４の処理を行う。
【００９１】
インターフェース装置１３０は、記憶装置１１０に記憶されたスケジュール結果１１３、スケジュール結果出力インターフェース（スケジュール結果出力Ｉ／Ｆ）１３１を介して、プリンタ１３２又はディスプレイ１３３等の出力装置に表示するためのものである。本実施形態において、最終的に記憶装置１１０に記憶されたスケジュール結果１１３を表１１に示す。
【００９２】
【表１１】
2007102435.tif 000015
【００９３】
表１１に示すように、表９、表１０に示す結果と比較して、全ジョブの評価値の和が改善していることがわかる。
【００９４】
次に、第三の実施形態に係る生産スケジューリング方法の処理の手順について、図７に基づいて、説明する。図７は、第三の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
尚、以下で説明する第三の実施形態に係る生産スケジューリング方法の処理は、コンピュータにおいても同様に、プログラムとしてＣＰＵにより読み出して実行することができる。また、このプログラムは、ＣＤ−ＲＯＭやＤＶＤなどのリムーバブルな記憶媒体に記録しておくことにより、様々なコンピュータの記憶装置にインストールすることが可能である。
【００９５】
図７に示すように、まず、ジョブ情報（ジョブ種毎の処理時間、段取り替え時間）及びスケジュール対象のジョブを読み込み、スケジュール対象のジョブの処理順を未決定とする（ステップＳ１０１、Ｓ１０２：ジョブ情報記憶ステップ）。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【００９６】
処理順ｗ＝１と設定し（ステップＳ１０３）、先頭の処理順（ｗ＝１）から、全てのジョブの処理順が決定するまで、下記のステップＳ１０４〜Ｓ１１５の処理を繰り返して１つずつジョブの処理順を決定していく。
【００９７】
まず、シミュレータ番号ｓ＝１とする（ステップＳ１０４）とともに、暫定評価値Ｅｔ＝∞と設定する（ステップＳ１０５）。尚、複数のスケジュール目的に対応する複数の処理順シミュレータに予めシミュレータ番号を登録しておく。尚、処理順シミュレータは、所定のスケジュール目的に基づいて決定された割り付け優先度に基づいて、操業制約及び処理順制約を考慮しつつ、ジョブの処理順をシミュレーションするシミュレータである。ここで、操業制約とは操業上の制約のことである。また、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。また、本実施形態では、「納期遅れ最少」と「生産性最大」の２種類のスケジュール目的が存在し、２個の処理順シミュレータが存在する。そして、「納期遅れ最少」をスケジュール目的とする処理順シミュレータは、納期の最も迫っているジョブの優先度を高くしてジョブの処理順をシミュレーションする。「生産性最大」をスケジュール目的とする処理順シミュレータは、段取り替え時間最少のジョブの優先度を高くしてジョブの処理順をシミュレーションする。
【００９８】
そして、シミュレータ番号ｓの処理順シミュレータにて、未決定ジョブの処理順ｗ〜Ｊをシミュレーションする（ステップＳ１０６：処理順計算ステップ）。尚、参考までに、本実施形態において、ｗ＝１の場合に、「納期遅れ最少」のスケジュール目的とする処理順シミュレータによる未決定ジョブの処理順のシミュレーション結果は表９に示す通りである。また、「生産性最大」のスケジュール目的とする処理順シミュレータによる未決定ジョブの処理順のシミュレーション結果は表１０に示す通りである。尚、表９、１０に示すように、シミュレーション結果としては、表９に示す評価値合計は６８６．７０、表１０に示す評価値合計は９９１．１１であるので、評価値が小さい表９のほうが好ましい結果となっている。尚、表９、表１０に示すシミュレーション結果は、それぞれ、表４、表６に示す従来技術による結果に対応している。
【００９９】
シミュレーション結果による全ジョブの処理順（０〜Ｊ）評価値を求め、Ｅｓとする（ステップＳ１０７：処理順評価ステップ）。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、数３に示す評価式に基づいて、全ジョブの処理順に対する評価値Ｅｓを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅｓは、納期遅れ最少のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。
【０１００】
【数３】
2007102435.tif 000016
【０１０１】
次に、ＥｓとＥｔを比較し、Ｅｓ＜Ｅｔかどうか判断する（ステップＳ１０８）。
Ｅｓ＜Ｅｔである場合（ステップＳ１０８：ＹＥＳ）、処理順シミュレータにて処理順ｗとされたジョブのジョブ番号を記憶する（ステップＳ１０９）。尚、既にジョブ番号が登録されている場合は、既に登録されたジョブ番号に替えて、処理順シミュレータにて処理順ｗとされたジョブのジョブ番号を記憶する。そして、Ｅｔ＝Ｅｓとし（ステップＳ１１０）、ステップＳ１１１に進む。一方、Ｅｓ＜Ｅｔでない場合（ステップＳ１０８：ＮＯ）、ステップＳ１１１に進む。
【０１０２】
そして、複数ある処理順シミュレータの全てで評価したかどうかを判断する（ステップＳ１１１）。
複数ある処理順シミュレータの全てで評価していない場合（ステップＳ１１１：ＮＯ）、処理順シミュレータのシミュレータ番号ｓを更新して（ｓ＝ｓ＋１）（ステップＳ１１２）、ステップＳ１０６に戻り、上述の処理を行う。一方、複数ある処理順シミュレータの全てで評価した場合（ステップＳ１１１：ＹＥＳ）、記憶された処理順ｗのジョブを処理順ｗのジョブとして決定する（ステップＳ１１３：処理順決定ステップ）。
【０１０３】
次に、スケジュール対象の全ジョブの処理順が決定したかどうかを判断する（ステップＳ１１４）。
全ジョブの処理順が決定していない場合は（ステップＳ１１４：ＮＯ）、処理順ｗを更新して（ｗ＝ｗ＋１）（ステップＳ１１５）、ステップＳ１０４に戻り、上述の処理を行う。一方、全ジョブの処理順が決定した場合は（ステップＳ１１４：ＹＥＳ）、スケジュール結果を出力して（ステップＳ１１６）、生産スケジューリング方法の処理を終了する。本実施形態において出力されたスケジュール結果は表１１に示す通りである。表１１に示すように、表９、表１０に示す結果と比較して、全ジョブの評価値の和が改善していることがわかる。
【０１０４】
以上のように、第三の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムによれば、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ複数のスケジュール目的に対応した未決定ジョブの処理順を求め、それぞれのスケジュール目的に対応した処理順全体の評価値を基に、最も評価値の良かった未決定ジョブの処理順の最初のジョブを次順のジョブとして決定している。従って、処理順を１ジョブずつ決定するのに際して全ジョブの処理順に対するマクロな観点での評価値を用い、ジョブの全ての処理順を決定するために（スケジュール目的の数）×（スケジュール対象のジョブの数）だけの処理を行うことで、複数のスケジュール目的を考慮して従来からの生産スケジューリングのノウハウを活用しつつ、適切なスケジュールを短時間で作成することができる。例えば、スケジュール対象のジョブの数Ｊ＝２０、スケジュール目的の数Ｓ＝５とすると、１ジョブずつ決定するのに行うシミュレーション回数はＪ×Ｓ＝１００回である。一方、メタヒューリスティクスに基づく生産スケジューリングの技術では、ジョブ数Ｊ＝２０と同程度の規模の問題で、個体数Ｎ＝４０、世代数Ｇ＝１０００であるので、シミュレーション回数はＮ×Ｇ＝４００００の数倍程度（個体数４０は各世代で淘汰により生き残った個体の数であり、シミュレーションは淘汰されて死滅した個体（通常、生存個体よりも多い）に対しても必要であるため）必要である。従って、本実施形態の処理の高速性が明らかである。
【０１０５】
［第四の実施形態］
次に、第四の実施形態に係る生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムについて、説明する。まず、第四の実施形態に係る生産スケジューリング装置について、図８に基づいて説明する。図８は、第四、第五の実施形態に係る生産スケジューリング装置のブロック図である。
【０１０６】
図８に示すように、生産スケジューリング装置２０１は、記憶装置２１０と、演算装置２２０と、インターフェース装置２３０とから構成される。そして、記憶装置２１０は、ジョブ情報２１１と、処理順シミュレーション結果２１２と、スケジュール結果２１３とを記憶する。また、演算装置２２０は、ジョブ仮設定機能２２１、割り付け優先度決定機能２２２、処理順シミュレータ（処理順計算手段）２２３、処理順評価機能２２４、処理順決定機能２２５の処理を行う。
【０１０７】
ジョブ情報２１１は、図示しない入力装置により入力されたジョブ種、段取り替え時間、スケジュール対象とするジョブを記憶する。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【０１０８】
ジョブ仮設定機能２２１は、ジョブ情報２１１として記憶装置２１０に記憶されているジョブの内の処理順が未決定のジョブ（以下、「未決定ジョブ」と略する。）の内、操業制約を満たす全てのジョブ（以下、「仮設定ジョブ」と略する。）を選択し、それぞれ、次順のジョブとして仮設定するためのものである。ここで、操業制約とは操業上の制約のことである。
【０１０９】
割り付け優先度決定機能２２２は、所定のスケジュール目的に基づいて、割り付け優先度を決定するためのものである。本実施形態においては、「納期遅れ最少」又は「生産性最大」のスケジュール目的を設定する。ここで、「納期遅れ最少」をスケジュール目的とする場合、割り付け優先度決定機能２２２は、納期の最も迫っているジョブの優先度を高くする。「生産性最大」をスケジュール目的とする場合、割り付け優先度決定機能２２２は、段取り替え時間最少のジョブの優先度を高くする。
【０１１０】
処理順シミュレータ２２３は、割り付け優先度決定機能２２２で決定した割り付け優先度に基づいて、操業制約及び処理順制約を考慮しつつ、仮設定ジョブ以外の残りの未決定ジョブの処理順をシミュレーションするためのものである。そして、仮設定ジョブ及び処理順シミュレータ２２３でシミュレーションされた仮設定ジョブ以外の残りの未決定ジョブの処理順は、処理順シミュレーション結果２１２として記憶装置２１０に記憶される。ここで、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。
【０１１１】
処理順評価機能２２４は、記憶装置２１０に記憶された仮設定ジョブの数に対応する数の処理順シミュレーション結果２１２に基づいて、全ジョブの処理順を評価するためのものである。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、上述の数２に示す評価式に基づいて、全ジョブの処理順に対する評価値Ｅを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅは、納期遅れ最少のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。
【０１１２】
処理順決定機能２２５は、処理順評価機能２２４で算出した評価値に基づいて、最適な評価値が得られる処理順の仮設定ジョブを次順の処理順として決定するためのものである。そして、処理順が決定したジョブは、スケジュール結果２１３として記憶装置２１０に記憶される。
【０１１３】
そして、未決定ジョブがなくなり、全てのジョブの処理順が決定するまで、演算装置２２０において、上述したジョブ仮設定機能２２１、割り付け優先度決定機能２２２、処理順シミュレータ２２３、処理順評価機能２２４、処理順決定機能２２５の処理を行う。
【０１１４】
インターフェース装置２３０は、記憶装置２１０に記憶されたスケジュール結果２１３を、スケジュール結果出力インターフェース（スケジュール結果出力Ｉ／Ｆ）２３１を介して、プリンタ２３２又はディスプレイ２３３等の出力装置に表示するためのものである。本実施形態において、割り付け優先度決定機能２２２において「納期遅れ最少」をスケジュール目的とした場合に、最終的に記憶装置２１０に記憶されたスケジュール結果２１３を表１２に示す。また、割り付け優先度決定機能２２２において「生産量最大」をスケジュール目的とした場合に、最終的に記憶装置２１０に記憶されたスケジュール結果２１３を表１３に示す。
【０１１５】
【表１２】
2007102435.tif 000017
【０１１６】
【表１３】
2007102435.tif 000018
【０１１７】
表１２は、第三の実施形態における表１１に示す結果と比較して、全ジョブの評価値の和が改善していることがわかる。
【０１１８】
次に、第四の実施形態に係る生産スケジューリング方法の処理の手順について、図９に基づいて、説明する。図９は、第四の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
尚、以下で説明する第四の実施形態に係る生産スケジューリング方法の処理は、コンピュータにおいても同様に、プログラムとしてＣＰＵにより読み出して実行することができる。また、このプログラムは、ＣＤ−ＲＯＭやＤＶＤなどのリムーバブルな記憶媒体に記録しておくことにより、様々なコンピュータの記憶装置にインストールすることが可能である。
【０１１９】
図９に示すように、まず、ジョブ情報（ジョブ種毎の処理時間、段取り替え時間）及びスケジュール対象のジョブを読み込み、スケジュール対象のジョブの処理順を未決定とする（ステップＳ２０１、Ｓ２０２：ジョブ情報記憶ステップ）。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【０１２０】
処理順ｗ＝１と設定し（ステップＳ２０３）、先頭の処理順（ｗ＝１）から、全てのジョブの処理順が決定するまで、下記のステップＳ２０４〜Ｓ２１６の処理を繰り返して１つずつジョブの処理順を決定していく。
【０１２１】
まず、暫定評価値Ｅｔ＝∞と設定する（ステップＳ２０４）。
【０１２２】
そして、未決定ジョブの中から操業制約を満たす全ジョブ（以下、「仮設定ジョブ」と略する。）を選択し、この最初の仮設定ジョブを獲得する（ステップＳ２０５）。ここで、操業制約とは操業上の制約のことである。
【０１２３】
次に、獲得した仮設定ジョブを処理順ｗに仮設定する（ステップＳ２０６）。そして、処理順シミュレータにて、獲得した仮設定ジョブ以外の残りの未決定ジョブの処理順ｗ＋１〜Ｊをシミュレーションする（ステップＳ２０７：処理順計算ステップ）。尚、処理順シミュレータは、所定のスケジュール目的に基づいて決定された割り付け優先度に基づいて、操業制約及び処理順制約を考慮しつつ、ジョブの処理順をシミュレーションするシミュレータである。ここで、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。また、本実施形態では、「納期遅れ最少」又は「生産性最大」のスケジュール目的を設定する。「納期遅れ最少」をスケジュール目的とする場合は、納期の最も迫っているジョブの優先度を高くしてジョブの処理順をシミュレーションする。「生産性最大」をスケジュール目的とする場合は、段取り替え時間最少のジョブの優先度を高くしてジョブの処理順をシミュレーションする。
【０１２４】
シミュレーション結果による全ジョブの処理順（０〜Ｊ）評価値を求め、Ｅｓとする（ステップＳ２０８：処理順評価ステップ）。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、上述の数３に示す評価式に基づいて、全ジョブの処理順に対する評価値Ｅを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅｓは、納期遅れ最少のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。
【０１２５】
次に、ＥｓとＥｔを比較し、Ｅｓ＜Ｅｔかどうか判断する（ステップＳ２０９）。
Ｅｓ＜Ｅｔである場合（ステップＳ２０９：ＹＥＳ）、処理順ｗとして仮設定した仮設定ジョブのジョブ番号を記憶する（ステップＳ２１０）。尚、既にジョブ番号が登録されている場合は、既に登録されたジョブ番号に替えて、処理順ｗとして仮設定した仮設定ジョブのジョブ番号を記憶する。そして、Ｅｔ＝Ｅｓとし（ステップＳ２１１）、ステップＳ２１２に進む。一方、Ｅｓ＜Ｅｔでない場合（ステップＳ２０９：ＮＯ）、ステップＳ２１２に進む。
【０１２６】
そして、操業制約を満たす全ジョブ（即ち、全ての仮設定ジョブ）を評価したかどうかを判断する（ステップＳ２１２）。
操業制約を満たす全ジョブ（即ち、全ての仮設定ジョブ）を評価していない場合（ステップＳ２１２：ＮＯ）、操業制約を満たす次のジョブ（即ち、次の仮設定ジョブ）を獲得し（ステップＳ２１３）、ステップＳ２０６に戻り、上述の処理を行う。一方、操業制約を満たす全ジョブ（即ち、全ての仮設定ジョブ）を評価した場合（ステップＳ２１２：ＹＥＳ）、記憶された処理順ｗのジョブを処理順ｗのジョブとして決定する（ステップＳ２１４：処理順決定ステップ）。
【０１２７】
次に、スケジュール対象の全ジョブの処理順が決定したかどうかを判断する（ステップＳ２１５）。
全ジョブの処理順が決定していない場合は（ステップＳ２１５：ＮＯ）、処理順ｗを更新して（ｗ＝ｗ＋１）（ステップＳ２１６）、ステップＳ２０４に戻り、上述の処理を行う。一方、全ジョブの処理順が決定した場合は（ステップＳ２１５：ＹＥＳ）、スケジュール結果を出力して（ステップＳ２１７）、生産スケジューリング方法の処理を終了する。本実施形態において、処理順シミュレータにおいて「納期遅れ最少」をスケジュール目的とした場合のスケジュール結果を表１２に、処理順シミュレータにおいて「生産量最大」をスケジュール目的とした場合のスケジュール結果を表１３に示す。表１２は、第三の実施形態における表１１に示す結果と比較して、全ジョブの評価値の和が改善していることがわかる。
【０１２８】
以上のように、第四の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムによれば、未決定ジョブの内で操業制約を満たす全てのジョブを次順のジョブとして仮設定し、所定のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ残りの未決定ジョブの処理順を求め、仮設定したそれぞれのジョブに対応した処理順全体の評価値を基に、最も評価値の良かった処理順の仮設定したジョブを次順のジョブとして決定している。従って、処理順を１ジョブずつ決定するのに際して全ジョブの処理順に対するマクロな観点での評価値を用い、ジョブの全ての処理順を決定するために（未決定ジョブの内で操業制約を満たすジョブの数の平均）×（スケジュール対象のジョブの数）だけの処理を行うことで、（未決定ジョブの内で操業制約を満たすジョブの数の平均）が通常（スケジュール目的の数）よりも大きく、第三の実施形態に比べて処理量が増えるが、ジョブを漏れなく検討対象としてより適切なスケジュールを短時間で作成することができる。例えば、スケジュール対象のジョブの数Ｊ＝２０、操業制約を満たすジョブ数の平均Ｋ＝１０とすると、１ジョブずつ決定するのに行うシミュレーション回数はＪ×Ｋ＝２００回である。一方、メタヒューリスティクスに基づく生産スケジューリングの技術では、ジョブ数Ｊ＝２０と同程度の規模の問題で、個体数Ｎ＝４０、世代数Ｇ＝１０００であるので、シミュレーション回数はＮ×Ｇ＝４００００の数倍程度（個体数４０は各世代で淘汰により生き残った個体の数であり、シミュレーションは淘汰されて死滅した個体（通常、生存個体よりも多い）に対しても必要であるため）必要である。従って、本実施形態の処理の高速性が明らかである。
【０１２９】
［第五の実施形態］
次に、第五の実施形態に係る生産スケジューリング装置及び生産スケジューリング方法、並びにプログラムについて、説明する。まず、第五の実施形態に係る生産スケジューリング装置について、図８に基づいて説明する。図８は、第四、第五の実施形態に係る生産スケジューリング装置のブロック図である。
【０１３０】
図８に示すように、生産スケジューリング装置２０１は、記憶装置２１０と、演算装置２２０と、インターフェース装置２３０とから構成される。そして、記憶装置２１０は、ジョブ情報２１１と、処理順シミュレーション結果２１２と、スケジュール結果２１３とを記憶する。また、演算装置２２０は、ジョブ仮設定機能２２１、割り付け優先度決定機能２２２、処理順シミュレータ（処理順計算手段）２２３、処理順評価機能２２４、処理順決定機能２２５の処理を行う。
【０１３１】
ジョブ情報２１１は、図示しない入力装置により入力されたジョブ種、段取り替え時間、スケジュール対象とするジョブを記憶する。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【０１３２】
ジョブ仮設定機能２２１は、ジョブ情報２１１として記憶装置２１０に記憶されているジョブの内の処理順が未決定のジョブ（以下、「未決定ジョブ」と略する。）の内、操業制約を満たす全てのジョブ（以下、「仮設定ジョブ」と略する。）を選択し、それぞれ、次順のジョブとして仮設定するためのものである。ここで、操業制約とは操業上の制約のことである。
【０１３３】
割り付け優先度決定機能２２２は、スケジュール目的に基づいて、割り付け優先度を決定するためのものである。尚、割り付け優先度決定機能２２２は、後述する処理順シミュレータ２２３と一対で処理されるものであり、スケジュール目的の数に対応した数の割り付け優先度決定機能２２２及び処理順シミュレータ２２３が存在する。本実施形態においては、「納期遅れ最少」と「生産性最大」の２種類のスケジュール目的が存在し、それぞれ２個の割り付け優先度決定機能２２２及び処理順シミュレータ２２３が存在する。そして、「納期遅れ最少」をスケジュール目的とする割り付け優先度決定機能２２２は、納期の最も迫っているジョブの優先度を高くする。「生産性最大」をスケジュール目的とする割り付け優先度決定機能２２２は、段取り替え時間最少のジョブの優先度を高くする。
【０１３４】
処理順シミュレータ２２３は、割り付け優先度決定機能２２２で決定した割り付け優先度に基づいて、操業制約及び処理順制約を考慮しつつ、仮設定ジョブ以外の残りの未決定ジョブの処理順をシミュレーションするためのものである。そして、仮設定ジョブ及び処理順シミュレータ２２３でシミュレーションされた仮設定ジョブ以外の残りの未決定ジョブの処理順は、処理順シミュレーション結果２１２として記憶装置２１０に記憶される。ここで、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。
【０１３５】
処理順評価機能２２４は、記憶装置２１０に記憶された仮設定ジョブの数×処理順シミュレータの数に対応する数の処理順シミュレーション結果２１２に基づいて、全ジョブの処理順を評価するためのものである。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、上述の数２に示す評価式に基づいて、全ジョブの処理順に対する評価値Ｅを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅは、納期遅れ最少のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。
【０１３６】
処理順決定機能２２５は、処理順評価機能２２４で算出した評価値に基づいて、最適な評価値が得られる処理順の仮設定ジョブを次順の処理順として決定するためのものである。そして、処理順が決定したジョブは、スケジュール結果２１３として記憶装置２１０に記憶される。
【０１３７】
そして、未決定ジョブがなくなり、全てのジョブの処理順が決定するまで、演算装置２２０において、上述したジョブ仮設定機能２２１、割り付け優先度決定機能２２２、処理順シミュレータ２２３、処理順評価機能２２４、処理順決定機能２２５の処理を行う。
【０１３８】
インターフェース装置２３０は、記憶装置２１０に記憶されたスケジュール結果２１３を、スケジュール結果出力インターフェース（スケジュール結果出力Ｉ／Ｆ）２３１を介して、プリンタ２３２又はディスプレイ２３３等の出力装置に表示するためのものである。本実施形態において、最終的に記憶装置２１０に記憶されたスケジュール結果２１３を表１４に示す。
【０１３９】
【表１４】
2007102435.tif 000019
【０１４０】
表１４に示すように、第三の実施形態における表１１及び第四の実施形態における表１２，１３に示す結果と比較して、全ジョブの評価値の和がかなり改善していることがわかる。
【０１４１】
次に、第五の実施形態に係る生産スケジューリング方法の処理の手順について、図１０に基づいて、説明する。図１０は、第五の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
尚、以下で説明する第五の実施形態に係る生産スケジューリング方法の処理は、コンピュータにおいても同様に、プログラムとしてＣＰＵにより読み出して実行することができる。また、このプログラムは、ＣＤ−ＲＯＭやＤＶＤなどのリムーバブルな記憶媒体に記録しておくことにより、様々なコンピュータの記憶装置にインストールすることが可能である。
【０１４２】
図１０に示すように、まず、ジョブ情報（ジョブ種毎の処理時間、段取り替え時間）及びスケジュール対象のジョブを読み込み、スケジュール対象のジョブの処理順を未決定とする（ステップＳ３０１、Ｓ３０２：ジョブ情報記憶ステップ）。本実施形態においては、表１に示すジョブ種、表２に示す段取り替え時間、表３に示すスケジュール対象とするジョブを記憶する。
【０１４３】
処理順ｗ＝１と設定し（ステップＳ３０３）、先頭の処理順（ｗ＝１）から、全てのジョブの処理順が決定するまで、下記のステップＳ３０４〜Ｓ３１９の処理を繰り返して１つずつジョブの処理順を決定していく。
【０１４４】
まず、シミュレータ番号ｓ＝１とする（ステップＳ３０４）とともに、暫定評価値Ｅｔ＝∞と設定する（ステップＳ３０５）。尚、複数のスケジュール目的に対応する複数の処理順シミュレータに予めシミュレータ番号を登録しておく。尚、処理順シミュレータは、所定のスケジュール目的に基づいて決定された割り付け優先度に基づいて、操業制約及び処理順制約を考慮しつつ、ジョブの処理順をシミュレーションするシミュレータである。ここで、操業制約とは操業上の制約のことである。また、処理順制約とは処理順に対する制約のことであり、本実施形態では、「同種類のジョブは、納期の早いジョブを先に処理する。」という処理順制約がある。また、本実施形態では、「納期遅れ最少」と「生産性最大」の２種類のスケジュール目的が存在し、２個の処理順シミュレータが存在する。そして、「納期遅れ最少」をスケジュール目的とする処理順シミュレータは、納期の最も迫っているジョブの優先度を高くしてジョブの処理順をシミュレーションする。「生産性最大」をスケジュール目的とする処理順シミュレータは、段取り替え時間最少のジョブの優先度を高くしてジョブの処理順をシミュレーションする。
【０１４５】
そして、未決定ジョブの中から操業制約を満たす全ジョブ（以下、「仮設定ジョブ」と略する。）を選択し、この最初の仮設定ジョブを獲得する（ステップＳ３０６）。
【０１４６】
次に、獲得した仮設定ジョブを処理順ｗに仮設定する（ステップＳ３０７）。そして、処理順シミュレータｓにて、獲得した仮設定ジョブ以外の残りの未決定ジョブの処理順ｗ＋１〜Ｊをシミュレーションする（ステップＳ３０８：処理順計算ステップ）。
【０１４７】
シミュレーション結果による全ジョブの処理順（０〜Ｊ）評価値を求め、Ｅｓとする（ステップＳ３０９：処理順評価ステップ）。本実施形態では、ジョブｊの評価値Ｅjは下記の通りとし、上述の数３に示す評価式に基づいて、全ジョブの処理順に対する評価値Ｅｓを計算する。
・納期遅れをした場合        Ｅj＝終了予定時刻−納期
・納期より早く終了する場合  Ｅj＝（終了予定時刻−納期）×０．０１
尚、評価値Ｅｓは、納期遅れ最少のスケジュール目的により設定された納期遅れペナルティを表しており、値が小さいほうが好ましい。
【０１４８】
次に、ＥｓとＥｔを比較し、Ｅｓ＜Ｅｔかどうか判断する（ステップＳ３１０）。
Ｅｓ＜Ｅｔである場合（ステップＳ３１０：ＹＥＳ）、処理順ｗとして仮設定した仮設定ジョブのジョブ番号を記憶する（ステップＳ３１１）。尚、既にジョブ番号が登録されている場合は、既に登録されたジョブ番号に替えて、処理順ｗとして仮設定した仮設定ジョブのジョブ番号を記憶する。そして、Ｅｔ＝Ｅｓとし（ステップＳ３１２）、ステップＳ３１３に進む。一方、Ｅｓ＜Ｅｔでない場合（ステップＳ３１０：ＮＯ）、ステップＳ３１３に進む。
【０１４９】
そして、複数ある処理順シミュレータの全てで評価したかどうかを判断する（ステップＳ３１３）。
複数ある処理順シミュレータの全てで評価していない場合（ステップＳ３１３：ＮＯ）、処理順シミュレータのシミュレータ番号ｓを更新して（ｓ＝ｓ＋１）（ステップＳ３１４）、ステップＳ３０８に戻り、上述の処理を行う。一方、複数ある処理順シミュレータの全てで評価した場合（ステップＳ３１３：ＹＥＳ）、操業制約を満たす全ジョブ（即ち、全ての仮設定ジョブ）を評価したかどうかを判断する（ステップＳ３１５）。
操業制約を満たす全ジョブ（即ち、全ての仮設定ジョブ）を評価していない場合（ステップＳ３１５：ＮＯ）、操業制約を満たす次のジョブ（即ち、次の仮設定ジョブ）を獲得し（ステップＳ３１６）、ステップＳ３０７に戻り、上述の処理を行う。一方、操業制約を満たす全ジョブ（即ち、全ての仮設定ジョブ）を評価した場合（ステップＳ３１５：ＹＥＳ）、記憶された処理順ｗのジョブを処理順ｗのジョブとして決定する（ステップＳ３１７：処理順決定ステップ）。
【０１５０】
次に、スケジュール対象の全ジョブの処理順が決定したかどうかを判断する（ステップＳ３１８）。
全ジョブの処理順が決定していない場合は（ステップＳ３１８：ＮＯ）、処理順ｗを更新して（ｗ＝ｗ＋１）（ステップＳ３１９）、ステップＳ３０４に戻り、上述の処理を行う。一方、全ジョブの処理順が決定した場合は（ステップＳ３１８：ＹＥＳ）、スケジュール結果を出力して（ステップＳ３２０）、生産スケジューリング方法の処理を終了する。本実施形態においてのスケジュール結果を表１４に示す。表１４に示すように、第三の実施形態における表１１及び第四の実施形態における表１２，１３に示す結果と比較して、全ジョブの評価値の和がかなり改善していることがわかる。
【０１５１】
以上のように、第五の実施形態に係る生産スケジューリング方法及び生産スケジューリング装置、並びにプログラムによれば、未決定ジョブの内で操業制約を満たす全てのジョブを次順のジョブとして仮設定し、複数のスケジュール目的による割付優先度に基づき、操業制約を考慮しつつ複数のスケジュール目的に対応した残りの未決定ジョブの処理順を求め、仮設定したそれぞれのジョブのそれぞれのスケジュール目的に対応した処理順全体の評価値を基に、最も評価値の良かった処理順の仮設定したジョブを次順のジョブとして決定している。従って、処理順を１ジョブずつ決定するのに際して全ジョブの処理順に対するマクロな観点での評価値を用い、ジョブの全ての処理順を決定するために（未決定ジョブの内で操業制約を満たすジョブの数の平均）×（スケジュール目的の数）×（スケジュール対象のジョブの数）だけの処理を行うことで、第三の実施形態及び第四の実施形態よりも処理量が増えるが、複数のスケジュール目的を考慮して従来からの生産スケジューリングのノウハウを活用しつつ、未決定ジョブを漏れなく検討対象として更に適切なスケジュールを短時間で作成することができる。例えば、スケジュール対象のジョブの数Ｊ＝２０、スケジュール目的の数Ｓ＝５、操業制約を満たすジョブ数の平均Ｋ＝１０とすると、１ジョブずつ決定するのに行うシミュレーション回数はＪ×Ｓ×Ｋ＝１０００回である。一方、メタヒューリスティクスに基づく生産スケジューリングの技術では、ジョブ数Ｊ＝２０と同程度の規模の問題で、個体数Ｎ＝４０、世代数Ｇ＝１０００であるので、シミュレーション回数はＮ×Ｇ＝４００００の数倍程度（個体数４０は各世代で淘汰により生き残った個体の数であり、シミュレーションは淘汰されて死滅した個体（通常、生存個体よりも多い）に対しても必要であるため）必要である。従って、本実施形態の処理の高速性が明らかである。
【０１５２】
以上、本発明の好適な実施の形態について説明したが、本発明は、前記実施の形態に限定されるものではなく、特許請求の範囲に記載した限りにおいてさまざまな変更が可能なものである。
【図面の簡単な説明】
【０１５３】
【図１】本実施形態における対象工程を示す図である。
【図２】第一の実施形態に係る生産スケジューリング装置のブロック図である。
【図３】第一の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
【図４】第二の実施形態に係る生産スケジューリング装置のブロック図である。
【図５】第二の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
【図６】第三の実施形態に係る生産スケジューリング装置のブロック図である。
【図７】第三の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
【図８】第四の実施形態に係る生産スケジューリング装置のブロック図である。
【図９】第四の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
【図１０】第五の実施形態に係る生産スケジューリング方法の処理の手順について説明したフローチャートである。
【図１１】ディスパッチングルールに基づく並び順制御の一例を示す図である。
【図１２】GA（遺伝的アルゴリズム）法における構成例示す図である。
【図１３】図１２の個体に対応するスケジュールを示す図である。
【符号の説明】
【０１５４】
１      生産スケジューリング装置
１１    ジョブ情報（ジョブ情報記憶手段）
２２    処理順初期解作成機能
２３    処理順決定機能
２４    部分計画対象ジョブ獲得機能
２５    部分計画最適計算機能
２６    処理順評価機能
２７    部分計画処理順決定機能
２８    処理順初期解再設定機能
４０    生産スケジューリング装置
１０１  生産スケジューリング装置
１１１  ジョブ情報（ジョブ情報記憶手段）
１２２  処理順シミュレータ（処理順計算手段）
１２３  処理順評価機能
１２４  処理順決定機能
２０１  生産スケジューリング装置
２１１  ジョブ情報（ジョブ情報記憶手段）
２２１  ジョブ仮設定機能
２２２  割り付け優先度決定機能
２２３  処理順シミュレータ（処理順計算手段）
２２４  処理順評価機能
２２５  処理順決定機能
Ｓ１、Ｓ２  ジョブ情報記憶ステップ
Ｓ３  処理順初期解作成ステップ
Ｓ５〜Ｓ９  処理順決定ステップ
Ｓ５  部分計画対象ジョブ獲得ステップ
Ｓ６  部分計画最適計算ステップ、処理順評価ステップ
Ｓ７  部分計画処理順決定ステップ
Ｓ１１、Ｓ１２  処理順初期解再設定ステップ
Ｓ１０１、Ｓ１０２  ジョブ情報記憶ステップ
Ｓ１０６  処理順計算ステップ
Ｓ１０７  処理順評価ステップ
Ｓ１１３  処理順決定ステップ
Ｓ２０１、Ｓ２０２  ジョブ情報記憶ステップ
Ｓ２０７  処理順計算ステップ
Ｓ２０８  処理順評価ステップ
Ｓ２１４  処理順決定ステップ
Ｓ３０１、Ｓ３０２  ジョブ情報記憶ステップ
Ｓ３０８  処理順計算ステップ
Ｓ３０９  処理順評価ステップ
Ｓ３１７  処理順決定ステップ
【図１】
2007102435.tif 000020
【図２】
2007102435.tif 000021
【図３】
2007102435.tif 000022
【図４】
2007102435.tif 000023
【図５】
2007102435.tif 000024
【図６】
2007102435.tif 000025
【図７】
2007102435.tif 000026
【図８】
2007102435.tif 000027
【図９】
2007102435.tif 000028
【図１０】
2007102435.tif 000029
【図１１】
2007102435.tif 000030
【図１２】
2007102435.tif 000031
【図１３】
2007102435.tif 000032