(57)【要約】【課題】大規模で複雑な制約を有するスケジューリング問題であっても、全ての制約を満足した実行可能解を従来よりも高速に求めることができ、かつ従来よりも簡単にメンテナンスできる仕組みで、生産又は物流に係るスケジュールを作成できるようにする。【解決手段】スケジュール作成装置１００は、数理計画問題に基づいて、生産又は物流に係るスケジュールを作成する。緩和問題構築部１０３は、数理計画問題から制約の一部を取り除き、取り除いた制約の違反量に対してペナルティが課されるように目的関数を修正したラグランジュ緩和問題を構築する。緩和問題求解部１０４は、緩和問題構築部１０３で構築したラグランジュ緩和問題を求解する。固定化部１０６は、緩和問題求解部１０４で求解した結果に基づいて数理計画問題に含まれる条件を固定化する。主問題求解部１０７は、固定化部１０６で条件を固定化した数理計画問題を求解する。【選択図】図１
2019191803.tif 000002
【特許請求の範囲】
【請求項１】
制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成するスケジュール作成装置であって、
前記数理計画問題から前記制約の一部を取り除き、前記目的関数を修正した緩和問題を構築する緩和問題構築手段と、
前記緩和問題構築手段で構築した緩和問題を求解する緩和問題求解手段と、
前記緩和問題求解手段で求解した結果に基づいて前記数理計画問題に含まれる条件を固定化する固定化手段と、
前記固定化手段で前記条件を固定化した前記数理計画問題を求解する求解手段とを備えたことを特徴とするスケジュール作成装置。
【請求項２】
前記緩和問題構築手段は、前記取り除いた制約の違反量に対してペナルティが課されるように、ラグランジュ乗数を用いて前記目的関数を修正したラグランジュ緩和問題を構築することを特徴とする請求項１に記載のスケジュール作成装置。
【請求項３】
ラグランジュ乗数を更新する更新手段を備え、
前記緩和問題求解手段は、前記更新手段で更新したラグランジュ乗数を反映させたラグランジュ緩和問題を求解することを特徴とする請求項２に記載のスケジュール作成装置。
【請求項４】
前記緩和問題構築手段は、ラグランジュ分解調整法により、ラグランジュ緩和問題を分解することを特徴とする請求項２又は３に記載のスケジュール作成装置。
【請求項５】
前記緩和問題求解手段は、前記緩和問題構築手段で構築した緩和問題を求解するために、最適化又は準最適化することで、最適解又は準最適解を得ることを特徴とする請求項１乃至４のいずれか１項に記載のスケジュール作成装置。
【請求項６】
選択可能な複数の機械を含む一工程を少なくとも含み、対象物に処理を行うプロセスにおけるスケジュールを作成することを特徴とする請求項１乃至５のいずれか１項に記載のスケジュール作成装置。
【請求項７】
前記数理計画問題は、同一機械が同一タイミングに処理できる対象物数の上限と、対象物毎、工程毎及び機械毎の処理に掛かる時間と、製品毎及び工程毎の処理開始可能時刻とに基づいて、所定の操業指標を良くすることを目的とすることを特徴とする請求項６に記載のスケジュール作成装置。
【請求項８】
前記数理計画問題は、さらに対象物毎及び工程毎の納期時刻と、対象物毎及び工程毎の納期遅れに掛かる単価とに基づいて、納期遅れ費用を最小化することを目的とすることを特徴とする請求項７に記載のスケジュール作成装置。
【請求項９】
前記固定化手段は、前記緩和問題求解手段で求解した結果に基づいて、対象物毎の使用機械を固定化することを特徴とする請求項６乃至８のいずれか１項に記載のスケジュール作成装置。
【請求項１０】
前記固定化手段は、前記緩和問題求解手段で求解した結果に基づいて、処理順を固定化することを特徴とする請求項６乃至９のいずれか１項に記載のスケジュール作成装置。
【請求項１１】
制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成するスケジュール作成方法であって、
前記数理計画問題から前記制約の一部を取り除き、前記目的関数を修正した緩和問題を構築するステップと、
前記緩和問題を求解するステップと、
前記緩和問題を求解した結果に基づいて前記数理計画問題に含まれる条件を固定化するステップと、
前記条件を固定化した前記数理計画問題を求解するステップとを有することを特徴とするスケジュール作成方法。
【請求項１２】
制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成するためのプログラムであって、
前記数理計画問題から前記制約の一部を取り除き、前記目的関数を修正した緩和問題を構築する緩和問題構築手段と、
前記緩和問題構築手段で構築した緩和問題を求解する緩和問題求解手段と、
前記緩和問題求解手段で求解した結果に基づいて前記数理計画問題に含まれる条件を固定化する固定化手段と、
前記固定化手段で前記条件を固定化した前記数理計画問題を求解する求解手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生産又は物流に係るスケジュールを作成するスケジュール作成装置、方法及びプログラムに関する。
【背景技術】
【０００２】
製造業や流通業において業務を円滑に進める上で、生産のための仕事とその時刻を決定したり、搬送すべき商品とその時刻を決定したりするスケジューリング業務はなくてはならないものである。スケジューリング業務は、絶えず発生する新たな注文、生産量の変更、搬送時刻の遅れといった変動に常に晒されるため、都度スケジュールの作成と修正を余儀なくされる等、業務負荷が高い。また、一度作成したスケジュールは何度も人が見直し、前提条件を変更したり、一部を固定したりすることを繰り返す必要があり、人が我慢できる限界として一度のスケジュールの作成は１０分程度が限界となるため、スケジュール作成は高速に行われる必要がある。このため、スケジューリングの支援技術が必須である。
【０００３】
これを実現する技術として、スケジュールの作成を最適化問題として捉え、その最適解を求める数理計画法、或いは準最適解を求めるヒューリスティック手法等が提案されている。産業界で取り扱う問題は、考慮しなくてはならない項目、対象とする工程、対象物が非常に多く、かつ複数工程に跨って処理される仕事の調整を取りながら、各工程で要求される日時設定された納期や設備（機械）使用の平準化の実現や、各貯蔵庫での在庫切れ回避と貯蔵容量上限制限を遵守する必要がある等、複雑な制約が設定されるために、その規模が膨大なものとなり、計算時間が長く掛かる問題があった。また、スケジュールを作成する場合に、経済状況や景気変動による操業の変化が頻繁に起き、制約の変更や、目的となる納期遵守と設備使用の平準化の優先度の変化、或いは他の目的の追加等、メンテナンスの必要に迫られ、この負荷削減が望まれていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３２８９７７号公報
【特許文献２】特開２０１０−２８５０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、ラグランジュ分解調整法を用いる多品目多工程ロットサイズスケジューリング方法が開示されている。特許文献１では、機械干渉の解消の有無と仕掛品在庫の充足の有無とを判定し、機械干渉が解消されていないか、あるいは仕掛品在庫が充足していない場合には、対応するラグランジュ乗数を更新するようにしている。しかしながら、このラグランジュ乗数の更新により機械干渉の解消や在庫の充足が実現されることを保証するものではなく、全ての制約を満足した実行可能なスケジュールを得られる保証はない。
【０００６】
特許文献２には、列車の運行ダイヤに変更が生じたときに鉄道車両もしくは乗務員の運用計画の再作成を行う運用計画再作成に関する技術が開示されている。特許文献２では、
ラグランジュ緩和法を用いて、最適解の下界値を求め、主問題の実行可能解と比較することで反復処理を行うようにしている。しかしながら、ラグランジュ緩和法を用いる際の計算と、実行可能解を求める際の計算とが大きく異なっており、仕組みが複雑なものとなっている。
【０００７】
本発明は上記のような点に鑑みてなされたものであり、大規模で複雑な制約を有するスケジューリング問題であっても、全ての制約を満足した実行可能解を従来よりも高速に求めることができ、かつ従来よりも簡単にメンテナンスできる仕組みで、生産又は物流に係るスケジュールを作成できるスケジュール作成装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するための本発明の要旨は、以下のとおりである。
［１］  制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成するスケジュール作成装置であって、
前記数理計画問題から前記制約の一部を取り除き、前記目的関数を修正した緩和問題を構築する緩和問題構築手段と、
前記緩和問題構築手段で構築した緩和問題を求解する緩和問題求解手段と、
前記緩和問題求解手段で求解した結果に基づいて前記数理計画問題に含まれる条件を固定化する固定化手段と、
前記固定化手段で前記条件を固定化した前記数理計画問題を求解する求解手段とを備えたことを特徴とするスケジュール作成装置。
［２］  前記緩和問題構築手段は、前記取り除いた制約の違反量に対してペナルティが課されるように、ラグランジュ乗数を用いて前記目的関数を修正したラグランジュ緩和問題を構築することを特徴とする［１］に記載のスケジュール作成装置。
［３］  ラグランジュ乗数を更新する更新手段を備え、
前記緩和問題求解手段は、前記更新手段で更新したラグランジュ乗数を反映させたラグランジュ緩和問題を求解することを特徴とする［２］に記載のスケジュール作成装置。
［４］  前記緩和問題構築手段は、ラグランジュ分解調整法により、ラグランジュ緩和問題を分解することを特徴とする［２］又は［３］に記載のスケジュール作成装置。
［５］  前記緩和問題求解手段は、前記緩和問題構築手段で構築した緩和問題を求解するために、最適化又は準最適化することで、最適解又は準最適解を得ることを特徴とする［１］乃至［４］のいずれか一つに記載のスケジュール作成装置。
［６］  選択可能な複数の機械を含む一工程を少なくとも含み、対象物に処理を行うプロセスにおけるスケジュールを作成することを特徴とする［１］乃至［５］のいずれか一つに記載のスケジュール作成装置。
［７］  前記数理計画問題は、同一機械が同一タイミングに処理できる対象物数の上限と、対象物毎、工程毎及び機械毎の処理に掛かる時間と、製品毎及び工程毎の処理開始可能時刻とに基づいて、所定の操業指標を良くすることを目的とすることを特徴とする［６］に記載のスケジュール作成装置。
［８］  前記数理計画問題は、さらに対象物毎及び工程毎の納期時刻と、対象物毎及び工程毎の納期遅れに掛かる単価とに基づいて、納期遅れ費用を最小化することを目的とすることを特徴とする［７］に記載のスケジュール作成装置。
［９］  前記固定化手段は、前記緩和問題求解手段で求解した結果に基づいて、対象物毎の使用機械を固定化することを特徴とする［６］乃至［８］のいずれか一つに記載のスケジュール作成装置。
［１０］  前記固定化手段は、前記緩和問題求解手段で求解した結果に基づいて、処理順を固定化することを特徴とする［６］乃至［９］のいずれか一つに記載のスケジュール作成装置。
［１１］  制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成するスケジュール作成方法であって、
前記数理計画問題から前記制約の一部を取り除き、前記目的関数を修正した緩和問題を構築するステップと、
前記緩和問題を求解するステップと、
前記緩和問題を求解した結果に基づいて前記数理計画問題に含まれる条件を固定化するステップと、
前記条件を固定化した前記数理計画問題を求解するステップとを有することを特徴とするスケジュール作成方法。
［１２］  制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成するためのプログラムであって、
前記数理計画問題から前記制約の一部を取り除き、前記目的関数を修正した緩和問題を構築する緩和問題構築手段と、
前記緩和問題構築手段で構築した緩和問題を求解する緩和問題求解手段と、
前記緩和問題求解手段で求解した結果に基づいて前記数理計画問題に含まれる条件を固定化する固定化手段と、
前記固定化手段で前記条件を固定化した前記数理計画問題を求解する求解手段としてコンピュータを機能させるためのプログラム。
【発明の効果】
【０００９】
本発明によれば、大規模で複雑な制約を有するスケジューリング問題であっても、全ての制約を満足した実行可能解を従来よりも高速に求めることができ、かつ従来よりも簡単にメンテナンスできる仕組みで、生産又は物流に係るスケジュールを作成することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るスケジュール作成装置の機能構成を示す図である。
【図２】実施形態に係るスケジュール作成装置によるスケジュール作成方法の手順を示すフローチャートである。
【図３】多段工程並列機械フローショップ問題の概要を説明するための図である。
【図４】ラグランジュ緩和問題を求解した結果を示すガントチャートである。
【図５】ラグランジュ乗数を更新してラグランジュ緩和問題を求解した結果を示すガントチャートの遷移を表す図である。
【図６】主問題を求解した結果を示すガントチャートである。
【図７】取り扱う製品数が増えたときの計算時間の変化を示す特性図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
図１に、実施形態に係るスケジュール作成装置１００の機能構成を示す。スケジュール作成装置１００は、制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成する。スケジュール作成装置１００は、入力部１０１と、主問題構築部１０２と、緩和問題構築部１０３と、緩和問題求解部１０４と、ラグランジュ乗数更新部１０５と、固定化部１０６と、主問題求解部１０７と、出力部１０８とを備える。
【００１２】
入力部１０１は、スケジュールを作成するのに必要な情報を入力する。
主問題構築部１０２は、スケジュールを作成するための、制約及び目的関数で定式化される数理計画問題を主問題として構築する。
【００１３】
緩和問題構築部１０３は、主問題構築部１０２で構築した数理計画問題から制約の一部を取り除き、目的関数を修正した緩和問題を構築する。緩和問題として、取り除いた制約の違反量に対してペナルティが課されるように、ラグランジュ乗数を用いて目的関数を修正したラグランジュ緩和問題を構築する。本実施形態では、緩和問題構築部１０３が本発明でいう緩和問題構築手段として機能する。
【００１４】
緩和問題求解部１０４は、緩和問題構築部１０３で構築したラグランジュ緩和問題を求解する。また、ラグランジュ乗数更新部１０５は、ラグランジュ乗数を更新する。緩和問題求解部１０４及びラグランジュ乗数更新部１０５は、所定の条件を満たすまで、ラグランジュ乗数を更新し、このラグランジュ乗数を反映させたラグランジュ緩和問題を求解することを繰り返す。本実施形態では、緩和問題求解部１０４が本発明でいう緩和問題求解手段として機能し、ラグランジュ乗数更新部１０５が本発明でいう更新手段として機能する。
【００１５】
固定化部１０６は、緩和問題求解部１０４で求解した結果に基づいて、主問題構築部１０２で構築した数理計画問題に含まれる条件を固定化する。本実施形態では、固定化部１０６が本発明でいう固定化手段として機能する。
主問題求解部１０７は、固定化部１０６で条件を固定化した数理計画問題を求解する。本実施形態では、主問題求解部１０７が本発明でいう求解手段として機能する。
出力部１０８は、主問題求解部１０７で求解した結果であるスケジュールを出力する。ここでいう出力とは、例えば不図示のディスプレイに表示したり、本装置１００の外部機器に送出したりすることをいう。
【００１６】
以下、スケジュール作成装置１００によるスケジュール作成方法の具体例を説明する。図２は、スケジュール作成装置１００によるスケジュール作成方法の手順を示すフローチャートである。
本実施形態では、生産プロセスにおけるスケジュールを作成する。本実施形態で取り扱う生産プロセスは、選択可能な複数の機械を含む一工程を少なくとも含む複数の工程を有し、各工程で対象物である製品に対して処理を行う。説明の簡単化のため、制約を表す制約式は単純なものに限定して記述した多段工程並列機械フローショップ問題を例とする。フローショップ問題とは、製品の生産工程の順序が同一のものをいう。なお、本実施形態では、多段工程並列機械フローショップ問題を例とするが、選択可能な複数の機械を含む一工程のスケジュール問題であっても、ジョブショップ問題であっても、また制約式が複雑になり、かつ問題規模が大きくなったとしても一般性は失わない。ジョブショップ問題とは、製品毎に生産工程が異なるものをいう。
【００１７】
図３を参照して、本実施形態で取り扱う多段工程並列機械フローショップ問題の概要を説明する。図３に示すのは２工程２機械フローショップ問題であり、工程Ｐ１及び工程Ｐ２の２工程があり、各工程Ｐ１及びＰ２には選択可能な２台の機械Ｊ１及びＪ２が存在する。図中の左から右方向は時間を表す。また、処理３０１は、製品に対して行う所定の処理を表し、その長さが実施期間を表し、処理３０１同士をつなぐ線が製品の移行を表す。なお、工程Ｐ１及び工程Ｐ２に存在する機械名を同一としたが、別機械である。
【００１８】
製品ｉは、工程（ｐ∈｛１、２｝）の全てを順次通過し、工程を通過する際には機械（ｊ∈｛１、２｝）のいずれか一つで処理が行われる。同一機械は同一タイミング（同一時刻）にＮ個までの製品数しか処理できない。本実施形態ではＮ＝１とする。製品毎・工程毎・機械毎の処理に掛かる時間が予め与えられており、ある工程で処理が完了すると、その後に次の工程に移動可能となる。また、製品毎・工程毎の処理開始可能時刻と、製品毎・工程毎の納期時刻とが予め与えられている。これらの制約を守り、良くしたい操業指標として納期遅れ費用を最小化することを目的として、製品毎の使用機械、処理開始時刻を決定することが、本実施形態で取り扱う主問題である。以下に述べる例では、ｉ＝｛１、２、・・・、８｝であるとする。
【００１９】
ステップＳ１で、入力部１０１は、スケジュールを作成するのに必要な情報を入力する。これらの情報は、例えばネットワーク上の不図示の上位コンピュータから入力されるようにしてもよいし、ユーザが直接入力するようにしてもよい。
具体的には、スケジュールを作成したい期間であるスケジュール作成期間や、同一機械が同一時刻に処理できる製品数の上限Ｎ（本実施形態ではＮ＝１）を入力する。
【００２０】
また、表１に示すように、製品毎・工程毎・機械毎の処理に掛かる時間を入力する。
【００２１】
【表１】
2019191803.tif 000003
【００２２】
また、表２に示すように、製品毎・工程毎の処理開始可能時刻を入力する。ここでは、処理開始可能時刻を、スケジュール作成期間の最初の時刻を０として与えている。
【００２３】
【表２】
2019191803.tif 000004
【００２４】
また、表３に示すように、製品毎・工程毎の納期時刻を入力する。ここでは、納期時刻を、スケジュール作成期間の最初の時刻を０として与えている。
【００２５】
【表３】
2019191803.tif 000005
【００２６】
また、表４に示すように、製品毎・工程毎の納期遅れに掛かる単価（１日当たりの費用）を入力する。
【００２７】
【表４】
2019191803.tif 000006
【００２８】
ステップＳ２で、主問題構築部１０２は、制約及び目的関数で定式化される数理計画問題を主問題として構築する。上述したように、納期遅れ費用を最小化することを目的として、製品毎の使用機械、処理開始時刻を決定することが、本実施形態で取り扱う主問題である。主問題の制約及び目的関数は、数学式を用いて定式化する。なお、ここでいう主問題の構築、制約及び目的関数の定式化とは、ユーザにより予め与えられている数学式の枠組みに対して、入力部１０１で入力した情報を反映させて制約式、目的関数とすることをいう。本実施形態では、厳密解を求める手法として混合整数線形計画法を用い、この形式に則って、制約及び目的関数を定式化する。
【００２９】
定式化にあたり、次のように定数、決定すべき変数（決定変数）が定義されており、ステップＳ１で入力した情報に基づいて値を設定する。
［定数］
Ｎ：同一機械が同一時刻に処理できる製品数の上限
Ｄipj：製品ｉの工程ｐ、機械ｊでの処理時間
Ａip：製品ｉの工程ｐの処理開始可能時刻
Ｌip：製品ｉの工程ｐの納期時刻
ｃip：製品ｉの工程ｐの納期遅れに掛かる単価
【００３０】
本実施形態では、１日を均等分割したタイムスロットを考え（分割数Ｍ）、この離散的な時刻であるタイムスロットを用いて定式化を行う。例えばＭ＝４とすると、タイムスロットの単位は６時間となり、６時間単位での離散的な時間をイメージした定式化となる。本実施形態でではＭ＝１０とする。
【００３１】
［決定変数／独立なもの］
δitmpj：製品ｉが工程ｐ、機械ｊでｔ日、タイムスロットｍで処理を開始する場合は１、それ以外は０とする変数
δＴitmpj：製品ｉが工程ｐ、機械ｊでｔ日、タイムスロットｍで処理中の場合は１、それ以外は０とする変数
【００３２】
［決定変数／従属なもの］
ｂip：製品ｉの工程ｐの処理開始時刻（日）
δＪipj：製品ｉが工程ｐ、機械ｊで処理する場合は１、それ以外は０とする変数
ｅip：製品ｉの工程ｐの納期からの遅れ時間（日）
【００３３】
以上のようにした定数、決定変数を用いて、目的関数は、式（１）のように納期遅れ費用を最小化させるものとして定式化される。
【００３４】
【数１】
2019191803.tif 000007
【００３５】
また、制約式は、例えば式（２）〜式（９）のように定式化される。式（２）は、各製品は各工程では必ず一度処理される必要があることを表す。式（３）は、各製品は同一機械を一度しか使用できないことを表す。式（４）は、各製品の各工程での処理開始時刻ｂipが、どのタイムスロットに対応するかを示す関係式を表す。式（５）は、製品がある工程のある機械を使用する場合には、処理開始時刻から処理時間分は処理中となることを表す。式（６）は、一度に同一機械が処理できる製品数の上限はＮ個までであることを表す。式（７）は、δitmpjが１となる場合は、δＪipjも１となることを表す。式（８）は、製品を処理する場合には前工程の処理終了後に次工程の処理が開始されることを表す。式（９）は、製品の納期時刻Ｌipに対して処理の終了が遅れた分の時間を納期遅れとして定義した式である。
【００３６】
【数２】
2019191803.tif 000008
【００３７】
ステップＳ３で、緩和問題構築部１０３は、ステップＳ２において構築した数理計画問題から制約式の一部を取り除き、目的関数を修正したラグランジュ緩和問題を構築する。ラグランジュ緩和問題では、取り除いた制約式に対して、制約を違反する量を違反量として新たに数式で定義し、その数式（例えば１次式）を目的関数に取り込むことで、違反量を最小化するように定式化する。
定式化にあたり、次のようなｗtmpj（定数）を設ける。
ｗtmpj：製品ｉが工程ｐの機械ｊを占拠することに対するタイムスロット当たりのペナルティ単価
ペナルティ単価ｗtmpjの初期値、表５に示すように所与条件として与え、この情報に基づいて値が設定される。このｗtmpjはラグランジュ乗数と呼ばれる。
【００３８】
【表５】
2019191803.tif 000009
【００３９】
本実施形態では、式（６）を緩和、つまり制約式から取り除くとともに、取り除いた制約式の違反量（ΣiδＴitmpj−Ｎ）（＞０）に対してペナルティが課されるように、式（１−２）のように、ラグランジュ乗数ｗtmpjを用いて目的関数を修正する。ラグランジュ乗数ｗtmpjが大きいほど、違反量が少なくなるように最適化又は準最適化が実行されることとなる。
【００４０】
【数３】
2019191803.tif 000010
【００４１】
ここで、ラグランジュ分解調整法により、ラグランジュ緩和問題を分解するようにしてもよい。式（１−２）の目的関数は、ｉに着目すると、式（１−３）に変形することも可能である。式（１−３）において、最終項は定数であるため省略可能であり、式（１−４）のように変形できる。このようにラグランジュ緩和問題の制約式（式（２）〜式（５）、式（７）〜式（９））と目的関数（式（１−４））は、製品ｉに対して、それぞれ分けて問題を解ける形となっているため、それぞれに分解して問題を解いてもかまわない。
【００４２】
【数４】
2019191803.tif 000011
【００４３】
なお、どの制約式を取り除き、違反量を目的関数にどう取り込むかは、ユーザにより予め定義されており、緩和問題構築部１０３はそれに従ってラグランジュ緩和問題を構築する。或いは、緩和問題構築部１０３は、例えば対話形式のユーザインタフェースを介してユーザからの指示を受け、その指示に従って、どの制約式を取り除き、違反量を目的関数にどう取り込むかを都度決定するようにしてもよい。
【００４４】
ステップＳ４で、緩和問題求解部１０４は、ステップＳ３において構築したラグランジュ緩和問題を求解するために、最適化又は準最適化することで、最適解又は最適解に近い値の準最適解を得る。例えば最適化の手法として分枝限定法を用いて、ラグランジュ緩和問題の厳密解を得る。なお、分枝限定法は一般に知られた手法であり、ここではその説明を省略する。また、ラグランジュ緩和問題の求解には、最適化又は準最適化の手法が実装された市販のソルバーを用いてもよい。
この求解により、制約式（式（２）〜式（５）、式（７）〜式（９））を満足し、目的関数（式（１−２）〜式（１−４）のいずれか）を最小化する決定変数の値が計算される。すなわち、式（６）で表される同一機械が同一時刻に処理できる製品数の上限制約を緩和したかたちで、製品毎の使用機械、処理開始時刻が決定される。
【００４５】
表６及び図４に、ラグランジュ緩和問題を求解した結果を示す。図４のガントチャートにおいて、横軸が時間を表す。また、矩形が各処理の実施期間を表し、各矩形に示されている数字は製品番号を表す。図４に示すようにガントチャートを画面表示する際には、各矩形に色を付しておく（図４、図５、図６ではドットで表現する）。同一機械が同一時刻に処理できる製品数の上限制約を緩和しているので、同一時刻で同一機械を使用している状況も発生し、その重なりの数が多いほど矩形の色が濃くなる（図４、図５ではドットの密度が増えている）。破線は、処理開始可能時刻から処理開始時刻までを表し、製品毎に引かれている。また、実線は、処理終了時刻から納期までを表し、製品毎に引かれており、細線は納期が守られている場合を、太線は納期より遅れている場合を表す。
【００４６】
【表６】
2019191803.tif 000012
【００４７】
ステップＳ５で、ラグランジュ乗数更新部１０５は、ラグランジュ乗数ｗtmpjを更新するか否かの判定を行う。本実施形態では、次に述べるようにループ回数２１でラグランジュ乗数の更新を終了する。ラグランジュ乗数ｗtmpjを更新する必要があれば（ステップＳ５；Ｙｅｓ）、ステップＳ６に処理を進め、更新する必要がなければ（ステップＳ５；Ｎｏ）、ステップＳ７に処理を進める。
【００４８】
ステップＳ６で、ラグランジュ乗数更新部１０５は、ラグランジュ乗数を更新し、その後、ステップＳ４に処理を戻す。
本実施形態では、式（１０）に従って、ラグランジュ乗数を更新する。ｌはループ回数を示し、定数及び決定変数の右肩の（ｌ）は各ループでの定数、決定変数の取る値を表す。また、ｗはラグランジュ乗数更新用の係数を示し、本実施形態はｗ＝０．５とした。式（１０）では、ループ回数ｌでの違反量（Σi(l)δＴitmpj−Ｎ）が大きいほど、次のループでのラグランジュ乗数ｗtmpj(l+1)が大きくなるかたちとなっている。また、ループ回数を重ねるほど、次のループでのラグランジュ乗数ｗtmpj(l+1)の変化量が抑えられるかたちとなっている。
【００４９】
【数５】
2019191803.tif 000013
【００５０】
ラグランジュ乗数の更新を終了する条件は、予め設定されている。例えば前回のループからのラグランジュ乗数の変化量に対する閾値や、ループ回数の閾値等を予め設定しておき、これら閾値との比較に基づいてラグランジュ乗数を更新するか否かを判定する。本実施形態ではループ回数２１でラグランジュ乗数の更新を終了する。
【００５１】
図５に、ラグランジュ乗数を更新してラグランジュ緩和問題を求解した結果を示すガントチャートの遷移を表す。ループ回数が増えるほど、矩形の濃い色の箇所（矩形の重なり）が減っており、同一機械が同一時刻に処理できる製品数の上限制約が徐々に守られるようになっていることがわかる。
【００５２】
ステップＳ７で、固定化部１０６は、ステップＳ４において求解した結果に基づいて数理計画問題に含まれる条件を固定化する。
例えば、固定化部１０６は、ステップＳ４においてラグランジュ緩和問題を求解して得られた製品毎の使用機械のうち、実現可能解である機械を使用するものとして、選択的に固定化する。２１回目のループでラグランジュ緩和問題を求解した結果として、例えば製品１の工程１で機械２を使用することが得られた場合、主問題に式（１１）のような固定化制約式を追加する。
【００５３】
【数６】
2019191803.tif 000014
【００５４】
また、固定化部１０６は、ステップＳ４においてラグランジュ緩和問題を求解して得られた処理開始時刻のうち、実現可能解である順にて処理を行うものとして、選択的に固定化する。２１回目のループでラグランジュ緩和問題を求解した結果として、例えば工程１での機械１で製品１、製品２の順で処理する場合、主問題に式（１２）のような固定化制約式を追加する。
ｂ１、１≦ｂ２、１  ・・・（１２）
【００５５】
なお、数理計画問題に含まれるどの条件を固定化するかは、ユーザにより予め定義されており、固定化部１０６はそれに従って固定化する。或いは、固定化部１０６は、例えば対話形式のユーザインタフェースを介してユーザからの指示を受け、その指示に従って、数理計画問題に含まれるどの条件を固定化するかを都度決定するようにしてもよい。
【００５６】
ステップＳ８で、主問題求解部１０７は、ステップＳ７において条件を固定化した数理計画問題を求解する。主問題求解部１０７は、製品毎の使用機械、及び処理順を固定化した状態で主問題を求解することで、短い計算時間で求解することができる。しかも、ラグランジュ緩和問題の解では、同一機械が同一時刻に処理できる製品数の上限制約が緩和されていたが、ここでは要求されている全ての制約を満足した実行可能なスケジュールを得ることができる。
【００５７】
表７及び図６に、主問題を求解した結果を示す。図６は、図４と同じくガントチャートを表す。矩形の濃い色の箇所（矩形の重なり）がなく、同一機械が同一時刻に処理できる製品数の上限制約が守られるように動作することが示されている。また、本例での納期遅れ費用は、０．３１と十分に小さな値となっている。
【００５８】
【表７】
2019191803.tif 000015
【００５９】
ステップＳ９で、出力部１０８は、ステップＳ８において求解した結果であるスケジュールを出力する。例えば図６に示すように、制約を守り、納期遅れ費用を最小化することを目的として決定した製品毎の使用機械、処理開始時刻を表すガントチャートを画面表示する。
【００６０】
図７に、取り扱う製品数が増えたときの計算時間の変化を示す。上記実施形態を適用して、ループ回数２５回及びループ回数５０回として主問題を求解した場合と、主問題を分枝限定法を用いて一括で解いた場合とを比較した。
分枝限定法を用いて一括で主問題を解いた場合、実線で示すように、製品数が１００を超えると急激に計算時間が掛かるようになり、解を得ることさえできなかった。ここでは、計算は６００秒で打ち切った。
それに対して、上記実施形態を適用して主問題を解いた場合、破線及び一点鎖線で示すように、製品数が増えたときにも計算時間が大幅に増えることはなく、安定して高速に解を得ることが可能である。
【００６１】
以上述べたように、制約及び目的関数で定式化される数理計画問題に基づいて、生産又は物流に係るスケジュールを作成する場合に、数理計画問題を緩和した緩和問題を構築、求解して、その結果に基づいて数理計画問題に含まれる条件を固定化する処理を行うことにより、大規模で複雑な制約を有するスケジューリング問題であっても、全ての制約を満足した実行可能解を従来よりも高速に求めることができる。また、一つのスケジュールを作成する際に、複数の大きく異なるスケジュール作成計算を行ってスケジュールを作成する場合と比べて、制約を削除したり、新たな制約を加えたりする際にも、修正箇所が少なくて済み、簡単にメンテナンスできる仕組みで、スケジュールを作成することが可能となる。
【００６２】
なお、上記実施形態のスケジュール作成装置１００は、例えばＣＰＵ、ＲＯＭ、ＲＡＭ等を備えたコンピュータ装置により実現される。図１ではスケジュール作成装置１００を一台の装置として図示したが、例えば複数台の装置により構成される形態でもかまわない。
また、上記実施形態のスケジュール作成装置１００の各種機能は、ソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータがプログラムを読み出して実行することによっても実現可能である。
上記実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６３】
１００：スケジュール作成装置
１０１：入力部
１０２：主問題構築部
１０３：緩和問題構築部
１０４：緩和問題求解部
１０５：ラグランジュ乗数更新部
１０６：固定化部
１０７：主問題求解部
１０８：出力部
【図１】
2019191803.tif 000016
【図２】
2019191803.tif 000017
【図３】
2019191803.tif 000018
【図４】
2019191803.tif 000019
【図５】
2019191803.tif 000020
【図６】
2019191803.tif 000021
【図７】
2019191803.tif 000022