(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024093406
(43)【公開日】2024-07-09
(54)【発明の名称】生産計画作成装置、生産計画作成方法およびプログラム
(51)【国際特許分類】
G05B 19/418 20060101AFI20240702BHJP
G06Q 50/04 20120101ALI20240702BHJP
【FI】
G05B19/418 Z
G06Q50/04
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022209771
(22)【出願日】2022-12-27
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(72)【発明者】
【氏名】森本 陽
(72)【発明者】
【氏名】古賀 祐一
(72)【発明者】
【氏名】牧野 和久
【テーマコード(参考)】
3C100
5L049
5L050
【Fターム(参考)】
3C100AA12
3C100AA16
3C100AA18
3C100BB03
3C100BB13
3C100BB17
5L049CC04
5L050CC04
(57)【要約】
【課題】生産計画を効率的に作成する。
【解決手段】生産計画作成装置は、複数のジョブを含む生産スケジュールを作成する装置であって、ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化して設計変数を算出する生産スケジュール最適化部と、生産スケジュール最適化部の算出結果に基づいて生産スケジュールを出力する出力部とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のジョブを含む生産スケジュールを作成する装置であって、
前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化して前記設計変数を算出する生産スケジュール最適化部と、
前記生産スケジュール最適化部の算出結果に基づいて生産スケジュールを出力する出力部と
を備える生産計画作成装置。
【請求項2】
前記数理モデルは、計画期間を作業員のシフトで分割し、前記ジョブが作業不可能な前記シフトを前記ジョブの割り付け対象から除外するとともに、前記シフトを使用可能なリソースの組み合わせ毎に複数の区間に分割し、前記ジョブを作業するのに必要なリソースがすべて使用可能な前記区間のみを前記ジョブの割り付け対象とする
請求項1に記載の生産計画作成装置。
【請求項3】
前記数理モデルは、第1ジョブが先に着手し、その後、第2ジョブが着手したことを示す第1の0-1変数と、前記第1ジョブの完了前に前記第2ジョブが着手したことを示す第2の0-1変数とを用いて、前記第1ジョブと前記第2ジョブの時間的位置関係を算出する
請求項1または2に記載の生産計画作成装置。
【請求項4】
前記制約条件は、段取発生の有無を示す変数の値に基づき段取時間を考慮して作業時間を規定する条件を含む
請求項1または2に記載の生産計画作成装置。
【請求項5】
前記制約条件は、残業時間の上限を制約する条件を含む
請求項1または2に記載の生産計画作成装置。
【請求項6】
前記制約条件は、前記ジョブの割付および解放の設定を制約する条件を含む
請求項1または2に記載の生産計画作成装置。
【請求項7】
前記制約条件は、前記ジョブの前後関係の設定を制約する条件を含む
請求項1または2に記載の生産計画作成装置。
【請求項8】
複数のジョブを含む生産スケジュールを作成する方法であって、
前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化して前記設計変数を算出するステップと、
前記算出の結果に基づいて生産スケジュールを出力するステップと
を含む生産計画作成方法。
【請求項9】
複数のジョブを含む生産スケジュールを作成するためのプログラムであって、
前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化して前記設計変数を算出するステップと、
前記算出の結果に基づいて生産スケジュールを出力するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、生産計画作成装置、生産計画作成方法およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、製鋼工場において、作業の処理順や処理時間などの制約条件を考慮して、コストおよび生産性が最適となる操業スケジュールを混合整数計画法により作成する操業スケジュール作成装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1には、例えば作業員の休憩時間に作業を中断および再開するような場合について言及がなく、特許文献1に記載されている操業スケジュール作成装置では、例えば作業の中断や再開が発生するような生産計画を効率的に作成することができないおそれがあるという課題があった。
【0005】
本開示は、上記課題を解決するためになされたものであって、生産計画を効率的に作成することができる生産計画作成装置、生産計画作成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本開示に係る生産計画作成装置は、複数のジョブを含む生産スケジュールを作成する装置であって、前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化する前記設計変数を算出する生産スケジュール最適化部と、前記生産スケジュール最適化部の算出結果に基づいて生産スケジュールを出力する出力部とを備える。
【0007】
本開示に係る生産計画作成方法は、複数のジョブを含む生産スケジュールを作成する方法であって、前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化する前記設計変数を算出するステップと、前記算出の結果に基づいて生産スケジュールを出力するステップとを含む。
【0008】
本開示に係るプログラムは、複数のジョブを含む生産スケジュールを作成するためのプログラムであって、前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化する前記設計変数を算出するステップと、前記算出の結果に基づいて生産スケジュールを出力するステップとをコンピュータに実行させる。
【発明の効果】
【0009】
本開示の生産計画作成装置、生産計画作成方法およびプログラムによれば、生産計画を効率的に作成することができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の実施形態に係る生産計画作成装置の構成例を示すブロック図である。
【
図2】本開示の実施形態に係る生産計画作成装置の動作例を示すフローチャートである。
【
図3】本開示の実施形態に係る生産計画作成装置の動作例を説明するための模式図である。
【
図4】本開示の実施形態に係る生産計画作成装置の動作例を説明するための模式図である。
【
図5】本開示の実施形態に係る生産計画作成装置の動作例を説明するための模式図である。
【
図6】本開示の実施形態に係る目的関数を説明するための模式図である。
【
図7】本開示の実施形態に係る目的関数を説明するための模式図である。
【
図8】本開示の実施形態に係る設計変数を説明するための模式図である。
【
図9】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図10】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図11】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図12】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図13】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図14】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図15】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図16】本開示の実施形態に係る数理モデルを説明するための模式図である。
【
図17】本開示の実施形態に係る制約条件を説明するための模式図である。
【
図18】本開示の実施形態に係る制約条件1を説明するための模式図である。
【
図19】本開示の実施形態に係る制約条件2を説明するための模式図である。
【
図20】本開示の実施形態に係る制約条件3を説明するための模式図である。
【
図21】本開示の実施形態に係る制約条件4を説明するための模式図である。
【
図22】本開示の実施形態に係る制約条件4を説明するための模式図である。
【
図23】本開示の実施形態に係る制約条件4を説明するための模式図である。
【
図24】本開示の実施形態に係る制約条件4を説明するための模式図である。
【
図25】本開示の実施形態に係る制約条件4を説明するための模式図である。
【
図26】本開示の実施形態に係る制約条件4を説明するための模式図である。
【
図27】本開示の実施形態に係る制約条件5を説明するための模式図である。
【
図28】本開示の実施形態に係る制約条件5を説明するための模式図である。
【
図29】本開示の実施形態に係る制約条件5を説明するための模式図である。
【
図30】本開示の実施形態に係る制約条件5を説明するための模式図である。
【
図31】本開示の実施形態に係る制約条件5を説明するための模式図である。
【
図32】本開示の実施形態に係る制約条件6を説明するための模式図である。
【
図33】本開示の実施形態に係る制約条件6を説明するための模式図である。
【
図34】本開示の実施形態に係る制約条件6を説明するための模式図である。
【
図35】本開示の実施形態に係る制約条件6を説明するための模式図である。
【
図36】本開示の実施形態に係る制約条件6を説明するための模式図である。
【
図37】本開示の実施形態に係る制約条件6を説明するための模式図である。
【
図38】本開示の実施形態に係る制約条件7を説明するための模式図である。
【
図39】本開示の実施形態に係る制約条件7を説明するための模式図である。
【
図40】本開示の実施形態に係る制約条件7を説明するための模式図である。
【
図41】本開示の実施形態に係る制約条件7を説明するための模式図である。
【
図42】本開示の実施形態に係る制約条件7を説明するための模式図である。
【
図43】本開示の実施形態に係る制約条件7を説明するための模式図である。
【
図44】本開示の実施形態に係る制約条件8を説明するための模式図である。
【
図45】本開示の実施形態に係る制約条件8を説明するための模式図である。
【
図46】本開示の実施形態に係る制約条件9を説明するための模式図である。
【
図47】本開示の実施形態に係る制約条件9を説明するための模式図である。
【
図48】本開示の実施形態に係る制約条件9を説明するための模式図である。
【
図49】本開示の実施形態に係る制約条件10を説明するための模式図である。
【
図50】本開示の実施形態に係る制約条件10を説明するための模式図である。
【
図51】本開示の実施形態に係る制約条件10を説明するための模式図である。
【
図52】本開示の実施形態に係る制約条件10を説明するための模式図である。
【
図53】本開示の実施形態に係る制約条件10を説明するための模式図である。
【
図54】本開示の実施形態に係る制約条件11を説明するための模式図である。
【
図55】本開示の実施形態に係る制約条件11を説明するための模式図である。
【
図56】本開示の実施形態に係る制約条件11を説明するための模式図である。
【
図57】本開示の実施形態に係る制約条件11を説明するための模式図である。
【
図58】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
(生産計画作成装置の構成および動作)
以下、本開示の実施形態に係る生産計画作成装置、生産計画作成方法およびプログラムについて、
図1~
図5を参照して説明する。
図1は、本開示の実施形態に係る生産計画作成装置の構成例を示すブロック図である。
図2は、本開示の実施形態に係る生産計画作成装置の動作例を示すフローチャートである。
図3は、本開示の実施形態に係る生産計画作成装置の動作例を説明するための模式図である。
図4は、本開示の実施形態に係る生産計画作成装置の動作例を説明するための模式図である。
図5は、本開示の実施形態に係る生産計画作成装置の動作例を説明するための模式図である。なお、各図において同一または対応する構成には同一の符号を用いて説明を適宜省略する。
【0012】
図1に示す本実施形態に係る生産計画作成装置10は、複数のジョブを含む生産スケジュールを作成する装置である。生産計画作成装置10は、例えば、パーソナルコンピュータ、タブレット端末等のコンピュータを用いて構成することができる。
図1に示す生産計画作成装置10は、コンピュータ、その周辺装置等のハードウェアと、コンピュータが実行するプログラム等のソフトウェアとの組み合わせ等から構成される機能的構成として、データ取得部1と、計画部2と、出力部6とを備える。また、計画部2は、制約条件定義部3と、目的関数定義部4と、生産スケジュール最適化部5とを含む。また、生産スケジュール最適化部5は、数理モデル7を含む。
【0013】
データ取得部1は計画作成に必要な情報(オーダ、ジョブ、リソース、他)を取得し、最適化で扱えるよう整形する。
図1に示す例では、データ取得部1は、オーダ情報、ジョブ情報、リソース情報、リソース割付情報、前後関係情報、段取情報、同期情報、カレンダ情報、シフト情報等を含む入力データ20を取得する。
【0014】
オーダ情報は、例えば、オーダID(識別符号)、オーダの着手可能日時、オーダの納期等を示す情報を含む。ジョブ情報は、オーダID、ジョブID、作業種別(通常の作業か段替え作業かの別を示す)、作業名称、着手可能日時、納期等を示す情報を含む。リソース情報は、リソースID、リソース種別(設備、治具、作業員の別を示す)、リソース名称、カレンダID(稼働時間帯を表すカレンダのID)、残業上限ID(残業時間上限のID)、段替テーブルID(リソースが従う段替ルール)等を示す情報を含む。
【0015】
リソース割付情報は、オーダID、ジョブID、モード番号(作業方法(モード)の番号)、リソースID(割り付け/解放するリソース)、割付種別、割付数量等を示す情報を含む。なお、割付種別は、割り付け/解放の種別を示す。本実施形態では、割り付け種別は、「allocate」、「free-end」、「allocate-free」、および「free-after」の4種類を定義する。「allocate」は、作業着手に割り付ける。「free-end」は、作業完了時に解放する。「allocate-free」は、作業着手時に割り付けて、完了時に解放する。「free-after」は、作業着手時に、必要な他のリソースを割り付けられたら、解放する。
【0016】
前後関係情報は、オーダID、前後関係種別、先行ジョブID、後続ジョブID、時間オフセット等を示す情報を含む。なお、前後関係種別は、前後関係の種別を表す。本実施形態では、「FS」、「FF」、「SS」、「SF」および「並手作業禁止」の5種類を定義する。「FS」は、作業完了後に、後続作業を着手する。「FF」は、先行作業完了後に、後続作業を完了する。「SS」は、先行作業着手後に、後続作業を着手する。「SF」は、先行作業着手後に、後続作業を完了する。「並手作業禁止」は、両作業は、同時に作業できない(作業時間帯がまったく重複しない)。
【0017】
段取情報は、段替テーブルのID、名称、プロパティ値(前)(品名に付与された属性情報の値(変化前))、プロパティ値(後)(品名に付与された属性情報の値(変化後))、段替時間等を示す情報を含む。同期情報は、同期リソースのグループ(同期させたいリソースのグループごとにつけるID)、リソース(上記グループに属するリソースID)等を示す情報を含む。カレンダ情報は、カレンダID、日付(設定対象の日付)、稼働フラグ(稼働日/非稼働日)、シフトID(選択可能なシフトID)等を示す情報を含む。シフト情報は、シフトID、シフト開始時間、シフト終了時間、残業フラグ(残業時間帯を表すフラグ)等を示す情報を含む。
【0018】
制約条件定義部3は、データ取得部1が取得した情報を基に、納期や着手可能日時等の制約条件を定義する。目的関数定義部4は、データ取得部1が取得した情報を基に納期遅延最小化などの目的関数を定義する。生産スケジュール最適化部5は、制約条件定義部3で定義した制約条件を遵守し、目的関数定義部4で定義した目的関数を最適化する。本実施形態において生産スケジュール最適化部5は、ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数とジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデル7を用いて、制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化する設計変数を算出する。
数理モデル7は、例えば、混合整数計画法に対応したモデルである。
【0019】
出力部6は、生産スケジュール最適化部5が最適化計算したことによって得られた結果に基づいて作業計画を出力する。すなわち、出力部6は、生産スケジュール最適化部5の算出結果に基づいて生産スケジュールを表す作業計画情報30を出力する。作業計画情報30は、例えば、ジョブの着手・完了日時、ジョブのシフト別着手・完了日時、ジョブのリソース割付結果(ジョブに割り当てられたリソースの情報)、オーダの着手・完了日時等を示す情報を含む。
【0020】
図2は、
図1に示す生産計画作成装置10の動作例を示す。例えば操作者の指示に応じて
図2に示す処理が開始されると、データ取得部1が、入力データ20を入力する(ステップS1)。次に、制約条件定義部3が、制約条件を定義する(ステップS2)。次に、目的関数定義4が、目的関数を定義する(ステップS3)。次に、配置エリア計画最適化部5が、生産スケジュール最適化処理を実行する(ステップS4)。次に出力部6が、生産スケジュール最適化処理で作成された生産スケジュールを示す作業計画情報30を出力する(ステップS5)。
【0021】
図3~
図5は、
図1に示す生産計画作成装置10の動作イメージを示す。
図3~
図5は、3オーダの生産計画を作成する例を示す。
図3は、入力情報のイメージを示す。
図4は、生産スケジュールの自動計算のイメージを示す。
図4は、出力情報のイメージを示す。オーダ1とオーダ3は、ジョブ1(加工)とジョブ2(組立)が必要となるオーダである。オーダ2は、ジョブ1(加工)とジョブ2(加工)とジョブ3(組立)が必要となるオーダである。また、
図4に示す例では、生産スケジュールを2案自動で作成、その目的関数値を評価し、最小となる計画を最適な案として案2が選定される。また、
図4に示す例では、生産スケジュール(各工程の着手・完了時間と使用リソース)とリソース山積が出力される。
【0022】
(目的関数)
次に、
図6および
図7を参照して目的関数の例について説明する。
図6および
図7は、本開示の実施形態に係る目的関数を説明するための模式図である。本実施形態では、3 種類の各目的(納期遅延量、メイクスパンおよび段取回数)を表す評価値を最小化による改善できるものとして定義し、それに個別の重みを付し、その総和を目的関数とする。
図6に示すように、納期遅延量は、各工程の納期を超過時間の総和を表す。メイクスパンは、各オーダの着手時刻から完了時刻までの時間の全オーダで総和をとったものを表す。段取回数は、段取の発生回数を表す。また、
図7に示すように、
図6に示す評価値の集合をAとし、各評価値を識別する番号をaと定義する。各評価値faに重み係数waによる重みを付して、その総和を最小化する式(A1)を目的関数とする。なお、重み係数waを「0」にした場合、その評価値を無視することができる。目的関数は、例えば、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係るものとすることができる。ユーザは、目的別に各評価値の重みを手動で設定することが可能である。
【0023】
(数理モデル)
図8~
図16を参照して数理モデル7について説明する。
図8は、本開示の実施形態に係る設計変数を説明するための模式図である。
図9~
図16は、本開示の実施形態に係る数理モデルを説明するための模式図である。本実施形態において、数理モデル7は、スケジューリングモデルであって、計画対象とするジョブに関して、納期や着手可能日時等の制約条件を遵守し、設計変数(着手・完了日時、中断・再開日時、作業モード)の値を決定するモデルである。設計変数は、スケジューリングモデルで決定される定数を格納する変数である。本実施形態において設計変数は、作業モードを表す変数と、作業着手・中断・再開・完了日時を表す変数とを含む。作業モードを表す変数は、ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す。作業着手・中断・再開・完了日時を表す変数は、各ジョブが着手・完了、または休憩等で作業を中断、その作業を再開する日時を表す。
【0024】
図9は、数理モデル7を用いたスケジューリング処理の例のイメージを示す。
図9は、2つの作業モードの候補を持つジョブaをスケジュールに割り付ける例を示す。
図9に示す例では、作業モード候補1と作業モード候補2から作業モード候補2が選択され、ジョブaの着手、中断、再開および完了日時が割り付けられている。この例では、休憩時間を挟んで中断日時と再開日時が設定されている。なお、作業モード候補1は使用リソースが設備Xを1台で作業時間が5時間である。また、作業モード候補2は使用リソースが設備Yを1台で作業時間が3時間である。
【0025】
次に、
図10および
図11を参照して、数理モデル7における工夫1について説明する。数理モデルの工夫1では、割付範囲の絞込みを行った。ジョブの割付範囲を絞込み、計算時間を高速化するため、下記2つの工夫1-1および1-2をモデルで考慮した。
【0026】
工夫1-1:
図11に示すように、計画期間をリソースのシフト(例 昼勤、夜勤)で分割し、ジョブが作業不可能なシフトを割付対象から除外した。
【0027】
工夫1-2:
図11に示すように、シフト別に使用可能なリソースの組合せで区間に分割し、ジョブを作業するために必要なリソースが全て使用可能な区間のみを割付対象とした。なお、
図11に示す例では、シフト1を8個の区間に分割している。なお、区間番号は、シフト別に、使用可能な作業員の組合せが変わるタイミングで分割した単位を表す。
【0028】
図10は、例として、作業者1と作業者3を使用するジョブaと作業者1と作業者2を使用するジョブbの着手~完了時間を決定する手順を手順(1)~(3)として示す。(1)では、ジョブの作業者が勤務可能なシフト1を対象に割当てを検討する。(2)では、ジョブの作業に必要な作業者が全て稼働可能な時間帯(区間)を対象に割当を検討する。(3)では、(2)の区間でユーザ指定の制約を遵守する区間に割当を行う。
【0029】
次に、
図12~
図16を参照して、数理モデル7における工夫2について説明する。数理モデルの工夫2では、ジョブ間における時間的位置関係の効率的な判断方法として、ジョブ間の位置関係を判断する0-1変数により、リソースの使用可否判断の都度、ジョブの着手・完了時刻を比較する手間を削減する。
【0030】
2つのジョブ(ジョブ1とジョブ2)間の位置関係は下記2つの変数(1)と変数(2)の値の組合せで表現できる。
【0031】
変数(1)は、ジョブ1着手後にジョブ2が着手したことを表す0-1変数(z1)である。
【0032】
変数(2)は、ジョブ1完了前にジョブ2が着手したことを表す0-1変数(z2)である。
【0033】
変数(1)と変数(2)を用いて位置関係を表現した例を
図12に示す。
図12では、位置関係のパターン一覧(3種類)をまとめて示した。実線の矢印はジョブ1からジョブ2について変数(1)および変数(2)の判定をした場合である。破線の矢印はその逆の場合である。3種類のパターンは、ジョブ1が先に着手し、ジョブ2と同時に作業する時間が無い場合と、ジョブ1が先に着手し、ジョブ2と同時に作業する時間がある場合と、ジョブ1とジョブ2が同時に着手する場合である。
【0034】
図13と
図14は、変数(1)と変数(2)それぞれの条件が成り立つ場合に1をとる変数z1およびz2を、不等式でモデル中に定義した例を示す。
図13に示す式A2において、第1項はジョブ1の着手日時を表す変数である。第2項はジョブ2の着手日時を表す変数である。第3項は変数(1)の条件が成り立つ場合に1となり、それ以外は0となる変数である。また、変数BigMは、非常に大きな定数値を表す。これにより、左辺が正になる場合、制約を遵守するため、第3項の値が1をとることとなる。
【0035】
また、
図14に示す式A3において、第1項はジョブ1の完了日時を表す変数である。第2項はジョブ2の着手日時を表す変数である。第3項は変数(2)の条件が成り立つ場合に1となり、それ以外は0となる変数である。また、変数BigMは、非常に大きな定数値を表す。これにより、左辺が正になる場合、制約を遵守するため、第3項の値が1をとることとなる。
【0036】
図15は、例として、z1[ジョブ1、ジョブ2]=1の場合を模式的に示す。ジョブ1が開始した後に、ジョブ2が開始している。また、
図16は、例として、z2[ジョブ1、ジョブ2]=1の場合を模式的に示す。ジョブ1が完了する前に、ジョブ2が開始している。
【0037】
(制約条件)
次に、
図17~
図57を参照して制約条件および制約条件の定式化について説明する。
図17は、本開示の実施形態に係る制約条件を説明するための模式図である。
図18は、本開示の実施形態に係る制約条件1を説明するための模式図である。
図19は、本開示の実施形態に係る制約条件2を説明するための模式図である。
図20は、本開示の実施形態に係る制約条件3を説明するための模式図である。
図21~
図26は、本開示の実施形態に係る制約条件4を説明するための模式図である。
図27~
図31は、本開示の実施形態に係る制約条件5を説明するための模式図である。
図32~
図37は、本開示の実施形態に係る制約条件6を説明するための模式図である。
図38~
図43は、本開示の実施形態に係る制約条件7を説明するための模式図である。
図44および
図45は、本開示の実施形態に係る制約条件8を説明するための模式図である。
図46~
図48は、本開示の実施形態に係る制約条件9を説明するための模式図である。
図49~
図53は、本開示の実施形態に係る制約条件10を説明するための模式図である。
図54~
図57は、本開示の実施形態に係る制約条件11を説明するための模式図である。
【0038】
図17に示すように本実施形態では11個の制約条件を設定する。
図17に示すように、制約条件1は、モードの指定の制約条件であり、ジョブは、使用リソースと作業時間の組合せを表す作業モードを必ず一つ選択するという制約条件である。
【0039】
制約条件2は、着手可能日時の制約条件であり、ジョブが最短で着手可能な日時は決まっているという制約条件である。
【0040】
制約条件3は、納期の制約条件であり、ジョブの完了日時に期限が決まっているという制約条件である。
【0041】
制約条件4は、ジョブの割り付けジョブは、作業モードの作業時間、休憩時間での作業禁止を遵守して、必ずスケジュール期間中に割り付けられるという制約条件である。
【0042】
制約条件5は、リソース数リソース(作業者・設備・治具)を同時に使用可能な数量は決まっているという制約条件である。
【0043】
制約条件6は、リソース割付条件の制約条件であり、解放条件(Allocate Free・Allocate・Free-End・Free-After)を遵守して、ジョブは割り付けられるという制約条件である。
【0044】
制約条件7は、工程の順序関係の制約条件であり、ジョブは前後関係(SS・FS・SF・FF)を遵守して割り付けられるという制約条件である。
【0045】
制約条件8は、並行作業不可の制約条件であり、同時に作業することが禁止されているジョブは、同じ時間帯に割り付けられないという制約条件である。
【0046】
制約条件9は、段取り替えの制約条件であり、異なる製品間で治具を使用する場合、その治具を準備する時間(段取時間)を要するという制約条件である。
【0047】
制約条件10は、ジョブの着手・完了の同期の制約条件であり、複数のジョブが、例えば、熱処理や表面処理などのバッチ処理、または複数同時加工のマシニングセンタを同時に使用する場合は、必ず着手と完了のタイミングが同時になるという制約条件である。
【0048】
制約条件11は、残業時間の制約条件であり、月毎、日毎に各人に設定された定時を超過した時間を残業時間として計上するという制約条件である。
【0049】
図18~
図57を参照して、制約条件1~11の定式化について説明する。
図18は、制約条件1を定式化した式(1-1)を示す。第1項は、ジョブに関するモードの変数の総和を表す。第2項は、ジョブが作業モードを選択したか否かを表す0-1変数である。第3項は、ジョブが区間で開始していることを示す変数の総和を表す。第4項は、ジョブが区間で開始または再開しているか否かを表す0-1変数である。
【0050】
なお、本式および以下の各式において、添え字jはあるジョブを示す。添え字iはあるシフトを示す。添え字kはある区間を示す。添え字mはあるモード(作業モード)を示す。式(1-1)では、変数vの値の変化に応じて変数wの値が変化する。
【0051】
図19は、制約条件2を定式化した式(2-1)を示す。第1項は、着手日時を表す。第2項は、着手可能日時を表す。変数ρは、入力データ20に含まれる。
【0052】
図20は、制約条件3を定式化した式(3-1)を示す。変数fは、完了日時を表す。変数δは、納期を表す。変数dは、納期超過時間を表す。完了日時fが納期δより大きくなった場合、変数dにペナルティとして納期超過時間が設定される。
【0053】
図21は、ジョブ割り付けについての制約条件4の概要を示す。
図22~
図26は、制約条件4を定式化した式(4-1)、(4-2)、(4-3.1)、(4-3.2)および(4-4)を示す。
【0054】
図22に示す式(4-1)は、ジョブがスケジューリング期間中に必ず割当られることを制約する式であり、第1項が全区間の総和を表し、第2項が区間で作業を着手しているか否かを表す0-1変数である。
【0055】
図23に示す式(4-2)は、休憩時間における作業禁止を制約する式であり、第1項がジョブが作業不可能な区間の総和を表し、集合KRはジョブに対してリソースが使えない区間の集合を表す。第2項は、区間で作業を着手しているか否かを表す0-1変数である。第3項の「0」は、不等式を満たすために、第2項は全て0、つまり、休憩区間では作業を禁止することを表す。
【0056】
図24に示す式(4-3.1)は、着手、中断、再開、完了の順序を制約する式であり、着手日時を表す変数xは完了日時を表す変数f以下であることを制約する。式(4-3.1)は、着手/中断と再開/完了の順序はシフト別の着手日時と完了日時として各ジョブ、シフト別に定義する。
【0057】
図25に示す式(4-3.2)は、着手と再開、中断と完了の区別を着手/中断と再開/完了の順序はシフト別の着手日時と完了日時として定義することを表す。第1項は、ジョブが区間で開始または再開しているか否かを表す0-1変数である。第2項は、区間で作業を着手しているか否かを表す0-1変数である。第3項は、対象区間までのシフトで作業された回数を表す。
【0058】
図26に示す式(4-4)は、作業モード別にジョブの作業時間は決まっていることを制約する。式(4-4)によれば、作業時間は、完了時刻-着手時刻+着手~完了間に発生した作業の中断時間で制約される。第1項は、実際の作業時間を表す変数である。第2項は、作業モードの作業時間を表す変数である。第3項は、作業モードの選択有無を表す変数である。第4項は、段取時間(※段取りの発生条件は制約条件9に掲載)を表す。
【0059】
図27は、リソース競合の制約条件5の概要を示す。
図28~
図26は、制約条件4を定式化した式(5-1)、(5-1a)、(5-2)および(5-3)を示す。式(5-1a)は式(5-1)をリソースを個別に定義する場合に定式化を簡略化した式である。
【0060】
図27に示すように、制約条件5は、着手日時が早いジョブを優先的にリソースを割り当てる制約条件である。リソース使用数の上限判定について、例えば同時に使用可能な数量が2つのリソースを3つのジョブに割り当てる場合の流れは
図27のSTEP1~3で説明される。
【0061】
図28に示す式(5-1)は、リソースの取り合いについての式であり、2つのジョブについて、それぞれの作業モードと使用リソース別に定義する。第1項は、条件1といて、ジョブ1の開始日時よりもジョブ2が後に開始し、ジョブ1の完了日時よりも早くジョブ2が完了する場合に、2をとる変数である。第2項は、条件2として、2つのジョブが対象リソースを使用するモードで作業する場合に2をとる変数である。第3項は、条件1~2が成り立つ場合、ジョブ2はジョブ1のリソースを取り合うこととなり、不等式を満たすため、1をとる。
【0062】
図29に示す式(5-1a)は、第1項が条件1としてジョブ1の開始日時よりもジョブ2が後に開始し、ジョブ1の完了日時よりも早くジョブ2が完了する場合に、2をとる変数である。第2項が条件2として2つのジョブが対象リソースを使用するモードで作業する場合に2をとる変数である。第3項は、条件1~2が成り立つ場合、ジョブ2はジョブ1のリソースを取り合うこととなり、不等式を満たすため、1をとる。
【0063】
図30に示す式(5-2)は、モードで使用する作業員の人数を制約する式である。第1項が作業者グループを使用するモードに関する総和を表す。第2項が対象のシフトでジョブが使用する作業者の人数を表す。第3項が対象のシフトでジョブが使用する作業モードを表す。第4項が同じ作業者グループに所属する作業者に関する総和を表す。第5項が作業者を区間で使用するか否かを表す0-1変数である。
【0064】
図31に示す式(5-3)は、リソース数の上限を制約する式であり、ジョブ、作業モード、使用リソース別に定義される。第1項が、対象ジョブが対象リソースを使用するモードで作業する場合に、リソース使用数を加算すること、すなわち、不等式を成り立たせるために、第3項を超過する可能性がある場合には、対象ジョブが同時間帯にリソースrを使用しないように制約可能であることを表す。第2項が、対象ジョブよりも早く着手し、同時間帯に作業するジョブが使用するリソースの総和を表す。第3項が、リソースrを同時に使用可能な上限を表す。
【0065】
図32~
図33は、リソース割付についての制約条件6の概要を示す。本実施形態では、リソース割付として3種類(1)Allocate-free、(2)Allocate、Free-end,(3)Allocate、free-afterを定義する。なお、(1)は通常の割付を表すため定式化は不要。(2)と(3)について制約を定式化する。
図34~
図37は、制約条件6を定式化した式(6-1)および(6-2)を示す。なお、
図35は、式(6-1)における変数z2と3つのジョブとの対応関係の例を示す。
図37は、式(6-2)における変数z1および変数z2と3つのジョブとの対応関係の例を示す。
【0066】
図34に示す式(6-1)おいて第1項は条件1として条件が成立する場合、対象ジョブがallocateのジョブの開始よりも後で着手し、かつfree-endのジョブの完了よりも早く着手することを表す。第2項は条件2として条件が成立する場合、ジョブがリソースrを使用するモードで作業することを表す。第3項は第1項と第2項が成り立つ場合、その総和は5をとり、不等式を成り立たせるため、第3項は1となる。これは、対象ジョブとAllocate、free-endのジョブがリソースを取り合うことを表す。
【0067】
図36に示す式(6-2)おいて、第1項は、条件1として条件が成立する場合、対象ジョブがallocateのジョブの開始よりも後で着手し、かつfree-afterのジョブの着手よりも早く着手することを表す。条件2として条件が成立する場合、各ジョブがリソースrを使用するモードで作業することを表す。第3項は、第1項と第2項が成り立つ場合、その総和は5をとり、不等式を成り立たせるため、第3項は1となる。これは、対象ジョブとAllocate,free-afterのジョブがリソースを取り合うことを表す。
【0068】
図38~
図39は、工程の前後関係を制約する制約条件7について概要と用語を示す。制約条件7では、2つのジョブの着手と完了に関する制約を4種類(FS、SF、SS、FF)定義し、それぞれ定式化する。
【0069】
図40に示す式(7-1)は、前後関係FSを定義する。式(7-1)において変数fは先行ジョブの完了日時を表す。変数tsは待ち時間を表す。変数offset1はオフセットを表す。変数xは後続ジョブの着手日時を表す。なお、式(7-1.2)は、FSの時間に上限を設ける式である。式(7-1.2)は先行ジョブが完了してから、オフセット時間以内に次のジョブが着手することを制約する。
【0070】
図41に示す式(7-2)は、前後関係SFを定義する。式(7-2)において変数xは先行ジョブの着手日時を表す。変数offset1はオフセットを表す。変数fは後続ジョブの完了日時を表す。変数tsは後続ジョブの待ち時間を表す。なお、式(7-2.2)は、SFの時間に上限を設ける式である。式(7-2.2)は先行ジョブが完了してから、オフセット時間以内に次のジョブが着手することを制約する。
【0071】
図42に示す式(7-3)は、前後関係SFを定義する。式(7-3)において左辺の変数xは先行ジョブの着手日時を表す。変数offset1はオフセットを表す。右辺の変数xは後続ジョブの着手日時を表す。なお、式(7-3.2)は、SFの時間に上限を設ける式である。式(7-3.2)は先行ジョブが完了してから、オフセット時間以内に次のジョブが着手することを制約する。
【0072】
図43に示す式(7-4)は、前後関係FFを定義する。式(7-4)において左辺の変数fは先行ジョブの完了日時を表す。変数offset1はオフセットを表す。右辺の変数fは後続ジョブの完了日時を表す。変数tsは待ち時間を表す。なお、式(7-4.2)は、SSの時間に上限を設ける式である。式(7-4.2)は先行ジョブが完了してから、オフセット時間以内に次のジョブが着手することを制約する。
【0073】
図44は、並行作業不可の制約条件8の概要を示す。
図45は、制約条件8を定式化した式(8-1)を示す。式(8-1)において第1項はジョブ1の完了よりも早くジョブ2が着手している場合に1、それ以外は0をとる変数である。第2項はジョブ2の完了よりも早くジョブ1が着手している場合に1、それ以外は0をとる変数である。第3項は左辺が同時に成り立つ場合(左辺が2の場合)を禁止すれば、並行作業を禁止できたことになるため、左辺が1以下と制限されることを表す。
【0074】
図46は、段取替時間についての制約条件9の概要を示す。
図47は、制約条件9を定式化した式(9-1)を示す。また、
図48は、式(9-1)における変数z1と3つのジョブとの対応関係の例を示す。
図47に示す式(9-1)において、第1項は条件1として条件1が成立する場合、段取が発生する可能性のある2つのジョブの間に別ジョブが挟まれないことを制約する。第2項は条件2として条件2が成立する場合、先行ジョブが後続ジョブよりも先に着手していることを制約する。第3項は、条件3として条件3が成立する場合、段取が発生するモードで作業していることを制約する。第4項は、条件1~3が満たされる場合のみ、左辺が0以下となり、不等式を満たすために、本項が1をとる。つまり、この場合に、段取発生を表す。
【0075】
図49は、ジョブの着手および完了の同期についての制約条件10の概要を示す。
図50および
図52は、制約条件10を定式化した式(10-1)および式(10-2)を示す。また、
図51は、式(10-1)における変数z1と2つのジョブとの対応関係の例を示す。また、
図53は、待機時間が発生する場合の具体例を示す。
図50に示す式(10-1)において、第1項および第4項は条件1として条件1が成立する場合、2つのジョブが同期する作業モードを選択した場合のみ0となり、それ以外は1以下と、他の項の値に関係なく、不等式が成り立つようになり、条件2の前提が成り立つ場合でも同期が発生しないよう制約できることを表す。第2項および第5項は、条件2として条件2が成立した場合、各式で1をとり、2つのジョブは並行して作業していることを意味する。第3項および第6項は同期する場合の作業モードを選択し、かつz2が1の場合は、不等式を成り立たせるため1となる。また、
図52に示す式(10-2)は、第1項が作業時間の長いジョブの完了日時を表す。第2項は、条件として同期が成り立つ場合だけ0になる、それ以外は、-1以下となるため、十分大きい値(BigM)によって、左辺は右辺を必ず下回る値となり、待ち時間は発生しない。第3項は、作業時間の短いジョブの完了日時を表す。第4項は、待ち時間を表す。
【0076】
図54は、残業時間についての制約条件11の概要を示す。
図55~
図57は、制約条件11を定式化した式(11-1.1)、(11-1.2)、(11-2)および(11-3)を示す。
図55に示す式(11-1.1)において第1項は対象ジョブの完了日時を表す。第2項は作業者の定時完了日時を表す。第3項は作業者の定時完了後の残業時間を表す。第4項は作業者を使用する場合のみ0、それ以外は非常に大きな値BigMにより、不等式は必ず成り立つようになるため、残業時間の計上は無いことを表す。なお、式(11-1.2)は早出の場合の残業時間を制約する。
図56に示す式(11-2)は日別の残業時間の上限を制約する。第1項は定時前の残業時間を表す。第2項は定時後の残業時間を表す。第3項は対象シフトの残業時間上限を表す。
図57に示す式(11-3)は月別の残業時間の上限を制約する。第1項は対象月に関して、作業者が働くことのできる全シフトで発生した残業時間の総和をとる。第2項は対象月の残業時間上限を表す。
【0077】
(作用効果)
上記生産計画作成装置、生産計画作成方法およびプログラムによれば、複数のジョブを含む生産スケジュールを作成する際に、ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化して設計変数を算出する。したがって、生産計画を効率的に作成することができる。
【0078】
(その他の実施形態)
以上、本開示の実施の形態について図面を参照して詳述したが、具体的な構成はこの実施の形態に限られるものではなく、本開示の要旨を逸脱しない範囲の設計変更等も含まれる。
【0079】
〈コンピュータ構成〉
図58は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ90は、プロセッサ91、メインメモリ92、ストレージ93、および、インタフェース94を備える。
上述の生産計画作成装置10は、コンピュータ90に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ93に記憶されている。プロセッサ91は、プログラムをストレージ93から読み出してメインメモリ92に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ91は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ92に確保する。
【0080】
プログラムは、コンピュータ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)等が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【0081】
ストレージ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は、一時的でない有形の記憶媒体である。
【0082】
<付記>
各実施形態に記載の生産計画作成装置10は、例えば以下のように把握される。
【0083】
(1)第1の態様に係る生産計画作成装置10は、複数のジョブを含む生産スケジュールを作成する装置であって、前記ジョブが使用するリソースの種類と数、作業時間の組み合わせを表す変数と、前記ジョブの着手、完了、中断および再開の日時を表す変数とを設計変数とする数理モデルを用いて、所定の制約条件を満たして、納期遅延、メイクスパンおよび段取回数の少なくとも1つに係る目的関数を最適化して前記設計変数を算出する生産スケジュール最適化部5と、前記生産スケジュール最適化部の算出結果に基づいて生産スケジュールを出力する出力部6とを備える。この態様および以下の各態様によれば、生産計画を効率的に作成することができる。
【0084】
(2)第1の態様に係る生産計画作成装置10は、(1)の生産計画作成装置10であって、前記数理モデルは、計画期間を作業員のシフトで分割し、前記ジョブが作業不可能な前記シフトを前記ジョブの割り付け対象から除外するとともに、前記シフトを使用可能なリソースの組み合わせ毎に複数の区間に分割し、前記ジョブを作業するのに必要なリソースがすべて使用可能な前記区間のみを前記ジョブの割り付け対象とする。
【0085】
(3)第3の態様に係る生産計画作成装置10は、(1)または(2)の生産計画作成装置10であって、前記数理モデルは、第1ジョブが先に着手し、その後、第2ジョブが着手したことを示す第1の0-1変数と、前記第1ジョブの完了前に前記第2ジョブが着手したことを示す第2の0-1変数とを用いて、前記第1ジョブと前記第2ジョブの時間的位置関係を算出する。
【0086】
(4)第4の態様に係る生産計画作成装置10は、(1)~(3)の生産計画作成装置10であって、前記制約条件は、段取発生の有無を示す変数の値に基づき段取時間を考慮して作業時間を規定する条件を含む。
【0087】
(5)第5の態様に係る生産計画作成装置10は、(1)~(4)の生産計画作成装置10であって、前記制約条件は、残業時間の上限を制約する条件を含む。
【0088】
(6)第6の態様に係る生産計画作成装置10は、(1)~(5)の生産計画作成装置10であって、前記制約条件は、前記ジョブの割付および解放の設定を制約する条件を含む。
【0089】
(7)第7の態様に係る生産計画作成装置10は、(1)~(6)の生産計画作成装置10であって、前記制約条件は、前記ジョブの前後関係の設定を制約する条件を含む。
【符号の説明】
【0090】
10…生産計画作成装置
5…生産スケジュール最適化部
6…出力部
7…数理モデル