(57)【要約】【課題】  実時間で最適な解を得ることが可能な生産・物流スケジュール作成装置を提供する。【解決手段】  生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、上記物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んで製品種ごとに状態方程式で構成した数式モデルを保持する数式モデル保持装置と、数式モデルに対して所定の評価関数を用いて最適化計算処理を行って生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有し、最適化計算処理と生産・物流シミュレータによるシミュレーションを組み合わせる処理を繰り返すことにより生産・物流プロセスにおける生産・物流スケジュールを作成する。【選択図】  図１
2007004391.tif 000002
【特許請求の範囲】
【請求項１】
生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、
前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、
前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有する生産・物流スケジュール作成装置であって、
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果から前記生産・物流プロセスにおける生産・物流スケジュールを作成するようにしたことを特徴とする生産・物流スケジュール作成装置。
【請求項２】
前記最適化計算処理によりフィードバックゲインを算出し、該フィードバックゲインと物流状態とを用いて物流指示を算出する場合に、フィードバックゲインと工程内製品種仕掛状態を表わす状態ベクトルとから、製品種の移動操作端に対する操作ベクトルを求めたのち、各移動操作端に対して、前記求めた操作ベクトルの中で正値の大きい操作量が得られる製品種順に、各製品種を移動可能な数だけ移動させるように操作することを特徴とする請求項１に記載の生産・物流スケジュール作成装置。
【請求項３】
前記所定の評価関数は、各工程における各製品種の処理優先度に応じて行列要素(要素)ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする請求項１又は２に記載の生産・物流スケジュール作成装置。
【請求項４】
各工程における前記製品種ごとの処理優先度に応じて重み付けを設定した評価行列の各行列要素を任意に変更する重み変更手段を具備することを特徴とする請求項３に記載の生産・物流スケジュール作成装置。
【請求項５】
生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、
前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、
前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有する生産・物流プロセス制御装置であって、
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果に基づいて生産・物流プロセスの制御を行うことを特徴とする生産・物流プロセス制御装置。
【請求項６】
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出する場合に、フィードバックゲインと工程内製品種仕掛状態を表わす状態ベクトルとから、製品種の移動操作端に対する操作ベクトルを求めたのち、各移動操作端に対して、前記求めた操作ベクトルの中で正値の大きい操作量が得られる製品種順に、各製品種を移動可能な数だけ移動させるように操作することを特徴とする請求項５に記載の生産・物流プロセス制御装置。
【請求項７】
前記所定の評価関数は、各工程における各製品種の処理優先度に応じて要素ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする請求項５又は６に記載の生産・物流プロセス制御装置。
【請求項８】
各工程における前記製品種ごとの処理優先度に応じて重み付けを設定した評価行列の各要素を任意に変更する重い変更手段を具備することを特徴とする請求項７に記載の生産・物流プロセス制御装置。
【請求項９】
生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、
前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、
前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有する生産・物流スケジュール作成装置により生産・物流スケジュールを作成する方法であって、
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果から前記生産・物流プロセスにおける生産・物流スケジュールを作成するようにしたことを特徴とする生産・物流スケジュール作成方法。
【請求項１０】
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出する場合に、フィードバックゲインと工程内製品種仕掛状態を表わす状態ベクトルとから、製品種の移動操作端に対する操作ベクトルを求めたのち、各移動操作端に対して、前記求めた操作ベクトルの中で正値の大きい操作量が得られる製品種順に、各製品種を移動可能な数だけ移動させるように操作することを特徴とする請求項９に記載の生産・物流スケジュール作成方法。
【請求項１１】
前記所定の評価関数は、各工程における各製品種の処理優先度に応じて要素ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする請求項９又は１０に記載の生産・物流スケジュール作成方法。
【請求項１２】
生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、
前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、
前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有する生産・物流プロセス制御装置により生産・物流プロセスを制御する方法であって、
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果に基づいて生産・物流プロセスの制御を行うようにしたことを特徴とする生産・物流プロセス制御方法。
【請求項１３】
前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出する場合に、フィードバックゲインと工程内製品種仕掛状態を表わす状態ベクトルとから、製品種の移動操作端に対する操作ベクトルを求めたのち、各移動操作端に対して、前記求めた操作ベクトルの中で正値の大きい操作量が得られる製品種順に、各製品種を移動可能な数だけ移動させるように操作することを特徴とする請求項１２に記載の生産・物流プロセス制御方法。
【請求項１４】
前記所定の評価関数は、各工程における各製品種の処理優先度に応じて要素ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする請求項１２又は１３に記載の生産・物流プロセス制御方法。
【請求項１５】
請求項９〜１１のいずれか１項に記載の生産・物流スケジュール作成方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１２〜１４のいずれか１項に記載の生産・物流プロセス制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１７】
請求項１５又は１６に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は生産・物流スケジュール作成装置及び方法、生産・物流プロセス制御装置及び方法、コンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体に関し、特に、操作者の熟練度に依存することなく対象生産システムのスケジュールを正確に作成するような場合に用いて好適なものである。
【背景技術】
【０００２】
従来、見込み生産を行わない受注生産の形態では、受注した品目を製造オーダーに分割し、納期遵守率や設備稼働率、中間在庫量、コスト等の観点を考慮して生産・物流スケジュールを作成している。上記生産・物流スケジュールを作成する手法として、技術的に大別すると２つの手法が用いられている。
【０００３】
すなわち、第１の手法としては、例えば、特許文献１の「生産計画評価方法及びシステム」に開示されているように、コンピュータ上に構築した工場を模したシミュレーション上で、実機器と同じインタフェースから取得した情報を使用して実機器の稼動を予測し、稼動予測に基づいて、実機器より速い速度で仮想的な生産を行い、仮想的な生産の過程及び結果を用いて、精度の高い指標を提示することによって、生産計画の評価及び選択を可能にする手法である。
【０００４】
また、第２の手法としては、特許文献２の「物流計画作成装置」にて開示されているように、線形計画法、数理計画法等のように、最適性が保証される手法に基づいてスケジュールを作成する手法である。
【０００５】
【特許文献１】特開２００２−３６６２１９号公報
【特許文献２】特開２０００−１７２７４５号公報
【非特許文献１】「数値解析手法による制御系設計」、安藤和昭、他編著、計測自動制御学会発行、pp.126-130、平成５年初版第２刷
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に記載の「生産計画評価方法及びシステム」に開示されているように、シミュレータを用いて生産・物流スケジュールを作成する手法は、満足できる結果が得られるまでには、（１）条件を種々に変えながらシミュレーションを行い、その結果の評価を何回も繰返し行う必要があった。したがって、（２）大規模工場では生産・物流スケジュールを作成するのに多くの時間がかかってしまう問題点があった。また、（３）高精度な生産・物流スケジュールを得るためには、シミュレーション・ルールを細かく設定しなければならない問題点があった。
【０００７】
また、上記特許文献２の「物流計画作成装置」にて開示されているように、線形計画法、数理計画法等のように、最適性が保証される手法に基づいてスケジュールを作成する手法の場合には、（１）生産・物流スケジュールを作成する規模が大きくなると、実用的な時間内に解くことが困難になってしまう問題点があった。また、（２）数式で記述できない制約や条件に起因する誤差が生じるため、得られた生産・物流スケジュールが実行可能であるかどうかは保証されていなかった。
【０００８】
本発明は上述の問題点に鑑みてなされたものであり、シミュレーションを繰り返し行うことなく最適な生産・物流シミュレーション結果を得ることができるようにして、スケジュール作成対象の生産・物流プロセスで実際に使用可能であることが保証された生産・物流スケジュールを高速に、且つ高精度に作成できるようにすることと、さらには、製品種や工程ごとの処理優先順を考慮した、より精度の高いスケジュール作成を目的とする。
【課題を解決するための手段】
【０００９】
本発明の生産・物流スケジュール作成装置は、生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有し、前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果から前記生産・物流プロセスにおける生産・物流スケジュールを作成するようにした点に特徴を有し、また、前記所定の評価関数は、各工程における各製品種の処理優先度に応じて各行列要素（すなわち要素）ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする。
本発明の生産・物流プロセス制御装置は、生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有し、前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果に基づいて生産・物流プロセスの制御を行う点に特徴を有し、また、前記所定の評価関数は、各工程における各製品種の処理優先度に応じて各要素ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする。
本発明の生産・物流スケジュール作成方法は、生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有する生産・物流スケジュール作成装置により生産・物流スケジュールを作成する方法であって、前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果から前記生産・物流プロセスにおける生産・物流スケジュールを作成するようにした点に特徴を有し、また、前記所定の評価関数は、各工程における各製品種の処理優先度に応じて各要素ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする。
本発明の生産・物流プロセス制御方法は、生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬する、製品種ごとにペトリネットモデルを用いて構成した離散系の生産・物流シミュレータと、前記生産・物流プロセスの物流状態と物流制約とを、着目している物流のスケジュールを作成するのに係わる情報を取り込んだ数式モデルで表現し、製品種ごとに処理時間に比例したきざみ時間遅れに従って表わされる遷移行列と接続行列とを用いた状態方程式で構成した前記数式モデルを保持する数式モデル保持装置と、前記数式モデルに対して所定の評価関数を用いて最適化計算処理を行って前記生産・物流シミュレータに対する物流指示を算出する最適化計算装置とを有する生産・物流プロセス制御装置により生産・物流プロセスを制御する方法であって、前記最適化計算処理によりフィードバックゲインを算出し、そのフィードバックゲインと物流状態とを用いて物流指示を算出して前記生産・物流シミュレータに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返すことにより得られたシミュレーション結果に基づいて生産・物流プロセスの制御を行うようにした点に特徴を有し、また、前記所定の評価関数は、各工程における各製品種の処理優先度に応じて各要素ごとに重み付けを設定した評価行列を用いて表わされる評価関数であることを特徴とする。
本発明のコンピュータプログラムは、前記本発明の生産・物流スケジュール作成方法又は前記本発明の生産・物流プロセス制御方法をコンピュータに実行させる点に特徴を有する。
本発明のコンピュータ読み取り可能な記録媒体は、前記本発明のコンピュータプログラムを記録した点に特徴を有する。
【発明の効果】
【００１０】
本発明によれば、シミュレーションを実行中に物流指示が必要な事象が発生するたびに、シミュレータからシミュレーション現時点での物流状態及び物流制約の情報を検出し、前記検出した検出情報と予め定めた評価指標を元に最適化手法によって最適物流指示を計算し、前記計算結果に基づいて以後のシミュレーションを進め、次に物流指示が必要な事象が発生した時点で最適物流指示を再度計算することを繰り返し行うようにしたので、シミュレーション自体は一度行うだけで最適物流指示を得ることができる。また、シミュレータと、数式モデルと、最適化装置とを連動させて最適物流指示を計算し、前記計算結果のシミュレーションを行ってスケジュールを作成するようにしたので、物流制約条件が複雑であっても実行可能なスケジュールを作成することができる。また、所望の評価指標を最良にするスケジュールを作成することができるとともに、計算時間を短縮して実用的な時間内にスケジュールを作成することができる。これらにより、（１）最適性と実行可能性の両方を確保できる、（２）対象とする生産・物流プロセスの状態に応じたスケジュールを作成する際の手間及び時間を大幅に削減することができる、（３）スケジュールを作成する対象の規模が大きい場合においても、正確な生産・物流スケジュールを高速に、且つ高精度に作成することが可能となる、（４）シミュレータで製品種ごとに区別した取り扱いを行うことや最適化計算に用いる数式モデルを製品種ごとに作成することにより製品種や工程ごとの処理優先順を考慮したより精度の高いスケジュールを作成することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の好適な実施形態について説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態を示し、物流スケジュール作成装置の一例を説明するブロック図である。本実施形態の物流スケジュール作成装置は、物流シミュレータ１ａを備えたシミュレーション制御部１、最適化計算装置２等によって構成されている。
【００１２】
本実施形態では、物流シミュレータ１ａは生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬したシミュレータ、いわば工場を模擬した大型のシミュレータであり、本実施形態においては、ペトリネットモデルを用いてシミュレータを構築するもので、事象（シミュレータのイベント）毎に物を動かす離散系として構成されている。
【００１３】
また、上記物流シミュレータ１ａに対応させて数学モデル（数式モデル）３が構成されている。本実施形態においては、生産・物流プロセスの物流状態及び物流制約の中から、作成する物流スケジュールに関連する情報を取り込んで、下式（１）に示すような状態方程式を用いて上記数式モデル３が作成されている。上記数式モデル３は、半導体記憶手段等により構成される数式モデル保持手段（図示せず）によって保持されている。
Ｍ(k+1) ＝ａ・Ｍ(k) ＋ｂ・ｕ(k) ・・・（１）
すなわち、離散化したある時刻k において各プレースに存在するトークンの数を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各トランジション発火の有無を"１"及び"０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1 における状態ベクトルＭ(k+1) は、遷移行列ａ、接続行列ｂを用いて上式（１）で表わすことができる。
【００１４】
最適化計算装置２では、上記数式モデル３に対して最適化計算処理を行い、フィードバックゲインＫを算出するようにしている。上記最適化計算装置２によって行われる最適化計算は線形二次（ＬＱ）制御を利用するものであり、下式（イ）に示すような評価関数Ｓを用いて行われる。
Ｓ＝Σ｛Ｍ'ＱＭ＋ｕ'Ｒｕ｝ ・・・（イ）
評価関数Ｓにおいて、Ｑ，Ｒは制御目的にあわせて設定された適当な行列であり、Ｍ'，ｕ'は、それぞれ状態ベクトルＭ、操作ベクトルｕの転置ベクトルである。そして、評価関数Ｓが最小となるように制御することを考えれば、
ｕ(k) ＝−Ｋ・Ｍ(k) ・・・（ロ）
とした状態フィードバック制御を行うフィードバックゲインＫを最適制御理論より求めることができる。
【００１５】
シミュレーション制御部１の最適制御方策部１ｂでは、最適化計算装置２で算出されるフィードバックゲインＫと物流状態（状態ベクトルＭ）とを用いて物流指示（操作ベクトルｕ）を算出して物流シミュレータ１ａに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返す。そして、これにより得られたシミュレーション結果４から生産・物流プロセスにおける物流スケジュールを作成する。
【００１６】
以下に、第１の実施形態の具体例を、図２〜５を参照しながら説明する。図２に示したように、第１に、生産・物流プロセスのペトリネットモデルとして、処理時間Ｔpを入力したプレースで各工程を表したペトリネットモデルを製品種ごとに構築する。そして、構築したペトリネットモデルの各プレースの処理時間Ｔpに比例したきざみ時間遅れｎpに従って表される遷移行列ａと接続行列ｂとを算出し、これら２つの行列ａ，ｂを用いて状態方程式を作成する（ステップＳ７）。
【００１７】
第２に、上記ステップＳ７で作成した状態方程式と、設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求める（ステップＳ８）。
【００１８】
第３に、この求めたフィードバックゲイン行列Ｋと工程内製品種仕掛状態を表す状態ベクトルＭ(k) とから、製品種の移動操作端に対する操作ベクトルｕ(k) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品種順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行する（ステップＳ９）。
【００１９】
図３は、図２に示したステップＳ７の処理、すなわち、生産・物流プロセスのペトリネットモデルとして、処理時間を入力したプレースで各工程を表したペトリネットモデルを製品種ごとに構築し、製品種ごとに各工程でのきざみ時間遅れを表した遷移行列ａと接続行列ｂとを算出するための処理手順の例を示すフローチャートである。
【００２０】
すなわち、まず離散きざみ時間ΔＴを入力し（ステップＳ７０１）、次に製品種ごとに全ての処理工程と処理時間Ｔpとを入力する（ステップＳ７０２）。そして、処理工程ごとに処理時間Ｔpをきざみ時間ΔＴで除して整数化することにより上記各処理工程のきざみ時間遅れｎpを求め（ステップＳ７０３、Ｓ７０４）、そのきざみ時間遅れｎpに従って、全処理工程の製品種ごとの遷移行列ａと接続行列ｂとを算出する（ステップＳ７０５）。
【００２１】
そして、全ての製品種について遷移行列ａと接続行列ｂとを算出するまでステップＳ７０６からステップＳ７０２の処理に戻り、以上の処理を繰り返して行う。なお、離散きざみ時間ΔＴは、各製品種各工程処理時間の最大公約数をもって定義するのが最も効率的であるが、目的とする制御精度を勘案して適宜設定すればよい。
【００２２】
図４は、図２に示したステップＳ８の処理、すなわち、上記のようにして求めた遷移行列ａ及び接続行列ｂから成る状態方程式と設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求めるための処理手順の例を示すフローチャートである。
【００２３】
すなわち、まず製品種ごとにペトリネットモデルの各プレースの処理時間Ｔpに比例したきざみ時間遅れｎpを表した遷移行列ａと接続行列ｂとを最適化計算装置２に入力するとともに（ステップＳ８０１）、評価関数を表す行列Ｑ，Ｒを入力する（ステップＳ８０２）。そして、上記入力した遷移行列ａ、接続行列ｂ及び評価行列Ｑ，Ｒからフィードバックゲイン行列Ｋを計算する（ステップＳ８０３）。この計算を全ての製品種について完了するまでステップＳ８０４からステップＳ８０１の処理に戻り、以上の処理を繰り返して行う。なお、全製品種についてペトリネットモデルの各プレースの処理時間Ｔpに比例したきざみ時間遅れｎpを表した遷移行列ａと接続行列ｂとを最適化計算装置２に入力し、全製品種を一括で計算するようにしてもよい。
【００２４】
図５は、図２に示したステップＳ９の処理、すなわち、上述のようにして計算したフィードバックゲイン行列Ｋと工程内製品種仕掛状態を表す状態ベクトルＭ(K) とから、製品種の移動操作端に対する操作ベクトルｕ(K) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品種順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行するための処理手順の例を示すフローチャートである。
【００２５】
すなわち、まずペトリネットモデルの初期状態における状態ベクトルＭ(0) を入力するとともに、投入予定の全製品種を投入プレースに入力し、時刻kの値を０に初期化したのち（ステップＳ９０１）、現時点（時刻：k）における全製品種の状態ベクトルＭ(k) を入力する（ステップＳ９０２）。
【００２６】
そして、上述の方法を用いて計算されたフィードバックゲイン行列Ｋと上記入力した状態ベクトルＭ(k) とをかけて製品種ごとに操作ベクトルｕ(k) を計算し（ステップＳ９０３）、次に移動操作端ごとに、正値で大きい操作量が得られた製品種順に、移動可能な数だけ移動操作を実行する（ステップＳ９０４）。
【００２７】
次に、時刻を進めたのち（ステップＳ９０５）、各ステップのシミュレーションが終了したかどうかを判断し（ステップＳ９０６）、終了していないときはステップＳ９０２の処理に戻る。一方、終了したときは、シミュレーション結果をもって生産スケジュールとする（ステップＳ９０７）。
【００２８】
次に、第１の実施形態の作用を以下に示す例に即して説明する。ここでは、異なる複数の工程で複数の製品種を処理して製造するプロセスの例として、２種類の製品種、すなわち製品種Ａと製品種Ｂとを４つの工程で処理して製造する場合を考え、各製品種に対する各工程の処理時間が表１のように与えられているものとする。
【００２９】
【表１】
2007004391.tif 000003
【００３０】
また、離散きざみ時間ΔＴを５分として両製品種Ａ，Ｂを製造するプロセスのペトリネットモデルを示したものが、図６である。上記した表１は、処理時間を離散きざみ時間ΔＴ（＝５分）で除して得られた各工程1,2,3,4 のきざみ時間遅れを表している。この例では、製品種Ａについては工程1,2,3,4 がそれぞれ2,3,1,2 のきざみ時間遅れを有し、製品種Ｂについては工程1,2,3,4 がそれぞれ2,2,0,2 のきざみ時間遅れを有している。この例において製品種Ａ，Ｂは、移動操作端T1（以降、移動操作端をトランジションとも称する）を経由して投入され、トランジションT6を経由して次工程或いは倉庫等へ搬出される。すなわち、製品種ＡはプレースP1,P2,P3,P4 を通り、製品種ＢはプレースP1,P2,P4を通る。
【００３１】
上述のように、離散化したある時刻kにおいて各プレースに存在するトークンの数を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各トランジション発火の有無を"１"及び"０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1における状態ベクトルＭ(k+1) は、遷移行列ａ、接続行列ｂを用いて上式（１）で表わすことができる。状態方程式（１）上の移動操作端（トランジション）と、実プロセスの移動操作端とは一致している。すなわち、操作ベクトルｕ(k) の信号は、実プロセスの操作信号である。
【００３２】
例えば、製品種Ａに対してプレースP1,P2,P3,P4 に存在するトークンの数を並べたベクトルをＭ、トランジションT1,T2,T3,T5,T6 の発火の有無を"１"及び"０"で表した操作ベクトルをｕとすれば、以下の式（２）、（３）で示される遷移行列ａと接続行列ｂとを用いて、ベクトルＭ(k) からベクトルＭ(k+1) への状態変化を表現することができる。
【００３３】
【数１】
2007004391.tif 000004
【００３４】
ただし、上記式（２）において、列方向の１桁の番号はプレース番号を示し、行方向の２桁の番号のうち、左側の数字はプレース番号を示し、右側の数字は各プレースに存在する状態（きざみ時間遅れ）の番号を示している。また、上記式（３）において、列方向の１桁の番号はトランジション番号を示し、行方向の２桁の番号のうち、左側の数字はプレース番号を示し、右側の数字は各プレースに存在する状態（きざみ時間遅れ）の番号を示している。
【００３５】
上記遷移行列ａを表現するときの一般形を、次の式（４）に示す。この式（４）から明らかなように、ある工程に存在する状態数がｎのとき、その工程に関する部分の小行列は、式（４）中に示したようなｎ×ｎの正方行列で表される。そして、全工程の遷移を表した遷移行列ａは、上記各工程に関する小行列を行方向及び列方向の番号に対応した適当な位置に配置するとともに、その他の要素を全て"０"とすることによって表される。
【００３６】
【数２】
2007004391.tif 000005
【００３７】
また、上記接続行列ｂを表現するときの一般形を、次の式（５）に示す。すなわち、ある工程に存在する状態数がｎのとき、その工程に関する部分の小行列は、式（５）に示すようなｎ×２の行列で表される。(1,1) 要素の数"１"は、該当するプレースにトークンが入力されることを示し、(n,2) 要素の数"−１"は、該当するプレースからトークンが出力されることを示している。そして、全工程に関する接続行列ｂは、上記各工程の小行列を行方向及び列方向の番号に対応した適当な位置に配置するとともに、その他の要素を全て"０"とすることによって表される。
【００３８】
【数３】
2007004391.tif 000006
【００３９】
製品種Ａについて上記式（２）、（３）で示される遷移行列ａと接続行列ｂとを用いてベクトルＭ(k) からベクトルＭ(k+1) への状態変化を表現したのと同様のことが製品種Ｂについても表現できる。
【００４０】
このように、製品種ごとに、処理時間を入力したプレースを持つペトリネットモデルを用い、製品種ごとに各工程でのきざみ時間遅れを表した遷移行列ａと接続行列ｂとで各工程を表わすことにより、離散時刻kが１進むたびに複数の離散きざみ時間を要するプレースでトークンが移動していくことを表現でき、その結果、離散時間系の最適制御理論を適用できる形にすることができる。
【００４１】
この場合、１つのプレースに複数単位の処理時間（離散きざみ時間）を割り当てるようにしてペトリネットモデルを構築し、遷移行列ａ及び接続行列ｂの２つの行列式だけで物流モデルを表現できるようにしているので、１つの離散きざみ時間ごとに１つのプレースを設けた制御用のペトリネットモデルを再構築しなくても済む。また、上記１つの離散きざみ時間ごとにプレースを設けたペトリネットモデルに比べて制御端の数を少なくすることができ、実際のプロセスに使いやすいモデルとすることができる。
【００４２】
これにより、制御の目的にあわせて適当な行列Ｑ，Ｒを設定して、評価関数（イ）が最小になるように制御することを考えれば、上式（ロ）とした状態フィードバック制御を行うフィードバックゲイン行列Ｋを最適制御理論より求めることができる。フィードバックゲイン行列Ｋの計算法としては、例えば非特許文献１に記載されたいくつかの方法がある。
【００４３】
また、評価行列Ｑ，Ｒは、それぞれプレースの数及びトランジションの数の次元を有する正方行列で、それぞれ制御の過渡特性とトランジション操作の入力エネルギーとを評価関数として表すためのものであり、制御目的に応じて適宜設定すればよい。例えば、過渡特性を重視する場合は、大きな数値をもつ行列Ｑを設定すればよい。また、操作に要する入力エネルギーを小さく抑えたい場合は、大きな数値をもつ行列Ｒを設定すればよい。
【００４４】
次に、第１の一実施形態の具体例を、モデル構築、制御則構築、シミュレーション、実施結果例に分けて以下に説明する。
〔モデル構築〕
図７は、複数工程よりなる製造プロセスのペトリネットモデルの一例を示したものであり、離散きざみ時間ΔＴは５分に設定してある。この製造プロセスは、工程1,2,3,4 からなる前処理工程と工程5,6 からなる後処理工程とから構成され、プレースP1（投入プレース）で示した前処理工程入側バッファと、プレースP6,P8 で示した後処理工程入側バッファと、プレースP10 で示した搬出用プレースとを具備している。
【００４５】
この製造プロセスでは、前処理工程１又は２で処理された製品種は後処理工程５で処理され、また、前処理工程３又は４で処理された製品種は後処理工程６で処理されるが、製品種によっては前処理工程１〜４と後処理工程５〜６の複数の組合せのいずれかで処理し得るものがあるため、全体で１５の製品種類がある。次の表２は、それぞれの製品種がどの前処理工程と後処理工程との組合せで処理可能かを示したものである。
【００４６】
【表２】
2007004391.tif 000007
【００４７】
図７において、プレースP11,P12,P13,P14,P15,P16 は、それぞれ工程１〜６の処理容量を制限するための仮想プレースであり、これらの仮想プレースに初期設定された容量設定用仮想トークンの数により、各処理工程で同時に処理できる製品種の数を制限している。例えば、工程１は、プレースP2 から構成されるとともに、仮想プレースP11 に初期状態として１個の容量設定用仮想トークンが置かれることにより、この工程１での処理容量が１に設定されている。
【００４８】
すなわち、工程１に製品種がなかった状態からトランジションT2 を経由して製品種が入力されるときに、仮想プレースP11 に置かれた容量設定用仮想トークンが同時に入力され、製品種を表すトークンがプレースP1 からプレースP2 に移動する。その後、そのトークンがトランジションT3 を経由してプレースP6 に移動すると同時に容量設定用仮想トークンがプレースP11 に復帰して、再び工程１が待ち状態になる。
【００４９】
このように、複数のプレースで表される工程に対して仮想プレースを適宜利用することにより、各工程の処理容量を設定して製造プロセスのペトリネットモデルを構築することは周知の手法である。
【００５０】
なお、この図７の例は、工程１から工程６までの仮想プレースP11,P12,P13,P14,P15,P16 の容量が全て１のプロセスである。また、製品種入力用のプレースP1 と製品種出力用のプレースP10 は最大２００個の製品種を収容可能で、プレースP6,P8 のバッファはともに最大２０個の製品種を収容可能と設定してある。
【００５１】
図８に実線で示された部分は、表２に記載した製品種No.1に対するペトリネットモデルを示したものである。同様に、全ての製品種に対してもペトリネットモデルを構築することにより、図２のフローチャートに示したモデル構築が行われる。
【００５２】
〔制御則構築〕
引き続き製品種No.1を例にとり、フィードバックゲイン行列Ｋを求める過程を説明する。式（１）の状態方程式における遷移行列ａは、図８に示された製品種No.1のペトリネットモデルに対しては、次の式（６）で表現されるサイズ８×８の行列として求められる。ただし、式（６）において、列方向の番号はプレース番号を示し、行方向の番号のうち、下１桁以外の数字はプレース番号を示し、下１桁の数字は各プレースに存在する状態（きざみ時間遅れ）の番号を示している。
【００５３】
【数４】
2007004391.tif 000008
【００５４】
また、式（１）の状態方程式における接続行列ｂは、図８に示された製品種No.1のペトリネットモデルに対しては、次の式（７）で表現されるサイズ８×６の行列として求められる。ただし、式（７）において、列方向の番号はトランジション番号を示し、行方向の番号のうち、下１桁以外の数字はプレース番号を示し、下１桁の数字は各プレースに存在する状態の番号を示している。
【００５５】
【数５】
2007004391.tif 000009
【００５６】
また、式（イ）で表される評価関数中における行列Ｑ，Ｒは、上述したように、それぞれ各工程のきざみ時間遅れ数及びトランジションの数の次元を有する正方行列であるから、それぞれペトリネットモデルの製品種ごとに設定される。
【００５７】
製品種No.1に対しては、この製造プロセスにおける標準的な値として、
Ｑ＝20×Ｉ(8) ・・・（８）
及び
Ｒ＝Ｉ(6) ・・・（９）
を設定した。ただし、式（８）、（９）においてＩ(n) はｎ次の単位行列である。
【００５８】
このようにして遷移行列ａ及び接続行列ｂと、評価関数を定義する行列Ｑ，Ｒとが定まれば、離散時間系における最適制御理論によりフィードバックゲイン行列Ｋを求めることができる。
【００５９】
すなわち、代数リッカチ方程式（１０）
P＝ATPA−ATPB(BTPB+R)-1BTPA+Q ・・・（１０）
を満足する解Pを求めれば、フィードバックゲイン行列Ｋは、
Ｋ＝−(BTPB+R)-1BTPA ・・・（１１）
により計算することができる。ここで、(BTPB+R)-1は行列(BTPB+R)の逆行列である。なお、リッカチ方程式の解法は、上述した参考文献にも詳述されているように既知の方法が多々知られている。
【００６０】
このようにして計算した製品種No.1のペトリネットモデルに対するフィードバックゲイン行列Ｋは、次の式（１２）で与えられる。ただし、この式（１２）において、列方向の番号及び行方向の番号は、それぞれ式（７）における行方向の番号及び列方向の番号に対応するものである。
【００６１】
【数６】
2007004391.tif 000010
【００６２】
同様にして全ての製品種に対してもフィードバックゲイン行列Ｋを計算することにより、図２のフローチャートに示した制御則の構築が行われる。
【００６３】
〔シミュレーション〕
次に、シミュレーションについて、図５に示したフローチャートに沿って説明する。まず、ペトリネットモデルの初期状態における状態ベクトルＭ(0) を入力するとともに、投入予定の全製品種を投入プレースに入力し、時刻kの値を０に初期化したのち（ステップＳ９０１）、現時点（時刻：k）における全製品種の状態ベクトルを入力し（ステップＳ９０２）、新規投入製品種を製品種ごとに入力して状態ベクトルに加えると、現時点における最終的な状態ベクトルＭ(k) が定まる。さらに、製品種ごとに、フィードバックゲイン行列Ｋと状態ベクトルＭ(k) とをかければ、操作ベクトルｕ(k) が計算できる（ステップＳ９０３）。
【００６４】
例えば、ある時刻kにおいて製品種No.1のトークンがプレースP6 のみに１個あり、さらに同品種の新規投入製品種は無かったとすると、製品種No.1に対する最終的な状態ベクトルＭ(k) は、
Ｍ(k) ＝ [ 0 0 0 1 0 0 0 0 ]′ ・・・（１３）
となる。ただし、式（１３）において記号′は転置ベクトルであることを表す。また、式（１３）の各要素は、それぞれ各プレースP1,P2,P6,P7,P10 の状態番号11,21,22,61,71,72,73,101に対応する製品種No.1のトークン数を表す。
【００６５】
次に、式（１２）で与えられたフィードバックゲイン行列Ｋと式（１３）の状態ベクトルＭ(k) とを式（ロ）に従ってかければ、操作ベクトルｕ(k) は、
ｕ(k) ＝ [-0.249 -0.255 -0.3430 0.300  0.002  0.004 ]′ ・・・（１４）
と求められる。ただし、式（１４）の各要素は、それぞれトランジションT1,T2,T3,T10,T11,T14 に対する操作量である。
【００６６】
同様にして全ての製品種に対しても操作ベクトルｕ(k) を求める。そして、移動操作端すなわちトランジションごとに、正値で大きい操作量が得られた製品種順に、移動可能な数だけ移動操作を実行する（ステップＳ９０４）。
【００６７】
例えば、時刻kにおいて製品種No.1のトークンがプレースP6 に１個あり、このとき同時に製品種No.8のトークンもプレースP6 に１個あり、他の製品種のトークンはプレースP6 にはなかったとする。この場合、トランジションT10 に関して製品種No.1のトークンに対する操作量は、式（１４）より0.300であった。一方、製品種No.8のトークンに対する操作量を同様にして計算する。製品種No.8の遷移行列ａを式（１５）、接続行列ｂを（１６）、行列Ｑ，Ｒを（１７）、（１８）を示す。フィードバックゲイン行列Ｋは次の式（１９）のようになり、トランジションT10 の操作量は0.361となる。
【００６８】
【数７】
2007004391.tif 000011
【００６９】
【数８】
2007004391.tif 000012
【００７０】
【数９】
2007004391.tif 000013
【００７１】
【数１０】
2007004391.tif 000014
【００７２】
【数１１】
2007004391.tif 000015
【００７３】
ここで、トランジションT10 は、移動操作すなわち発火によって１個のトークンをプレースP7 に移動させることができるものであるとする。この場合、時刻kにおいては仮想プレースP15 に容量設定用仮想トークンが１個存在しているため、結局製品種No.8のトークンに対してのみトランジションT10 を発火させることが可能になる。また、製品種No.8のトークンは時刻kにおいて他のプレースには存在していなかったから、操作量の正負に関わらずトランジションT10 以外のトランジションは発火できない。
【００７４】
したがって、製品種No.8に対する最終的な操作ベクトルｕ(k) は、
ｕ(k) ＝  [ 0 0 0 0 0 1 0 0 0 0 ]′・・・（２０）
となり、トランジションT10 のみが発火する。その結果、製品種No.8に対する時刻kにおける状態ベクトルが
Ｍ(k) ＝ [ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 ]′ ・・・（２１）
から時刻k+1における状態ベクトルへ
Ｍ(k+1) ＝  [ 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 ]′ ・・・（２２）
と更新される。
【００７５】
同様の計算を全製品種、全トランジションについて行えば、全製品種に対する時刻k+1における状態ベクトルＭ(k+1) が計算されることになる。その後は、時間を進めたのち（ステップＳ９０５）、各ステップのシミュレーションが終了したかどうかを判断し（ステップＳ９０６）、終了していないときはステップＳ９０２の処理に戻る。一方、終了したときは、そのシミュレーション結果をもって生産スケジュールとする（ステップＳ９０７）。
【００７６】
上述したように、本実施形態においては、１つのプレースに複数のきざみ時間遅れを含むようにしてペトリネットモデルを構築し、遷移行列及び接続行列の２つの行列式だけで数式モデルを表現できるようにしたので、１つのきざみ時間遅れごとに１つのプレースを設けたペトリネットモデルを再構築しなくても済む。また、１つのきざみ時間遅れごとに１つのプレースを設けたペトリネットモデルに比べて制御端の数を少なくすることができ、最適化計算のための数式モデルを最小化し、計算時間を短縮することが可能となり、実プロセスに使いやすいものとすることができる。さらに、シミュレータで製品種ごとに区別した取り扱いを行うことや最適化計算に用いる数式モデルを製品種ごとに作成することにより製品種や工程ごとの処理優先順を考慮したより精度の高いスケジュールを作成することが可能となる。
【００７７】
なお、本実施形態では、ペトリネットモデルを例に挙げて説明したが、その他のグラフモデル、例えば有向グラフや無向グラフに本発明を適用することも可能である。例えば有向グラフでは、上述したペトリネットモデルにおけるプレースは点で表現され、トランジションは矢印付きの線で表現される。矢印付きの線は、点から点へ製品種すなわちトークンを移動させる移動操作端であり、移動路の役目をする。また、矢印は、線から点、或いは、点から線へトークンが移動する方向を示すものである。
【００７８】
また、ペトリネットモデルでは、各工程内に設けられている仮想プレースに初期設定された容量設定用仮想トークンの数により、各処理工程で同時に処理できる製品種の数を制限していたが、通常のグラフモデルでは仮想プレースは存在せず、各工程内における処理容量をソフトウェア上で制御される。
【００７９】
このような特徴を有する通常のグラフモデルに本発明を適用する場合も、一連の動作は上述したペトリネットモデルにおける動作と同様であり、ここでは、その詳細な説明は省略する。
【００８０】
（第２の実施形態）
本実施形態では、評価行列Ｑ，Ｒを構成する個々の要素ごとに重み付けを変えて任意の値を設定することにより、ペトリネットモデル中の個々のプレース或いはトランジションをそれぞれ独立して制御することができるようにしている。これらにより、例えば、ある処理工程で処理する複数の製品種のうち、任意の製品種をその他の製品種に対して常に優先して処理するようにすることと同時に、そのような製造プロセスの物流制御及びスケジュール作成を自動的に最適化することができる。
【００８１】
次に、上述のように、設定する評価行列Ｑ，Ｒの重み付けを任意に変えることにより、複数の製品種の処理順序を任意に変更する場合の具体例を以下に説明する。なお、以下では、プレース数の次元を有する評価行列Ｑの重み付けを変える場合の例について説明する。
【００８２】
図９（ａ）は、本実施形態の物流制御方法を適用したペトリネットモデルの一部の例を示す図である。このペトリネットモデルの例において、製品種は２種類あり、それらをカラー１、カラー２とする。また、それぞれのカラー１、２に対して各１つのトークンがあるものとし、それらをトークンＡ、トークンＢとする。
【００８３】
上記カラー１、カラー２ともトークンは、プレースＰ１及びトランジションＴ１を通ってプレースＰ２に入り、右方向へ通過していくものとする。ここで、プレースＰ１の処理容量は２、プレース２の処理容量は１であるとする。また、カラー１に関して、プレースＰ１でかかる処理時間は２単位時間、プレースＰ２でかかる処理時間は３単位時間であり、カラー２に関して、プレースＰ１でかかる処理時間は２単位時間、プレースＰ２でかかる処理時間は２単位時間であるとする。
【００８４】
次式（２３）（２４）は、それぞれカラー１、カラー２に対する状態方程式であり、上記した（１）の状態方程式を各カラーごとに詳細に示したものである。
【００８５】
【数１２】
2007004391.tif 000016
【００８６】
この式（２３）（２４）において、各プレースＰ１、Ｐ２の状態を表す状態ベクトルＭ、トランジションＴ１への操作を表す操作ベクトルｕ、遷移行列ａ及び接続行列ｂに付した下付の添数字は、カラー番号を示している。また、上記状態ベクトルＭは、各プレースＰ１、Ｐ２における処理時間に比例した数だけ要素を有している。例えば、式（２３）に示すカラー１の状態ベクトルＭ（ｋ）について説明すると、プレースＰ１では処理時間が２単位時間であるので、Ｍ1（ｋ）place1.1、Ｍ1（ｋ）place1.2、という２つの状態を表す要素を有し、プレースＰ２では処理時間が３単位時間であるので、Ｍ1（ｋ）place2.1、Ｍ1（ｋ）place2.2、Ｍ1（ｋ）place2.3という３つの状態を表す要素を有している。
【００８７】
このようなペトリネットモデルにおいて、通常はカラー１のトークンＡがカラー２のトークンＢよりも優先してプレースＰ１から送り出され、プレースＰ２に入るものとする。評価行列Ｑに対して何ら重い付けをしない場合には、構築したペトリネットモデルの形によってどのカラーが優先されるかが決まっている。図９（ｂ）はこの場合の書くトークンＡ、Ｂの流れを示した図である。
【００８８】
この図９（ｂ）に示すように、カラー１のトークンＡは、１単位時間目にプレースＰ１に入り、そこで２単位時間留まる。また、カラー２のトークンＢは、１単位時間目にプレースＰ１に入り、そこで２単位時間留まる。すると、どちらのトークンＡ、ＢもプレースＰ１での処理が３単位時間目に終わるので、この３単位時間目において、カラー１のトークンＡとカラー２のトークンＢとでどちらが優先してプレースＰ２に入るかの競合が起きる。
【００８９】
この例の場合は、カラー１に対してトランジションＴ１が発火して、カラー１のトークンＡの方がカラー２のトークンＢよりも優先してプレースＰ２に入り、そこで３単位時間留まる。上述したように、プレースＰ２の処理容量は１であるので、カラー１のトークンＡがプレースＰ２に留まっている間、カラー２に対してトランジションＴ１は発火できない。したがって、カラー２のトークンＢは、カラー１のトークンＡがプレースＰ２に留まっている間、プレースＰ１に留まり続ける。
【００９０】
その後、６単位時間目にプレースＰ２におけるカラー１のトークンＡについての処理が終わり、トークンＡがプレースＰ２から出て行くと、カラー２に対してトランジションＴ１が発火し、カラー２のトークンＢがプレースＰ１からプレースＰ２に移動してそこで２単位時間だけ留まる。
【００９１】
次に、何らかの事情により、カラー２のトークンＢの方をカラー１のトークンＡよりも早くプレースＰ１から出て行くようにする場合を考える。このようにするためには、３単位時間目における競合状態において、カラー１よりもカラー２に対してトランジションＴ１が先に発火する必要がある。
【００９２】
ここで、本実施形態で適用した最適制御理論においては、式（イ）に示した評価関数Ｓを最小にするように制御できる。カラー２のトークンＢがプレースＰ１に長く留まるほど評価関数Ｓ中のＭ'ＱＭ項の値がおおきくなるので、評価行列Ｑ中のカラー２のプレースＰ１にかかる重みを重く設定しておけば、プレースＰ１からトークンＢを早く移動させるように制御でき、カラー２に対してトランジションＴ１が先に発火することとなる。
【００９３】
以上のことより、カラー２のプレースＰ１にかかる重みを通常より重くすれば良いことになる。ここで、カラー２に関する評価関数Ｓ中のＭ'ＱＭ項の部分を詳細に書き下すと、次の式（２５）のようになる。この式（２５）において、カラー２のプレースＰ１にかかる重みを表す要素は、ｑplace1.1、ｑplace1.2であるので、これらの要素を例えば２倍の値に変更すれば良いことになる。
【００９４】
【数１３】
2007004391.tif 000017
【００９５】
次に、もう少し複雑な例について説明する。ここで、６種類の製品種(カラー)を３つの機械で処理する、いわゆる６×３問題について考える。例えば、次の式（２６）で示す技術的順序行列Ｔに対し、式（２７）で示す加工時間行列Ｐによって与えられる６×３問題を考える。
【００９６】
【数１４】
2007004391.tif 000018
【００９７】
式（２６）において、技術的順序行列Ｔを構成する各要素の２桁の数字のうち、左側の数字はカラー番号を示し、右側の数字は機械番号を示す。例えば、カラー１の製品種は、第１の機械→第２の機械→第３の機械の順番で処理される。また、カラー２の製品種は、第１の機械→第３の機械→第２の機械の順番で処理される。
【００９８】
図１０は、上述のような製品種の処理順序を各カラーごとに表したペトリネットモデルの図である。また、図１１は、図１０に示した各カラーごとのペトリネットモデルを１つにまとめて表現した図である。なお、図１０及び図１１において、第１から第３の機械に対応するプレースは、それぞれＭ１からＭ３の記号で表されている。また、上記第１から第３の機械の入口と出口にあるプレース（スタートプレースとエンドプレース）はそれぞれＳ、Ｅの記号で表されている。
【００９９】
一方、式（２７）において、加工時間行列Ｐを構成する各要素に付されている下付の２桁の添数字は、それぞれ式（２６）の技術順序行列Ｔを構成する各要素の２桁の数字に対応し、かっこ内の数字は、その添数字で示されるカラーの製品種がその機械において何単位時間で処理されるかを示している。例えば、カラー１の製品種は、第１の機械で２単位時間、第２の機械で３単位時間、第３の機械で４単位時間で処理される。
【０１００】
次の図１２は、上述のような６×３問題について本実施形態の物流制御方法を適用した場合に得られるスケジュール結果を示す図である。図１２において、Ｐの後に続く３桁の数字のうち、１番左の数字はカラー番号を示し、真ん中の数字は処理の順番を示し、１番右の数字は機械番号を示す。例えば、記号Ｐ１１１は、カラー１の製品種が１番目に第１の機械で処理されることを表している。
【０１０１】
このような記号の意味に従うと、カラー１の製品種は、第１の機械（Ｐ１１１）→第２の機械（Ｐ１２２）→第３の機械（Ｐ１３３）の順番で処理される。また、カラー２の製品種は、第１の機械（Ｐ２１１）→第３の機械（Ｐ２２３）→第２の機械（Ｐ１３２）の順番で処理される。これは、先の式（２１）で示した順番と一致している。
【０１０２】
なお、図１１から明らかなように、第１の機械、第２の機械、第３の機械の何れにおいても、製品種が入いる場合と出ていく場合とでそれぞれ最高３つの競合状態が生じることがある。このように競合が生じた場合、各カラーごとに設定されている評価行列Ｑ中の各プレースに対応する要素の重みに応じて、何れかのカラーが優先して選択されてスケジューリングされることとなる。
【０１０３】
例えば、図１０に示したように、各カラーの製品種が１番最初に投入される機械は、カラー１の製品種とカラー２の製品種が第１の機械、カラー３の製品種とカラー４の製品種が第２の機械、カラー５の製品種とカラー６の製品種が第３の機械である。すなわち、カラー１とカラー２との間で第１の機械に関して競合が生じ、カラー３とカラー４との間で第２の機械に関して競合が生じ、カラー５とカラー６との間で第３の機械に関して競合が生じるが、それぞれの機械において何れかのカラーが優先して選択される。
【０１０４】
図１２（ａ）は、カラー１、４、５の製品種がカラー２、３、６の製品種よりも優先して選択される場合のスケジュール結果を示している。このとき、何らかの事情により、カラー４よりもカラー３の方を優先して処理したいと考えたとする。この場合には、カラー３に関する評価行列ＱのスタートプレースＳに関する重みを、図１２（ａ）のときの設定値よりも重くしてやればよい（例えば１０倍の値に変更する）。そうすると、スケジュール結果は図１２（ｂ）のようになる。
【０１０５】
また、カラー３の製品種をできるだけ早く移動させたい、すなわち、カラー３の製品種は定常的に特急品として扱いたいとする。この場合には、カラー３に関する評価行列ＱのスタートＳ、第１の機械に対応するプレースＭ１、第２の機械に対応するプレースＭ２に関する重みを通常よりも重くしてやればよい。そうすれば、スケジュール結果は図１２（ｃ）のようになる。
【０１０６】
なお、図１２においては、（ａ）から（ｃ）の何れの場合も総処理時間が２７単位時間となっており、最短時間（式（２２）から分かるように、第３の機械でカラー１から６の製品種を全部処理するのにかかる時間は２７単位時間であり、最低でこの処理時間が必要である）を実現している。
【０１０７】
すなわち、評価行列Ｑの重み付けを変更することによって製品種処理の優先順位を適切に変えることによって、最短スケジュールを得ることができる。図１３に示したように単なるルール化によって優先順位を決める場合よりは、処理時間が短くなるように制御されている。図１２（ａ）から（ｃ）のスケジュール結果は、重み付けの仕方を適当に調整することで得られるものである。
【０１０８】
なお、以上の実施形態では、ペトリネットモデル中で早く移動させようとする製品種に対応する評価行列Ｑの重みを重く変更するようにしていたが、早く移動させようとする製品種以外の製品種に対応する評価行列Ｑの重みを軽く変更するようにしても良い。また、プレースに含まれる状態数の次元を有する評価行列Ｑの代わりに、トランジション数の次元を有する評価行列Ｒの重みを変更したり、評価行列Ｑ、Ｒの両方の重みを変更したりするようにしても同様の結果を得ることができる。
【０１０９】
上述したように、本実施形態においては、評価関数を表す評価行列の各要素ごとに、各製品種の各工程における処理順序優先度に応じて異なる重み付けを設定できるように構成したので、製品種ごとに設定された評価行列の中でより重い重み付けをした製品種ほど、その重い重み付けがされた要素に対応するプレースから製品種が早く移動するように制御することができ、重み付けの仕方によって製品種の処理順序優先度を任意に変更することができる。さらに、シミュレータで製品種ごとに区別した取り扱いを行うことや最適化計算に用いる数式モデルを製品種ごとに作成することにより製品種や工程ごとの処理優先順を考慮したより精度の高いスケジュールを作成することが可能となる。
【０１１０】
なお、本実施形態では、ペトリネットモデルを例に挙げて説明したが、その他のグラフモデル、例えば有向グラフや無向グラフに本発明を適用することも可能である。例えば有向グラフでは、上述したペトリネットモデルにおけるプレースは点で表現され、トランジションは矢印付きの線で表現される。矢印付きの線は、点から点へ製品種すなわちトークンを移動させる移動操作端であり、移動路の役目をする。また、矢印は、線から点、或いは、点から線へトークンが移動する方向を示すものである。
【０１１１】
また、ペトリネットモデルでは、各工程内に設けられている仮想プレースに初期設定された容量設定用仮想トークンの数により、各処理工程で同時に処理できる製品種の数を制限していたが、通常のグラフモデルでは仮想プレースは存在せず、各工程内における処理容量をソフトウェア上で制御される。
【０１１２】
このような特徴を有する通常のグラフモデルに本発明を適用する場合も、一連の動作は上述したペトリネットモデルにおける動作と同様であり、ここでは、その詳細な説明は省略する。
【０１１３】
図１４は、上述した生産・物流スケジュール作成装置を作成可能なコンピュータシステムの一例を示すブロック図である。同図において、１２００はコンピュータＰＣである。ＰＣ１２００は、ＣＰＵ１２０１を備え、ＲＯＭ１２０２又はハードディスク（ＨＤ）１２１１に記憶された、或いはフレキシブルディスクドライブ（ＦＤ）１２１２より供給されるデバイス制御ソフトウェアを実行し、システムバス１２０４に接続される各デバイスを総括的に制御する。
【０１１４】
上記ＰＣ１２００のＣＰＵ１２０１、ＲＯＭ１２０２又はハードディスク（ＨＤ）１２１１に記憶されたプログラムにより、本実施形態の各機能手段が構成される。
【０１１５】
１２０３はＲＡＭで、ＣＰＵ１２０１の主メモリ、ワークエリア等として機能する。１２０５はキーボードコントローラ（ＫＢＣ）であり、キーボード（ＫＢ）１２０９から入力される信号をシステム本体内に入力する制御を行う。１２０６は表示コントローラ（ＣＲＴＣ）であり、表示装置（ＣＲＴ）１２１０上の表示制御を行う。１２０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム（起動プログラム：パソコンのハードやソフトの実行（動作）を開始するプログラム）、複数のアプリケーション、編集ファイル、ユーザファイルそしてネットワーク管理プログラム等を記憶するハードディスク（ＨＤ）１２１１、及びフレキシブルディスク（ＦＤ）１２１２とのアクセスを制御する。
【０１１６】
１２０８はネットワークインタフェースカード（ＮＩＣ）で、ＬＡＮ１２２０を介して、ネットワークプリンタ、他のネットワーク機器、或いは他のＰＣと双方向のデータのやり取りを行う。
【０１１７】
なお、本発明は複数の機器から構成されるシステムに適用しても、一つの機器からなる装置に適用してもよい。
【０１１８】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１１９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１２０】
プログラムコードを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１２１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２２】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２３】
以上述べた実施形態では、シミュレーション結果から上記生産・物流プロセスにおける生産・物流スケジュールを作成する例を説明したが、シミュレーション結果に基づいて生産・物流プロセスの制御を行う場合にも本発明は適用される。
【図面の簡単な説明】
【０１２４】
【図１】本発明を適用した生産・物流スケジュール作成装置の概略構成を説明するブロック図である。
【図２】第１の実施形態における生産・物流スケジュール作成の処理手順を示すフローチャートである。
【図３】モデル構築の処理手順を示すフローチャートである。
【図４】制御則構築の処理手順を示すフローチャートである。
【図５】シミュレーションの処理手順を示すフローチャートである。
【図６】製品種Ａ、Ｂを製造するプロセスのペトリネットモデル例を示す図である。
【図７】複数工程よりなる製造プロセスのペトリネットモデル例を示す図である。
【図８】製品種No.1に対するペトリネットモデルの例を示す図である。
【図９】設定する評価行列Ｑの重み付けを任意に変えることにより、複数の製品種の処理順序を任意に変更する場合の具体例を説明するための図であって、（ａ）は本実施形態の物流制御方法を適用して構築したぺトリネットモデルの一部分の例を示す図、(ｂ)及び(ｃ)はトークンＡ，トークンＢの処理の流れを示す図である。
【図１０】６種類の製品種を３個の機械で処理する６×３問題について、製品種の処理順序を各カラーごとに表したぺトリネットモデルの図である。
【図１１】図２１に示した各カラーごとのぺトリネットモデルを１つにまとめて表現したぺトリネットモデルの図である。
【図１２】６×３問題について本実施形態の物流制御方法を適用した場合に得られるスケジュール結果を示す図である。
【図１３】ぺトリネットモデルを用いた従来の製造プロセスにおける物流制御方法の全体の処理手順を示すフローチャートである。
【図１４】本発明の生産・物流スケジュール作成装置を構成可能なコンピュータシステムの一例を示すブロック図である。
【符号の説明】
【０１２５】
１    シミュレーション制御部
１ａ  物流シミュレータ
１ｂ  最適制御方策部
２    最適化計算装置
３    数式モデル
【図１】
2007004391.tif 000019
【図２】
2007004391.tif 000020
【図３】
2007004391.tif 000021
【図４】
2007004391.tif 000022
【図５】
2007004391.tif 000023
【図６】
2007004391.tif 000024
【図７】
2007004391.tif 000025
【図８】
2007004391.tif 000026
【図９】
2007004391.tif 000027
【図１０】
2007004391.tif 000028
【図１１】
2007004391.tif 000029
【図１２】
2007004391.tif 000030
【図１３】
2007004391.tif 000031
【図１４】
2007004391.tif 000032