JP2007334855A - スケジュール作成方法,スケジュール作成装置,及びコンピュータプログラム - Google Patents
スケジュール作成方法,スケジュール作成装置,及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2007334855A JP2007334855A JP2006271193A JP2006271193A JP2007334855A JP 2007334855 A JP2007334855 A JP 2007334855A JP 2006271193 A JP2006271193 A JP 2006271193A JP 2006271193 A JP2006271193 A JP 2006271193A JP 2007334855 A JP2007334855 A JP 2007334855A
- Authority
- JP
- Japan
- Prior art keywords
- time
- change
- matrix
- start time
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004590 computer program Methods 0.000 title claims description 73
- 238000002360 preparation method Methods 0.000 title abstract description 6
- 238000000034 method Methods 0.000 claims abstract description 853
- 230000008569 process Effects 0.000 claims abstract description 648
- 239000011159 matrix material Substances 0.000 claims abstract description 293
- 230000008859 change Effects 0.000 claims description 389
- 238000012545 processing Methods 0.000 claims description 288
- 238000003860 storage Methods 0.000 claims description 150
- 238000003754 machining Methods 0.000 claims description 145
- 238000004364 calculation method Methods 0.000 claims description 135
- 230000003111 delayed effect Effects 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 3
- 230000014509 gene expression Effects 0.000 description 65
- 239000000463 material Substances 0.000 description 34
- 238000004519 manufacturing process Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 238000012384 transportation and delivery Methods 0.000 description 6
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 5
- 230000008929 regeneration Effects 0.000 description 5
- 238000011069 regeneration method Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- General Factory Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】より少ないメモリ消費で、与えられたシステムをMPLシステムとして表現できる形式に簡単に導出できるようにする。
【解決手段】入力パラメータとして、各工程iの実行時間diと工程i間の先行制約関係の各情報をスケジュール作成装置1のRAM12に記憶する。スケジュール作成装置1は、この入力パラメータに基づき、独自のシステム構造を表現する行列A0,F,B0,Cの各要素を決定し、さらにここで決定した行列Fから行列F*を算出して、簡単にmax-plus代数上で線形なMPL形式を導出するための行列A0,F*,B0,Cを取得する。
【選択図】図1
【解決手段】入力パラメータとして、各工程iの実行時間diと工程i間の先行制約関係の各情報をスケジュール作成装置1のRAM12に記憶する。スケジュール作成装置1は、この入力パラメータに基づき、独自のシステム構造を表現する行列A0,F,B0,Cの各要素を決定し、さらにここで決定した行列Fから行列F*を算出して、簡単にmax-plus代数上で線形なMPL形式を導出するための行列A0,F*,B0,Cを取得する。
【選択図】図1
Description
本発明は、複数の工程を経て作業を行なう作業プロセスのスケジュール作成方法,スケジュール作成装置,及びコンピュータプログラムに関する。
生産システムの工程管理や、プロジェクトの進捗管理など、複数の工程が存在する作業プロセスに対して管理を行なう場合、例えば、ある工程が終了しないと次の工程に移れない、又は複数の工程で同時並行して作業が可能であるなど、様々な制約条件が課されている。そのため、こうしたシステムやプロジェクトの管理(マネジメント)には、納期遅れを出さす、かつできるだけ低コストで実行することが求められる。また、複数存在する工程の中で、どこが作業効率の最も悪い工程箇所であるボトルネックであるのかを常に把握し、納期遅れが生じないように、これらの工程の進捗状況には、常に注意を払うことが必要である。
従来、この種のシステムやプロジェクトのスケジュール管理としては、ガントチャートがしばしば用いられ、またクリティカルパス(重要な経路)の把握には、アローダイアグラムを用いて解析することが多い。前者のガントチャートによる方法は、各工程がいつ実行されるのかが明確に記述されるため、人員や設備の計画やタスクの進捗状況把握に適している。しかし、工程の実行順序に関する制約関係は明示されないため、一つの工程の遅れが後続の工程や終了時刻にどのような影響を与えるのかを把握するのが難しいという欠点がある。
他方、アローダイアグラムによる方法は、タスクの実行順序を明確に記述するため、クリティカルパス即ちボトルネック工程を把握することが容易にできる利点がある。その反面、どの資源をいつ使うのかの把握が難しく、資源割当や進捗管理といった用途には向いていない。また、同一資源を共有しながら複数のプロジェクトを同時並行で実施したり、同一の製品を繰り返し生産したりするような場合の解析には向いていない。
同一資源を繰り返し用いるようなシステムの記述と解析方法の一つに、時間付きペトリネット(TPN)を用いる方法も提案されている。この方法では、トランジションの発火時刻を、工程の開始時刻や終了時刻とすると共に、プレース内でのトークンの保有時間を工程の実行時間とし、制御プレースによって資源の非競合(no-concurrency)を表現している。全てのプレースの上流と下流にトランジションが一つずつあるようなペトリネットのサブクラスは、TEG(Timed Event Graph)と呼ばれており、TEGの振る舞いは、後述するmax-plus代数を用いて表現できることが知られている。
max-plus代数は、別名(max,+)代数とも呼ばれており、離散事象システムのモデリング,解析,制御のための代表的なアプローチとして研究が進められている。離散事象システムの典型的な事象生起条件は、(1)複数の離散現象の同期(synchronization)。すなわち、全て生起することが別な離散現象の生起条件となる。(2)事象生起後、一定時間が経過した後に別の事象が生起する。以上の2つの条件が挙げられるが、max-plus代数では、(1)の条件を事象生起時刻のmax演算で記述し、(2)の条件を事象生起時刻と経過時間の+演算で記述することができる。
max-plus代数の一番大きな特徴は、前記max演算を加算,+演算を乗算と定義することで、本来は非線形演算となるmax演算に、ある種の線形特性を持たせることができる点にある。そのため、通常の(+,×)代数系で成立する交換則や分配則が、スカラーや行列の演算において成立するなど、興味深い性質を持つ。また、前記TEGの挙動は、MPL(max-plus線形)形式と呼ばれるmax-plus代数系での線形方程式を用いて表現できることが知られており、これは現代制御理論におけるシステムの状態空間表現に類似した形式となっている。このため、内部モデル制御やモデル予測制御など、現代制御理論における研究成果を応用する試みも行われている。
そこで、この種のスケジュール作成方法やスケジュール作成装置に用いられるmax-plus代数について、より具体的に説明する。max-plus代数とは、或るクラスの離散事象システムの記述に適した代数系であり、ここでは実数体をRと表し、D=R∪{±∞}において、加算及び乗算の二つの演算式を次のように定義する。
なお、上記加算や乗算の演算子は、通常の代数系での演算子と区別するために、「+」や「×」のシンボルを丸印で囲んで表現するが、乗算については混乱のない限り演算子の表記を省略する。これらの演算子の間には、通常の代数系と同様に、交換法則,結合法則,分配法則が成り立ち、式の変形など通常の代数系と同様の計算を行なうことができる。また、演算の優先順位は、加算よりも乗算が高いとする。加算及び乗算の単位元を、それぞれε(=−∞)及びe(=0)と定義すると、任意のx∈Dに対して、次の式が成り立つ。
さらに、上記数67や数68の式以外に、次の2つの演算子(∧,\)も次のように定義する。
ここで、上記max関数は、括弧内で最大の値を算出することを意味し、min関数は、括弧内で最小の値を算出することを意味する。また、複数の数に対する演算子は、m≦nのときに、次のように記述される。
なお、m>nの場合は、何も演算を行なわず、前後の演算に対する単位元に成るものとする。
max-plus代数では、Dの元を要素に持つ行列に対しても、同様の演算子を用いて定義することができる。ここでは、m行n列の行列X(X∈Dm×n)に対し、XTは行列Xの転置行列を表し、[X]ijはi行j列の成分(要素)を表わすものとする。また、m行n列の行列X,Y(X,Y∈Dm×n)において、全てのi及びjに対して(但し、1≦i≦m,1≦j≦n)、[X]ij≦[Y]ijが成立するときに、X≦Yと表す。このとき、X,Y∈Dm×nに対して、次の式に示す演算式を定義する。
また、m行l列の行列Xと、l行p列の行列Y(X∈Dm×l,Y∈Dl×p)に対して、次の式に示す演算式を定義する。
さらに、加算の単位元はεmnと表記し、これはεmn∈Dm×nにおいて、全ての成分がεであることを意味する。また乗算の単位元はemと表記し、これはem∈Dm×mにおいて、対角成分のみeで、それ以外の非対称成分は全てεであることを意味する。以上の定義により、max-plus代数において、線形性を有する行列演算が可能となる。そして、こうしたmax-plus代数を用いることで、作業プロセス内で順に行われる作業の順番(以下、イベントカウンタと言う)を独立変数とし、作業プロセス内で作業が行われる時刻をイベントカウンタの関数として記述することで、工程管理や進捗管理におけるスケジュールを作成することができる。
次に、上記max-plus代数を用いたMPLシステムについて説明する。MPLシステムとは、そのシステムの振る舞いがmax-plus代数上で線形な形式で表現することができるシステムのことで、次の式に示すような現代制御理論の状態空間表現に類似した形式で表される。
上式におけるイベントカウンタkは、初期状態からの事象の発生回数を表す。また、x(k)∈Dn,u(k)∈Dp,y(k)∈Dqはそれぞれ、状態変数,制御入力,制御出力であり、k回目の事象が起こる時刻を表す。なお、n,p,qはそれぞれの変数の持つ次元である。さらに、A∈Dn×n,B∈Dn×p,C∈Dq×nはそれぞれ、システム行列,入力行列,出力行列である。
ここで、図7に示すような作業プロセスとしての生産プロセスが、MPLシステムによりどのようにしてモデリングされるのかを具体的に説明する。図7は、複数の工程からなる生産システムにおける加工順序の一例を示した模式図であって、ここでは入力から工程1に材料(部品)を投入して加工し、その加工が終了した後に、工程2と工程3で同時並行的に材料の加工を行なう。続く工程4では、工程2と工程3の両方から加工済部品を受取って加工を行ない、この工程4の加工が完了すると、製品として完成し出力される。
この生産システムに対して、工程1〜4の各加工時間を、それぞれd1,d2,d3,d4とする。また、k番目のバッチ加工に関して、工程1に投入される材料の投入時刻をu(k)とし、工程1〜4におけるそれぞれの加工開始時刻を、x1(k),x2(k),x3(k),x4(k)とし、全ての加工が終了した製品の完成時刻をy(k)として定義する。つまり、u(k)およびy(k)は、各々システムに対する制御入力と制御出力に相当し、x1(k)〜x4(k)は、システム内部の状態変数に相当する。
さらに、図中に示した生産システムの各工程1〜4には、次のような制約条件が課せられているものとする。
・各工程1〜4の設備が稼動中のときには、その加工が終了するまで、次の加工を開始できない。
・先行工程を有する工程2〜4は、それらの先行工程の加工が終了しないと、加工を開始できない。
・入力のある工程1は、当該番号の材料を受取らないと加工を開始できない。
・各工程1〜4の設備が空即ち稼動していない状態で、先行工程や入力から材料を受取ると、直ちに加工を開始する。
・各工程1〜4の設備が稼動中のときには、その加工が終了するまで、次の加工を開始できない。
・先行工程を有する工程2〜4は、それらの先行工程の加工が終了しないと、加工を開始できない。
・入力のある工程1は、当該番号の材料を受取らないと加工を開始できない。
・各工程1〜4の設備が空即ち稼動していない状態で、先行工程や入力から材料を受取ると、直ちに加工を開始する。
以上の制約条件より、工程1が(k+1)番目の材料の加工を開始する時刻x1(k+1)は、k+1番目の材料が投入された時刻u(k+1)と、工程1でk番目の材料の加工が終了した時刻x1(k)+d1の遅い方に定められると共に、工程2が(k+1)番目の材料の加工を開始する時刻x2(k+1)は、工程2でk番目の材料の加工が終了した時刻x2(k)+d2と、工程1から(k+1)番目の加工済材料を受取った時刻x1(k+1)+d1の遅い方に定められ、同様に、工程3が(k+1)番目の材料の加工を開始する時刻x3(k+1)は、工程3でk番目の材料の加工が終了した時刻x3(k)+d3と、工程1から(k+1)番目の加工済材料を受取った時刻x1(k+1)+d1の遅い方に定められる。また、工程4が(k+1)番目の材料の加工を開始する時刻x3(k+1)は、工程2から(k+1)番目の加工済材料を受取った時刻x2(k+1)+d2と、工程3から(k+1)番目の加工済材料を受取った時刻x3(k+1)+d3と、工程4でk番目の材料の加工が終了した時刻x4(k)+d4の遅い方に定められる。さらに、k番目の加工済材料が製品として完了する時刻y(k)は、工程4でk番目の材料の加工が終了した時刻x4(k)+d4に一致する。これらをmax-plus代数により表現すると、前述した遅い方の時刻の算出はmax演算子で記述することができるので、以下に示す各数式のようになる。
上記数79を数80および数81に代入し、これらを数46に代入すると、数79〜数83は前記数77や数78で表され、MPLシステムの形式で記述することができる。但し、ここでの数77や数78におけるシステム行列Aや、入力行列Bや、出力行列Cは、次の式のようになる。
数77や数78の式は、作業プロセスでの作業開始時刻および終了時刻に関する一般的な表現となっており、これらの数式をさらに変形すると、未来の製品完了時刻y(k+1)を、現在の内部状態x(k)と、未来の材料の投入時刻u(k+1)とにより計算することが可能になる。従って、生産システムの内部状態x(k)が定まっており、未来の製品完了時刻y(k+1)として、生産システムにおける納期である望ましい出力R(k+1)を定めたとき、納期遅れを出すことがない適切な入力u(k+1)を求めることができる。また、イベントカウンタがk+2以降の場合は、イベントカウンタを一つずつ増やして再計算することにより、生産システムに適切な投入時刻を求めることが可能となり、最終的に作業プロセスのスケジュールを作成することができる。
こうしたMPLシステムを利用した生産システムのモデリングは、例えば特許文献1や特許文献2などにも開示され、作業プロセスのスケジュールを作成する方法として広く採用されているが、例えば先行制約を有するプロジェクトのスケジューリング問題にも同様に適用することができ、その場合の各工程はタスクに相当する。但し、本発明では、こうしたタスクを含めたものを工程として定義する。
特開2004−240853号公報
特開2005−339178号公報
上述したような作業プロセスのスケジュールを作成するためには、作業プロセスをモデル化して、上記数80〜数82にあるような右辺にxi(k+1)を含む式から、数77のような右辺にx(k+1)が現れない形式に変形を行って、MPLシステムに適合する作業プロセスの状態を表現した式に作成変換し、線形計画法などを用いた数値計算を行なう必要がある。しかし、従来のこうした方法では、作業プロセスの状態を表現する数77や数78の式を手作業で作成していたため、複雑な作業プロセスに対して適用することが困難であるという問題があった。また、こうした点を考慮して、特許文献1では、作業プロセスのスケジュールを作成する一連の手順をコンピュータで処理する手法を提案しているが、メモリ消費が大きく処理システムが膨大なものとなり、計算が非効率で改善が求められていた。
また、特許文献1や特許文献2では、与えられた納期丁度に製品が完成するように、材料の投入時刻u(k+1)を求め、システムの状態変化に応じてそれらを適切に修正する方法を提案している。しかし、これは本来システムの入力である材料の投入時刻u(k+1)を決定することに焦点が当てられており、途中工程における稼動状態の把握や、ボトルネック工程の把握については、十分に検討されてはいなかった。
さらに、システムが実際に稼動開始した後で、材料の投入時刻(入力時刻)や加工時間などの関連パラメータが変化した場合に、効率的な再スケジューリングを行なうことが、工程やプロジェクトなどの管理において重要である。この点についても、改善が求められていた。
本発明は上記の問題点に鑑みなされたもので、その第1の目的は、より少ないメモリ消費で、与えられたシステムをMPLシステムとして表現できる形式に簡単に導出することが可能なスケジュール作成方法,スケジュール作成装置,及びコンピュータプログラムを提供することにある。
また、本発明の第2の目的は、途中工程の稼動状態や、ボトルネック工程を十分に把握することが可能なスケジュール作成方法,スケジュール作成装置,及びコンピュータプログラムを提供することにある。
さらに、本発明の第3の目的は、システムの稼動後に各種パラメータが変化した場合に、適確に且つ効率的に再スケジューリングを実行できるスケジュール作成方法,スケジュール作成装置,及びコンピュータプログラムを提供することにある。
本発明は、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間が取込部で入力パラメータとして取り込まれると、この取込部で取り込んだ入力パラメータを記憶部で記憶し、さらに前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に演算部が変換するスケジュール作成方法において、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数85〜数88で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ前記演算部で決定する第1のステップと、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数85〜数88で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ前記演算部で決定する第1のステップと、
前記行列Fを用いて、次の数89の行列F*(但し、Flにおいて全ての要素がεになり、またnは工程数である)を前記演算部で算出する第2のステップと、
を順次実行するスケジュール作成方法である。
この場合、k番目の工程処理に関して、各工程での処理開始時刻をx(k)とし、入力時刻をu(k)としたときに、前記第1及び第2のステップで算出した行列A0,B0,及びF*と、前記演算部に取り込まれる前記処理開始時刻x(k)及び入力時刻u(k)とを利用して、次の数90に基づき工程の最早開始時刻xEを前記演算部で算出する第3のステップをさらに備えている。
また、前記第1および第2のステップで算出した行列C及びF*と、前記第3のステップで算出した前記全ての工程の最早開始時刻xEとを利用して、次の数91に基づき全ての工程の最遅開始時刻xLを前記演算部で算出する第4のステップをさらに備えている。
さらに、前記最遅開始時刻xLから最早開始時刻xEを減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出する第5のステップをさらに備えるのが好ましい。
本発明は、上記方法において、前記演算部が前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を再計算し、変更後の行列A0〜,F〜,C〜,F*〜を前記記憶部に記憶させる第6のステップと、
前記演算部が前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7のステップと、
前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の処理開始時刻x〜(0)として前記記憶部に記憶させる第8のステップと、
前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記第1のステップで算出した行列B0を用いて、次の数92に基づき変更後の最早開始時刻x〜Eを前記演算部で算出する第9のステップと、
前記演算部が前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7のステップと、
前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の処理開始時刻x〜(0)として前記記憶部に記憶させる第8のステップと、
前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記第1のステップで算出した行列B0を用いて、次の数92に基づき変更後の最早開始時刻x〜Eを前記演算部で算出する第9のステップと、
をさらに備えている。
この場合、前記第8のステップで前記離散事象システムにおける処理開始時刻xの変更情報だけを取得し、且つその変更後の値が元の値よりも大きくなっているときには、前記第9のステップで、次の数93に基づき変更後の最早開始時刻x〜Eを算出してもよい。
上記変更後の最早開始時刻x〜Eを算出した後は、前記第1のステップで算出した行列Cまたは前記第6のステップで算出した変更後の行列C〜及び前記第6のステップで算出したF*〜と、全ての工程における前記変更後の最早開始時刻x〜Eとを利用して、次の数94に基づき全ての工程における変更後の最遅開始時刻x〜Lを算出する第10のステップをさらに備えるのが好ましい。
この場合、前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算することで、全工程の変更後におけるトータルフロートを算出すると共に、この変更後におけるトータルフロートの値が0になる工程を検索し、それを変更後のボトルネック工程として再抽出する第11のステップをさらに備えるのが好ましい。
また、本発明のスケジュール作成方法は、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間が取込部で入力パラメータとして取り込まれると、この取込部で取り込んだ入力パラメータを記憶部で記憶し、さらに前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に演算部が変換するスケジュール作成方法において、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数95〜数99で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ前記演算部で決定する第1のステップと、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数95〜数99で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ前記演算部で決定する第1のステップと、
前記行列F0を用いて、次の数100の行列(PkF0)*(但し、(PkF0)lにおいて全ての要素がεになり、またnは工程数である)を前記演算部で算出する第2のステップと、
を順次実行することを特徴とする。
この場合、k番目の工程処理に関して、各工程での処理終了時刻をx+(k)とし、入力時刻をu(k)としたときに、前記第1及び第2のステップで算出した行列Pk,B0,及び(PkF0)*と、前記演算部に取り込まれるk−1番目の前記処理終了時刻x+(k−1)及び入力時刻u(k)とを利用して、次の数101に基づきk番目の処理工程の最早終了時刻x+ E(k)を前記演算部で算出する第3のステップをさらに備えている。
また、k番目の工程処理に関して、各工程での処理開始時刻をx-(k)とし、出力時刻をu(k)としたときに、前記第1及び第2のステップで算出した行列Pk,C0,及び(PkF0)*と、前記演算部に取り込まれるk+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)とを利用して、次の数102に基づきk番目の処理工程の最遅開始時刻x- L(k)を前記演算部で算出する第4のステップをさらに備えている。
さらに好ましくは、前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出する第5のステップをさらに備えている。
こうした方法において、本発明では、前記演算部が、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させる第6のステップと、
前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させる第7のステップと、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させる第8のステップと、
前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記第1のステップで算出した行列F0,B0を用いて、次の数103に基づき変更後の最早終了時刻x〜+ E(k)を前記演算部で算出する第9のステップと、
前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させる第7のステップと、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させる第8のステップと、
前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記第1のステップで算出した行列F0,B0を用いて、次の数103に基づき変更後の最早終了時刻x〜+ E(k)を前記演算部で算出する第9のステップと、
をさらに備えている。
これに代わる簡便な方法として、前記演算部が、前記離散事象システムにおける処理終了時刻x+(k)の変更情報だけを取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させる第10のステップと、
前記記憶部から読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっているときに、次の数104に基づき変更後の最早終了時刻x〜+ E(k)を算出する第11のステップと、をさらに備えてもよい。
前記記憶部から読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっているときに、次の数104に基づき変更後の最早終了時刻x〜+ E(k)を算出する第11のステップと、をさらに備えてもよい。
また、前記演算部が、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させる第12のステップと、
前記演算部が前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させる第13のステップと、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させる第14のステップと、
前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記第1のステップで算出した行列F0,C0を用いて、次の数105に基づき変更後の最遅開始時刻x〜- L(k)を前記演算部で算出する第15のステップと、
前記演算部が前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させる第13のステップと、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させる第14のステップと、
前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記第1のステップで算出した行列F0,C0を用いて、次の数105に基づき変更後の最遅開始時刻x〜- L(k)を前記演算部で算出する第15のステップと、
をさらに備えていてもよい。
簡便な方法として、前記演算部が、前記離散事象システムにおける処理開始時刻x-(k)の変更情報だけを取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させる第16のステップと、
前記記憶部から読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっているときに、次の数106に基づき変更後の最遅開始時刻x〜- L(k)を算出する第17のステップと、をさらに備えたものが好ましい。
前記記憶部から読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっているときに、次の数106に基づき変更後の最遅開始時刻x〜- L(k)を算出する第17のステップと、をさらに備えたものが好ましい。
本発明は、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を入力パラメータとして取り込む取込部と、前記取込部で取り込んだ入力パラメータを記憶する記憶部と、前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換する演算部と、を備えたスケジュール作成装置において、
前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数107〜数110で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定し、
前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数107〜数110で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定し、
前記行列Fを用いて、次の数111の行列F*(但し、Flにおいて全ての要素がεになり、またnは工程数である)を算出するように構成される。
この場合、k番目の工程処理に関して、各工程での処理開始時刻をx(k)とし、入力時刻をu(k)としたときに、前記演算部で算出した行列A0,B0,及びF*と、前記演算部に取り込まれる前記処理開始時刻x(k)及び入力時刻をu(k)とを利用して、次の数112に基づき工程の最早開始時刻xEを算出するように、前記演算部を構成してもよい。
また、前記演算部で算出した行列C及びF*と、前記全ての工程の最早開始時刻xEとを利用して、次の数113に基づき全ての工程の最遅開始時刻xLを算出するように、当該演算部を構成してもよい。
そして、前記最遅開始時刻xLから前記最早開始時刻xEを減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、それをボトルネック工程として抽出するように、前記演算部を構成するのが好ましい。
本発明のスケジュール作成装置は、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を再計算し、変更後の行列A0〜,F〜,C〜,F*〜を前記記憶部に記憶させ、
前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の処理開始時刻x〜(0)として前記記憶部に記憶させ、
前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記演算部で算出した行列B0を用いて、次の数114に基づき変更後の最早開始時刻x〜Eを算出するように、前記演算部を構成している。
前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の処理開始時刻x〜(0)として前記記憶部に記憶させ、
前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記演算部で算出した行列B0を用いて、次の数114に基づき変更後の最早開始時刻x〜Eを算出するように、前記演算部を構成している。
この場合、前記離散事象システムにおける処理開始時刻xの変更情報だけを取得し、且つその変更後の値が元の値よりも大きくなっているときには、次の数115に基づき変更後の最早開始時刻x〜Eを算出するように、前記演算部を構成してもよい。
そして、前記演算部で算出した行列Cまたは変更後の行列C〜及び行列F*〜と、全ての工程における前記変更後の最早開始時刻x〜Eとを利用して、次の数116に基づき全ての工程における変更後の最遅開始時刻x〜Lを算出するように、前記演算部を構成するのが好ましい。
また、前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算することで、全工程の変更後におけるトータルフロートを算出すると共に、この変更後におけるトータルフロートの値が0になる工程を検索し、それを変更後のボトルネック工程として再抽出するように、前記演算部を構成するのが好ましい。
また本発明のスケジュール作成装置は、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を入力パラメータとして取り込む取込部と、前記取込部で取り込んだ入力パラメータを記憶する記憶部と、前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換する演算部と、を備えたスケジュール作成装置において、
前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数117〜数121で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ決定し、
前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数117〜数121で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ決定し、
前記行列F0を用いて、次の数122の行列(PkF0)*(但し、(PkF0)lにおいて全ての要素がεになり、またnは工程数である)を算出するように構成される。
この場合、k番目の工程処理に関して、各工程での処理終了時刻をx+(k)とし、入力時刻をu(k)としたときに、前記演算部で算出した行列Pk,B0,及び(PkF0)*と、前記演算部に取り込まれるk−1番目の前記処理終了時刻x+(k−1)及び入力時刻u(k)とを利用して、次の数123に基づきk番目の処理工程の最早終了時刻x+ E(k)を算出するように、前記演算部を構成するのが好ましい。
さらに、k番目の工程処理に関して、各工程での処理開始時刻をx-(k)とし、出力時刻をu(k)としたときに、前記演算部で算出した行列Pk,C0,及び(PkF0)*と、前記演算部に取り込まれるk+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)とを利用して、次の数124に基づきk番目の処理工程の最遅開始時刻x- L(k)を算出するように、前記演算部を構成するのが好ましい。
さらに好ましくは、前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出するように、前記演算部を構成してもよい。
こうした構成において、本発明では、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させ、
前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させ、
前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記演算部で算出した行列F0,B0を用いて、次の数125に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成するのが好ましい。
前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させ、
前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記演算部で算出した行列F0,B0を用いて、次の数125に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成するのが好ましい。
これに代わる簡便な装置として、前記離散事象システムにおける処理終了時刻x+(k)の変更情報だけを取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させ、
前記記憶部から読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっているときに、次の数126に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成してもよい。
前記記憶部から読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっているときに、次の数126に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成してもよい。
また、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させ、
前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、
前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記演算部で算出した行列F0,C0を用いて、次の数127に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成してもよい。
前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、
前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記演算部で算出した行列F0,C0を用いて、次の数127に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成してもよい。
これに代わる簡便な装置として、前記離散事象システムにおける処理開始時刻x-(k)の変更情報だけを取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、
前記記憶部から読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっているときに、次の数128に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成してもよい。
前記記憶部から読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっているときに、次の数128に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成してもよい。
本発明は、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を、入力パラメータとしてコンピュータであるスケジュール作成装置に取り込ませ、この入力パラメータを前記コンピュータに記憶させ、さらに前記離散事象システムの状態を表現するために、前記入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換できるように前記コンピュータに演算を行なわせるコンピュータプログラムにおいて、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記入力パラメータに基づいて、次の数129〜数132で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定させる第1の手順と、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記入力パラメータに基づいて、次の数129〜数132で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定させる第1の手順と、
前記行列Fを用いて、次の数133の行列F*(但し、Flにおいて全ての要素がεになり、またnは工程数である)を算出させる第2の手順と、
を前記コンピュータに実行させることを特徴とする。
この場合のコンピュータプログラムは、k番目の工程処理に関して、各工程での処理開始時刻をx(k)とし、入力時刻をu(k)としたときに、前記処理開始時刻x(k)及び入力時刻u(k)を取り込ませ、この処理開始時刻x(k)及び入力時刻u(k)と、前記第1及び第2の手順で算出させた行列A0,B0,及びF*とを利用して、次の数134に基づき全ての工程の最早開始時刻xEを算出させる第3の手順を、前記コンピュータに実行させてもよい。
また、前記第1および第2の手順で算出させた行列C及びF*と、前記第3のステップで算出させた前記全ての工程の最早開始時刻xEとを利用して、次の数135に基づき全ての工程の最遅開始時刻xLを算出させる第4の手順を、コンピュータプログラムによって前記コンピュータに実行させてもよい。
そして、前記最遅開始時刻xLから最早開始時刻xEを減算させることで、全工程のトータルフロートを算出させると共に、このトータルフロートの値が0になる工程を検索させ、これをボトルネック工程として抽出させる第5の手順を、前記コンピュータに実行させるコンピュータプログラムを備えることが好ましい。
本発明のコンピュータプログラムは、前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を再計算させ、変更後の行列A0〜,F〜,C〜,F*〜を記憶させる第6の手順と、
前記離散事象システムにおける入力時刻uの変更情報を取得させ、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7の手順と、
前記離散事象システムにおける処理開始時刻xの変更情報を取得させ、これを変更後の入力時刻x〜(0)として前記記憶部に記憶させる第8の手順と、
前記行列A0〜,F*〜,x〜(0),u〜を読み出させ、前記処理開始時刻x(k)と前記行列B0を用いて、次の数136に基づき変更後の最早開始時刻x〜Eを算出させる第9の手順と、を前記コンピュータに実行させることを特徴とする。
前記離散事象システムにおける入力時刻uの変更情報を取得させ、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7の手順と、
前記離散事象システムにおける処理開始時刻xの変更情報を取得させ、これを変更後の入力時刻x〜(0)として前記記憶部に記憶させる第8の手順と、
前記行列A0〜,F*〜,x〜(0),u〜を読み出させ、前記処理開始時刻x(k)と前記行列B0を用いて、次の数136に基づき変更後の最早開始時刻x〜Eを算出させる第9の手順と、を前記コンピュータに実行させることを特徴とする。
この場合、前記第8の手順で離散事象システムにおける処理開始時刻xの変更情報だけを取得し、且つその変更後の値が元の値よりも大きくなっているときときには、前記第9の手順で、次の数137に基づき変更後の最早開始時刻x〜Eを算出させてもよい。
また、前記第1の手順で算出させた行列Cまたは前記第6の手順で算出させた変更後の行列C〜及び前記第6の手順で算出させたF*〜と、全ての工程における前記変更後の最早開始時刻x〜Eとを利用して、次の数138に基づき全ての工程における変更後の最遅開始時刻x〜Lを算出させる第10の手順を、前記コンピュータに実行させてもよい。
そして、前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算させることで、全工程の変更後におけるトータルフロートを算出させると共に、この変更後におけるトータルフロートの値が0になる工程を検索させ、それを変更後のボトルネック工程として再抽出させる第11の手順を、前記コンピュータに実行させるのが好ましい。
また、本発明のコンピュータプログラムは、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を、入力パラメータとしてコンピュータであるスケジュール作成装置に取り込ませ、この入力パラメータを前記コンピュータに記憶させ、さらに前記離散事象システムの状態を表現するために、前記入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換できるように前記コンピュータに演算を行なわせるコンピュータプログラムにおいて、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数139〜数143で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ決定させる第1の手順と、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数139〜数143で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ決定させる第1の手順と、
前記行列F0を用いて、次の数144の行列(PkF0)*(但し、(PkF0)lにおいて全ての要素がεになり、またnは工程数である)を算出させる第2の手順と、を前記コンピュータに実行させることを特徴とする。
この場合、k番目の工程処理に関して、各工程での処理終了時刻をx+(k)とし、入力時刻をu(k)としたときに、k−1番目の前記処理終了時刻x+(k−1)及び入力時刻u(k)を取り込ませ、この処理終了時刻x+(k−1)及び入力時刻u(k)と、前記第1及び第2の手順で算出させた行列Pk,B0,及び(PkF0)*とを利用して、次の数145に基づきk番目の処理工程の最早終了時刻x+ E(k)を算出させる第3の手順を、前記コンピュータにさらに実行させてもよい。
また、k番目の工程処理に関して、各工程での処理開始時刻をx-(k)とし、出力時刻をu(k)としたときに、k+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)を取り込ませ、このk+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)と、前記第1及び第2の手順で算出させた行列Pk,C0,及び(PkF0)*とを利用して、次の数146に基づきk番目の処理工程の最遅開始時刻x- L(k)を算出させる第4の手順を、さらに前記コンピュータに実行させてもよい。
さらに好ましくは、前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算させることで、全工程のトータルフロートを算出させると共に、このトータルフロートの値が0になる工程を検索させ、これをボトルネック工程として抽出させる第5の手順を、さらに前記コンピュータに実行させてもよい。
こうしたコンピュータプログラムにおいて、前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算させ、変更後の行列PK〜を記憶させる第6の手順と、
前記離散事象システムにおける入力時刻u(k)の変更情報を取得させ、これを変更後の入力時刻u(k)〜として記憶させる第7の手順と、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得させ、これを変更後の処理終了時刻x〜+(0)(k)として記憶させる第8の手順と、
前記行列PK〜,x〜+(0)(k),u(k)〜を読み出させ、前記処理終了時刻x+(k−1)と前記行列F0,B0を用いて、次の数147に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第9の手順と、を前記コンピュータに実行させるのが好ましい。
前記離散事象システムにおける入力時刻u(k)の変更情報を取得させ、これを変更後の入力時刻u(k)〜として記憶させる第7の手順と、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得させ、これを変更後の処理終了時刻x〜+(0)(k)として記憶させる第8の手順と、
前記行列PK〜,x〜+(0)(k),u(k)〜を読み出させ、前記処理終了時刻x+(k−1)と前記行列F0,B0を用いて、次の数147に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第9の手順と、を前記コンピュータに実行させるのが好ましい。
これに代わる簡便なコンピュータプログラムとして、前記離散事象システムにおける処理終了時刻x+(k)の変更情報だけを取得させ、これを変更後の処理終了時刻x〜+(0)(k)として記憶させる第10の手順と、
前記読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっているときに、次の数148に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第11の手順と、を前記コンピュータに実行させてもよい。
前記読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっているときに、次の数148に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第11の手順と、を前記コンピュータに実行させてもよい。
また、前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算させ、変更後の行列PK〜を記憶させる第12の手順と、
前記離散事象システムにおける出力時刻u(k)の変更情報を取得させ、これを変更後の出力時刻u(k)〜として記憶させる第13の手順と、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得させ、これを変更後の処理開始時刻x〜-(0)(k)として記憶させる第14の手順と、
前記行列PK〜,x〜-(0)(k),u(k)〜を読み出させ、前記処理終了時刻x-(k+1)と前記行列F0,C0とを用いて、次の数149に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第15の手順と、を前記コンピュータに実行させてもよい。
前記離散事象システムにおける出力時刻u(k)の変更情報を取得させ、これを変更後の出力時刻u(k)〜として記憶させる第13の手順と、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得させ、これを変更後の処理開始時刻x〜-(0)(k)として記憶させる第14の手順と、
前記行列PK〜,x〜-(0)(k),u(k)〜を読み出させ、前記処理終了時刻x-(k+1)と前記行列F0,C0とを用いて、次の数149に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第15の手順と、を前記コンピュータに実行させてもよい。
これに代わる簡便なコンピュータプログラムとして、前記離散事象システムにおける処理開始時刻x-(k)の変更情報だけを取得させ、これを変更後の処理開始時刻x〜-(0)(k)として記憶させる第16の手順と、
前記読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっているときに、次の数150に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第17の手順と、を前記コンピュータに実行させてもよい。
前記読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっているときに、次の数150に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第17の手順と、を前記コンピュータに実行させてもよい。
請求項1の方法,請求項17の装置,及び請求項33のコンピュータプログラムによれば、入力パラメータとして、各工程の実行時間と工程間の先行制約関係の各情報が予め記憶されていれば、そこから独自のシステム構造を表現する行列A0,F,B0,Cについて、その各要素を決定し、さらにここで決定した行列Fから行列F*を算出して、max-plus代数上で線形なMPL形式を導出するための行列A0,F*,B0,Cを簡単に取得することができる。したがって、システムのスケジュール作成をコンピュータで実現する上で、より少ないメモリ消費で、与えられたシステムをMPLシステムとして表現できる形式に簡単に導出することが可能になる。
請求項2の方法,請求項18の装置,及び請求項34のコンピュータプログラムによれば、初期状態の処理開始時刻x(k)と入力時刻u(k)が取り込まれれば、先に算出した行列A0,B0,及びF*を利用して、システムを構成する全ての工程の最早開始時刻xEを簡単に算出することができる。
請求項3の方法,請求項19の装置,及び請求項35のコンピュータプログラムによれば、先に算出した行列C及びF*と、全ての工程の最早開始時刻xEとを利用して、システムを構成する全ての工程の最遅開始時刻xLを簡単に算出することができる。
請求項4の方法,請求項20の装置,及び請求項36のコンピュータプログラムによれば、全ての工程における最早開始時刻xEや最遅開始時刻xLが算出されていれば、後は簡単な演算処理によって全ての工程の余裕時間と、ボトルネック工程がどこに存在するのかを簡単に算出することができる。したがって、途中工程の稼動状態や、ボトルネック工程を十分に把握することが可能になる。
請求項5の方法,請求項21の装置,及び請求項37のコンピュータプログラムによれば、システムの稼動開始後に何らかの原因で、その入力時刻や加工時間や加工開始時刻が変化した場合でも、全ての工程における変更後の最早開始時刻x〜Eを適確に且つ効率的に把握することができる。
請求項6の方法,請求項22の装置,及び請求項38のコンピュータプログラムによれば、より単純な算術手順で、全ての工程における変更後の最早開始時刻x〜Eを簡単に把握することができる。
請求項7の方法,請求項23の装置,及び請求項39のコンピュータプログラムによれば、先に算出した行列CまたはC〜及びF*と、全ての工程における変更後の最早開始時刻x〜Eとを利用して、システムを構成する全ての工程における変更後の最遅開始時刻x〜Lを簡単に算出することができる。
請求項8の方法,請求項24の装置,及び請求項40のコンピュータプログラムによれば、全ての工程における変更後の最早開始時刻x〜Eや最遅開始時刻x〜Lを算出できるので、後は簡単な演算処理によって全ての工程における変更後の余裕時間と、変更後のボトルネック工程がどこに存在するのかを簡単に算出することができる。したがって、システムの稼動後に各種パラメータが変化した場合であっても、適確に且つ効率的に再スケジューリングを実行することが可能になる。
請求項9の方法,請求項25の装置,及び請求項41のコンピュータプログラムによれば、入力パラメータとして、各工程の実行時間と工程間の先行制約関係の各情報が予め記憶されていれば、そこから独自のシステム構造を表現する行列Pk,F0,B0,C0,D0について、その各要素を決定し、さらにここで決定した行列Pk,F0から行列(PkF0)*を算出して、max-plus代数上で線形なMPL形式を導出するための行列Pk,F0,B0,C0,D0,(PkF0)*を簡単に取得することができる。したがって、システムのスケジュール作成をコンピュータで実現する上で、より少ないメモリ消費で、与えられたシステムをMPLシステムとして表現できる形式に簡単に導出することが可能になる。
さらにこの場合は、システムの構造に依存する行列Fo,Bo,Co,D0と、加工時間のパラメータに依存する行列PKが明確に分離しており、より簡潔で高速な計算を実現できる。しかも、同じシステムを表現する上で、加工時間のパラメータが減少しており、より簡潔な状態空間表現の導出が可能になる。
請求項10の方法,請求項26の装置,及び請求項42のコンピュータプログラムによれば、初期状態の処理終了時刻x+(k−1)及び入力時刻u(k)が取り込まれれば、先に算出した行列Pk,B0,及び(PkF0)*を利用して、システムを構成する全ての工程の最早終了時刻x+ E(k)を簡単に算出することができる。
請求項11の方法,請求項27の装置,及び請求項43のコンピュータプログラムによれば、初期状態の処理終了時刻x+(k+1)及び入力時刻u(k)が取り込まれれば、先に算出した行列Pk,C0,及び(PkF0)*を利用して、システムを構成する全ての工程の最遅開始時刻x- L(k)を簡単に算出することができる。
請求項12の方法,請求項28の装置,及び請求項44のコンピュータプログラムによれば、全ての工程における最早開始時刻xE(k)や最遅開始時刻xL(k)が算出されていれば、後は簡単な演算処理によって全ての工程の余裕時間と、ボトルネック工程がどこに存在するのかを簡単に算出することができる。したがって、途中工程の稼動状態や、ボトルネック工程を十分に把握することが可能になる。
請求項13の方法,請求項29の装置,及び請求項45のコンピュータプログラムによれば、システムの稼動開始後に何らかの原因で、その入力時刻や加工時間や加工終了時刻が変化した場合でも、全ての工程における変更後の最早終了時刻x〜+ E(k)を適確に且つ効率的に把握することができる。
請求項14の方法,請求項30の装置,及び請求項46のコンピュータプログラムによれば、より単純な算術手順で、全ての工程における変更後の最早終了時刻x〜+ E(k)を簡単に把握することができる。
請求項15の方法,請求項31の装置,及び請求項47のコンピュータプログラムによれば、システムの稼動開始後に何らかの原因で、その出力時刻や加工時間や加工終了時刻が変化した場合でも、全ての工程における変更後の最遅開始時刻x〜- L(k)を適確に且つ効率的に把握することができる。
請求項16の方法,請求項32の装置,及び請求項48のコンピュータプログラムによれば、より単純な算術手順で、全ての工程における変更後の最遅開始時刻x〜- L(k)を簡単に把握することができる。
以下、添付図面に基づいて、本発明における好適な各実施例を詳細に説明する。図1は、本発明の第1実施例におけるスケジュール作成装置1の内部構成を示すブロック図である。スケジュール作成装置1は、パーソナルコンピュータ又はサーバ装置などの汎用コンピュータを用いて構成されている。スケジュール作成装置1は、演算を行なうCPU(演算部)11と、演算に伴って発生する一時的な情報などを記憶するRAM(記憶部)12と、CD−ROMドライブ等の外部記憶装置13と、ハードディスク等の内部記憶装置14とを備えている。CPU11は、CD−ROM等の記録媒体2から本発明のコンピュータプログラム20を外部記憶装置13にて読み取り、読み取ったコンピュータプログラム20を内部記憶装置14に記憶させる。コンピュータプログラム20は必要に応じて内部記憶装置14からRAM12へロードされ、ロードされたコンピュータプログラム20に基づいてCPU11はスケジュール作成装置1に必要な処理を実行する。
スケジュール作成装置1は、キーボード等のオペレータの操作により情報が入力される装置,又は図示しない外部の装置からスケジュール作成のために必要な情報が入力される装置からなる入力装置15を備えている。またスケジュール装置1は、CRTディスプレイ等の表示装置,プリンタ装置,又は作成したスケジュールを図示しない外部の装置へ出力する装置からなる取込部としての出力装置16を備えている。
なお、本発明のコンピュータプログラム20は、スケジュール作成装置1に接続された図示しない外部のサーバ装置からスケジュール作成装置1へロードされて内部記憶装置14に記憶される形態であってもよい。
本発明のスケジュール作成装置1が行なう処理の目的は、作業プロセスの最適なスケジュールを作成することであり、より具体的には、オペレータが入力装置15から入力した各種パラメータと、工程間の先行制約とに基づいて、前述したMPLシステムに適合する作業プロセスの状態を表現した式(数77及び数78)を、スケジュール作成装置1に作成させるMPL形式作成手順と、前記MPL形式作成手順の途中で導入された行列を利用して、システムの全工程における最早開始時刻及び最遅開始時刻や、トータルフロート(余裕時間)及びボトルネック工程をスケジュール作成装置1に決定させるスケジュール生成手順と、入力時刻,加工(すなわち処理)時間または加工開始時刻の変動値を入力したときに、前記スケジュール生成手順で決定した最早開始時刻及び最遅開始時刻や、トータルフロート及びボトルネック工程が、どのように変化するのかを、前記MPL形式作成手順の途中で導入された接続行列Fを利用して、スケジュール作成装置1に決定させる再スケジュール生成手順と、をコンピュータプログラム20に含んでいる。
そして、このようなコンピュータプログラム20を記憶した記憶媒体2を外部記憶手段13に装着すると、スケジュール作成装置1のCPU11は当該コンピュータプログラム20をRAM12に自動的にロードし、内蔵する上記各手順を処理実行する。つまりスケジュール作成装置1のCPU11は、ソフトウェア上の機能として、オペレータが入力装置15から入力した各種パラメータと、工程間の先行制約とに基づいて、MPLシステムに適合する作業プロセスの状態を表現した式(数77及び数78)を作成するMPL形式作成手段31と、前記MPL形式作成手段31がMPLシステムに適合する作業プロセスの状態を表現した式を作成する途中で導入した各行列を利用して、システムの全工程における最早開始時刻及び最遅開始時刻や、トータルフロート(余裕時間)及びボトルネック工程を決定するスケジュール生成手段32と、入力時刻,加工時間または加工開始時刻の変動値を入力したときに、前記スケジュール生成手順で決定した最早開始時刻及び最遅開始時刻や、トータルフロート及びボトルネック工程が、どのように変化するのかを、前記MPL形式作成手順の途中で導入された接続行列Fを利用して決定する再スケジュール生成手段33と、を備えている。
MPL形式作成手段31は、スケジュールを作成しようとする作業プロセスにおいて、各工程i(但し、iは1以上の自然数で、1≦i≦nである)における加工開始時刻及び加工時間を、それぞれ[x(k)]i及びdi(≧0)とし、初期状態x(0)=εn1としたときに、システム構造を表現するために、入力された前記各種パラメータから、次の新たに導入された行列A0,F,B0,及びCの各要素を算出し決定する。
特に、上記数152に示す行列Fは本発明独自のもので、これを以後、接続行列として呼ぶこととする。また、工程iとその先行工程jとの関係を、便宜的にj→iと表記する。ここでは、スケジュールの作成対象となる先行制約と同期制約を有する離散事象システムについて、当該システムに課せられる条件を、次のように設定している。
・工程数をnとし、外部からの入力数をpとし、外部への出力数をqとする。
・各バッチ共に全ての工程を通過し、かつ各工程での加工回数は1回である。
・各工程の設備が稼動中のときには、次のバッチの加工は開始できない。
・先行工程を有する工程は、それらの先行工程の加工が終了しないと、加工を開始できない。
・外部入力のある工程1は、対応する原材料を受取らないと、その加工を開始できない。
・加工開始のための条件が全て揃うと、直ちに加工を開始する。
・工程数をnとし、外部からの入力数をpとし、外部への出力数をqとする。
・各バッチ共に全ての工程を通過し、かつ各工程での加工回数は1回である。
・各工程の設備が稼動中のときには、次のバッチの加工は開始できない。
・先行工程を有する工程は、それらの先行工程の加工が終了しないと、加工を開始できない。
・外部入力のある工程1は、対応する原材料を受取らないと、その加工を開始できない。
・加工開始のための条件が全て揃うと、直ちに加工を開始する。
ここで、以下の4つの式について、上記各行列A0,F,B0,Cと、状態変数x(k)や入力変数u(k)との積が、どのような意味を持つのかを考察する。
上記数156において、Siは工程iの先行工程番号の集合を示し、集合Siが空集合φでなければ、右辺上段の式となり、集合Siが空集合φであれば、右辺下段の式となる。また、数157において、Piは工程iに接続された外部入力番号の集合であり、集合Piが空集合φでなければ、右辺上段の式となり、集合Piが空集合φであれば、右辺下段の式となる。なお、本発明で扱うシステムでは、次の式の関係が成立するものとし、先行工程が存在しない工程iは、外部入力が必ず存在する。
但し、先行工程と外部入力の両方を有する工程が存在してもよく、上記数159の逆は成立しない。さらに、数158において、Tiは出力iに接続された工程番号の集合であり、集合Tiが空集合φでなければ、右辺上段の式となり、集合Tiが空集合φであれば、右辺下段の式となる。
上記数155の右辺は、工程iにおける加工終了時刻を示しており、A0x(k)は、各工程における加工終了時刻を意味する。また数156において、Fx(k+1)は、先行工程の加工終了時刻の中で最も遅い時刻を表しており、また数157において、B0u(k+1)は、外部からの入力で最も遅い入力時刻を表すことが分かる。さらに数158において、Cx(k)は、接続された工程の加工終了時刻の中で最も遅い時刻を表している。これらの性質を用いると、各工程における加工開始時刻x(k+1)および出力時刻y(k)は、次のように定式化できる。
数160は、前記数77と類似した形式であるが、右辺にもx(k+1)が含まれている点で、好ましいMPLシステムの形式の記述とは異なる。以下、数160が数77の形式に変形可能であることや、システム行列の構造について、新たに導入した接続行列Fに関するいくつかの性質を説明する。
接続行列Fに関し、ここで3つの定理を示す。
・定理1:接続行列Fに関して、Fl(l≧1)の対角成分は全てεである。
・定理2:接続行列Fに関して、[Fl]ij≠ε(1≦[i,j]≦n,l≧1)ならば、[Fl]ji=εが成立する。
・定理3:Fl=εnnを満たすl(1≦l≦n)が存在する。
・定理1:接続行列Fに関して、Fl(l≧1)の対角成分は全てεである。
・定理2:接続行列Fに関して、[Fl]ij≠ε(1≦[i,j]≦n,l≧1)ならば、[Fl]ji=εが成立する。
・定理3:Fl=εnnを満たすl(1≦l≦n)が存在する。
定理1の証明: 以下、簡略化のために、[F]ij=fij,[Fl]ij=fl ijと表記する。l=1のとき,接続行列Fの定義より、当該工程が先行工程にはなり得ないので、明らかにfij=εが成立する。次にl≧2の時に、分配法則を用いると、次の式が成立する。
ここで、fl ii≠ε(l≧2)と仮定すると、max-plus代数の加算演算子(丸に+)の性質から、次の式が成り立つような[k1,k2,…kl-1]の組が少なくとも一つ存在する。
また、l=1の時の性質により、次の式が成立する。
したがって、[i,k1,k2,…kl-1]は全て異なる値でなければならない。また、このとき上記数163により、次の数165に示すような先行制約関係が存在することになる。
スケジュール作成対象のシステムに課される制約として、各工程での加工回数は一回であるので、数165は工程iで二回の加工を行なうことを意味し、題意に矛盾する。よって、背理法により、fl ii≠ε(l≧2)が成り立ち、定理1が証明される。
定理2の証明: 前記数162と同様にして分配法則を用いると、行列fl ijは次の式のように表わせる。
ここで、max-plus代数の加算演算子(丸に+)の性質から、fl ij≠εのときに、次の式となるような互いに異なる[i,j,k1,k2,…kl-1]の組が少なくとも一つ存在する。
これは、次の式となるような先行制約関係が存在することを意味する。
ここで、fl ji≠εと仮定すると、同様な議論により、互いに異なる[i,j,k’1,k’2,…k’l-1]の組に対して、次の式となるような先行制約関係が存在する。
数168では、工程iは工程jより上流側にあることになり、また数169では、工程jは工程iより上流側にあることになるので、互いに矛盾する。よって、背理法により、fl ji=ε(1≦[i,j]≦n,l≧1)が成り立ち、定理2が証明される。
定理3の証明: あるlに対して、Fl=εnnが成立するならば、Fl+h=εnn(h≧0)が成り立つことを利用して、背理法で証明する。命題が成り立たないと仮定し、Fn≠εnnを仮定する。このとき、fn ij≠εを満たすような[i,j]の組が少なくとも一つ存在する。数166において、l=nとすると、次の式を満たすような、互いに異なる1≦[i,j,k1,k2,…kl-1]≦nの組が少なくとも一つ存在しなければならないが、集合の要素数がn+1個であるため、このような組は存在しない。従って、Fn=εnnであることが証明される。
以上の定理を通して、接続行列Fに関する幾つかの性質が明らかになった。次に、システムの構造をMPLシステムの形式で表現できるようにするために、前記数160から数77への変形を行なう。数160の右辺第二項に現れるx(k+1)に対して、数160自身を代入すると、次の式が得られる。
同様な手順を繰り返すと、次の式が得られる。
但し、この数172におけるF*は、次の式のような意味である。
前記定理3の結果に基づき、Fl=εnnであるので、数172の右辺第一項が消去され、数77と同様のMPLシステムの形式が得られる。従って、数173と数77とを比較すると、次の式に示す関係が成り立つ。
つまり、数151〜数154で定義された行列A0,F,B0,Cの各要素をそれぞれ決定し、その後は数174に従って、前記行列A0,F,B0からMPLシステムの形式に基づく数77の行列A,Bを算出できるように、前記MPL形式作成手段31を構成すれば、数77及び数78にて記述されるMPL形式での状態空間表現を取得することができ、この数77及び数78を利用して、システムにおける種々のスケジュール作成を行なうことが可能になる。
次に、本発明で提案するMPL形式作成手段31の作用について、図2に示すフローチャートを参照しながら説明する。
同図において、先ずステップS1では、オペレータが取込部である入力装置15を利用して、スケジュールの作成対象となるシステムの諸情報(即ち、各種の入力パラメータ)を入力する。ここでの諸情報とは、具体的には各工程iの加工時間diや、入力,出力及び各工程間の接続構造である。これらの諸情報が一旦記憶部であるRAM12に記憶された後、RAM12から読み出されてMPL形式作成手段31に転送されると、ステップS2において、各行列A0,F,B0,Cの全要素を決定する。なお、入力の手間を極力省くために、こうした諸情報の中で、例えばシステム全体の接続構造のモデルを予め記憶媒体2や内部記憶装置14に何種類か記憶保持しておき、入力装置15からの操作により、その中からスケジュールの作成対象となるシステムの接続構造を選択してRAM12に一時的に記憶させ、そこからMPL形式作成手段31に転送してもよい。
一つの例として、前記図7に示すようなシステムの諸情報がMPL形式作成手段31に転送された場合を考える。この例では、4つの工程1〜4の各加工時間がd1,d2,d3,d4であるので、MPL形式作成手段31は前記数151に基づき、行列A0の対角成分の各要素がそれぞれd1,d2,d3,d4であり、それ以外の各要素が全てεであるとして、4行4列からなる行列A0の全要素を決定する。また、転送されたシステムの接続構造から、工程1が先行工程を持っておらず、工程2及び工程3が先行工程1を持っており、工程4が先行工程2及び先行工程3を持っていることから、MPL形式作成手段31は前記数152に基づき、接続行列Fについて、2行1列と3行1列の各要素が何れもd1であるとし、4行2列の要素がd2であるとし、4行3列の要素がd3であるとし、それ以外の各要素が全てεであるとして、4行4列からなる接続行列Fの全要素を決定する。さらに、転送されたシステムの接続構造から、入力数は1であり、且つ工程1だけが入力1を持つことから、MPL形式作成手段31は前記数152に基づき、1行1列の要素がeであるとし、それ以外の各要素が全てεであるとして、4行1列からなる行列B0の全要素を決定する。これを式で表現すると、次のようになる。
また行列Cは、従来から知られている数84の行列Cと同じものであり、転送されたシステムの接続構造から、出力数は1であり、且つ工程4だけが出力1を持つことから、MPL形式作成手段31は前記数154に基づき、1行4列の要素がd4eあるとし、それ以外の各要素が全てεであるとして、1行4列からなる行列Cの全要素を決定することができる。
このように、MPL形式作成手段31はシステムの諸情報が与えられれば、ステップS2の手順で簡単に各行列A0,F,B0,Cの全要素を決定することができる。
こうして、MPL形式作成手段31は行列A0,F,B0,Cの全要素を決定すると、次のステップS3において、行列F*の算出を行なう。これは先ず、工程の数n(この例では4)以下の範囲で、全ての要素がεになるまで、前記数173を計算し、次に全ての要素がεになる直前の行列が、前記数173における行列Fl-1であるとして、この数173に基づき行列F*を算出する。次の式は、MPL形式作成手段31で算出した行列F2,F3及びF*をそれぞれ示している。
図7に示す例では、行列F3を計算すると、全ての要素がεになるので、行列e4(対角成分の要素がeで、それ以外の全ての要素はε)と、接続行列Fと、接続行列Fを二乗した行列F2を加算することで、数176に示すように、行列F*を簡単に算出できる。
こうして行列F*を算出すると、MPL形式作成手段31は必要に応じ、ステップS4において、MPLシステムの形式に従う全ての行列A,B,Cを算出する。行列A及び行列Bに関しては、前記数174を利用して、ステップS3で求めた行列F*と、ステップS2で求めた行列A0及び行列B0とを乗算すれば簡単に算出できる。また行列Cは、前記ステップS2で求めたものをそのまま適用すればよい。こうして得られた行列A,B,Cは、前記従来例で示した数84と一致する。つまり、上述した条件を満たすシステムでは、システムの振る舞いをMPL形式での式(数77及び数78)で簡単に記述することができる。このように、本実施例のMPL形式作成手段31は、工程の実行順序を規定する先行制約関係と、各工程における実行時間が所与の条件として与えられ、そのときにシステムの構造を表現する行列として、数151〜数154の各行列を利用することで、MPL形式での状態空間表現を簡単に導出することができる、
次に、スケジュール生成手段32の具体的な構成について説明する。スケジュール生成手段32は、前記接続行列Fを利用して、全ての行程について最早開始時刻及び最遅開始時刻を算出すると共に、この算出した最遅開始時刻から最早開始時刻を減算することで、全ての行程におけるトータルフロートの算出とボトルネック工程の抽出を行なうものである。なお、これ以降の説明では、全工程の最早開始時刻をxEとし、全工程の最遅開始時刻をxLとして表記すると共に、簡略化のために、必要に応じてイベントカウンタ(k+1)の記述を省略する。
次に、スケジュール生成手段32の具体的な構成について説明する。スケジュール生成手段32は、前記接続行列Fを利用して、全ての行程について最早開始時刻及び最遅開始時刻を算出すると共に、この算出した最遅開始時刻から最早開始時刻を減算することで、全ての行程におけるトータルフロートの算出とボトルネック工程の抽出を行なうものである。なお、これ以降の説明では、全工程の最早開始時刻をxEとし、全工程の最遅開始時刻をxLとして表記すると共に、簡略化のために、必要に応じてイベントカウンタ(k+1)の記述を省略する。
スケジュール生成手段32が算出する最早開始時刻xEは、その工程が最も早く加工を開始できる時刻として定義される。工程i(1≦i≦n)の最早開始時刻ETiは、次の式のように表わせる。
ここで集合Siと集合Piは、数156及び数157で用いたものと同一である。上記数177の右辺第一項は、外部入力を有する場合の入力時刻のうち、最大の値を表しており、集合Piが空集合φの場合、即ちPi=[φ]の場合はεとする。前記数157により、数177の右辺第一項に関して次の式が成り立つ。
数177の右辺第二項は、先行工程における加工終了時刻の中で最大の値を表しており、集合Siが空集合φの場合、即ちSi=[φ]の場合はεとする。前記数156により、数177の右辺第二項に関して次の式が成り立つ。
数177の右辺第三項は、当該工程の前のバッチにおける加工終了時刻のうち、最大のものを表している。前記数155を用いると、数177の右辺第二項に関して次の式が成り立つ。
従って、工程i(1≦i≦n)の最早開始時刻[XE]iは、次のように表わせる。
これは、数160と同一形式をしており、即ち数77のx(k+1)をXEに置き換えたものに等しいことが分かる。そのため、全工程iの最早開始時刻XEは、次のように表される。
また、このときの加工終了時刻は、次の式で与えられる。
つまり、スケジュール生成手段32は、前記MPL形式作成手段31で算出して得られ、RAM12に記憶された行列A0,B0,及びF*を用いることで、数182により全ての工程iにおける最早開始時刻XEを簡単に算出でき、またこの最早開始時刻XEと、MPL形式作成手段31で算出して得られ、RAM12に記憶された行列Cとを用いることで、数183によりシステムの加工終了時刻yを簡単に算出できる。
次に、スケジュール生成手段32が算出する最遅開始時刻について説明すると、当該最遅開始時刻とは、ある工程において、最早開始時刻で加工を行なった場合と同一の出力時刻を実現することが可能な、最も遅い加工開始時刻として定義される。工程i(1≦i≦n)の最遅開始時刻LTiは、次の式のように表わせる。
上記数184において、Qiは工程iに接続された外部出力番号の集合を示し、Riは工程iの後続工程番号の集合を示している。なお、本発明で扱うシステムでは、次の式の関係が成立するものとし、後続工程が存在しない工程iは、外部出力が必ず存在する。
但し、後続工程と外部出力の両方を有する工程が存在してもよく、上記数185の逆は成立しない。前記数184の右辺第一項は、外部出力を有する場合の出力時刻のうち、最小の値を表しており、集合Qiが空集合φの場合、即ちQi=[φ]の場合は−εとする。また、数184の右辺第二項は、後続行程を有する場合の加工開始時刻のうち、最小の値を表しており、集合Riが空集合φの場合、即ちRi=[φ]の場合は−εとする。前記数185を用いると、工程iの最遅開始時刻[XL]iは、全ての工程iで有限な値をとることが確かめられる。数184は、次の式のように変形できる。
上記の式が任意の工程i(1≦i≦n)に対して成立するので、全工程iの最遅開始時刻XLは、次のように表される。
上記数187をより簡潔な形式で表現するために、次の三つの定理を導入する。
・定理4:A,B∈Dl×m,x∈Dmにおいて、次の式が成立する。
・定理4:A,B∈Dl×m,x∈Dmにおいて、次の式が成立する。
・定理5:A∈Dl×m,B∈Dn×l,x∈Dnにおいて、次の式が成立する。
・定理6:A∈Dl×m, x,y∈Dnにおいて、次の式が成立する。
定理4は既に証明されており、ここでは改めて説明しない。
定理5の証明: l=m=n=1,すなわち、A,B,Xが全てスカラーの場合の証明は、既に知られている。数189について、その左辺の第i成分は、次の式のように計算できる。
一方、数189の右辺の第i成分は、次の式のように計算できる。
演算子∧の順序は交換可能であるので、全てのi(1≦i≦n)において数191と数192は共に等しく、定理5が証明される。
定理6の証明: l=m=n=1,すなわち、A,B,Xが全てスカラーの場合の証明は、既に知られている。数190について、その第i成分は、次の式のように計算できる。
これが全てのi(1≦i≦n)において成立するので、定理6が証明される。
前記定理5及び定理6を用いて、数187の両辺に次の式を施す。
すると、数187は次の式のように表わせる。
以下、同様にして、次の式を導出できる。
数193,数195及び数196を用いて逐次的に代入を繰り返し、前記定理4及び定理5を用いると、全工程iの最遅開始時刻XLは、次のように表される。
上式のyについて、前記数183の式を代入すると、最終的に求めようとする全工程iの最遅開始時刻XLは、次のように表される。
つまり、スケジュール生成手段32は、前記MPL形式作成手段31で算出して得られ、RAM12に記憶された行列C及びF*と、先にスケジュール生成手段32により算出され、RAM12に記憶された最早開始時刻XE及び出力時刻yとを用いることで、数198により全ての工程iにおける最遅開始時刻XLを簡単に算出できる。
さらに、同一の出力時刻yを実現するための最も遅い入力時刻uLは、外部入力を有する工程の最遅開始時刻に等しく、次の式のように計算できる。
これが任意の工程i(1≦i≦p)について成立し、前記数197と定理5を考慮すれば、最遅入力時刻uLは次の式のように表わせる。
スケジュール生成手段32は、上記数183や数198で求め、RAM12に記憶された最早開始時刻XEと最遅開始時刻XLを利用して、トータルフロートがゼロとなるボトルネック工程の抽出を抽出することができる。トータルフロートとは、当該工程が持つ余裕時間の総合計で定義され、後続工程が出力時刻に影響を及ぼさない範囲で最も遅く加工を開始する場合の時刻と、当該工程が最も早く加工を開始した場合の加工終了時刻との差で表わすことができる。工程i(1≦i≦n)のトータルフロートTFiは、次の式のように表わせる。
ここで集合Qiと集合Riは、数184で用いたものと同様に、工程iに接続された外部出力番号の集合と、工程iの後続工程番号の集合をそれぞれ示している。また、数201の右辺第一項は後続工程に関する制約を表わし、右辺第2項は外部出力への出力時刻に関する制約を表わす。なお、集合Qiや集合Riが空集合φの場合、即ちQi=[φ]やRi=[φ]の場合は、該当する演算子∧を−εとする。しかし、前記数185の関係を用いると、トータルフロートTFiは、全ての工程iにおいて有限な値をとることがわかる。
上記数201を簡潔に表現するために、ここでは次の式のような変形を行なう。
上の数202は任意の工程i(1≦i≦n)に対して成立するので、全工程iのトータルフロートをwとして表わすと、このトータルフロートwは次の式が成り立つ。
上記数187及び定理5と定理6を適用すると、上記数203の右辺の一部は、次のように変形できる。
ただし、途中で表れるF+ *は、次のような意味を持つ。
上記数205は、次の式の関係を満足する。
数203と数204によれば、結局、全工程iのトータルフロートwは、次の式のように求められ、最遅開始時刻XLから最早開始時刻XEを減算した値となる。
ボトルネック工程は、トータルフロートwが0になる工程の集合として与えられ、これを数式で表わすと次のようになる。
つまり、スケジュール生成手段32は、先にスケジュール生成手段32が算出した最早開始時刻XEと最遅開始時刻XLを用いることで、数207や数208により全ての工程iにおけるトータルフロートwと、どの工程がボトルネックとなっているのかを簡単に抽出できる。
図3は、上記スケジュール生成手段32の一連の動作をフローチャートで示したものである。同図において、ステップS11では、スケジュール生成手段32がMPL形式作成手段31から行列A0,B0,及びF*の算出結果を受取ると共に、入力装置15から初期状態として工程の加工開始時刻x(k)と外部入力時刻uを受取ると、数182に基づき全ての工程iにおける最早開始時刻XEを算出する。また、このステップS11では、最早開始時刻XEとMPL形式作成手段31から取得した行列Cの算出結果とを用いて、数183により加工終了の出力時刻yも算出できる。
こうして、全ての工程iにおける最早開始時刻XEや出力時刻yを算出すると、スケジュール生成手段32は数198に基づき、全ての工程iにおける最早開始時刻XEを算出する(ステップS12)。この最早開始時刻XEの算出に際しては、MPL形式作成手段31で算出して得られた行列C及びF*と、先にスケジュール生成手段32が算出した最早開始時刻XE及び出力時刻yを用いる。
次にスケジュール生成手段32は、全ての工程iにおけるトータルフロートwを、ステップS11で算出した最早開始時刻XEと、ステップS12で算出した最遅開始時刻XLから計算する(ステップS13)。このトータルフロートwは、前記数207から簡単に計算できる。最後に、スケジュール生成手段32は全ての工程iのトータルフロートwを算出すると、ステップS14において、数208に基づきどの行程がボトルネックとなっているのかを抽出する。
次に、再スケジュール生成手段33の具体的な構成について説明する。前述のスケジュール生成手段32は、外部からの入力時刻uや、各工程iの加工時間di等、システムの稼動が全て決められた通りに実行される状況を仮定しているが、実際には、出力時刻yに影響を及ぼしうるような変動要因として、次のような変動が、バッチの加工開始後にしばしば発生する。(1)材料到着時刻の変動:外部入力時刻uに影響を及ぼす。(2)加工時間の変動:システムパラメータdひいては各行列A0,C,Fに影響を及ぼす。(3)加工開始時刻の変動:状態変数84に影響を及ぼす。
これらの変動よって、当初の計画から、スケジュール生成手段32で算出した最早開始時刻XE,最遅開始時刻XL,またはボトルネック工程が変化することもあるため、工程管理やプロジェクトマネジメントにおいては、効率的な再スケジューリングを考えることは重要である。再スケジュール生成手段33は、入力時刻,加工時間,加工開始時刻などの変更情報を入力として、各工程iにおける最早開始時刻XEおよび最遅開始時刻XLや、ボトルネックとなる工程がどのように変化したのかを再度見直す機能を有している。
いま、バッチの加工開始後に何らかの原因で、その入力時刻,加工時間,加工開始時刻などが変化したと仮定する。入力時刻と加工開始時刻については、外部入力時刻uと該当する工程iの加工開始時刻[x(0)]iにそれぞれ影響を及ぼすことから、これらの外部入力時刻uや開始時刻[x(0)]iの変化後における状態を、それぞれ記号の上または横にシンボル〜をつけて次の式のように表わす。
また、加工時間に関する変動は、前述のようにシステム行列A0,出力行列C,接続行列Fに影響を及ぼすことから、これらの記号の上または横にもシンボル〜をつけて次の式のように表わす。
なお定義により、入力行列B0は変化しない。これらを用いて、変化後の状態変数を再計算する。まず、再計算の対象となる工程iについて、次の式を設定する。
ここでは、既に加工開始済の工程や、加工開始前であっても、遅延などにより開始時刻が既に決められている工程は、再計算の対象とはしない。前記数181と同様の手順により、再計算対象の工程の中で最上流に位置する工程iの最早開始時刻[x〜(1)]iは,次のように表せる。
ここでの最上流とは、先行工程が全て加工開始済であるような工程のことを意味し、複数存在する場合もある。また、行列A0〜は、前のバッチに関する加工時間を表現した行列であるので、前のバッチの加工時間が変化しない時には、行列A0に置き換えて計算する。以下、数171と同様な手順によって、後続工程の最早開始時刻を逐次的に計算する。
なお、成分[・]iの表記は省略している。更新後の最早開始時刻x〜Eは、次のとおり求められる。
数212と数213を用いると、上記数214は次の式に変形できる。
数215は、数181をバッチの加工開始後にパラメータが変化した場合にも適用できるような一般化した形式となっている。加工開始前であれば、全ての工程i(1≦i≦n)に対して、次の式が成立するので、これは数182と同一となる。
特別な場合として、ある工程の加工開始時刻が遅延した場合(但し、プロセスの加工時間diは変化しない)を考える。このとき、遅延が判明した工程の成分のみ値を置き換えると、全ての工程i(1≦i≦n)に対して、次の式が成立する。
この場合、数217に現れる各行列の値は変化しないことから、次の関係が成立する。
従ってこの場合は、一般式である数215を次の式のように簡潔に表現することができる。
この時に対応する出力時刻y〜と、最遅開始時刻xL〜と、ボトルネック工程の抽出は、それぞれ前記数183,数197,数208に対応して、次の式のように求められる。
ボトルネック工程は、システム先行制約関係と、加工時間などにより決定されるが、稼動開始後にこれらのパラメータの値が変化すると、それに伴ってボトルネック工程の位置も変化することがある。その例については、後ほど説明する。
このように、本実施例における再スケジュール生成手段33は、変動した入力時刻,ある工程における加工時間,またはある工程における加工開始時刻が、変動パラメータとして入力されたのを受けて、数215または数219に基づいて、更新後の最早開始時刻x〜Eを算出する。そして、数220に基づいて、更新後の出力時刻y〜および最遅開始時刻xL〜を各々算出し、さらに数221に基づいて、ボトルネック工程の抽出を行なうようにしている。これによって、例えばシステムの稼動中に出力時刻yに影響を及ぼしうる変動が発生した場合でも、システムの出力時刻y〜のみならず、各工程i毎における最早開始時刻x〜Eや最遅開始時刻xL〜の算出と、それにより得られる更新後のボトルネック工程を適確に抽出することができる。
なお、変動パラメータの入力は、例えばオペレータが入力装置15を介して入力するのではなく、各工程i毎に製品の移動状況を感知するセンサを備え、このセンサから得られた感知情報と、内蔵する計時手段とにより、人手を介さず自動的に入力できる構成としてもよい。
図4は、上記スケジュール再生成手段33の一連の動作をフローチャートで示したものである。同図において、ステップS21では、スケジュール再生成手段33に変動パラメータが入力されると、その入力した変動パラメータについて、スケジュール再生成手段33は、ある工程の加工開始時刻だけが変動した場合なのか否かを判断する。そして、もしそうであれば、ステップS22の手順に進み、数219に基づいた簡単な算出式によって、更新後の各工程i毎における最早開始時刻x〜Eを算出し、そうでなければ、別なステップS23の手順に進み、数215に基づいた一般的な算出式によって、更新後の各工程i毎における最早開始時刻x〜Eを算出する。こうして得られた最早開始時刻x〜Eは、一時的にRAM12に記憶される。
こうして、最早開始時刻x〜Eの算出が終了すると、スケジュール再生成手段33はステップS24において、数220に基づき更新後の出力時刻y〜および最遅開始時刻xL〜を各々算出し、一時的にRAM12に記憶する。そして最後にスケジュール再生成手段33は、ステップS25において、RAM12から読み出した最早開始時刻x〜Eおよび最遅開始時刻xL〜を利用し、数221に基づいて更新後のボトルネック工程の抽出を行なう。
次に、表1に示すような先行制約を有する簡単な生産システムを例にして、上述したスケジュール作成装置1の作用を説明する。
表1は、スケジュール作成の対象となる生産システムに課せられたパラメータを示している。ここでは、各工程1〜5に対して、その加工時間と、先行工程の番号と、入力番号と、出力番号の各パラメータが示されている。この表1に基づき、当該生産システムの先行制約や、外部への入出力位置の関係を、図5の模式図で示している。
表1に示すような各工程のパラメータが、スケジュール作成装置1のMPL形式作成手段31に取り込まれると、当該MPL形式作成手段31は、数151〜数154の定義に基づいて、生産システムの構造を表現する行列A0,F,B0,及びCの各要素を算出し決定する。行列A0は、工程数をnとしたときに、n次の正方行列で表され、その対角成分が各工程iの加工時間diとなり、それ以外の成分がεとなる。行列Fもn次の正方行列で表され、工程iが先行工程jを有するi行j列の成分が、先行工程jの加工時間djとなり、それ以外の成分がεとなる。行列B0は、工程数に等しい行と、入力数に等しい列で表わされ、工程iが入力jを有する場合は、i行j列の成分がeとなり、それ以外の成分はεとなる。さらに行列Cは、出力数に等しい行と、工程数に等しい列で表わされ、工程jが入力iを有する場合は、i行j列の成分が工程jの加工時間djとなり、それ以外の成分はεとなる。したがって、表1に示す生産システムの例では、各行列A0,F,B0,及びCが次のように表わされる。
なお、上の式中でdiagとは、対角行列の各成分を意味する。またTは転置行列を意味する。MPL形式作成手段31は続いて、全ての要素がεになるまで、前記接続行列Fの累乗(F2,F3…)を逐次的に計算する。この生産システムの例では、F4=ε55となって、行列中の全ての要素がεになるので、結局F*は次の式のように計算される。
ここで、生産システムの初期状態として、加工開始時間をx(k)=ε51とし、外部入力の時刻をu=[0 0]Tとすると、スケジュール生成手段32は、前記数182及び数183に基づいて、各工程iにおける最早開始時刻xEと、システムの加工終了時刻yを次の式のようにそれぞれ算出することができる。
続いてスケジュール生成手段32は、前述の数198,数200及び数207をそれぞれ用いて、全工程iの最遅開始時刻XL,最遅入力時刻uL及びトータルフロートwを次の式のように算出する。
即ち、工程1〜5の最遅開始時刻XLは、それぞれ0,1,2,4,7であり、入力1及び入力2の最遅入力時刻uLは、それぞれ0及び2である。さらに、工程1〜5のトータルフロートwは、それぞれ0,0,1,1,0であり、工程3,4は、1時間単位の余裕があることが分かる。スケジュール生成手段32は、数225で得た結果から、トータルフロートwが0である工程、即ち遅れ時間が許されない工程1,2,5を、ボトルネック工程の集合[1,2,5]として抽出することができる。スケジュール生成手段32により判明した各工程の資源使用計画を、ガントチャートで示したのが図6である。この図6に示すガントチャートは、スケジュール作成装置1がソフトウェアの機能として作成し、出力装置16に出力させることが可能である。
次に、上記生産システムを例にして、パラメータに変化が生じた場合における、再スケジュール生成手段33の動作について検討する。いま、時刻t=4において、工程4の加工開始時刻が、[x〜(0)]4=5に遅れることが判明したとする。この変動したパラメータの値を再スケジュール生成手段33が取得すると、再スケジュール生成手段33は取得した変更後の加工開始時刻が、元の加工開始時刻よりも大きく、遅延していると判断すれば、前記数219及び数220(但し、この場合は加工開始時刻のみ変更するため、変更後の行列C〜を算出する必要がなく、数220の行列C〜は行列Cとして計算できる。)に基づいて、新たな最早開始時刻と出力時刻を次のように算出する。
なお、上式において、下線を引いた成分が、遅延した開始時刻を示している。数226の算出結果によれば、更新した工程1〜5の最早開始時刻X〜Eは、数224で算出した当初の0,1,1,3,7から、それぞれ0,1,1,5,8となり、また出力時刻y〜は、数224で算出した当初の11から12に遅れることが分かる。この場合、工程4の加工開始時刻は、数224で算出した最早開始時刻に対し2時間単位の遅延を生じているが、工程4はボトルネック工程ではないため、終了時刻は1単位時間のみ遅延している。さらに、再スケジュール生成手段33は、パラメータ変化後における最遅開始時刻X〜Lとトータルフロートwを、次の式のように算出することができる。
従って、工程1〜5のトータルフロートwは、それぞれ1,1,2,0,0となり、今度は前記数221によって、遅れ時間が許されないボトルネック工程の集合が[4,5]に移動する。そのため、それまで1時間単位の余裕のあった工程4は遅れが許されず、逆にそれまでボトルネック工程であった工程2が、1単位時間の余裕を持つことが分かる。
このように、本実施例で示した手法を用いることで、先行制約を持つ生産システムのスケジューリングや、プロジェクトマネジメントにおいて、工程計画やボトルネック工程の把握を容易に行なうことができ、またシステムの稼動開始後に予期せぬパラメータの変化が生じた場合でも、望ましい再スケジューリングが可能となる。
以上のように本実施例では、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を入力パラメータとして取り込む取込部(入力装置15)と、前記取込部で取り込んだ入力パラメータを記憶する記憶部(RAM12)と、前記離散事象システムの状態を数77や数78の式で表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換する演算部(CPU11)と、を備えたスケジュール作成装置1において、前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、上記数151〜数154で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定し、前記行列Fを用いて、上記数173の行列F*(但し、Flにおいて全ての要素がεになり、またnは工程数である)を算出するMPL形式作成手段31を備えて構成される。
また本実施例では、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間が取込部で入力パラメータとして取り込まれると、この取込部で取り込んだ入力パラメータを記憶部で記憶し、さらに前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に演算部が変換するスケジュール作成方法において、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、上記数151〜数154で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ前記演算部で決定する第1のステップと、前記行列Fを用いて、上記数173の行列F*(但し、Flにおいて全ての要素がεになり、またnは工程数である)を前記演算部で算出する第2のステップと、を順次実行するものである。
また本実施例では、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を、入力パラメータとしてコンピュータであるスケジュール作成装置1に取り込ませ、この入力パラメータを前記コンピュータに記憶させ、さらに前記離散事象システムの状態を表現するために、前記入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換できるように前記コンピュータに演算を行なわせるコンピュータプログラム20において、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記入力パラメータに基づいて、上記数151〜数154で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定させる第1の手順と、前記行列Fを用いて、上記数173の行列F*(但し、Flにおいて全ての要素がεになり、またnは工程数である)を算出させる第2の手順と、を前記コンピュータに実行させている。
このようなスケジュール作成装置1,スケジュール作成方法,及びコンピュータプログラム20であれば、従来技術のようにわざわざ複数の数式(数79〜数83)を作成し、そこから任意の数式を適宜代入して、複雑な計算手法によりmax-plus代数上で線形なMPL形式の式(数77及び数78)に含まれる行列A,B,Cを算出しなくても、入力パラメータとして、各工程iの実行時間diと工程i間の先行制約関係の各情報がスケジュール作成装置1に記憶されていれば、そこからスケジュール作成装置1が独自のシステム構造を表現する行列A0,F,B0,Cについて、その各要素を決定し、さらにここで決定した行列Fから行列F*を算出して、max-plus代数上で線形なMPL形式を導出するための行列A0,F*,B0,Cを簡単に取得することができる。したがって、システムのスケジュール作成をコンピュータで実現する上で、より少ないメモリ消費で、与えられたシステムをMPLシステムとして表現できる形式に簡単に導出することが可能になる。
本実施例におけるスケジュール作成装置は、k番目の工程処理に関して、各工程での処理開始時刻をx(k)とし、入力時刻をu(k)としたときに、前記MPL形式作成手段31で算出した行列A0,B0,及びF*と、例えば取込部や記憶部から演算部に取り込まれる前記処理開始時刻x(k)及び入力時刻をu(k)とを利用して、前記数182に基づき全ての工程の最早開始時刻xEを算出するスケジュール生成手段32を前記演算部が備えている。
また、本実施例におけるスケジュール作成方法は、前記第1及び第2のステップで算出した行列A0,B0,及びF*と、前記演算部に取り込まれる前記処理開始時刻x(k)及び入力時刻をu(k)とを利用して、前記数182に基づき全ての工程の最早開始時刻xEを前記演算部で算出する第3のステップをさらに備えている。
また、本実施例におけるコンピュータプログラム20は、前記処理開始時刻x(k)及び入力時刻u(k)を取り込ませ、この処理開始時刻x(k)及び入力時刻u(k)と、前記第1及び第2の手順で算出させた行列A0,B0,及びF*とを利用して、前記数182に基づき全ての工程の最早開始時刻xEを算出させる第3の手順を、前記コンピュータにさらに実行させている。
こうすれば、初期状態の処理開始時刻x(k)と入力時刻u(k)が取り込まれれば、先に算出した行列A0,B0,及びF*を利用して、システムを構成する全ての工程の最早開始時刻xEを簡単に算出することができる。
さらに、本実施例におけるスケジュール作成装置は、前記演算部で算出した行列C及びF*と、前記全ての工程の最早開始時刻xEとを利用して、前記数198に基づき全ての工程の最遅開始時刻xLを算出するように、前記演算部を構成している。
こうすれば、先に算出した行列C及びF*と、全ての工程の最早開始時刻xEとを利用して、システムを構成する全ての工程の最遅開始時刻xLを簡単に算出することができる。
そしてこれは、前記第1および第2のステップで算出した行列C及びF*と、前記第3のステップで算出した前記全ての工程の最早開始時刻xEとを利用して、前記数198に基づき全ての工程の最遅開始時刻xLを前記演算部で算出する第4のステップをさらに備えたスケジュール作成方法や、前記第1および第2の手順で算出させた行列C及びF*と、前記第3のステップで算出させた前記全ての工程の最早開始時刻xEとを利用して、前記数198に基づき全ての工程の最遅開始時刻xLを前記演算部で算出させる第4の手順を、前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
本実施例におけるスケジュール作成装置の演算部は、前記最遅開始時刻xLから前記最早開始時刻xEを減算することで、全工程iのトータルフロートwを算出すると共に、このトータルフロートwの値が0になる工程を検索し、それをボトルネック工程として抽出する機能を有する。
つまり、全ての工程における最早開始時刻xEや最遅開始時刻xLが算出されていれば、後は簡単な演算処理によって全ての工程の余裕時間と、ボトルネック工程がどこに存在するのかを簡単に算出することができる。したがって、途中工程の稼動状態や、ボトルネック工程を十分に把握することが可能になる。
そしてこれは、前記最遅開始時刻xLから最早開始時刻xEを減算することで、全工程iのトータルフロートwを算出すると共に、このトータルフロートwの値が0になる工程を検索し、これをボトルネック工程として抽出する第5のステップをさらに備えたスケジュール作成方法や、前記最遅開始時刻xLから最早開始時刻xEを減算させることで、全工程iのトータルフロートwを算出させると共に、このトータルフロートwの値が0になる工程を検索させ、これをボトルネック工程として抽出させる第5の手順を、前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
本実施例におけるスケジュール作成装置の演算部は、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を数151,数152,数154及び数173により再計算し、変更後の行列A0〜,F〜,C〜,F*〜を前記記憶部に記憶させ、前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させ、前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の入力時刻x〜(0)として前記記憶部に記憶させ、前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記演算部で算出した行列B0を用いて、前記数215に基づき変更後の最早開始時刻x〜Eを算出する機能を有する。
また本実施例のスケジュール作成方法は、前記演算部が前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を数151,数152,数154及び数173により再計算し、変更後の行列A0〜,F〜,C〜,F*〜を前記記憶部に記憶させる第6のステップと、前記演算部が前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7のステップと、前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の入力時刻x〜(0)として前記記憶部に記憶させる第8のステップと、前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記第1のステップで算出した行列B0を用いて、前記数215に基づき変更後の最早開始時刻x〜Eを前記演算部で算出する第9のステップと、をさらに備えている。
また、本実施例におけるコンピュータプログラム20は、前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を数151,数152,数154及び数173により再計算させ、変更後の行列A0〜,F〜,C〜,F*〜を記憶させる第6の手順と、前記離散事象システムにおける入力時刻uの変更情報を取得させ、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7の手順と、前記離散事象システムにおける処理開始時刻xの変更情報を取得させ、これを変更後の入力時刻x〜(0)として前記記憶部に記憶させる第8の手順と、前記行列A0〜,F*〜,x〜(0),u〜を読み出させ、前記処理開始時刻x(k)と前記行列B0を用いて、前記数215に基づき変更後の最早開始時刻x〜Eを算出させる第9の手順と、を前記コンピュータにさらに実行させている。
このようにすれば、システムの稼動開始後に何らかの原因で、その入力時刻や加工時間や加工開始時刻が変化した場合でも、全ての工程における変更後の最早開始時刻x〜Eを適確に且つ効率的に把握することができる。
この場合、前記離散事象システムにおける処理開始時刻xの変更情報だけを取得し、且つその変更後の値が元の値よりも大きくなっていると判断したときには、前記演算部や前記第9のステップで、前記数219に基づき変更後の最早開始時刻x〜Eを算出し、または前記第9の手順で、前記数219に基づき変更後の最早開始時刻x〜Eをスケジュール作成装置1に算出させてもよい。
こうすれば、前記数215よりも単純な式である数219に基づき、全ての工程における変更後の最早開始時刻x〜Eを簡単に把握することができる。
また、本実施例におけるスケジュール作成装置は、前記演算部で算出した行列Cまたは変更後の行列C〜及びF*〜と、全ての工程における前記変更後の最早開始時刻x〜Eとを利用して、次の数228に基づき全ての工程における変更後の最遅開始時刻x〜Lを算出するように、前記演算部を構成している。
こうすれば、先に算出した行列CまたはC〜及びF*と、全ての工程における変更後の最早開始時刻x〜Eとを利用して、システムを構成する全ての工程における変更後の最遅開始時刻x〜Lを簡単に算出することができる。
そしてこれは、前記第1のステップで算出した行列Cまたは前記第6のステップで算出した変更後の行列C〜及び前記第6のステップで算出したF*〜と、全ての工程における前記変更後の最早開始時刻x〜Eとを利用して、上記数228に基づき全ての工程における変更後の最遅開始時刻x〜Lを算出する第10のステップをさらに備えたスケジュール作成方法や、前記第1の手順で算出させた行列Cまたは前記第6の手順で算出させた変更後の行列C〜及び前記第6の手順で算出させたF*〜と、全ての工程における前記変更後の最早開始時刻x〜Eとを利用して、上記数228に基づき全ての工程における変更後の最遅開始時刻x〜Lを算出させる第10の手順を、前記コンピュータにさらに実行させても実現する。
さらに、本実施例におけるスケジュール作成装置の演算部は、前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算することで、全工程iの変更後におけるトータルフロートwを算出すると共に、この変更後におけるトータルフロートwの値が0になる工程を検索し、それを変更後のボトルネック工程として再抽出する機能を有する。
つまり、全ての工程における変更後の最早開始時刻x〜Eや最遅開始時刻x〜Lを算出できるので、後は簡単な演算処理によって全ての工程における変更後の余裕時間と、変更後のボトルネック工程がどこに存在するのかを簡単に算出することができる。したがって、システムの稼動後に各種パラメータが変化した場合であっても、適確に且つ効率的に再スケジューリングを実行することが可能になる。
そしてこれは、前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算することで、全工程iの変更後におけるトータルフロートwを算出すると共に、この変更後におけるトータルフロートwの値が0になる工程を検索し、それを変更後のボトルネック工程として再抽出する第11のステップをさらに備えたスケジュール作成方法や、前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算させることで、全工程iの変更後におけるトータルフロートwを算出させると共に、この変更後におけるトータルフロートwの値が0になる工程を検索させ、それを変更後のボトルネック工程として再抽出させる第11の手順を、前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
次に、本発明の他の実施例におけるスケジュール作成方法と、それを実現するスケジュール作成装置1について説明する。なお、上記第1実施例と同一部分には同一符号を付し、その共通する箇所の説明は重複を避けるため極力省略する。
ここで、最初の第2実施例では、前のイベント(バッチ)との非競合を考慮して、当該イベントの内部状態が、前のイベントの内部状態の関数で表現されるフォワード型のMPL状態空間表現と再スケジューリングについて説明する。また次の第3実施例では、後続イベントとの非競合を考慮して、当該イベントの内部状態が、後続イベントの内部状態の関数で表現されるバックワード型のMPL状態空間表現と再スケジューリングについて説明する。これらの第2,第3実施例は、何れも第1実施例よりも表現行列に出現するシステムパラメータの数が少なく、簡単な状態空間表現を導出できるという特徴を有する。また、MPL形式の状態表現式が、プロセスの実行順序を表す行列と、プロセスの実行時間を指定する行列とに明確に分離して表現されることも特徴である。これにより、スケジュール作成装置1のコンピュータで、第1実施例よりも簡単で且つ高速な計算を実現できる。さらに、フォワード型およびバックワード型の何れも、それらの表現形式が現代制御理論における双対システムに類似していることも注目される。
スケジュール作成装置1の内部構成は、図1で示したとおり、各実施例共に共通している。但し、コンピュータプログラム20に含まれるMPL形式作成手順,スケジュール作成手順,および再スケジュール作成手順と、こうした手順を各々処理実行するMPL形式作成手段31,スケジュール作成手段32,および再スケジュール作成手段33の機能構成は、各実施例で異なっている。
第2実施例におけるフォワード型のMPL表現について説明すると、ここではスケジュール作成装置1に入力する状態変数として、第1実施例のような加工(バッジ)「開始」時刻ではなく、加工「終了」時刻を割り付ける。これにより、表現行列に含まれるシステムパラメータ(加工時間)の数を減少させることができる。以下、状態変数として加工「終了」時刻を割り付けた場合に、どのような表現行列を含むMPL表現形式となるのかを説明する。
先ずここでは、生産システムに課せられる制約条件を、以下のように仮定する。
・工程数はnで、外部からの入力数と出力数を、それぞれpおよびqとする。
・各バッチ共に全ての行程を通過し、かつ加工回数は1回である。
・各工程の設備が稼動中のときには、その加工が終了するまで、次の加工を開始できない。
・先行工程を有する工程は、それらの先行工程の加工が終了しないと、加工を開始できない。
・外部入力のある工程は、対応する原材料が入力されるまで、その加工を開始できない。
・工程数はnで、外部からの入力数と出力数を、それぞれpおよびqとする。
・各バッチ共に全ての行程を通過し、かつ加工回数は1回である。
・各工程の設備が稼動中のときには、その加工が終了するまで、次の加工を開始できない。
・先行工程を有する工程は、それらの先行工程の加工が終了しないと、加工を開始できない。
・外部入力のある工程は、対応する原材料が入力されるまで、その加工を開始できない。
以上の制約条件の下で、k番目の部品に関し、工程i(1≦i≦n)における加工終了時刻を状態変数として割り付けた場合を[x+(k)]iとし、加工開始時刻を状態変数として割り付けた場合を[x-(k)]iとする。またここでは、工程iにおけるk番目の部品の加工時間をdi(k)として表わすと、次の数式のような関係が成立する。
図8は、工程iに関する先行工程や外部入力との関係を模式的にあらわしたものであり、ここで使用する以下の記号は、次のような意味を有する。
図8に示す入力変数[u(k)]jは、材料の投入時刻に割り付ける。工程iは、前の部品の加工が終了し、全ての先行工程から部品の供給を受け、かつ全ての外部入力から材料が投入されると、加工が開始できる状態となる。したがって、工程iにおけるk番目のバッチの最早開始時刻[x- E(k)]iは、前述のmax-plus代数を用いて次のように表わせる。
上記数231の右辺は、工程iにおける前のバッチの加工終了時刻,先行工程jにおける加工終了時刻,外部入力jにおける材料の投入時刻をそれぞれ表している。ここで、数229を利用して数231を変形すると、次の関係の式が得られる。
ここで、次の数233〜数235に示すような性質を満たす行列Pk∈Dn×n,F0∈Dn×n,B0∈Dn×pを導入する。行列Pkは、システムパラメータであるk番目の部品の加工時間di(k)にのみ依存し、行列F0,B0は、システムの構造(実行順序関係)にのみ依存して、双方を明確に分離している。また、行列F0,B0は、εまたはeの論理変数だけで構成される。
なお、上記数233におけるdiagは、対角行列を意味する。これらの各行列Pk,F0,B0を用いると、上記数232におけるk番目のバッチの最早終了時刻[x+ E(k)]iは、次のように表わすことができる。
これが、任意の工程iについて成立することから、数236の最後の式は、次のように表わせる。
ここで、数237を簡略化するために、次の数238に示す定理を用いる。
数237の右辺第1項のx+ E(k)に、当該数237の右辺全体を代入すると、次の式が得られる。
同様にして、この数239の右辺第1項のx+ E(k)に、数237の右辺全体を代入することを繰り返し、前記数238に示す定理を利用すると、k番目のバッチの最早終了時刻x+ E(k)は、次のように簡略化して表わすことができる。
但し、上記数240の(PkF0)*は、次のように表わせる。ここで、(PkF0)lにおいて全ての要素がεになり、またnは工程数である。
上記数240において、右辺の中にあって、次の数242で表わせる式の第一項x+(k−1)は、k−1番目のイベントカウンタに対するバッチの加工終了時刻を表わし、また第二項B0u(k)は、外部入力を有する工程における材料の投入時刻を表わすことから、数242の式は、各工程の設備が準備(ready)状態になる時刻を表わしていると解釈できる。また、行程の加工時間には陽に存在しない。
一方、数240の右辺の中にある別な項(PkF0)*Pkは、F0がシステムの先行制約関係を表わし、Pkが行程の加工時間を表わすことから、加工済の部品がシステムの下流方向へ流れて行く際の最短移送時間を表わしていると解釈できる。またこの実施例では、k番目のイベントカウンタにおけるバッチの加工時間だけを含み、複数のイベントカウンタ(例えばk番目とk+1番目)におけるバッチの加工時間は含まないパラメータによって、MPLシステムに適合する作業プロセスの状態を表現した式が算出される。
続いて、最早の完成時刻を出力変数においたときの出力方程式について考える。ここでは、外部入力から外部出力へ加工を行なわずに直接部品を渡すような、入力と出力とを直接接続するシステム(直達)についても考慮できるようにする。図9は、出力iに関する先行工程や外部入力との関係を模式的にあらわしたものであり、ここで使用する変数や集合は、次のような意味を有する。
このとき、出力iにおけるシステムの最早出力時刻[yE(k)]iは、次の式のように表わすことができる。
ここで、上記数244に関し、次の数245および数246に示すような性質を満たす行列C0∈Dq×n,D0∈Dq×pを導入する。
これらの各行列C0,D0を用いると、上記数244における出力変数[yE(k)]iは、次のように表わすことができる。
上記の式は、任意の出力i(1≦i≦q)について成立するので、次のように書き表せる。
なお、図10に示すように、入力と出力が直接接続していないシステムでは、右辺の第二項D0u(k)を省略することができるので、その場合のMPL形式作成手段31が作成するMPL形式の状態表現式は、次の数249および数250のようになる。
このように本実施例では、システムのバッジ終了時刻が状態変数として入力するようにMPL形式作成手段31を構成すると共に、前記システムの諸情報(各工程iのk番目のバッチにおける加工時間di(k)や、入力,出力及び各工程間の接続構造)条件を入力として、数233〜数235で定義された行列Pk,Fo,Boの各要素と、数245および数246で定義された行列Co,Doの各要素を決定し、その後は数241に従って、前記行列Pk,FoからMPLシステムの形式に基づく数240(または数249)の行列(PkF0)*Pkを算出できるように、前記MPL形式作成手段31を構成すれば、数240及び数248(または数250)にて記述されるMPL形式での状態空間表現を取得することができ、この数240及び数248を利用して、後段のスケジュール作成手段32が、システムにおける種々のスケジュール作成(特に、各バッジの最早加工終了時刻x+ E(k)や、システムの最早出力時刻yE(k))を行うことが可能となる。
ここで、前述した図10のシステムを例にして、本実施例特有の効果を具体的に説明する。先ず第1実施例のように、状態変数として加工開始時刻x(k)やx(k−1)が入力される場合、MPL形式作成手段31が作成するMPL形式での状態空間表現は、次のような式になる。
一方、本実施例でMPL形式作成手段31が作成するMPL形式での状態空間表現は、上述した数249および数250のようになる。ここで、図10のシステムに基づく接続構造と加工時間を入力として、以下に示す表現行列PK,Bo,Fo,Fk,Co,Ckの行と列の各要素を決定すると、次のようになる。
このように、第1実施例では、MPL形式作成手段31で決定される三つの表現行列PK,Fk,Ckに、それぞれ加工時間dのパラメータが含まれているのに対して、第2実施例では、MPL形式作成手段31で決定される一つの表現行列Fkにのみ、加工時間dのパラメータが含まれている。しかも、第2実施例では、システムの構造に依存する行列Fo,Bo,Coと、加工時間dのパラメータに依存する行列PKが、明確に分離しており、第1実施例よりも簡潔で高速な計算が行なえる。因みに、図10に示すシステムでは、2つの入力jに対して出力iが何れも出力を持たないため、数246における表現行列D0は、D0=[ε ε]となる。この表現行列D0も、システムの構造に依存していて、加工時間dのパラメータを含まない。
また、第2実施例の状態空間表現式に含まれる項(PkF0)*Pkと、第1実施例の状態空間表現式に含まれる項Fk *Pk-1をそれぞれ計算すると、次のようになる。
つまり、同じシステムを表現するのに、第1実施例では、d1(k),d2(k),d1(k−1),d2(k−1),d3(k−1)からなる五種類の加工時間のパラメータが出現するのに対し、第2実施例では、d1(k),d2(k),d3(k)の三種類に加工時間のパラメータが減少しており、より簡潔な状態空間表現の導出が可能になっている。以上のような本実施例の特徴から、大規模なシステムの解析を行なう際に、計算の負荷が高くなったり、パラメータの値が一部でも変化すると、全ての表現行列を再計算しなければならないような煩わしさを解消でき、特に加工時間のパラメータが頻繁に変化するようなシステムや、加工時間のパラメータを未知変数として扱う定式化を行なうような場合に、MPL形式作成手段31における計算処理の負担を軽減することが可能になる。
次に、本発明の第3実施例におけるバックワード型のMPL表現について説明する。第1実施例のスケジュール作成手段32は、数251で示したように、前のバッチk−1の加工開始時刻x(k−1)と、入力時刻u(k)が与えられると、状態変数x(k)の予測値の下限を求めることで、最早加工開始時刻xE(k)を得るようにしているが、この実施例におけるスケジュール作成手段32は、出力時刻y(k)と、次のバッチk+1の加工開始時刻x(k+1)が与えられると、状態変数x(k)の予測値の上限を求めることで、最遅加工開始時刻xL(k)を得るようになっている。以下、このバックワード型のMPL状態空間表現が、どのような形式で表わせるのかを説明する。
先ずここでは、生産システムに課せられる制約条件について考える。前記フォワード型のMPL表現では、前のバッチとの資源非競合を考慮して、制約条件を仮定したが、本実施例では、次のバッチとの資源非競合を考慮して、次のように制約条件を仮定する。
・当該バッチの加工終了時刻は、後続工程の加工開始時刻以前でなければならない。
・後続工程を有する工程は、それらの後続工程の加工開始時刻以前に、加工を終了していなければならない。
・外部入力のある工程は、出力時刻以前に加工を終了していなければならない。
・当該バッチの加工終了時刻は、後続工程の加工開始時刻以前でなければならない。
・後続工程を有する工程は、それらの後続工程の加工開始時刻以前に、加工を終了していなければならない。
・外部入力のある工程は、出力時刻以前に加工を終了していなければならない。
次に、入力変数[u(k)]j(但し、1≦j≦q)を、j個の外部出力への出力時刻としてスケジュール作成装置1に与えたときの、各工程における最遅加工開始時刻を導出する。図11は、工程iの後続工程や外部出力との関係を示した図であり、ここで使用する記号で、Qiは工程iに接続された外部出力番号の集合を意味し、Siは後続工程番号の集合を意味する。なお、工程iに外部出力が存在しない場合は、Qi={φ}であり、工程iに後続工程が存在しない場合は、Si={φ}である。工程iにおける加工終了時刻は、次の部品の加工開始前で、全ての外部出力への出力時刻および後続工程での部品加工開始前でなければならない。従って、工程iにおける最遅終了時刻[x+ L(k)]iは、次のように表わせる。
上記数255において、右辺の各項は左から順に、次のバッチk+1の加工開始時刻と、後続工程jにおける加工開始時刻と、外部出力jに対する製品の提供時刻を表わしている。前記数229を数255に代入すると、次の式のような関係が成り立つ。
この実施例では、第2実施例と同じ表現行列Pk,F0,C0を用いる。上記数256は、次のように変形できる。
上記式は、任意の工程i(1≦i≦n)について成立することから、数257は、次のように表わせる。
数258の右辺第1項のx- L(k)に、当該数258の右辺全体を代入すると、次の式が得られる。
同様にして、この数259の右辺第1項のx- L(k)に、数258の右辺全体を代入することを繰り返し、次の数260に示す定理を利用すると、k番目のバッチの最遅加工開始時刻x- L(k)は、次の数261のように簡略化して表わすことができる。
続いて、最遅の材料投入時刻を出力変数においたときの出力方程式について考える。上述した直達システムを含むものについても考慮すると、図12は、外部入力iにつながる外部出力や後続工程の関係を模式的にあらわしているが、ここで使用する変数や集合は、次のような意味を有する。
このときの最遅材料投入時刻[yL(k)]iは、次のように表わせる。
なお、出力iに後続工程が存在しない場合は、数262で定義した集合Ui={φ}であり、外部出力が存在しない場合は、Wi={φ}である。数263は、前記表現行列B0,D0を用いて、次のように表わせる。
これが、任意の出力i(1≦i≦q)について成立するので、数264は次のように書き表せる。
このように本実施例では、システムの製品完成時刻とバッジ加工開始時刻が入力するようにMPL形式作成手段31を構成すると共に、前記システムの諸情報(各工程iのk番目のバッチにおける加工時間di(k)や、入力,出力及び各工程間の接続構造)条件を入力として、数233〜数235で定義された行列Pk,Fo,Boの各要素と、数245および数246で定義された行列Co,Doの各要素を決定し、その後は数241に従って、前記行列Pk,FoからMPLシステムの形式に基づく数240(または数249)の行列(PkF0)*Pkを算出できるように、前記MPL形式作成手段31を構成すれば、数261及び数265にて記述されるMPL形式での状態空間表現を取得することができ、この数261及び数265を利用して、後段のスケジュール作成手段32が、システムにおける種々のスケジュール作成(特に、各バッジの最遅加工開始時刻x- L(k)や、システムの最遅投入時刻yL(k))を行うことが可能となる。
またこの場合も、第2実施例と同様に、システムの構造に依存する行列Fo,Bo,Coと、加工時間dのパラメータに依存する行列PKが、明確に分離しており、第1実施例よりも簡潔で高速な計算が行なえる。しかも、同じシステムを表現するのに加工時間のパラメータが減少し、より簡潔な状態空間表現の導出が可能になっている。
次に、上記第2実施例と第3実施例でスケジュール作成手段32が計算に利用する状態方程式と出力方程式の類似性について考察する。
前記数248におけるシステムの最早出力時刻yE(k)は、次のように表わすこともできる。
同様に、数265におけるシステムの最遅投入時刻yl(k)は、次のように表わすこともできる。
一方、現代制御理論における状態方程式と出力方程式は、次の式のように与えられる。
このシステムに対して、次のような双対変換を施す。
すると、上記数268および数269から、次のような双対システムが得られる。
これと類似の関係が、上記第2実施例と第3実施例で導いた状態方程式と出力方程式にも当てはまる。先ず、前記数240や数261において、(PkF0)*Pk=Akとおき、さらに、数266や数267において、(F0Pk)*B0=Bk,Co(PkF0)*=Ckとおく。フォワード型の状態空間表現の方程式である数240と数266において、右辺の状態変数を最早終了時間においたときも成立するので、下記のような関係が成り立つ。
一方、バックワード型の方程式である数261や数267では、右辺の状態変数を最遅開始時間においたときも成立するので、下記のような関係が成り立つ。
上記数270における時間の反転が、数273におけるイベントカウンタの反転に対応するものと考え、また演算子∧や、「・」のシンボルを丸印で囲んだ演算子は、バックワード型での加算および乗算に類した性質を有していることから、数273と数275の関係は、数268と数271の関係に極めて類似している。また同様に、数274と数276の関係は、数269と数272の関係に極めて類似している。
このように、本実施例で導いた最早時刻や最遅時刻を求める状態方程式と出力方程式は、現代制御理論における双対システムの概念と非常に類似している。なお、実際のMPL形式作成手段3やスケジュール作成手段32が行なう計算では、次の各式における状態方程式や出力方程式を用いる方が、高速に演算を行なうことができ好ましい。
上記数277〜数280の各式において、加工時間に関するパラメータは、行列AK=(PkF0)*Pkにのみ含まれており、その他の表現行列B0,C0,D0は、単位元ε,eだけで表わせる定数行列である。そのため、加工時間に関するパラメータの値が変化した場合でも、行列AK=だけを再計算すればよく、MPL形式作成手段31やスケジュール作成手段32が処理する上での取り扱いが容易である。
次に、第2実施例や第3実施例で説明したスケジュール作成手段32を利用して、各工程のトータルフロートや、ボトルネック工程の算出を行なう手順を説明する。前記スケジュール作成装置32は、k−1番目のバッチの加工終了時刻x(k−1)と、k番目のバッチの材料投入時刻u(k)が入力されると、MPL形式作成手段31が作成した上記数277による方程式に基づき、最早加工終了時刻x+ E(k)を算出し、またk番目のバッチの加工終了時刻x(k)と、材料投入時刻u(k)が入力されると、数278による方程式に基づき、最早出力時刻yE(k)を算出する。さらに、k+1番目のバッチの加工開始時刻x(k+1)と、材料投入時刻u(k)が入力されると、数279による方程式に基づき、最遅加工開始時刻x- L(k)を算出し、k+1番目のバッチの加工開始時刻x(k+1)と、材料投入時刻u(k)が入力されると、最遅投入時刻yL(k)を算出する。
次に、スケジュール作成手段32は、次の式を用いて各工程のトータルフロートwを算出する。この式は、前記数207にも示されているが、k番目のバッチの最遅開始時刻xL(k)から最早開始時刻xE(k)を減算することで得られる。なお、ここでいう最遅開始時刻xL(k)とは、前記最遅加工開始時刻x- L(k)や最遅投入時刻yL(k)のことであり、最早開始時刻xE(k)とは、前記数229に基づき、最早加工終了時刻x+ E(k)から加工時間d(k)を減算したり、最早出力時刻yE(k)から得ることができる。
またボトルネック工程は、トータルフロートwが0になる工程の集合として与えられ、これを数式で表わすと次のようになる。この式は、前記数208に対応している。
つまり、スケジュール生成手段32は、先に当該スケジュール生成手段32が数277〜数280に基づいて算出した最早開始時刻から最早開始時刻xE(k)と最遅開始時刻xL(k)を用いることで、数281や数282により全ての工程iにおけるトータルフロートwと、どの工程がボトルネックとなっているのかを簡単に抽出できる。
次に、第2実施例や第3実施例における再スケジュール生成手段33の具体的な構成について説明する。これらの実施例における再スケジュール生成手段33も、入力時刻,加工時間,加工開始時刻,加工終了時刻などの変更情報を入力として、各工程iにおける最早加工終了時刻x+ E(k)および最遅加工開始時刻x- L(k)や、ボトルネックとなる工程がどのように変化したのかを再度見直す機能を有している。
いま、バッチの加工開始後に何らかの原因で、その入力時刻,加工時間,加工終了時刻などが変化したと仮定する。入力時刻と加工終了時刻については、外部入力時刻u(k)と、該当する工程iの加工終了時刻[x+(0)(k)]iにそれぞれ影響を及ぼすことから、これらの外部入力時刻u(k)や開始時刻[x+(0)(k)]iの変化後における状態を、第1実施例と同様に、それぞれ記号の上または横にシンボル〜をつけて表わす。また、加工時間に関する変動は、前述のように行列Pkにのみ影響を及ぼすことから、この記号の上または横にシンボル〜をつけて表わす。すると第2実施例における再スケジュール生成手段33は、次の式に基づいて更新後の最早加工終了時刻x+ E〜(k)を算出する。
なお、上記式の右辺第一項は、変化分に伴なう追加項である。また特別な場合として、プロセスの加工時間di(k)は変化せず、ある工程iの加工終了時刻x+(0)(k)だけが遅延したとの入力を受けると、再スケジュール生成手段33は、次の簡便な計算式によって更新後の最早加工終了時刻x+ E〜(k)を算出する。
これを第1実施例の場合と比較すると、第1実施例では上記数283と数284に対応して、次の各式で更新後の最早加工開始時刻xE(k)を算出できる。
なお、各々の行列は前記数253と数254に対応している。前記第1実施例では、前のk−1番目のバッチにおける加工時間(システムパラメータ)が変化しても、再計算が必要であるが、第2実施例では前のバッチのシステムパラメータが含まれないことから、そうした再計算は不要になる。
次に、第3実施例における再スケジュール生成手段33について説明する。バックワード型の状態方程式と出力方程式は、次の式に示された通りである。なおこの場合は、対象となるシステムにおいて、入力と出力とを直接接続する構成が存在しないものする。また前述したように、第3実施例では、制御入力u(k)を外部への出力時刻とし、制御出力y(k)を外部からの入力時刻としている。
いま、バッチの加工開始後に何らかの原因で、その出力時刻,加工時間,加工開始時刻などが変化したと仮定する。出力時刻と加工終了時刻については、外部出力時刻u(k)と、該当する工程iの加工開始時刻[x-(0)(k)]iにそれぞれ影響を及ぼすことから、これらの外部出力時刻u(k)や開始時刻[x-(0)(k)]iの変化後における状態を、それぞれ記号の上または横にシンボル〜をつけて表わす。また、加工時間に関する変動は、前述のように行列Pkにのみ影響を及ぼすことから、この記号の上または横にシンボル〜をつけて表わす。すると第3実施例における再スケジュール生成手段33は、次の式に基づいて更新後の最遅加工開始時刻x- L〜(k)を算出する。
なお、上記式の右辺最終項は、変化分に伴なう追加項である。また特別な場合として、プロセスの加工時間di(k)は変化せず、ある工程iの加工開始時刻x-(0)(k)だけが早まったとの入力を受けると、再スケジュール生成手段33は、次の簡便な計算式によって更新後の最遅加工開始時刻x- L〜(k)を算出する。
上記(F0Pk)*は、次の関係式を用いて比較的簡単に計算できる。なお、ここにあるAkは、MPL形式作成手段31が状態方程式を決定するのに算出したものを、そのまま用いることができる。
ここで、次の数式を用いる。
すると、(F0Pk)*は、次のように表わせる。
また行列表現で表わすならば、次の式のようになる。
更新後のボトルネック工程の抽出は、前記数221で表わした式に基づき算出できる。
このように、上記第2実施例や第3実施例では、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を入力パラメータとして取り込む取込部(入力装置15)と、前記取込部で取り込んだ入力パラメータを記憶する記憶部(RAM12)と、前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換する演算部(CPU11)と、を備えたスケジュール作成装置1において、前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、数233〜数235,数245,数246で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0の各要素をそれぞれ決定し、前記行列F0を用いて、数241の行列(PkF0)*を算出するMPL形式作成手段31を備えて構成される。
また、第2実施例や第3実施例では、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間が取込部で入力パラメータとして取り込まれると、この取込部で取り込んだ入力パラメータを記憶部で記憶し、さらに前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に演算部が変換するスケジュール作成方法において、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、数233〜数235,数245,数246で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0の各要素をそれぞれ前記演算部で決定する第1のステップと、前記行列F0を用いて、数241の行列(PkF0)*を前記演算部で算出する第2のステップと、を順次実行している。
また、第2実施例や第3実施例では、一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を、入力パラメータとしてコンピュータであるスケジュール作成装置1に取り込ませ、この入力パラメータを前記コンピュータに記憶させ、さらに前記離散事象システムの状態を表現するために、前記入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換できるように前記コンピュータに演算を行なわせるコンピュータプログラム20において、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、数233〜数235,数245,数246で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0の各要素をそれぞれ決定させる第1の手順と、前記行列F0を用いて、数241の行列(PkF0)*を算出させる第2の手順と、を前記コンピュータに実行させている。
このようなスケジュール作成装置1,スケジュール作成方法,及びコンピュータプログラム20であれば、従来技術のようにわざわざ複数の数式(数79〜数83)を作成し、そこから任意の数式を適宜代入して、複雑な計算手法によりmax-plus代数上で線形なMPL形式の式(数77及び数78)に含まれる行列A,B,Cを算出しなくても、入力パラメータとして、各工程iの実行時間di(k)と工程i間の先行制約関係の各情報がスケジュール作成装置1に記憶されていれば、そこからスケジュール作成装置1が独自のシステム構造を表現する行列Pk,F0,B0,C0,D0について、その各要素を決定し、さらにここで決定した行列Pk,F0から行列(PkF0)*を算出して、max-plus代数上で線形なMPL形式を導出するための行列Pk,F0,B0,C0,D0,(PkF0)*を簡単に取得することができる。したがって、システムのスケジュール作成をコンピュータで実現する上で、より少ないメモリ消費で、与えられたシステムをMPLシステムとして表現できる形式に簡単に導出することが可能になる。
さらにこの場合は、システムの構造に依存する行列Fo,Bo,Co,D0と、加工時間のパラメータに依存する行列PKが明確に分離しており、より簡潔で高速な計算を実現できる。しかも、同じシステムを表現する上で、加工時間のパラメータが減少しており、より簡潔な状態空間表現の導出が可能になる。
第2実施例におけるスケジュール作成装置は、k番目の工程処理に関して、各工程での処理終了時刻をx+(k)とし、入力時刻をu(k)としたときに、前記第1及び第2のステップで算出した行列Pk,B0,及び(PkF0)*と、前記演算部に取り込まれるk−1番目の前記処理終了時刻x+(k−1)及び入力時刻u(k)とを利用して、数240に基づきk番目の処理工程の最早終了時刻x+ E(k)を算出するように、前記演算部を構成している。
また、第2実施例におけるスケジュール作成方法は、前記第1及び第2のステップで算出した行列Pk,B0,及び(PkF0)*と、前記演算部に取り込まれるk−1番目の前記処理終了時刻x+(k−1)及び入力時刻u(k)とを利用して、次の数17に基づきk番目の処理工程の最早終了時刻x+ E(k)を前記演算部で算出する第3のステップをさらに備えている。
また、第2実施例におけるコンピュータプログラム20は、k−1番目の前記処理終了時刻x+(k−1)及び入力時刻u(k)を取り込ませ、この処理終了時刻x+(k−1)及び入力時刻u(k)と、前記第1及び第2の手順で算出させた行列Pk,B0,及び(PkF0)*とを利用して、次の数61に基づきk番目の処理工程の最早終了時刻x+ E(k)を算出させる第3の手順を、前記コンピュータに実行させている。
こうすれば、初期状態の処理終了時刻x+(k−1)及び入力時刻u(k)が取り込まれると、先に算出した行列Pk,B0,及び(PkF0)*を利用して、システムを構成する全ての工程の最早終了時刻x+ E(k)を簡単に算出することができる。
それに加えて第3実施例のスケジュール作成装置は、前記演算部で算出した行列Pk,B0,及び(PkF0)*と、前記演算部に取り込まれるk+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)とを利用して、数261に基づきk番目の処理工程の最遅開始時刻x- L(k)を算出するように、前記演算部を構成している。
こうすれば、初期状態の処理終了時刻x+(k+1)及び入力時刻u(k)が取り込まれると、先に算出した行列Pk,B0,及び(PkF0)*を利用して、システムを構成する全ての工程の最遅開始時刻x- L(k)を簡単に算出することができる。
そしてこれは、前記第1及び第2のステップで算出した行列Pk,C0,及び(PkF0)*と、前記演算部に取り込まれるk+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)とを利用して、数261に基づきk番目の処理工程の最遅開始時刻x- L(k)を前記演算部で算出する第4のステップをさらに備えたスケジュール作成方法や、k+1番目の前記処理開始時刻x-(k+1)及び出力時刻u(k)を取り込ませ、このk+1番目の前記処理開始時刻x-(k−1)及び出力時刻u(k)と、前記第1及び第2の手順で算出させた行列Pk,C0,及び(PkF0)*とを利用して、数261に基づきk番目の処理工程の最遅開始時刻x- L(k)を算出させる第4の手順を、前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
また、ここでのスケジュール作成装置は、前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出するように、前記演算部を構成している。
こうすると、全ての工程における最早開始時刻xE(k)や最遅開始時刻xL(k)が算出されていれば、後は簡単な演算処理によって全ての工程の余裕時間と、ボトルネック工程がどこに存在するのかを簡単に算出することができる。したがって、途中工程の稼動状態や、ボトルネック工程を十分に把握することが可能になる。
そしてこれは、前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出する第5のステップをさらに備えたスケジュール作成方法や、前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算させることで、全工程のトータルフロートを算出させると共に、このトータルフロートの値が0になる工程を検索させ、これをボトルネック工程として抽出させる第5の手順を、前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
また、第2実施例のスケジュール作成装置は、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させ、前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させ、前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させ、前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記演算部で算出した行列F0,B0を用いて、数283に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成している。
こうすると、システムの稼動開始後に何らかの原因で、その入力時刻や加工時間や加工終了時刻が変化した場合でも、全ての工程における変更後の最早終了時刻x〜+ E(k)を適確に且つ効率的に把握することができる。
そしてこれは、前記演算部が、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させる第6のステップと、前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させる第7のステップと、前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させる第8のステップと、前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記第1のステップで算出した行列F0,B0を用いて、数283に基づき変更後の最早終了時刻x〜+ E(k)を前記演算部で算出する第9のステップと、をさらに備えたスケジュール作成方法によっても実現する。
また、前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算させ、変更後の行列PK〜を記憶させる第6の手順と、前記離散事象システムにおける入力時刻u(k)の変更情報を取得させ、これを変更後の入力時刻u(k)〜として記憶させる第7の手順と、前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得させ、これを変更後の処理終了時刻x〜+(0)(k)として記憶させる第8の手順と、前記行列PK〜,x〜+(0)(k),u(k)〜を読み出させ、前記処理終了時刻x+(k−1)と前記行列F0,B0を用いて、次の数283に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第9の手順と、を前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
また、第2実施例におけるスケジュール作成装置は、前記離散事象システムにおける処理終了時刻x+(k)の変更情報だけを取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させ、前記記憶部から読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっていると判断したときに、数356に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成している。
こうすると、より単純な算術手順で、全ての工程における変更後の最早終了時刻x〜+ E(k)を簡単に把握することができる。
そしてこれは、前記演算部が、前記離散事象システムにおける処理終了時刻x+(k)の変更情報だけを取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させる第10のステップと、前記記憶部から読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっていると判断したときに、数356に基づき変更後の最早終了時刻x〜+ E(k)を算出する第11のステップと、をさらに備えたスケジュール作成方法や、前記離散事象システムにおける処理終了時刻x+(k)の変更情報だけを取得させ、これを変更後の処理終了時刻x〜+(0)(k)として記憶させる第10の手順と、前記読み出した変更後の処理終了時刻x〜+(0)(k)が、元の値よりも大きくなっていると判断したときに、数356に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第11の手順と、を前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
第3実施例におけるスケジュール作成装置は、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させ、
前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させ、前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記演算部で算出した行列F0,C0を用いて、数289に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成している。
前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させ、前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記演算部で算出した行列F0,C0を用いて、数289に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成している。
こうすると、システムの稼動開始後に何らかの原因で、その出力時刻や加工時間や加工終了時刻が変化した場合でも、全ての工程における変更後の最遅開始時刻x〜- L(k)を適確に且つ効率的に把握することができる。
そしてこれは、前記演算部が、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させる第12のステップと、前記演算部が前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させる第13のステップと、前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させる第14のステップと、前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記第1のステップで算出した行列F0,C0を用いて、数289に基づき変更後の最遅開始時刻x〜- L(k)を前記演算部で算出する第15のステップと、をさらに備えたスケジュール作成方法でも実現する。
また、前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算させ、変更後の行列PK〜を記憶させる第12の手順と、前記離散事象システムにおける出力時刻u(k)の変更情報を取得させ、これを変更後の出力時刻u(k)〜として記憶させる第13の手順と、前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得させ、これを変更後の処理開始時刻x〜-(0)(k)として記憶させる第14の手順と、前記行列PK〜,x〜-(0)(k),u(k)〜を読み出させ、前記処理終了時刻x-(k+1)と前記行列F0,C0とを用いて、数289に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第15の手順と、を前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
さらに、第3実施例におけるスケジュール作成装置は、前記離散事象システムにおける処理開始時刻x-(k)の変更情報だけを取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、前記記憶部から読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっていると判断したときに、数290に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成している。
こうすると、より単純な算術手順で、全ての工程における変更後の最遅開始時刻x〜- L(k)を簡単に把握することができる。
そしてこれは、前記演算部が、前記離散事象システムにおける処理開始時刻x-(k)の変更情報だけを取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させる第16のステップと、前記記憶部から読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっていると判断したときに、次の数22に基づき変更後の最遅開始時刻x〜- L(k)を算出する第17のステップと、をさらに備えたスケジュール作成方法や、前記離散事象システムにおける処理開始時刻x-(k)の変更情報だけを取得させ、これを変更後の処理開始時刻x〜-(0)(k)として記憶させる第16の手順と、前記読み出した変更後の処理開始時刻x〜-(0)(k)が、元の値よりも小さくなっていると判断したときに、数290に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第17の手順と、を前記コンピュータにさらに実行させるコンピュータプログラム20によっても実現する。
なお、本発明は上記実施例に限定されるものではなく、本発明の要旨の範囲において種々の変形実施が可能である。例えば、実施例中では、複数の工程からなる生産システムを例として採用したが、タスクに順序制約を有するプロジェクト管理などを含むあらゆるシステムや、プロジェクトスケジューリング問題や、物流システムの配送計画問題などにも、そのまま適用が可能である。また、入力や出力が複数箇所存在するような、いわゆるMIMO(Multiple Input Multiple Output)型構造を有するシステムへの適用も可能であり、従来知られているPERT(Program Evaluation and Review Technique)による方法よりも、適用範囲が広いことを意味する。
1 スケジュール作成装置(コンピュータ)
11 CPU(演算部)
12 RAM(記憶部)
16 出力装置(取込部)
20 コンピュータプログラム
11 CPU(演算部)
12 RAM(記憶部)
16 出力装置(取込部)
20 コンピュータプログラム
Claims (48)
- 一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間が取込部で入力パラメータとして取り込まれると、この取込部で取り込んだ入力パラメータを記憶部で記憶し、さらに前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に演算部が変換するスケジュール作成方法において、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数1〜数4で定義されたシステム構造を表現する行列A0,F,B0,C(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ前記演算部で決定する第1のステップと、
- 前記最遅開始時刻xLから最早開始時刻xEを減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出する第5のステップをさらに備えたことを特徴とする請求項3記載のスケジュール作成方法。
- 前記演算部が前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を再計算し、変更後の行列A0〜,F〜,C〜,F*〜を前記記憶部に記憶させる第6のステップと、
前記演算部が前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させる第7のステップと、
前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の処理開始時刻x〜(0)として前記記憶部に記憶させる第8のステップと、
前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記第1のステップで算出した行列B0を用いて、次の数8に基づき変更後の最早開始時刻x〜Eを前記演算部で算出する第9のステップと、
- 前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算することで、全工程の変更後におけるトータルフロートを算出すると共に、この変更後におけるトータルフロートの値が0になる工程を検索し、それを変更後のボトルネック工程として再抽出する第11のステップをさらに備えたことを特徴とする請求項7記載のスケジュール作成方法。
- 一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間が取込部で入力パラメータとして取り込まれると、この取込部で取り込んだ入力パラメータを記憶部で記憶し、さらに前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に演算部が変換するスケジュール作成方法において、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数11〜数15で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ前記演算部で決定する第1のステップと、
- 前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出する第5のステップをさらに備えたことを特徴とする請求項11記載のスケジュール作成方法。
- 前記演算部が、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させる第6のステップと、
前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させる第7のステップと、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させる第8のステップと、
前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記第1のステップで算出した行列F0,B0を用いて、次の数19に基づき変更後の最早終了時刻x〜+ E(k)を前記演算部で算出する第9のステップと、
- 前記演算部が、前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させる第12のステップと、
前記演算部が前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させる第13のステップと、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させる第14のステップと、
前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記第1のステップで算出した行列F0,C0を用いて、次の数21に基づき変更後の最遅開始時刻x〜- L(k)を前記演算部で算出する第15のステップと、
- 一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を入力パラメータとして取り込む取込部と、前記取込部で取り込んだ入力パラメータを記憶する記憶部と、前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換する演算部と、を備えたスケジュール作成装置において、
前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数23〜数26で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定し、
- 前記最遅開始時刻xLから前記最早開始時刻xEを減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、それをボトルネック工程として抽出するように、前記演算部を構成したことを特徴とする請求項19記載のスケジュール作成装置。
- 前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を再計算し、変更後の行列A0〜,F〜,C〜,F*〜を前記記憶部に記憶させ、
前記離散事象システムにおける入力時刻uの変更情報を取得すると、これを変更後の入力時刻u〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理開始時刻xの変更情報を取得すると、これを変更後の処理開始時刻x〜(0)として前記記憶部に記憶させ、
前記記憶部から行列A0〜,F*〜,x〜(0),u〜を読み出し、前記演算部に取り込まれる前記処理開始時刻x(k)と前記演算部で算出した行列B0を用いて、次の数30に基づき変更後の最早開始時刻x〜Eを算出するように、前記演算部を構成したことを特徴とする請求項18記載のスケジュール作成装置。
- 前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算することで、全工程の変更後におけるトータルフロートを算出すると共に、この変更後におけるトータルフロートの値が0になる工程を検索し、それを変更後のボトルネック工程として再抽出するように、前記演算部を構成したことを特徴とする請求項23記載のスケジュール作成装置。
- 一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を入力パラメータとして取り込む取込部と、前記取込部で取り込んだ入力パラメータを記憶する記憶部と、前記離散事象システムの状態を表現するために、前記記憶部から読み出した入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換する演算部と、を備えたスケジュール作成装置において、
前記演算部は、前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数33〜数37で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ決定し、
- 前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算することで、全工程のトータルフロートを算出すると共に、このトータルフロートの値が0になる工程を検索し、これをボトルネック工程として抽出するように、前記演算部を構成したことを特徴とする請求項27記載のスケジュール作成装置。
- 前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させ、
前記演算部が前記離散事象システムにおける入力時刻u(k)の変更情報を取得すると、これを変更後の入力時刻u(k)〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得すると、これを変更後の処理終了時刻x〜+(0)(k)として前記記憶部に記憶させ、
前記記憶部から行列PK〜,x〜+(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x+(k−1)と前記演算部で算出した行列F0,B0を用いて、次の数41に基づき変更後の最早終了時刻x〜+ E(k)を算出するように、前記演算部を構成したことを特徴とする請求項26記載のスケジュール作成装置。
- 前記離散事象システムにおける工程の加工時間の変更情報を取得すると、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算し、変更後の行列PK〜を前記記憶部に記憶させ、
前記離散事象システムにおける出力時刻u(k)の変更情報を取得すると、これを変更後の出力時刻u(k)〜として前記記憶部に記憶させ、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得すると、これを変更後の処理開始時刻x〜-(0)(k)として前記記憶部に記憶させ、
前記記憶部から行列PK〜,x〜-(0)(k),u(k)〜を読み出し、前記演算部に取り込まれる前記処理終了時刻x-(k+1)と前記演算部で算出した行列F0,C0を用いて、次の数43に基づき変更後の最遅開始時刻x〜- L(k)を算出するように、前記演算部を構成したことを特徴とする請求項27記載のスケジュール作成装置。
- 一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を、入力パラメータとしてコンピュータであるスケジュール作成装置に取り込ませ、この入力パラメータを前記コンピュータに記憶させ、さらに前記離散事象システムの状態を表現するために、前記入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換できるように前記コンピュータに演算を行なわせるコンピュータプログラムにおいて、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおける実行時間をdiとしたときに、前記入力パラメータに基づいて、次の数45〜数48で定義されたシステム構造を表現する行列A0,F,B0,Cの各要素をそれぞれ決定させる第1の手順と、
- 前記最遅開始時刻xLから最早開始時刻xEを減算させることで、全工程のトータルフロートを算出させると共に、このトータルフロートの値が0になる工程を検索させ、これをボトルネック工程として抽出させる第5の手順を、前記コンピュータに実行させることを特徴とする請求項35記載のコンピュータプログラム。
- 前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列A0,F,C,F*の各要素を再計算させ、変更後の行列A0〜,F〜,C〜,F*〜を記憶させる第6の手順と、
前記離散事象システムにおける入力時刻uの変更情報を取得させ、これを変更後の入力時刻u〜として記憶させる第7の手順と、
前記離散事象システムにおける処理開始時刻xの変更情報を取得させ、これを変更後の処理開始時刻x〜(0)として記憶させる第8の手順と、
前記行列A0〜,F*〜,x〜(0),u〜を読み出させ、前記処理開始時刻x(k)と前記行列B0を用いて、次の数52に基づき変更後の最早開始時刻x〜Eを算出させる第9の手順と、を前記コンピュータに実行させることを特徴とする請求項34記載のコンピュータプログラム。
- 前記変更後の最遅開始時刻x〜Lから前記変更後の最早開始時刻x〜Eを減算させることで、全工程の変更後におけるトータルフロートを算出させると共に、この変更後におけるトータルフロートの値が0になる工程を検索させ、それを変更後のボトルネック工程として再抽出させる第11の手順を、前記コンピュータに実行させることを特徴とする請求項39記載のコンピュータプログラム。
- 一乃至複数の入力,一乃至複数の出力,及び複数の工程を組み合わせてなり、前記入力に投入した処理対象を前記複数の工程で処理し、その処理結果を出力に送り出す離散事象システムに関し、前記処理対象を受け渡す前記各工程の実行順序を規定する先行制約関係,及び前記各工程における実行時間を、入力パラメータとしてコンピュータであるスケジュール作成装置に取り込ませ、この入力パラメータを前記コンピュータに記憶させ、さらに前記離散事象システムの状態を表現するために、前記入力パラメータに基づいて、max-plus代数上で線形なMPL形式に変換できるように前記コンピュータに演算を行なわせるコンピュータプログラムにおいて、
前記max-plus代数上で線形なMPL形式を導出できるようにするために、前記各工程iにおけるk番目の処理工程の実行時間をdi(k)としたときに、前記記憶部から読み出した入力パラメータに基づいて、次の数55〜数59で定義されたシステム構造を表現する行列Pk,F0,B0,C0,D0(但し、[X]ijは行列Xにおけるi行j列の要素である)の各要素をそれぞれ決定させる第1の手順と、
- 前記最早終了時刻x+ E(k)から算出した最早開始時刻xE(k)を、前記最遅開始時刻xL(k)から減算させることで、全工程のトータルフロートを算出させると共に、このトータルフロートの値が0になる工程を検索させ、これをボトルネック工程として抽出させる第5の手順を、前記コンピュータに実行させることを特徴とする請求項43記載のコンピュータプログラム。
- 前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算させ、変更後の行列PK〜を記憶させる第6の手順と、
前記離散事象システムにおける入力時刻u(k)の変更情報を取得させ、これを変更後の入力時刻u(k)〜として記憶させる第7の手順と、
前記離散事象システムにおける処理終了時刻x+(k)の変更情報を取得させ、これを変更後の処理終了時刻x〜+(0)(k)として記憶させる第8の手順と、
前記行列PK〜,x〜+(0)(k),u(k)〜を読み出させ、前記処理終了時刻x+(k−1)と前記行列F0,B0を用いて、次の数63に基づき変更後の最早終了時刻x〜+ E(k)を算出させる第9の手順と、
を前記コンピュータに実行させることを特徴とする請求項42記載のコンピュータプログラム。
- 前記離散事象システムにおける工程の加工時間の変更情報を取得させ、この加工時間の変更情報に基づいて、前記行列Pkの各要素を再計算させ、変更後の行列PK〜を記憶させる第12の手順と、
前記離散事象システムにおける出力時刻u(k)の変更情報を取得させ、これを変更後の出力時刻u(k)〜として記憶させる第13の手順と、
前記離散事象システムにおける処理開始時刻x-(k)の変更情報を取得させ、これを変更後の処理開始時刻x〜-(0)(k)として記憶させる第14の手順と、
前記行列PK〜,x〜-(0)(k),u(k)〜を読み出させ、前記処理終了時刻x-(k+1)と前記行列F0,C0とを用いて、次の数65に基づき変更後の最遅開始時刻x〜- L(k)を算出させる第15の手順と、
を前記コンピュータに実行させることを特徴とする請求項43記載のコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006271193A JP2007334855A (ja) | 2006-05-17 | 2006-10-02 | スケジュール作成方法,スケジュール作成装置,及びコンピュータプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006137394 | 2006-05-17 | ||
JP2006271193A JP2007334855A (ja) | 2006-05-17 | 2006-10-02 | スケジュール作成方法,スケジュール作成装置,及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007334855A true JP2007334855A (ja) | 2007-12-27 |
Family
ID=38934239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006271193A Pending JP2007334855A (ja) | 2006-05-17 | 2006-10-02 | スケジュール作成方法,スケジュール作成装置,及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007334855A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198339A (ja) * | 2009-02-25 | 2010-09-09 | Nagaoka Univ Of Technology | スケジュール作成方法、スケジュール作成装置及びコンピュータプログラム |
WO2011002052A1 (ja) * | 2009-07-01 | 2011-01-06 | 株式会社多様性総合研究所 | タスクグラフ解析装置およびタスクグラフ解析プログラム |
WO2013157765A1 (ko) * | 2012-04-19 | 2013-10-24 | 에스케이씨앤씨 주식회사 | 정규 표현식을 이용한 작업 스케줄링 방법 및 이를 적용한 전자기기 |
CN114548494A (zh) * | 2022-01-13 | 2022-05-27 | 国网湖北省电力有限公司经济技术研究院 | 一种可视化造价数据预测智能分析系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240853A (ja) * | 2003-02-07 | 2004-08-26 | Japan Research Institute Ltd | スケジュール生成方法、状態表現方法、状態表現装置、スケジュール生成装置、コンピュータプログラム、及び記録媒体 |
JP2005339178A (ja) * | 2004-05-26 | 2005-12-08 | Japan Research Institute Ltd | スケジュール作成方法、スケジュール作成装置及びコンピュータプログラム |
-
2006
- 2006-10-02 JP JP2006271193A patent/JP2007334855A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004240853A (ja) * | 2003-02-07 | 2004-08-26 | Japan Research Institute Ltd | スケジュール生成方法、状態表現方法、状態表現装置、スケジュール生成装置、コンピュータプログラム、及び記録媒体 |
JP2005339178A (ja) * | 2004-05-26 | 2005-12-08 | Japan Research Institute Ltd | スケジュール作成方法、スケジュール作成装置及びコンピュータプログラム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198339A (ja) * | 2009-02-25 | 2010-09-09 | Nagaoka Univ Of Technology | スケジュール作成方法、スケジュール作成装置及びコンピュータプログラム |
WO2011002052A1 (ja) * | 2009-07-01 | 2011-01-06 | 株式会社多様性総合研究所 | タスクグラフ解析装置およびタスクグラフ解析プログラム |
WO2013157765A1 (ko) * | 2012-04-19 | 2013-10-24 | 에스케이씨앤씨 주식회사 | 정규 표현식을 이용한 작업 스케줄링 방법 및 이를 적용한 전자기기 |
KR101396047B1 (ko) | 2012-04-19 | 2014-05-16 | 에스케이씨앤씨 주식회사 | 정규 표현식을 이용한 작업 스케쥴링 방법 및 이를 적용한 전자기기 |
CN114548494A (zh) * | 2022-01-13 | 2022-05-27 | 国网湖北省电力有限公司经济技术研究院 | 一种可视化造价数据预测智能分析系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bektur et al. | A mathematical model and heuristic algorithms for an unrelated parallel machine scheduling problem with sequence-dependent setup times, machine eligibility restrictions and a common server | |
Zhang et al. | Bottleneck machine identification method based on constraint transformation for job shop scheduling with genetic algorithm | |
Pempera et al. | Open shop cyclic scheduling | |
Sprangers et al. | Probabilistic gradient boosting machines for large-scale probabilistic regression | |
Ben-Ammar et al. | Planned lead times optimization for multi-level assembly systems under uncertainties | |
Jia et al. | Combined scheduling algorithm for re-entrant batch-processing machines in semiconductor wafer manufacturing | |
EP1672578A1 (en) | Method and system for analyzing the risk of a project | |
JP2007334855A (ja) | スケジュール作成方法,スケジュール作成装置,及びコンピュータプログラム | |
Zhang et al. | An improved forward algorithm for optimal control of a class of hybrid systems | |
KR100991316B1 (ko) | 제조 설비에 관련된 예보를 생성하기 위한 시뮬레이션 사용 | |
Gerpott et al. | Integration of the a2c algorithm for production scheduling in a two-stage hybrid flow shop environment | |
Mousavi et al. | Bi-objective hybrid flow shop scheduling: a new local search | |
US8655630B2 (en) | Apparatus, system, and method for construction of a design workflow | |
CN106897199A (zh) | 一种基于大数据处理框架共有特征的批作业执行时间预测方法 | |
Eren et al. | A bicriteria scheduling problem with a learning effect: Total completion time and total tardiness | |
JP5233423B2 (ja) | 消費エネルギー推定装置、その未知パラメータ値推定装置、プログラム | |
Dylewski et al. | The optimal sequence of production orders, taking into account the cost of delays | |
CN113592288B (zh) | 一种基于非等同并行机模型的下料计划排程方法 | |
CN109766181A (zh) | 一种基于深度学习的rms可调度性判定方法及装置 | |
JP7135435B2 (ja) | 情報処理装置及びプログラム | |
JP2010198339A (ja) | スケジュール作成方法、スケジュール作成装置及びコンピュータプログラム | |
CN112947339A (zh) | 一种基于性能指标的半导体生产线动态调度方法 | |
CN110334055B (zh) | 一种获取材料计算数据的方法 | |
JP4846376B2 (ja) | 生産・物流スケジュール作成装置及び方法、生産・物流プロセス制御装置及び方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体 | |
CN109739638A (zh) | 一种基于深度学习的edf可调度性判定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090925 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110920 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120227 |