(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032100
(43)【公開日】2024-03-12
(54)【発明の名称】計画システム、計画方法、およびプログラム
(51)【国際特許分類】
G05B 19/418 20060101AFI20240305BHJP
【FI】
G05B19/418 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022135557
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(72)【発明者】
【氏名】入江 大史
(72)【発明者】
【氏名】伍 偉恒
(72)【発明者】
【氏名】古賀 祐一
(72)【発明者】
【氏名】笠野 学
(72)【発明者】
【氏名】ブロム ミシェル
(72)【発明者】
【氏名】ピアス アドリアン
【テーマコード(参考)】
3C100
【Fターム(参考)】
3C100AA01
3C100AA16
3C100BB03
3C100BB13
3C100BB17
(57)【要約】
【課題】リードタイムが短く、且つ部門間の整合性が取れた計画を自動的に短時間で生成することができる計画システムを提供する。
【解決手段】計画システムは、制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するスケジューリング部と、全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得する取得部と、前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部と、前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更する変更部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の部門に跨って実施するオーダの全体計画を作成する計画システムであって、
部門別に設定される定義情報であって、前記オーダにおいて各部門が担当する工程の順序、前記工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するスケジューリング部と、
全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得する取得部と、
前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部と、
前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更する変更部と、
を備え、
前記スケジューリング部は、変更された前記部門別スケジューリング問題を解いて、前記違反工程を担当する部門の前記部門別作業スケジュールを更新する、
計画システム。
【請求項2】
前記変更部は、
前記全体スケジューリング問題の前記制約条件において、第1部門の第1工程の前または後に、前記第1部門とは異なる第2部門の第2工程を実施することが設定されており、前記第2工程の開始時間が固定されている場合に、前記第1部門の前記部門別スケジューリング問題について、前記第1工程および前記第2工程の順序に関する制約条件を追加する、
請求項1に記載の計画システム。
【請求項3】
前記変更部は、前記暫定計画において、先行工程と、前記先行工程の完了後に実施すべき後続工程との少なくとも一部の実施期間が重複する違反が発生した場合に、前記後続工程を担当する部門の前記部門別スケジューリング問題について、前記後続工程の着手可能日に関する制約条件を前記先行工程の終了時間以降となるように変更する、
請求項1または2に記載の計画システム。
【請求項4】
前記変更部は、前記後続工程の開始時間を変更した場合に、前記後続工程よりも後の工程を担当する部門の前記部門別スケジューリング問題について、前記後続工程の後の工程の着手可能日に関する制約条件を、前記後続工程の着手可能日の変更量に応じて変更する、
請求項3に記載の計画システム。
【請求項5】
前記変更部は、複数の前記違反工程のうち、最も開始時間が早い違反工程よりも前の違反なし工程を担当する部門の前記部門別スケジューリング問題について、前記違反なし工程の開始時間を固定する制約条件を追加する、
請求項1または2に記載の計画システム。
【請求項6】
複数の部門に跨って実施するオーダの全体計画を作成する計画システムであって、
全ての前記部門の作業スケジュールに関する定義情報であって、少なくとも前記オーダにおいて各部門が担当する工程の順序およびリソースに関する制約条件を含む定義情報を統合した全体スケジューリング問題を取得する取得部と、
前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部と、
前記全体スケジューリング問題を複数の子問題に分割し、前記工程それぞれを何れかの前記子問題に割り当てる分割処理部と、
前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程の開始時間を変更して、前記違反工程が割り当てられた前記子問題を変更する変更部と、
前記子問題を解いて、前記子問題に割り当てられた工程の開始時間を修正した部分スケジュールを作成するスケジューリング部と、
を備える計画システム。
【請求項7】
複数の部門に跨って実施するオーダの全体計画を作成する計画方法であって、
部門別に設定される定義情報であって、前記オーダにおいて各部門が担当する工程の順序、前記工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するステップと、
全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得するステップと、
前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成するステップと、
前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更するステップと、
を有し、
前記部門別作業スケジュールを作成するステップは、変更された前記部門別スケジューリング問題を解いて、前記違反工程を担当する部門の前記部門別作業スケジュールを更新する、
計画方法。
【請求項8】
複数の部門に跨って実施するオーダの全体計画を作成する計画システムに、
部門別に設定される定義情報であって、前記オーダにおいて各部門が担当する工程の順序、前記工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するステップと、
全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得するステップと、
前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成するステップと、
前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更するステップと、
を実行させるプログラムであって、
前記部門別作業スケジュールを作成するステップは、変更された前記部門別スケジューリング問題を解いて、前記違反工程を担当する部門の前記部門別作業スケジュールを更新する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、計画システム、計画方法、およびプログラムに関する。
【背景技術】
【0002】
製品の設計や生産を行う際に、部門(例えば、各設計工程を実施する設計課、各生産工程を実施するショップなど)を跨る出図計画または生産計画を立案する業務では、部門間の作業順番やリソースなどの整合性を取るためのスケジュール調整方針の決定(以下、「意思決定」とも記載する。)に時間を要している。
【0003】
例えば、複数の設計課の出図計画を立案する業務では、設計課毎に立案された個別の出図計画を人手で調整し、設計課間で整合性が取れた計画を立案している。また、複数ショップの生産計画を立案する業務では、生産スケジューラを用いて複数ショップの生産計画を一括立案する場合があるが、十分に生産リードタイムが短い生産計画を得るためには、最適化計算に要する時間が長くなる。
【0004】
また、スケジューラを使って計画を立案する技術として、例えば特許文献1には、運行中の複数の列車それぞれから取得した運行速度、能力、および位置情報に基づいて、速度が列車の能力を超えず、且つ、要求された到着時刻から遅延しないように、各列車を制御するための旅行プランを立案するシステムが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、例えば特許文献1に記載のシステムでは、出図および生産計画に特有の条件である、部門間の作業順序やリソースの取り合いを考慮できない。この場合、全体の計画を自動立案したあと、部門間の整合性を取るために手動でリスケジュールする作業が発生するので、スケジューラを用いた意思決定の時間短縮によるコストメリットを得ることが困難となる。意思決定に係る時間が短いほど人件費が低減でき、計画のリードタイムが短いほど生産期間にかかる在庫コストを低減できる。このため、複数の部門間で整合性が取れて、リードタイムが短いスケジュールを短時間で立案する手法が求められている。
【0007】
本開示は、このような課題に鑑みてなされたものであって、リードタイムが短く、且つ部門間の整合性が取れた計画を自動的に短時間で生成することができる計画システム、計画方法、およびプログラムを提供する。
【課題を解決するための手段】
【0008】
本開示の一態様によれば、複数の部門に跨って実施するオーダの全体計画を作成する計画システムは、部門別に設定される定義情報であって、前記オーダにおいて各部門が担当する工程の順序、前記工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するスケジューリング部と、全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得する取得部と、前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部と、前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更する変更部と、を備え、前記スケジューリング部は、変更された前記部門別スケジューリング問題を解いて、前記違反工程を担当する部門の前記部門別作業スケジュールを更新する。
【0009】
本開示の一態様によれば、複数の部門に跨って実施するオーダの全体計画を作成する計画システムは、全ての前記部門の作業スケジュールに関する定義情報であって、少なくとも前記オーダにおいて各部門が担当する工程の順序およびリソースに関する制約条件を含む定義情報を統合した全体スケジューリング問題を取得する取得部と、前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部と、前記全体スケジューリング問題を複数の子問題に分割し、前記工程それぞれを何れかの前記子問題に割り当てる分割処理部と、前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程の開始時間を変更して、前記違反工程が割り当てられた前記子問題を変更する変更部と、前記子問題を解いて、前記子問題に割り当てられた工程の開始時間を修正した部分スケジュールを作成するスケジューリング部と、を備える。
【0010】
本開示の一態様によれば、複数の部門に跨って実施するオーダの全体計画を作成する計画方法は、部門別に設定される定義情報であって、前記オーダにおいて各部門が担当する工程の順序、前記工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するステップと、全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得するステップと、前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成するステップと、前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更するステップと、を有し、前記部門別作業スケジュールを作成するステップは、変更された前記部門別スケジューリング問題を解いて、前記違反工程を担当する部門の前記部門別作業スケジュールを更新する。
【0011】
本開示の一態様によれば、プログラムは、複数の部門に跨って実施するオーダの全体計画を作成する計画システムに、部門別に設定される定義情報であって、前記オーダにおいて各部門が担当する工程の順序、および前記工程の着手可能日に関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に前記工程の開始時間を設定した部門別作業スケジュールを作成するステップと、全ての前記部門の前記定義情報を統合した全体スケジューリング問題を取得するステップと、前記全体スケジューリング問題の前記制約条件の一部を緩和した緩和問題を解いて、前記オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成するステップと、前記暫定計画において前記制約条件に違反する違反工程がある場合に、前記違反工程を担当する部門の前記部門別スケジューリング問題について、前記違反工程の着手可能日に関する制約条件を変更するステップと、を実行させ、前記部門別作業スケジュールを作成するステップは、変更された前記部門別スケジューリング問題を解いて、前記違反工程を担当する部門の前記部門別作業スケジュールを更新する。
【発明の効果】
【0012】
本開示に係る計画システム、計画方法、およびプログラムによれば、リードタイムが短く、且つ部門間の整合性が取れた計画を自動的に短時間で生成することができる。
【図面の簡単な説明】
【0013】
【
図1】本開示の第1の実施形態に係る計画システムの機能構成を示す図である。
【
図2】本開示の第1の実施形態に係る計画システムの処理の一例を示す第1のフローチャートである。
【
図3】本開示の第1の実施形態に係る定義情報の一例を示す図である。
【
図4】本開示の第1の実施形態に係る計画システムの処理の一例を示す第2のフローチャートである。
【
図5】本開示の第1の実施形態に係る違反解消処理を説明するための第1の図である。
【
図6】本開示の第1の実施形態に係る違反解消処理を説明するための第2の図である。
【
図7】本開示の第1の実施形態に係る違反解消処理を説明するための第3の図である。
【
図8】本開示の第1の実施形態に係る違反解消処理を説明するための第4の図である。
【
図9】本開示の第2の実施形態に係る計画システムの機能構成を示す図である。
【
図10】本開示の第2の実施形態に係る計画システムの処理の一例を示すフローチャートである。
【
図11】本開示の第2の実施形態に係る問題分割処理を説明するための第1の図である。
【
図12】本開示の第2の実施形態に係る問題分割処理を説明するための第2の図である。
【
図13】本開示の第2の実施形態に係る問題分割処理を説明するための第3の図である。
【
図14】本開示の第2の実施形態に係る問題分割処理を説明するための第4の図である。
【
図15】本開示の第2の実施形態に係る問題分割処理を説明するための第5の図である。
【
図16】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0014】
<第1の実施形態>
以下、本開示の第1の実施形態に係る計画システム1について、
図1~
図8を参照しながら説明する。
【0015】
(計画システムの機能構成)
図1は、本開示の第1の実施形態に係る計画システムの機能構成を示す図である。
図1に示すように、計画システム1は、メインモジュール10と、サブモジュール11と、複数のエージェント12とを備える。メインモジュール10、サブモジュール11、および各エージェント12は、それぞれコンピュータで構成され、それぞれネットワークなどで通信可能に接続される。
【0016】
本実施形態に係る計画システム1は、例えば、複数の部門がそれぞれ担当する工程を、予め規定された順序で実施する設計、生産などのオーダについて、各部門の作業スケジュールを調整して全体計画を作成する。
【0017】
エージェント12は、複数の部門それぞれに対応して設けられ、各部門が担当する工程の開始時間などを定めた作業スケジュールを作成する。例えば、エージェント12Aは、部門1が担当する各工程の作業スケジュールを作成する。同様に、エージェント12Bおよびエージェント12Cは、それぞれ、部門2および部門3が担当する各工程の作業スケジュールを作成する。
【0018】
エージェント12は、スケジューリング部120を備えている。スケジューリング部120は、部門別に設定される定義情報であって、各部門が担当する工程の順序、および工程の着手可能日に関する制約条件を含む定義情報からなる部門別のスケジューリング問題を解いて、部門別の作業スケジュールを作成する。
【0019】
例えば、エージェント12Aのスケジューリング部120は、部門1の担当者より、部門1が担当する各工程の制約条件を含む定義情報の入力を受け付ける。エージェント12Aのスケジューリング部120は、入力された定義情報からなる部門1のスケジューリング問題を解いて、部門1の各工程の開始時間などを設定した作業スケジュールを作成する。また、エージェント12Aのスケジューリング部120は、メインモジュール10が部門1のスケジューリング問題を変更した場合に、変更されたスケジューリング問題を解いて、部門1の作業スケジュールを更新する。同様に、エージェント12Bおよびエージェント12Cのスケジューリング部120は、それぞれ、部門2および部門3の作業スケジュールの作成、更新を行う。
【0020】
なお、各エージェント12のスケジューリング部120は、既存のスケジューラを使用して作業スケジュールを作成してもよい。また、エージェント毎に異なるスケジューラを使用してもよい。
【0021】
メインモジュール10は、各部門の作業スケジュールを調整して、全体計画を作成する。メインモジュール10は、取得部101と、変更部102とを備えている。
【0022】
取得部101は、エージェント12から収集した各部門のスケジューリング問題の定義情報を統合して、全体スケジューリング問題を取得する。また、取得部101は、全体スケジューリング問題を構成する定義情報に含まれる制約条件のうち、一部を緩和した緩和問題を作成して、サブモジュール11に送信する。
【0023】
変更部102は、後述のサブモジュール11が緩和問題を解いて作成した仮の全体計画(暫定計画)において、制約条件に違反する違反工程がある場合に、この違反工程を担当する部門のスケジューリング問題について、違反工程の着手可能日に関する制約条件を変更する。例えば、変更部102は、部門1が担当する工程に違反工程が含まれる場合、部門1のスケジューリング問題について、違反工程の着手可能日に関する制約条件を変更する。また、変更部102は、部門1のエージェント12Aに対し、変更後のスケジューリング問題を送信して作業スケジュールを更新するように要求する。
【0024】
サブモジュール11は、メインモジュール10の下位で動作し、仮の全体計画(暫定計画)を作成する。サブモジュール11は、最適化計算部110を備えている。最適化計算部110は、メインモジュール10が作成した緩和問題を解いて、各部門の全ての工程の開始時間を仮に設定した暫定計画を作成する。
【0025】
また、
図1の例のように、メインモジュール10と、各エージェント12との間の通信は、ブローカ20を介して行われてもよい。ブローカ20は、例えば、アプリケーション間またはコンピュータ間のデータの受け渡しを仲介するメッセージングライブラリを搭載したサーバである。
【0026】
なお、
図1の構成は一例であり、これに限られることはない。例えば、他の実施形態では、メインモジュール10およびサブモジュール11を1台のコンピュータで構成してもよい。また、さらに他の実施形態では、メインモジュール10、サブモジュール11、各エージェント12、およびブローカ20を1台のコンピュータで構成してもよい。
【0027】
(計画システムの処理フロー)
図2は、本開示の第1の実施形態に係る計画システムの処理の一例を示す第1のフローチャートである。
以下、
図2を参照しながら、計画システム1の処理の流れについて説明する。なお、ここでは、各部門のエージェント12は、担当者による定義情報の入力を受け付けて、自部門の作業スケジュールを作成したとする。なお、この時点では、各部門の作業スケジュールは他部門との調整が行われていない状態である。
図2には、計画システム1が、各部門が作成したこれら作業スケジュールを統合、調整して、部門間の整合が取れた全体計画を作成する処理の流れが示されている。
【0028】
まず、メインモジュール10の取得部101は、部門毎のスケジューリング問題の定義情報を取得する(ステップS11)。
【0029】
図3は、本開示の第1の実施形態に係る定義情報の一例を示す図である。
図3に示すように、定義情報D1は、部門1~nそれぞれの定義情報D1a(D1a_1~D1a_n)と、部門を跨る定義情報D1bとを含む。
【0030】
例えば、部門1の定義情報D1aは、カレンダー詳細、シフト詳細、リソースマスタ、工程マスタ、モード設定、工程の前後関係などの情報を含む。カレンダー詳細は、部門1の稼働日を定義した情報である。シフト情報は、部門1のシフトの開始及び終了時刻を定義した情報である。リソースマスタは、部門1の各工程を実施する作業者や、部門1の各工程で使用される機械の能力などを定義した情報である。工程マスタは、部門1で担当する各工程の着手可能時刻や納期を定義した情報である。モード設定は、工程の作業方法を定義した情報である。工程の前後関係は、部門1で担当する各工程の順序を定義した情報である。部門別の定義情報D1aは、各部門の担当者がエージェント12を介して入力、設定したものである。
【0031】
また、部門を跨る定義情報D1bは、部門を跨る工程の前後関係などの情報を含む。例えば、部門1の工程aの完了後に、部門2の工程bを実施するように規定されている場合、定義情報D1bには部門1の工程aおよび部門2の工程2の順序(前後関係)を示す情報が入力される。部門を跨る定義情報D1bは、部門を跨る全体スケジュールを統制する上位部門の担当者が、取得部101を介して入力、設定したものである。また、部門を跨る定義情報D1bは、メインモジュール10の取得部101が、部門別の定義情報D1aの内容(工程の前後関係)から、異なる部門間における工程の前後関係を抽出して作成したものであってもよい。
【0032】
次に、メインモジュール10の取得部101は、部門別の定義情報D1aおよび部門を跨る定義情報D1bを統合して、部門別のスケジューリング問題を統合した全体スケジューリング問題を取得する(ステップS12)。
【0033】
全体スケジューリング問題は、工程の数が膨大となることが想定される。このため、本実施形態に係る取得部101は、スケジューリング問題を効率よく解くために、全体スケジューリング問題を構成する定義情報に含まれる制約条件のうち、一部の制約条件を緩和した緩和問題を作成し、この緩和問題を解くようにサブモジュール11に要求する。
【0034】
制約条件は、例えば、各工程の着手可能日、順序関係、リソース(使用するリソースの種類、数、期間など)である。取得部101は、例えば、これら制約条件のうち、リソースの取り合いに関する制約条件を緩和した緩和問題を作成する。具体的には、取得部101は、使用リソース数が「1」の工程についてのみ、同じリソースを使用する他の工程と実施期間が重複しないこととする制約条件を緩和する。すなわち、緩和された制約条件においては、使用リソース数が「1」以外の工程については、同じリソースを使用する他の工程との実施期間の重複を考慮しない。緩和問題は、このように一部の制約条件を排除することによって、元の全体スケジューリング問題(混合正数計画問題)を線形計画問題で表現したものである。これにより、最適化計算部110は、最適化計算にかかる時間を短縮することができる。
【0035】
サブモジュール11の最適化計算部110は、メインモジュール10から受信した緩和問題について、予め定められた評価関数が最小となる全体計画(暫定計画)を求める最適化計算を行う(ステップS13)。評価関数は、例えば、計画全体のリードタイムと、定義情報D1aで設定された納期を遅延した工程毎の遅延時間との重み付き和で表される。評価関数は、計画全体のリードタイムが短く、納期の遅延が少ないほど、小さい値となる。なお、リードタイムおよび遅延時間それぞれに対する重みは、オーダの内容などに応じて任意に変更してよい。
【0036】
次に、メインモジュール10およびエージェント12は、サブモジュール11で作成された仮の全体計画(暫定計画)において、制約条件に違反する違反工程を修正する違反解消処理を行う(ステップS14)。上記したように、サブモジュール11では、使用リソース数が「1」のもののみを対象とする緩和問題を解いているため、使用リソース数が「1」以外(2以上)の工程がある場合に、ステップS12で取得した全体スケジューリング問題の実行可能解を得られない(制約条件を満たせない)可能性がある。このため、メインモジュール10およびエージェント12は、全ての工程が制約条件を満たすように、部門別のスケジューリング問題を変更して、各部門の作業スケジュールを調整(再計算)する。
【0037】
図4は、本開示の第1の実施形態に係る計画システムの処理の一例を示す第2のフローチャートである。
ここでは、
図4を参照しながら、違反解消処理(ステップS14)の詳細について説明する。
【0038】
まず、メインモジュール10の変更部102は、各部門のスケジューリング問題について、他部門の工程との前後関係(順序の制約条件)が設定された工程がある場合に、この工程の前後に他部門の工程をダミー工程として追加する処理を行う(ステップS141)。
【0039】
図5は、本開示の第1の実施形態に係る違反解消処理を説明するための第1の図である。
図5は、暫定計画のうち、部門1の工程a1および部門2の工程b1それぞれの実施期間(開始時間および終了時間)を一例として表したものである。
【0040】
例えば、部門を跨る定義情報D1bにおいて、部門2の工程b1は、部門1の工程a1が完了した後に実施するように、前後関係(順序の制約条件)が設定されているとする。また、部門1の工程a1は、開始時間が固定されているとする。「開始時間が固定されている」とは、例えば、部門1の定義情報D1a_1(工程マスタに含まれる着手可能日など)から、暫定計画に設定された開始時間以外に工程a1を実施可能な日時がない場合である。
【0041】
この場合、変更部102は、部門2のスケジューリング問題について、工程b1の前に、部門1の工程a1を表すダミー工程b_dummyと、工程b1および工程b_dummyの順序に関する制約条件を追加する。このようにすることで、部門2の作業スケジュールを再計算する際に、部門1の工程a1と、部門2の工程b1との順序の制約条件に対する違反を抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0042】
なお、
図5には、部門2の工程b1の前に、部門1の工程a1を表すダミー工程b_dummyを追加する例が示されているが、これに限られることはない。他の実施形態では、部門2の工程b1の完了後に他部門の工程を実施する制約条件がある場合は、工程b1の後に他部門の工程を表すダミー工程を追加してもよい。
【0043】
次に、変更部102は、暫定計画において制約条件に違反する工程(違反工程)を抽出する(ステップS142)。
【0044】
また、変更部102は、暫定計画において制約条件に違反していない工程を固定する(ステップS143)。
【0045】
図6は、本開示の第1の実施形態に係る違反解消処理を説明するための第2の図である。
例えば、変更部102は、ステップS142で抽出した違反工程のうち、最も開始時間の早い工程よりも前の工程を検索する。
図6の例では、部門1の工程a3が最も開始時間の早い違反工程であるとする。この工程a3よりも前の工程、すなわち、部門1の工程a2、部門2の工程b2およびb3では、制約条件の違反が発生していない。このため、変更部102は、部門1のスケジューリング問題において、工程a2を開始時間の調整が不要な工程として固定する制約条件を追加する。同様に、変更部102は、部門2のスケジューリング問題において、工程b2およびb3を開始時間の調整が不要な工程として固定する。このようにすることで、後述する開始時間の変更などの調整を行ったことにより、違反なし工程が制約条件に違反してしまうことを抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0046】
次に、変更部102は、違反工程を担当する部門のスケジューリング問題において、違反工程の着手可能日に関する制約条件を変更する(ステップS144)。
【0047】
図7は、本開示の第1の実施形態に係る違反解消処理を説明するための第3の図である。
図7には、先行工程(部門1の工程a5)と、先行工程の完了後に実施する制約条件のある後続工程(部門2の工程b5)との実施期間の一部が重複した例が示されている。このような違反が発生するケースとしては、例えば、緩和問題において考慮外となった制約条件に違反するケースや、後述の部門別の作業スケジュールを計算(ステップS146)したことに起因して順序の制約条件に違反するケースがある。
【0048】
図7の例では、変更部102は、部門2のスケジューリング問題において、後続工程である工程b5の開始時間(着手可能日に関する制約条件)を、先行工程である部門1の工程a5の終了時間以降に変更する。このとき、変更部102は、工程b5の開始時間を、工程a5の終了時間と同じ時間に設定してもよいし、工程a5の終了時間に所定時間(バッファ)を加算した時間に設定してもよい。
【0049】
また、変更部102は、違反工程の着手可能日に関する制約条件の変更を、他の工程に伝播させる処理を行う(ステップS145)。
【0050】
図8は、本開示の第1の実施形態に係る違反解消処理を説明するための第4の図である。
図7および
図8に示すように、変更部102は、ステップS144において部門2の工程b5の開始時間を遅らせる変更を行ったとする。この場合、変更部102は、部門2の工程b5よりも後に実施する工程(部門1の工程a6、a7)についても、工程b5と同じ時間だけ、開始時間を遅らせる変更を行う。例えば、
図8に示すように、工程b5の変更前および変更後の開始時間の時間差がdt時間であるとする。この場合、変更部102は、部門1のスケジューリング問題において、工程b5よりも後の工程a6、a7それぞれについて、開始時間をdt時間以上、遅らせる変更を行う。例えば、変更部102は、工程a6、a7の開始時間を、dt時間+α(バッファ)だけ遅らせる変更を行う。このようにすることで、工程b5の開始時間の変更により、以降の工程において違反が発生することを抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0051】
なお、問題の構造によっては、必ずしも後工程が同じ時間幅だけ後ろ倒しされず、全体計画のリードタイムを長期化させる場合がある。このため、他の実施形態では、ステップS145は、解く問題の性質に応じて、使用有無を設定可能としてもよい。使用無しが設定されている場合、変更部102は、ステップS145を省略する。
【0052】
次に、変更部102は、上述の各ステップにおいて制約条件を変更した部門別のスケジューリング問題を、各エージェント12に送信する。そうすると、各エージェント12のスケジューリング部120は、変更後のスケジューリング問題に基づいて、各部門の作業スケジュールを計算して更新する(ステップS146)。
【0053】
また、変更部102は、各エージェント12が計算した部門別の作業スケジュールに基づいて、暫定計画を更新する。そして、更新された暫定計画において、違反工程があるか確認する(ステップS147)。変更部102は、違反工程がある場合(ステップS147;YES)、ステップS143に戻り、違反工程を解消するための処理(ステップS143~S146)を再度実施する。また、変更部102は、違反工程がない場合(ステップS147;NO)、違反解消処理を終了して、
図3のステップS15に進む。
【0054】
次に、変更部102は、制約条件の違反が全て解消された暫定計画を全体計画として出力し(ステップS15)、処理を終える。
【0055】
(作用、効果)
以上のように、本実施形態に係る計画システム1は、部門別のスケジューリング問題を解いて部門別の作業スケジュールを作成するスケジューリング部120と、全体スケジューリング問題の制約条件の一部を緩和した緩和問題を解いて暫定計画を作成する最適化計算部110と、暫定計画における違反工程を担当する部門のスケジューリング問題の制約条件を変更する変更部102と、を備える。また、スケジューリング部120は、変更後の部門別のスケジューリング問題を解くことにより、違反工程を担当する部門の作業スケジュールを更新する。
【0056】
このようにすることで、計画システム1は、制約条件を緩和して最適化計算を行うことにより、膨大な工程数を有するオーダ全体の暫定計画を計算する時間を短縮することができる。また、計画システム1は、暫定計画の計算後に、違反工程を担当する部門のスケジューリング問題の制約条件を変更して、部門別の作業スケジュールを再計算することにより、緩和した制約条件を含む全ての制約条件を全て満たすように、各部門のスケジュールを調整することができる。この結果、計画システム1は、リードタイムが短く、且つ部門間の整合性が取れた全体計画を自動的に短時間で生成することができる。
【0057】
また、計画システム1において、変更部102は、部門1の工程a1と部門2の工程b1との順序の制約条件が設定されており、且つ、部門1の工程a1の開始時間が固定されている場合に、部門2の工程b1の前または後に部門1の工程a1の工程を表すダミー工程(制約条件)を追加する。
【0058】
このようにすることで、計画システム1は、部門2の作業スケジュールを再計算する際に、部門1の工程a1と、部門2の工程b1との順序の制約条件に対する違反を抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0059】
また、計画システム1において、変更部102は、暫定計画の先行工程a5と後続工程b5との少なくとも一部の実施期間が重複する場合に、後続工程b5を担当する部門2のスケジューリング問題について、後続工程b5の着手可能日が先行工程a5の終了時間以降となるように制約条件を変更する。
【0060】
このようにすることで、計画システム1は、順序の制約条件に対する違反を解消することができる。
【0061】
また、計画システム1において、変更部102は、工程b5の着手可能日に関する制約条件を変更した場合に、工程b5よりも後の工程a6、a7を担当する部門1のスケジューリング問題について、工程b5と同じ時間だけ、工程b5よりも後の工程a6、a7の着手可能日を遅らせる。
【0062】
このようにすることで、計画システム1は、工程b5の着手可能日の変更により、以降の工程a6、a7において違反が発生することを抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0063】
また、計画システム1において、変更部102は、複数の違反工程のうち、最も開始時間が早い違反工程よりも前の違反なし工程を担当する部門のスケジューリング問題について、違反なし工程の開始時間を固定する制約条件を追加する。
【0064】
このようにすることで、計画システム1は、違反工程の開始時間(着手可能日)の変更などの調整を行ったことにより、違反なし工程が制約条件に違反してしまうことを抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0065】
<第2の実施形態>
次に、本開示の第2の実施形態に係る計画システム1について、
図9~
図10を参照しながら説明する。
第1の実施形態と共通の構成要素には同一の符号を付して詳細説明を省略する。
【0066】
(計画システムの機能構成)
図9は、本開示の第2の実施形態に係る計画システムの機能構成を示す図である。
図9に示すように、本実施形態に係る計画システム1において、メインモジュール10は、分割処理部103をさらに備えている。分割処理部103は、全体スケジューリング問題を複数の子問題に分割し、各部門で実施する工程それぞれを何れかの子問題に割り当てる。
【0067】
また、本実施形態において、各エージェント12のスケジューリング部120は、各子問題を解いて、子問題に割り当てられた工程の開始時間を設定した部分スケジュールを作成する。例えば、
図9に示すように、メインモジュール10の分割処理部103が全体スケジューリング問題を3つの子問題1~3に分割した場合、エージェント12Aは、子問題1を解いて、子問題1に割り当てられた各工程のスケジュール(部分スケジュール)を作成する。同様に、エージェント12Bおよびエージェント12Cは、それぞれ、子問題1および子問題2に割り当てられた各工程のスケジュールを作成する。
【0068】
(計画システムの処理フロー)
図10は、本開示の第2の実施形態に係る計画システムの処理の一例を示すフローチャートである。
以下、
図10を参照しながら、本実施形態に係る計画システム1の処理の流れについて説明する。
【0069】
本実施形態では、第1の実施形態とは異なり、部門別の作業スケジュールは作成されていない。このため、本実施形態では、例えばオーダの管理者や、部門を跨る全体スケジュールを統制する上位部門の担当者などにより、全部門のスケジュールに関する定義情報が一括して、メインモジュール10に入力される。そうすると、メインモジュール10の取得部101は、全部門の定義情報からなる全体スケジューリング問題を取得する(ステップS21)。取得部101は、第1の実施形態と同様に、全体スケジューリング問題の制約条件の一部を緩和した緩和問題を作成し、この緩和問題を解くようにサブモジュール11に要求する。
【0070】
サブモジュール11の最適化計算部110は、緩和問題を解いて暫定計画を作成する(ステップS22)。この処理は、第1の実施形態のステップS13(
図2)と同じである。
【0071】
次に、メインモジュール10の分割処理部103は、予め設定された分割条件に基づいて、全体スケジューリング問題を複数の子問題に分割する処理を行う(ステップS23)。
【0072】
まず、全体スケジューリング問題の分割条件について説明する。本実施形態では、分割条件として、例えば、(1)問題の分割数(整数)、(2)工程の割り当てルール、(3)工程の割り当て単位などが設定可能である。
【0073】
(1)問題の分割数は、子問題の問題規模と、子問題を跨る制約条件の数に影響する。分割数を増やすと子問題の規模が小さくなり、各エージェント12のスケジューリング部120における1回の計算時間を短縮することができる。一方で、子問題が多くなるほど子問題を跨る制約条件の数が増えて調整量(違反解消処理の繰り返し回数)が増える可能性がある。上位部門の担当者は、オーダ内容に応じて問題の分割数を整数で指定する。
【0074】
(2)工程の割り当てルールは、各工程をどの子問題に割り当てるかを規定するものであり、例えば、各工程を、「リソース数が最小の子問題に割り当てる」か、「工程数が最小の子問題に割り当てる」か、何れかのオプションを選択可能である。
【0075】
(3)工程の割り当て単位は、各工程をどの単位で割り当てるかを規定するものであり、例えば、「順序の制約条件で連結した工程単位で割り当て」するか、「工程単位で割り当て」するか、何れかのオプションを選択可能である。例えば、
図5に示される部門1の工程a1と、部門2の工程b1は順序の制約条件が設定されている。このため、「順序の制約条件で連結した工程単位で割り当て」するオプションが選択されている場合、工程a1および工程b1の両方が同じ子問題に割り当てられる。一方、「工程単位で割り当て」するオプションが選択されている場合、工程a1と工程b1とは異なる子問題に割り当てられてもよい。
【0076】
子問題の問題規模(割り当てされた工程の数)にばらつきが生じると、問題規模の大きい子問題についてはエージェント12における計算時間が長くなる。このため、上位部門の担当者は、各子問題の問題規模が均一となるように、オーダ内容に応じて分割条件を変更する。また、上位部門の担当者は、分割条件を何通りか試して、最終的な条件を決定してもよい。
【0077】
図11は、本開示の第2の実施形態に係る問題分割処理を説明するための第1の図である。
図12は、本開示の第2の実施形態に係る問題分割処理を説明するための第2の図である。
図13は、本開示の第2の実施形態に係る問題分割処理を説明するための第3の図である。
図14は、本開示の第2の実施形態に係る問題分割処理を説明するための第4の図である。
図15は、本開示の第2の実施形態に係る問題分割処理を説明するための第5の図である。
ここでは、
図11~
図15を参照しながら、分割処理の詳細について説明する。例えば、分割条件について、(1)問題の分割数:「2」、(2)割り当てルール:「工程数が最小の子問題に割り当て」、(3)割り当て単位:「工程単位」が設定されているとする。
【0078】
また、分割処理部103は、
図11に示すように、全体スケジューリング問題の定義情報から、オーダに含まれる工程、リソースの構成D2を抽出する。また、分割処理部103は、
図12に示すように、全体スケジューリング問題の定義情報から、各リソース(機械)の数量を示すリソース定義D3を抽出する。
【0079】
まず、
図13に示すように、分割処理部103はリソース定義D3に示される各リソースについて、数量を昇順で並び替える(ステップS23-1)。また、分割処理部103は、並び替えたリソース定義D3から、数量が最小のリソースを選択する(ステップS23-2)。
図13の例では、分割処理部103は、機械M3を選択する。
【0080】
次に、
図14に示すように、分割処理部103は、選択した機械M3を使う工程を、工程数が最小(現時点では0個)の子問題P1に割り当てる(ステップS23-3)。
図14の例では、分割処理部103は、機械M3を使う工程J1、J2を子問題P1に割り当てる。このとき、分割処理部103は、
図14の例のように、各子問題にどの工程を割り当てたかを記録する子問題リストD4を作成してもよい。
【0081】
また、
図15に示すように、子問題P1に割り当て済みの工程J1は、機械M3の他に、機械M1も使用する。このため、分割処理部103は、割り当て済みの工程J1が使用する機械M1を使う工程を、子問題P1にさらに割り当てる(ステップS23-4)。例えば、図示は略すが、他の工程Jnにおいて機械M1を使用する場合は、この工程Jnを子問題P1に割り当てる。
【0082】
分割処理部103は、全ての工程の割り当てが完了するまで、
図13~
図15のステップS23-2~S23-4を繰り返し実行する。上記した例では、工程J1、J2(機械M1、機械M3を使用する工程)を子問題P1に割り当てたあと、分割処理部103は
図13のステップS23-2に戻り、割り当て済みの機械M1、M3の次に数量が最小である機械M2を選択する。そして、分割処理部103は、
図14のステップS23-3において、機械M2を使用する工程J3を、工程数が最小の子問題P2に割り当てる。このようにして、分割処理部103は、オーダに含まれる全ての工程について、何れかの子問題に割り当てる。
【0083】
次に、メインモジュール10およびエージェント12は、サブモジュール11で作成された仮の全体計画(暫定計画)において、制約条件に違反する違反工程を修正する違反解消処理を行う(ステップS24)。なお、第1の実施形態では、メインモジュール10の変更部102は、
図4の各ステップにおいて、違反工程を担当する部門のスケジューリング問題の制約条件を変更した。しかしながら、本実施形態に係る変更部102は、
図4の各ステップにおいて、違反工程が割り当てられた子問題の制約条件を変更する。また、エージェント12のスケジューリング部120は、変更後の子問題を解いて、子問題に割り当てられた各工程の開始時間を修正した部分スケジュールを作成する。その他の処理については、第1の実施形態と同じである。
【0084】
また、変更部102は、制約条件の違反が全て解消された暫定計画を全体計画として出力し(ステップS25)、処理を終える。
【0085】
(作用、効果)
以上のように、本実施形態に係る計画システム1は、全体スケジューリング問題の一部を緩和した緩和問題を解いて暫定計画を作成する最適化計算部110と、全体スケジューリング問題を複数の子問題に分割して、各工程を何れかの子問題に割り当てる分割処理部103と、暫定計画における違反工程が割り当てられた子問題の制約条件を変更する変更部102と、を備える。また、スケジューリング部120は、変更後の子問題を解くことにより、子問題に割り当てられた工程の開始時間を修正した部分スケジュールを作成する。
【0086】
このようにすることで、計画システム1は、制約条件を緩和して最適化計算を行うことにより、膨大な工程数を有するオーダ全体の暫定計画を計算する時間を短縮することができる。また、計画システム1は、全体スケジューリング問題を複数の子問題に分割して、違反工程を解消した部分スケジュールを作成することにより、緩和した制約条件を含む全ての制約条件を全て満たすように、各部門のスケジュールを調整することができる。この結果、計画システム1は、リードタイムが短く、且つ部門間の整合性が取れた全体計画を自動的に短時間で生成することができる。
【0087】
(コンピュータ構成)
図16は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図16に示すように、コンピュータ90は、プロセッサ91、メインメモリ92、ストレージ93、および、インタフェース94を備える。
【0088】
上述のメインモジュール10、サブモジュール11、およびエージェント12は、それぞれ、コンピュータ90に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ93に記憶されている。プロセッサ91は、プログラムをストレージ93から読み出してメインメモリ92に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ91は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ92に確保する。
【0089】
プログラムは、コンピュータ90に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージに既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、コンピュータは、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)等が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【0090】
ストレージ93の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ93は、コンピュータ90のバスに直接接続された内部メディアであってもよいし、インタフェース94または通信回線を介してコンピュータ90に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ90に配信される場合、配信を受けたコンピュータ90が当該プログラムをメインメモリ92に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ93は、一時的でない有形の記憶媒体である。
【0091】
以上のとおり、本開示に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0092】
<付記>
上述の実施形態に記載の計画システム、計画方法、およびプログラムは、例えば以下のように把握される。
【0093】
(1)第1の態様によれば、複数の部門に跨って実施するオーダの全体計画を作成する計画システム1は、部門別に設定される定義情報であって、オーダにおいて各部門が担当する工程の順序、工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に工程の開始時間を設定した部門別作業スケジュールを作成するスケジューリング部120と、全ての部門の定義情報を統合した全体スケジューリング問題を取得する取得部101と、全体スケジューリング問題の制約条件の一部を緩和した緩和問題を解いて、オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部110と、暫定計画において制約条件に違反する違反工程がある場合に、違反工程を担当する部門の部門別スケジューリング問題について、違反工程の着手可能日に関する制約条件を変更する変更部102と、を備え、スケジューリング部120は、変更された部門別スケジューリング問題を解いて、違反工程を担当する部門の部門別作業スケジュールを更新する。
【0094】
このようにすることで、計画システム1は、制約条件を緩和して最適化計算を行うことにより、膨大な工程数を有するオーダ全体の暫定計画を計算する時間を短縮することができる。また、計画システム1は、暫定計画の計算後に、違反工程を担当する部門のスケジューリング問題の制約条件を変更して、部門別の作業スケジュールを再計算することにより、緩和した制約条件を含む全ての制約条件を全て満たすように、各部門のスケジュールを調整することができる。この結果、計画システム1は、リードタイムが短く、且つ部門間の整合性が取れた全体計画を自動的に短時間で生成することができる。
【0095】
(2)第2の態様によれば、第1の態様に係る計画システム1において、変更部102は、全体スケジューリング問題の制約条件において、第1部門の第1工程の前または後に、第1部門とは異なる第2部門の第2工程を実施することが設定されており、第2工程の開始時間が固定されている場合に、第1部門の部門別スケジューリング問題について、第1工程および第2工程の順序に関する制約条件を追加する。
【0096】
このようにすることで、計画システム1は、第2部門の作業スケジュールを再計算する際に、第1部門の工程と、第2部門の工程との順序の制約条件に対する違反を抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0097】
(3)第3の態様によれば、第1または第2の態様に係る計画システム1において、変更部102は、暫定計画において、先行工程と、先行工程の完了後に実施すべき後続工程との少なくとも一部の実施期間が重複する違反が発生した場合に、後続工程を担当する部門の部門別スケジューリング問題について、後続工程の着手可能日に関する制約条件を先行工程の終了時間以降となるように変更する。
【0098】
このようにすることで、計画システム1は、順序の制約条件に対する違反を解消することができる。
【0099】
(4)第4の態様によれば、第3の態様に係る計画システム1において、変更部102は、後続工程の開始時間を変更した場合に、後続工程よりも後の工程を担当する部門の部門別スケジューリング問題について、後続工程の後の工程の着手可能日に関する制約条件を、後続工程の着手可能日の変更量に応じて変更する。
【0100】
このようにすることで、計画システム1は、後続工程の着手可能日の変更により、以降の工程において違反が発生することを抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0101】
(5)第5の態様によれば、第1から第4の何れか一の態様に係る計画システム1において、変更部102は、複数の違反工程のうち、最も開始時間が早い違反工程よりも前の違反なし工程を担当する部門の部門別スケジューリング問題について、違反なし工程の開始時間を固定する制約条件を追加する。
【0102】
このようにすることで、計画システム1は、違反工程の開始時間(着手可能日)の変更などの調整を行ったことにより、違反なし工程が制約条件に違反してしまうことを抑制することができる。これにより、各部門の作業スケジュールの調整回数を低減することができる。
【0103】
(6)第6の態様によれば、複数の部門に跨って実施するオーダの全体計画を作成する計画システム1は、全ての部門の作業スケジュールに関する定義情報であって、少なくともオーダにおいて各部門が担当する工程の順序およびリソースに関する制約条件を含む定義情報を統合した全体スケジューリング問題を取得する取得部101と、全体スケジューリング問題の制約条件の一部を緩和した緩和問題を解いて、オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成する最適化計算部110と、全体スケジューリング問題を複数の子問題に分割し、工程それぞれを何れかの子問題に割り当てる分割処理部103と、暫定計画において制約条件に違反する違反工程がある場合に、違反工程の開始時間を変更して、違反工程が割り当てられた子問題を変更する変更部102と、子問題を解いて、子問題に割り当てられた工程の開始時間を修正した部分スケジュールを作成するスケジューリング部120と、を備える。
【0104】
このようにすることで、計画システム1は、制約条件を緩和して最適化計算を行うことにより、膨大な工程数を有するオーダ全体の暫定計画を計算する時間を短縮することができる。また、計画システム1は、全体スケジューリング問題を複数の子問題に分割して、違反工程を解消した部分スケジュールを作成することにより、緩和した制約条件を含む全ての制約条件を全て満たすように、各部門のスケジュールを調整することができる。この結果、計画システム1は、リードタイムが短く、且つ部門間の整合性が取れた全体計画を自動的に短時間で生成することができる。
【0105】
(7)第7の態様によれば、複数の部門に跨って実施するオーダの全体計画を作成する計画方法は、部門別に設定される定義情報であって、オーダにおいて各部門が担当する工程の順序、工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に工程の開始時間を設定した部門別作業スケジュールを作成するステップと、全ての部門の定義情報を統合した全体スケジューリング問題を取得するステップと、全体スケジューリング問題の制約条件の一部を緩和した緩和問題を解いて、オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成するステップと、暫定計画において制約条件に違反する違反工程がある場合に、違反工程を担当する部門の部門別スケジューリング問題について、違反工程の着手可能日に関する制約条件を変更するステップと、を有し、部門別作業スケジュールを作成するステップは、変更された部門別スケジューリング問題を解いて、違反工程を担当する部門の部門別作業スケジュールを更新する。
【0106】
(8)第8の態様によれば、プログラムは、複数の部門に跨って実施するオーダの全体計画を作成する計画システムに、部門別に設定される定義情報であって、オーダにおいて各部門が担当する工程の順序、工程の着手可能日、およびリソースに関する制約条件を含む定義情報からなる部門別スケジューリング問題を解いて、部門別に工程の開始時間を設定した部門別作業スケジュールを作成するステップと、全ての部門の定義情報を統合した全体スケジューリング問題を取得するステップと、全体スケジューリング問題の制約条件の一部を緩和した緩和問題を解いて、オーダにおける全ての工程の開始時間を仮に設定した暫定計画を作成するステップと、暫定計画において制約条件に違反する違反工程がある場合に、違反工程を担当する部門の部門別スケジューリング問題について、違反工程の着手可能日に関する制約条件を変更するステップと、を実行させ、部門別作業スケジュールを作成するステップは、変更された部門別スケジューリング問題を解いて、違反工程を担当する部門の部門別作業スケジュールを更新する。
【符号の説明】
【0107】
1 計画システム
10 メインモジュール
101 取得部
102 変更部
103 分割処理部
11 サブモジュール
110 最適化計算部
12、12A、12B、12C エージェント
120 スケジューリング部
20 ブローカ