(57)【要約】  【課題】  所望の計画結果が得られるように，計画の途中結果を含む計画結果を参照しながら割付の優先度を適切に調整することが可能な生産計画スケジューリング装置，そのスケジューリング方法及びスケジューリングプログラムを提供する。  【解決手段】  スケジューラＡの割付機能１は，生産指示を達成するために実行すべきジョブの資源への割付を試行し，その試行結果における満足度を表す指標として，ジョブの割付が可能となってから割付が実行されるまでの待ち時間を待ち時間テーブル８に記憶させる。記憶された待ち時間は生産指示（オーダ）毎に累計され，この累計された待ち時間を用いて各オーダの割付の優先度が調整され，調整された優先度（評価値）にしたがってジョブが資源に割り付けられる。【選択図】図１
2005092716.tif 000002
【特許請求の範囲】
【請求項１】
与えられたオーダを達成するために実行すべきジョブの各資源に対する割付を行って，生産計画を作成する生産計画スケジューリング装置であって，
各上記ジョブについて所定のアルゴリズムで各資源に対する割付を試行したときの満足度を算出する満足度算出手段と，
上記満足度算出手段により算出された満足度を用いて上記オーダ毎の割付の優先度を調整する優先度調整手段と，
を備えてなることを特徴とする生産計画スケジューリング装置。
【請求項２】
上記満足度算出手段により算出される満足度が，上記ジョブの割付が可能となってから割付が実行されるまでの待ち時間に基づいて算出されるものである請求項１記載の生産計画スケジューリング装置。
【請求項３】
上記満足度算出手段により算出される満足度が，上記オーダの納期遅れ時間に基づいて算出されるものである請求項１記載の生産計画スケジューリング装置。
【請求項４】
更に，上記オーダ毎に上記満足度算出手段により算出された満足度を累計する満足度累計手段を備え，
上記優先度調整手段が，上記満足度累計手段により累計された満足度の累計値を用いて上記オーダの各ジョブの割付の優先度を調整する請求項３に記載の生産計画スケジューリング装置。
【請求項５】
上記満足度累計手段が，指定された上記資源についての満足度を累計しないものである請求項４に記載の生産計画スケジューリング装置。
【請求項６】
上記優先度調整手段が，上記満足度累計手段により累計された計画完了時の最終的な満足度に基づいて，次回計画の優先度の初期値を調整するものである請求項４又は５記載の生産計画スケジューリング装置。
【請求項７】
上記優先度調整手段が，特定のオーダについてのみ，上記満足度累計手段により累計された計画完了時の最終的な満足度に基づいて，次回計画の優先度の初期値を調整するものである請求項６記載の生産計画スケジューリング装置。
【請求項８】
更に，上記作成された生産計画が開始された段階で，上記ジョブの実際の着手日時及び完了日時に応じて，上記満足度算出手段により算出された満足度を修正する実績データ修正手段を具備した請求項１〜７記載の生産計画スケジューリング装置。
【請求項９】
上記優先度調整手段が，指定された上記オーダについてのみ，上記満足度算出手段により算出された満足度を用いて上記割付の優先度を調整する請求項１〜８記載の生産計画スケジューリング装置。
【請求項１０】
与えられたオーダを達成するために実行すべきジョブの各資源に対する割付を行って，生産計画を作成する生産計画スケジューリング方法であって，
各上記ジョブについて所定のアルゴリズムで各資源に対する割付を試行したときの満足度を算出する満足度算出手順と，
上記満足度算出手順により算出された満足度を用いて上記オーダ毎の割付の優先度を調整する優先度調整手順と，
を備えてなることを特徴とする生産計画スケジューリング方法。
【請求項１１】
与えられたオーダを達成するために実行すべきジョブの各資源に対する割付を行って，生産計画を作成する処理をコンピュータに実行させるための生産計画スケジューリングプログラムであって，
各上記ジョブについて所定のアルゴリズムで各資源に対する割付を試行したときの満足度を算出する満足度算出手順と，
上記満足度算出手順により算出された満足度を用いて上記オーダ毎の割付の優先度を調整する優先度調整手順と，
をコンピュータに実行させることを特徴とする生産計画スケジューリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，生産計画スケジューリング装置，そのスケジューリング方法及びスケジューリングプログラムに関し，更に詳しくは，与えられた生産指示（オーダ）を達成するために実行すべきジョブの割付を行う生産計画スケジューリング装置，そのスケジューリング方法及びスケジューリングプログラムに関するものである。
【背景技術】
【０００２】
下記特許文献１に，従来の生産計画スケジューリング装置の一例を示す。この従来技術においては，ロット優先度やロット納期から求められる各ジョブの割付キー（評価の対象）とその重み（重要度）を用いてジョブ毎に評価値を求め，評価値の高い順に各ジョブを資源に割付けるものとしている。
【特許文献１】特開２００２−３７３０１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来技術においては，上記割付キーとその重みをパラメータとして調整することによって，大局的に割付を制御することは可能であるが，生産計画の結果として納期遅れなどが発生した場合にも，それを考慮してより良い計画を作成することはできない。特に，このことは，生産ラインが高負荷状態にあり，かなりの割合で納期遅れが出る場合などは，ある特定のロットに遅れが集中するといった事態が起こり得るため，問題を大きくする。
また，複数のロットをほぼ同一の完成日としたい場合に上記割付キーの値をそれらのロットにおいて同一のものに設定しても必ずしも同一の完成日になるとは限らない。特に各ロットが全く異なる工程を持つ場合においてこの傾向は顕著である。具体的には，ある機械を構成する部品を生産する場合において，組み立て着手のためにこれらの部品の完成日が揃っている必要があるが，上述したように，これら部品の割付キーを同一の値に設定したとしても同一の完成日となる保証はなく，この場合には，計画結果を手動で手直しする必要が生じるなど多大の労力が必要となる。
【０００４】
従って，本発明は上記事情に鑑みてなされたものであり，その目的とするところは，所望の計画結果が得られるように，計画の途中結果を含む計画結果を参照しながら割付の優先度を適切に調整することが可能な生産計画スケジューリング装置，そのスケジューリング方法及びスケジューリングプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために本発明は，与えられたオーダを達成するために実行すべきジョブの各資源に対する割付を行って，生産計画を作成する生産計画スケジューリング装置であって，各上記ジョブについて所定のアルゴリズムで各資源に対する割付を試行したときの満足度を算出する満足度算出手段と，上記満足度算出手段により算出された満足度を用いて上記オーダ毎の割付の優先度を調整する優先度調整手段とを備えてなることを特徴とする生産計画スケジューリング装置として構成される。
この構成によって，割付の途中結果を含む計画結果における満足度の低いオーダについて優先的に割り付けるといった調整が可能となるので，特定のオーダに遅れが集中するといった事態の招来を防止することが可能となる。
また，上記満足度算出手段により算出される満足度が，上記ジョブの割付が可能となってから割付が実行されるまでの待ち時間に基づいて算出されるものである構成が考えられる。
これによって，各ジョブの待ち時間の長いオーダが優先的に割り付けられるように調整することが可能となるので，特定のオーダに遅れが集中するといった事態の招来を防止することが可能となる。
また，上記満足度算出手段により算出される満足度が，上記オーダの納期遅れ時間に基づいて算出されるものである構成とすることが考えられる。
これによって，計画結果において納期遅れとなったオーダについては優先度をあげるなどして自動的に優先度が修正され，再度計画を作成したときにより良い計画結果を得ることが可能となる。
また，更に，上記オーダ毎に上記満足度算出手段により算出された満足度を累計する満足度累計手段を備え，上記優先度調整手段が，上記満足度累計手段により累計された満足度の累計値を用いて上記オーダの各ジョブの割付の優先度を調整する構成とすることが考えられる。
この構成によって，例えば現在割付対象となっているジョブの優先度がその時点までの満足度の累計値に応じて調整されるので，割付の満足度が低くなっているオーダについてジョブが優先的に割り付けられるようになり，特定のオーダに遅れが集中するといった事態の招来を防止することが可能となる。
また，上記満足度累計手段が，指定された上記資源についての満足度を累計しないものである構成とすることが考えられる。
この構成によって，例えば，きわめて満足度が低くなることが多いいわゆるボトルネック資源について発生する満足度低下の影響を排除し，上記ボトルネック資源を使用するオーダと使用しないオーダとの間の優先度調整のアンバランスを解消して，より適切な計画結果を得ることが可能となる。
また，上記優先度調整手段が，上記満足度累計手段により累計された計画完了時の最終的な満足度に基づいて，次回計画の優先度の初期値を調整するものである構成とすることが考えられる。
この構成によって，再度スケジューリングを行うときに，前回の各オーダの満足度を考慮して優先度の初期値を設定することが可能となり，スケジューリングを繰り返すたびに各オーダの満足度の改善が可能となる。
また，上記優先度調整手段が，特定のオーダについてのみ，上記満足度累計手段により累計された計画完了時の最終的な満足度に基づいて，次回計画の優先度の初期値を調整するものである構成とすることが考えられる。
この構成によって，必要性に応じて特定のオーダについてのみ満足度を向上させることが可能となる。
また，更に，上記作成された生産計画が開始された段階で，上記ジョブの実際の着手日時（開始日時）及び完了日時（終了日時）に応じて，上記満足度算出手段により算出された満足度を修正する実績データ修正手段を具備した構成とすることが考えられる。
この構成によって，計画上の満足度ではなく実際の満足度を考慮して，現実をふまえた計画を作成することが可能となる。
また，本発明は，上記優先度調整手段が，指定された上記オーダについてのみ，上記満足度算出手段により算出された満足度を用いて上記割付の優先度を調整する構成とすることが考えられる。
この構成によって，必要性に応じて特定のオーダについてのみ満足度を向上させることが可能となる。
また，本発明は，上記生産計画スケジューリング装置の各手段が実行する処理に対応する生産計画スケジューリング方法として捉えたものであってもよい。
即ち，与えられたオーダを達成するために実行すべきジョブの各資源に対する割付を行って，生産計画を作成する生産計画スケジューリング方法であって，各上記ジョブについて所定のアルゴリズムで各資源に対する割付を試行したときの満足度を算出する満足度算出手順と，上記満足度算出手順により算出された満足度を用いて上記オーダ毎の割付の優先度を調整する優先度調整手順とを備えてなることを特徴とする生産計画スケジューリング方法である。
また，本発明は，上記生産計画スケジューリング装置の各手段が実行する処理をコンピュータに実行させるための生産計画スケジューリングプログラムとして捉えたものであってもよい。
即ち，与えられたオーダを達成するために実行すべきジョブの各資源に対する割付を行って，生産計画を作成する処理をコンピュータに実行させるための生産計画スケジューリングプログラムであって，各上記ジョブについて所定のアルゴリズムで各資源に対する割付を試行したときの満足度を算出する満足度算出手順と，上記満足度算出手順により算出された満足度を用いて上記オーダ毎の割付の優先度を調整する優先度調整手順とをコンピュータに実行させることを特徴とする生産計画スケジューリングプログラムである。
【発明の効果】
【０００６】
以上説明したように，本発明によれば， 与えられた生産指示を達成するために実行すべきジョブの割付を行うときに，割付の優先度が割付を試行したときの各ジョブの満足度に応じて調整される。したがって，固定的な優先度ではなく，実際の割付結果を考慮して調整される優先度にしたがって割付を行うことが可能となり，より適切な割付結果を得ることが可能となる。
【発明を実施するための最良の形態】
【０００７】
以下添付図面を参照しながら，本発明の実施の形態及び実施例について説明し，本発明の理解に供する。尚，以下の実施の形態及び実施例は，本発明を具体化した一例であって，本発明の技術的範囲を限定する性格のものではない。
図１に，本発明の一実施形態に係る生産計画スケジューリング装置（以下，スケジューラＡという）の機能ブロック図を示す。このスケジューラＡは，所定のプログラムを実行する制御部１によって実行される割付機能１ａと，生産指示テーブル２，製品マスタ３，工程マスタ４，資源マスタ５，資源稼働カレンダ６，未割付ジョブリスト７，割付対象ジョブテーブル７ａ，待ち時間テーブル８，割付情報テーブル９及び実績情報テーブル１０の各データベースとを備え，所定の生産ラインにおける生産計画の立案を行うものである。
ここで，生産計画とは，与えられた生産指示（以下，オーダともいう）を達成するように，生産すべき製品の全工程について，開始時刻，終了時刻，及び使用する資源を決定し，その結果をリスト化したものをいう。また，各工程について，開始時刻，終了時刻，及び使用する資源を決定する行為を割付という。
【０００８】
以下，スケジューラＡの各機能を説明する。
生産指示テーブル２は，与えられた生産指示，つまりオーダに関する情報を例えば表形式で記憶する。オーダは，生産すべき加工品及び納期を特定する。
図２に，生産指示テーブル２の一例を示す。ここでは，個々のオーダにより生産が指示された製品の集合（ロット）を加工品と称するものとし，各加工品Ｎ１，Ｎ２，Ｎ３，Ｎ４の属性値として，当該加工品を特定するための生産指示コード（P01, P02, P03, P04），当該加工品として製造される製品の製品種類（製品Ｍ１，Ｍ２，Ｍ３，Ｍ４），生産の優先度（４，３，１，５）が記憶されている。
【０００９】
製品マスタ３は，各製品種類の工程に関する情報（工程の連なり，いわゆる工順）等を例えば表形式で記憶する。
図３に，製品マスタ３の一例を示す。ここでは，各製品（製品種類）について，当該製品を特定するための製品コード（Ｊ１，Ｊ２，Ｊ３），製品名称，工程数，工程の連なりについての情報（各工程の名称及びその工順）が記憶されている。
【００１０】
工程マスタ４は，総ての製品（製品種類）の工程情報を記憶する。ここで，工程情報とは，ある加工品を完成させるために実施する工程の連なりに関する情報であり，各工程に関しては，使用する資源，使用する資源の割合等の情報を記憶する。
図４に，工程マスタ４の一例を示す。ここでは，各工程が製品（製品種類）毎に工順にしたがって並べられており，各工程について，工程コード（K11, K12, …），主資源（資源Ｌ１，資源Ｌ２，…），副資源（資源Ｌ１０，資源Ｌ１０，…）及び当該工程の所要時間（工程時間）が記憶されている。ここで，主資源とはその作業に使用される主要な資源であり通常は生産設備，生産装置である。また，副資源は，生産設備，生産装置の操作者などである。また，主資源は，副資源よりも先に割付が行われる。図４に示す例は，主資源及び副資源ともに，常に１００％使用する例であるため，使用する資源の割合についての情報は省略されている。
資源マスタ５は，各資源に関する情報（名称，能力等）を記憶する。
【００１１】
図５に，資源マスタ５の一例を示す。ここでは，各資源Ｌ１，Ｌ２，…について，当該資源を特定するための資源コード（R01, R02, …），当該資源が主資源であるか副資源であるかの別が記憶されている。図５に示す例は，各資源の能力は，各工程が必要とする能力に対応している（必要とする資源を常に１００％使用する，即ち，各資源の能力は各々全て１００％である）例であるため，各資源の能力についての情報は省略されている。
【００１２】
資源稼働カレンダ６は，各資源の稼働可能な期間についての情報を記憶する。
図６に，資源稼働カレンダ６の一例を示す。ここでは，各資源Ｌ１，Ｌ２，…の稼働時間帯（9:00-12:0，13:00-17:00等）についての情報が記憶されている。
未割付ジョブリスト７は，生産指示テーブル２に記憶された各生産指示に対応する加工品を完成させるために実行すべきジョブの内，割付の済んでいない各ジョブに関する情報を記憶する。ここで，ジョブとは，与えられたオーダ（生産指示）を達成するために実行すべき工程，すなわち各生産指示における加工品の工程を特定する呼び名である。
【００１３】
図７に，未割付ジョブリスト７の一例を示す。ここでは，各ジョブが加工品毎に工順に従って並べられており，各ジョブについて，当該ジョブを特定するためのジョブコード（P01-K11, P01-K12, …），当該ジョブにより製造される加工品に対応する生産指示の生産指示コード（Ｐ０１，Ｐ０２，…），当該ジョブと対応する工程の工程コード（Ｋ１１，Ｋ１２，…），当該ジョブが使用する主資源及び副資源，当該ジョブに対応する工程の所要時間（工程時間），当該ジョブにより製造される加工品の優先度が記憶されている。
また，制御部１は，未割付ジョブリスト７にリストアップされた各ジョブを所定のアルゴリズムにより資源に割り付ける割付処理を実行することにより，割付機能１ａを具現する。この割付処理においては，所定の時間毎に，未割付ジョブリスト７にリストアップされた各ジョブの中から割付を試行する割付対象ジョブをリストアップした割付対象ジョブテーブル７ａが作成され，ここにリストアップされた各ジョブに対して例えば優先順位情報に基づいて割付が試行される。例えば，オーダ毎に（生産指示コード毎に）最初に処理すべきジョブを割付対象ジョブとしてリストアップする。
ここで，割付に成功したジョブ，即ち，必要とする資源（主資源及び副資源）に必要な時間（工程時間）の空きがあってその資源について開始日時及び終了日時の設定がなされたジョブは未割付ジョブリスト７及び割付対象ジョブテーブル７ａから削除されるとともに，その割付結果が割付情報として順次割付情報テーブル９に出力され，記憶される。
【００１４】
図８に，割付情報テーブル９の一例を示す。ここでは，割付を試行して成功した各ジョブについて，当該ジョブのジョブコード，工程コード，使用する資源（主資源及び副資源），使用開始日時，使用終了日時が記憶されている。
【００１５】
実績情報テーブル１０は，すでに計画にしたがって実施されたジョブの開始日時（着手日時），終了日時（完了日時），進捗率などの情報（実績情報と称する）を記憶する。この実績情報は，計画立案開始時に制御部１に読み込まれ，これを初期状態として計画立案が開始される。当然のことながら，全くの初期状態では本テーブルは，空（全ての値が０）であり，生産ラインにおいて各ジョブが実行される都度，テーブルの内容が更新される。
図９に，実績情報テーブル１０の一例を示す。ここでは，すでに実施されているジョブについて，当該ジョブのジョブコード，生産指示コード，工程コード，使用する主資源，副資源，開始日時，終了日時及び進捗率が記憶されている。
待ち時間テーブル８は，計画開始後に各オーダについて発生した待ち時間についての情報を保持するテーブルであり，各ジョブが割付対象となった時点から実際に資源に割り付けられるまでの待ち時間を記憶する。
【００１６】
図１０に，待ち時間テーブル８の一例を示す。同図に示すように，待ち時間テーブル８は，後述するような所定のアルゴリズムで割付を試行していくときに，各オーダのジョブ毎に発生した待ち時間を記録するとともに，それを各オーダ毎に累計し（満足度累計手段）その累計値を記憶する。図１０において，「１前」，「１後」，「２前」…とあるのは，各々「１回目の割付試行の前」，「１回目の割付試行の後」，「２回目の割付試行の前」，…の各状態を表し，各状態ごとに待ち時間が記録される。
【００１７】
以下，上記図２乃至図１０により示した例（設例と称する）を用いて，実施形態の割付機能１ａにより割付を行う手順を具体的に説明する。
ここでは，説明の簡単化のために，各ジョブの割付を行う所定のアルゴリズムとして，製品種類毎にあらかじめ設定される優先度にしたがって割付を行う優先順位計画アルゴリズムを採用した場合を説明する。また，各工程で使用する主資源は１個，副資源は０又は１個とし，それらは１対１に対応するものとする。また，各製品（製品種類）の工程は，第１工程，第２工程，…の順に実施しなければならないものとする。また，計画開始時刻を２００３年４月１日（以下，０３／０４／０１のように表記する）の９時（以下，９：００のように表記する）として，この時刻から各ジョブの割付を行うものとする。
【００１８】
先ず，図１０の待ち時間テーブル８の値を全て０にセットする等の初期化を実行し，計画上の現在時刻（以下，計画日時という）を計画開始日時（03/04/01 9:00）に設定する。次に，図２の生産指示テーブルから加工品Ｎ１〜Ｎ４毎の製品種類を抽出し，抽出された製品種類を用いて図３の製品マスタ３を参照（検索）することにより，各加工品Ｎ１〜Ｎ４を製造するために実施すべき総ての工程（工程名称）を抽出し，抽出された各工程をジョブとして定義する。ここで定義されたジョブのリストが図７に示す未割付ジョブリスト７である。この未割付ジョブリスト７に設定される工程コード，主資源，副資源及び工程時間は，製品マスタ３から抽出された各工程の工程名称を用いて工程マスタ４（図４）から読み出される。
次に，各加工品の第１工程から実施しなければならないという制約に基づいて，第１回目の割付試行において割付の対象となる各ジョブを抽出し，そのリスト（前記割付対象ジョブテーブル７ａ）を作成する。
【００１９】
図１１に，第１回試行の際（初期状態）における割付対象ジョブテーブル７ａの一例を示す。ここでは，各加工品Ｎ１〜Ｎ４の第１工程（最初に処理すべき工程）の各ジョブがリストアップされている。
次に，各ジョブの優先度を参照して割付を行う。具体的には，割付対象ジョブテーブルにリストアップされた各ジョブが使用する総ての資源を抽出し，抽出された資源について順次割付を行っていく。設例では，資源Ｌ１，Ｌ２，Ｌ３の順に割付を行うものとする。
資源Ｌ１については，ジョブコードがP01-K11, P02-K11の各ジョブ（以下，各ジョブを特定する符号としてジョブコードを用いる）が競合しており，これら各ジョブP01-K11, P02-K11について，満足度を算出し（満足度算出手段），それぞれ割付の評価値を下記式１，２にしたがって求める。
（満足度）＝  −（待ち時間）                                  （１）
（評価値）＝（優先度）−（満足度）                            （２）
ここでは，待ち時間（≧０）の符号を反転させた値が満足度として算出される。また，割付の評価値は，当該ジョブの優先度に満足度を減算（即ち，満足度の絶対値を加算）して求められる。これにより割付の優先度が満足度により調整される（優先度調整手段）。
この他にも，満足度は，所定の最大満足度から待ち時間を差し引いた値とすることや，（満足度）＝（待ち時間）として満足度の値が低いほど満足の程度が高いことを意味する指標とする（この場合，満足度は「不満足度」を表すことになる）こと等も考えられる。ここで，（満足度）＝（待ち時間）とする場合は，（評価値）＝（優先度）＋（待ち時間）等とすることが考えられる。
【００２０】
ここでは，いずれのジョブについても待ち時間は発生しておらず，当該ジョブの優先度がそのまま評価値となるので，優先度が値「４」であるジョブP01-K11が資源Ｌ１に対して割り付けられる。この時点では，主資源（Ｌ１），副資源（Ｌ１０）ともに他に割り付いたジョブはなく資源の稼働時間についての条件も満足しているため，このジョブP01-K11に資源Ｌ１，Ｌ１０が9:00-12:00の期間割り付けられる。また，この結果は，割付情報として割付情報テーブル９に出力され，記憶される。同時に，ジョブP01-K11の待ち時間は，値「０」に確定する。また，図１０に示すように，この時点では，生産指示Ｐ０１における待ち時間の累計も値「０」である。一方，同じ資源（Ｌ１）を使用するジョブP02-K11は，この時点では割り付けることができない。
【００２１】
同様にして，他の資源（主資源）Ｌ２，Ｌ３についても割付がなされ，各ジョブP03-K21, P04-K31がそれぞれ割り付けられる。その結果が割付情報として割付情報テーブル９に記憶される。また，ジョブP03-K21, P04-K31の待ち時間は値「０」に確定する。
この時点で，上記割付に成功した各ジョブP01-K11, P03-K21, P04-K31は，図１１の割付対象ジョブテーブル７ａ及び図７の未割付ジョブリスト７から削除される。一方，割付に失敗したジョブP02-K11は，割付対象ジョブテーブル７ａに残される。
図１２に，その時点における割付対象ジョブテーブルを示す。
【００２２】
次に，上記割付に成功した各ジョブP01-K11, P03-K21, P04-K31についてその工程が最も早く終わるジョブを調べる。ここでは，ジョブP03-K21の工程時間が最短（１時間）であり，日時（03/04/01 10:00）に工程が終了するので，その日時を次の計画日時として設定する。
この計画日時（03/04/01 10:00）の時点では，ジョブP03-K21が終了しているため，対応する加工品Ｎ３の第２工程のジョブP03-K22が割付対象ジョブテーブル７に加えられる（図１３参照）とともに，計画開始日時（03/04/01 9:00）から１時間が経過しているため，ジョブP02-K11の待ち時間が値「１」となり（図１０の「２前」の状態），この結果，評価値も値「４」に増加する。
【００２３】
また，この時点（第２回割付試行時）に資源Ｌ２はジョブが割り付いていない状態となるが，割付対象ジョブテーブルの各ジョブP02-K11, P03-K22は資源Ｌ２を使用しないため，割付が可能なジョブはない。また，この時点において割付に成功するジョブはないので，割付対象ジョブテーブル７ａの内容は，この試行（第２回）の前後において同一である（図１３参照）。
さらに，この時点で割付中の各ジョブP01-K21, P04-K31についてその工程が最も早く終わるジョブを調べる。ここでは，ジョブP04-K31の工程が日時（03/04/01 11:00）に終了するので，その日時を次の計画日時として設定する。
【００２４】
この時点（03/04/01 11:00，第３回割付試行時）には，ジョブP04-K31が終了しているので（図１１参照），図１４に示すように，次の工程に対応するジョブP04-K32が割付対象ジョブテーブル７ａに加えられるとともに，他の各ジョブP02-K11, P03-K22の待ち時間がそれぞれの値が「１」加算される。また，この時点（第３回割付試行時）では資源Ｌ３の使用状態が終了するので，この時点の割付対象ジョブテーブル７ａ（図１４参照）の中のジョブのうち，資源Ｌ３を使用するジョブP03-K22の割付が試行される。しかしながら，ジョブP03-K22の工程時間が２時間であるのに対して図６の資源稼働カレンダによれば資源Ｌ３の稼働時間帯は期間（9:00-1200, 13:00-17:00）であるため，連続して稼働できる時間が２時間に満たず割付を行うことができない。
【００２５】
次に，次の計画日時（第４回割付試行の日時）は，図１１に示されるジョブP01-K11の工程が終了する日時（03/04/01 12:00）に設定される。この時点で，図１５に示すように，ジョブP01-K11の次の工程に対応するジョブP01-K12が割付対象ジョブテーブル７ａに加わるが，資源の稼働時間との関係で割付可能なジョブは存在しない。また，この時点で，現在割付状態にあるジョブはなくなっているため，工程が最も早く終わるジョブの終了日時を次の計画日時とする規則が適用できない。この場合，次の計画日時（第５回割付試行の日時）は，図６の資源稼働カレンダの最も早い稼働開始時刻である（03/04/01 13:00）に設定される。
次の計画日時の時点（第５回割付試行時）では，図１６に示すように，待ち時間の寄与により優先度の高いジョブP04-K32よりも評価値が高くなったジョブP02-K11が資源Ｌ１に割り付けられる。また，資源Ｌ３にはジョブP03-K22が割り付けられ，それらの結果が割付情報として割付情報テーブル９に記憶される。図１７に，割付後の割付対象ジョブテーブル７ａの内容を示す。
【００２６】
このようにして，未割付ジョブリスト７に残るジョブがなくなるまで割付試行が行われ，全てのジョブの割付が終了した時点における各オーダの待ち時間の累計，ないしは最終的な満足度に基づいて次回の計画立案に用いるオーダ毎の初期満足度を例えば下記式３により算出する。
（初期満足度）＝−（待ち時間累計）／２＝−（最終的な満足度）／２     （３）
このようにして算出される初期満足度を，次回の生産計画立案に用いることによって，今回の計画において待ち時間の長い，つまり満足度の低いオーダの評価値が上がり，次回の計画，特に割付開始時点における不具合が改善される。例えば，今回の計画で最終的な待ち時間が１０時間であるオーダの初期満足度は値「５」となり，初回の計画時に優先度が高く待ち時間の値が「０」であったオーダであっても先の初期満足度の寄与によって優先度の差の値が「４」以下のオーダよりも優先的に割付が行われることになる。ただし，この効果は，割付が繰り返し行われると他のジョブの満足度も悪化していくため，相対的に薄くなる。これを避けるために，下記式４により満足度Ｓを算出することが考えられる。
満足度Ｓ＝Σ（Ｗｉ＊Ｆｉ＋Ｋｉ）                          （４）
ただし，ｉ：満足度要因の種類を表す番号（ｉ＝１，２，３，…），Ｆｉ：満足度要因ｉの値，Ｗｉ：重み係数，Ｋｉ：調整値，である。
【００２７】
例えば，満足度要因の値Ｆｉを待ち時間の符号を反転した値のみ（ｉ＝１）として，重み係数Ｗｉを値「１」，調整値Ｋｉに前回の満足度を用いるものとすれば，その計画において満足度の影響を一貫して与えることができる。ただし，この場合には，満足度が数値のオーダーとして本来の優先度（各オーダ（ロット）の納期等に応じて設定される）と同等の効果を持つため，本来の優先度が意味をなさなくなるといった問題を生じる。そのため，調整値Ｋｉの決定には注意が必要である。また，この場合には，生産計画スケジューリング装置Ａに重み係数Ｗｉ及び調整値Ｋｉを記憶させるためのパラメータテーブルを設ける必要が生じる。
【００２８】
固定的な調整値Ｋｉの扱いの難しさに対する対策として，現実にはネック資源において満足度が悪化しがちであるという事実に鑑み，前回の結果にしたがって，ジョブ毎に重み係数Ｗｉを設定可能とする方法が考えられる。具体的には，ジョブｊにおける満足度Ｓｊを下記式５により求める。
Ｓｊ＝Σ（Ｗｉ＊Ｆｉ＋Ｄｊ＊Ｋｉ）                              （５）
ただし，Ｄｊはジョブｊにおける調整値の配分係数である。例えばＤｊの値として，前回計画での待ち時間の割合を用いることによって，前回待ち時間の長かったジョブに対する調整を行うことが可能となる。この構成を実現するためには，Ｄｊを保持するための欄（フィールド）を待ち時間テーブル８（図１０）に設ける必要がある。
【００２９】
次に，生産ラインにおいて上記立案された生産計画に基づいて実際に生産が開始されたときの手順を説明する。
この場合は，各ジョブの実測による実績情報（開始日時，終了日時，進捗率）が外部から与えられ実績情報テーブル１０（図９参照）に記憶される。実績情報が与えられた状態で，再度計画を行う場合には，先ず計画日時は現実の日時に設定される。また，当然のことながら処理の最初に抽出される未割付ジョブリスト７からは，実績情報において完了しているジョブは除かれ，進捗中のジョブは未消化の部分（時間）が未割付ジョブリスト７に挙げられる。この状態で計画立案が開始される。ここでは，現実に着手されたジョブについては，計画上の待ち時間ではなく実際の待ち時間が算出され，待ち時間テーブル８に記憶される。
【００３０】
以下，図１８のフローチャートを参照して，割付機能１ａを実現する割付処理の手順を説明する。かかる手順は，図示しないハードディスクに記憶された処理プログラムをＣＰＵ及びその周辺機器からなる制御部１が実行することにより達成される。
ステップＳ１：  初期化を実行する。具体的には，初期満足度をリセット，つまり待ち時間テーブル８における各オーダの全てのジョブの待ち時間を値「０」に設定する。
ステップＳ２：生産指示テーブル２，製品マスタ３及び工程マスタ４の各データベースに記憶された情報を参照して，生産指示を達成するために実行すべき総てのジョブを抽出し，抽出されたジョブに関する情報を未割付ジョブリスト７（図７）に記憶させる。
【００３１】
ステップＳ３：割付可能な資源，すなわち現在ジョブが割り付いていない主資源に関し，未割付ジョブリスト７から割付対象のジョブを全て抽出し，割付対象ジョブテーブル７ａ（図１１〜図１７参照）に記憶させる。
ステップＳ４：割付対象ジョブテーブル７ａに割付対象のジョブがあるか否かを判別する。ここで，割付対象のジョブがある場合はステップＳ５に進み，ない場合はステップＳ１１に進む。
ステップＳ５：１つの資源について計画結果の満足度を加味した評価値を計算する（優先度調整手段）。設例でいえば，各ジョブについて発生した待ち時間を優先度に加えて（即ち，満足度を減算して）評価値を算出する。つまり，満足度が低い（待ち時間が長い）ジョブの優先度を底上げして評価値を高くする。
【００３２】
ステップＳ６：評価値に基づいて資源に割り付けるジョブを決定し，その結果を割付情報テーブル９（図８）に記憶させる。すなわち，同一の資源の割付対象となっているジョブが複数ある場合には，最も評価値の高いジョブを当該資源に対して割り付ける。
ステップＳ７：計画結果の満足度をオーダ毎に記憶させる。すなわち，オーダ毎に各ジョブの待ち時間の累計を算出し（満足度累計手段），この算出結果を待ち時間テーブル８（図１０）に記憶させる。これにより，満足度及びその累計が，符号が反転された形で待ち時間テーブル８に記憶されることになる。
【００３３】
ステップＳ８：上記ステップＳ７における割付結果に応じて割付対象ジョブテーブル７ａ及び未割付ジョブリスト７の内容を更新する。
ステップＳ９：ジョブの割付を試行していない主資源が他にあるか否かを判別する。ここで，ジョブの割付を試行していない主資源があれば上記ステップＳ５に戻り，なければステップＳ１０に進む。
ステップＳ１０：資源に割り付いたジョブの中で最も早く主資源を解放するジョブの完了日時に計画日時を設定する。また，資源に割り付いたジョブがない場合は，資源稼働カレンダにおける最も早い資源稼働開始日時に計画日時を設定する。本手順が終了するとステップＳ３に戻る。
ステップＳ１１：上記ステップＳ４にて割付対象ジョブがない場合，すなわち全てのジョブの割付が終了すると，最終の満足度に基づいて次回の計画立案における各オーダの初期満足度を求める。設例でいえば，各オーダの待ち時間の累計を１／２にして初期満足度を算出し，この初期満足度を優先度に加算したものを初期状態における各オーダの評価値として用いる。
【００３４】
このように，実施形態の生産計画スケジューリング装置は，各オーダについて発生した待ち時間を累計し，その累計結果に基づく初期満足度（≦０）を当該オーダの優先度から減算（即ち，初期満足度の絶対値を加算）して評価値を算出し，この評価値が高いオーダを優先的に各資源に割り付けるようにして，生産計画を立案する。したがって，第１工程のジョブから現在の割付対象のジョブまでの待ち時間の累計が長くなっているオーダほどそのジョブが割り付きやすくなるので，各オーダの優先度を割付結果の満足度を加味しながら割付を行うことが可能となる。
【実施例】
【００３５】
上記実施形態では，全ての資源において発生する満足度を累計し，それを用いて各オーダの評価値を調整する例を示したが，この場合には，生産ラインでいわゆるボトルネックとなっている資源を使用するオーダの満足度の累計値がそれ以外のオーダと比較して大きくなりすぎて適切に上記評価値を調整できなくなることがある。これを避けるために，資源マスタ５の各資源の属性値に待ち時間累積禁止フラグを追加し，ボトルネック資源について上記待ち時間累積禁止フラグを立てるものとする。この構成で，フラグの立ったボトルネック資源にジョブが割り付いたオーダについては待ち時間を累計しないものとすれば，ボトルネック資源にジョブが割り付き，満足度が大幅に悪化したオーダがそのジョブの後，他の資源に特別に早く割り付くことになる，といった不都合を防止することが可能となる。
【００３６】
また，ボトルネック資源の数が多い場合には，上記実施形態の構成において，ジョブが割り付いた時点にそのオーダの待ち時間の累計値をクリアすることも考えられる。これによって，待ち時間の影響が大きくなりすぎて本来の優先度の意味がなくなってしまうのを防止するとともに，待ち時間が長くなっているジョブはそれだけ割り付き易くなり，満足度が極端に悪化するのを避けることができる。
【００３７】
また，全てのオーダの待ち時間を短縮することは工程能力の向上や稼働時間の延長がない限り不可能であるため，特定のオーダについてのみ満足度を考慮して割付を行うことが考えられる。
この場合には，生産指示テーブル２に満足度マスクのフィールドを追加し，満足度（待ち時間）を考慮しないオーダについては満足度マスクを値「０」に，満足度を考慮するオーダについては値「１」にセットし，各オーダの評価値を下記式６により求めるものとすれば，特定のオーダについてのみ待ち時間を考慮して割付を行うことが可能となる。
評価値  ＝  満足度  ×  満足度マスク                                （６）
また，満足度を納期遅れ時間として，これにより次回計画における優先度の初期値を設定することも可能である。
【産業上の利用可能性】
【００３８】
本発明の情報処理装置は，いわゆる生産計画スケジューラに適用して産業上利用することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態に係る情報処理装置を含む生産計画スケジューラの機能ブロック図である。
【図２】同生産計画スケジューラに与えられる生産指示の一例を示すテーブル図である。
【図３】同生産計画スケジューラの製品マスタの一例を示すテーブル図である。
【図４】同生産計画スケジューラの工程マスタの一例を示すテーブル図である。
【図５】同生産計画スケジューラの資源マスタの一例を示すテーブル図である。
【図６】同生産計画スケジューラの資源稼働カレンダの一例を示すテーブル図である。
【図７】同生産計画スケジューラの未割付ジョブリストの一例を示すテーブル図である。
【図８】同生産計画スケジューラの割付情報テーブルの一例を示すテーブル図である。
【図９】同生産計画スケジューラの実績情報テーブルの一例を示すテーブル図である。
【図１０】同生産計画スケジューラの待ち時間テーブルの一例を示すテーブル図である。
【図１１】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１２】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１３】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１４】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１５】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１６】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１７】同生産計画スケジューラが用いる割付対象ジョブテーブルの一例を示すテーブル図である。
【図１８】割付の手順を示すフローチャートである。
【符号の説明】
【００４０】
１…制御部
１ａ…割付機能
２…生産指示テーブル
３…製品マスタ
４…工程マスタ
５…資源マスタ
６…資源稼働カレンダ
７…未割付ジョブリスト
８…待ち時間テーブル
９…割付情報テーブル
１０…実績情報テーブル
【図１】
2005092716.tif 000003
【図２】
2005092716.tif 000004
【図３】
2005092716.tif 000005
【図４】
2005092716.tif 000006
【図５】
2005092716.tif 000007
【図６】
2005092716.tif 000008
【図７】
2005092716.tif 000009
【図８】
2005092716.tif 000010
【図９】
2005092716.tif 000011
【図１０】
2005092716.tif 000012
【図１１】
2005092716.tif 000013
【図１２】
2005092716.tif 000014
【図１３】
2005092716.tif 000015
【図１４】
2005092716.tif 000016
【図１５】
2005092716.tif 000017
【図１６】
2005092716.tif 000018
【図１７】
2005092716.tif 000019
【図１８】
2005092716.tif 000020