(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】生産計画を適正化する方法、プログラム、及び、装置
(51)【国際特許分類】
G05B 19/418 20060101AFI20240509BHJP
G06N 10/60 20220101ALI20240509BHJP
【FI】
G05B19/418 Z
G06N10/60
(21)【出願番号】P 2022054502
(22)【出願日】2022-03-29
【審査請求日】2022-09-20
(73)【特許権者】
【識別番号】502362758
【氏名又は名称】JX金属株式会社
(74)【代理人】
【識別番号】110000523
【氏名又は名称】アクシス国際弁理士法人
(72)【発明者】
【氏名】荻莊 裕太
(72)【発明者】
【氏名】高井良 柾紀
(72)【発明者】
【氏名】大関 真之
【審査官】豊島 唯
(56)【参考文献】
【文献】特開2002-328977(JP,A)
【文献】特開2001-228912(JP,A)
【文献】特開2009-258863(JP,A)
【文献】特表2013-512528(JP,A)
【文献】特開2006-039852(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/418
G06N 10/60
G06Q 50/04
(57)【特許請求の範囲】
【請求項1】
情報処理装置を用いて生産計画を適正化する方法であって、
前記生産計画は、複数の処理工程を経て複数の仕掛品から複数の製品を製造するための生産計画であり、
前記複数の処理工程のうち少なくとも1つの処理工程は、複数の設備から選択される1つの設備で、仕掛品に対する処理を行なう処理工程から構成されており、
前記方法は、
(1)仕掛品ごとに各処理工程で使用される設備の組み合わせを適正化するステップであって、当該適正化により設備の組み合わせ情報を前記情報処理装置が出力するステップと、
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、前記組み合わせ情報に少なくとも部分的に基づいて、前記各処理工程の実行順を前記情報処理装置が出力するステップと、
を備える、方法であって、
前記実行順を出力するステップ(2)は、第1のコスト関数に少なくとも部分的に基づいて、前記実行順を出力することを含み、
前記第1のコスト関数は、
各設備における第1の処理が完了してから前記第1の処理の次に実行される第2の処理が開始されるまでの待機時間を短くするための第1の目的項と、
各設備について、同時に処理される仕掛品が1つに定めるための第1の制約項と、
各仕掛品の各処理工程について、実行される回数が1だけに定めるための第2の制約項と、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記実行順を出力するステップ(2)は、量子コンピュータ又は量子アニーリングマシンから得られた計算結果に少なくとも部分的に基づいて、前記実行順を出力することを含む、方法。
【請求項3】
前記第1の目的項は、QUBO(Quadratic Unconstrained Binary Optimization:二次制約なし二値最適化)の形式で表現される、請求項1の方法。
【請求項4】
前記待機時間は、以下に示されるd
ijで表現される、請求項1~3いずれか1項に記載の方法。
【数1】
UBX
m
ij:設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、iの次に実行されるジョブ
m:設備
P
im:ジョブiに対する処理が設備mにて開始されてから終了するまでにかかる時間
t
im:P
im(ただし、ジョブiが設備mを使用しない場合には0)
【請求項5】
前記第1のコスト関数E(y)は、以下の式で表される目的項H
B及び制約項H
Aを含む、請求項1~4いずれか1項に記載の方法。
【数2】
n:ジョブの実行順序
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、ジョブiの後に実行されるジョブ
d
ij:設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間
y
in:ジョブの実行順序nにおいてジョブiが実行される場合を1、実行されない場合を0で表現するバイナリ変数
【請求項6】
請求項1~5いずれか1項に記載の方法であって、前記ステップ(1)は、
(1-1)各仕掛品が各設備で要する処理時間に少なくとも部分的に基づいて、前記複数の処理工程に要するトータルの処理時間が短くなるように、第1段階の組み合わせ情報を仕掛品ごとに複数作成するサブステップであって、前記第1段階の組み合わせ情報は、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報である、サブステップと、
(1-2)予め設定された第2のコスト関数と、前記第1段階の組み合わせ情報とに少なくとも部分的に基づいて、少なくとも1つの第2段階の組み合わせ情報を出力するサブステップであって、前記第2段階の組み合わせ情報は、複数の前記第1段階の組み合わせ情報同士の組み合わせを定義した情報である、サブステップと、
を含み
前記第2のコスト関数は、
前記複数の設備から選択して利用可能な処理工程において、特定の設備への負荷集中を回避するための第2の目的項と、
前記複数の設備から選択して利用可能な処理工程において、前記仕掛品に対して使用される設備を1つに定めるための第3の制約項と
を含む、方法。
【請求項7】
請求項6に記載の方法であって、
前記第1段階の組み合わせ情報を仕掛品ごとに複数作成するサブステップ(1-1)は、
前記複数の処理工程に要する処理時間が1番短くなる最短の組み合わせをダイクストラ法、ベルマンフォード法、A*(エースター)アルゴリズム、ワーシャル-フロイド法、及びジョンソンのアルゴリズムから選択される1つ以上に少なくとも基づいて算出すること、
前記最短の組み合わせ以外の組み合わせを、ダイクストラ法、ベルマンフォード法、A*(エースター)アルゴリズム、ワーシャル-フロイド法、またはジョンソンのアルゴリズムから選択される1つ以上に少なくとも部分的に基づいて算出すること、
とを含む、方法。
【請求項8】
請求項6~7のうちいずれか1項に記載の方法であって、
前記第2の目的項は、以下の数式で表される項を含み、
【数3】
i:仕掛品に対応するジョブ
m:設備
k:各処理においてどの設備を使用するかを規定した設備の組み合わせパターン
x
ik:ジョブiに対してパターンkを実行する場合には1、実行しない場合には0で表現されるバイナリ変数
C
mik:ジョブiに対してパターンkを実行する場合において、設備mを使用する場合には1、使用しない場合には0で表されるバイナリ変数
前記第3の制約項は、以下の数式で表される項を含む、方法。
【数4】
i:仕掛品に対応するジョブ
k:各処理においてどの設備を使用するかを規定した設備の組み合わせパターン
x
ik:ジョブiに対してパターンkを実行する場合には1、実行しない場合には0で表現されるバイナリ変数
N:仕掛品に対応するジョブの数
K:上記kで表される組み合わせパターンの数
【請求項9】
情報処理装置を用いて生産計画を適正化する方法であって、
前記生産計画は、複数の処理工程を経て複数の仕掛品から複数の製品を製造するための生産計画であり、
前記複数の処理工程のうち少なくとも1つの処理工程は、複数の設備から選択される1つの設備で、仕掛品に対する処理を行なう処理工程から構成されており、
前記方法は、
(1)組み合わせ情報を前記情報処理装置が取得するステップであって、前記組み合わせ情報は、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報同士の組み合わせ情報である、当該ステップと、
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、前記組み合わせ情報に少なくとも部分的に基づいて、前記各処理工程の実行順を前記情報処理装置が出力するステップと、
を備える、方法であって、
前記実行順を出力するステップ(2)は、第1のコスト関数に少なくとも部分的に基づいて、前記実行順を出力することを含み、
前記第1のコスト関数は、
各設備における第1の処理が完了してから前記第1の処理の次に実行される第2の処理が開始されるまでの待機時間を短くするための第1の目的項と、
各設備について、同時に処理される仕掛品が1つに定めるための第1の制約項と、
各仕掛品の各処理工程について、実行される回数が1だけに定めるための第2の制約項と、
を含む、方法。
【請求項10】
情報処理装置を用いて生産計画を適正化する方法であって、
前記生産計画は、複数の処理工程を経て複数の仕掛品から複数の製品を製造するための生産計画であり、
前記複数の処理工程のうち少なくとも1つの処理工程は、複数の設備から選択される1つの設備で、仕掛品に対する処理を行なう処理工程から構成されており、
前記方法は、
(1)仕掛品ごとに各処理工程で使用される設備の組み合わせを適正化するステップであって、当該適正化により設備の組み合わせ情報を前記情報処理装置が出力するステップと、
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、前記組み合わせ情報に少なくとも部分的に基づいて、前記各処理工程の実行順を前記情報処理装置が出力するステップと、
を備える、方法であって、
前記ステップ(1)は、
(1-1)各仕掛品が各設備で要する処理時間に少なくとも部分的に基づいて、前記複数の処理工程に要するトータルの処理時間が短くなるように、第1段階の組み合わせ情報を仕掛品ごとに複数作成するサブステップであって、前記第1段階の組み合わせ情報は、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報である、サブステップと、
(1-2)予め設定された第2のコスト関数と、前記第1段階の組み合わせ情報とに少なくとも部分的に基づいて、少なくとも1つの第2段階の組み合わせ情報を出力するサブステップであって、前記第2段階の組み合わせ情報は、複数の前記第1段階の組み合わせ情報同士の組み合わせを定義した情報である、サブステップと、
を含み
前記第2のコスト関数は、
前記複数の設備から選択して利用可能な処理工程において、特定の設備への負荷集中を回避するための第2の目的項と、
前記複数の設備から選択して利用可能な処理工程において、前記仕掛品に対して使用される設備を1つに定めるための第3の制約項と
を含む、方法。
【請求項11】
請求項1~10いずれか1項に記載の方法であって、前記ステップ(1)は、古典コンピュータによって実行される、方法。
【請求項12】
プロセッサとメモリを備えた情報処理装置において、請求項1~11いずれか1項に記載の方法を
、前記プロセッサに命じることにより実行
させる、プログラム。
【請求項13】
プロセッサとメモリを備えた情報処理装置であって、
前記メモリには、請求項12に記載のプログラムが格納され、
前記プロセッサが前記プログラムの指示に従って動作する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、生産計画を適正化する方法、プログラム、及び、装置に関する。
【背景技術】
【0002】
工場においては、原材料が生産ラインを経て製品へと加工される。その際の生産ラインは、複数の処理工程で行われることが多い。また、ある特定の処理工程においては、使用可能な設備がいくつも存在しており、状況に応じてどの設備を使用するかの選択及び決定が行われる。
【0003】
例えば、
図1に示すように、仕掛品A~Cが3つの処理工程を経て製品A~Cへと加工される。その場合、各処理工程では、対応する設備が複数設けられており、例えば、第1の処理工程で、設備1-1がすでに仕掛品Aに対する処理で使用中である場合、仕掛品Bに対して第1の処理工程を行うために、設備1-2を選択することができる。こうした仕掛品A~Cの製造工程は、シリアルではなく、パラレルに実施されることが多い。したがって、全体の工程が複雑になる。そこで、予めどのタイミングでどの仕掛品についてどの処理工程を実施するかを、例えば1週間単位~1か月単位で計画する必要がある。
【0004】
特許文献1では、様々な制約条件を付加しながら、アルゴリズムソルバを実行して混合整数非線形数学的最適化モデルの解を求める方法が開示されている。そして、求められた解に基づいて作成された稼働計画に実質的に従って1つ以上の工場を稼働させることが開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特表2013-512528号公報(国際公開第2011/066210号)
【発明の概要】
【発明が解決しようとする課題】
【0006】
図1に示す製品A~Cを生産する際に、シリアルにこれらの製品を製造するのは効率が良くない。つまり、製品Aが完成してから製品Bの生産に着手するのではなく、時間当たりの生産性を向上させる目的で、通常はこれらの複数の製品の製造工程がパラレルに実施される。例えば、第1処理工程で設備に空きがあるのであれば、仕掛品Aと仕掛品Bの両方に対して同時に第1処理工程を実施してもよい。扱う仕掛品の種類、処理工程の数等が少なければ、特段生産計画を作成しなくてもある程度パラレルに実施することも可能である。
【0007】
しかし、実際には工場で取り扱う仕掛品の種類、処理工程の数は多い。そして、各処理工程で利用可能な設備は複数ある。更には、同じ仕掛品であっても、使用する設備によっては処理工程に係る時間が異なる可能性もある。
【0008】
従って、これらの要素を考慮に入れながら、予め生産計画を立てる必要がある。組み合わせのパターンは複雑であることから、生産計画を立てるためには長い年月の経験を有する熟練者のスキルが必要であった。また、熟練者が生産計画を立てる場合であっても、ある程度の時間を要していた。
【0009】
そこで、本開示は、短時間で複雑な生産計画を立てることを可能にする方法などを提供することを目的とする。
【課題を解決するための手段】
【0010】
本開示は、一側面において、以下の発明を包含する。
【0011】
(発明1)
情報処理装置を用いて生産計画を適正化する方法であって、
前記生産計画は、複数の処理工程を経て複数の仕掛品から複数の製品を製造するための生産計画であり、
前記複数の処理工程のうち少なくとも1つの処理工程は、複数の設備から選択される1つの設備で、仕掛品に対する処理を行なう処理工程から構成されており、
前記方法は、
(1)仕掛品ごとに各処理工程で使用される設備の組み合わせを適正化するステップであって、当該適正化により設備の組み合わせ情報を前記情報処理装置が出力するステップと、
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、前記組み合わせ情報に少なくとも部分的に基づいて、前記各処理工程の実行順を前記情報処理装置が出力するステップと、
を備える、方法。
【0012】
(発明2)
発明1に記載の方法であって、
前記実行順を出力するステップ(2)は、量子コンピュータ又は量子アニーリングマシンから得られた計算結果に少なくとも部分的に基づいて、前記実行順を出力することを含む、方法。
【0013】
(発明3)
発明1~2いずれか1つに記載の方法であって、
前記実行順を出力するステップ(2)は、第1のコスト関数に少なくとも部分的に基づいて、前記実行順を出力することを含み、
前記第1のコスト関数は、
各設備における第1の処理が完了してから前記第1の処理の次に実行される第2の処理が開始されるまでの待機時間を短くするための第1の目的項と、
各設備について、同時に処理される仕掛品が1つに定めるための第1の制約項と、
各仕掛品の各処理工程について、実行される回数が1だけに定めるための第2の制約項と、
を含む、方法。
【0014】
(発明4)
前記第1の目的項は、QUBO(Quadratic Unconstrained Binary Optimization:二次制約なし二値最適化)の形式で表現される、発明3の方法。
【0015】
(発明5)
前記待機時間は、以下に示されるd
ijで表現される、発明3~4いずれか1つに記載の方法。
【数1】
UBX
m
ij:設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、iの次に実行されるジョブ
m:設備
P
im:ジョブiに対する処理が設備mにて開始されてから終了するまでにかかる時間
t
im:P
im(ただし、ジョブiが設備mを使用しない場合には0)
【0016】
(発明6)
前記第1のコスト関数E(y)は、以下の式で表される目的項H
B及び制約項H
Aを含む、発明3~5いずれか1つに記載の方法。
【数2】
n:ジョブの実行順序
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、ジョブiの後に実行されるジョブ
d
ij:設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間
y
in:ジョブの実行順序nにおいてジョブiが実行される場合を1、実行されない場合を0で表現するバイナリ変数
【0017】
(発明7)
発明1~6いずれか1つに記載の方法であって、前記ステップ(1)は、
(1-1)各仕掛品が各設備で要する処理時間に少なくとも部分的に基づいて、前記複数の処理工程に要するトータルの処理時間が短くなるように、第1段階の組み合わせ情報を仕掛品ごとに複数作成するサブステップであって、前記第1段階の組み合わせ情報は、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報である、サブステップと、
(1-2)予め設定された第2のコスト関数と、前記第1段階の組み合わせ情報とに少なくとも部分的に基づいて、少なくとも1つの第2段階の組み合わせ情報を出力するサブステップであって、前記第2段階の組み合わせ情報は、複数の前記第1段階の組み合わせ情報同士の組み合わせを定義した情報である、サブステップと、
を含み
前記第2のコスト関数は、
前記複数の設備から選択して利用可能な処理工程において、特定の設備への負荷集中を回避するための第2の目的項と、
前記複数の設備から選択して利用可能な処理工程において、前記仕掛品に対して使用される設備を1つに定めるための第3の制約項と
を含む、方法。
【0018】
(発明8)
発明7に記載の方法であって、
前記第1段階の組み合わせ情報を仕掛品ごとに複数作成するサブステップ(1-1)は、
前記複数の処理工程に要する処理時間が1番短くなる最短の組み合わせをダイクストラ法、ベルマンフォード法、A*(エースター)アルゴリズム、ワーシャル-フロイド法、及びジョンソンのアルゴリズムから選択される1つ以上に少なくとも基づいて算出すること、
前記最短の組み合わせ以外の組み合わせを、ダイクストラ法、ベルマンフォード法、A*(エースター)アルゴリズム、ワーシャル-フロイド法、またはジョンソンのアルゴリズムから選択される1つ以上に少なくとも部分的に基づいて算出すること、
とを含む、方法。
【0019】
(発明9)
発明7~8のうちいずれか1つに記載の方法であって、
前記第2の目的項は、以下の数式で表される項を含み、
【数3】
i:仕掛品に対応するジョブ
m:設備
k:各処理においてどの設備を使用するかを規定した設備の組み合わせパターン
x
ik:ジョブiに対してパターンkを実行する場合には1、実行しない場合には0で表現されるバイナリ変数
C
mik:ジョブiに対してパターンkを実行する場合において、設備mを使用する場合には1、使用しない場合には0で表されるバイナリ変数
前記第3の制約項は、以下の数式で表される項を含む、方法。
【数4】
i:仕掛品に対応するジョブ
k:各処理においてどの設備を使用するかを規定した設備の組み合わせパターン
x
ik:ジョブiに対してパターンkを実行する場合には1、実行しない場合には0で表現されるバイナリ変数
N:仕掛品に対応するジョブの数
K:上記kで表される組み合わせパターンの数
【0020】
(発明10)
情報処理装置を用いて生産計画を適正化する方法であって、
前記生産計画は、複数の処理工程を経て複数の仕掛品から複数の製品を製造するための生産計画であり、
前記複数の処理工程のうち少なくとも1つの処理工程は、複数の設備から選択される1つの設備で、仕掛品に対する処理を行なう処理工程から構成されており、
前記方法は、
(1)組み合わせ情報を前記情報処理装置が取得するステップであって、前記組み合わせ情報は、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報同士の組み合わせ情報である、当該ステップと、
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、前記組み合わせ情報に少なくとも部分的に基づいて、前記各処理工程の実行順を前記情報処理装置が出力するステップと、
を備える、方法。
【0021】
(発明11)
発明1~9いずれか1つに記載の方法であって、前記ステップ(1)は、古典コンピュータによって実行される、方法。
【0022】
(発明12)
発明1~11いずれか1つに記載の方法を実行するプログラム。
【0023】
(発明13)
プロセッサとメモリを備えた情報処理装置であって、
前記メモリには、発明12に記載のプログラムが格納され、
前記プロセッサが前記プログラムの指示に従って動作する、
情報処理装置。
【発明の効果】
【0024】
一側面において、上記発明は、設備の組み合わせを適正化するステップと、各処理工程の実行順を出力するステップを実施する。これにより、短時間で複雑な生産計画を立てることが可能となる。
【図面の簡単な説明】
【0025】
【
図1】複数の処理工程を経て複数の仕掛品から複数の製品が製造されるプロセスを示す。
【
図2】一実施形態における本開示の情報処理装置の構成を示す。
【
図3】一実施形態における本開示のシステムの構成を示す。
【
図4】一実施形態における本開示のシステムと、当該システムの外部に存在する第2の情報処理装置とを組み合わせた構成を示す。
【
図5】一実施形態において、各処理工程においてどの設備を利用して仕掛品を処理するかを規定した候補を示す。
【
図6】一実施形態において、各仕掛品存在する候補同士の組み合わせを示す。具体的には、グレースケールで示したパネル同士が組み合わせ候補として抽出されていることを示す。
【
図7】一実施形態において、
図6で抽出された組み合わせ候補を、どの順序で実行するかの候補を示す。
【
図8】一実施形態において、
図1に示される各処理工程においてどの設備を使用するかの問題を、経路問題に変換して示す。
【
図9】一実施形態において、最短経路(矢印部分で示す)の各辺に対してペナルティ付加を行った状態を示す。
【
図10】一実施形態において、最短経路を含む複数の候補経路を導出するためのフローを示す。
【
図11】一実施形態において、待機時間の概念を示す。
【
図12】一実施形態において、待機時間の概念を示す。
【
図13】一実施形態において、ジョブと実行順の関係を表現したマトリクスを示す。
【
図14】一実施形態において、コスト関数の計算からメイクスパンを算出するまでの流れを示す。
【
図15】一実施形態において、コスト関数の計算からメイクスパンを算出するまでの流れを示す。
【
図16】一実施形態において、情報処理装置によって導出された解に基づくガントチャートを示す。
【
図17】一実施形態において、情報処理装置によって導出された解に基づくガントチャートを示す。
【
図18】一実施形態において、情報処理装置によって導出された解に基づくガントチャートを示す。
【発明を実施するための形態】
【0026】
以下、発明を実施するための具体的な実施形態について説明する。以下の説明は、発明の理解を促進するためのものである。即ち、本発明の範囲を限定することを意図するものではない。
【0027】
1.定義
以下では、本明細書で使用される特定の用語について定義する。
【0028】
用語「適正化」は、最適解のみを出力することに限定されない。用語「適正化」は、膨大な数の選択肢の中から絞り込んだ少なくとも1つの解を出力することを意味する。従って、最適解を含まなくとも、最適解に近い解を出力することも「適正化」に含まれる。
【0029】
情報処理の分野、特に機械学習、量子アニーリングマシンを用いた最適化の分野等においては、100%の正解を出力しなくても、ある程度の精度の出力でもって問題解決を行うことが可能となることが多い。本開示においても、ある程度の精度であっても、短時間で解を出力することにより、短時間で複雑な生産計画を立てるという本開示の目的にかなう。
【0030】
「情報処理装置」は、メモリ、プロセッサ、記憶媒体、必要により通信モジュールを備える。プロセッサが取り扱うビットの情報の種類は特に限定されず、0及び1で表現されるビットを取り扱うプロセッサ(古典コンピュータ)であってもよく、量子ビットを取り扱うプロセッサ(量子コンピュータ、量子アニーリングマシンなど)であってもよい。古典コンピュータは、スーパーコンピュータ、サーバー、グリッドコンピューティングを構成する複数のコンピュータの組み合わせ、パーソナルコンピュータ等が挙げられる。
【0031】
2.情報処理装置及びプログラム
本開示の発明は、特定の方法に関するものであり、当該方法は、プログラムによって実装される。そして、当該プログラムは、特定の情報処理装置(例えば、情報処理装置が備えるプロセッサ)によって実行される。
【0032】
例えば、
図2では、本開示の一実施形態における情報処理装置として、所定の情報処理装置100が開示されている。そして、情報処理装置100には、本開示の一実施形態におけるプログラム200が搭載されている。本開示の目的を達成するため、プログラム200が情報処理装置によって実行される。ここで、プログラム200がすべての計算を担ってもよいが、好ましい実施形態においては、組み合わせなどの解を算出するためのモジュールとしてソルバー300を組み合わせてもよい。こうした好ましい実施形態においては、プログラム200は、ソルバー300が計算を行うのに必要な変数及び計算ロジックを出力したり、ソルバー300から受信した情報を適切な形に加工したりする役割を担うことができる。
【0033】
留意すべき点として、本開示の目的を達成するために必要な計算の全てを、本開示のプログラム及び/又は情報処理装置が担うことは必須ではないという点である。
【0034】
例えば、
図3に示すように、第2の情報処理装置120が一部の計算機能を担うようにしてもよい。そして、第1の情報処理装置110と第2の情報処理装置120は、適宜ネットワーク400(例えば、LAN、VPN、WAN、インターネット等)により接続され、必要な情報の送受信を双方向に行うことができる。
図3に示す例においては、例えば、第1の情報処理装置110がパソコンなどであってもよく、そして、第2の情報処理装置120が、スーパーコンピュータ等の古典コンピュータ、又は、量子コンピュータ若しくは量子アニーリングマシン等であってもよい。
【0035】
更に、留意すべき点として、本開示の目的を達成するために必要な計算の一部(例えば、最適化問題を解くための計算)を担うハードウェアが、一実施形態における本開示のシステム内において実装されることは必須ではないという点である。
【0036】
例えば、
図4に示すように、ソルバーを備える第2の情報処理装置120が、一実施形態における本開示のシステム500の外部に存在してもよい。例えば、第三者機関が第2の情報処理装置120を所有し、当該第2の情報処理装置120に接続するためのAPIなどを公開してもよい。そして、一実施形態における本開示のシステム500が備える第1の情報処理装置110が、インターネットなどを経由して、第2の情報処理装置120に接続してもよい。そして、上述したように、第1の情報処理装置110(及び第1の情報処理装置110に搭載されるプログラム200)は、ソルバー300が計算を行うのに必要な変数及び計算ロジックを出力したり、ソルバー300から受信した情報を適切な形に加工したりする役割を担うことができる。
【0037】
例えば、第2の情報処理装置120は、スーパーコンピュータ等の古典コンピュータ、又は、量子コンピュータ、若しくは、量子アニーリングマシンであってもよい。
【0038】
例えば、量子アニーリングマシンでは、カナダのD-Wave社の2000Q/Advantage、富士通のデジタルアニーラ、日立のCMOSアニーリングマシン、フィックスターズのGPUアニーリングマシンApplifyAE等が挙げられる。例えば、スーパーコンピュータでは、富士通の富岳(登録商標)等が挙げられる。
【0039】
3.概要
一実施形態において、本開示は、情報処理装置を用いて生産計画を適正化する方法、当該方法を実行するためのプログラム(又は、当該プログラムを備える非一時的コンピュータ可読有形記憶媒体)、及び、当該プログラムを搭載した情報処理装置に関する。
【0040】
ここで、生産計画は、複数の処理工程を経て複数の仕掛品から複数の製品を製造するための生産計画である。例えば、生産計画は、
図1に示すように、M個の処理工程を経て、N個の仕掛品から、N個の製品を製造するための生産計画であってもよい(
図1では、M=3、N=3として示す)。
【0041】
また、複数の処理工程のうち少なくとも1つの処理工程は、複数の設備から選択される1つの設備で、仕掛品に対する処理を行なう処理工程から構成されている。例えば、
図1に示すように、第1処理工程では、2つの設備(設備1-1及び設備1-2)が利用可能となっている。そして、例えば、仕掛品Aに対して第1処理工程を実施する際には、設備1-1及び設備1-2のうちいずれか1つを選択する。
【0042】
処理工程によっては、利用できる設備が1つしかなく選択の余地がない場合があってもよい。しかし、少なくとも1つの処理工程では、複数の設備から選択することができる。
【0043】
一実施形態における上記方法は以下のステップを備える。
【0044】
(1)仕掛品ごとに各処理工程で使用される設備の組み合わせを適正化するステップであって、当該適正化により設備の組み合わせ情報を情報処理装置が出力するステップ。
【0045】
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、ステップ(1)の組み合わせ情報に少なくとも部分的に基づいて、各処理工程の実行順を情報処理装置が出力するステップ。
【0046】
ステップ(1)の概念を
図5及び
図6に示す。まず、各仕掛品においては、各処理工程でどの設備を利用するかについての選択が行われる。
図5では、各パネルにドットが配置されている。各パネルの両端に存在するドットは、開始点及び終了点を示す。そして、中間に存在する、2個、3個、及び2個のドット群は、
図1に示す第1処理工程~第3処理工程における各々の設備の群を表す。各仕掛品及び各処理工程においてどの設備を利用するかに関する候補群(第1の候補群)は
図5のような形で表現できる。
【0047】
第1の候補群から、或いは第1の候補群から更に絞り込んだ後の群からは、
図6に示すように、各仕掛品の間でどの候補同士を組み合わせるかについての選択が行われる。例えば、
図6においては、仕掛品A~仕掛品Cにおいて、グレーで示すパネルで表現された設備の組み合わせが選択されたことを示す。
【0048】
上記ステップ(1)では、このように、仕掛品A~仕掛品Cにおいて、どのような設備の組み合わせを採択するかに関する組み合わせ情報の出力を行う。なお、ステップ(1)の時点では、採択される組み合わせは、
図6のグレー色で示すように1つであってもよく、或いは、
図6には示さないが、複数であってもよい。
【0049】
ステップ(2)では、
図7に示すように、ステップ(1)で選択された組み合わせについて、どの順序で実行するかについての実行順を出力する。
【0050】
以降では、上述したステップ(1)及びステップ(2)について、アルゴリズム等の具体例を示す。ステップ(1)に関する具体例は、第1の実施形態(
図5に対応)及び第2の実施形態(
図6)にて説明する。ステップ(2)に関する具体例は、第3の実施形態(
図7に対応)にて説明する。
【0051】
4.第1の実施形態(所定の仕掛品に対する設備の組み合わせの適正化)
好ましい実施形態において、ステップ(1)は、2つの適正化を実行することを含む。1つ目の適正化は、所定の仕掛品に対する設備の組み合わせ(第1の組み合わせ)の最適化である。具体的には、1つ目の適正化は、各仕掛品が各設備で要する処理時間に少なくとも部分的に基づく。そして、1つ目の適正化は、仕掛品ごとに各処理工程で使用される設備の組み合わせ候補を、複数の処理工程に要するトータルの処理時間が短くなるように複数作成することを含む。2つ目の適正化については第2の実施形態として後述する。
【0052】
1つ目の適正化の具体例を挙げると、
図5に示すように、特定の仕掛品において、各処理工程でどの設備を選択するかについての多数の候補が存在する。
【0053】
第1の実施形態について、まずは、多数の候補の中から適正な設備の組み合わせをスクリーニングする。スクリーニングの結果、選択される設備の組み合わせの数は、1つでもよく、複数であってもよく、好ましくは、複数である。複数である場合の上限は、特に限定されず、情報処理装置の計算能力、仕掛品の数、処理工程の数、各処理工程における設備の数などを総合的に考慮しながら決定すればよい(例えば、仕掛品ごとに5以下、4以下、又は3以下)。
【0054】
また、選択するためのアルゴリズムは特に限定されないが、例えば、最初に最適な組み合わせを選択し、そのあとは、最適な組み合わせ以外の組み合わせを選択するようなアルゴリズムを採用してもよい。ここで述べる最適な組み合わせとは、各設備での処理時間をすべて合計したときの数値が最も小さくなる組み合わせである。例えば、3つのパターンの組み合わせが存在する場合に、尚且つ、各々のパターンで、かかる時間が100時間、90時間、80時間であった場合、最適な組み合わせは80時間の場合の組み合わせである。
【0055】
最適な組み合わせを導出するためのアルゴリズムは特に限定されないが、経路問題の解を導出するためのアルゴリズムが好ましい。
【0056】
経路問題は、都市の集合と各2都市間の移動コスト(たとえば距離)が与えられたとき、出発地から目的地までの総移動コストが最小のものを求める問題を意味する。
【0057】
例えば、以下の表1では、仕掛品を製品へと加工するにあたって、各処理工程でどの設備を利用するとどの程度時間がかかるかが示されている。各工程においてどの設備を使用するかという問題は、
図8に示されるように経路問題に適用することができる。
【0058】
【0059】
そして、
図8に示される経路問題において、コストが最小となる経路は、既知のアルゴリズムによって導出することが可能である。アルゴリズムの例としては、ダイクストラ法、ベルマンフォード法、A*(エースター)アルゴリズム、ワーシャル-フロイド法、及びジョンソンのアルゴリズムなどが挙げられるがこれらに限定されない。
【0060】
上記のアルゴリズムによって、コストが最小となる経路を導出した後は、これ以外の経路を、更に組み合わせ候補として導出する処理を、必要な数の候補が得られるまで繰り返す。例えば、必要な候補の数が3である場合には、コストが最小となる経路を導出した分を1としてカウントし、残り2つ分を、更に組み合わせ候補として導出する処理を繰り返すことで得ることができる。
【0061】
2番目以降の経路を導出するためのアルゴリズムは特に限定されず、上述したアルゴリズムと同じものを採用してもよい。ただし、このままアルゴリズムを実行しても、再度同じ経路の解が導出されてしまう。これを回避するため、例えば、コストが最小となる経路に対してペナルティを付加することができる。なお、ここでのべる「付加」は単に値を加算することに限定されない。ペナルティの付加の方法は特に限定されないが、例えば、所定の値を、コストが最小となる経路の各辺に加算してもよい(
図9参照)。あるいは、
図9に示す形とは異なり、コストが最小となる経路に含まれるいずれかの辺だけに所定の値を加算してもよい(例えば、ノード3番とノード5番の間に10をプラスするなど)。あるいは、
図9に示す形とは異なり、所定の値N(N>1)を、コストが最小となる経路の各辺に乗じてもよい。あるいは、
図9に示す形とは異なり、コストが最小となる経路の各辺を累乗してもよい(例えば、各辺を二乗して、各辺のコストを25、4、9(5
2=25、2
2=4、3
2=9)に変更してもよい)。
【0062】
このようにペナルティを付加した後で、再度最短経路を導出するアルゴリズムを実行することで、別の経路が、コストが最小となる経路として導出される。例えば、
図9の場合には、アルゴリズムを実行することで、Start⇒2⇒3⇒6⇒endの経路が、2番目の候補として導出される。そして、2番目の候補の経路にペナルティ付加を行い、再度、コストが最小となる経路を導出する。この結果、Start⇒1⇒4⇒5⇒endの経路が、3番目の候補として導出される。
【0063】
このように、アルゴリズムによる、コストが最小となる経路の導出⇒ペナルティの付加という動作を、繰り返すことで、必要な数の経路候補をスクリーニングすることができる。必要な数をKとすると、
図10に示すようなフローを実行することで、経路候補をスクリーニングすることができる。例えば、3つ経路候補をスクリーニングする場合には3回繰り返すことで、複数の経路候補が得られる。そして、これらの複数の経路候補が、表1に示す仕掛品Aを処理工程1~処理工程3を経る際に使用する設備の組み合わせの候補に該当する。
【0064】
なお、表1に示した数値は、仕掛品に応じて変わる可能性がある。例えば、仕掛品Aを設備1で処理するのに時間5だけかかっているが、仕掛品Bの場合には同じ設備1で処理するのに時間10かかる可能性がある。したがって、仕掛品ごとに、複数の経路候補を導出する処理を行う。
【0065】
また、2番目以降の候補を導出するための方法は、ペナルティの付加による方法に限定されず、他の方法を採用してもよい。例えば、迂回経路を探索するアルゴリズム等を採用してもよい。A*アルゴリズムの改良版として、RTA*(RealTime A*)や LRTA*(Learning Real Time A*)を採用してもよい。あるいは、遺伝的アルゴリズムを採用してもよい。
【0066】
こうした導出するための一連の処理を、情報処理装置(100、110)を用いて実行することができる。情報処理装置は、古典コンピュータであってもよく、或いは、量子コンピュータ又は量子アニーリングマシンであってもよい。上記アルゴリズム自体は、古典コンピュータの計算能力での十分に対応可能であるため、典型的には、情報処理装置は、古典コンピュータである。
【0067】
5.第2の実施形態(経路候補の組み合わせの適正化)
第2の実施形態では、
図6に示すように、各仕掛品間で導出された経路の組み合わせ(第2の組み合わせ)を決定する。なお、第1の実施形態において、候補を1つに絞っている場合には、
図6に示す組み合わせは必然的に決まるため、第2の実施形態の実行を省略してもよい。
【0068】
また、第1の実施形態が実行されなかった場合、或いは、第1実施形態が実行され、仕掛品ごとに複数の候補経路が選択された場合には、第2の実施形態を実行する。
【0069】
第2の実施形態では、予め設定された第2のコスト関数に従い、仕掛品ごとに複数作成された組み合わせ候補の中から少なくとも1つの組み合わせを選択することができる。
【0070】
第2のコスト関数は、目的項と制約項を含むことができる。
【0071】
目的項は、複数の設備から選択して利用可能な処理工程において設備ごとに処理される仕掛品の数の差を小さくするためのものである。換言すると、目的項は、特定の設備への負荷集中を回避できたときに値が小さくなるように設定される。
【0072】
例えば、処理工程1において、2つの設備が利用可能な状況であるところ、特定の1つの設備に負荷が集中すると全体としてスループットが低下する。そこで、極力分散された形で設備が利用された場合に、値が小さくなるような目的項を採用することで、全体としてスループットが高くなる可能性のある第2の組み合わせを導出することができる。
【0073】
制約項は、複数の設備から選択して利用可能な処理工程において仕掛品が選択できる設備を1つに定めるためのものである。上述したように、ある仕掛品が、各処理工程においてどの設備を選択するかという問題は、経路問題に当てはめることができる。したがって、各仕掛品において選択できる経路は1つだけに絞られる。即ち、複数の経路が選択された場合には値が増大するようにすることで、適切な第2の組み合わせを導出することができる。
【0074】
上述した目的項の具体例は、例えば以下の数式Iに示す様に表現することができる。
【0075】
【数5】
i:仕掛品に対応するジョブ
m:設備
k:各処理においてどの設備を使用するかを規定した設備の組み合わせパターン
x
ik:ジョブiに対してパターンkを実行する場合には1、実行しない場合には0で表現されるバイナリ変数
C
mik:ジョブiに対してパターンkを実行する場合において、設備mを使用する場合には1、使用しない場合には0で表されるバイナリ変数
【0076】
上記数式の原理を、
図6を参照しながら具体的に説明する。
図6の仕掛品A、仕掛品B、及び仕掛品Cについては、
図1と対比すると理解できるが、設備1-1に対して負荷が集中している。一方で、設備1-2は利用されていない。
【0077】
こうした状況において、mの値が設備1-1に該当する場合の上記数式のかっこの中の値は、2(仕掛品Aで1+仕掛品Bで1+仕掛品Cで1、合計3)となる。したがって、mの値が設備1-1に該当する場合のΣmの要素は、32=9となる。
【0078】
また、設備1-2は、仕掛品A~Cいずれにおいても利用されていないので、mの値が設備1-2に該当する場合の上記数式のかっこの中の値は、0となる。したがって、mの値が設備1-2に該当する場合のΣmの要素は、0となる。
【0079】
よって、両者の合計は9+0=9となる。
【0080】
仮に、仕掛品A及び仕掛品Cでは設備1-1が使用され、仕掛品Bでは設備1-2が使用される場合、上記両者の合計は異なった値となる。
【0081】
具体的には、mの値が設備1-1に該当する場合の上記数式のかっこの中の値は、2(仕掛品Aで1+仕掛品Cで1)となる。したがって、mの値が設備1-1に該当する場合のΣmの要素は、22=4となる。
【0082】
同様に、mの値が設備1-2に該当する場合の上記数式のかっこの中の値は、1(仕掛品Bで1)となる。したがって、mの値が設備1-2に該当する場合のΣmの要素は、12=1となる。
【0083】
よって、両者の合計は4+1=5となる。
【0084】
すなわち、上記の数式によれば、設備1-1に負荷が集中している場合よりも、設備1-1と設備1-2に負荷が分散している場合の方が、値が小さくなる。
【0085】
上記は一例であるが、分散が進むほど値が小さくなるような目的項を採用することで、負荷集中の観点から適正化した第2の組み合わせを得ることができる。
【0086】
上述した目的項とともに採用される制約項の具体例は、例えば以下の数式IIに示す様に表現することができる。
【0087】
【数6】
i:仕掛品に対応するジョブ
k:各処理においてどの設備を使用するかを規定した設備の組み合わせパターン
x
ik:ジョブiに対してパターンkを実行する場合には1、実行しない場合には0で表現されるバイナリ変数
N:仕掛品に対応するジョブの数
K:上記kで表される組み合わせパターンの数
【0088】
上記式においては、あるジョブが全くどの経路も通らない場合には、上記かっこの中身は0-1=-1となる。あるジョブが2つの経路を通った場合には、上記かっこの中身は2-1=1となる。しかし、あるジョブが1つの経路だけを通った場合には、上記かっこの中身は1-1=0となる。つまり、上記の制約項の式では、あるジョブが1つの経路だけを通った場合に最小となるように設定されている。
【0089】
制約に違反した場合にコストが増大するよう、上記制約項にはハイパーパラメータλ(1より大きい値)を乗じてもよい。
【0090】
例えば、第2のコスト関数は、目的項及び制約項を組み合わせて、以下の数式IIIに示す様に表現される。
【0091】
【0092】
上記のコスト関数を適用することで、各々の仕掛品でどの経路を選択して組み合わせればよいかを導出することができる。
【0093】
上記のコスト関数を実際に情報処理装置で実行する際には、xikの値を、0又は1の範囲で変更しながら、最小値を探索してくことになる。従って、情報処理装置で実行する際には、ソルバーを用いて、上記xikの値の0又は1の組み合わせがどのパターンになったときに、最小値になるかを導出してもよい。
【0094】
ソルバーを搭載したハードウェアとしては、古典コンピュータであってもよいし、又は、量子コンピュータ、若しくは、量子アニーリングマシンであってもよい。
【0095】
いずれのハードウェアを選択するかについては、パラメータの数(例えば、xikのパターンのトータル数等)から予想される計算量等に応じて決定してもよい。
【0096】
6.第3の実施形態(実行順序の適正化)
具体的には、上記組み合わせ情報では、仕掛品ごとに選択された経路をどのように組み合わせるかについては定義されている。しかし、上記の組み合わせ情報は、
図7に示されるように、どの順序で実行してよいかまでは定義されていない。そこで、第3の実施形態として、実行順序の適正化を行う。
【0097】
適正化の基準としては、生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるかどうかで判断される(第1の基準)。
【0098】
適正化の基準の更なる具体例においては、ある設備が、ある仕掛品に対する処理を完了してから、次の仕掛品に対する処理を開始するまでの待機時間が短くなるかどうかで判断してもよい(第2の基準)。
【0099】
なお、第2の基準での適正化解が、第1の基準での最適解と必ずしも一致しない可能性はある。しかしながら、第2の基準での適正化解は、第1の基準での最適解に近い結果を得ることができる。
【0100】
上記待機時間に関する判断に関連して、上記待機時間が短くなるほど値が低くなる第1のコスト関数を採用してもよい。そして、実行順序を適正化するための第1のコスト関数は、目的項と制約項とを含み、当該目的項は、各設備における第1の処理が完了してから前記第1の処理の次に実行される第2の処理が開始されるまでの待機時間を短くするための目的項であってもよい。
【0101】
なお、コスト関数(上述した第1のコスト関数、及び、第2のコスト関数を含む)に関する変形例として、望ましい状態になればなるほど値が大きくなるように変形することもできる。例えば、コスト関数にマイナスの値を乗じたり、或いは、1-HBといった形にしたりすることで、望ましい状態になればなるほど値が大きくなるような関数を実現することができる。制約項についても同様の変形が可能である。このような変形例の関数を採用する場合には、ソルバーについても、値が大きいものを優先的に出力するようなソルバーを採用することが好ましい。
【0102】
また、第1のコスト関数は、更に制約項を含むことができ、当該制約項は、2種類の制約項を含むことができる。1番目の制約項は、各設備について、同時に処理される仕掛品を1つに定めるための制約項である。2番目の制約項は、各仕掛品の各処理工程について、実行される処理の回数を1に定めるための制約項である。
【0103】
目的項は、QUBO(Quadratic Unconstrained Binary Optimization:二次制約なし二値最適化)の形式で表現されてもよい。例えば、目的項は、以下の数式IVに従ったものでもよい。
【数8】
n:ジョブの実行順序
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、ジョブiの後に実行されるジョブ
d
ij:設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間
y
in:ジョブの実行順序nにおいてジョブiが実行される場合を1、実行されない場合を0で表現するバイナリ変数
【0104】
また、上記待機時間d
ijは、以下の数式Vに従ったものでもよい。
【数9】
UBX
m
ij:設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、iの次に実行されるジョブ
m:設備
P
im:ジョブiに対する処理が設備mにて開始されてから終了するまでにかかる時間
t
im:P
im(ただし、ジョブiが設備mを使用しない場合には0)
【0105】
上記待機時間の概念を、
図11を用いて説明する。ジョブiの処理の後にジョブjの処理が実行されるケースを想定する。このとき、両方のジョブに対しては、第1処理工程として設備m及び第2処理工程として設備m+1を用いた処理が行われる。T
1は、設備mにおいて、ジョブiが終了してからジョブjが開始されるまでの待機時間を表す。T
2は、設備mにおいてジョブjを処理するのにかかる時間を表す。T
3は、設備m+1においてジョブiを処理するのにかかる時間を表す。T
4は、設備m+1においてジョブiが終了してからジョブjが開始されるまでの待機時間を表す。
【0106】
このとき、T4については、以下の式で表すことができる。
T4=T1+T2-T3
【0107】
すなわち、直前の設備mでの待機時間と、直前の設備mでのジョブjの処理時間の合計から、次の設備m+1でのジョブiの処理時間を引いた値が、次の設備での待機時間となる。この待機時間をすべての設備に関して合計することで、ジョブiの次にジョブjを実行した場合のトータルの待機時間を算出することができる。
【0108】
ただし、
図12の様なケースも可能性としてあり、上記T
4=T
1+T
2-T
3をそのまま適用するとマイナスの値になってしまうので、トータルの待機時間を適切に計算できなくなる。そこで、各設備における待機時間の最低値として0を確保する。
【0109】
以上の形で待機時間を算出し、トータルとしての待機時間が短くなるようにコスト関数を算出することで、実行順序を適正化することができる。
【0110】
また、上記コスト関数では、制約項を設けてもよく、例えば、以下の数式VIに従ったものでもよい。
【数10】
n:ジョブの実行順序
i:仕掛品に対応するジョブ
j:仕掛品に対応するジョブであって、ジョブiの後に実行されるジョブ
y
in:ジョブの実行順序nにおいてジョブiが実行される場合を1、実行されない場合を0で表現するバイナリ変数
【0111】
1番目の項は、2つ以上のジョブが同時に実行できないことを示す(尚且つ、1つの実行順序では、必ずいずれかのジョブが実行されることを示す)。一方で、2番目の項は、各ジョブは一度だけ実行されることを示す。原理は、上述した第2のコスト関数の制約項(数式II)と同様である。
【0112】
例えば、ジョブの順番が、以下の通りである場合を仮定する。
J5⇒J4⇒J2⇒J1⇒J3
【0113】
この場合、
図13のようにマトリクス形式で表現できる。
【0114】
換言すれば、ジョブJ1~J5のあらゆる実行順序のパターンを、上記のマトリクスで表現することができる。その際に、各セルに入れる値は、0と1のバイナリ形式で表現することができる。
【0115】
図13のマトリクスにおいて、いかなるパターンのジョブの順番であっても、任意の列において、1の値が2か所以上発生することはない。このことは、2つ以上のジョブが同時に実行できないことに対応する。また、任意の列において、すべての値が0になることはない。このことは、1つの実行順序では、必ずいずれかのジョブが実行されることに対応する。
【0116】
また、
図13のマトリクスにおいて、いかなるパターンのジョブの順番であっても、任意の行において、1の値が2か所以上発生することはない。このことは、各ジョブは一度だけ実行されることに対応する。上記の制約項はこうしたルールに対応する。
【0117】
例えば、第1のコスト関数は、目的項及び制約項を組み合わせて、以下の数式VIIに示す様に表現される。
【0118】
【0119】
上記のコスト関数を適用することで、各仕掛品での各経路をどのような順番で実行すればよいかを導出することができる。
【0120】
上記のコスト関数を実際に情報処理装置で実行する際には、yinの値を、0又は1の範囲で変更しながら、最小値を探索してくことになる。従って、情報処理装置で実行する際には、ソルバーを用いて、上記yinの値の0又は1の組み合わせがどのパターンになったときに、最小値になるかを導出してもよい。
【0121】
ソルバーを搭載したハードウェアとしては、古典コンピュータであってもよいし、又は、量子コンピュータ、若しくは、量子アニーリングマシンであってもよい。好ましくは、量子コンピュータ、又は、量子アニーリングマシンであり、更に好ましくは、量子アニーリングマシンである。
【0122】
なお、上述した第3の実施形態に係る適正化の処理は、1回だけ実行してもよく、場合によっては、複数回実行してもよい。例えば、第2の実施形態に係る適正化の処理などにより、第2の組み合わせが複数出力された場合、第2の組み合わせごとに、第3の実施形態に係る適正化の処理を実行してもよい。そして、得られた各々のメイクスパンを比較して最小のものを抽出してもよい(
図14参照)。別の例では、第2の基準で最もコストの低いパターンだけでなく、2番目にコストの低いパターンを第3の実施形態で出力してもよい(
図15参照)。そして、それぞれのメイクスパンを算出した結果、2番目にコストの低いパターンの方が、最もコストの低いパターンよりも、メイクスパンが短い可能性もある(仮にそうであっても、最もコストの低いパターンでも遜色のないメイクスパンが得られるが)。こうした方法の利点は、純粋に第2の基準だけで判定した場合に、第1の基準で最も適した解と一致しない場合に、その解を得られる可能性を高めることができる点にある。
【0123】
以上のように、上述した第1の実施形態及び第2の実施形態のうち少なくとも1つの実施形態と、第3の実施形態とを組み合わせることで、複数段階による適正化を実行することができる。こうした複数段階での適正化プロセスを経ることで、短時間で複雑な生産計画を立てることが可能となる。
【0124】
上述した第1の実施形態及び第2の実施形態を省略したうえで、実行順を出力する計算を実行しようとすると、候補となる組み合わせの数が指数関数的に増大するため計算量が多くなってしまう。逆にいえば、実行順を出力するステップを実施する前に、予め、上述した第1の実施形態及び第2の実施形態のうち少なくとも1つの実施形態を実施することで、実行順を出力するための計算量を減らすことができる。
【0125】
好ましい組み合わせとしては、第1の実施形態と、第2の実施形態と、第3の実施形態とを含む組み合わせである。これにより、第一段階では、特定の仕掛品を各工程で処理するにあたって、どの設備を選択すればよいかについて、経路問題の技術を応用して適正化される。第二段階では、各仕掛品及び各処理ごとに選択された設備の組み合わせを経路候補として考え、各仕掛品間での経路候補をどのように組み合わせればよいかについて適正化される。第三段階では、経路候補の組み合わせにおいて、どの順序で実行すればよいかについて適正化される。
【0126】
7.第3の実施形態を用いた変形例
上述した第3の実施形態では、第1の実施形態及び第2の実施形態のうち少なくとも1つと組み合わせて実施される。
【0127】
しかし、第3の実施形態を用いた変形例として、第1の実施形態及び第2の実施形態のいずれとも組み合わせることなく、第3の実施形態が実施されてもよい。
【0128】
例えば、ある場合においては、複数の仕掛品(及びこれに対応する複数のジョブ)があり、各工程でどの設備を使用するかがほぼ確定していることがある。当該例に当てはまる場合として、特別な要求仕様を満たす注文品で特定の設備でしか作れない場合や、過去の経験から、どの設備を使用するのが適しているかがほぼ確定している場合などが挙げられる。これらの場合には、仕掛品ごとにどの設備を選択するかを考慮する必要性が低い。したがって、第1の実施形態に係る処理を実施する必要性が低い。また、結果として、仕掛品ごとの経路(即ち、各処理工程においてどの設備を使用するかを経路問題に沿って表現したもの)を、各仕掛品間でどのように組み合わせるかに関するパターンも1つ、又は少数(例えば、2以下、3以下、又は、4以下)に絞られる。したがって、第2の実施形態に係る処理を実施する必要性も低い。
【0129】
よって、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報同士の組み合わせ情報については、情報処理装置で導出することなく、予め、電子データとして準備しておくことができる。そして、組み合わせ情報の準備した電子データを、情報処理装置に入力することができる。
【0130】
したがって、第3の実施形態を用いた変形例では、以下のステップを含む。
(1)組み合わせ情報を情報処理装置が取得するステップであって、組み合わせ情報は、各処理工程でどの設備を使用するかを仕掛品ごとに定義した情報同士の組み合わせ情報である、当該ステップ、及び、
(2)生産計画における最初の処理から最後の処理が終わるまでの期間が短くなるように、組み合わせ情報に少なくとも部分的に基づいて、各処理工程の実行順を情報処理装置が出力するステップ。
【0131】
ステップ(2)の具体例は、上述した第3の実施形態において説明した通りである。
【0132】
第3の実施形態を用いた変形例は、どの順序で実行すればよいかに関する適正化を、短時間で導出する目的にかなうものであり、そして、当該目的に係る課題を解決する手段となる。
【0133】
8.メイクスパンの算出
第3の実施形態又はその変形例を実施した後、更に、実行順序に基づいてメイクスパンの算出を行ってもよい。メイクスパンは、生産計画における最初の処理から最後の処理が終わるまでの期間を意味する。
【0134】
算出するための方法は特に限定されず、例えば、情報処理装置を用いてガントチャートを生成してもよい。そして、ガントチャートにおける開始点から終了点までの時間を検出して、メイクスパンを算出してもよい。
【0135】
例えば、第3の実施形態又はその変形例を実施する際に、組み合わせ情報が1つではなく、複数(例えば、2つ)ある場合、出力される実行順序は、各々の組み合わせ情報ごとに導出される。導出される実行順序ごとに、メイクスパンを算出して、メイクスパンが短い方を適正な実行順として採用することができる(
図14)。
【0136】
別の例では、第3の実施形態又はその変形例を実施する際に、最も待機時間が短くなるパターンだけを出力するのではなく、待機時間の短さを基準に優先順位をつけて、複数のパターンを出力してもよい。この場合には、複数のパターンそれぞれについて、メイクスパンを算出し、メイクスパンが最も短いものを適正な実行順として採用することができる(
図15)。
【実施例】
【0137】
実施例1
仮想事例として、以下の表に示す事例を設定した。具体的には、仕掛品にかかるジョブJ1~J5について、3つの処理工程で製造されると想定した。工程1では、設備M1~設備M2が使用可能であり、工程2では、設備M3~設備M4が使用可能であり、工程3では、設備M5~設備M6が使用可能である。そして、各仕掛品に対して、特定の設備で処理したときにかかる時間を数値で表してある。例えば、J4をM1で処理した場合には、かかる時間は6である。
【0138】
【0139】
言語としてpythonを用いて上記第1の実施形態~第3の実施形態にかかる処理を実装した。
【0140】
各仕掛品J1~J5について、第1の実施形態に示した手順を実施した。具体的にはダイクストラ法を実行し、ペナルティ付加としては各辺に10ずつ付加する処理を行った。候補となる経路を3つずつ導出した。
【0141】
結果を以下の通り示す。
【0142】
J1 [0,1,3,5,7],[0,2,3,6,7],[0,1,4,5,7]
J2 [0,2,3,5,7],[0,1,3,6,7],[0,2,4,5,7]
J3 [0,1,4,5,7],[0,2,4,6,7],[0,1,3,5,7]
J4 [0,2,3,5,7],[0,1,3,6,7],[0,2,4,5,7]
J5 [0,1,3,6,7],[0,2,3,5,7],[0,1,4,6,7]
【0143】
なお、各[]内の両端の0及び7は開始地点及び終了地点を示す。0及び7の間に示される数値は、表2に示すM1~M6の設備番号に対応している。
【0144】
次に、候補となる経路に基づいて、更には、上記第2実施形態の手順に従って、最適な経路の組み合わせを導出した。具体的には、数式IIIに示すコスト関数(ハイパーパラメータλは105)を使用して、コストを算出した。ソルバーとしては、シミュレーテッドアニーリング(SA)、シミュレーテッド量子アニーリング(SQA)、量子コンピューティング(QC)等のソルバーが利用可能である。今回は、シミュレーテッドアニーリング(SA)を使用した。
【0145】
結果として、以下の経路の組み合わせが導出された。
J1 [0,1,4,5,7]
J2 [0,2,3,5,7]
J3 [0,2,4,6,7]
J4 [0,2,3,5,7]
J5 [0,1,4,6,7]
【0146】
次に、J1~J5までの仕掛品に対する処理の実行順序を、上記第3の実施形態の手順に従って導出した。具体的には、数式VIIに示すコスト関数(ハイパーパラメータλは105)を使用して、コストを算出した。ソルバーとしては、シミュレーテッドアニーリング(SA)を使用した。
【0147】
結果として、以下の実行順が導出された。
J5⇒J4⇒J2⇒J1⇒J3
【0148】
上記実行順に従いガントチャートを作成した。結果を
図16に示す。開始から終了までのスパン(Makespan)は16であった。
【0149】
なお熟練工により作成された最適解のガントチャートでは、スパンは15であり、情報処理装置を用いて作成されたガントチャートは遜色のないものとなっていた。また、情報処理装置により実行順が導出されるまでにかかった時間は3秒であった。
【0150】
従って、本開示の方法により、短時間で最適解と遜色のない解を出力できることが示された。
【0151】
実施例2
【0152】
仮想事例として、以下の表3に示す事例を設定した。
【0153】
【0154】
上記実施例1と同様の手法で適切な実行順序を導出した。結果として、以下の経路の組み合わせが導出された。
J1 [0,2,3,8,9]
J2 [0,1,3,5,9]
J3 [0,2,3,7,9]
J4 [0,2,3,5,9]
J5 [0,1,4,6,9]
【0155】
また、実行順序は、J2⇒J3⇒J5⇒J4⇒J1であった。
【0156】
結果を
図17に示す。開始から終了までのスパン(Makespan)は12であった。なお、ヒトの手により作成された最適解でもスパン(Makespan)は12であった。情報処理装置により実行順が導出されるまでにかかった時間は3秒であった。
【0157】
実施例3
【0158】
ジョブの数を100に増やして、上記実施例1~2と同様の処理を実行した。結果を
図18に示す。開始から終了までのスパン(Makespan)は208であった。情報処理装置により実行順が導出されるまでにかかった時間は50分であった。
【0159】
以上、発明の具体的な実施形態について説明してきた。上記実施形態は、具体例に過ぎず、本発明は上記実施形態に限定されない。例えば、上述の実施形態の1つに開示された技術的特徴は、他の実施形態に適用することができる。また、特記しない限り、特定の方法については、一部の工程を他の工程の順序と入れ替えることも可能であり、特定の2つの工程の間に更なる工程を追加してもよい。本発明の範囲は、特許請求の範囲によって規定される。
【符号の説明】
【0160】
100 情報処理装置
110 第1の情報処理装置
120 第2の情報処理装置
200 プログラム
300 ソルバー
400 ネットワーク
500 システム