以下に、本開示の実施の形態にかかるスケジューリング装置、スケジューリングシステム、およびスケジューリング方法を図面に基づいて詳細に説明する。
実施の形態1.
図1は、実施の形態1にかかるスケジューリング装置の構成を示す図である。実施の形態1にかかるスケジューリング装置1Aは、生産ラインに配置された生産設備に対する生産納期、生産コスト、生産負荷といったユーザからの要求を反映したスケジュール(ジョブ実行スケジュール)を作成および補正する装置である。すなわち、スケジューリング装置1Aは、ユーザからの要求である、生産納期、生産コスト、生産負荷などを反映したスケジュールを作成および補正する。
スケジューリング装置1Aの計画補正部17Aは、例えば、生産設備または作業者のスケジュール計画時のリソース、または標準的かつ簡易的な作業のリソースを用いて、スケジュールを補正する。
また、スケジューリング装置1Aの計画補正部17Aは、スケジュールを補正する際に使用可能なリソースの情報(遅延時使用可能リソース23)を用いて、スケジュールを補正してもよい。スケジュールを補正する際に使用可能なリソースの情報は、生産ラインの工程の作業を行う生産設備および作業者の情報であり、リソース(生産設備および作業者)の実態に対応する情報である。
スケジュールは、機械加工設備などの生産設備において実行されるジョブの生産スケジュールデータである。スケジュールは、加工機といった生産設備が被加工物(ワーク)を種々の加工プログラムで順番に加工していく際に用いられる。スケジュールには、加工機などが実行する加工の単位であるジョブの実行順序が登録されている。
スケジューリング装置1Aは、生産ラインの加工工程を含む全ての工程に対して実行順序と、実行する生産設備(加工機)と、実行する作業者とを自動的に割り当てることでスケジュールを作成する。
スケジューリング装置1Aは、製品の生産計画と、生産設備および作業者の稼働計画とを考慮した組合せ最適化問題を解くことで、スケジュールを作成し、製品の加工順序および各加工で用いる加工機および作業者の割当を決定する。
図1では、スケジューリング装置1Aが作成するスケジュールをスケジュール41として図示している。また、図1では、スケジューリング装置1Aが作成してユーザが承認したスケジュール41を承認済みスケジュール26として図示している。生産設備では、承認済みスケジュール26を用いて生産が行われる。
スケジューリング装置1Aは、リアルタイムで監視データ(工程進捗情報31およびセンサ情報32)を収集し、運用中の承認済みスケジュール26(以下、運用中スケジュールという場合がある)に対する工程の進捗状況を監視する。スケジューリング装置1Aは、この監視データを、遅延状態の見積もりに用いる。スケジューリング装置1Aは、遅延の発生を検出すると、遅延に対処するために、運用中スケジュールの補正案(承認済みスケジュール26に対する補正案)(以下、単に補正案という場合がある)を作成する。スケジューリング装置1Aが作成する補正案は、遅延を解消するためのスケジュール(補正スケジュール計画)である。
スケジューリング装置1Aは、補正案を作成する際には、ユーザ要求を受付け、ユーザの要求(ユーザ要求)を反映した補正案を作成する。このように、スケジューリング装置1Aは、ユーザ要求を反映することによって、遅延状態からの復旧を最優先とする補正案、遅延を一部許容してでも補正負荷を軽減するような補正案などを作成する。スケジューリング装置1Aは、液晶モニタなどの表示部2に接続されており、作成したスケジュール41、補正案などを表示部2に表示させる。また、スケジューリング装置1Aは、リソース制御部7に接続されており、作成したスケジュール41、補正案などをリソース制御部7に送信する。
リソース制御部7は、スケジューリング装置1Aが作成したスケジュール41、補正案などに基づいて、生産設備、人員配置などを決定し、生産設備、人員などのリソースを制御する計算機またはシステムである。リソース制御部7は、リソースを制御することで、スケジュール41、補正案などに応じたジョブを生産設備および作業者に実行させる。なお、リソース制御部7は、スケジューリング装置1A内に配置されていてもよい。
スケジューリング装置1Aは、入力部11と、ユーザ要求受付部12と、計画作成部13と、リアルタイム実績取得部14Aと、遅延見積部15Aと、計画提示部16と、計画補正部17Aとを備えている。
入力部11は、スケジューリング装置1Aの外部装置から、ジョブリスト21と、制約情報22と、遅延時使用可能リソース(生産リソース情報)23とを受付ける。また、入力部11は、ユーザから計画承認可否情報24を受付ける。計画承認可否情報24のうちスケジュール41の作成時に入力部11が受付ける計画承認可否情報24が第1の計画承認可否情報であり、補正案の作成時に入力部11が受付ける計画承認可否情報24が第2の計画承認可否情報である。
入力部11は、補正案の作成時にジョブリスト21、制約情報22、および計画承認可否情報24を受付けると、ジョブリスト21、制約情報22、および計画承認可否情報24を計画作成部13に送信する。
また、入力部11は、補正案の作成時にジョブリスト21、制約情報22、遅延時使用可能リソース23、および計画承認可否情報24を受付けると、ジョブリスト21、制約情報22、遅延時使用可能リソース23、および計画承認可否情報24を計画補正部17Aに送信する。なお、計画補正部17Aへは、計画作成部13がジョブリスト21および制約情報22の少なくとも一方を送信してもよい。
ユーザ要求受付部12は、ユーザからのユーザ要求の一例である優先度情報25を受付ける。例えば、表示部2がタッチパネル式の液晶モニタである場合、ユーザ要求受付部12は、表示部2に入力された情報に対する操作を表示部2から受付ける。優先度情報25は、スケジュール41または補正案が作成される際に優先される評価項目(優先項目)と、評価項目毎の優先度(優先順位または重み)を示す情報である。優先度情報25の詳細については後述する。ユーザ要求受付部12は、優先度情報25を計画作成部13および計画補正部17Aに送信する。
なお、ユーザ要求受付部12は、作成済みのスケジュール41または補正案に対する不服点、改善要求点などのユーザ要求をユーザから受付けてもよい。ユーザ要求受付部12は、スケジュール41の作成時にユーザ要求を受付けると、ユーザ要求を計画作成部13に送信する。ユーザ要求受付部12は、補正案の作成時にユーザ要求を受付けると、ユーザ要求を計画補正部17Aに送信する。
ジョブリスト21は、スケジュール41の作成対象となるジョブのリストであり、生産設備において実行されるジョブの情報が含まれている。ジョブリスト21は、スケジューリング装置1Aが、スケジュール41を作成する際に用いられる。ジョブリスト21は、スケジューリング装置1Aとは別のスケジューリング装置で作成される。なお、ジョブリスト21は、スケジューリング装置1Aが作成してもよい。
ここで、ジョブリスト21の構成について説明する。図2は、実施の形態1にかかるスケジューリング装置が用いるジョブリストの構成を示す図である。ジョブリスト21では、ジョブID(Identification、識別情報)と、ジョブ優先順位と、加工指示と、ワークIDと、加工プログラムIDと、見積時間とが対応付けされている。
ジョブIDは、ジョブを識別する情報である。ジョブリスト21におけるジョブ優先順位は、ジョブID毎の処理の優先順位である。加工指示には、ジョブの納期および加工機IDが含まれている。ジョブの納期は、ジョブIDに対応するジョブの完了期限であり、加工機IDは、ジョブIDに対応するジョブを実行する加工機を識別する情報である。
ワークIDは、ジョブIDに対応するジョブで用いられるワークを識別する情報であり、加工プログラムIDは、ジョブIDに対応するジョブで用いられる加工プログラムを識別する情報である。
見積時間には、ジョブIDに対応するジョブにおける、加工処理の見積時間と、加工前処理の見積時間と、加工後処理の見積時間とが含まれている。加工前処理の見積時間には、ワークの搬入時間およびワークの段取り時間が含まれている。ワークの段取りは、ワークの平行取付処理、ワークの水平取付処理、ワークの基準位置の測定処理などである。加工後処理の見積時間には、ワークの測定処理およびワークの搬出時間が含まれている。
制約情報22は、スケジュール41が作成される際のジョブおよび作業者に対する制約の情報(ファイル)である。制約情報22には、ジョブに対する制約を示すジョブ制約情報と、作業者に対する制約を示す作業者制約情報とが含まれている。
図3は、実施の形態1にかかるスケジューリング装置が用いるジョブ制約情報の構成を示す図である。ジョブ制約情報22Aでは、ジョブIDと、依存する前工程の情報(依存前工程)と、要求されるスキルレベルの情報(要求スキルレベル)と、工程の削除可否を示す情報(工程削除可否)と、前工程との連続実施が必要であるか否かの情報(前工程との連続実施要否)とが対応付けされている。
依存前工程は、ジョブが依存する前工程のジョブを示す情報(制約)である。依存前工程には、依存するジョブのジョブIDが設定される。各ジョブは、依存前工程がある場合、この依存前工程が完了しないと実行できない。例えば、図3に示すジョブ制約情報22Aの場合、ジョブIDが「J003」のジョブは、ジョブIDが「J001」のジョブに依存しており、「J001」のジョブが完了するまで、「J003」のジョブは実行できない。
要求スキルレベルは、ジョブに要求される作業者のスキルレベルの情報である。例えば、無人で実行可能なジョブに対しては、要求スキルレベル情報として「0」が設定される。また、作業者が必要なジョブに対しては、要求されるスキルレベルの数値が設定される。
工程削除可否は、ジョブの工程を削除してもよいか否かの情報である。例えば、工程削除可否には、ジョブの工程を削除してもよい場合には「1」が設定され、ジョブの工程を削除してはいけない場合には「0」が設定される。
前工程との連続実施要否は、ジョブを前工程のジョブと連続して実施する必要があるか否かの情報である。例えば、前工程との連続実施要否には、ジョブを前工程のジョブと連続して実施する必要がある場合には「1」が設定され、ジョブを前工程のジョブと連続して実施する必要がない場合には「0」が設定される。
図4は、実施の形態1にかかるスケジューリング装置が用いる作業者制約情報の構成を示す図である。作業者制約情報22Bでは、作業者IDと、作業者のスキルレベルと、作業者の勤務日程とが対応付けされている。
作業者IDは、作業者を識別する情報である。スキルレベルは、作業者が実施可能な工程を制限する情報である。作業者は、スキルレベルで示される値以下の要求スキルレベルの工程を扱うことができる。換言すると、作業者は、スキルレベルの数値が高いほど熟練工であり、多くの種類の作業をこなせる。すなわち、作業者は、スキルレベルの値が大きいほど扱える工程の種類が多い。作業者の勤務日程には、作業者が勤務する日程に対して「1」が設定され、作業者が勤務しない休みの日程に対して「0」が設定される。
遅延時使用可能リソース23は、工程が遅延した際に使用可能な余剰のリソース(遊休のリソース)の情報である。遅延時使用可能リソース23には、工程の遅延時に使用可能な作業者のリソースを示す作業者リソースと、工程の遅延時に使用可能な設備のリソースを示す設備リソースとが含まれている。
図5は、実施の形態1にかかるスケジューリング装置が用いる作業者リソースの構成を示す図である。作業者リソース23Aでは、スキルレベルと、作業日程毎のヘルプ可能人数とが対応付けされている。すなわち、作業者リソース23Aでは、作業日程に対するスキルレベル毎のヘルプ可能人数が設定されている。ヘルプ可能人数は、工程の遅延時に割り当て可能な作業者の人数である。
例えば、作業者リソース23Aの場合、5月18日の午前(5/18 AM)の作業日程は、工程の遅延時に、スキルレベルが「1」の作業者を3人、スキルレベルが「2」の作業者を1人、スキルレベルが「3」の作業者を1人割り当てることが可能である。
図6は、実施の形態1にかかるスケジューリング装置が用いる設備リソースの構成を示す図である。設備リソース23Bでは、設備リソース名と、作業日程毎に設備を使用可能か否かの情報とが対応付けされている。すなわち、設備リソース23Bでは、作業日程に対し設備リソース名毎に使用可能か否かの情報が設定されている。
設備リソース23Bに登録される設備リソース名の設備は、例えば、繁忙期にはフル稼働となるように使用されるが、通常期は遊休状態の設備(加工機など)である。設備リソース23Bでは、例えば、作業日程に対して使用可能な設備リソース名には「1」が設定され、作業日程に対して使用不可の設備リソース名には「0」が設定される。
計画承認可否情報24は、計画提示部16によってユーザに提示されたスケジュール41または補正案に対してユーザが承認するか拒否するかの情報である。計画承認可否情報24は、計画提示部16が表示部2に表示させた計画承認を確認するための画面(後述する計画承認確認画面3)に対し、ユーザが承認または拒否の情報を入力することで、入力部11に入力される。
図7は、実施の形態1にかかるスケジューリング装置が表示部に表示させる計画承認確認画面の例を示す図である。表示部2は、計画提示部16から送信された情報に従って計画承認確認画面3を表示する。
計画承認確認画面3では、計画段階のスケジュール41である計画時スケジュールと、この計画時スケジュールを承認するための承認ボタンと、この計画時スケジュールを拒否するための拒否ボタンとが表示される。
計画時スケジュールでは、加工機IDと、時間毎のジョブIDとが対応付けされている。すなわち、計画時スケジュールでは、横軸を時間とし、加工機ID毎に、ジョブの実行時間帯に対応する領域にジョブのジョブIDが設定されている。計画時スケジュールでは、右側の領域ほど時間が進んでいる。以下、何れかのスケジュールを図示する際には、右側の領域ほど時間が進んでいる。
表示部2は、ユーザによって承認ボタンが押下されると、計画承認確認画面3に表示している計画時スケジュールを承認することを示す計画承認可否情報24(以下、承認情報という場合がある)を入力部11に送信する。
一方、表示部2は、ユーザによって拒否ボタンが押下されると、計画承認確認画面3に表示している計画時スケジュールを拒否することを示す計画承認可否情報24を入力部11に送信する。
図8は、実施の形態1にかかるスケジューリング装置が受付ける優先度情報の例を示す図である。優先度情報25は、スケジュール41が作成される際に優先される評価項目の優先度(優先順位または重み)を示す情報である。優先度情報25は、ユーザによって作成されてユーザ要求受付部12に入力される。これにより、ユーザ要求受付部12は、優先度情報25を受付ける。
優先度情報25では、優先順位と、評価項目とが対応付けされている。評価項目は、スケジュール41が作成される際に優先される項目であり、スケジュール41が作成される際の評価指標として用いられる。例えば、優先順位が上位の評価項目ほど、スケジューリングにおいて優先度が大きくなる。すなわち、優先順位が「1」である評価項目が最も優先され、この評価項目がスケジュール41の作成時に重視される。
例えば、評価項目のうちの「納期遅れ最小化」は、納期遅れが最小となるように工程の順番を決定することである。「生産コスト最小化」は、生産工程において発生する生産コストが最小となるように工程の順番を決定することである。例えば、生産コストを最小化するためには、段取り替えの回数を減らす、電気料金が安い時間を極力利用して生産することなどが行われる。「対応負荷最小化」は、作業者の負荷が最小となるように、工程間の時間を決定することである。例えば、作業者の負荷を最小化するためには、現場での段取り替えまたは操作ミス等の防止を確保するために、工程間の時間にマージン時間を設けることなどが行われる。
スケジューリング装置1Aは、優先度情報25の評価項目に対して、優先順位が上位の評価項目ほど大きい重み付けを行ったうえで、スケジュール41または補正案を作成する。スケジューリング装置1Aは、優先順位が上位の評価項目を満たすほど評価値が高くなる評価関数を用いてスケジュール41または補正案を作成する。例えば、「納期遅れ最小化」の優先順位が1位である場合、スケジューリング装置1Aは、生産コストを最小化するよりも、また作業者の対応負荷を最小化するよりも優先して納期遅れが最小に近付くようにスケジュール41または補正案を作成する。
評価関数は、スケジュール41または補正案を評価するための関数である。評価関数は、優先順位が高い評価項目が優先されるほど評価値が高くなる関数である。すなわち、評価関数は、補正案を適用した場合に評価項目の目標に近いほど高い評価値となる評価項目毎の関数である項目別関数と項目別関数の重み付けに用いる評価項目毎の重みとから構成されており、項目別関数と評価項目毎の重みとに従い、作成された補正案に対する評価を行う。評価関数における項目別関数のそれぞれには重みが設定されている。スケジューリング装置1Aは、評価値が最大化するようにスケジューリングを行うことで、優先順位が高い評価項目を優先したスケジュール41または補正案を作成する。すなわち、スケジューリング装置1A(計画作成部13および計画補正部17A)は、評価関数の評価値がより高くなるように、重みが大きい評価項目を優先して満たすスケジュール41および補正案を作成する。
なお、評価関数は、優先順位が高い評価項目が優先されるほど評価値が低くなる関数であってもよい。この場合、スケジューリング装置1Aは、評価値が最小化するようにスケジューリングを行うことで、優先順位が高い評価項目を優先したスケジュール41または補正案を作成する。
また、「対応負荷最小化」の優先順位が1位である場合には、スケジューリング装置1Aは、工程の遅延を許容してでも、工程間の時間にマージン時間を設けることを優先する。なお、ここでは優先度情報25の優先度が優先順位である場合について説明したが、優先度は重みであってもよい。
ユーザは、納期を遵守したい場合、電気代などの生産コストを低減したい場合、作業者の負荷を低減させたい場合など、種々の状況に応じて、評価項目の優先度または重みを設定した優先度情報25をスケジューリング装置1Aに登録することが可能である。
実施の形態1のスケジューリング装置1Aは、ユーザによって設定された優先度情報25に基づいてスケジュール計画であるスケジュール41を作成することで、ユーザからの要求を反映した柔軟なスケジューリングを行う。
計画作成部13は、生産ラインの工程に対して、実行順序と、使用する生産設備および作業者とを決定するスケジュール41を作成する。具体的には、計画作成部13は、ジョブリスト21、制約情報22、および優先度情報25に基づいて、スケジュール41を作成する。計画作成部13は、例えば、ジョブリスト21においてジョブ優先順位が上位に設定されているジョブから順番にジョブが実行されるようにスケジュール41を作成する。
また、計画作成部13は、優先度情報25において優先順位が高い評価項目が優先されるようにスケジュール41を作成する。すなわち、計画作成部13は、制約条件を満たし、かつスケジュールの評価関数を用いて算出されるスケジュール41の評価値が大きくなるように(例えば、最大化するように)スケジューリングを行う。
計画作成部13は、スケジュール41を評価関数に適用することで、スケジュール41を評価するための評価値を算出する。評価関数は、評価項目の優先順位に応じた重み付けがされている。計画作成部13は、重みの初期値を用いてスケジュール41の評価値が最大化するようにスケジューリングを行ってもよいし、ユーザによって設定(調整)された重みを用いてスケジュール41の評価値が最大化するようにスケジューリングを行ってもよい。
ここで、計画作成部13が用いる、ユーザ要求を反映した重みについて説明する。計画作成部13は、ユーザ要求を反映した重みに基づいてスケジュール41を作成する。例えば、ユーザ要求によって、工程の安全性または確実性の重みが大きく設定されている場合、計画作成部13は、遅延を一部許容してでも工程の安全性または確実性を確保する余裕のあるスケジュール41を作成する。ユーザ要求は複数の評価項目からなり、この評価項目間に付けられた優劣が重みである。ユーザ要求によって評価項目のそれぞれに設定される重みから構成される重みの組には、例えば、複数種類の重みの組が含まれている。例えば、評価項目数が3つである場合、複数種類の重みの組は、重みW=(0,1,0)、(10,1,3)のようになる。この場合、計画作成部13は、各組合せに対してスケジューリングを行うことで、複数種類のスケジュール41を作成する。
なお、各評価項目に対しては複数種類の重みの初期値が設定されていてもよい。すなわち、複数の評価項目に対する重みの初期値の組合せは、複数種類であってもよい。この場合も、計画作成部13は、各組合せに対してスケジューリングを行うことで、複数種類のスケジュール41を作成する。そして、計画作成部13は、複数種類のスケジュール41をユーザに提示するとともに記憶しておく。
なお、計画作成部13は、作成済みのスケジュール41に対する不服点、改善要求点などのユーザ要求を受付けた場合は、このユーザ要求に応じたスケジュール41を作成する。
計画作成部13は、これ以上評価値を大きくできないと判断した場合、またはスケジューリングに要する計算時間の上限に達すると、スケジューリングの終了条件(スケジュール41の作成終了条件)を満たしたと判断してスケジューリングを終了する。計画作成部13は、スケジューリングの終了条件を満たした場合、スケジューリングの際に得られた最も評価値が高いスケジュールをスケジュール41として計画提示部16に送信する。
入力部11からユーザによってスケジュール41を拒否することを示す計画承認可否情報24が入力される場合、ジョブリスト21、制約情報22、およびの優先度情報25の少なくとも1つが再設定される。すなわち、スケジューリング装置1Aでは、スケジュール41が再作成される際には、作成が開始される前に、ジョブリスト21、制約情報22、および優先度情報25の少なくとも1つがユーザによって毎回再設定される。
計画作成部13は、入力部11からユーザによってスケジュール41を拒否することを示す計画承認可否情報24を受信すると、最新のジョブリスト21、最新の制約情報22、および最新の優先度情報25に基づいて、新たなスケジュール41を再作成する。
すなわち、ジョブリスト21が再設定されている場合、計画作成部13は、再設定されたジョブリスト21に基づいてスケジュール41を再作成する。また、制約情報22が再設定されている場合、計画作成部13は、再設定された制約情報22に基づいてスケジュール41を再作成する。また、遅延時使用可能リソース23が再設定されている場合、計画作成部13は、再設定された遅延時使用可能リソース23に基づいてスケジュール41を再作成する。この場合も、計画作成部13は、新たなスケジュール41を再作成すると、再作成したスケジュール41を計画提示部16に送信する。
また、計画作成部13は、計画提示部16から承認済みスケジュール26を受信すると、この承認済みスケジュール26を記憶しておく。承認済みスケジュール26は、計画作成部13が作成したスケジュール41のうちユーザによって承認されたスケジュールである。
なお、計画作成部13は、計画提示部16にスケジュール41を送信した際に、スケジュール41を記憶しておいてもよい。この場合、計画作成部13は、計画提示部16から、承認情報を受信すると、記憶しておいたスケジュール41を承認済みスケジュール26として記憶する。
計画作成部13は、工程に閾値よりも長い遅延時間が発生した際に、計画補正部17Aから承認済みスケジュール26の取得要求を受信する。計画作成部13は、計画補正部17Aから承認済みスケジュール26の取得要求を受信すると、最新の承認済みスケジュール26を計画補正部17Aに送信する。
計画提示部16は、計画作成部13から受信したスケジュール41を計画時スケジュールとして表示部2に表示させる。計画提示部16は、計画作成部13から複数のスケジュール41を受信した場合には、複数のスケジュール41を計画時スケジュールとして表示部2に表示させる。
また、計画提示部16は、スケジュール41に対して入力部11から承認情報を受信すると、ユーザによって承認された表示中のスケジュール41を、承認済みスケジュール26として、外部装置および計画作成部13に送信する。これにより、計画作成部13および外部装置は、承認済みスケジュール26を受信する。承認済みスケジュール26を受信する外部装置は、工程を管理する管理装置、加工機を制御する制御装置などである。
なお、計画提示部16は、複数のスケジュール41を同時に表示部2に表示させてもよい。この場合、表示中のスケジュール41のうちユーザによって承認されたスケジュール41を、承認済みスケジュール26として、外部装置および計画作成部13に送信する。
また、計画提示部16は、計画補正部17Aから受信した補正案を表示部2に表示させる。計画提示部16は、計画補正部17Aから複数の補正案を受信した場合には、複数の補正案を表示部2に表示させる。
また、計画提示部16は、補正案に対して入力部11から承認情報を受信すると、ユーザによって承認された表示中の補正案を外部装置および計画作成部13に送信する。これにより、計画作成部13および外部装置は、承認済みの補正案を受信する。計画作成部13は、承認済みの補正案を最新のスケジュール41として記憶しておく。承認済みの補正案を受信する外部装置は、工程を管理する管理装置、加工機を制御する制御装置などである。
なお、計画提示部16は、複数の補正案を同時に表示部2に表示させてもよい。この場合、表示中の補正案のうちユーザによって承認された補正案を外部装置および計画作成部13に送信する。
また、計画提示部16は、承認済みスケジュール26と補正案とを同時に表示部2に表示させてもよい。また、計画提示部16は、承認済みスケジュール26と補正案との差分を表示部2に表示させてもよい。また、計画提示部16は、承認済みスケジュール26および補正案の少なくとも1つと、承認済みスケジュール26と補正案との差分とを同時に表示部2に表示させてもよい。
承認済みスケジュール26または承認済みの補正案を受信した外部装置は、承認済みスケジュール26または承認済みの補正案に基づいて、種々の処理を実行する。例えば、加工機を制御する制御装置は、承認済みスケジュール26または承認済みの補正案に基づいて加工機を制御し、工程を管理する管理装置は、承認済みスケジュール26または承認済みの補正案に基づいて工程を管理する。管理装置は、各工程の進捗ステータスに基づいて、各工程の進捗ステータスを示す情報(工程進捗情報31)を作成し、スケジューリング装置1Aに送信する。
図9は、実施の形態1にかかるスケジューリング装置が作成する承認済みスケジュールの例を示す図である。承認済みスケジュール26では、ジョブIDと、加工機IDと、開始予定時刻と、終了予定時刻と、作業者IDとが対応付けされている。開始予定時刻は、ジョブIDに対応するジョブが開始される予定時刻であり、終了予定時刻は、ジョブIDに対応するジョブが終了する予定時刻である。なお、スケジュール41も承認済みスケジュール26と同様の構成を有している。
リアルタイム実績取得部14Aは、工程における進捗情報(工程進捗情報)をリアルタイムで取得する。ここで、リアルタイム実績取得部14Aの構成例について説明する。図10は、実施の形態1にかかるスケジューリング装置が備えるリアルタイム実績取得部の構成を示す図である。
リアルタイム実績取得部14Aは、工程進捗情報取得部(進捗情報収集部)140を有している。工程進捗情報取得部140は、外部装置から工程進捗情報31およびセンサ情報32を取得する。工程進捗情報31は、各工程の進捗ステータスの情報である。すなわち、工程進捗情報31は、運用中スケジュールの実行状況(例えば、遅延している工程の実行状況など)の情報である。例えば、工程進捗情報31には、各工程が開始前、仕掛中、または完了の何れであるかを示す情報と、加工工程が遅延しているか否かの情報(進捗ステータス)と、遅延している場合の遅延時間の情報とが含まれている。
工程進捗情報31には、各加工機の加工精度、各加工機の処理状態、ワークの搬送状態などが含まれていてもよい。各加工機の処理状態は、例えば、加工機における仕掛りの有無、各加工機が現在処理中のワークのワーク名、加工機による想定している加工完了の時間である。ワークの搬送状態は、例えば、加工機からロボットによって搬送されるワークの到着予定時刻である。
センサ情報32は、工程において検出された情報である。具体的には、センサ情報32は、工程間ワークなどを搬送するロボットの位置情報、要加工品のトラッキング情報などである。工程進捗情報取得部140は、既定の周期で工程進捗情報31およびセンサ情報32を遅延見積部15Aに送信する。
図11は、実施の形態1にかかるスケジューリング装置が用いる工程進捗情報の例を示す図である。工程進捗情報31では、ジョブIDと、加工機IDと、開始予定時刻と、実開始時刻と、終了予定時刻と、実終了時刻と、進捗ステータスとが対応付けされている。
開始予定時刻は、承認済みスケジュール26に設定されていたジョブの開始予定の時刻であり、終了予定時刻は、承認済みスケジュール26に設定されていたジョブの終了予定の時刻である。実開始時刻は、ジョブが実際に開始された時刻であり、実終了時刻は、ジョブが実際に終了した時刻である。
進捗ステータスは、工程の進み具合を示す情報である。進捗ステータスには、「遅延」、「定刻」、「未着手」などの情報が登録されている。「遅延」は工程が予定時刻よりも遅延していることを示す。「定刻」は、工程が予定時刻通りに進んでいることを示し、「未着手」は、工程が未着手であることを示す。
図12は、実施の形態1にかかるスケジューリング装置が用いるセンサ情報を説明するための図である。センサ情報32を検出するセンサ6は、例えば、倉庫70と、生産設備が配置される生産ラインL1~L3とに対してワークなどを搬送するロボット5に配置されている。
センサ6は、センサ情報32を検出すると、センサ情報32を工程進捗情報取得部140に送信する。センサ情報32には、例えば、ロボット5の位置情報(座標など)、ロボット5のステータスなどが含まれている。なお、ここではセンサ情報32が、ロボット5から検出された情報である場合について説明したが、センサ情報32は、ロボット5以外から検出された情報であってもよい。
工程進捗情報取得部140は、工程進捗情報31にタイムスタンプを付与する。工程進捗情報取得部140は、センサ情報32およびタイムスタンプを付与した工程進捗情報31を遅延見積部15Aに送信する。
また、遅延見積部15Aは、リアルタイム実績取得部14Aからセンサ情報32およびタイムスタンプが付与された工程進捗情報31を受信する。また、遅延見積部15Aは、計画作成部13から承認済みスケジュール26を受信する。
遅延見積部15Aは、承認済みスケジュール26と工程進捗情報31とを比較することで、工程の遅延状態(遅延時間など)を算出する。遅延見積部15Aは、遅延状態の算出結果に基づいて、工程で遅延が発生しているか否かを判定する。遅延見積部15Aは、工程で遅延が発生していると判定した場合、工程進捗情報31に基づいて遅延状態を示す遅延情報を作成し、計画補正部17Aに送信する。また、遅延見積部15Aは、遅延情報を、計画提示部16を介して表示部2に表示させる。
なお、工程進捗情報31に、各加工機の加工精度、各加工機の処理状態、ワークの搬送状態などが含まれている場合には、遅延見積部15Aは、遅延状態を高精度に算出することができる。
計画補正部17Aは、補正案作成部170を有している。補正案作成部170は、承認済みスケジュール26の運用時に遅延情報を受信すると、工程の遅延状態に基づいて運用中スケジュールの補正案を作成する。具体的には、計画補正部17Aは、計画作成部13が作成したスケジュール計画(承認済みスケジュール26)を、工程進捗情報取得部140が収集した工程進捗情報31とユーザ要求受付部12が受け付けたユーザ要求とに基づいて補正した補正スケジュール計画(運用中スケジュールの補正案)を作成する。例えば、補正案作成部170は、ジョブリスト21と、運用中スケジュールと、制約情報22と、遅延時使用可能リソース23と、遅延情報と、優先度情報25とに基づいて、運用中スケジュールの補正案を作成する。
ここで、補正案作成部170が用いる、ユーザ要求を反映した重みについて説明する。補正案作成部170は、遊休のリソース等を使用して遅延を補正する補正案を作成する場合に限らず、計画作成部13と同様に、遅延を一部許容してでも工程の安全性または確実性を確保する余裕のある補正案を作成するために、ユーザ要求を反映した重みに基づいて補正案を作成する。計画作成部13の場合と同様に、ユーザ要求は複数の評価項目からなり、この評価項目間に付けられた優劣が重みである。評価項目のそれぞれに設定される重みから構成される重みの組は、複数種類の重みの組であってもよい。例えば、評価項目数が3つである場合、複数種類の重みの組は、重みW=(0,1,0)、(10,1,3)のようになる。
運用中スケジュールの補正案が作成される際には、補正が開始される前に、ジョブリスト21、制約情報22、遅延時使用可能リソース23、および優先度情報25の少なくとも1つがユーザによって毎回再設定される。
補正案作成部170は、最新のジョブリスト21と、運用中スケジュールと、最新の制約情報22と、最新の遅延時使用可能リソース23と、遅延情報と、最新の優先度情報25とに基づいて、運用中スケジュールの補正案を作成する。
すなわち、ジョブリスト21が再設定されている場合、計画補正部17Aは、再設定されたジョブリスト21に基づいて運用中スケジュール(承認済みスケジュール26)の補正案を再作成する。また、制約情報22が再設定されている場合、計画補正部17Aは、再設定された制約情報22に基づいて運用中スケジュールの補正案を再作成する。また、遅延時使用可能リソース23が再設定されている場合、計画補正部17Aは、再設定された遅延時使用可能リソース23に基づいて運用中スケジュールの補正案を再作成する。
補正案作成部170が作成する補正案は、補正対象となっている運用中スケジュールである。補正案作成部170は、計画作成部13と同様に、優先度情報25において優先順位が高い評価項目が優先されるように補正案を作成する。すなわち、補正案作成部170は、計画作成部13と同様に、制約条件を満たし、かつスケジュールの評価関数を用いて算出される補正案の評価値が大きくなるように(例えば、最大化するように)スケジューリングを行うことで補正案を作成する。補正案作成部170が用いる評価関数は、計画作成部13が用いる評価関数と同じ評価関数である。
各評価項目に対して複数種類の重みの初期値が設定されている場合、補正案作成部170は、各組合せに対して複数種類の補正案を作成する。そして、補正案作成部170は、複数種類の補正案をユーザに提示するとともに記憶しておく。
なお、補正案作成部170は、作成済みの補正案に対する不服点、改善要求点などのユーザ要求(フィードバック)を受付けた場合は、このユーザ要求に応じた補正案を作成する。
スケジューリング装置1Aでは、評価項目毎の重みの組を複数種類準備しておいてもよい。これらの重みは、ユーザが指定した重みが修正された重みでもよく、ランダムに初期値が与えられた重みでもよい。補正案作成部170は、これらの重みに従って補正案を複数作成し、ユーザからのフィードバック(ユーザ要求)を得て、これらの重みに修正を加える。ここでのユーザ要求には、例えば、特定の評価項目を重視してほしい等の要求が含まれている。スケジューリング装置1Aでは、これらのユーザ要求と、重みに修正を加える処理とを繰り返す。
例えば、スケジューリング装置1Aでは、重みの組として、W1=(1,0,0)、W2=(0,1,0)、W3=(0,0,1)などを準備しておく。例えば、スケジューリング装置1Aは、各重みW1~W3に対応する補正案を作成してユーザに提示する。この場合において、スケジューリング装置1Aは、ユーザからもう少し特定の評価項目を重視してほしい等の要求を得ると、この要求に応じて重みを更新する。例えば、重みを更新した結果、W1=(1.5,1,0)、W2=(1,1.5,0)、W3=(1,1,0.5)であったとする。スケジューリング装置1Aは、この更新後の重みで再度補正案を求める。その結果、ユーザがW2の補正案を選択したとする。
重みを更新したからといって、ユーザ要求がそのまま補正案に反映できるとは限らない。そこで、スケジューリング装置1Aは、ユーザ要求に合致する重みの調整を複数のシード値(初期値)から更新していき、更新した重みの組のそれぞれに対して補正案を生成し、ユーザに提示する。これにより、スケジューリング装置1Aは、ユーザ要求に合致する重みを、少ない繰り返し(試行回数)で求め、ユーザ要求に合致する補正案を少ない試行回数で求める。
補正案作成部170は、計画作成部13と同様に、これ以上評価値を大きくできないと判断した場合、またはスケジューリングに要する計算時間の上限に達すると、スケジューリングの終了条件を満たしたと判断してスケジューリングを終了する。補正案作成部170は、スケジューリングの終了条件を満たした場合、スケジューリングの際に得られた最も評価値が高い補正案を計画提示部16に送信する。補正案作成部170は、作成した補正案を計画提示部16に送信する。
補正案作成部170は、入力部11からユーザによってスケジュール41の承認が拒否されたことを示す計画承認可否情報24を受信すると、最新のジョブリスト21と、運用中スケジュールと、最新の制約情報22と、最新の遅延時使用可能リソース23と、遅延情報と、最新の優先度情報25とに基づいて、運用中スケジュールの補正案を再作成する。この場合も、補正案作成部170は、作成した補正案を計画提示部16に送信する。計画提示部16は、スケジュール41および補正案を表示部2に表示させることで、スケジュール41および補正案をユーザに提示する。
つぎに、スケジューリング装置1Aが実行する各処理の処理手順について説明する。まず、スケジューリング装置1Aがスケジュール41を作成する際の処理手順について説明する。
図13は、実施の形態1にかかるスケジューリング装置がスケジュールを作成する際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Aは、ジョブリスト21、制約情報22、および優先度情報25を取得する(ステップS10)。具体的には、スケジューリング装置1Aの入力部11は、スケジューリング装置1Aの外部装置からジョブリスト21および制約情報22を受付け、ユーザ要求受付部12がユーザから優先度情報25を受付ける。入力部11は、ジョブリスト21および制約情報22を計画作成部13に送信し、ユーザ要求受付部12は、優先度情報25を計画作成部13に送信する。
計画作成部13は、ジョブリスト21、制約情報22、および優先度情報25に基づいて、スケジュール41を作成する(ステップS20)。すなわち、計画作成部13は、制約情報22に設定されている制約条件下で、ジョブリスト21に基づいて、優先度情報25を満たすようにスケジュール41を作成する。計画作成部13は、例えば、重みの初期値が設定されたスケジュールの評価関数を用いてスケジュール41を作成する。
計画提示部16は、スケジュール41を表示部2に表示させることで、スケジュール41をユーザに提示する(ステップS30)。計画提示部16は、提示したスケジュール41がユーザによって承認されたか否かを判定する(ステップS40)。
スケジュール41がユーザによって承認されなかった場合(ステップS40、No)、ユーザによってジョブリスト21、制約情報22、および優先度情報25の少なくとも1つが再設定される。ユーザは、ジョブリスト21、制約情報22、および優先度情報25の項目のうち、所望する任意の項目を再設定する。ユーザは、例えば制約情報22での制約が多い場合、制約情報22を再設定してもよいし、ジョブリスト21に不急のジョブが含まれている場合、ジョブリスト21を再設定してもよい。
所望する任意の項目が再設定される場合、スケジューリング装置1Aは、ステップS10~S40の処理を繰り返すことで、スケジュール41を再作成する。スケジューリング装置1Aは、スケジュール41がユーザによって承認されるまで、ステップS10~S40の処理を繰り返す。すなわち、スケジューリング装置1Aは、スケジュール41がユーザによって承認されるまで、スケジュール41を再作成する処理を繰り返す。
スケジュール41がユーザによって承認された場合(ステップS40、Yes)、計画提示部16は、ユーザによって承認されたスケジュール41を、承認済みスケジュール26として外部装置および計画作成部13に出力する(ステップS50)。
図14は、実施の形態1にかかるスケジューリング装置が、承認済みスケジュールが運用される際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Aが作成した承認済みスケジュール26が運用される際には、リアルタイム実績取得部14Aが既定周期で工程進捗情報31を取得する(ステップS110)。
リアルタイム実績取得部14Aの工程進捗情報取得部140は、工程進捗情報31にタイムスタンプを付与し、センサ情報32およびタイムスタンプを付与した工程進捗情報31を遅延見積部15Aに送信する。
遅延見積部15Aは、リアルタイム実績取得部14Aからセンサ情報32およびタイムスタンプが付与された工程進捗情報31を受信する。また、遅延見積部15Aは、計画作成部13から運用中スケジュールを受信する。遅延見積部15Aは、運用中スケジュールと工程進捗情報31とを比較することで、工程の遅延状態を算出する(ステップS120)。
遅延見積部15Aは、遅延状態の算出結果に基づいて、工程で遅延が発生しているか否かを判定する(ステップS130)。遅延見積部15Aが、工程で遅延が発生していないと判定した場合(ステップS130、No)、承認済みスケジュール26は補正されない。
一方、遅延見積部15Aは、工程で遅延が発生していると判定した場合(ステップS130、Yes)、工程進捗情報31に基づいて遅延状態を示す遅延情報を作成し、計画補正部17Aの補正案作成部170に送信する。また、遅延見積部15Aは、遅延情報を計画提示部16に送信し、計画提示部16は、遅延情報を表示部2に表示させる。
遅延が発生している場合、ユーザによって優先度情報25が再設定される。この優先度情報25では、運用中スケジュールの補正案を作成する際に重視される評価項目が再設定されている。再設定された優先度情報25は、ユーザ要求受付部12から入力されて補正案作成部170に送信される。これにより、補正案作成部170は、優先度情報25を受付ける(ステップS140)。
補正案作成部170は、遅延見積部15Aから遅延情報を受信すると、計画作成部13からジョブリスト21および運用中スケジュールを取得する。補正案作成部170は、優先度情報25を用いて、運用中スケジュールの補正案を作成する(ステップS150)。具体的には、補正案作成部170は、ジョブリスト21と、運用中スケジュールと、制約情報22と、遅延時使用可能リソース23と、遅延情報と、優先度情報25とを用いて、運用中スケジュールの補正案を作成する。
補正案作成部170は、作成した補正案を計画提示部16に送信する。これにより、計画提示部16は、補正案を表示部2に表示させることで、補正案をユーザに提示する(ステップS160)。計画提示部16は、提示した補正案がユーザによって承認されたか否かを判定する(ステップS170)。
補正案がユーザによって承認されなかった場合(ステップS170、No)、ユーザによって優先度情報25が再設定される。この場合、スケジューリング装置1Aは、ステップS140~S170の処理を繰り返す。スケジューリング装置1Aは、補正案がユーザによって承認されるまで、ステップS140~S170の処理を繰り返す。
なお、補正案がユーザによって承認されなかった場合(ステップS170、No)、ユーザによってジョブリスト21、制約情報22、遅延時使用可能リソース23、および優先度情報25の少なくとも1つが再設定されてもよい。この場合も、スケジューリング装置1Aは、ステップS140~S170の処理を繰り返すが、補正案作成部170は、ステップS140において、ジョブリスト21、制約情報22、遅延時使用可能リソース23、および優先度情報25の少なくとも1つを受付ける。また、補正案作成部170は、ステップS150において、ジョブリスト21、制約情報22、遅延時使用可能リソース23、および優先度情報25の少なくとも1つを用いて、運用中スケジュールの補正案を作成する。
補正案がユーザによって承認された場合(ステップS170、Yes)、計画提示部16は、ユーザによって承認された補正案を、承認済みスケジュール26として外部装置および計画作成部13に出力する(ステップS180)。
図15は、実施の形態1にかかるスケジューリング装置がリアルタイム実績を取得する際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Aの工程進捗情報取得部140は、リアルタイム実績である工程進捗情報31およびセンサ情報32を取得するための規定周期のタイミングであるか否かを判定する(ステップS210)。
規定周期のタイミングでない場合(ステップS210、No)、工程進捗情報取得部140は、規定周期のタイミングであるか否かを判定する処理を継続する。
規定周期のタイミングである場合(ステップS210、Yes)、工程進捗情報取得部140は、工程進捗情報31およびセンサ情報32を取得する(ステップS220)。工程進捗情報取得部140は、取得した工程進捗情報31およびセンサ情報32を遅延見積部15Aに送信する(ステップS230)。
図16は、実施の形態1にかかるスケジューリング装置が工程の遅延状態を算出する際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Aの遅延見積部15Aは、リアルタイム実績取得部14Aから、タイムスタンプが付与された工程進捗情報31およびセンサ情報32を取得する(ステップS310)。また、遅延見積部15Aは、計画作成部13から、最新の運用中スケジュールを取得する(ステップS320)。
遅延見積部15Aは、取得した工程進捗情報31と最新の運用中スケジュールとの差分と、センサ情報32とから、工程の遅延状態を算出する(ステップS330)。遅延見積部15Aは、工程の遅延状態に基づいて、工程で遅延が発生していると判定した場合、工程進捗情報31に基づいて遅延状態を示す遅延情報を作成し、遅延情報を計画補正部17Aに送信する(ステップS340)。
ここで、遅延情報の内容について説明する。図17は、実施の形態1にかかるスケジューリング装置が作成する遅延情報の内容を説明するための図である。図17では、遅延情報の内容を概念的に図示している。
遅延情報は、計画時スケジュール51と実績スケジュール52との差分に対応している。計画時スケジュール51は、運用前の承認済みスケジュール26である。実績スケジュール52は、承認済みスケジュール26を運用した際に、承認済みスケジュール26に対して、実際の工程の進み具合(遅延時間など)が反映されたスケジュールである。すなわち、実績スケジュール52では、承認済みスケジュール26に対して、実際の工程の進み具合(遅延時間など)が反映されている。遅延情報は、計画時スケジュール51に対する実績スケジュール52の工程の遅れに対応している。
図17の横軸は時間である。図17では、上段に計画時スケジュール51を示し、下段に実績スケジュール52を示している。計画時スケジュール51および実績スケジュール52には、加工機ID毎のジョブのスケジュールの情報が含まれている。
図17に示すように、例えば、加工機IDが「PM001」の加工機は、ジョブIDが「J001」のジョブを実行する。計画時スケジュール51における、「J001」のジョブの完了時間(完了予定時間)と、実績スケジュール52における、「J001」のジョブの完了時間(実際の完了時間)との間には遅延時間t1の差がある。
また、加工機IDが「PM002」の加工機は、ジョブIDが「J005」のジョブを実行する。計画時スケジュール51における、「J005」のジョブの完了時間と、実績スケジュール52における、「J005」のジョブの完了時間との間には遅延時間t2の差がある。
このような遅延時間t1,t2を示す情報が遅延情報である。遅延見積部15Aは、遅延が発生しているジョブのジョブIDと、このジョブを実行している加工機の加工機IDと、このジョブの遅延時間とを対応付けした遅延情報を作成する。
遅延見積部15Aが作成する遅延情報には、補正案の作成要否を示す情報が含まれていてもよい。この場合、遅延見積部15Aは、作成した遅延情報における遅延時間と、遅延時間の閾値とを比較することで、補正案の作成要否を判定する。例えば、遅延時間t1,t2のように複数の遅延時間がある場合、遅延見積部15Aは、最も長い遅延時間に基づいて補正案の作成要否を判定する。
なお、遅延見積部15Aは、加工機ID毎に補正案の作成要否を判定してもよい。この場合、遅延見積部15Aは、加工機ID毎の遅延時間の閾値に基づいて、加工機ID毎に補正案の作成要否を判定する。遅延見積部15Aは、加工機ID毎に補正案の作成要否を判定する場合、少なくとも1つの加工機IDの遅延時間が遅延時間の閾値よりも長くなると補正案を作成すると判定する。
また、遅延見積部15Aは、ジョブID毎に補正案の作成要否を判定してもよい。この場合、遅延見積部15Aは、ジョブID毎の遅延時間の閾値に基づいて、ジョブID毎に補正案の作成要否を判定する。遅延見積部15Aは、ジョブID毎に補正案の作成要否を判定する場合、少なくとも1つのジョブIDの遅延時間が遅延時間の閾値よりも長くなると補正案を作成すると判定する。
なお、補正案を作成するか否かは、ユーザが判定してもよい。この場合、スケジューリング装置1Aは、補正案を作成するためのボタン(補正案作成ボタン)を表示部2に表示させる。表示部2に表示されている補正案作成ボタンがユーザによって押下されると、遅延見積部15Aは、入力部11および計画作成部13を介して、補正案作成ボタンが押下されたことを示す情報(補正案を作成すると判定した情報)を受信する。
遅延見積部15Aは、補正案作成ボタンが押下された時点での遅延時間の統計を取ることで、スケジューリング装置1Aのユーザ毎に補正案の作成要否の閾値(遅延時間の閾値)を設定してもよい。遅延見積部15Aは、例えば、遅延時間の平均値を補正案の作成要否の閾値に設定する。また、遅延見積部15Aは、機械学習によって補正案の作成要否の閾値を設定してもよい。
図18は、実施の形態1にかかるスケジューリング装置が作成する遅延情報の例を説明するための図である。遅延見積部15Aが作成する遅延情報30には、例えば、加工機別の遅延時間を示す加工機別遅延時間33と、運用中スケジュールの全体における遅延時間である総遅延時間34と、補正案の作成要否を示す情報である補正情報35とが含まれている。
加工機別遅延時間33では、加工機IDと、この加工機IDに対応する加工機での遅延時間とが対応付けされている。総遅延時間34は、運用中スケジュールに含まれる遅延時間の合計時間である。なお、遅延見積部15Aは、補正案を作成すると判定した場合にのみ遅延情報30を作成して補正案作成部170に送信してもよい。
図19は、実施の形態1にかかるスケジューリング装置が運用中スケジュールを補正する際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Aの補正案作成部170は、計画作成部13から最新の運用中スケジュールを取得する(ステップS410)。
また、補正案作成部170は、遅延見積部15Aから遅延情報を取得する(ステップS420)。また、補正案作成部170は、ユーザ要求受付部12が受付けた遅延許容率を取得する(ステップS430)。すなわち、補正案作成部170は、ユーザ要求受付部12が受付けた情報に遅延許容率があれば、ユーザ要求受付部12から遅延許容率を取得する。なお、補正案作成部170は、ユーザ要求受付部12が遅延許容率を受付けていない場合には、予め記憶しておいた遅延許容率の初期値を読み出す。
遅延許容率は、ユーザによって設定される遅延の許容率である。ここで、遅延許容率の例について説明する。図20は、実施の形態1にかかるスケジューリング装置に設定される遅延許容率を説明するための図である。図20では、スケジューリング装置1Aが表示部2に表示させる遅延許容率入力画面4の例を示している。
遅延許容率は、遅延している工程(ジョブ)のうち遅延のままでよい工程(補正しなくてもよい工程)の割合である。すなわち、遅延許容率は、(遅延許容率)=(遅延時に補正しない工程の工程数)/(遅延している工程の工程数)によって算出される。
なお、遅延許容率は、遅延している工程の合計の工程時間のうち遅延に対する補正をしない工程の合計時間の割合であってもよい。この場合、遅延許容率は、(遅延許容率)=(遅延時に補正しない工程の合計工程時間)/(遅延している工程の合計工程時間)によって算出される。
例えば、遅延している全ての工程に対して遅延を許容する場合(全遅延許容の場合)、遅延許容率は1(100%)である。また、遅延している全ての工程に対して遅延を許容しない場合(遅延許容不可の場合)、遅延許容率は0(0%)である。図20では、遅延している全ての工程のうちの30%の工程に対して遅延が許容される一部遅延許容の場合を示している。
遅延許容率入力画面4では、例えば、遅延許容率のスライダが、a(0≦a≦1)までの間でユーザによってスライドされることで、ユーザが所望する遅延許容率がユーザ要求受付部12に入力される。この場合、遅延している全工程に対する(100×a)%の部分の工程は、遅延が許容されて補正されない。
遅延が許容されない部分の工程については、計画補正部17Aが、遅延許容率を満たすように補正案を作成する。このとき、補正案作成部170は、遅延時使用可能リソース23に基づいて、遅延時使用可能リソース23に登録されている作業者リソースまたは設備リソースを用いて補正案を作成する。
なお、スケジューリング装置1Aには、ユーザによって余剰リソースの使用許可率が設定されてもよい。この場合、スケジューリング装置1Aには、ユーザによって設備リソースの使用許可率および作業者リソースの使用許可率が設定される。
設備リソースの使用許可率は、全体の設備リソースのうち使用してもよい設備リソースの割合である。すなわち、設備リソースの使用許可率は、(設備リソースの使用許可率)=(使用してもよい設備リソースの台数)/(全体の設備リソースの台数)によって算出される。
また、作業者リソースの使用許可率は、全体の作業者リソースのうち使用してもよい作業者リソースの割合である。すなわち、作業者リソースの使用許可率は、(作業者リソースの使用許可率)=(使用してもよい作業者リソースの人数)/(全体の作業者リソースの人数)によって算出される。
単一工程での遅延発生時には、計画補正部17Aは、ユーザ要求受付部12から遅延許容率を受信し、遅延許容率と発生している遅延時間とを比較する。計画補正部17Aは、発生している遅延時間が許容されない遅延である場合、遅延時使用可能リソース23に基づいて、単一工程内での遅延の収束を試みる。すなわち、計画補正部17Aは、発生している遅延時間が、設定されている遅延許容率に対応する遅延時間よりも長い場合、遅延時使用可能リソース23に基づいて、単一工程内で遅延を収束できる補正案を作成する。
補正案作成部170は、遅延許容率を用いて遅延に対する補正案を作成することで、遅延を許容してでも、現場での段取り替えまたは操作ミス等の防止を確保した補正案を作成することができる。
補正案作成部170は、遅延許容率を用いて遅延に対する補正案を作成する(ステップS440)。具体的には、補正案作成部170は、ジョブリスト21と、運用中スケジュールと、制約情報22と、遅延時使用可能リソース23と、遅延情報と、優先度情報25と、遅延許容率とを用いて、運用中スケジュールの遅延に対する補正案を作成する。
なお、補正案作成部170は、遅延許容率を取得していない場合には、遅延許容率を用いることなく遅延に対する補正案を作成する。補正案作成部170は、作成した補正案を計画提示部16に送信する(ステップS450)。これにより、計画提示部16が、補正案を表示部2に表示させる。
ここで、計画補正部17Aが補正案を作成する際に用いる承認済みスケジュール26の評価関数について説明する。計画補正部17Aは、計画作成部13と同様に、制約条件を満たし、かつ補正案の評価関数を用いて算出される補正案の評価値が最大化するようにスケジューリングを行う。スケジュールの評価関数は、スケジュール41または補正案を評価するための関数である。評価関数は、優先度情報25に応じた重み付けがされている。計画補正部17Aは、優先度情報25に応じた重みを用いて補正案の評価値が大きくなるようにスケジューリングを行う。計画補正部17Aは、例えば、優先度情報25に応じた重みを用いて補正案の評価値が最大化するようにスケジューリングを行う。
計画補正部17Aは、評価項目および優先順位を用いて評価値を算出するための評価関数を記憶している。計画補正部17Aは、補正案を評価関数に適用することで、補正案を評価するための評価値を算出する。
評価値は、スケジューリングに対するユーザ要求(優先度情報25)を反映した数値であり、ユーザから指定を受けた評価項目および優先順位を用いて算出される。評価値を算出する評価関数は、例えば、以下の式(1)によって表される。
評価値=w1×(評価項目P1)+w2×(評価項目P2)+w3×(評価項目P3)・・・(1)
評価項目P1~P3は、計画補正部17Aが適用された場合に評価項目P1~P3のそれぞれの目標に近いほど高い評価値となる関数(項目別関数)によって算出される。例えば、評価項目P1は納期遅れ最小化を評価するための項目別関数によって算出される項目評価値であり、評価項目P2は生産コスト最小化を評価するための項目別関数によって算出される項目評価値であり、評価項目P3は対応負荷最小化を評価するための項目別関数によって算出される項目評価値である。
納期遅れ最小化を評価するための項目別関数は、納期遅れが短いほど高い評価値となる関数である。生産コスト最小化を評価するための項目別関数は、生産コストが少ないほど高い評価値となる関数である。対応負荷最小化を評価するための項目別関数は、対応負荷が小さいほど高い評価値となる関数である。
ここでは、納期遅れ最小化を評価するための項目評価値を項目評価値v1とし、生産コスト最小化を評価するための項目評価値を項目評価値v2とし、対応負荷最小化を評価するための項目評価値を項目評価値v3とする。
項目評価値v1は、納期遅れが小さいほど高い値となる第1の関数を用いて算出される。また、項目評価値v2は、生産コストが小さいほど高い値となる第2の関数を用いて算出される。また、項目評価値v3は、対応負荷が小さいほど高い値となる第3の関数を用いて算出される。
すなわち、第1の関数は、納期遅れの大小に応じて項目評価値v1が変化する関数である。したがって、各ジョブの納期遅れの総和が小さいほど項目評価値v1が小さくなり、各ジョブの納期遅れの総和が大きいほど項目評価値v1が大きくなる。また、第2の関数は、生産コストの大小に応じて項目評価値v2が変化する関数であり、第3の関数は、対応負荷の大小に応じて項目評価値v3が変化する関数である。
したがって、計画補正部17Aは、評価値=w1×(第1の関数の項目評価値v1)+w2×(第2の関数の項目評価値v2)+w3×(第3の関数の項目評価値v3)の式を用いて評価値を算出できる。計画補正部17Aは、この評価関数に補正案を入力することで、納期遅れ、生産コスト、および対応負荷に応じた評価値を算出できる。
w1~w3は、評価項目P1~P3に対する重み付けである。w1~w3は、評価項目P1~P3の優先順位に応じた値(優先度)である。w1~w3は、優先順位が上位であるほど、高い値である。w1~w3の初期設定値は、それぞれ値が異なっている。なお、重み付けは、ユーザからの要求に応じて可変である。ユーザは、優先順位のみ設定して重みは初期値を用いてもよい。また、ユーザは、優先順位の代わりに重み付けの値を優先度情報25に設定してもよい。この場合、ユーザは、優先順位を設定しなくてもよい。また、評価関数で用いられる評価項目は2つであってもよいし4つ以上であってもよい。評価関数では、評価項目と同数の重み付けの値が用いられる。
評価関数では、w1~w3が大きな値であるほど(優先順位が上位であるほど)、評価関数の評価値を大きな値にすることに寄与する。すなわち、評価項目は、w1~w3が大きな値であるほど優先的に採用される可能性が高くなる。
計画補正部17Aは、算出した評価値に基づいて、計画補正部17Aが作成した補正案を評価する。計画補正部17Aは、評価値が特定値以上となる補正案(スケジュール)が完成するまで、補正案の作成を繰り返す。
計画補正部17Aは、式(1)で示した評価関数に評価項目P1~P3を適用することで、ユーザ要求に応じた基準で、作成した補正案を評価できる。したがって、計画補正部17Aは、ユーザ要求に応じた補正案を作成することができる。
計画補正部17Aは、例えば、対応負荷を重視し、納期遅れを軽視するような重み付けが設定されると、納期の遅延を許容してでも、現場でスムーズに適用できる補正案を算出する。
ここで、補正案作成部170が遅延許容率を用いて補正案を作成する処理の一例について説明する。スケジューリング装置1Aは、優先度情報25に基づいて重み付けが行われている評価関数を用いて、評価値が大きくなるように(例えば、最大化するように)補正案を作成する。この補正案がユーザによって承認されると、補正案が承認済みスケジュール26となり、承認済みスケジュール26を用いて運用が開始される。承認済みスケジュール26を用いて運用が行われている間に納期遅れのジョブが発生した場合、補正案作成部170は、この納期遅れをどの程度許容するかを遅延許容率に基づいて決定する。
例えば、納期遅れよりも他の評価項目が満たされるようなスケジューリングが行われる場合がある。このスケジューリングによって得られた承認済みスケジュール26が運用された結果、納期遅れのジョブが発生する場合がある。この場合において、補正案作成部170は、遅延許容率に応じて、余剰リソース(遅延時使用可能リソース23)を用いて、発生した納期遅れを減少させる計画補正を行う。
図21は、実施の形態1にかかるスケジューリング装置がスケジュールまたは補正案を提示する際に実行する処理の処理手順を示すフローチャートである。計画作成部13は、スケジュール41を作成すると、計画提示部16にスケジュール41を送信する。
計画提示部16は、計画作成部13からスケジュール41が送信されたか否かを判定する(ステップS510)。計画作成部13からスケジュール41が送信された場合(ステップS510、Yes)、計画提示部16は、計画作成部13からスケジュール41を受信して取得する(ステップS520)。
一方、計画作成部13からスケジュール41が送信されていない場合(ステップS510、No)、計画補正部17Aから補正案が送信されたか否かを判定する(ステップS530)。計画補正部17Aから補正案が送信された場合(ステップS530、Yes)、計画提示部16は、計画補正部17Aから補正案を受信して取得する(ステップS540)。
計画補正部17Aから補正案が送信されていない場合(ステップS530、No)、計画提示部16は、ステップS510の処理に戻る。計画提示部16は、計画作成部13からスケジュール41が送信されるか、計画補正部17Aから補正案が送信されるまで、ステップS510,S530の処理を繰り返す。
計画提示部16は、計画作成部13からスケジュール41を取得するか、計画補正部17Aから補正案を受信すると、取得したスケジュール41または補正案をユーザに提示する(ステップS550)。具体的には、計画提示部16は、取得したスケジュール41または補正案を表示部2に表示させる。
計画提示部16は、入力部11を介して、ユーザから、表示中のスケジュール41または補正案に対する計画承認可否情報24を受付ける(ステップS560)。計画提示部16は、計画承認可否情報24として承認情報を受付けると、表示中のスケジュール41または補正案を承認済みスケジュール26として計画作成部13に送信する。これにより、計画作成部13は、承認済みスケジュール26を保存する(ステップS570)。
なお、計画提示部16は、補正案を表示部2に表示させる際に、当初の承認済みスケジュール26を表示部2に表示させてもよい。例えば、計画提示部16は、補正案と当初の承認済みスケジュール26とを並べて表示部2に表示させてもよい。
また、計画提示部16は、遅延状態を表示部2に表示させてもよい。また、計画提示部16は、遅延する工程が後工程に与える影響の範囲(遅延影響範囲)を表示部2に表示させてもよい。
スケジューリング装置1Aは、ユーザ要求である優先度情報25に応じて、補正案を作成するので、補正の程度を調整した補正案を作成することができる。例えば、スケジューリング装置1Aは、複数の評価項目として、納期最小化、生産コスト最小化、対応負荷最小化などがあった場合、何れの評価項目を重視するかをユーザに指定させている。
これにより、スケジューリング装置1Aは、遅延回復を目標とした納期最優先の補正案に限らず、多少の納期の遅延を許容してでも工程への負荷が少ない補正案も作成することができる。工程への負荷が少ない補正案は、例えば、運用上妥当であり、かつ実現の容易な補正案などである。これにより、スケジューリング装置1Aは、ユーザが所望する補正案を作成することができ、ユーザが所望しない補正案を作成する可能性が低くなるので、補正案を再作成する可能性が低くなり、再作成の手間を削減することができる。
また、スケジューリング装置1Aは、ユーザ要求である優先度情報25に応じて、スケジュール41を作成するので、補正案を作成する場合と同様に、ユーザが所望するスケジュール41を作成することができる。
また、スケジューリング装置1Aは、作業者のスキルレベルに基づいてスケジュール41または補正案を作成するので、作業者のスキルレベルに応じたスケジュール41または補正案を作成することができる。これにより、スケジューリング装置1Aは、作業者の負荷を抑制できる。
このように実施の形態1によれば、スケジューリング装置1Aは、優先度が高い評価項目を優先した補正案を作成するので、工程に遅延が発生した場合の運用中スケジュールに対し、生産設備に対するユーザからの要求を反映した補正案を作成できる。
また、スケジューリング装置1Aは、優先度情報25で設定されている評価項目の優先順位に応じたスケジュール41を作成するので、生産設備に対するユーザからの要求を反映したスケジュール41を作成できる。
実施の形態2.
つぎに、図22から図28を用いて実施の形態2について説明する。実施の形態2では、承認済みスケジュール26の作成時における作業者のスキルレベルと、補正案の作成時における作業者のスキルレベルとの差に基づいてマージン時間を設定し、マージン時間を用いて、遅延が発生した運用中スケジュールの補正案を作成する。
図22は、実施の形態2にかかるスケジューリング装置の構成を示す図である。図22の各構成要素のうち図1に示す実施の形態1のスケジューリング装置1Aと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
実施の形態2のスケジューリング装置1Bは、実施の形態1のスケジューリング装置1Aと比較して、計画補正部17Aの代わりに計画補正部17Bを備えている。計画補正部17Bは、計画時と補正時との作業者のスキル差(スキルレベル差)に基づいて、ジョブの開始時間を補正するためのマージン時間を算出する。計画時と補正時とで作業者間にスキル差があると、作業者間で段取りに要する時間も異なる。計画補正部17Bは、この段取りに要する時間(スキル差別の段取りの時間)の差以上の時間をマージン時間として算出する。ここでの段取りに要する時間の差は、マージン時間を算出するための段取りの時間であり、後述する作業者の全員に対して設定される標準の段取り時間とは異なる。計画補正部17Bは、算出したマージン時間と、補正案の演算に要する時間などとに基づいて、補正案を適用する補正タイミングを算出する。
計画補正部17Bは、補正案作成部170に加えて、補正タイミング演算部171と、スキル差補正部172とを有している。実施の形態2のスケジューリング装置1Bでは、入力部11が、スケジューリング装置1Bの外部装置から、ジョブリスト21と、制約情報22と、遅延時使用可能リソース23と、計画承認可否情報24とに加えて、計画時スキルレベル情報27Aと、補正時スキルレベル情報27Bとを読み出す。入力部11は、計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bを計画補正部17Bに送信する。
計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bは、遅延時使用可能リソース23に含まれる作業者リソース23Aの情報と同様に、作業日程に対するスキルレベル毎の作業者の人数が設定されている。
計画時スキルレベル情報27Aは、スケジュールの作成中(計画中)における作業者のスキルレベルの情報である。すなわち、計画時スキルレベル情報27Aは、スケジュール41の計画作成段階での作業者のスキル別の人数の情報である。
補正時スキルレベル情報27Bは、スケジュールの補正中における作業者のスキルレベルの情報である。すなわち、補正時スキルレベル情報27Bは、運用中スケジュールに対する補正案作成段階での作業者のスキル別の人数の情報である。補正時スキルレベル情報27Bは、時間の経過とともに変化する。
また、ユーザ要求受付部12は、ユーザから優先度情報25に加えて補正タイミング候補28を受付ける。補正タイミング候補28は、ユーザが所望する補正案の適用タイミング(日時)の情報である。補正タイミング候補28は、ユーザによってユーザ要求受付部12に入力される。ユーザ要求受付部12は、補正タイミング候補28を補正案作成部170に送信する。
また、スケジューリング装置1Bでは、遅延見積部15Aが、計画補正部17Bに遅延情報を送信する。補正タイミング演算部171は、補正案を適用する補正タイミングの案である適用タイミング案を算出する。補正タイミング演算部171は、生産ラインに対して実行中の承認済みスケジュール26から補正案に切り替えることで、生産ラインに与える混乱が小さくなる日時を適用タイミング案として算出する。具体的には、補正タイミング演算部171は、補正案を作成する際に要する演算時間(以下、補正演算時間という)、工程の標準の段取り替え時間(以下、段取り時間という)、補正案の確認および承認に要する時間(以下、確認承認時間という)などに基づいて、適用タイミング案を算出する。
ここでの標準の段取り時間は、作業者の全員に対して設定される時間であり、作業者間のスキル差に関係なく全ての補正案に対して割り当てられる。確認承認時間は、ユーザが補正案を確認して入力部11に計画承認可否情報24を入力するのに要する時間である。補正タイミング演算部171は、補正演算時間、段取り時間、および確認承認時間を確保した適用タイミング案を算出する。
補正演算時間、段取り時間、および確認承認時間は、予め計画補正部17Bが記憶しておく。なお、補正演算時間は、補正タイミング演算部171が、補正するジョブのジョブ数に基づいて算出してもよい。補正タイミング演算部171は、適用タイミング案を補正案作成部170に送信する。
スキル差補正部172は、計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bに基づいて、計画時の作業者のスキルレベルと、補正時の作業者のスキルレベルとの差であるスキル差(スキル構成差)を算出する。スキル差補正部172は、各ジョブでのスキル差を、スキルレベル毎の作業者の人数差に基づいて算出する。すなわち、スキル差補正部172は、スキルレベルの差およびこのスキルレベルでの人数差に基づいてスキル差を算出する。
なお、スキル差補正部172は、計画時の作業者のスキルレベルの代わりに、標準的な作業者のスキルレベルに基づいてスキル差を算出してもよい。標準的な作業者のスキルレベルは、作業者のスキルレベルの平均値である。例えば、計画時には作業者が未定である場合、計画時スキルレベル情報27Aには標準的な作業者のスキルレベルが設定される。スキル差補正部172は、補正案の作成時には、標準的な作業者のスキルレベルと補正時の作業者のスキルレベルとのスキル差を算出する。スキル差補正部172は、計画時と補正時とのスキル別の作業者の作業者構成の差であるスキル差に基づいて、作業者が実施する工程の所要時間に持たせるマージン時間を決定する。スキル差補正部172は、マージン時間を補正案作成部170に送信する。
実施の形態2では、補正案作成部170が、マージン時間、適用タイミング案、および補正タイミング候補28に基づいて、補正案を作成する。補正案作成部170は、マージン時間を、作業者が実行する工程の所要時間に含めたうえで補正案を作成する。補正案作成部170は、補正案を計画提示部16に送信する。
図23は、実施の形態2にかかるスケジューリング装置の計画補正部の構成を示す図である。図23の各構成要素のうち図1に示す実施の形態1のスケジューリング装置1Aと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
補正案作成部170は、入力部11、ユーザ要求受付部12、計画作成部13、遅延見積部15A、および計画提示部16に接続されている。補正タイミング演算部171は、入力部11、ユーザ要求受付部12、および補正案作成部170に接続されている。スキル差補正部172は、入力部11、ユーザ要求受付部12、および補正案作成部170に接続されている。
補正案作成部170は、計画作成部13が作成した承認済みスケジュール26と、工程進捗情報取得部140が収集した工程進捗情報31と、ユーザ要求受付部12が受け付けたユーザ要求とに基づいて、補正を行うジョブの情報(以下、補正ジョブ情報という)を決定する。
スキル差補正部172は、補正案作成部170から補正ジョブ情報を受信する。補正ジョブ情報には、ジョブIDなどの情報が含まれている。
また、スキル差補正部172は、入力部11から計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bを受信する。スキル差補正部172は、補正ジョブ情報、計画時スキルレベル情報27A、および補正時スキルレベル情報27Bに基づいて、補正を行うジョブでのスキル差を算出する。スキル差補正部172は、スキル差に基づいて、作業者が実施する工程の所要時間に持たせるマージン時間を決定する。スキル差補正部172は、補正段階においてスキルレベルが下がっているほど長いマージン時間を設定する。スキル差補正部172は、算出したマージン時間を補正案作成部170に送信する。
補正案作成部170は、ユーザ要求受付部12から補正タイミング候補28を受信する。また、補正案作成部170は、スキル差補正部172からマージン時間を受信し、補正タイミング演算部171から適用タイミング案を受信する。
補正案作成部170は、適用タイミング案およびマージン時間を確保したうえで、補正タイミング候補28に近付くように補正タイミングを算出する。補正案作成部170は、算出した補正タイミングに基づいて補正案を作成する。補正案作成部170は、作成した補正案を計画提示部16に送信する。
図24は、実施の形態2にかかるスケジューリング装置が運用中スケジュールを補正する際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Bの補正案作成部170は、計画作成部13から最新の運用中スケジュールを取得する(ステップS610)。
また、補正案作成部170は、遅延見積部15Aから遅延情報を取得する(ステップS620)。補正タイミング演算部171は、計画補正部17Bが記憶しておいた、補正演算時間と、段取り時間と、確認承認時間とを読み出す。
補正タイミング演算部171は、補正演算時間と、段取り時間と、確認承認時間とに基づいて、補正案の適用タイミング案を算出する(ステップS630)。スキル差補正部172は、計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bに基づいてスキル差を算出し、スキル差に基づいて、作業者が実施する工程の所要時間に持たせるマージン時間を決定する(ステップS640)。
補正案作成部170は、補正タイミング候補28、適用タイミング案、およびマージン時間を用いて補正案を作成する(ステップS650)。具体的には、補正案作成部170は、ジョブリスト21と、運用中スケジュールと、制約情報22と、遅延時使用可能リソース23と、遅延情報と、優先度情報25と、補正タイミング候補28と、適用タイミング案と、マージン時間とを用いて補正案を作成する。補正案作成部170は、作成した補正案を計画提示部16に送信する(ステップS660)。これにより、計画提示部16が、補正案を表示部2に表示させる。このように、実施の形態2では、スケジューリング装置1Bが、作業者のスキル差を考慮した補正案を作成することができる。また、スケジューリング装置1Bが、補正案の承認に要する時間を確保した補正案を作成するので、補正案の適用後に適切な時間を確保したロバストな補正案を作成することができる。
ここで、スキル差補正部172が、計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bに基づいてスキル差を算出する処理について説明する。図25は、実施の形態2にかかるスケジューリング装置が計画時スキルレベル情報および補正時スキルレベル情報に基づいてスキル差を算出する処理を説明するための図である。スキル差補正部172は、計画時スキルレベル情報27Aと補正時スキルレベル情報27Bとを比較する。
計画時スキルレベル情報27Aは、計画時の作業者のスキルレベルの情報であり、補正時スキルレベル情報27Bは、補正時の作業者のスキルレベルの情報である。計画時スキルレベル情報27Aおよび補正時スキルレベル情報27Bでは、スキルレベルと、作業日程における作業者の人数とが対応付けされている。すなわち、計画時スキルレベル情報27Aでは、作業日程に対するスキルレベル毎の作業者の人数が設定されている。例えば、図25では、5月18日の午前において、計画時スキルレベル情報27Aではスキルレベルが「2」の作業者は1名であり、補正時スキルレベル情報27Bではスキルレベルが「2」の作業者は0名である。
この場合、スキルレベルが「2」の作業者が計画時よりも減少しているので、計画時の所要工程時間よりも、補正時の所要工程時間の方が長くなることが想定される。したがって、スキル差補正部172は、スキル差に応じたマージン時間を算出する。例えば、計画時のジョブの所要工程時間が所要工程時間Taであり、スキル差がD(D>0)である場合、スキル差補正部172は、補正時のジョブの所要工程時間Tbとして、Tb=Ta×(1+D)を算出する。なお、計画時の所要工程時間Taよりも補正時の所要工程時間Tbの方が長くなるように補正時の所要工程時間Tbを算出する方法は、この方法に限らない。
例えば、計画作成部13がスケジュール41を作成した際に勤務が予定されていた作業者が病欠等の理由で欠勤となる場合がある。この場合、スケジューリング装置1Bは、作業者リソース23Aに基づいて作業者を補充し、補充した作業者にジョブを割り当てるか、または計画時よりも少ない人数で残業をするなどして、欠員に起因する遅延を防止する。この場合において、計画時に想定されていた作業者と実際にジョブを実行する作業者との間のスキル差、または作業者の人数に差が生じる可能性がある。
スキル差補正部172は、計画時に想定されていた作業者と実際にジョブを実行する作業者との間に作業者数の差またはスキルレベルの差がある場合、これらの差に基づいてスキル差を算出する。例えば、特定の日時において、作業者数が同じで、スキルレベルの平均値が変化している場合、スキル差が発生する。また、特定の日時において、スキルレベルの平均値が同じで、作業者数が変化している場合、スキル差が発生する。
スキル差は、計画時のスキルを示す値から補正時のスキルを示す値を減算した値である。したがって、スキル差がプラスの場合には、補正時に作業者が減っているかスキルレベルが低くなっている。スキル差補正部172は、計画時および補正時のスキルを示す値をスキルレベルと作業者数とから算出し、計画時および補正時のスキルを示す値からスキル差を算出する。
例えば、スキル差補正部172は、計画時と比べて補正時のスキルレベルが低くなっている場合、スキル差に応じたマージン時間を算出する。これにより、スケジューリング装置1Bは、計画時と比べて補正時のスキルレベルが低くなっている場合には、ジョブの処理時間を長めに設定した補正案を作成することで、遅延が発生しづらい運用中スケジュールを作成する。なお、スキル差補正部172は、計画時と比べて補正時のスキルレベルが高くなっている場合、マージン時間を短くしてもよい。
つぎに、補正タイミング演算部171が、補正案の適用タイミング案を算出する処理について説明する。図26は、実施の形態2にかかるスケジューリング装置が補正案の適用タイミング案を算出する処理を説明するための図である。図26では、実行中の承認済みスケジュール26に対応する実績スケジュールを示している。図26に示す実行中の時刻が現在の時刻(補正案を作成している時刻)である。
補正タイミング演算部171は、補正演算時間と、段取り時間と、確認承認時間との合計時間を、補正案の適用までに必要な想定時間T0として算出する。補正タイミング演算部171は、現在時刻から想定時間T0よりも後のタイミングを補正案の適用タイミング案として算出する。また、補正タイミング演算部171は、現在仕掛り中のジョブ、および想定時間T0内に仕掛りとなるジョブは実行を固定する。
図26では、ジョブIDが「J006」および「J010」であるジョブが、加工機IDが「PM002」の加工機で実行される予定である場合を示している。「J006」のジョブは、想定時間T0内に仕掛りとなるジョブであるので固定され、補正対象にはならない。想定時間T0の後に実行が開始されるジョブ(ここでは、J010」のジョブ)が補正対象のジョブである。
図27は、図26で説明した補正案の適用タイミング案に対して補正されるジョブを説明するための図である。補正案作成部170は、固定されたジョブ以外のジョブに対して補正案を作成する。この場合において、加工機が不足している場合には、補正案作成部170は、設備リソース23Bに基づいて、遊休状態の加工機を使用する。図27では、遊休状態の加工機は、加工機IDが「PM003」の加工機である。
図27では、補正案作成部170が、「PM002」の加工機で実行予定であった「J010」のジョブを、遅延回復のために、「PM003」の加工機で実行するように補正した場合を示している。「J010」のジョブは、現在時刻から想定時間T0が経過した時点が開始時刻に設定される。
図28は、図27で説明した補正案に対して設定されるマージン時間を説明するための図である。補正案作成部170は、マージン時間T1に基づいて、補正可能タイミング(適用タイミング案)よりも後のタイミングを、補正案を実行するタイミングである補正タイミングに設定する。例えば、補正案作成部170は、適用タイミング案の時刻からマージン時間T1だけ経過したタイミングを補正タイミングに設定する。
図28では、補正案作成部170が、「J010」のジョブに対して、補正可能タイミングである適用タイミング案の時刻からマージン時間T1だけ経過した後のタイミングを補正タイミングに設定した場合を示している。
このように、スケジューリング装置1Bは、補正可能タイミングである適用タイミング案より後に補正案を実行するタイミングを設定する。スケジューリング装置1Bは、複数のマージン時間を用いて補正案を作成することで、マージン時間の異なる複数の補正タイミングを作成することができる。スケジューリング装置1Bは、工程間の予定(休憩の時間帯、メンテナンスの時間帯、修理の時間帯など)に応じた複数の補正案を作成する。
例えば、スケジューリング装置1Bは、昼休みなどの休憩時間がある場合には、休憩時間前が補正タイミングとなる補正案と、休憩時間後が補正タイミングとなる補正案とを作成してもよい。スケジューリング装置1Bは、複数の補正タイミングで補正案を作成した場合には、複数の補正案をユーザに提示する。
スケジューリング装置1Bは、複数の補正案を作成することで、ユーザが所望する方針に適合した補正案を提示できる可能性が高くなる。また、スケジューリング装置1Bは、複数の補正案を同時にユーザに提示してもよい。
また、スケジューリング装置1Bは、スケジュール41を作成する段階で複数のスケジュール41を作成しておき、複数の補正案との差分を算出してもよい。この場合、スケジューリング装置1Bは、補正案とスケジュール41との組合せ毎に補正案とスケジュール41との差分を算出する。スケジューリング装置1Bは、複数のスケジュール41と、複数の補正案と、算出した差分とを同時に提示してもよい。これにより、複数の補正案の優劣をユーザが素早く確認することができる。
スケジューリング装置1Bがユーザに提示する各補正案には、遅延が発生してから補正案が適用されるまでの間に発生する納期遅れの情報が含まれていてもよい。これにより、スケジューリング装置1Bは、補正案が適用されるまでに拡大すると予測される遅延時間を算出できるので、算出した遅延時間に基づいて、補正案が適用されるまでの遅延に応じた補正案を作成することが可能となる。また、スケジューリング装置1Bは、予測される遅延時間をユーザに提示できる。また、スケジューリング装置1Bがユーザに提示する各補正案には、補正案が適用されることによる遅延時使用可能リソース23の変化の情報が含まれていてもよい。
これにより、ユーザは都合の良い補正タイミングで作成された補正案を適用することができ、補正案の内容を確認する処理、および補正案を適用するための準備を行う処理に対して、余裕時間をもつことができる。また、スケジューリング装置1Bは、ユーザが補正案の適用タイミングを逃してしまうことを防止でき、適用タイミングを逃してしまったことによる、補正案の再計算を防止することができる。
スケジューリング装置1Bは、作業者のスキルレベルのレベル差によって工程に遅れが生じることを考慮し、レベル差に応じたマージン時間を設けている。これにより、スケジューリング装置1Bは、作業者のスキルレベルにレベル差がある場合であっても工程に遅延が発生することを防止できるロバストなスケジューリングを行うことができる。したがって、スケジューリング装置1Bは、補正案を適用した場合であっても、前工程または後工程に依存関係がある工程に対しての影響を抑制できる。
また、スケジューリング装置1Bは、マージン時間が設けられた補正案を作成するので、工程に遅延が発生しにくくなり、新たに補正案を作成する可能性が低くなる。したがって、スケジューリング装置1Bは、効率良く補正案を作成することができる。
例えば、工程に遅延が発生し、スケジューリング装置1Bが補正案を作成する場合において、作業者の人員配置がスケジュール41の作成時と異なり、スキルレベルが高い熟練した作業者が不足する場合がある。この場合、スキルレベルを考慮せずに補正案が作成されると、スキル差が原因で遅延が発生し、さらなる補正案の作成が必要になる場合がある。そこで、スケジューリング装置1Bは、作業者のスキル差に応じた遅延を推定し、推定した遅延をマージン時間として設けた補正案を作成する。これにより、スケジューリング装置1Bが作成した補正案は遅延に対してさらにロバストなスケジュールとなる。
なお、補正案作成部170は、ユーザから補正タイミング候補28を受付けている場合、補正タイミング候補28に基づいて、補正タイミングを決定する。例えば、補正案作成部170は、補正案の適用タイミング案の時刻からマージン時間T1だけ経過した後、補正タイミング候補28で指定されたタイミングに近いタイミングを補正タイミングに決定する。補正案作成部170は、例えば、補正案の適用タイミング案の時刻からマージン時間T1だけ経過した時刻と、補正タイミング候補28で指定されたタイミングとの中間の時刻を補正タイミングに決定する。
このように実施の形態2によれば、スケジューリング装置1Bが、遅延が発生した場合に、承認済みスケジュール26を作成した際の作業者のスキルレベルと、補正時のスキルレベルとの差に基づいて、運用中スケジュールの補正案を作成するので、補正案の運用後は工程に遅延が発生しにくくなる。
また、スケジューリング装置1Bは、生産ラインに対して与える混乱が小さくなるように補正案の適用タイミングを決定するので、補正案の適用タイミングを逃すことによって補正案を再作成する事態を防止することができる。
実施の形態3.
つぎに、図29から図38を用いて実施の形態3について説明する。実施の形態3では、遅延の兆候に基づいて将来の遅延時間を推論し、推論した遅延時間に基づいて、遅延情報を作成する周期(工程進捗情報を収集する周期)を変更する。
図29は、実施の形態3にかかるスケジューリング装置の構成を示す図である。図29の各構成要素のうち図1に示す実施の形態1のスケジューリング装置1Aと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
実施の形態3のスケジューリング装置1Cは、実施の形態2のスケジューリング装置1Bと比較して、リアルタイム実績取得部14Aの代わりにリアルタイム実績取得部14Cを備えている。
また、実施の形態3のスケジューリング装置1Cは、実施の形態2のスケジューリング装置1Bと比較して、遅延見積部15Aの代わりに遅延見積部15Cを備えている。
遅延見積部15Cは、リアルタイムで検出されたデータに対して算出した現在の遅延の兆候(後述する遅延兆候)に基づいて、将来の特定タイミング(後述する特定タイミングTX)における総遅延時間(遅延の累積時間)を推論する。現在の遅延が増大傾向にある場合、現在の遅延は、将来の特定タイミングTXにおいて補正案の作成を要するぐらいに増大する可能性が大きい。遅延見積部15Cは、総遅延時間の推論結果(後述する遅延推論結果36)をリアルタイム実績取得部14Cに送信する。
リアルタイム実績取得部14Cは、遅延推論結果36に基づく周期で、タイムスタンプを付与した工程進捗情報31およびセンサ情報32を遅延見積部15Cに送信する。リアルタイム実績取得部14Cは、遅延推論結果36における総遅延時間が長いほど、短い周期でタイムスタンプを付与した工程進捗情報31およびセンサ情報32を遅延見積部15Cに送信する。
リアルタイム実績取得部14Cは、リアルタイム実績取得部14Aと比較して、工程進捗情報取得部140に加えて監視周期可変部141を有している。監視周期可変部141は、遅延推論結果36に基づいて、工程進捗情報取得部140を起動させる周期を動的に変化させる。
図30は、実施の形態3にかかるスケジューリング装置が備えるリアルタイム実績取得部および遅延見積部の構成を示す図である。図30の各構成要素のうち図10に示す実施の形態1のリアルタイム実績取得部14Aと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
リアルタイム実績取得部14Cは、工程進捗情報取得部140と、監視周期可変部141とを有している。遅延見積部15Cは、学習装置150と、推論装置160と、学習済モデル記憶部155とを有している。
学習装置150は、過去のデータに基づいて、遅延の検出区間である遅延検出期間における遅延時間の増減傾向と、その後の特定タイミングTXにおける総遅延時間の実績値との関係を学習して学習済モデル(後述する学習済モデル60)を生成する。すなわち、学習装置150は、工程の遅延が発生した際、特定期間である遅延検出期間での遅延時間の増分と、遅延検出期間よりも後の特定タイミングTXにおける遅延時間である総遅延時間の実績値との関係を学習して学習済モデル60を生成する。以下、遅延検出期間における遅延時間の増減傾向を遅延兆候という。遅延兆候は、遅延検出期間における遅延時間の時系列データであってもよいし、遅延検出期間における遅延時間の増減量の傾きであってもよい。
学習済モデル記憶部155は、後述するモデル生成部152から出力された学習済モデル60を記憶する。学習済モデル記憶部155が記憶する学習済モデル60が第2の学習済モデルである。第1の学習済モデルについては後述する。
推論装置160は、学習装置150が生成しておいた学習済モデル60に、現在の遅延兆候を適用することで、将来の適切な総遅延時間を推論する。推論装置160は、工程の遅延が始まってからの特定期間である遅延検出期間での遅延兆候(遅延時間の増分)に基づいて、遅延検出期間よりも後の特定タイミングTXにおける遅延時間である総遅延時間を推論する。すなわち、推論装置160は、工程の遅延が発生した際、特定期間である遅延検出期間での遅延時間の増分に基づいて、遅延検出期間よりも後の特定タイミングTXにおける遅延時間である総遅延時間を推論する。遅延見積部15Cは、総遅延時間の推論結果である遅延推論結果36を監視周期可変部141に送信する。
リアルタイム実績取得部14Cでは、工程進捗情報取得部140が外部装置から工程進捗情報31およびセンサ情報32を取得する。また、監視周期可変部141は、遅延見積部15Cから遅延推論結果36を受信する。
監視周期可変部141は、遅延推論結果36に基づいて、工程進捗情報取得部140を起動させる周期の情報(起動周期情報)を変更する。具体的には、監視周期可変部141は、遅延の兆候が大きく総遅延時間が長いほど工程進捗情報取得部140を起動させる周期を短くすることで、監視周期を高頻度にする。
なお、監視周期可変部141は、リアルタイム実績取得部14Aに適用されてもよい。この場合、遅延見積部15Aは、遅延状態の算出結果である遅延時間に基づいて、工程で遅延が発生しているか否かを判定する。すなわち、遅延見積部15Aは、算出結果である遅延時間が、遅延時間の閾値を超えた場合、工程で遅延が発生していると判定し、工程進捗情報31に基づいて遅延時間を示す遅延情報を作成し、監視周期可変部141に送信する。
監視周期可変部141は、遅延情報を受信すると、工程進捗情報取得部140を起動させる周期の情報(起動周期情報)を短くする。監視周期可変部141は、例えば、遅延時間が長いほど工程進捗情報取得部140を起動させる周期を短くすることで、監視周期を高頻度にする。
リアルタイム実績取得部14Cが備える監視周期可変部141が、第1の監視周期可変部であり、リアルタイム実績取得部14Aが備える監視周期可変部141が、第2の監視周期可変部である。
監視周期可変部141は、起動周期情報に基づいて、工程進捗情報取得部140に工程進捗情報取得部140を起動させるための起動信号を送信する。
工程進捗情報取得部140は、監視周期可変部141から起動信号を受信すると、起動して、工程進捗情報31にタイムスタンプを付与し、タイムスタンプを付与した工程進捗情報31およびセンサ情報32を遅延見積部15Cに送信する。これにより、リアルタイム実績取得部14Cは、推論された総遅延時間が長いほど工程進捗情報31およびセンサ情報32を収集する周期を短くする。
ここで、遅延兆候および総遅延時間について説明する。図31は、実施の形態3にかかるスケジューリング装置が備える学習装置が学習に用いる遅延兆候および総遅延時間を説明するための図である。
図31に示すグラフの横軸は、遅延からの経過時間(工程を開始してから経過した時間)であり、縦軸は遅延時間である。各工程では、承認済みスケジュール26の通りに工程が完了する場合と、承認済みスケジュール26で予定されていた時間を過ぎて工程が完了する場合とがある。承認済みスケジュール26で予定されていた時間を過ぎてから完了する工程が増えてくると、総遅延時間は増えてくる。
この場合において、遅延が始まってからの特定期間である遅延検出期間と、遅延検出期間よりも後の特定タイミングTXにおける総遅延時間とには特定の関係がある。学習装置150は、この遅延検出期間と総遅延時間との関係を学習することで学習済モデル60を生成する。すなわち、学習装置150は、遅延検出期間および総遅延時間に基づいて、遅延検出期間における遅延時間が増大傾向であるか一過性であるかを学習する。
実施の形態3では、学習装置150が、多段階の工程に跨る総遅延時間を学習し、推論装置160が、多段階の工程に跨る総遅延時間を推論しているので、スケジューリング装置1Cは、多段階の工程を考慮した正確な補正案を作成することが可能となる。
図32は、実施の形態3にかかるスケジューリング装置が備える学習装置の構成を示す図である。学習装置150は、データ取得部151およびモデル生成部152を有している。学習装置150は、学習済モデル記憶部155に接続されている。データ取得部151は、過去に検出された、遅延検出期間における遅延兆候と、過去に検出された、遅延検出期間よりも後の特定タイミングTXにおける総遅延時間とを学習用データとして取得する。
モデル生成部152は、データ取得部151から出力される遅延兆候と総遅延時間との組合せに基づいて作成される学習用データに基づいて、遅延兆候に対応する総遅延時間を学習する。すなわち、モデル生成部152は、過去の遅延兆候および総遅延時間から、現在の遅延兆候に対応する将来の適切な総遅延時間を推論する学習済モデル60を生成する。ここで、学習用データは、遅延兆候と総遅延時間とを互いに関連付けたデータである。
なお、学習装置150および推論装置160は、遅延兆候に対応する総遅延時間を学習するために用いられるが、例えば、ネットワークを介してスケジューリング装置1Cに接続された、このスケジューリング装置1Cとは別の装置であってもよい。また、学習装置150および推論装置160は、スケジューリング装置1Cに内蔵されていてもよい。さらに、スケジューリング装置1Cは、クラウドサーバ上に存在していてもよい。
モデル生成部152が用いる学習アルゴリズムは教師あり学習、教師なし学習、強化学習等の公知のアルゴリズムを用いることができる。一例として、モデル生成部152が、学習アルゴリズムとしてニューラルネットワークを適用した場合について説明する。
モデル生成部152は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、遅延兆候に対応する総遅延時間を学習する。ここで、教師あり学習とは、入力と結果(ラベル)とのデータの組を学習用データとして学習装置に与えることで、学習用データにある特徴を学習し、入力から結果を推論する手法をいう。
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層(隠れ層)、および複数のニューロンからなる出力層で構成される。中間層は、1層、または2層以上でもよい。
図33は、実施の形態3にかかる学習装置が用いるニューラルネットワークの構成を示す図である。例えば、図33に示すような3層のニューラルネットワークであれば、複数の入力が入力層X1~X3に入力されると、その値に重みw11~w16を掛けて中間層Y1,Y2に入力され、その結果にさらに重みw21~w26を掛けて出力層Z1~Z3から出力される。この出力結果は、重みw11~w16および重みw21~w26の値によって変わる。
本願において、ニューラルネットワークは、データ取得部151によって取得される遅延兆候と総遅延時間との組合せに基づいて作成される学習用データに従って、いわゆる教師あり学習により、遅延兆候に対応する総遅延時間を学習する。
すなわち、ニューラルネットワークは、遅延兆候を入力して出力層Z1~Z3から出力された結果が総遅延時間に近づくように重みw11~w16,w21~w26を調整することで総遅延時間を学習する。モデル生成部152は、以上のような学習を実行することで学習済モデル60を生成する。学習装置150は、重みw11~w16,w21~w26を調整したニューラルネットワークを学習済モデル60として学習済モデル記憶部155に記憶させておく。なお、学習済モデル記憶部155は、リアルタイム実績取得部14Cの外部に配置されていてもよい。学習済モデル記憶部155は、モデル生成部152から出力された学習済モデル60を記憶する。
つぎに、図34を用いて、学習装置150が学習する処理の処理手順について説明する。図34は、実施の形態3にかかる学習装置が実行する学習処理の処理手順を示すフローチャートである。
データ取得部151は、学習用データを取得する(ステップS710)。具体的には、データ取得部151は、遅延兆候および総遅延時間を取得する。なお、ここではデータ取得部151が、遅延兆候および総遅延時間を同時に取得する場合について説明したが、遅延兆候および総遅延時間は関連付けて入力されればよく、データ取得部151は、遅延兆候および総遅延時間のデータをそれぞれ別のタイミングで取得してもよい。
モデル生成部152は、学習処理を実行する(ステップS720)。具体的には、モデル生成部152は、データ取得部151によって取得された遅延兆候および総遅延時間の組合せに基づいて作成される学習用データに従って、いわゆる教師あり学習により、遅延兆候に対応する総遅延時間を学習し、学習済モデル60を生成する。
モデル生成部152は、学習済モデル60を出力する(ステップS730)。学習済モデル記憶部155は、モデル生成部152が生成した学習済モデル60を記憶する。
図35は、実施の形態3にかかるスケジューリング装置が備える推論装置の構成を示す図である。推論装置160は、データ取得部161および推論部162を有している。推論装置160は、学習済モデル記憶部155に接続されている。データ取得部161は、現在の遅延兆候を取得する。データ取得部161が第1のデータ取得部であり、データ取得部151が第2のデータ取得部である。
推論装置160は、学習済モデル記憶部155から読み出した学習済モデル60を用いて、現在の遅延兆候から、将来の適切な総遅延時間を推論する。すなわち、推論装置160は、学習済モデル60にデータ取得部161が取得した現在の遅延兆候を入力することで、現在の遅延兆候から推論される将来の適切な総遅延時間を出力することができる。
なお、実施の形態3では、スケジューリング装置1Cのモデル生成部152が学習した学習済モデル60を用いて総遅延時間を出力する場合について説明したが、推論装置160は、他のスケジューリング装置等の外部装置から学習済モデル60を取得し、この学習済モデル60に基づいて総遅延時間を出力するようにしてもよい。
学習装置150による学習処理と、推論装置160による推論処理とは、並行して実行されてもよい。すなわち、推論装置160が総遅延時間を推論した場合において、学習装置150は、総遅延時間の推論に用いられた遅延兆候と、実際の総遅延時間とに基づいて、学習済モデル60を更新してもよい。
つぎに、図36を用いて、推論装置160が推論する処理の処理手順について説明する。図36は、実施の形態3にかかる推論装置が実行する推論処理の処理手順を示すフローチャートである。
データ取得部161は、推論用データを取得する(ステップS740)。具体的には、データ取得部161は、遅延兆候を取得する。推論部162は学習済モデル記憶部155に記憶された学習済モデル60に遅延兆候を入力し(ステップS750)、遅延兆候に対応する総遅延時間を得る。すなわち、推論部162は、遅延時間の増分から総遅延時間を推論するための学習済モデル60を用いて、データ取得部161が取得した遅延時間の増分から総遅延時間を推論する。
推論部162は、推論したデータを計画補正部17Bに出力する(ステップS760)。具体的には、推論部162は、学習済モデル60によって得られた総遅延時間を遅延推論結果36として監視周期可変部141に出力する。この後、監視周期可変部141は、遅延推論結果36に対応する周期で工程進捗情報取得部140を起動させる。この結果、工程進捗情報取得部140は、遅延推論結果36に対応する周期で工程進捗情報31およびセンサ情報32を遅延見積部15Cに送信する。これにより、遅延見積部15Cは、遅延推論結果36に対応する周期で遅延情報を作成する。
また、遅延見積部15Cは、学習済モデル60によって得られた総遅延時間が総遅延時間の閾値以上である場合、総遅延時間に対応する遅延情報を生成して計画補正部17Bに出力する。これにより、計画補正部17Bは、出力された遅延情報の総遅延時間を用いて補正案を作成する。
なお、モデル生成部152は、複数のスケジューリング装置に対して作成される学習用データに従って、遅延兆候に対応する総遅延時間を学習するようにしてもよい。また、モデル生成部152は、同一のエリアで使用される複数のスケジューリング装置から学習用データを取得してもよいし、異なるエリアで独立して動作する複数のスケジューリング装置から収集される学習用データを利用して遅延兆候に対応する総遅延時間を学習してもよい。また、学習用データを収集するスケジューリング装置が途中で対象に追加されてもよいし、対象から除去されてもよい。さらに、スケジューリング装置に対して、遅延兆候に対応する総遅延時間を学習した学習装置150を、これとは別のスケジューリング装置(例えば、スケジューリング装置1C)に適用し、当該別のスケジューリング装置に対して、遅延兆候に対応する総遅延時間を再学習して更新するようにしてもよい。
また、モデル生成部152の学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習(Deep Learning)を用いることもできる。また、モデル生成部152は、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
図37は、実施の形態3にかかるスケジューリング装置が工程の総遅延時間を推論する際に実行する処理の処理手順を示すフローチャートである。スケジューリング装置1Cの遅延見積部15Cは、リアルタイム実績取得部14Cから、タイムスタンプが付与された工程進捗情報31およびセンサ情報32を受付けたか否かを判定する(ステップS810)。遅延見積部15Cは、工程進捗情報31およびセンサ情報32を受付けていない場合(ステップS810、No)、工程進捗情報31およびセンサ情報32を受付けたか否かを判定するステップS810の処理を繰り返す。
遅延見積部15Cは、工程進捗情報31およびセンサ情報32を受付けると(ステップS810、Yes)、計画作成部13から最新の運用中スケジュールとを取得する(ステップS820)。
遅延見積部15Cは、取得した工程進捗情報31と最新の運用中スケジュールとの差分と、センサ情報32とから工程の遅延状態を算出する(ステップS830)。遅延見積部15Cは、工程の遅延状態として、工程の遅延兆候を算出する。
遅延見積部15Cの推論装置160は、遅延兆候を学習済モデル60に適用することで遅延兆候に対応する総遅延時間を推論する(ステップS840)。遅延見積部15Cは、推論した総遅延時間の情報である遅延推論結果36を監視周期可変部141に送信する(ステップS850)。
また、遅延見積部15Cは、総遅延時間が総遅延時間の閾値以上であるか否かを判定する(ステップS860)。総遅延時間が総遅延時間の閾値以上である場合(ステップS860、Yes)、遅延見積部15Cは、計画補正部17Bに遅延情報を送信する(ステップS870)。
総遅延時間が総遅延時間の閾値未満である場合(ステップS860、No)、遅延見積部15Cは、ステップS810の処理に戻る。なお、遅延情報が生成される際の遅延検出期間と、遅延推論結果36が生成される際の遅延検出期間とは異なる期間であってもよい。
図38は、実施の形態3にかかるスケジューリング装置が推論する総遅延時間を説明するための図である。遅延見積部15Cは、実行中の承認済みスケジュール26である実績スケジュールに対し、実行中の時点における工程の遅延状態(遅延兆候)から、加工機ID毎に特定タイミングTXでの総遅延時間を推論する。図38では、加工機IDが「PM001」の加工機に対する特定タイミングTX1までの総遅延時間と、加工機IDが「PM002」の加工機に対する特定タイミングTX2までの総遅延時間とを示している。このように、遅延見積部15Cは、工程の実行中である現在日時よりも先の特定タイミングTXにおける総遅延時間を推論する。
なお、実施の形態3では、学習装置150が遅延兆候および総遅延時間に基づいて、遅延兆候に対応する総遅延時間を学習する場合について説明したが、学習装置150は、遅延兆候の代わりに遅延の発生頻度を用いてもよい。すなわち、学習装置150は、遅延の発生頻度および総遅延時間に基づいて、遅延の発生頻度に対応する総遅延時間を学習してもよい。この場合、推論装置160は、遅延の発生頻度に基づいて、遅延の発生頻度に対応する総遅延時間を推論する。遅延の発生頻度は、例えば、特定時間当たりに発生する遅延の時間または回数である。
このように実施の形態3によれば、スケジューリング装置1Cは、遅延兆候に基づいて将来の総遅延時間を推論するので微細な遅延に基づいて将来の総遅延時間を推論できる。
また、スケジューリング装置1Cは、推論した総遅延時間に基づいて補正案を作成するので、遅延が確定的になる前から、遅延に対する補正案の算出を開始することができる。これにより、遅延の発生段階から早期に補正案を適用することができ、生産性を向上させることができる。
また、スケジューリング装置1Cは、遅延兆候に基づいて将来の総遅延時間を推論し、推論した総遅延時間に基づいて、遅延情報を作成する周期を変更しているので、遅延に応じて効率良く補正案を作成できる。
また、スケジューリング装置1Cは、推論した総遅延時間に基づいて遅延情報を作成する周期を変更しているので、長期間に渡って遅延が発生しない場合には、遅延見積部15Cが工程進捗情報31およびセンサ情報32を取得する周期、および計画補正部17Bが補正案を作成する周期を長くすることができる。これにより、スケジューリング装置1Cは、情報を取得する処理および補正案を作成する処理に対する負荷を軽減することができる。
実施の形態4.
つぎに、図39から図44を用いて実施の形態4について説明する。実施の形態4では、スケジュール41または補正案が作成される際の生産時の状況または遅延情報と、承認済みスケジュール26とに基づいて、スケジュール41または補正案が作成される際の評価項目の重みを推論する。
図39は、実施の形態4にかかるスケジューリング装置の構成を示す図である。図39の各構成要素のうち図29に示す実施の形態3のスケジューリング装置1Cと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
実施の形態4のスケジューリング装置1Dは、実施の形態3のスケジューリング装置1Cが備える構成要素に加えて、計画学習推論部19を備えている。計画学習推論部19は、実施の形態3の学習装置150が備える学習機能および推論装置160が備える推論機能の両方の機能を有している。計画学習推論部19は、計画作成部13および計画補正部17Bに接続されている。
計画学習推論部19は、スケジュール作成時には、生産時状況および承認済みスケジュール26の少なくとも一方を含んだ、ユーザによる生産の状況を示すユーザ状況に応じた評価項目の重みを学習することで、学習済モデル(以下、第1の重み学習済モデルという)を生成する。なお、ユーザ状況には、遅延状態を示す遅延情報、ユーザ要求などが含まれていてもよい。
入力部11へは、ユーザによって生産時状況が入力される。計画作成部13は、入力部11を介して生産時状況を取得し、計画学習推論部19は、計画作成部13から生産時状況を取得する。また、計画学習推論部19は、計画作成部13または計画補正部17Bから承認済みスケジュール26を取得する。また、計画学習推論部19は、遅延見積部15Cから計画補正部17Bを介して遅延情報を取得し、ユーザ要求受付部12から計画作成部13を介してユーザ要求を取得する。
計画学習推論部19は、学習装置150と同様の方法によって、第1の重み学習済モデルを生成する。計画学習推論部19は、第1の重み学習済モデルを生成した後は、第1の重み学習済モデルおよびユーザ状況に基づいて、評価項目の重みを推論および調整する。
計画学習推論部19は、スケジュール作成時に評価項目の重みを学習する際には、例えば、計画作成部13から生産時状況、承認済みスケジュール26、および評価項目の重みを取得する。これらの生産時状況、承認済みスケジュール26、および重みは、実績の情報であり、実際に工程で用いられた情報である。
計画学習推論部19は、スケジュール作成時におけるユーザ状況に応じた評価項目の重みを学習する。具体的には、計画学習推論部19は、ユーザ状況と評価項目の重みとの対応関係を学習することで、ユーザ状況から評価項目の重みを推論するための第1の重み学習済モデルを生成する。
生産時状況は、繁忙期であるか閑散期であるかといった期間の区分を示す情報、作業者のスキルレベルおよび人数などの作業者の情報、1年のうちの何月であるかまたは1週間のうちの何曜日であるかといった時期の情報などである。作業者の情報には、各作業日程に対するスキルレベル毎の人数などの情報が含まれている。重みは、評価項目に対してユーザが設定した重みまたは重みのデフォルト値である。
例えば、決算時期などの繁忙期に設定される重みと、閑散期のように納期よりも生産コストが重視される際の重みとは異なる傾向にある。計画学習推論部19は、このような傾向に対応する評価項目の重みを学習する。
また、計画学習推論部19は、スケジュール作成時に評価項目の重みを推論する際には、計画作成部13から生産時状況および承認済みスケジュール26を取得する。計画学習推論部19は、第1の重み学習済モデルに生産時状況および承認済みスケジュール26を適用することで、評価項目の重みを推論する。計画学習推論部19は、推論した評価項目の重みを計画作成部13に送信する。これにより、計画作成部13は、推論された評価項目の重みに基づいて、スケジュール41を作成する。
また、計画学習推論部19は、スケジュール補正時には、ユーザ状況に応じた評価項目の重みを学習することで、学習済モデル(以下、第2の重み学習済モデルという)を生成する。計画学習推論部19は、学習装置150と同様の方法によって、第2の重み学習済モデルを生成する。計画学習推論部19は、第2の重み学習済モデルを生成した後は、ユーザ状況に基づいて、評価項目の重みを推論する。
計画学習推論部19は、スケジュール補正時に評価項目の重みを学習する際には、計画作成部13から遅延情報、承認済みスケジュール26、および評価項目の重みを取得する。これらの遅延情報、承認済みスケジュール26、および重みは、実績の情報であり、実際に工程で用いられた情報である。
ここでは、遅延情報および承認済みスケジュール26がユーザ状況であり、計画学習推論部19は、ユーザ状況に応じた評価項目の重みを学習する。具体的には、計画学習推論部19は、ユーザ状況と評価項目の重みとの対応関係を学習することで、ユーザ状況から評価項目の重みを推論するための第2の重み学習済モデルを生成する。
また、計画学習推論部19は、スケジュール補正時に評価項目の重みを推論する際には、計画補正部17Bから遅延情報および承認済みスケジュール26を取得する。計画学習推論部19は、第2の重み学習済モデルに遅延情報および承認済みスケジュール26を適用することで、評価項目の重みを推論する。計画学習推論部19は、推論した評価項目の重みを計画補正部17Bに送信する。これにより、計画補正部17Bは、推論された評価項目の重みに基づいて承認済みスケジュール26に対する補正案を作成する。
計画学習推論部19は、スケジュール補正時には、遅延情報を用いずに第2の重み学習済モデルを生成してもよい。この場合、計画学習推論部19は、承認済みスケジュール26に基づいて、承認済みスケジュール26に応じた評価項目の重みを学習する。実施の形態4における第1の重み学習済モデルおよび第2の重み学習済モデルが第1の学習済モデルである。
計画学習推論部19は、ユーザ要求にユーザを取り巻く環境の情報であるユーザ状況を追加することでユーザ要求を拡張し、ユーザ状況に応じた評価項目の重みを推論してユーザに重みの提示(レコメンド)を行う。具体的には、スケジューリング装置1Dは、予めユーザ状況と補正案を承認した際の重みの組とを蓄積しておく。計画学習推論部19は、蓄積しておいたこれらの情報を用いた統計処理または学習処理によって、第1の重み学習済モデルおよび第2の重み学習済モデルを生成する。計画学習推論部19は、第1の重み学習済モデルおよび第2の重み学習済モデルを用いて評価項目の重みを推論する。
スケジューリング装置1Dは、第1の重み学習済モデルまたは第2の重み学習済モデルを用いて推論した重みを用いて補正案を作成し、ユーザに提示することで、ユーザ状況に応じた重みのレコメンドを行う。
計画学習推論部19は、例えば、ユーザ状況が繁忙期である場合、重みW=(1,0,0)を推論し、ユーザ状況が閑散期である場合、重みW=(0,1,0)を推論する。また、計画学習推論部19は、ユーザ状況が繁忙期でも閑散期でもない場合、ユーザ状況を第1の重み学習済モデルおよび第2の重み学習済モデルに適用することで評価項目の重みを推論し、例えば、重みW=(1,1,0)を推論する。
また、計画学習推論部19は、あるユーザが、重みW=(3,2,1)を好む場合、あるユーザと同様のユーザ状況である別ユーザも、この重みW=(3,2,1)またはこの重みW=(3,2,1)の近傍を好むものと推定する。そして、計画学習推論部19は、推定した重みを別ユーザにも適用する。
図40は、実施の形態4にかかるスケジューリング装置がスケジュール作成時に評価項目の重みを学習する際に実行する処理の処理手順を示すフローチャートである。計画学習推論部19は、計画作成部13から生産時状況、承認済みスケジュール26、および評価項目の重みを取得する(ステップS910)。
計画学習推論部19は、生産時状況、承認済みスケジュール26、および評価項目の重みに基づいて、ユーザの状況に応じた評価項目の重みを学習する(ステップS920)。すなわち、計画学習推論部19は、生産時状況、承認済みスケジュール26、および評価項目の重みの組合せに基づいて、生産時状況および承認済みスケジュール26に応じた評価項目の重みを学習し、第1の重み学習済モデルを生成する。第1の重み学習済モデルは、スケジューリング装置1Dが備える記憶領域で記憶される。
図41は、実施の形態4にかかるスケジューリング装置がスケジュール作成時に評価項目の重みを推論する際に実行する処理の処理手順を示すフローチャートである。計画学習推論部19は、ユーザから評価項目の重みの推奨値が要求されたかを判断する(ステップS1010)。評価項目の重みの推奨値は、ユーザが所望する重みであり、ユーザによってユーザ要求受付部12に入力される。
ユーザから評価項目の重みの推奨値が要求されている場合(ステップS1010、Yes)、計画学習推論部19は、重みを推論せず処理を終了する。一方、ユーザから評価項目の重みの推奨値が要求されていない場合(ステップS1010、No)、計画学習推論部19は、計画作成部13から生産時状況および承認済みスケジュール26を取得する(ステップS1020)。
計画学習推論部19は、生産時状況および承認済みスケジュール26に基づいて、評価項目の重みを推論する(ステップS1030)。具体的には、計画学習推論部19は、第1の重み学習済モデルに生産時状況および承認済みスケジュール26を適用することで、評価項目の重みを推論する。計画学習推論部19は、推論した評価項目の重みを計画作成部13に送信する(ステップS1040)。これにより、スケジューリング装置1Dは、ユーザ状況に応じた重みを提示することが可能となる。
図42は、実施の形態4にかかるスケジューリング装置がスケジュール補正時に評価項目の重みを学習する際に実行する処理の処理手順を示すフローチャートである。計画学習推論部19は、計画作成部13から遅延情報、承認済みスケジュール26、および評価項目の重みを取得する(ステップS1110)。
計画学習推論部19は、遅延情報、承認済みスケジュール26、および評価項目の重みに基づいて、ユーザの状況に応じた評価項目の重みを学習する(ステップS1120)。すなわち、計画学習推論部19は、遅延情報、承認済みスケジュール26、および評価項目の重みの組合せに基づいて、遅延情報および承認済みスケジュール26に応じた評価項目の重みを学習し、第2の重み学習済モデルを生成する。第2の重み学習済モデルは、スケジューリング装置1Dが備える記憶領域で記憶される。
図43は、実施の形態4にかかるスケジューリング装置がスケジュール補正時に評価項目の重みを推論する際に実行する処理の処理手順を示すフローチャートである。計画学習推論部19は、ユーザから評価項目の重みの推奨値が要求されたかを判断する(ステップS1210)。
ユーザから評価項目の重みの推奨値が要求されている場合(ステップS1210、Yes)、計画学習推論部19は、重みを推論せず処理を終了する。一方、ユーザから評価項目の重みの推奨値が要求されていない場合(ステップS1210、No)、計画学習推論部19は、計画補正部17Bから遅延情報および承認済みスケジュール26を取得する(ステップS1220)。
計画学習推論部19は、遅延情報および承認済みスケジュール26に基づいて、評価項目の重みを推論する(ステップS1230)。具体的には、計画学習推論部19は、第2の重み学習済モデルに遅延情報および承認済みスケジュール26を適用することで、評価項目の重みを推論する。計画学習推論部19は、推論した評価項目の重みを計画補正部17Bに送信する(ステップS1240)。これにより、スケジューリング装置1Dは、ユーザ状況に応じた重みを提示することが可能となる。なお、計画学習推論部19は、実施の形態1~3で説明したスケジューリング装置1A~1Cに適用されてもよい。
このように、計画学習推論部19は、過去にユーザが承認した承認済みスケジュール26および補正案、およびこれらが作成された際のユーザ状況を学習するので、既知のユーザ状況および未知のユーザ状況の何れにおいてもユーザが好むと考えられるスケジュール41および補正案を作成することができる。
また、スケジューリング装置1Dは、計画学習推論部19が学習した重みを用いることで仮想的なユーザ像を作り出すことができる。スケジューリング装置1Dは、計画作成部13または計画補正部17Bで作成されたスケジュール41または補正案に対する仮想的なユーザ評価を実施することで、ユーザの確認を経ることなく、ユーザの嗜好に合うスケジュール41または補正案を作成することができる。また、スケジューリング装置1Dでは、仮想的なユーザ評価が高くなるように計画作成部13または計画補正部17Bがスケジュール41または補正案を作成する試行を繰り返すことによって、未知のユーザ状況におけるユーザの真のニーズを満たしたスケジュール41または補正案をユーザに推薦することもできる。
なお、スケジューリング装置1A~1Dは、1台のPC(Personal Computer)で実現されてもよいし、スケジューリング装置1A~1Dが備える構成要素の少なくとも一部がネットワークを介して接続されていてもよい。ここで、スケジューリング装置1A~1Dが備える構成要素の少なくとも一部がネットワークを介して接続されたスケジューリングシステムの構成例について説明する。なお、ここではスケジューリング装置1Dが備える構成要素の少なくとも一部がネットワークを介して接続されたスケジューリングシステムの構成例について説明する。
図44は、実施の形態4にかかるスケジューリングシステムの装置の構成を示す図である。スケジューリング装置1Dに対応するスケジューリングシステム10Xは、スケジューリング装置1Dが備える構成要素に対応する構成要素を有している。
すなわち、スケジューリングシステム10Xは、入力部11に対応する入力装置11Xと、ユーザ要求受付部12に対応するユーザ要求受付装置12Xと、計画作成部13に対応する計画作成装置13Xとを備えている。また、スケジューリングシステム10Xは、リアルタイム実績取得部14Cに対応するリアルタイム実績取得装置14Xと、遅延見積部15Cに対応する遅延見積装置15Xと、計画提示部16に対応する計画提示装置16Xとを備えている。また、スケジューリングシステム10Xは、計画補正部17Bに対応する計画補正装置17Xと、計画学習推論部19に対応する計画学習装置19Xとを備えている。
入力部11と入力装置11Xとは同じ機能を有し、ユーザ要求受付部12とユーザ要求受付装置12Xとは同じ機能を有し、計画作成部13と計画作成装置13Xとは同じ機能を有している。また、リアルタイム実績取得部14Cとリアルタイム実績取得装置14Xとは同じ機能を有し、遅延見積部15Cと遅延見積装置15Xとは同じ機能を有し、計画提示部16と計画提示装置16Xとは同じ機能を有している。また、計画補正部17Bと計画補正装置17Xとは同じ機能を有し、計画学習推論部19と計画学習装置19Xとは同じ機能を有している。
スケジューリングシステム10Xでは、入力装置11X、ユーザ要求受付装置12X、計画作成装置13X、リアルタイム実績取得装置14X、遅延見積装置15X、計画提示装置16X、計画補正装置17X、および計画学習装置19Xがネットワーク9を介して接続されている。なお、スケジューリングシステム10Xが備える構成要素の一部のみがネットワーク9を介して接続されてもよい。
なお、スケジューリング装置1A~1Cに対応するスケジューリングシステム10Xでの各構成要素の接続構成も、スケジューリングシステム10Xの構成要素の接続構成と同様である。
つぎに、スケジューリング装置1A~1Dのハードウェア構成について説明する。スケジューリング装置1A~1Dは、処理回路により実現される。処理回路は、メモリに格納されるプログラムを実行するプロセッサおよびメモリであってもよいし、専用のハードウェアであってもよい。
図45は、実施の形態1~4にかかるスケジューリング装置が備える処理回路をプロセッサおよびメモリで実現する場合の処理回路の構成例を示す図である。なお、実施の形態1~4にかかるスケジューリング装置1A~1Dは、同様のハードウェア構成を有しているので、ここでは、スケジューリング装置1Aのハードウェア構成について説明する。
図45に示す処理回路90は、プロセッサ91およびメモリ92を備える。処理回路90がプロセッサ91およびメモリ92で構成される場合、処理回路90の各機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組合せにより実現される。ソフトウェアまたはファームウェアはスケジューリングプログラムとして記述され、メモリ92に格納される。処理回路90では、メモリ92に記憶されたスケジューリングプログラムをプロセッサ91が読み出して実行することにより、各機能を実現する。すなわち、処理回路90は、スケジューリング装置1Aの処理が結果的に実行されることになるスケジューリングプログラムを格納するためのメモリ92を備える。
このスケジューリングプログラムは、処理回路90により実現される各機能をスケジューリング装置1Aに実行させるためのプログラムであるともいえる。このスケジューリングプログラムは、スケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体により提供されてもよいし、通信媒体など他の手段により提供されてもよい。
上記スケジューリングプログラムは、図13~16,19,21で示した処理をスケジューリング装置1Aに実行させるプログラムであるとも言える。ここで、プロセッサ91は、例えば、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)などである。また、メモリ92は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)などの、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはDVD(Digital Versatile Disc)などが該当する。
図46は、実施の形態1~4にかかるスケジューリング装置が備える処理回路を専用のハードウェアで構成する場合の処理回路の例を示す図である。図46に示す処理回路93は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組合せたものが該当する。処理回路93については、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、処理回路93は、専用のハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せによって、上述の各機能を実現することができる。
このように実施の形態4によれば、スケジューリング装置1Dは、ユーザ状況に基づいて、スケジュール41または補正案が作成される際の評価項目の重みを推論するので、ユーザ状況に対して適切な評価項目の重みに基づいてスケジュール41または補正案を作成することができる。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組合せることも可能であるし、実施の形態同士を組合せることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。