<実施形態>
<概要>
例えば鉄鋼製品の生産スケジュールにおいては、ガントチャートのタイルの幅、言い換えれば、タイルが示す工程の処理時間は、処理の内容や工程で用いる設備の性能等によって、最低限必要な処理時間である「最短処理時間」と、余裕を持って処理を行う場合等の上限の処理時間である「最長処理時間」が存在する(以下、「調整条件」という。)。また、タイル間、言いかえれば、タイルが示す工程間の間隔には、一般に、少なくとも必要な搬送時間や、焼鈍後のコイルの冷却時間などの「最小時間」と、温度低下で品質が劣化する限界の時間や在庫管理上の滞留時間の上限などの「最大時間」が存在する(以下、「制約条件」という。)。
従って、タイルの移動やタイルの長さの変更等を行うスケジュール修正時には、これらの調整条件や制約条件の範囲内であれば、自由にタイルの変更を行うこととしても構わないことになる。他のジョブや設備への影響は発生しないからである。しかし、これらの条件を超えるような変更が必要な場合には、他のジョブや設備への影響が発生することとなるため、その影響をできるだけ少なくすることが望まれる。
本実施形態のスケジュール作成装置では、変更したタイルの影響を、まず、隣のタイルの処理時間を短縮又は延長することで吸収し、吸収しきれなくなった場合、タイル間の時間間隔を短縮又は延長することで吸収し、タイル間の時間間隔の短縮又は延長でも吸収しきれなくなった場合に、隣のタイルを移動させる。このように、本実施形態のスケジュール作成装置では、変更したタイルの影響が、極力他のタイルへ伝搬しないようにする。
ここで、本実施形態のスケジュール作成装置の機能ブロックの構成を説明する前に、スケジュール作成装置におけるスケジュール修正方法について、図6〜図17を用いて説明する。
<スケジュール修正方法>
図6〜図15は、5つの工程を経て製造される或る製品のガントチャートを示す図である。この製品は、工程1〜工程5までの5つの工程を経て生産され、工程1〜5それぞれで設備1〜5を用いる。ガントチャート上では、それぞれの設備でのジョブを「J1」〜「J5」と記載されたタイルで表す(以下、「J1タイル」等という。)。タイルは、ジョブを処理する時間帯、すなわち、ジョブの処理の開始時刻と終了時刻とを示す。従って、タイルの横幅は、設備の占有時間に応じた長さとなっている。また、両端が矢印の太線は、タイル間の時間間隔の「最大時間」を示し、両端が矢印の白抜き線は、「最小時間」を示す。また、破線で示すタイルは、修正前のタイルを示す。
図6は、初期スケジュールのガントチャートを示す。初期スケジュールは、各タイルの処理時間を調整時間内の予め定められた時間とし、また、各タイル間の時間間隔は、制約の範囲内、すなわち、最小時間以上、最大時間以下となるように作成される。以下、タイル間をリンクというものとし、J1タイルとJ2タイルとの間のリンクをリンクP1、J2タイルとJ3タイルとの間のリンクをリンクP2、J3タイルとJ4タイルとの間のリンクをリンクP3、J4タイルとJ5タイルとの間のリンクをリンクP4というものとする。このリンクの制約である最小時間及び最大時間は、各タイルが示すジョブの処理内容及び用いられる設備に応じて異なり、図6のガントチャートで、リンクP1の最小時間11及び最大時間12、リンクP2の最小時間13及び最大時間14、リンクP3の最小時間15及び最大時間16、リンクP4の最小時間17及び最大時間18を、それぞれ矢印で示す。
次に、図7で示すように、J4タイルを白抜き矢印10の方向、すなわち、将来方向に移動する修正を行う場合を説明する。初期スケジュールでは、リンクP3の時間T10が最大時間16を超えず、リンクP4の時間T11が最小時間17より長く、工程間の制約条件を満たしている。
ユーザがJ4タイルを移動して、図8に示す位置まで移動した場合には、J4タイルが移動した分、J3タイルの処理時間が延長されて時間T12となる(黒塗り矢印51参照)。リンクP3は、時間T10に保たれたままである。また、J4タイルが移動した分、J5タイルの処理時間が短縮されて時間T13となる(黒塗り矢印52参照)。リンクP4は、時間T11に保たれたままである。このように、J4タイルの移動による影響を、J3タイル及びJ5タイルの処理時間を調整(延長又は短縮)することにより、J3タイル及びJ5タイルが吸収するので、J1タイル及びJ2タイルに影響は伝搬しない。
ユーザが更にJ4タイルを移動させた場合を、図9に示す。J4タイルの移動に伴い、J4タイルが移動した分、J3タイルの処理時間が延長され(黒塗り矢印51参照)、処理時間がJ3の処理時間の限界である時間T14に達したとする。時間T14は、J3タイルの最長処理時間である。この時、J5タイルの処理時間は時間T15まで短縮しているが、限界ではないとする(黒塗り矢印52参照)。
図9の状態から、ユーザが更にJ4タイルを移動した場合を、図10に示す。J4タイルは移動されるが、J3タイルは、処理時間が時間T14に保たれ、且つ、位置が変わらない。リンクP3の時間は、時間T10(図9参照)から時間T16まで延長される(黒塗り矢印53参照)。すなわち、J4タイルの移動の影響が、J3タイルの処理時間を延長することで吸収しきれなくなった場合には、吸収しきれない影響は、リンクP3の時間を伸ばすことによって吸収される。一方、この時、J5タイルの処理時間が、J5タイルの処理時間の限界である時間T17に達したとする。時間T17は、J5タイルの最短処理時間である。
図10の状態から、ユーザが更にJ4タイルを移動させた場合を、図11に示す。J4タイルは移動するが、J5タイルは、処理時間が時間T17を保たれ、且つ、位置が変わらない。リンクP4の時間は、時間T11(図10参照)から時間T19まで短縮される(黒塗り矢印54参照)。すなわち、J4タイルの移動の影響が、J5タイルの処理時間を短縮することで吸収しきれなくなった場合には、吸収しきれない影響は、リンクP5の時間を短くすることによって吸収される。一方、J3タイルは、処理時間が時間T14に保たれ、且つ、位置が変わらないで、リンクP3の時間は、時間T16(図10参照)から伸ばされ、リンクP3の最大時間16である時間T18に達したとする(黒塗り矢印53参照)。すなわち、J4タイルの移動の影響が、J3タイルの処理時間が延長されること、及び、リンクP3の時間が伸ばされることで吸収しきれなくなった場合である。
図11の状態から、更にJ4タイルを移動させた場合を、図12に示す。J4タイルの移動に伴い、J3タイルは、処理時間が時間T14に保たれて、移動するJ4タイルに追従して、J4タイルが移動した分移動する。リンクP3の時間は、最大時間18の時間T16に保たれたままである。J4タイルに追従するJ3タイルの移動に伴い、J3タイルの移動した分、J2タイルの処理時間が延長されて時間T22となる(黒塗り矢印55参照)。リンクP2の時間は、時間T21に保たれたままである。この時点で、J4タイルの移動の影響が、J2タイルに及んだことになる。一方、J5タイルは、処理時間が時間T17に保たれ、且つ、位置が変わらず、リンクP4の時間が、時間T19(図11参照)から短縮され、リンクP4の最小時間17である時間T20に達したとする(黒塗り矢印54参照)。すなわち、J4タイルの移動の影響が、J5タイルの処理時間が短縮されること、及び、リンクP4の時間が短くなることで吸収しきれなくなった場合である。
図12の状態から、更にJ4タイルを移動させた場合を、図13に示す。J4タイルの移動に伴い、J5タイルは、処理時間が時間T15に保たれ、J4タイルに追従して移動される。リンクP4の時間は、時間T20に保たれている。一方、J2タイルは、J4タイルの移動した分、処理時間が延長され、J2タイルの処理時間の最長処理時間である時間T23に達する。リンクP2の時間は、時間T21に保たれている。
図13の状態から、更にJ4タイルを移動させた場合を、図14に示す。J2タイルは、処理時間が時間T23に保もたれ、且つ、位置が変わらず、J4タイルが移動した分、リンクP2の時間が時間T21(図13参照)から時間T22まで延長される(黒塗り矢印56参照)。ユーザが更にJ4タイルを移動させた場合を、図15に示す。図15では、J1タイルの処理時間が延長されており(黒塗り矢印57参照)、J4タイルの移動の影響が、J1タイルにまで及んでいる。
このように、J4タイルの移動の影響を、例えば、上流側であれば、J3タイルの処理時間、リンクP3の時間、J2タイルの処理時間、リンクP2の時間というように、順に吸収していくことで、図15に示すように、J4タイルからより遠くのタイル(J4タイルとの間により多くにタイルが介在するタイル)ほど、破線の矩形で示す最初の位置からの移動距離が短くなる。すなわち、J4タイルの移動の影響が、遠くのタイルほど及び難く、また、小さくなっていることになる。例えば、図15のJ4の移動量に比べて、J3の移動量は少なく、更に、J2タイルの移動量は、J3タイルの移動量より少ないようにである。
ここでは、J4タイルが将来方向に移動する場合を説明したが、過去方向に移動した場合は、上流側であれば、J3タイルの処理時間を短縮し、最短処理時間に達すると、リンクP3の時間を短縮し、リンクP3の時間が最小時間に達すると、J3タイルをJ4タイルに追従させるように移動する。また、下流側であれば、J5タイルの処理時間を延長し、最長処理時間に達すると、リンクP4の時間を延長していく。
すなわち、J4タイルの移動方向とは逆の方向につながっているタイルは、タイルの処理時間を延長し、J4タイルとの間のリンクの時間を延長する。また、J4タイルの移動方向につながっているタイルは、タイルの処理時間を短縮し、J4タイルとの間のリンクの時間を短縮する。
また、処理時間を調整(短縮又は延長)するタイルが、移動したタイル(J4タイル)よりも上流工程のタイルである場合には、開始時刻を変更せずに終了時刻を変更して処理時間の調整(短縮又は延長)行う。例えば、図8に示すように、J4タイルが将来方向に移動した場合に、J3タイルの処理時間の終了時刻を遅くする(黒塗り矢印51参照)。J4タイルが過去方向に移動する場合には、J3タイルの処理時間の終了時刻を早くすることになる。
また、処理時間を調整(短縮又は延長)するタイルが、移動したタイル(J4タイル)よりも下流工程のタイルである場合には、終了時刻を変更せずに開始時刻を変更して処理時間の調整(短縮又は延長)行う。例えば、図8に示すように、J4タイルが将来方向に移動した場合に、J5タイルの処理時間の開始時刻を遅くする(黒塗り矢印52参照)。J4タイルが過去方向に移動する場合には、J5タイルの処理時間の開始時刻を早くすることになる。
このように、処理時間を調整するタイルが移動等されたタイルよりも上流であるか下流であるかによって、タイルの処理時間の調整方法を変えることにより、タイルの移動を可能な限り遅らせることができ、移動等されたタイルの移動等による影響が他のタイルに拡大することを一層強力に防止することができる。
図16に、本実施形態のように、タイルの処理時間とタイル間のリンクの時間とを所定の範囲で変えてスケジューリングした場合と、図21(a)で示したように、移動されたタイルとの相対位置関係を変えずに他のタイルを移動してスケジューリングした場合の例を示す。図16(a)は、タイルの処理時間とタイル間のリンクの時間とを調整した場合の例であり、J4タイルを将来方向(白抜き矢印10)に移動し、移動の影響がJ1タイル〜J3タイル、J5タイルに及んだガントチャートを示している。図16(b)は、タイルの処理時間とタイル間のリンクの時間とを変えない場合の例であり、図16(a)におけるJ4タイルの移動と同様の移動を行った場合の、J1タイル〜J3タイル、J5タイルを示している。破線の矩形が、移動前のタイルを示している。
図16(a)のガントチャートの場合、J4タイルの移動量に対して、他のタイルの移動量が、J4タイルから離れるほど小さくなっていることが分る。図16(b)では、移動量はすべてのタイルで同じである。さらに、図16(a)のガントチャートでは、図16(b)のガントチャートに比べて、J4タイルの移動量に対して、他のタイルの時間帯への影響を小さくなっていることが分る。
尚、タイルの処理時間を調整する場合に、開始時刻又は終了時刻を固定せずに調整することとしてもよい。例えば、開始時刻と終了時刻とを均等に短縮又は延長する等である。
また、上記説明では、J4タイルを移動した時間分、J3タイルの処理時間を延長し、J5タイルの処理時間を短縮しているが、例えば、休憩時間や点検時間等の設備を稼働できない時間帯が含まれる場合は、それらの時間を考慮してJ3タイルやJ5タイルの処理時間を調整する。例えば、J3タイルの延長後の処理時間内に、1時間の休憩時間が含まれる場合は、更に1時間J3タイルの処理時間を延長する等である。また、ユーザが移動させるJ4タイルも、移動中に、休憩時間を含むこととなる場合は、J4タイルの処理時間を延長することとしてもよい。
上述の図6〜図15を用いた例では、J4タイルを移動させる場合を説明したが、J4タイルの長さを変更する場合も同様に、長さを変更したことで影響が及ぶタイルの処理時間を調整し、次に、リンクの時間を短縮又は延長する。
<変更タイルと連鎖タイル>
ここで、ユーザがタイルを変更するパターンと、その変更により、処理時間を調整するタイル、及び、工程間の時間的な制約を守っているかを確認すべきリンクの選択方法について説明する。
以下、ユーザが位置や長さを変更したタイルを「変更タイル」といい、変更タイルと連動して連鎖的に処理時間の調整を行う隣のタイルを、「連鎖タイル」というものとする。また、変更タイルと連鎖タイルとの間のリンク、すなわち、時間が制約の範囲にあるか否かを確認するリンクを「確認リンク」というものとする。尚、移動した連鎖タイルは、他のタイルに影響を及ぼすことから、移動した連鎖タイルを変更タイルとみなして、処理を繰り返す。但し、移動した連鎖タイルが変更タイルよりも後の工程を示すタイルである場合には、終了時刻のみが変更された新たな変更タイルとし、連鎖タイルが変更タイルよりも前の工程を示すタイルである場合には、開始時刻のみが変更された新たな変更タイルとみなす。つまり、連鎖タイルが変更タイルとみなされると、更にその隣のタイルが連鎖タイルとみなされ、その間のリンクが確認リンクとなる。
図17に、変更タイルと確認リンクとの組み合わせを示す。前タイルは、変更タイルの1つ前の工程のタイルを示し、後タイルは、変更タイルの1つ後の工程のタイルを示す。
図17(a)は、変更タイルの終了時刻を早くした場合を示し、右辺(太線で示す)を白抜き矢印方向に移動する。この場合は、後タイルが連鎖タイルであり、後タイルの開始時刻が早められることで処理時間が延長される。また、後タイルとの間のリンクP10が、確認リンクであり、最大時間を超えていないかを確認することとなる。
図17(b)は、変更タイルの開始時刻を遅くした場合を示す。この場合は、前タイルが連鎖タイルであり、前タイルの終了時刻が遅らされることで処理時間が延長される。また、前タイルとの間のリンクP11が、確認リンクであり、最大時間を超えていないかを確認することとなる。
図17(c)は、変更タイルの終了時刻を遅くした場合を示す。この場合は、後タイルが連鎖タイルであり、後タイルの開始時刻が遅らされることで処理時間が短縮される。また、後タイルとの間のリンクP12が、確認リンクであり、最小時間を下回らないかを確認することとなる。
図17(d)は、変更タイルの開始時刻を早くした場合を示す。この場合は、前タイルが連鎖タイルであり、前タイルの終了時刻が早められることで処理時間が短縮される。また、前タイルとの間のリンクP13が、確認リンクであり、最小時間を下回らないかを確認することとなる。
図17(e)は、変更タイルの長さを変えずに将来方向に移動した場合を示す。この場合は、前タイル及び後タイルが連鎖タイルである。後タイルは、開始時刻が遅らされることで処理時間が短縮され、前タイルは、終了時刻が遅らされることで処理時間が延長される。また、前タイルとの間のリンクP14、及び、後タイルとの間のリンクP15が、確認リンクであり、リンクP14が最大時間を超えていないかを確認し、リンクP15が最小時間を下回らないかを確認することとなる。
図17(f)は、変更タイルの長さを変えずに過去方向に移動した場合を示す。この場合は、前タイル及び後タイルが連鎖タイルである。後タイルは、開始時刻が早められることで処理時間が延長され、前タイルは、終了時刻が早められることで処理時間が短縮される。また、前タイルとの間のリンクP16、及び、後タイルとの間のリンクP17が、確認リンクであり、リンクP16が最小時間を下回らないかを確認し、リンクP17が最大時間を超えていないかを確認することとなる。
また、変更タイルの変更に伴って移動した連鎖タイルを変更タイルとみなした場合は、図17(e)、(f)と同様に選択する。ただし、移動方向と反対側のタイルを連鎖タイルとし、変更タイルとみなした連鎖タイルとの間のリンクを確認リンクとする。図17(e)の場合は、前タイルを連鎖タイルとし、リンクP14を確認リンクとし、図17(f)の場合は、後タイルを連鎖タイルとし、リンクP17を確認リンクとする。連鎖タイルが移動する場合は、変更タイル側のリンクは最大時間又は最小時間に固定されているからである。
図17で示すように、連鎖タイルとは、変更タイルと連続して処理する工程であって、変更タイルが変更された場合に、変更タイルとの間の確認リンクの時間が変わるタイルである。
以下、本発明にかかる実施の一形態を図面に基づいて説明する。
<構成>
図1は、スケジュール作成装置1000の機能ブロック図である。
スケジュール作成装置1000は、例えば、マイクロプロセッサおよびその周辺回路等を備えて構成されたパソコン等であり、機能的に、スケジュール作成制御部1001、操作部1002、及び、ディスプレイ1003を備える。
操作部1002は、スケジュールを作成するプログラム等を起動するコマンド等の各種コマンド、スケジュールの作成を行う上で必要な各種データ、及び、ディスプレイ1003に表示されたガントチャート上のタイルの移動等の変更指示をスケジュール作成装置1000に入力する機器である。例えば、キーボード、マウス、タッチパネル等である。
ディスプレイ1003は、操作部1002から入力されたコマンドやデータ、及び、スケジュール作成装置1000において作成されたスケジュールをガントチャートとして出力(提示)する機器である。例えばCRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)ディスプレイ、及び、プラズマディスプレイ等の表示装置である。
スケジュール作成制御部1001は、操作情報入力部1100、スケジュール表示部1200、変更タイル検出部1300、変更タイルスケジュール更新部1400、連鎖タイル選択部1500、処理時間変更部1600、連鎖タイルスケジュール更新部1700、スケジュール作成部1800、スケジュール記憶部2000、工程間条件情報記憶部2100、工程情報記憶部2200、及び、工程調整条件情報記憶部2300を備え、スケジュール作成装置1000が備える各機能部を制御し、スケジュール作成処理等を行わせる機能を有する。
操作情報入力部1100は、操作部1002から入力されたユーザ操作を、一定周期で監視し、画面上のガントチャートに対する操作を検出し、変更タイル検出部1300に通知する機能を有する。
変更タイル検出部1300は、操作情報入力部1100から通知されたガントチャート上への操作に基づいて、タイルに対する操作を識別し、変更指示されたタイル(変更タイル)と、変更内容とを検出する機能を有する。変更内容とは、例えば、変更タイルが移動された場合は、移動前後のタイルの開始時刻及び終了時刻である。
変更タイルスケジュール更新部1400は、変更タイル検出部1300が検出した変更タイルの変更後の情報に、スケジュール記憶部2000に記憶されているスケジュールを更新する機能を有する。
連鎖タイル選択部1500は、上記<変更タイルと連鎖タイル>の項で説明したように、連鎖タイルを選択する機能を有する。確認リンクは、変更タイルと連鎖タイルの間のリンクとなる。詳細には、連鎖タイル選択部1500は、変更タイル検出部1300から渡された変更タイルの識別子、及び、変更タイルの変更前後の開始時刻及び終了時刻を基に、連鎖タイルを選択する。また、連鎖タイル選択部1500は、連鎖タイル毎に、調整内容として、連鎖タイルの処理時間を短縮するのか延長するのかを決定する。更に、連鎖タイル選択部1500は、変更タイルの変更された時間である変更時間を算出する。例えば、変更タイルが30分将来方向又は過去方向に移動された場合、連鎖タイルは変更タイルの前工程を示すタイル及び後工程を示すタイルとし、変更時間は「30分」とする。変更タイルの開始時刻のみが30分早められた場合は、連鎖タイルは変更タイルの前工程を示すタイルとし、変更時間は「30分」とする。この変更時間に基づいて、連鎖タイルの調整が行われる。
処理時間変更部1600は、連鎖タイル選択部1500が選択した連鎖タイルの処理時間を工程調整条件に反しないように調整(短縮又は延長)し、連鎖タイルの時間帯を決定する機能を有する。また、連鎖タイルを工程間条件に反しないように移動し、連鎖タイルの時間帯を決定する機能を有する。工程調整条件とは、タイルの横幅の調整可能な範囲を示し、具体的には、タイルが示す工程の処理時間として許容される最短処理時間及び最長処理時間を示す。また、工程間条件とは、確認リンクの制約の範囲を示し、具体的には、リンクの時間として許容される最小時間と最大時間を示す。
連鎖タイルスケジュール更新部1700は、処理時間変更部1600が決定した連鎖タイルの時間帯で、スケジュール記憶部2000に記憶されているスケジュールを更新する機能を有する。
スケジュール作成部1800は、初期スケジュール(図6参照)を作成し、スケジュール記憶部2000に記憶させる機能を有する。スケジュール作成部1800は、工程の処理時間として標準時間を用い、工程間条件情報記憶部2100が記憶している工程間条件を満たした初期スケジュールを作成する。尚、初期スケジュールの作成方法は、限定しない。
スケジュール表示部1200は、スケジュール記憶部2000に記憶されているスケジュールから、ガントチャートの表示データを作成し、ディスプレイ1003に表示させる機能を有する。
スケジュール記憶部2000は、スケジュールを記憶する機能を有する。スケジュール記憶部2000は、最初はスケジュールとしてスケジュール作成部1800が作成した初期スケジュールを記憶しており、その後、ユーザによるガントチャートの修正に応じて、変更タイルスケジュール更新部1400、及び、連鎖タイルスケジュール更新部1700によってスケジュールが更新される。
工程間条件情報記憶部2100は、リンク毎の工程間条件を記憶しておく機能を有する。
工程情報記憶部2200は、スケジュール作成部1800が初期スケジュールを作成するために必要な情報を記憶しておく機能を有する。
工程調整条件情報記憶部2300は、タイル毎の工程調整条件を記憶しておく機能を有する。
実施形態のスケジュール作成装置1000は、上述のように、例えば、パーソナルコンピュータ等のコンピュータを用いて構成可能であり、ハードディスク等の記憶部に格納されているスケジュール作成方法等をプログラムしたソフトウェアを実行することによって上述のスケジュール作成部1800等がコンピュータに機能的に構成される。
尚、各機能部は、複数の装置に分散していてもよい。例えば、スケジュール作成部1800、工程情報記憶部2200が、別の装置でスケジュールを作成し、スケジュール記憶部2000に送信するなどである。
<データ>
以下、スケジュール作成装置1000で用いるデータについて説明する。
図2は、工程情報テーブル2210の構成例及びその内容例を示す図である。工程情報テーブル2210は、実施形態で製造する製品の製造工程、設備等を示すものであり、工程情報記憶部2200に記憶されている。工程情報記憶部2200には、工程情報テーブル2210の他にも、初期スケジュールを作成する際にスケジュール作成部1800によって参照されるデータが記憶されているものとする。
工程情報テーブル2210は、工程番号2211、設備ID2212、及び、処理時間2213を備える。
工程番号2211は、工程の処理を示す識別子である。詳細には、工程情報テーブル2210には、1工程につき1レコードが登録されており、1番目のレコードが最初に実行される第1工程のレコード、2番目のレコードが第1工程の次に実行される第2工程のレコードというようにレコードが登録されている。また、工程番号2211として、例えば、鋳造工程、圧延工程、梱包工程などの工程の処理を示す識別子が設定されている。図2では、「工程1」、「工程2」等と記載している。
設備ID2212は、工程番号2211が示す工程で用いられる設備を特定する識別子を示す。
処理時間2213は、工程番号2211で示す工程を、設備ID2212で示す設備で処理したときに要する標準時間を示す。標準時間は、初期スケジュールを作成する場合に用いられる。
図3は、スケジュール情報テーブル2010の構成例及びその内容例を示す図である。スケジュール情報テーブル2010は、工程1〜5での1回の処理を示す。通常は、時間差をつけて、並行して同じ工程の処理が行われるので、スケジュール情報テーブル2010が複数個、スケジュール記憶部2000に記憶されていることになる。スケジュール情報テーブル2010は、ユーザがガントチャート上で行うスケジュールの修正に応じて、適時更新される。また、スケジュール表示部1200は、このスケジュール情報テーブル2010を参照してガントチャートの表示データを作成する。
スケジュール情報テーブル2010は、工程番号2011、設備ID2012、処理時間2013、開始時刻2014、終了時刻2015、及び、タイルID2016で構成される。
工程番号2011は、工程の処理を示す識別子である。スケジュール情報テーブル2010には工程情報テーブル2210と同様に、工程の順番に1工程につき1レコードが登録されており、工程番号2011として工程の処理を示す識別子が設定されている。1レコードの1工程につき、ガントチャート上に1タイルが表示される。
設備ID2012は、工程番号2211が示す工程で用いられる設備を特定する識別子を示す。
処理時間2013は、工程番号2011で示す工程を、設備ID2012で示す設備で処理する時間を示す。
開始時刻2014は、工程番号2011で示される工程の処理を開始する時刻を示し、終了時刻2015は、工程番号2011で示される工程の処理を終了する時刻を示す。
処理時間2013、開始時刻2014及び終了時刻2015は、ユーザがタイルを移動、又は、タイルの長さを変更すると、ユーザの指示に応じて変更される。また、ユーザがタイルを変更することに伴い、連鎖タイルの処理時間が調整されると、調整後の時間に変更される。
タイルID2016は、ガントチャート上の複数のタイルから、工程番号2011で示される工程の処理(ジョブ)を示すタイルを特定するための識別子を示す。
尚、スケジュール情報テーブル2010が複数記憶されている場合、開始時刻2014〜タイルID2016は、テーブルごとに異なることになる。
図4は、工程間条件情報テーブル2110の構成例及びその内容例を示す図である。工程間条件情報テーブル2110には、工程間で守るべき条件が記憶されており、詳細には、工程間(リンク)毎の最小時間及び最大時間が記憶されている。尚、最小時間及び最大時間は、同じ処理を行う工程であっても、用いられる設備によって異なる場合がある。この工程間条件情報テーブル2110は、工程間条件情報記憶部2100に記憶されており、スケジュール作成部1800が初期スケジュールを作成する際、及び、処理時間変更部1600が連鎖タイルの処理時間の調整等の処理を行う際に参照される。
工程間条件情報テーブル2110は、マトリックス上のテーブル形式であり、縦方向の先工程2111、横方向の後工程2112とで構成される。
先工程2111は、先の工程で用いられる設備の識別子を示し、後工程2112は、後の工程で用いられる設備の識別子を示す。先工程2111の設備識別子と、後工程2112の設備識別子との交差箇所に、工程間条件として、最小時間及び最大時間が「‐」を挟んで記載されている。例えば、先工程2111「設備1」と後工程2112「設備2」との工程間条件として「30−180」が設定されているので、「設備1」で示される設備を用いて行う工程と、「設備2」で示される設備を用いて行う工程との間の最小時間は「30」分であり、最大時間は「180」分となる。
図5は、工程調整条件テーブル2310の構成例及びその内容例を示す図である。工程調整条件テーブル2310には、工程の処理時間について守るべき条件が記憶されており、詳細には、工程(タイル)毎の処理時間の最短処理時間及び最長処理時間が記憶されている。その最短処理時間及び最長処理時間は、工程で行う処理が同じ内容であっても、工程で用いられる設備等によって異なる場合がある。この工程調整条件テーブル2310は、工程調整条件情報記憶部2300に記憶されており、処理時間変更部1600が、連鎖タイルの処理時間の調整等の処理を行う際に参照される。
工程調整条件テーブル2310は、工程番号2311、設備ID2312、処理最短時間2313、及び、処理最長時間2314で構成される。
工程番号2311は、工程の処理を示す識別子である。工程調整条件テーブル2310には、1工程につき1レコードが登録されている。
設備ID2312は、工程番号2311が示す工程で用いられる設備を特定する識別子を示す。
処理最短時間2313は、工程番号2311で示す工程を、設備ID2312で示す設備で処理したときに要する最短処理時間を示す。
処理最長時間2314は、工程番号2311で示す工程を、設備ID2312で示す設備で処理したときに要する最長処理時間を示す。
例えば、工程番号2311が「工程1」で示される工程の処理は、設備ID2312が「設備1」であり、処理最短時間2313が「100」、処理最長時間2314が「140」であるので、識別子が「設備1」の設備で行われ、100分から140分の間で処理時間の調整が可能である。尚、初期スケジュールでは、工程情報テーブル2210(図2参照)の工程番号2211が「工程1」、設備ID2212が「設備1」であるレコードの処理時間2213として設定されている「120」を用いて、処理時間は120分として作成される。そして、タイルの移動等により、処理時間が100分から140分の間で変更される。
<動作>
以下、スケジュール作成装置1000の動作について、図18を用いて説明する。
図18は、スケジュール作成装置1000のスケジュール修正処理のフローチャートである。
まず、ユーザは、操作部1002を操作して、初期スケジュール(図6参照)の作成及び表示を指示するコマンドを入力する。尚、事前に、工程間条件情報テーブル2110(図4参照)は工程間条件情報記憶部2100に記憶されており、工程調整条件テーブル2310(図5参照)は工程調整条件情報記憶部2300に記憶されており、また、工程情報テーブル2210(図2参照)及びスケジュールの作成に必要なデータは工程情報記憶部2200に記憶されているものとする。
スケジュール作成制御部1001は、操作部1002を介して初期スケジュールの作成及び表示を指示するコマンドが入力されたことを検出すると、スケジュール作成部1800に初期スケジュールの作成を依頼する。
依頼を受けたスケジュール作成部1800は、工程情報記憶部2200から工程情報テーブル2210及びスケジュール作成に必要なデータを読み出し、更に、工程間条件情報記憶部2100から工程間条件情報テーブル2110を読み出して、初期スケジュールを作成する。この際、スケジュール作成部1800は、工程の処理時間を、工程情報テーブル2210に記憶されている各工程の標準の処理時間とし、工程間条件情報テーブル2110に記憶されている工程間条件、すなわち、工程間の時間間隔がその工程間の最小時間以上で最大時間以下となるように、初期スケジュールを作成する。初期スケジュールを作成した1800は、その旨をスケジュール作成制御部1001に通知し、通知を受けたスケジュール作成制御部1001は、スケジュール表示部1200にガントチャートを表示するよう依頼する。
依頼を受けたスケジュール表示部1200は、スケジュール記憶部2000に記憶されているスケジュール情報テーブル2010(図3参照)を読み出し、1工程(1レコード)を1タイルとしたガントチャートの表示データを作成してディスプレイ1003に表示させる(ステップS10、図6)。
ユーザは、ディスプレイ1003に表示されたガントチャートを見ながら、操作部1002を操作して、表示されたスケジュールを修正する。ユーザが、タイルを変更する操作、例えば、タイルの移動又はタイルの長さの変更を行う操作を行う(ステップS11)。具体的には、タイルをカーソル等で選択して時間軸上を左右に、すなわち、過去方向又は将来方向に移動させる。または、タイルの左辺又は右辺を選択して時間軸上を左右に移動させてタイルの長さを変更する。
操作情報入力部1100は、操作部1002を介して入力されたユーザ操作が、ガントチャートに対する操作であることを検出すると、検出した操作の情報を変更タイル検出部1300に通知する。例えば、マウスがクリックされた場合は、その座標値を変更タイル検出部1300に通知し、タイルが移動された場合は、ガントチャート上で移動されたタイルの図形の識別番号と移動前後の座標値とを変更タイル検出部1300に通知するなどである。
通知を受けた変更タイル検出部1300は、操作情報入力部1100から通知された操作情報に基づいて、タイルへの変更操作であるか否かを判断する(ステップS11:Yes)。
変更タイル検出部1300は、操作情報入力部1100から通知された操作情報が、タイルの変更操作ではないと判断すると(ステップS11:No)、その旨及び操作情報をスケジュール作成制御部1001に通知し、通知を受けたスケジュール作成制御部1001は、操作情報に応じた操作を行う。
一方、操作情報入力部1100から通知された操作情報が、タイルの変更操作であると判断すると(ステップS11:Yes)、変更タイル検出部1300は、操作情報入力部1100から通知された操作情報に基づいて、変更指示されたタイル(変更タイル)と、変更内容とを検出する。例えば、操作情報入力部1100から通知された図形の識別番号から、変更タイルが、例えば、図7の「J4タイル」であることを検出する。また、変更内容として、操作情報入力部1100から通知された移動前後の座標値から、「J4タイル」が破線で示す位置から実線で示す位置まで移動されたこと、詳細には、変更タイルの変更前後の開始時刻及び終了時刻を検出する。
変更タイル及び変更内容を検出した変更タイル検出部1300は、検出した変更タイルの識別子と、変更後の開始時刻及び終了時刻を変更タイルスケジュール更新部1400に渡して、変更タイルの時間(位置)の更新を依頼する。
依頼を受けた変更タイルスケジュール更新部1400は、渡された変更タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS12)。具体的には、変更タイルスケジュール更新部1400は、スケジュール記憶部2000に記憶されているスケジュール情報テーブル2010(図3)の、変更タイルの識別子がタイルID2016として設定されているレコードに、渡された開始時刻を開始時刻2014として設定し、渡された終了時刻を終了時刻2015として設定する。また、渡された開始時刻と終了時刻とから処理時間を算出し、処理時間2013として設定する。
変更タイルスケジュール更新部1400に更新を依頼した変更タイル検出部1300は、次に、変更タイルの識別子と、変更前後の開始時刻及び終了時刻を、連鎖タイル選択部1500に渡して、連鎖タイルの選択を依頼する。
依頼を受けた連鎖タイル選択部1500は、渡された変更前後の開始時刻及び終了時刻から、変更タイルが移動されたのか、長さが変更されたのか等を判断し、上述の<変更タイルと連鎖タイル>で図17を用いて説明したように、連鎖タイルを選択し、調整内容を決定する(ステップS13)。具体的には、連鎖タイル選択部1500は、連鎖タイル毎に、調整内容として、連鎖タイルの処理時間を短縮するのか延長するのかを決定する。例えば、「J4タイル」が変更タイルである図8においては、連鎖タイル選択部1500は、連鎖タイルとしてJ3タイルとJ5タイルとを選択する。そして、J3タイルの調整内容として「延長」を決定し、J5タイルの調整内容として「短縮」を決定する。また、連鎖タイル選択部1500は、変更前後の開始時刻及び終了時刻から、変更タイルが変更された時間である変更時間を算出する。
連鎖タイルを選択した連鎖タイル選択部1500は、変更タイルの識別子、1つの連鎖タイルの識別子、その調整内容、及び、変更時間を、処理時間変更部1600に渡して、調整を依頼する。
依頼を受けた処理時間変更部1600は、まず、連鎖タイル選択部1500から渡された調整内容が「短縮」及び「延長」のいずれであるかを判断し(ステップS14)、「短縮」であると判断した場合は(ステップS14:短縮)、処理時間短縮処理を行い(ステップS15)、「延長」であると判断した場合は(ステップS14:延長)、処理時間延長処理を行う(ステップS16)。
ここで、ステップS15の処理時間短縮処理について、図19のフローチャートを用いて説明する。
処理時間変更部1600は、連鎖タイルの処理時間を、変更時間分だけ短縮できるか否かを判断する(ステップS51)。処理時間変更部1600は、連鎖タイルの現在の処理時間から変更時間を引いた時間が、連鎖タイルの最短処理時間以上である場合、連鎖タイルの処理時間を変更時間だけ短縮できると判断し、連鎖タイルの最短処理時間を下回る場合は、連鎖タイルの処理時間を変更時間分は短縮できないと判断する。例えば、連鎖タイルの現在の処理時間が「160分」であり、変更時間が「20分」であり、連鎖タイルの最短処理時間が「150分」である場合は、連鎖タイルの現在の処理時間「160分」から変更時間「20分」を引いた時間が「140分」となり、連鎖タイルの最短処理時間「150分」を下回る為、連鎖タイルの処理時間を変更時間は短縮できないと判断する。詳細には、処理時間変更部1600は、連鎖タイルのレコードとして、スケジュール情報テーブル2010から、タイルID2016として連鎖タイルの識別子が設定されているレコードを読み出す。そして、処理時間変更部1600は、連鎖タイルの現在の処理時間として、連鎖タイルのレコードに処理時間2013として設定されている処理時間を読み出す。また、処理時間変更部1600は、連鎖タイルのレコードに工程番号2011として設定されている工程識別子と、設備ID2012として設定されている設備識別子とを読み出す。次に、処理時間変更部1600は、工程調整条件テーブル2310から、連鎖タイルの処理時間の取り得る最短処理時間として、連鎖タイルのレコードから読み出した工程識別子が工程番号2311として設定され、連鎖タイルのレコードから読み出した設備識別子が設備ID2312として設定されているレコードに、処理最短時間2313として設定されている時間を読み出す。処理時間変更部1600は、読み出した現在の処理時間及び最短処理時間と、連鎖タイル選択部1500から渡された変更時間とからステップS51の判断を行う。
連鎖タイルの処理時間を変更時間分だけ短縮できると判断した場合(ステップS51:Yes)、処理時間変更部1600は、連鎖タイルの処理時間を変更時間だけ短縮する(ステップS52)。具体的には、連鎖タイルが変更タイルよりも下流にある場合は、開始時刻を変更時間だけ遅らせ、連鎖タイルが変更タイルよりも上流にある場合は、終了時刻を変更時間だけ早めて、連鎖タイルの開始時刻及び終了時刻を決定する。
処理時間変更部1600は、連鎖タイルの識別子と、決定した開始時刻及び終了時刻とを連鎖タイルスケジュール更新部1700に渡して、連鎖タイルの時間(位置)の更新を依頼する。
依頼を受けた連鎖タイルスケジュール更新部1700は、渡された連鎖タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS53)。具体的には、連鎖タイルスケジュール更新部1700は、スケジュール記憶部2000に記憶されているスケジュール情報テーブル2010(図3)の、連鎖タイルの識別子がタイルID2016として設定されているレコードに、渡された開始時刻を開始時刻2014として設定し、渡された終了時刻を終了時刻2015として設定する。また、渡された開始時刻と終了時刻とから処理時間を算出し、処理時間2013として設定する。
連鎖タイルスケジュール更新部1700に連鎖タイルの時間の更新を依頼した処理時間変更部1600は、連鎖タイルの処理時間の調整が終了した旨を連鎖タイル選択部1500に通知し、処理を終了する。
また、連鎖タイルの処理時間を変更時間分は短縮できないと判断した場合(ステップS51:No)、処理時間変更部1600は、連鎖タイルの処理時間を最短処理時間とする(ステップS54)。具体的には、連鎖タイルが変更タイルよりも下流にある場合は、連鎖タイルの処理時間が最短処理時間となるように開始時刻を遅らせ、連鎖タイルが変更タイルよりも上流にある場合は、連鎖タイルの処理時間が最短処理時間となるように終了時刻を早めて、連鎖タイルの開始時刻及び終了時刻を決定する。
処理時間変更部1600は、連鎖タイルの識別子と、決定した開始時刻及び終了時刻とを連鎖タイルスケジュール更新部1700に渡して、連鎖タイルの時間(位置)の更新を依頼する。
依頼を受けた連鎖タイルスケジュール更新部1700は、渡された連鎖タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS55)。
次に、処理時間変更部1600は、連鎖タイルの処理時間調整後の確認リンクの時間が、工程間条件を満たしているか、すなわち、最小時間以上であるか否かを判断する(ステップS56)。具体的には、確認リンクの時間が最小時間以上である場合は、工程間条件を満たしていると判断し、最小時間を下回る場合は、工程間条件を満たしていないと判断する。変更タイルの変更時間のうち、連鎖タイルの処理時間の調整で吸収できなかった時間分を、確認リンクの時間調整で吸収できるかを判断する。
処理時間変更部1600は、まず、変更タイルが示す工程の設備IDとして、スケジュール情報テーブル2010(図3参照)の工程番号2011として変更タイルの識別子が設定されているレコードから設備ID2012として設定されている設備識別子を読み出す。また、連鎖タイルが示す工程の設備IDとして、スケジュール情報テーブル2010の工程番号2011として連鎖タイルの識別子が設定されているレコードから設備ID2012として設定されている設備識別子を読み出す。この際、変更タイルのレコードと連鎖タイルのレコードのうち、スケジュール情報テーブル2010に登録されているレコード番号の順番が早い方を先の工程のレコードとし、遅い方を後の工程のレコードとする。そして、処理時間変更部1600は、確認リンクの最小時間として、工程間条件情報テーブル2110(図4参照)において、先の工程のレコードから読み出した設備識別子が先工程2111として設定されている行と、後の工程のレコードから読み出した設備識別子が後工程2112として設定されている列とが交差している欄に記載されている工程間条件の最小時間を読み出す。例えば、図7のリンクP3の工程間条件は、先工程2111として「設備3」が設定されている行と、後工程2112として「設備4」が設定されている列とが交差している欄に記載されている「60−120」であり、最小時間が60分、最大時間が120分となる。また、処理時間変更部1600は、先の工程のレコードに終了時刻2015として設定されている終了時刻と、後の工程のレコードに開始時刻2014として設定されている開始時刻とを読み出し、終了時刻から開始時刻までの時間を算出し、確認リンクの時間とする。
そして、処理時間変更部1600は、算出した確認リンクの時間と、確認リンクの最小時間とを比較し、確認リンクの時間が、最小時間以上である場合は(ステップS56:Yes)、連鎖タイルの処理時間の調整が終了した旨を連鎖タイル選択部1500に通知し、処理を終了する。
また、確認リンクの時間が、最小時間を下回る場合は(ステップS56:No)、処理時間変更部1600は、確認リンクが最小時間となるように、連鎖タイルを移動する(ステップS57)。具体的には、確認リンクの時間から最小時間を引いた時間分、連鎖タイルを変更タイルから離れる方向に移動する。例えば、確認リンクの時間が「60分」であり、最小時間が「70分」である場合は、連鎖タイルが変更タイルよりも下流にある場合は、開始時刻及び終了時刻をそれぞれ「10分」遅らせ、連鎖タイルが変更タイルよりも上流にある場合は、開始時刻及び終了時刻をそれぞれ「10分」早めて、連鎖タイルの開始時刻及び終了時刻を決定する。
処理時間変更部1600は、連鎖タイルの識別子と、決定した開始時刻及び終了時刻とを連鎖タイルスケジュール更新部1700に渡して、連鎖タイルの時間(位置)の更新を依頼する。
依頼を受けた連鎖タイルスケジュール更新部1700は、渡された連鎖タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS58)。
連鎖タイルスケジュール更新部1700に連鎖タイルの時間の更新を依頼した処理時間変更部1600は、連鎖タイルの処理時間の調整が終了した旨を連鎖タイル選択部1500に通知し、連鎖タイルを変更タイルとして連鎖タイルの選択を依頼する(ステップS57)。この際、処理時間変更部1600は、連鎖タイルの識別子、移動前後の開始時刻及び終了時刻を連鎖タイル選択部1500に渡す。
これで、図18のステップS15の処理時間短縮処理を終了する。
図18のステップS14において、処理時間変更部1600は、連鎖タイル選択部1500から渡された調整内容が「延長」であると判断した場合は(ステップS14:延長)、処理時間延長処理を行う(ステップS16)。
ここで、ステップS16の処理時間延長処理について、図20のフローチャートを用いて説明する。
処理時間変更部1600は、連鎖タイルの処理時間を、変更時間分だけ延長できるか否かを判断する(ステップS71)。処理時間変更部1600は、連鎖タイルの現在の処理時間に変更時間を加えた時間が、連鎖タイルの最長処理時間以下である場合、連鎖タイルの処理時間を変更時間だけ延長できると判断し、連鎖タイルの最長処理時間を上回る場合は、連鎖タイルの処理時間を変更時間分は延長できないと判断する。例えば、連鎖タイルの現在の処理時間が「160分」であり、変更時間が「20分」であり、連鎖タイルの最長処理時間が「200分」である場合は、連鎖タイルの現在の処理時間「160分」に変更時間「20分」を加えた時間が「180分」となり、連鎖タイルの最長処理時間「200分」以下となる為、連鎖タイルの処理時間を変更時間分延長できると判断する。詳細には、処理時間変更部1600は、連鎖タイルのレコードとして、スケジュール情報テーブル2010から、タイルID2016として連鎖タイルの識別子が設定されているレコードを読み出す。そして、処理時間変更部1600は、連鎖タイルの現在の処理時間として、連鎖タイルのレコードに処理時間2013として設定されている処理時間を読み出す。また、処理時間変更部1600は、連鎖タイルのレコードに工程番号2011として設定されている工程識別子と、設備ID2012として設定されている設備識別子とを読み出す。次に、処理時間変更部1600は、工程調整条件テーブル2310から、連鎖タイルの処理時間の取り得る最長処理時間として、読み出した工程識別子が工程番号2311として設定され、読み出した設備識別子が設備ID2312として設定されているレコードに、処理最長時間2314として設定されている時間を読み出す。処理時間変更部1600は、読み出した現在の処理時間及び最長処理時間と、連鎖タイル選択部1500から渡された変更時間とからステップS71の判断を行う。
連鎖タイルの処理時間を変更時間分だけ延長できると判断した場合(ステップS71:Yes)、処理時間変更部1600は、連鎖タイルの処理時間を変更時間だけ延長する(ステップS72)。具体的には、連鎖タイルが変更タイルよりも下流にある場合は、開始時刻を変更時間だけ早め、連鎖タイルが変更タイルよりも上流にある場合は、終了時刻を変更時間だけ遅くして、連鎖タイルの開始時刻及び終了時刻を決定する。
処理時間変更部1600は、連鎖タイルの識別子と、決定した開始時刻及び終了時刻とを連鎖タイルスケジュール更新部1700に渡して、連鎖タイルの時間(位置)の更新を依頼する。
依頼を受けた連鎖タイルスケジュール更新部1700は、渡された連鎖タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS73)。
連鎖タイルスケジュール更新部1700に連鎖タイルの時間の更新を依頼した処理時間変更部1600は、連鎖タイルの処理時間の調整が終了した旨を連鎖タイル選択部1500に通知し、処理を終了する。
また、連鎖タイルの処理時間を変更時間分は短縮できないと判断した場合(ステップS71:No)、処理時間変更部1600は、連鎖タイルの処理時間を最長処理時間とする(ステップS74)。具体的には、連鎖タイルが変更タイルよりも下流にある場合は、連鎖タイルの処理時間が最長処理時間となるように開始時刻を早め、連鎖タイルが変更タイルよりも上流にある場合は、連鎖タイルの処理時間が最長処理時間となるように終了時刻を遅くして、連鎖タイルの開始時刻及び終了時刻を決定する。
処理時間変更部1600は、連鎖タイルの識別子と、決定した開始時刻及び終了時刻とを連鎖タイルスケジュール更新部1700に渡して、連鎖タイルの時間(位置)の更新を依頼する。
依頼を受けた連鎖タイルスケジュール更新部1700は、渡された連鎖タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS75)。
次に、処理時間変更部1600は、連鎖タイルの処理時間調整後の確認リンクの時間が、工程間条件を満たしているか、すなわち、最大時間以下であるか否かを判断する(ステップS76)。具体的には、確認リンクの時間が最大時間以下である場合は、工程間条件を満たしていると判断し、最小時間を下回る場合は、工程間条件を満たしていないと判断する。変更タイルの変更時間のうち、連鎖タイルの処理時間の調整で吸収できなかった時間分を、確認リンクの時間調整で吸収できるかを判断する。
処理時間変更部1600は、まず、変更タイルが示す工程の設備IDとして、スケジュール情報テーブル2010の工程番号2011として変更タイルの識別子が設定されているレコードから設備ID2012として設定されている設備識別子を読み出す。また、連鎖タイルが示す工程の設備IDとして、スケジュール情報テーブル2010(図3参照)の工程番号2011として連鎖タイルの識別子が設定されているレコードから設備ID2012として設定されている設備識別子を読み出す。この際、変更タイルのレコードと連鎖タイルのレコードのうち、スケジュール情報テーブル2010に登録されているレコード番号の順番が早い方を先の工程のレコードとし、遅い方を後の工程のレコードとする。そして、処理時間変更部1600は、確認リンクの最大時間として、工程間条件情報テーブル2110(図4参照)において、先の工程のレコードから読み出した設備識別子が先工程2111として設定されている行と、後の工程のレコードから読み出した設備識別子が後工程2112として設定されている列とが交差している欄に記載されている工程間条件の最大時間を読み出す。また、処理時間変更部1600は、先の工程のレコードに終了時刻2015として設定されている終了時刻と、後の工程のレコードに開始時刻2014として設定されている開始時刻とを読み出し、終了時刻から開始時刻までの時間を算出し、確認リンクの時間とする。
そして、処理時間変更部1600は、算出した確認リンクの時間と、確認リンクの最大時間とを比較し、確認リンクの時間が、最大時間以下である場合は(ステップS76:Yes)、連鎖タイルの処理時間の調整が終了した旨を連鎖タイル選択部1500に通知し、処理を終了する。
また、確認リンクの時間が、最大時間を上回る場合は(ステップS76:No)、処理時間変更部1600は、確認リンクが最大時間となるように、連鎖タイルを移動する(ステップS77)。具体的には、確認リンクの時間から最大時間を引いた時間分、連鎖タイルを変更タイルに近づく方向に移動する。例えば、確認リンクの時間が「160分」であり、最大時間が「150分」である場合は、連鎖タイルが変更タイルよりも下流にある場合は、開始時刻及び終了時刻をそれぞれ「10分」早め、連鎖タイルが変更タイルよりも上流にある場合は、開始時刻及び終了時刻をそれぞれ「10分」遅くして、連鎖タイルの開始時刻及び終了時刻を決定する。
処理時間変更部1600は、連鎖タイルの識別子と、決定した開始時刻及び終了時刻とを連鎖タイルスケジュール更新部1700に渡して、連鎖タイルの時間(位置)の更新を依頼する。
依頼を受けた連鎖タイルスケジュール更新部1700は、渡された連鎖タイルの識別子が示すタイルの開始時刻と終了時刻を更新する(ステップS78)。
連鎖タイルスケジュール更新部1700に連鎖タイルの時間の更新を依頼した処理時間変更部1600は、連鎖タイルの処理時間の調整が終了した旨を連鎖タイル選択部1500に通知し、連鎖タイルを変更タイルとして連鎖タイルの選択を依頼する(ステップS77)。この際、処理時間変更部1600は、連鎖タイルの識別子、移動前後の開始時刻及び終了時刻を連鎖タイル選択部1500に渡す。
これで、図18のステップS16の処理間延長処理が終了する。
処理時間変更部1600から、連鎖タイルの処理時間の調整が終了した旨が通知され、連鎖タイルを変更タイルとして連鎖タイルの選択を依頼された連鎖タイル選択部1500は、次に、上述の<変更タイルと連鎖タイル>の項で説明したように連鎖タイルを変更タイルとみなして連鎖タイルを選択し、確認内容を決定し、連鎖タイルの識別子等を処理時間変更部1600に渡して、ステップS14からの処理を行う(ステップS17:Yes)。また、連鎖タイルの処理時間の調整が終了した旨が通知され、連鎖タイルを変更タイルとして連鎖タイルの選択が依頼されなかった場合は、まだ処理していない確認リンクがある場合(ステップS17:Yes)には、その連鎖タイルの識別子等を処理時間変更部1600に渡して処理を依頼する。
ステップS17において、すべての確認リンクの処理を行ったと判断した場合(ステップS17:No)、連鎖タイル選択部1500は、変更タイルの移動処理が終了した旨をスケジュール作成制御部1001に通知する。通知を受けたスケジュール作成制御部1001は、スケジュール表示部1200にスケジュールを表示するよう依頼し、依頼を受けたスケジュール表示部1200は、スケジュール記憶部2000に記憶されているスケジュール情報テーブル2010(図3参照)を読み出し、ガントチャートの表示データを作成してディスプレイ1003に表示させる(ステップS18)。
スケジュール表示部1200にスケジュールの表示依頼をしたスケジュール作成制御部1001は、ユーザが操作部1002を操作して終了指示を入力したこと検出すると(ステップS19:Yes)、スケジュール作成処理を終了し、ユーザが終了指示以外の指示を入力した場合(ステップS19:No)は、ステップS11からの処理を繰り返す。
このように、タイルの移動等の影響を、所定範囲での処理時間の変更で吸収し、処理時間の変更で吸収できない場合に、変更タイルの移動等に連鎖させるように他のタイルを移動させることができる。そのため、他のタイルへの影響を最小限にできることになる。
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更および/または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。