(57)【要約】【課題】高精度な生産スケジューリングを行う。【解決手段】複数の工程からなる生産対象物の生産スケジューリングを行うスケジューリング装置において、前記工程の接続順序関係を設定するための工程接続情報と、前記工程に含まれる各ブロックの移動経路を設定するブロックフロー情報と、各ブロックの各工程での工期を設定する作業工期情報と、各工程の制約条件とが蓄積された蓄積手段と、前記蓄積手段に蓄積された情報から前記工程を下流から上流に遡る順序に並べ替える解釈手段と、前記解釈手段により得られる並べ替え後の工程データに基づいてスケジューリングモデルを作成するモデル作成手段と、前記モデル作成手段により得られるスケジューリングモデル毎にスケジュールを最適化する日程計画作成手段と、前記日程計画作成手段により得られるスケジューリング結果を出力する出力手段とを有する。【選択図】図２
2007183817.tif 000002
【特許請求の範囲】
【請求項１】
複数の工程からなる生産対象物の生産スケジューリングを行うスケジューリング装置において、
前記工程の接続順序関係を設定するための工程接続情報と、前記工程に含まれる各ブロックの移動経路を設定するブロックフロー情報と、各ブロックの各工程での工期を設定する作業工期情報と、各工程の制約条件とが蓄積された蓄積手段と、
前記蓄積手段に蓄積された情報から前記工程を下流から上流に遡る順序に並べ替える解釈手段と、
前記解釈手段により得られる並べ替え後の工程データに基づいてスケジューリングモデルを作成するモデル作成手段と、
前記モデル作成手段により得られるスケジューリングモデル毎にスケジュールを最適化する日程計画作成手段と、
前記日程計画作成手段により得られるスケジューリング結果を出力する出力手段とを有することを特徴とするスケジューリング装置。
【請求項２】
前記日程計画作成手段により得られたスケジューリング結果に基づいて、全工程又は予め設定された工程数単位でシミュレーションを行い、その結果を前記蓄積手段又は前記出力手段に出力するシミュレーション手段を有することを特徴とする請求項１に記載のスケジューリング装置。
【請求項３】
前記シミュレーション手段により得られたシミュレーション結果に基づいて、前記日程計画作成手段により得られたスケジューリング結果を修正する計画データ修正手段を有することを特徴とする請求項２に記載のスケジューリング装置。
【請求項４】
前記モデル作成手段は、
前記解釈手段により得られる各作業の工期を丸めてスケジューリングを実行することを特徴とする請求項１乃至３の何れか１項に記載のスケジューリング装置。
【請求項５】
前記モデル作成手段は、
前記工期の丸め方として、前記スケジューリングモデル毎にゼロ時間作業を除く作業時間の平均値、最小値、最大値を算出し、その算出結果に基づいて最適な幅で工期を丸めることを特徴とする請求項４に記載のスケジューリング装置。
【請求項６】
前記蓄積手段は、
スケジューリングモデルの対象とする単位として工程又は工程群を指定する問題単位設定情報と、設定された問題単位を如何なる最適化問題として解くかを設定する問題設定情報と、各設定された問題に必要な情報を設定する問題情報とを有し、
前記モデル作成手段は、前記問題単位設定情報と、前記問題設定情報と、前記問題情報とに基づいてスケジューリングモデルを作成し、
前記日程計画作成手段は、前記モデル作成手段により得られるスケジューリングモデル毎にスケジュールを最適化し、その算出されたスケジュール結果に基づいて直前の上流側のスケジューリングモデルに対する納期を設定することを特徴とする請求項１乃至５の何れか１項に記載のスケジューリング装置。
【請求項７】
複数の工程からなる生産対象物の生産スケジューリングを行うスケジューリング方法において、
予め蓄積された前記工程の接続順序関係を設定するための工程接続情報と、前記工程に含まれる各ブロックの移動経路を設定するブロックフロー情報と、各ブロックの各工程での工期を設定する作業工期情報と、各工程の制約条件とを読み込む読込ステップと、
前記読込ステップにより得られた情報から前記工程を下流から上流に遡る順序に並べ替える解釈ステップと、
前記解釈ステップにより得られる並べ替え後の工程データに基づいてスケジューリングモデルを作成するモデル作成ステップと、
前記モデル作成ステップにより得られるスケジューリングモデル毎にスケジュールを最適化する日程計画作成ステップと、
前記日程計画作成ステップにより得られるスケジューリング結果を出力する出力ステップとを有することを特徴とするスケジューリング方法。
【請求項８】
前記日程計画作成ステップにより得られたスケジューリング結果に基づいて、全工程又は予め設定された工程数単位でシミュレーションを行うシミュレーションステップを有することを特徴とする請求項７に記載のスケジューリング方法。
【請求項９】
前記シミュレーションステップにより得られたシミュレーション結果に基づいて、前記日程計画作成ステップにより得られたスケジューリング結果を修正する計画データ修正ステップを有することを特徴とする請求項８に記載のスケジューリング方法。
【請求項１０】
前記モデル作成ステップは、
前記解釈ステップにより得られる各作業の工期を丸めてスケジューリングを実行することを特徴とする請求項７乃至９の何れか１項に記載のスケジューリング方法。
【請求項１１】
前記モデル作成ステップは、
前記工期の丸め方として、前記スケジューリングモデル毎にゼロ時間作業を除く作業時間の平均値、最小値、最大値を算出し、その算出結果に基づいて最適な幅で工期を丸めることを特徴とする請求項１０に記載のスケジューリング方法。
【請求項１２】
前記読込ステップは、
スケジューリングモデルの対象とする単位として工程又は工程群を指定する問題単位設定情報と、設定された問題単位を如何なる最適化問題として解くかを設定する問題設定情報と、各設定された問題に必要な情報を設定する問題情報とを読み込み、
前記モデル作成ステップは、前記問題単位設定情報と、前記問題設定情報と、前記問題情報とに基づいてスケジューリングモデルを作成し、
前記日程計画作成ステップは、前記モデル作成ステップにより得られるスケジューリングモデル毎にスケジュールを最適化し、その算出されたスケジュール結果に基づいて直前の上流側のスケジューリングモデルに対する納期を設定することを特徴とする請求項７乃至１１の何れか１項に記載のスケジューリング方法。
【請求項１３】
請求項７乃至１２の何れか１項に記載のスケジューリング方法をコンピュータにより実行させるためのスケジューリングプログラム。
【請求項１４】
請求項１３に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジューリング装置、スケジューリング方法、スケジューリングプログラム、及び該プログラムが記録された記録媒体に関し、特に高精度な生産スケジューリングを実現するためのスケジューリング装置、スケジューリング方法、スケジューリングプログラム、及び該プログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
従来、造船所や工場等において受注生産品を生産する際に、作業場等における日程計画を最適化してスケジューリングするためのシステムがある（例えば、特許文献１参照。）。
【０００３】
また、工場内の様々な制約条件を考慮に入れてスケジューリングを行うために、工場内の制約条件に基づいて、仮想工場を構成するシミュレーションモデルを稼働させることにより、物を製造するシミュレーションを行い、そのシミュレーション結果に基づいて日程表を出力する手法がある（例えば、特許文献２参照。）。
【特許文献１】特開２００３−１３１７２１号公報
【特許文献２】特開２００２−１６３０１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に示されている技術は、受注生産品の日程スケジューリングを行っているが、個々の工程に対する日程まで考慮したものではない。また、特許文献２に示されている技術は、シミュレーションを積極的に使用してスケジューリングを実施するものであるが、全体を一括してスケジューリングを行うものであり、作業場所（工程）群等の部分集合を基準にしたものではない。したがって、工場全体の中でもボトルネックになり易い、制約条件が複雑等、特に重要度の高い部分的な工程については、高精度なスケジューリングができていなかった。
【０００５】
また、分枝限定法等を用いて厳密解を求める手法があるが、この手法は例えば大型一品受注生産品等を対象にしたものであって、大規模な生産スケジューリングに対しては現実的ではなかった。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであって、高精度な生産スケジューリングを行うためのスケジューリング装置、スケジューリング方法、スケジューリングプログラム、及び該プログラムが記録された記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、本発明は、複数の工程からなる生産対象物の生産スケジューリングを行うスケジューリング装置において、前記工程の接続順序関係を設定するための工程接続情報と、前記工程に含まれる各ブロックの移動経路を設定するブロックフロー情報と、各ブロックの各工程での工期を設定する作業工期情報と、各工程の制約条件とが蓄積された蓄積手段と、前記蓄積手段に蓄積された情報から前記工程を下流から上流に遡る順序に並べ替える解釈手段と、前記解釈手段により得られる並べ替え後の工程データに基づいてスケジューリングモデルを作成するモデル作成手段と、前記モデル作成手段により得られるスケジューリングモデル毎にスケジュールを最適化する日程計画作成手段と、前記日程計画作成手段により得られるスケジューリング結果を出力する出力手段とを有することを特徴とする。これにより、高精度な生産スケジューリングを実現することができる。また、実用的な時間での高精度な大規模スケジューリングを実現することができる。
【０００８】
更に、前記日程計画作成手段により得られたスケジューリング結果に基づいて、全工程又は予め設定された工程数単位でシミュレーションを行い、その結果を前記蓄積手段又は前記出力手段に出力するシミュレーション手段を有することが好ましい。これにより、スケジューリング内容を時間の変化と共に確認することができ、その正確性を使用者等に把握させやすくすることができる。したがって、使用者等は、今後の作業工程で予想されるボトルネック部分の工程等を正確に把握することができ、その内容から迅速かつ確実な修正（作業変更）を行うことができる。
【０００９】
更に、前記シミュレーション手段により得られたシミュレーション結果に基づいて、前記日程計画作成手段により得られたスケジューリング結果を修正する計画データ修正手段を有することが好ましい。これにより、入力条件として記述しきれない専門家が有するノウハウ等を反映した形でのスケジューリング結果を得ることができる。
【００１０】
更に、前記モデル作成手段は、前記解釈手段により得られる各作業の工期を丸めてスケジューリングを実行することが好ましい。これにより、計算の高速化、制約充足問題としての定式化を実現することができる。
【００１１】
更に、前記モデル作成手段は、前記工期の丸め方として、前記スケジューリングモデル毎にゼロ時間作業を除く作業時間の平均値、最小値、最大値を算出し、その算出結果に基づいて最適な幅で工期を丸めることが好ましい。これにより、工期を大きく丸めてしまうことで、工期の差の情報を失うことがない。また、工期を細かく丸めてしまうことで、計算時間を膨大に費やすことがないような最適な幅で、工期を丸めることができる。
【００１２】
更に、前記蓄積手段は、スケジューリングモデルの対象とする単位として工程又は工程群を指定する問題単位設定情報と、設定された問題単位を如何なる最適化問題として解くかを設定する問題設定情報と、各設定された問題に必要な情報を設定する問題情報とを有し、前記モデル作成手段は、前記問題単位設定情報と、前記問題設定情報と、前記問題情報とに基づいてスケジューリングモデルを作成し、前記日程計画作成手段は、前記モデル作成手段により得られるスケジューリングモデル毎にスケジュールを最適化し、その算出されたスケジュール結果に基づいて直前の上流側のスケジューリングモデルに対する納期を設定することが好ましい。これにより、実用的な時間での正確なスケジュール作成及び工数算定を実現することができる。また、ボトルネック工程のみを精密な最適化問題として設定することにより、高速な計算を実現することができる。更に、ボトルネック工程より下流側の工程を精密な最適化問題として設定すれば、後引き要求日が正確な条件のもとで最適化することができる。
【００１３】
また、本発明は、複数の工程からなる生産対象物の生産スケジューリングを行うスケジューリング方法において、予め蓄積された前記工程の接続順序関係を設定するための工程接続情報と、前記工程に含まれる各ブロックの移動経路を設定するブロックフロー情報と、各ブロックの各工程での工期を設定する作業工期情報と、各工程の制約条件とを読み込む読込ステップと、前記読込ステップにより得られた情報から前記工程を下流から上流に遡る順序に並べ替える解釈ステップと、前記解釈ステップにより得られる並べ替え後の工程データに基づいてスケジューリングモデルを作成するモデル作成ステップと、前記モデル作成ステップにより得られるスケジューリングモデル毎にスケジュールを最適化する日程計画作成ステップと、前記日程計画作成ステップにより得られるスケジューリング結果を出力する出力ステップとを有することを特徴とする。これにより、高精度な生産スケジューリングを実現することができる。また、実用的な時間での高精度な大規模スケジューリングを実現することができる。
【００１４】
更に、前記日程計画作成ステップにより得られたスケジューリング結果に基づいて、全工程又は予め設定された工程数単位でシミュレーションを行うシミュレーションステップを有することが好ましい。これにより、スケジューリング内容を時間の変化と共に確認することができ、その正確性を使用者等に把握させやすくすることができる。したがって、使用者等は、今後の作業工程で予想されるボトルネック部分の工程等を正確に把握することができ、その内容から迅速かつ確実な修正（作業変更）を行うことができる。
【００１５】
更に、前記シミュレーションステップにより得られたシミュレーション結果に基づいて、前記日程計画作成ステップにより得られたスケジューリング結果を修正する計画データ修正ステップを有することが好ましい。これにより、入力条件として記述しきれない専門家が有するノウハウ等を反映した形でのスケジューリング結果を得ることができる。
【００１６】
更に、前記モデル作成ステップは、前記解釈ステップにより得られる各作業の工期を丸めてスケジューリングを実行することが好ましい。これにより、計算の高速化、制約充足問題としての定式化を実現することができる。
【００１７】
更に、前記モデル作成ステップは、前記工期の丸め方として、前記スケジューリングモデル毎にゼロ時間作業を除く作業時間の平均値、最小値、最大値を算出し、その算出結果に基づいて最適な幅で工期を丸めることが好ましい。これにより、工期を大きく丸めてしまうことで、工期の差の情報を失うことがない。また、工期を細かく丸めてしまうことで、計算時間を膨大に費やすことがないような最適な幅で、工期を丸めることができる。
【００１８】
更に、前記読込ステップは、スケジューリングモデルの対象とする単位として工程又は工程群を指定する問題単位設定情報と、設定された問題単位を如何なる最適化問題として解くかを設定する問題設定情報と、各設定された問題に必要な情報を設定する問題情報とを読み込み、前記モデル作成ステップは、前記問題単位設定情報と、前記問題設定情報と、前記問題情報とに基づいてスケジューリングモデルを作成し、前記日程計画作成ステップは、前記モデル作成ステップにより得られるスケジューリングモデル毎にスケジュールを最適化し、その算出されたスケジュール結果に基づいて直前の上流側のスケジューリングモデルに対する納期を設定することが好ましい。これにより、実用的な時間での正確なスケジュール作成及び工数算定を実現することができる。また、ボトルネック工程のみを精密な最適化問題として設定することにより、高速な計算を実現することができる。更に、ボトルネック工程より下流側の工程を精密な最適化問題として設定すれば、後引き要求日が正確な条件のもとで最適化することができる。
【００１９】
また、本発明は、請求項７乃至１２の何れか１項に記載のスケジューリング方法をコンピュータにより実行させるためのスケジューリングプログラムによって提供することができる。これにより、高精度な生産スケジューリングを行うことができる。また、プログラムをインストールすることにより、容易に本発明におけるスケジューリング処理を実現することができる。
【００２０】
更に、本発明は、請求項１３に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体によっても提供することができる。これにより、記録媒体により他の複数のコンピュータに容易にスケジューリングプログラムをインストールすることができる。また、スケジューリングプログラムをインストールすることで、容易に本発明におけるスケジューリング処理を実現することができる。
【発明の効果】
【００２１】
本発明によれば、実用的な時間での高精度な大規模スケジューリングを実現することができる。
【発明を実施するための最良の形態】
【００２２】
＜本発明の概略＞
本発明は、対象となる全体工程群を一括でモデル化してスケジューリングするのではなく、各工程あるいは工程グループの重要性を勘案して、個別工程単位をモデル化又は２工程以上の工程を一つの纏まりでモデル化することとし、全体を部分問題の集合体としてモデル化を行う。また、納期から遡る方向にスケジューリングを実施することにより、納期遵守を実現する。そのため、下流側工程からその開始時刻を上流側工程に対する要求時刻として与えることで納期を指示していく。更に、各部分問題毎に、一機械問題、並列機械問題、割当問題、制約充足問題等、各種問題設定を行って様々な観点から工程スケジューリングを実現する。
【００２３】
これにより、例えば大型一品受注生産品等を対象にした大規模な工程スケジューリング問題等を実用的な時間で実現する。また、工場全体の中でもボトルネックに成り易い、制約条件が複雑等、特に重要度の高い工程等は、精密なスケジューリングを可能にする。
【００２４】
ここで、上述した内容の具体例について説明すると、例えば生産工程において工場全体の概略工程は、「資材の投入」→「加工」→「組立１」→「組立２」→「検査・調整」→「組立３」→「全体組立」である場合、スケジューリングの流れは、「全体組立」→「組立３」→「検査・調整」→「組立２」→「組立１」→「加工」→「資材の投入」となるようにする。つまり、全体組立から遡る方向で下流側工程の開始日を上流側工程の納期として、工程別にスケジュールを求める。これにより、例えば納期遵守を第一目的とするスケジューリングを行うことができる。
【００２５】
＜実施形態＞
以下に、上述したような特徴を有するスケジューリング装置、スケジューリング方法、スケジューリングプログラム、及び該プログラムが記録された記録媒体を好適に実施した形態について、図面を用いて詳細に説明する。なお、以下の説明では、生産対象物としてタンカー等の大型船を用いて説明する。また、工場全体の概略工程は、「投入」→「加工」→「小組立」→「組立」→「艤装・塗装」→「結成」→「搭載」であるものとする。なお、本発明における生産対象物及び工場全体の概略工程についてはこれに限定されるものではない。
【００２６】
また、以下の説明において、「工程」とは、特定の資源を使用して製造を実施する場所あるいは製造のある段階を示す。また、「作業」とは、工程において特定の資源を使用してできる製造過程の部分を示す。また、「ブロック」とは、工程における製造作業の対象となる資材や部品等を示す。
【００２７】
＜スケジューリング装置：ハードウェア構成＞
ここで、本発明におけるスケジューリング装置は、汎用のパーソナルコンピュータ、サーバ等を用いることができる。また、汎用のＰＣに本発明を実現するための実行プログラムをインストールすることにより、スケジューリング処理を実現することができる。
【００２８】
図１は、スケジューリング装置におけるハードウェアの概略構成の一例を示す図である。図１に示すスケジューリング装置１０は、入力装置１１と、出力装置１２と、ドライブ装置１３と、補助記憶装置１４と、メモリ装置１５と、各種制御を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１６と、ネットワーク接続装置１７とを有するよう構成されており、これらはバスＢにより相互にデータの送受信が可能な状態で接続されている。
【００２９】
入力装置１１は、ユーザが操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザからのプログラムの実行指示等、各種操作信号を入力する。出力装置１２は、本発明における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ、音声を出力するスピーカ等を有し、ＣＰＵ１６が有する制御プログラムにより実行経過や結果等を表示することができる。更に、出力装置１２は、プリンタ等の機能を有していてもよく、その場合には、例えばスケジューリング結果等、取得可能な各種情報を紙等の印刷媒体に印刷して、ユーザ等に提供することができる。
【００３０】
ここで、本発明において、コンピュータ本体にインストールされる実行プログラムは、例えば、ＣＤ−ＲＯＭ等の記録媒体１８等により提供される。プログラムを記録した記録媒体１８は、ドライブ装置１３にセット可能であり、記録媒体１８に含まれる実行プログラムが、記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。
【００３１】
また、ドライブ装置１３は、本発明に係る実行プログラムを記録媒体１８に記録することができる。これにより、その記録媒体１８を用いて、他の複数のコンピュータに容易にインストールすることができ、容易に本発明のスケジューリング処理における情報処理を実現することができる。
【００３２】
補助記憶装置１４は、ハードディスク等のストレージ手段であり、本発明における実行プログラムや、コンピュータに設けられた制御プログラム等を蓄積し、必要に応じて入出力を行うことができる。また、メモリ装置１５は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなり、本発明における処理に必要となる各種データの保存等を行う。
【００３３】
ＣＰＵ１６は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム、及びメモリ装置１５により読み出され格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して、スケジューリング処理における情報処理を実現することができる。また、ＣＰＵ６６は、プログラムの実行中に必要な各種情報等は、補助記憶装置１４から取得することができ、また処理結果を補助記憶装置１４に格納することもできる。
【００３４】
ネットワーク接続装置１７は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ケーブル等により通信ネットワーク等と接続することにより、実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行することで得られた実行結果又は本発明における実行プログラムを他の端末等に提供することができる。
【００３５】
上述したようなハードウェア構成により、特別な装置構成を必要とせず、低コストで本発明におけるスケジューリング処理を実現することができる。
【００３６】
＜スケジューリング装置：機能構成＞
次に、スケジューリング装置における機能構成例について図を用いて説明する。
【００３７】
＜実施例１＞
図２は、実施例１におけるスケジューリング装置の機能構成の一例を示す図である。図２に示すスケジューリング装置１０は、入力手段２１と、入力解釈手段２２と、モデル作成手段２３と、日程計画作成手段２４と、データベース２５と、出力手段２６と、データ修正手段２７と、制御手段２８とを有するよう構成されている。
【００３８】
入力手段２１は、コンピュータを使用するユーザ（使用者等）が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザからのプログラムの実行等、各種操作信号を入力する。なお、本発明におけるスケジューリングを行うための入力されるデータとしては、例えば、工程の接続順序関係を設定するための工程接続情報、工程に含まれる各ブロックの移動経路を設定するブロックフロー情報、各ブロックの各工程での工期を設定する作業工期情報、各工程における作業者数を設定する作業者数情報等の制約条件等がある。
【００３９】
具体的には、全体工程経路パターンデータ（フローパターン表）、ブロック別物量データ（物量表）、ブロック別フローパターンデータ（分岐結合表）、工程データ（処理速度表）、移送時間データ、搭載順データ（搭載ブロック入力表）、搭載開始可能日（搭載ブロック入力表）、及び工程データ（工程条件）等からなる。
【００４０】
なお、上述の工程データは、工程別作業条件、最適化パターン等からなり、例えば、工程条件としては、工程ＩＤ、棟、ライン、ライン区分、ライン名称毎に、直列処理フラグ（フラグにより、複数の物量を直列処理する。）、定盤数、工期（単位は、例えば時間等、また１日は８時間とする。）、ＪＩＴ（Ｊｕｓｔ  Ｉｎ  Ｔｉｍｅ）ペナルティ等から構成される。
【００４１】
また、前工程における平準化の制約条件等も入力することができる。前工程平準化条件は、連続日数、最小ブロック数、最大ブロック数等から構成される。ここで、前工程平準化の制約とは、例えば「ある連続するＸ日について、前工程がＹであるブロックの個数は必ずＷ個以上、Ｚ個以下である」等のように設定を行うことをいう。つまり、前工程のライン別（Ｙ）に、連続日数（Ｘ：標準化の評価対象期間）、最小ブロック数（Ｗ）、最大ブロック個数（Ｚ）、ペナルティ値を指定する。
【００４２】
また、ＪＩＴペナルティとは、経過日数等に基づく所定の関数パターン等で記述することができ、また作業毎に設定することができるＪＩＴペナルティパターンデータである。また、ＪＩＴの制約としては、例えば「ブロックＸについて、そのブロックの後工程（ステージ）要求日ＹよりもＺ日以前に完成させてはならない。また、Ｙよりも遅く完成させてはならない。ライン別に、５つのペナルティパターンを指定する。」等の設定が可能である。
【００４３】
また、上述した制約条件の他にも、例えば組立工程における制約条件を入力することができ、この場合の制約としては、例えば、「建造ピッチや、非連続、連続制約、及び製作期間の制約」等を設定することができる。また、上述した非連続制約としては、例えば「ラインＸにおいて２つの連続する日で、指定のシリーズ名（ほぼ同一仕様となるブロック群をシリーズとする）、ブロック名、２個１ロット名（１つの工程において、同一定盤上で同時に処理したい２ブロックの組み合わせを“２個１ロット”とする）を連続させない。」等の制約を設定することができる。また、連続制約としては、例えば「ラインＸにおいて、２つの連続する日で、指定のシリーズ名、ブロック名、２個１ロット名を連続させる。」等の制約を設定することができる。更に、製作期間制約としては、例えば「ラインＸにおいてシリーズ名Ｚは指定期間中に一定ピッチで製作する。ラインＸにおいてシリーズ名Ｗは指定期間内に製作する。船別に、建造ピッチ（日）船別、ライン別、シリーズ別に、開始日、終了日、ペナルティレベル」等の制約を設定することができる。なお、開始日、終了日は建造ピッチに対する日であり、各シリーズのブロック数はブロック別フローデータより取得することができる。
【００４４】
更に、入力手段２１により入力可能なその他の制約条件としては、ブロック固定施工棟の制約（ブロックＸの処理ラインは必ずＹである。）として、例えば「スケジューリング及びシミュレーションでは工場全体に亘るブロックフローが必要なためブロック別フローパターンデータ（分岐結合表）によることとする。」等の制約を設定することができる。また、先行順序の制約として、例えば「組立内で工程を渡る場合、先行工程では後行工程の開始日のＹ日以上Ｚ日以下で完了しなくてはならない。先行関係は、ブロック別フローパターンデータ（分岐結合表）によることとする。ライン別に、５つのペナルティパターンを指定する。」等の制約を設定することができる。更に、組立工程全体の作業量平準化の制約や同一番船の組立メイクスパンの制約等がある。なお、上述したブロック別フローパターンについては後述する。
【００４５】
上述したように、入力手段２１により入力される各種情報は、通信ネットワークを介して接続される外部装置等からテキストファイル形式で取得することもできる。これらのファイルは、データベース２５に蓄積される。
【００４６】
入力解釈手段２２は、データベース２５から上述した各種情報からスケジューリングに必要な所定のデータを読み込み、入力データのエラーチェックを行う。また、入力解釈手段２２は、スケジューリングモデル作成に必要な所定のデータ構造に変換する。具体的には、入力解釈手段２２は、入力された各工程を下流から上流に遡る順序に並べ替えを行う。このデータを用いてモデルの作成や日程計画を作成することで、納期遵守を第一目的とするスケジューリングを行うことができる。なお、入力解釈手段２２は、エラーチェックの結果、入力データにエラーがある場合には、出力手段２６にその旨のメッセージを出力させ、ユーザに再入力を促すこともできる。
【００４７】
また、モデル作成手段２３は、入力解釈手段２２により作成された下流から上流に遡る順序に並べ替えられたデータに基づいて、少なくとも１つの工程（作業場所）又は工程群等からなる部分問題毎の問題記述形式に合わせてスケジューリングモデルを作成する。
【００４８】
なお、モデル作成手段２３は、データベース２５に入力された各作業の工期を丸めてスケジューリングを実行する。これにより、計算の高速化、制約充足問題としての定式化が可能となる。
【００４９】
また、モデル作成手段２３は、工期の丸め方としては、スケジューリングモデル毎にゼロ時間作業を除く作業時間の平均値、最小値、最大値を算出し、その算出結果に基づいて最適な幅（例えば、１５分等といった時間単位）で工期を丸める。これにより、工期を大きく丸めてしまうことで工期の差の情報を失うことがなく、また工期を細かく丸めてしまうことで計算時間を膨大に費やすことがないような最適な幅で、工期を丸めることができる。
【００５０】
更に、モデル作成手段２３は、データベース２５等に蓄積されたスケジューリングモデルの対象とする単位として工程又は工程群を指定する問題単位設定情報と、設定された問題単位を如何なる最適化問題として解くかを設定する問題設定情報と、各設定された問題に必要な情報を設定する問題情報とに基づいて用いて、１以上のスケジューリングモデルを作成する。これにより、実用的な時間での正確なスケジュール作成及び工数算定を実現することができる。また、ボトルネック工程のみを精密な最適化問題として設定することにより、高速な計算を実現することができる。更に、ボトルネック工程より下流側の工程を精密な最適化問題として設定すれば、後引き要求日が正確な条件のもとでの最適化が可能となる。
【００５１】
また、日程計画作成手段２４は、一機械問題、並列機械問題、割当問題、制約充足問題等の各種問題別に求解部を有し、モデル作成手段２３により作成されたスケジューリングモデル毎にスケジュールを最適化し、その算出されたスケジュール結果に基づいて直前の上流側のスケジューリングモデルに対する納期を設定する。つまり、日程計画作成手段２４は、例えば各工程の作業開始日を各工程の後引き要求日に対して所定の日時になるようにスケジューリングを行う。
【００５２】
ここで、一機械問題とは、工程作業が１台の機械（１つの作業場所）のみで行われる場合である。一機械問題としての条件としては、例えば「（ａ）１つの工程において、作業場所（定盤）は１ヶ所であり、１ブロックのみの処理が可能である。」、「（ｂ）各ブロックの処理時間は異なる。工程別ブロック別の処理時間は、物量／処理速度にて計算する。」、「（ｃ）各ブロックか下流側工程の要求する納期を持つ。」等がある。
【００５３】
また、並列機械問題とは、例えば結成工程を対象とし、これらの工程においては１工程で複数のブロックを処理可能としたものであり、各工程別に定盤数を指定する。なお、結成の各工程は、それぞれ複数の定盤を持ち、「組立」と「搭載」の間にあって、スケジューリングの意味で重要な部分であることから、各工程を個別に並列機械問題として定式化する。
【００５４】
つまり、並列機械問題として考慮すべき条件は、「（ａ）１つの工程において、複数の作業場所（定盤）で同時並列して複数のブロックが処理できる。」、「（ｂ）各ブロックの処理時間は異なる。工程別ブロック別の処理時間は、物量／処理速度にて計算する。」、「（ｃ）各ブロックは下流側工程の要求する納期を持つ。」等がある。
【００５５】
また、制約充足問題とは、複数同時処理や納期等の一般的かつ単純な制約のみでなく、一定ピッチ投入、負荷平準化のための制約、複数工程を一括してスケジューリングしたいときの先行順序関係等、精密なスケジューリングを行うための各種の複雑な制約条件が付く問題に対する定式化を行うものである。なお、本実施例においては、最も重要かつ制約条件の多い組立工程を対象として、複数の組立工程全体を一括して制約充足問題によってモデル化している。
【００５６】
つまり、制約充足問題の主な条件としては、「（ａ）１つの工程において、複数の作業場所（定盤）で同時並行して複数のブロックが処理できる。」、「（ｂ）各ブロックの処理時間は一定（ブロックの大きさに因らない）。ただし、処理時間が一定とならず、物量／処理速度で決まる任意時間処理の工程も混在する。」、「（ｃ）工程へのブロックの投入時間間隔は一定。各工程へのブロックの投入は、作業時間／定盤数で計算される一定ピッチで投入する。ただし、処理時間が一定でない場合は、投入ピッチも一定でなくなる。」、「（ｄ）各ブロックは下流側工程の要求する納期を持つ。」等がある。
【００５７】
また、日程計画作成手段２４は、例えば以下に示す（Ａ）〜（Ｈ）等の制約条件に基づいてスケジューリングを行う。
【００５８】
「（Ａ）ブロック処理工程及び、工程順序は固定（各ブロックは、ブロックフロー指定により処理する工程及び工程順序を固定とする。なお、組立工程内で複数工程を渡る場合には、工程処理の先行関係が存在することになる。）。」、「（Ｂ）複数ブロックの結合（複数のブロック同士が結合して一つのブロックとなる場合、全ての結合ブロックが揃って始めて工程処理開始可能となる。）。」、「（Ｃ）固定日数、固定スケジュールの存在（全工程において、船毎に一律で１船分のブロック群を処理する日数（建造ピッチ）が存在する。この建造ピッチに対して、ブロックシリーズ毎に相対的な製造期間が設定される。また、製造期間内での一定ピッチの固定スケジュールとなるシリーズが存在することもある。）。」、「（Ｄ）連続させたくないブロック（工程毎に、連続して処理したくないブロックの組合せが存在する。）。」、「（Ｅ）連続させたいブロック（工程毎に、連続して処理したいブロックの組合せが存在する。）。」、「（Ｆ）２個１ロットの存在（工程毎に、同一定盤上で同時に処理したい２ブロックの組合せが存在する。また、選択された２ブロックが揃って始めて工程処理開始可能となる。）。」、「（Ｇ）上流工程（小組立工程）平準化（組立工程の開始日を上流側工程（小組立）の納期として、上流側工程の各工程に各ブロックを引き当てることを考慮する。このとき、上流側工程の工程毎にブロック数の上下限が存在する。）。」、「（Ｈ）納期遵守（下流側工程（艤装・塗装、結成）で計算されたブロック別要求日を、組立工程におけるブロック別の最終工程の納期として遵守する。組立工程内の直列工程において、先行工程では後行工程の処理開始日を納期として遵守する。）。」
日程計画作成手段２４は、上述した各種情報に基づいてスケジューリングを行い、その結果が出力手段２６により出力される。
【００５９】
また、データベース２５は、入力手段２１により入力される各種データや、モデル作成手段２３により作成されたモデル、日程計画作成手段２４により作成されたスケジューリング結果等の各種データを蓄積する蓄積手段であり、必要に応じてデータの入出力を行うことができる。また、データベース２５は、上述した問題単位設定情報、問題設定情報、及び問題情報等が蓄積されている。なお、データベース２５に蓄積される具体的なデータ構成例については後述する。
【００６０】
出力手段２６は、スケジューリング結果をガントチャート等の画面表示や、スケジューリング結果、稼働率等のスケジューリング処理結果をファイル形式等で出力する。なお、具体的には、出力手段２６は、スケジューリング結果を表示するためのディスプレイや音声出力するためのスピーカ等からなる。また、出力手段２６は、プリンタ等の印刷機能を有していてもよく、取得可能な各種情報を印刷媒体へ出力してもよい。また、出力手段２６は、入力解釈手段２２における入力データチェック等において、エラーが見つかった場合には、エラーメッセージ等を出力する。
【００６１】
データ修正手段２７は、日程計画作成手段２４により作成されたスケジューリング結果等に基づいて、変更が必要と判断された場合に入力データの修正を行う。なお、データ修正手段２７は、予め基準となるパラメータ等を設定しておき、そのパラメータとスケジューリング結果とを比較することで、修正が必要な項目の入力データを所定の値に変更させてもよく、また専門家等が出力手段２６に表示されるスケジューリング結果を参照して入力データの修正を行ってもよい。
【００６２】
また、制御手段２８は、スケジューリング装置１０における各構成全体の制御を行う。具体的には、制御手段２８は、例えば入力手段２１からのスケジューリング実行指示により、ベータベースから所定のデータを読み込み、入力データの解析、モデル作成、日程計画作成等の各処理を行わせるよう制御する。
【００６３】
＜データベース：データ構成＞
ここで、上述したデータベース２５について図を用いて説明する。
【００６４】
図３は、工程の接続関係が設定された工程データの一例を示す図である。また、図３（ａ）は、工程関係を示すフローデータを示し、図３（ｂ）は、図３（ａ）に対応するフローデータの内容を示している。また、図３に示す例では工程１〜８の各工程を有している。
【００６５】
図３（ｂ）におけるテーブルの１桁目は、「工程Ｎｏ．」を示している。なお、「工程Ｎｏ．」が０の場合は、物が投入されている人口工程を表している。また、２桁目以降は、「接続先工程Ｎｏ．（後工程Ｎｏ．）」を示している。ただし、自工程Ｎｏ．が記述されている場合は、その記述されている回数分の繰り返し（ループ）が可能となる。例えば図３（ｂ）における工程Ｎｏ．７の場合は、自工程の繰り返しは２回可能であることを示している。
【００６６】
また、図４は、各工程の処理能力が設定された工程処理速度データを示す一例の図である。工程処理速度データに含まれる項目としては、例えば、工程Ｎｏ．」、「物量」、「処理タイプ」、「一定工期」等がある。なお、図４に示す例では工程数をＭとする。
【００６７】
図４に示す工程処理速度データは、各工程での処理時間を計算するための基礎データが蓄積される。具体的には、例えば、図４において、工程１に物量１＝１０を有する生産対象物が投入された場合１０／１＝１０時間の処理時間となる。つまり、作業時間（工程時間）は、物量／物量処理速度により作業時間を決定する。
【００６８】
なお、「処理タイプ」とは、予め設定されるタイプが蓄積されるものであり、例えば、「処理タイプ」が１の場合は、生産対象物が複数の物量を有し、対応する処理速度を有する場合に、処理時間の最大値を工程での処理時間とする。また、「処理タイプ」が２の場合は、生産対象物が複数の物量を有し、対応する処理速度を有する場合、処理時間の和を工程での処理時間とするものである。また、「一定工期」とは、その工程が必要な工期である。一定工期の指定がある場合は、物量は無視し指定の一定工期が採用される。
【００６９】
また、図５は、生産対象物の処理対象量が設定された生産対象物の物量データの一例を示す図である。図５に示す物量データの項目としては、「対象物Ｎｏ．」と、各対象物に対応する各物量（１〜Ｎ）データ数」とから構成されている。なお、図５に示す例では、生産対象物数をＰとする。
【００７０】
また、図６は、生産対象物の処理工程が設定された生産対象物の工程フローデータの一例を示す図である。図６では、各物量に対応する生産対象物の物量データを示している。具体的には、図６（ａ）は、「生産対象物Ｎｏ.」が１の場合の工程フローデータの一例を示し、図６（ｂ）は、「生産対象物Ｎｏ．」が２の場合の工程フローデータの一例を示している。また、図６に示す生産対象物の工程フローデータは、１行目に、「生産対象物Ｎｏ．」を示し、２行目以降は、「工程Ｎｏ．」と、「接続先工程Ｎｏ．（後工程Ｎｏ．）」とを示している。ここで、１行目の「生産対象物Ｎｏ．」で参照される生産対象物は、図５に示した１〜Ｐまでの対象物Ｎｏ．に対応する。
【００７１】
また、工程フローデータの２行目以降の「工程Ｎｏ．」において、「工程Ｎｏ．」が０の場合は、物が投入される人口工程を表している。また、「接続先工程Ｎｏ．（後工程Ｎｏ．）」において、自工程Ｎｏ．が記述されている場合は、その回数までの繰り返し（ループ）が可能である。また、工程フローデータの最終桁には、合体先の生産対象物Ｎｏ．が蓄積される。
【００７２】
また、図７は、工程の資源数等が設定された工程資源制約データの一例を示す図である。図７に示す工程資源制約データの項目としては、「工程Ｎｏ．」、「機械数」、「人員数」、「追加可能人員数」、「単位物量当り必要人員数」等から構成される。
【００７３】
例えば、「工程Ｎｏ．」が２の場合は、機械数＝５、つまり同時並行処理可能な生産対象物の数は５つであることを示している。また、単位物量当りに必要な人員数から計算される必要人員数の制限は８人であり、どうしても処理しきれないような場合に追加可能な人員数は最大２人であることを示している。ただし、人員数、追加可能人員数は合計値を最大として制限される。
【００７４】
また、図８は、生産物の納期が設定された納期データの一例を示す図である。図８に示す納期データの項目としては、例えば「最終生産物Ｎｏ．」と、「納期（年／月／日）」とを有するよう構成される。図８に示す納期データは、生産の対象となる複数の最終生産物に対する納期を設定する。
【００７５】
また、図９は、部分問題が設定された問題設定データの一例を示す図である。図９に示す問題設定データは、「工程Ｎｏ．」と、「問題コード」とを有するよう構成されている。図９に示す問題設定データは、工場全体を部分問題に分割すること等を設定するものである。
【００７６】
例えば、図９に示す例において、「問題コード」が１の場合は、最終生産物の形になる工程（納期の指定される工程）を設定する。また、「問題コード」が２の場合は、並列機械スケジューリング問題（一機械問題を含む）を設定する。これは、各工程単独でのスケジューリングとなる。
【００７７】
また、「問題コード」が３の場合は、割当問題を設定する。これは、各工程単独でのスケジューリングとなる。また、「問題コード」が４−＊（＊は、整数）の場合は、制約充足問題を設定する。これは、同一コードの複数工程を纏めてのスケジューリングとなる。本発明では、上述したようなデータ例に基づいてスケジューリングが行われる。
【００７８】
＜実施例１におけるスケジューリング手順＞
次に、上述した実施例１におけるスケジューリング手順について、フローチャートを用いて説明する。図１０は、実施例１におけるスケジューリング手順の一例を示すフローチャートである。図１０に示すフローチャートは、まず上述したデータベースの各項目を読み込み（Ｓ０１）、入力データのエラーチェック、所定のデータ構造に変換する等の入力データの解釈を行う（Ｓ０２）。次に、Ｓ０２により解釈されたデータに基づいて、図９に示すような部分問題毎の問題記述形式に合わせて上述したようなスケジューリングモデルを作成する（Ｓ０３）。
【００７９】
次に、一機械問題、並列機械問題、割当問題、制約充足問題等の各種問題別に、Ｓ０３において得られたスケジューリングモデル毎にスケジューリングを実施する（Ｓ０４）。次に、作成したスケジュール結果を画面に表示出力し（Ｓ０５）、データベース２５にも結果を出力する（Ｓ０６）。
【００８０】
ここで、その結果がＯＫであるか否かを判断する（Ｓ０７）。なお、結果がＯＫであるか否かの判断は、上述したように予め設定されたパラメータと出力結果とを比較して判断を行ってもよく、また専門家等が表示されたスケジューリング結果を参照して、ＯＫか否かの判断を行ってもよい。また、データベース２５に出力された結果を用いて上述と同様の判定を行ってもよい。
【００８１】
次に、結果がＯＫでなかった場合（Ｓ０７において、ＮＯ）、データベースの入力データを修正して（Ｓ０８）、Ｓ０１に戻り、上述した入力データの読込処理以降の処理を行う。また、Ｓ０７の処理において、結果がＯＫであった場合（Ｓ０７において、ＹＥＳ）、処理を終了する。
【００８２】
＜出力例＞
ここで、出力される内容について図を用いて説明する。
【００８３】
＜ガントチャート＞
図１１は、本発明におけるスケジューリング結果の出力例を示す図である。図１１に示す出力例は、ガントチャートによる出力結果を示している。なお、図１１では、１つの工程におけるスケジュール結果（処理状況）を示したものである。
【００８４】
ここで、図１１は、縦軸にこの工程が持っている機械名を示し、また横軸に時間を示して、１つの生産対象物がどのような処理フローとなるかをグラフ化したものとなる。具体的には、図１１に示すガントチャート表示画面３０は、スケジュール対象表示領域３１と、ボタン選択領域３２と、ガントチャート表示領域３３と、スクロールバー３４とを有するよう構成されている。
【００８５】
スケジュール対象表示領域３１には、スケジュール計算の実行時刻と、所定の工程のジョブ数、ライン（機械）数が表示される。また、ボタン選択領域３２には、ガントチャートの拡大・縮小や、設定の変更、ガントチャートの印刷等を行うための各ボタン群が表示されている。
【００８６】
また、ガントチャート表示領域３３には、各ライン毎に各ブロックのスケジュールと、サイズ（負荷）が表示されている。また、ガントチャートは、スクロールバー３４により、所定の期間のガントチャートを表示することができる。
【００８７】
なお、本発明におけるガントチャートは、図１１以外のガントチャートでもよく、例えば工場全体の処理状況を表現するガントチャートも出力することもできる。更に、ガントチャート以外にも重要カーブや工程作業待ちブロック数グラフ等を表示させることができる。
【００８８】
なお、ガントチャート表示領域３３に表示されるライン上の各作業は、他の作業と識別するため、領域毎に色分けされて表示されたり、斜線や網線を用いて表示される。また、各作業の納期遵守度合を色や点滅等の強調表示により識別してもよい。これにより、使用者等は表示された内容から例えば工程毎の内容を正確に把握することができる。
【００８９】
＜ブロック別フローデータ＞
図１２は、ブロック別フローデータの一例を示す図である。図１２に示すブロック別フローデータは、一例としてＢ１〜Ｂ４２０の各ブロックにおけるブロック別の関係を示している。図１２に示すように、例えば造船における作業工程で、「加工」→「組立」→「結成」→「搭載」→「岸壁」の処理手順において出力されるブロックには、分岐や合流があり、複数のブロックが結合して１つのブロックとなる。
【００９０】
なお、分岐とは１つのブロックがある工程作業終了後、複数の下流側工程での並列作業を必要とする場合、同一データを持つ分身を作成して複数の下流側工程へ送ることをいう。また、合流とは１つのブロックが分岐して複数に分かれた後、下流側の１つの工程で再度１つのブロックになることをいう。更に、結合とは異なる複数のブロック同士がある工程で１つのブロックに集約されることをいう。
【００９１】
＜データベース出力例＞
次に、上述したスケジューリング処理において、データベースに出力されるスケジューリング結果の一例について図を用いて説明する。
【００９２】
図１３は、工程の稼働状況を表す処理時間に関する統計出力の一例を示す図である。図１３に示す処理時間に関する統計出力の項目としては、例えば、「工程Ｎｏ．」、「処理数」、「処理時間」、「開始時間」、「終了時間」、及び「稼働率」等から構成されている。なお、処理時間は、各工程における処理数を基準とした「平均」、「最小」、「最大」、「σ（標準偏差）」値を示している。したがって、図１３により工程毎の稼働状況を数値によって把握することができる。
【００９３】
また、図１４は、工程の稼働状況を表す使用資源に関する統計出力の一例を示す図である。図１４に示す使用資源に関する統計出力の項目としては、例えば、「工程Ｎｏ．」、「使用機械数」、「使用人員数」、及び「工数」等から構成されている。更に、「使用機械数」、「使用人員数」については、平均、最小、最大、σ（標準偏差）値を出力する。これにより、資源の使用状況を数値によって把握することができる。なお、図１４の「工数」は、特に工数算定における生産コストとして使用される。
【００９４】
上述した実施例によれば、高精度な生産スケジューリングを実現することができる。具体的には、対象となる全体工程群を一括してモデル化してスケジューリングするのではなく、各工程あるいは工程グループの重要性を勘案して、個別工程単位をモデル化又は２工程以上の工程を１つの纏まりでモデル化することとし、全体を部分問題の集合体としてモデル化することで、大規模なスケジューリング問題を従来よりも短縮した時間（実用的な時間）で処理することができる。また、人手に頼っていたスケジューリングを自動化することができる。更に、人手では考慮することが困難な膨大な制約条件を組み込むことが可能となる。
【００９５】
＜実施例２＞
次に、本発明に係る第２の実施例（実施例２）について説明する。実施例２では、計画日程作成手段２４により得られるスケジューリング結果に基づいて、シミュレーションを行うことにより、スケジューリング内容を時間の変化と共に確認することができ、その正確性を使用者等に把握させやすくすることができる。ここで、実施例２を実現するためのスケジューリング装置１０の機能構成例について図を用いて説明する。
【００９６】
図１５は、実施例２におけるスケジューリング装置の機能構成の一例を示す図である。なお、図１５においては、上述した図２に示す実施例１の機能構成と同様の構成については同一符号を用いることとし、その説明は省略する。
【００９７】
図１５に示すスケジューリング装置１０は、実施例１に示した機能構成の他にシミュレーション手段４１を有している。シミュレーション手段４１は、スケジューリング結果に基づいて、全工程又は予め設定された工程数単位でシミュレーションを行う。具体的には、シミュレーション手段４１は、離散系シミュレーション手法等により工程等の各種資源及び生産対象物をモデル化してシミュレーションを実施する。
【００９８】
ここで、離散系シミュレーションとは、一般的には事象駆動型の駆動原理で行われるシミュレーションをいい、シミュレーションのレベルに応じた各種ソフトが市販されている。したがって、本実施例においては、そのような市販ソフトを利用してもよく自作ソフトによってもよい。
【００９９】
また、シミュレーション手段４１は、シミュレーション結果をデータベース２５や出力手段２６に出力する。これにより、画面上でのアニメーション表示や、詳細な事象情報、滞留状態等、系の状況に関するファイル出力を行うことができる。
【０１００】
次に、実施例２におけるスケジューリング処理手順について図を用いて説明する。図１６は、実施例２におけるスケジューリング処理手順の一例を示すフローチャートである。
なお、Ｓ１１〜Ｓ１８までの処理手順は、上述したＳ０１〜Ｓ０８と同様であるため、ここでの説明を省略する。
【０１０１】
ここで、図１６に示すスケジューリング処理では、Ｓ１７の処理において結果がＯＫである場合（Ｓ１７において、ＹＥＳ）、次に、スケジューリング結果に基づいてシミュレーションを行う（Ｓ１９）、具体的には、離散系シミュレーション手法により、工程等の各種資源及び生産対象物をモデル化してシミュレーションを行う。これにより、画面上でのアニメーション表示や、詳細な事象情報、滞留状態等、系の状況に関するファイル出力を行う。
【０１０２】
また、Ｓ１９の処理により得られたシミュレーション結果を画面に表示出力し（Ｓ２０）、データベース２５にも出力する（Ｓ２１）。次に、シミュレーション結果がＯＫであるか否かを判断する（Ｓ２２）、なお、ＯＫであるか否かの判断は、上述したように予め設定されたパラメータにより判断されるか、表示された結果を専門家等が参照することにより判断される。
【０１０３】
ここで、シミュレーション結果がＯＫでない場合（Ｓ２２において、ＮＯ）、入力データの修正を行い（Ｓ２３）、Ｓ１１に戻り、入力データの読込処理以降の処理を行う。また、Ｓ２２の処理において、結果がＯＫである場合（Ｓ２２において、ＹＥＳ）、処理を終了する。
【０１０４】
これにより、より高精度なスケジューリングを行うことができる。なお、シミュレーションプログラムは、画面上での作業の進み具合や各工程間での滞留状況を視認できるように、アニメーション表示を行う。また、シミュレーションによる図１１に示すようなガントチャートも出力することができ、シミュレーションによる図１３に示すような各種統計出力も可能である。
【０１０５】
なお、上述したようなシミュレーション処理を行うにあたり、日程計画作成手段２４では、シミュレーション用のデータを作成しておく。また、図１７は、シミュレーション用の処理順序データ出力の一例を示す図である。図１７に示す処理順序データ出力の項目としては、例えば、処理開始からの「時刻」、「工程Ｎｏ．」、「生産対象物Ｎｏ．」、及び「最終生産物Ｎｏ．」等を有するよう構成されている。
【０１０６】
なお、図１７はスケジューリング結果のうち各生産対象物の工程での処理開始時刻を出力するものである。この出力に基づいて、シミュレーションプログラムは、各工程での生産対象物の処理開始時刻を決定する。また、図１７では、単に各工程での生産対象物の処理順序として実施例１においても出力することができる。
【０１０７】
＜シミュレーション結果：アニメーション表示例＞
次に、実施例２におけるシミュレーション結果としてアニメーション表示例について図を用いて説明する。図１８は、実施例２におけるシミュレーション結果の一例を示す図である。なお、図１８におけるシミュレーションによるアニメーション画面５０は、時間表示領域５１に表示される時刻における各作業場所での作業状況を表示するものである。
【０１０８】
例えば、図１８に示す造船工程では、大別すると「出材」エリアと、加工エリアと、小組立エリアと、組立エリアと、結成・艤装エリアと、搭載（ドック）エリアと、岸壁エリア等が表示されている。また、表示されている各エリアの中で、時間表示領域の時間が経過する毎に作業中のエリアが点滅させたり、色分けや斜線等により識別されて強調表示される。
【０１０９】
また、図１８に示すアニメーション画面５０は、ブロック数表示領域５２を有しており、ブロック数表示領域５２には、その時点で例えば作業待ち、作業中、搬出待ちのブロック数が表示される。また、時間表示領域５１に表示される時刻は、設定される速度情報により、実際の時間よりも速く進めることができる。
【０１１０】
これにより、スケジューリング内容を時間の変化と共に確認することができ、その正確性を使用者等に把握させやすくすることができる。したがって、使用者等は、今後の作業工程で予想されるボトルネック部分の工程等を正確に把握することができ、その内容から迅速かつ確実な修正（作業変更）を行うことができる。
【０１１１】
＜実施例３＞
次に、実施例３について説明する。実施例３では、実施例２に示すようにシミュレーション結果等から入力データを修正するだけでなく、出力されたスケジューリング結果を直接修正する機能も有する。ここで、実施例３におけるスケジューリング装置１０の機能構成例について、図を用いて説明する。図１９は、実施例３におけるスケジューリング装置の機能構成例を示す一例の図である。図１９に示すスケジューリング装置１０は、実施例２に示した機能構成の他に計画データ修正手段４２を有している。
【０１１２】
計画データ修正手段４２は、例えばシミュレーション結果を専門家等が参照し、スケジューリング結果を直接変更することが可能であると判断した場合に、入力データを修正するのではなく、スケジューリング結果のスケジューリングデータを直接修正して再度シミュレーションを実行する。これにより、日程計画作成手段２４が求めたスケジュールに対して、入力条件として記述しきれない、専門家の持つノウハウを反映した形でのスケジューリング結果を得ることができる。
【０１１３】
ここで、実施例３におけるスケジューリング処理手順についてフローチャートを用いて説明する。図２０は、実施例３におけるスケジューリング処理手順の一例を示す図である。図２０において、Ｓ３１〜Ｓ４１の処理は、上述した実施例２におけるＳ１１〜Ｓ２１と同様の処理であるため、ここでの説明は省略する。
【０１１４】
ここで、図２０に示すスケジューリング処理では、Ｓ４２の処理においてシミュレーション結果がＯＫであるか否かを判断し（Ｓ４２）、結果がＯＫでない場合（Ｓ４２において、ＮＯ）、入力データの修正を行うか、又はスケジューリング結果（計画データ）の修正を行うかを判断する。例えば、図２０に示す処理では入力データの修正を行うか否かを判断し（Ｓ４３）、入データを修正しない場合（Ｓ４３において、ＮＯ）、計画データの修正を行い（Ｓ４４）、Ｓ３９の処理に戻り、シミュレーション処理以降の処理を実行する。
【０１１５】
また、入力データを修正する場合（Ｓ４３において、ＹＥＳ）、入力データを修正し（Ｓ４５）、Ｓ３１に戻り、入力データの読込処理以降の処理を行う。また、Ｓ４２の処理において、結果がＯＫである場合（Ｓ４２において、ＹＥＳ）、処理を終了する。
【０１１６】
上述したように実施例３によれば、入力条件として記述しきれない専門家が有するノウハウ等を反映した形でのスケジューリング結果を得ることができる。
【０１１７】
上述したように本発明によれば、高精度なスケジューリングを行うことができる。具体的には、対象となる全体工程群を一括してモデル化してスケジューリングするのではなく、各工程あるいは工程グループの重要性を勘案して、個別工程単位をモデル化又は２工程以上の工程を１つの纏まりでモデル化することとし、全体を部分問題の集合体としてモデル化することで、大規模なスケジューリング問題を従来よりも短縮した時間（実用的な時間）で処理することができる。また、人手に頼っていたスケジューリングを自動化することができる。更に、人手では考慮することが困難な膨大な制約条件を組み込むことが可能となる。
【０１１８】
なお、上述の発明は、多品種少量生産スケジューリングや、開発プロジェクト、建設計画等の計画問題全般に適用することができる。
【０１１９】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【０１２０】
【図１】スケジューリング装置におけるハードウェアの概略構成の一例を示す図である。
【図２】実施例１におけるスケジューリング装置の機能構成の一例を示す図である。
【図３】工程の接続関係が設定された工程データの一例を示す図である。
【図４】各工程の処理能力が設定された工程処理速度データを示す一例の図である。
【図５】生産対象物の処理対象量が設定された生産対象物の物量データの一例を示す図である。
【図６】生産対象物の処理工程が設定された生産対象物の工程フローデータの一例を示す図である。
【図７】工程の資源数等が設定された工程資源制約データの一例を示す図である。
【図８】生産物の納期が設定された納期データの一例を示す図である。
【図９】部分問題が設定された問題設定データの一例を示す図である。
【図１０】実施例１におけるスケジューリング手順の一例を示すフローチャートである。
【図１１】本発明におけるスケジューリング結果の出力例を示す図である。
【図１２】ブロック別フローデータの一例を示す図である。
【図１３】工程の稼働状況を表す処理時間に関する統計出力の一例を示す図である。
【図１４】工程の稼働状況を表す使用資源に関する統計出力の一例を示す図である。
【図１５】実施例２におけるスケジューリング装置の機能構成の一例を示す図である。
【図１６】実施例２におけるスケジューリング処理手順の一例を示すフローチャートである。
【図１７】シミュレーション用の処理順序データ出力の一例を示す図である。
【図１８】実施例２におけるシミュレーション結果の一例を示す図である。
【図１９】実施例３におけるスケジューリング装置の機能構成例を示す一例の図である。
【図２０】実施例３におけるスケジューリング処理手順の一例を示す図である。
【符号の説明】
【０１２１】
１０  スケジューリング装置
１１  入力装置
１２  出力装置
１３  ドライブ装置
１４  補助記憶装置
１５  メモリ装置
１６  ＣＰＵ
１７  ネットワーク接続装置
１８  記録媒体
２１  入力手段
２２  入力解釈手段
２３  モデル作成手段
２４  日程計画作成手段
２５  データベース
２６  出力手段
２７  データ修正手段
２８  制御手段
３０  ガントチャート表示画面
３１  スケジュール対象表示領域
３２  ボタン選択領域
３３  ガントチャート表示領域
３４  スクロールバー
４１  シミュレーション手段
４２  計画データ修正手段
５０  アニメーション画面
５１  時間表示領域
５２  ブロック数表示領域
【図１】
2007183817.tif 000003
【図２】
2007183817.tif 000004
【図３】
2007183817.tif 000005
【図４】
2007183817.tif 000006
【図５】
2007183817.tif 000007
【図６】
2007183817.tif 000008
【図７】
2007183817.tif 000009
【図８】
2007183817.tif 000010
【図９】
2007183817.tif 000011
【図１０】
2007183817.tif 000012
【図１１】
2007183817.tif 000013
【図１２】
2007183817.tif 000014
【図１３】
2007183817.tif 000015
【図１４】
2007183817.tif 000016
【図１５】
2007183817.tif 000017
【図１６】
2007183817.tif 000018
【図１７】
2007183817.tif 000019
【図１８】
2007183817.tif 000020
【図１９】
2007183817.tif 000021
【図２０】
2007183817.tif 000022