(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-09
(45)【発行日】2025-01-20
(54)【発明の名称】制約条件最適化装置、制約条件最適化方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20250110BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2021121519
(22)【出願日】2021-07-26
【審査請求日】2024-01-31
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】ラフマワン イレネ
(72)【発明者】
【氏名】末光 一成
(72)【発明者】
【氏名】寺本 やえみ
(72)【発明者】
【氏名】松葉 浩也
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2020-204928(JP,A)
【文献】特開2020-113161(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
複数の変数に対して設定された制約条件と、前記制約条件の重みの初期値と、を含む定義情報を取得する定義情報取得部と、
前記定義情報取得部により取得された前記定義情報に基づいて、前記複数の変数の最適な組み合わせを表す基準解を算出する基準解演算部と、
予め設定された複数のシナリオに基づいて、前記制約条件の重みを前記初期値から変化させたときの前記複数の変数の最適な組み合わせを表す近傍解を
前記シナリオごとに算出する近傍解演算部と、
複数の前記シナリオについて、前記シナリオごとに前記近傍解の算出結果をユーザに提示するユーザ提示部と、を備え
、
前記シナリオは、複数の前記制約条件のうち重みの調整対象とする制約条件の情報と、前記制約条件に対応する前記変数の目標値からの逸脱度に関する情報と、を含み、
複数の前記シナリオは、前記重みの調整対象とする制約条件が前記シナリオごとに異なって設定され、
前記ユーザ提示部は、各近傍解における前記制約条件ごとの前記逸脱度と、各近傍解で前記変数が前記目標値から逸脱している前記制約条件の合計数と、を含む画面を表示モニタに表示して、前記シナリオごとの前記近傍解の算出結果を前記ユーザに提示する制約条件最適化装置。
【請求項2】
請求項1に記載の制約条件最適化装置において、
複数の前記シナリオを設定するシナリオ設定部を備え、
前記シナリオ設定部は、複数の前記シナリオの各々について、前記シナリオを構成する1つまたは複数のステップと、各ステップに対応する前記制約条件と、各ステップで前記変数に対して要求される前記制約条件の種類と、を設定する制約条件最適化装置。
【請求項3】
請求項
1に記載の制約条件最適化装置において、
前記近傍解演算部は、前記制約条件ごとの前記重みと前記逸脱度との積の合計値に基づくペナルティ関数を用いて、前記近傍解を算出する制約条件最適化装置。
【請求項4】
請求項1に記載の制約条件最適化装置において、
複数の前記制約条件について、前記重みの変化が前記近傍解に及ぼす影響度を前記制約条件ごとに取得するスクリーニング処理部
を備え、
前記ユーザ提示部は、前記スクリーニング処理部により取得された前記制約条件ごとの前記影響度を
前記ユーザに提示す
る制約条件最適化装置。
【請求項5】
複数の変数に対して設定された制約条件と、前記制約条件の重みの初期値と、を含む定義情報を取得し、
取得した前記定義情報に基づいて、前記複数の変数の最適な組み合わせを表す基準解をコンピュータにより算出し、
予め設定された複数のシナリオに基づいて、前記制約条件の重みを前記初期値から変化させたときの前記複数の変数の最適な組み合わせを表す近傍解を前記コンピュータにより
前記シナリオごとに算出
し、
前記シナリオは、複数の前記制約条件のうち重みの調整対象とする制約条件の情報と、前記制約条件に対応する前記変数の目標値からの逸脱度に関する情報と、を含み、
複数の前記シナリオは、前記重みの調整対象とする制約条件が前記シナリオごとに異なって設定され、
各近傍解における前記制約条件ごとの前記逸脱度と、各近傍解で前記変数が前記目標値から逸脱している前記制約条件の合計数と、を含む画面を表示モニタに表示して、前記シナリオごとの前記近傍解の算出結果をユーザに提示する制約条件最適化方法。
【請求項6】
請求項5に記載の制約条件最適化方法において、
複数の前記シナリオの各々について、前記シナリオを構成する1つまたは複数のステップと、各ステップに対応する前記制約条件と、各ステップで前記変数に対して要求される前記制約条件の種類と、を前記コンピュータにより設定する制約条件最適化方法。
【請求項7】
請求項
5に記載の制約条件最適化方法において、
前記制約条件ごとの前記重みと前記逸脱度との積の合計値に基づくペナルティ関数を用いて、前記近傍解を算出する制約条件最適化方法。
【請求項8】
請求項
5に記載の制約条件最適化方法において、
複数の前記制約条件について、前記重みの変化が前記近傍解に及ぼす影響度を前記制約条件ごとに取得し、
取得した前記制約条件ごとの前記影響度を
前記ユーザに提示する制約条件最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最適化問題における制約条件の調整を行う情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来、複数の制約条件を用いた最適化問題の解決手法に関して、特許文献1の技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許出願公開第2014/0156334号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、複数の制約条件を用いたポートフォリオの最適化において、各制約条件に対する感度分析の結果を生成してユーザに提示し、ユーザは提示された情報から各制約条件の上限値や下限値を設定することが記載されている。しかしながら、多数の制約条件が存在する場合には、感度分析の実行に対する演算処理負荷が大きく、また各制約条件の上限値や下限値を設定する際のユーザの負荷も大きいため、特許文献1の手法は実現が困難であるという課題がある。
【0005】
本発明は、上記の課題に鑑みて、最適化問題における制約条件の調整を適切に行うことが可能な技術の提供を目的とする。
【課題を解決するための手段】
【0006】
本発明による制約条件最適化装置は、複数の変数に対して設定された制約条件と、前記制約条件の重みの初期値と、を含む定義情報を取得する定義情報取得部と、前記定義情報取得部により取得された前記定義情報に基づいて、前記複数の変数の最適な組み合わせを表す基準解を算出する基準解演算部と、予め設定された複数のシナリオに基づいて、前記制約条件の重みを前記初期値から変化させたときの前記複数の変数の最適な組み合わせを表す近傍解を前記シナリオごとに算出する近傍解演算部と、複数の前記シナリオについて、前記シナリオごとに前記近傍解の算出結果をユーザに提示するユーザ提示部と、を備え、前記シナリオは、複数の前記制約条件のうち重みの調整対象とする制約条件の情報と、前記制約条件に対応する前記変数の目標値からの逸脱度に関する情報と、を含み、複数の前記シナリオは、前記重みの調整対象とする制約条件が前記シナリオごとに異なって設定され、前記ユーザ提示部は、各近傍解における前記制約条件ごとの前記逸脱度と、各近傍解で前記変数が前記目標値から逸脱している前記制約条件の合計数と、を含む画面を表示モニタに表示して、前記シナリオごとの前記近傍解の算出結果を前記ユーザに提示する。
本発明による制約条件最適化方法は、複数の変数に対して設定された制約条件と、前記制約条件の重みの初期値と、を含む定義情報を取得し、取得した前記定義情報に基づいて、前記複数の変数の最適な組み合わせを表す基準解をコンピュータにより算出し、予め設定された複数のシナリオに基づいて、前記制約条件の重みを前記初期値から変化させたときの前記複数の変数の最適な組み合わせを表す近傍解を前記コンピュータにより前記シナリオごとに算出し、前記シナリオは、複数の前記制約条件のうち重みの調整対象とする制約条件の情報と、前記制約条件に対応する前記変数の目標値からの逸脱度に関する情報と、を含み、複数の前記シナリオは、前記重みの調整対象とする制約条件が前記シナリオごとに異なって設定され、各近傍解における前記制約条件ごとの前記逸脱度と、各近傍解で前記変数が前記目標値から逸脱している前記制約条件の合計数と、を含む画面を表示モニタに表示して、前記シナリオごとの前記近傍解の算出結果をユーザに提示する。
【発明の効果】
【0007】
本発明によれば、最適化問題における制約条件の調整を適切に行うことが可能な技術を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】本発明による制約条件調整方法の概要を示すフローチャート。
【
図2】本発明による制約条件調整を実現するための情報処理装置のハードウェア構成の一例を示す図。
【
図3】本発明の第1の実施形態に係る情報処理装置の機能ブロックの一例を示す図。
【
図12】本発明の第1の実施形態に係る制約条件調整処理の流れを示すフローチャート。
【
図13】近傍解演算処理の詳細を示すフローチャート。
【
図15】本発明の第1の実施形態に係る情報処理装置の機能ブロックの一例を示す図。
【
図16】本発明の第2の実施形態に係る制約条件調整処理の流れを示すフローチャート。
【
図17】スクリーニング処理の詳細を示すフローチャート。
【発明を実施するための形態】
【0009】
以下では、本発明の実施形態について説明する。本発明は、複数の変数の最適な組み合わせを演算処理によって求める最適化問題において、各変数に対する制約条件の調整を行うものである。なお、説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。本発明は下記の実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。特に限定しない限り、各構成要素は複数でも単数でも構わない。
【0010】
(本発明の概要)
図1は、本発明による制約条件調整方法の概要を示すフローチャートである。本発明では、
図1のフローチャートに示すステップS101~S105の各処理が情報処理装置によって実行されることにより、制約条件の調整が行われる。
【0011】
ステップS101では、最適化問題を解くためのモデルの生成に用いられる定義情報を取得する。ステップS102では、ステップS101で取得した定義情報を用いて、最適化問題を解くためのモデルを生成する。ステップS103では、ステップS102で生成した最適化モデルを用いて、複数の変数の組み合わせに対して基準とする解を演算する。ステップS104では、ステップS103で基準解を演算した各変数に対する制約条件を調整し、基準解に対する近傍解を演算する。ステップS105では、ステップS104で求められた近傍解をユーザに提示する。
【0012】
次に、本発明の一実施形態に係る情報処理装置のハードウェア構成について説明する。
図2は、本発明による制約条件調整を実現するための情報処理装置のハードウェア構成の一例を示す図である。
【0013】
本実施形態に係る情報処理装置100は、
図2に示すように、プロセッサ101、メモリ102、記憶装置103、通信インタフェース(IF)104、入出力IF105を備える。
【0014】
プロセッサ101は、メモリ102を作業領域に用いて、記憶装置103に格納された所定のプログラムを実行することにより、情報処理装置100が有する様々な機能を実現する。メモリ102は、例えばROM(Read Only Memory)やRAM(Random Access Memory)を組み合わせて構成される。
【0015】
記憶装置103は、プロセッサ101において実行される各種プログラムや、プログラムの実行時に使用される各種データを記憶保持する。記憶装置103は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)、光磁気ディスク、フラッシュメモリ等の不揮発性の記録媒体を用いて構成される。なお、情報処理装置100において必要なプログラムやデータを保存できるものであれば、記憶装置103として使用される記録媒体の数や種類は問わない。
【0016】
通信IF104は、情報処理装置100に接続される各種外部装置との間で送受信される通信データのインタフェース処理を行う。本実施形態では、製品ごとの売り上げ情報等の様々な顧客情報を収集可能なPOS(Point Of Sales)システム110や、製品の生産管理を行う生産管理システム120などが、外部装置として通信IF104を介して情報処理装置100に接続されるものとする。なお、これ以外の外部装置を情報処理装置100に接続可能としてもよい。
【0017】
情報処理装置100には、入力装置130および出力装置140が接続される。入力装置130は、例えばキーボード、マウス、タッチパネル等により構成され、情報処理装置100を利用するユーザの入力操作を検出し、その検出結果に応じた操作情報を情報処理装置100に出力する。この操作情報は、入出力IF105を介してプロセッサ101に入力され、プロセッサ101の処理に反映される。出力装置140は、例えば表示モニタやプリンタ等により構成され、プロセッサ101から入出力IF105を介して出力される画像情報や文字情報に基づく画面表示や印刷等を行うことにより、これらの情報をユーザに提示する。
【0018】
(第1の実施形態)
次に、本発明の制約条件調整を実現するための情報処理装置の機能構成の実施形態について説明する。
図3は、本発明の第1の実施形態に係る情報処理装置の機能ブロックの一例を示す図である。
【0019】
本実施形態に係る情報処理装置100は、
図3に示すように、定義情報取得部201、基準解演算部202、近傍解演算部203、シナリオ設定部204、ユーザ提示部205の各機能を備える。これらの機能は、例えば
図2のハードウェア構成において、プロセッサ101が所定のプログラムを実行することにより実現される。また、記憶装置103には、変数DB211、制約条件DB212、近傍点DB213、変数/制約条件DB214、施設/変数DB215、シナリオ/制約条件DB216、シナリオDB217、演算履歴DB218の各データベースが格納されている。これらのデータベースの詳細については、
図4~
図11を参照して後述する。
【0020】
定義情報取得部201は、情報処理装置100に接続されているPOSシステム110や生産管理システム120(
図2参照)等の外部装置から、最適化問題を解くためのモデルの生成に必要な定義情報を取得し、変数DB211、制約条件DB212、変数/制約条件DB214、施設/変数DB215の各データベースに格納する。この定義情報には、例えば、最適化問題で取り扱う対象物の各要素をモデル化して表す関数の情報や、各要素の状態に応じた関数のパラメータを表す変数の情報や、各変数に対して設定された制約条件の情報や、各制約条件の重みの初期値の情報などが含まれる。なお、定義情報取得部201が行う処理は、
図1のフローチャートのステップS101に対応する。
【0021】
基準解演算部202は、定義情報取得部201により取得された定義情報を変数DB211、制約条件DB212、変数/制約条件DB214の各データベースから読み出し、その定義情報に基づいて最適化モデルを生成する。そして、生成した最適化モデルにおける複数の変数の最適な組み合わせを算出し、得られた変数の組み合わせを基準解として記憶装置103に保存する。なお、基準解演算部202が行う処理は、
図1のフローチャートのステップS102、S103に対応する。
【0022】
近傍解演算部203は、基準解演算部202により生成された最適化モデルにおいて、制約条件の重みを初期値から変化させたときの複数の変数の最適な組み合わせを算出し、得られた変数の組み合わせを近傍解として演算履歴DB218に格納する。このとき近傍解演算部203は、シナリオ/制約条件DB216に格納されているシナリオと制約条件の対応関係を表す情報に基づき、ユーザが選択したシナリオに対応する制約条件を選択し、その制約条件の重みを変化させる。そして、変化後の重みの値を表す情報を近傍点DB213に格納する。なお、近傍解演算部203が行う処理は、
図1のフローチャートのステップS104に対応する。
【0023】
シナリオ設定部204は、近傍解演算部203が近傍解を算出する際に重みを変化させる制約条件を選択するためのシナリオを設定し、シナリオDB217に格納する。シナリオとは、重みの調整対象とする制約条件の組み合わせを記述した情報であり、例えばユーザが入力装置130を用いて行った入力操作に応じて設定される。さらにシナリオ設定部204は、シナリオDB217に格納されたシナリオに基づいて、シナリオと制約条件の対応関係を設定し、その設定情報をシナリオ/制約条件DB216に格納する。
【0024】
ユーザ提示部205は、演算履歴DB218に格納された近傍解の算出結果をユーザに提示する。ユーザ提示部205は、例えば出力装置140として情報処理装置100に接続された表示モニタに所定の画面表示を行うことにより、近傍解をユーザに提示することができる。なお、ユーザ提示部205が行う処理は、
図1のフローチャートのステップS105に対応する。
【0025】
次に、記憶装置103に格納されている変数DB211、制約条件DB212、近傍点DB213、変数/制約条件DB214、施設/変数DB215、シナリオ/制約条件DB216、シナリオDB217、演算履歴DB218の各データベースの詳細について、
図4~
図11を参照して以下に説明する。
【0026】
図4は、変数DB211の例を示す図である。
図4に示すように、変数DB211は、例えば変数ID2111、定義ファイル2112、プロセスID2113の各フィールドを有する。変数ID2111には、各変数を一意に特定するための情報(例えばJANコード等のコード情報)が格納される。定義ファイル2112には、最適化モデルにおける各変数の定義情報を表すファイルの情報が格納される。この定義ファイル2112が表す定義情報により、最適化問題で取り扱う対象物の各要素をモデル化した関数である最適化モデルが定義されるとともに、その最適化モデルのパラメータとして連続的に変化する各変数の範囲が特定される。プロセスID2113には、各変数が実際の対象物においてどの要素に対応するかを表す情報が格納される。例えば、最適化モデルが表す対象物がショッピングモール等の大型商業施設である場合、当該施設内の各店舗を表す情報がプロセスID2113に格納される。
【0027】
変数DB211には、各変数に対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。このレコード数の上限は、最適化モデルにおいて設定可能な変数の上限個数に応じて決定される。例えば、情報処理装置100におけるプロセッサ101の処理能力などにより、最適化モデルにおいて設定可能な変数の上限個数を予め決定することができる。なお、
図4に示したデータベース構成は一例であり、最適化問題が取り扱う対象物に対して最適化モデルを適切に定義することができれば、変数DB211の構成はこれに限定されない。
【0028】
図5は、制約条件DB212の例を示す図である。
図5に示すように、制約条件DB212は、例えば制約条件ID2121、定義ファイル2122、初期重み値2123、目標値2124の各フィールドを有する。制約条件ID2121には、各制約条件を一意に特定するための情報として、例えばID番号や名称などの情報が格納される。定義ファイル2122には、最適化モデルにおける各制約条件の定義情報を表すファイルの情報が格納される。この定義ファイル2122が表す定義情報により、最適化モデルの各変数に対して要求される制約条件の内容が定義される。例えば、ビジネス上の制約、物理的な許容値による制約、効率上の制約などに応じて、各変数に対する許容条件を定義することができる。初期重み値2123には、各制約条件に対して設定される重みの初期値が格納される。この重みの初期値は、例えば各制約条件の重要度などに応じて予め決定される。目標値2124には、各制約条件に対する変数の目標値が設定される。
【0029】
制約条件DB212には、各制約条件に対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。なお、
図5に示したデータベース構成は一例であり、最適化モデルの各変数に対して設定される制約条件を適切に定義することができれば、制約条件DB212の構成はこれに限定されない。
【0030】
図6は、近傍点DB213の例を示す図である。
図6に示すように、近傍点DB213は、例えば近傍点ID2131、制約条件ID2132、更新重み値2133、グループID2134の各フィールドを有する。近傍点ID2131には、近傍解演算部203によって算出された近傍解における各近傍点を一意に特定するための情報として、例えばID番号などの情報が格納される。近傍点とは、重みを初期値からある値へと変化させた制約条件のことであり、近傍解を演算する際に近傍解演算部203によって生成される。制約条件ID2132には、各近傍点に対応する制約条件を表す情報として、制約条件DB212の制約条件ID2121と同様の情報が格納される。更新重み値2133は、各近傍点における変化後の重みの値を表す情報が格納される。グループID2134には、各近傍点をその特徴ごとにグループ分けしたときの各近傍点の所属グループの情報が格納される。
【0031】
近傍点DB213には、各近傍点に対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。なお、
図6に示したデータベース構成は一例であり、近傍解における各近傍点を適切に表すことができれば、近傍点DB213の構成はこれに限定されない。
【0032】
図7は、変数/制約条件DB214の例を示す図である。
図7に示すように、変数/制約条件DB214は、例えば変数ID2141、制約条件ID2142の各フィールドを有する。変数ID2141には、各変数を表す情報として、変数DB211の変数ID2111と同様の情報が格納される。制約条件ID2142には、各制約条件を表す情報として、制約条件DB212の制約条件ID2121と同様の情報が格納される。
【0033】
変数/制約条件DB214には、最適化モデルにおける変数と制約条件の各組み合わせに対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。すなわち、変数/制約条件DB214の各レコードに格納されている変数ID2141と制約条件ID2142の組み合わせにより、最適化モデルの各変数に対して要求される制約条件が定義される。なお、
図7に示したデータベース構成は一例であり、最適化モデルにおける変数と制約条件の対応付けを適切に表すことができれば、変数/制約条件DB214の構成はこれに限定されない。
【0034】
図8は、施設/変数DB215の例を示す図である。
図8に示すように、施設/変数DB215は、例えば施設ID2151、変数ID2152の各フィールドを有する。施設ID2151には、各変数が実際の対象物においてどの施設に属する要素に対応するかを表す情報として、例えば工場、倉庫、店舗等の施設を表す情報が格納される。変数ID2152には、各変数を表す情報として、変数DB211の変数ID2111と同様の情報が格納される。
【0035】
施設/変数DB215には、最適化問題で取り扱う対象物の各要素が属する施設と各要素を表す変数との各組み合わせに対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。なお、
図8に示したデータベース構成は一例であり、対象物の各要素が属する施設と変数との対応付けを適切に表すことができれば、施設/変数DB215の構成はこれに限定されない。
【0036】
図9は、シナリオ/制約条件DB216の例を示す図である。
図9に示すように、シナリオ/制約条件DB216は、例えばシナリオID2161、ステップID2162、制約条件ID2163、制約種別2164の各フィールドを有する。シナリオID2161には、シナリオ設定部204により設定された各シナリオを一意に特定するための情報が格納される。ステップID2162には、シナリオごとに設定された各ステップを一意に特定するための情報が格納される。シナリオでは、最適化モデルを用いた基準解や近傍解の演算において各変数に適用する制約条件を詳細に指定するために、1つまたは複数のステップから構成されている。ステップID2162には、このシナリオの各ステップを表す情報が格納される。制約条件ID2163には、各シナリオの各ステップに対応する制約条件を表す情報として、制約条件DB212の制約条件ID2121と同様の情報が格納される。制約種別2164には、各変数に対して要求される制約条件の種類を表す情報が格納される。例えば、各変数が適用された制約条件を必ず満たす必要がある場合は、その制約条件の種類を表す情報として“Hard”が制約種別2164に格納され、各変数が適用された制約条件からある程度は逸脱することが可能な場合は、その制約条件の種類を表す情報として“Soft”が制約種別2164に格納される。
【0037】
シナリオ/制約条件DB216には、シナリオで指定された各制約条件に対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。すなわち、シナリオ/制約条件DB216の各レコードに格納されているシナリオID2161、ステップID2162、制約条件ID2163および制約種別2164の組み合わせにより、各シナリオの内容と、各シナリオにおいて重み調整の対象とされる制約条件と、制約条件に対する各変数の逸脱度とが定義される。なお、
図9に示したデータベース構成は一例であり、各シナリオで重み調整の対象に指定する制約条件を適切に表すことができれば、シナリオ/制約条件DB216の構成はこれに限定されない。
【0038】
図10は、シナリオDB217の例を示す図である。
図10に示すように、シナリオDB217は、例えばシナリオID2171、ルール2172の各フィールドを有する。シナリオID2171には、各シナリオを表す情報として、シナリオ/制約条件DB216のシナリオID2161と同様の情報が格納される。ルール2172には、各シナリオの内容を記述した情報が格納される。
【0039】
シナリオDB217には、シナリオ設定部204により設定された各シナリオに対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。なお、
図10に示したデータベース構成は一例であり、各シナリオの内容を適切に表すことができれば、シナリオDB217の構成はこれに限定されない。
【0040】
図11は、演算履歴DB218の例を示す図である。
図11に示すように、演算履歴DB218は、例えば日付2181、選択シナリオ2182、演算結果2183、評価2184の各フィールドを有する。日付2181には、近傍解演算部203による各近傍解の算出日時を表す情報が格納される。選択シナリオ2182には、各近傍解に対してユーザが算出時に選択したシナリオを表す情報として、シナリオ/制約条件DB216のシナリオID2161と同様の情報が格納される。演算結果2183には、各近傍解の算出結果を表すデータの情報が格納される。評価2184には、各近傍解の評価結果を表す情報として、例えば“Best”、“Moderate”等の評価種別が格納される。
【0041】
演算履歴DB218には、近傍解演算部203により算出された各近傍解に対応して設定されたレコードごとに、上記の各フィールドの情報が格納される。なお、
図11に示したデータベース構成は一例であり、各近傍解の算出結果を適切に表すことができれば、演算履歴DB218の構成はこれに限定されない。
【0042】
図12は、本発明の第1の実施形態に係る制約条件調整処理の流れを示すフローチャートである。
図12のフローチャートに示す処理は、例えば
図2のハードウェア構成において、ユーザからの指示に応じてプロセッサ101により実行される。
【0043】
ステップS210において、プロセッサ101は、定義情報取得部201により、最適化問題を解くためのモデルの生成に用いられる定義情報を取得する。ここでは、例えばユーザからの入力操作に基づいて、最適化の対象とする変数のリストや、各変数に対する制約条件のリストなどを取得し、これらの内容から定義情報を取得して、変数DB211、制約条件DB212、変数/制約条件DB214、施設/変数DB215の各データベースに格納する。
【0044】
ステップS220において、プロセッサ101は、基準解演算部202により、ステップS210で取得した定義情報を各データベースから読み出し、これに基づいて最適化モデルを生成する。ここでは、例えば周知の演算手法により、最適化問題で取り扱う対象物の各要素をモデル化した関数の演算式を生成することで、最適化モデルを生成することができる。
【0045】
ステップS230において、プロセッサ101は、基準解演算部202により、ステップS220で生成した最適化モデルに基づいて基準解を演算する。ここでは、最適化モデルを表す演算式の各変数に対して設定された制約条件を満足する変数の組み合わせの中で、演算式の計算値が所望の条件を満たす最適な変数の組み合わせを、最適化問題の基準解として求める。例えば、演算式の計算値を最大化または最小化する変数の組み合わせや、指定された目標値との差分が最小となる計算値が得られる変数の組み合わせなどを、周知の最適化演算アルゴリズム等により求めることができる。ステップS230で基準解を演算できたら、プロセッサ101は、その演算結果を記憶装置103に保存し、処理を次のステップS240へ進める。
【0046】
ステップS240において、プロセッサ101は、予めシナリオ設定部204により設定されてシナリオDB217に格納されているシナリオの中から、いずれかのシナリオを選択する。ここでは、例えばシナリオDB217に格納されているシナリオを先頭から順に、近傍解の生成対象とするシナリオとして選択する。あるいは、ユーザからの入力操作に基づいて、いずれかのシナリオを選択するようにしてもよい。
【0047】
ステップS250において、プロセッサ101は、近傍解演算部203により、近傍解演算処理を実施する。この近傍解演算処理では、ステップS240で選択したシナリオに基づいて重み調整の対象とする制約条件を選択し、その制約条件の重みを、ステップS230で基準解を演算したときの初期値から変化させる。そして、変化後の重みにおける最適な変数の組み合わせを、基準解に対する近傍解として求める。なお、ステップS250の近傍解演算処理の詳細については、
図13を参照して後述する。
【0048】
ステップS260において、プロセッサ101は、ステップS250の近傍解演算処理を終了するか否かを判定する。この判定は、例えばシナリオDB217に格納されている各シナリオについて、近傍解が演算済みであるか否かを確認する。その結果、近傍解をまだ演算していないシナリオが存在する場合は、近傍解演算処理を継続すると判定し、現在の近傍解から1つを選択して新たな基準解としてステップS240へ戻り、別のシナリオを選択する。一方、全てのシナリオについて近傍解が演算済みの場合は、近傍解演算処理を終了すると判定して処理を次のステップS270へ進める。このときの近傍解の選択方法の例としては、現在のシナリオが指定した制約条件の逸脱度が最も小さいものを選択してもよいし、後述のペナルティ関数値が最小のものを選択してもよい。さらにこのとき、ユーザの入力操作に基づいてユーザが近傍解演算処理の終了を希望しているか否かを判断し、ユーザが近傍解演算処理の終了を希望している場合は、近傍解をまだ演算していないシナリオが存在しても、近傍解演算処理を終了すると判定して処理を次のステップS270へ進めるようにしてもよい。
【0049】
ステップS270において、プロセッサ101は、ユーザ提示部205により、ステップS250の近傍解演算処理において記憶装置103に保存された各近傍解をユーザに提示する。ここでは、例えば出力装置140である表示モニタの画面表示により、ステップS240で選択したシナリオごとに得られた近傍解の内容をユーザに提示する。なお、ステップS270で表示される画面の例については、
図14を参照して後述する。
【0050】
ステップS270の処理を実施したら、プロセッサ101は、得られた演算結果を生産管理システム120等の外部装置へ出力した後、
図12のフローチャートに示す処理を終了する。
【0051】
図13は、近傍解演算処理の詳細を示すフローチャートである。
図13のフローチャートに示す処理は、例えば
図2のハードウェア構成において、
図12のステップS250でプロセッサ101により実行される。
【0052】
ステップS301において、プロセッサ101は、
図12のステップS220で生成された最適化モデルを読み込む。
【0053】
ステップS302において、プロセッサ101は、
図12のステップS240で選択されたシナリオに基づいて、ステップS301で読み込んだ最適化モデルにおいて重みの調整対象とする制約条件を設定する。ここでは、例えば
図9のシナリオ/制約条件DB216において、選択されたシナリオに対応するレコードを選択し、当該レコードの制約条件ID2163に格納されている情報を確認することで、重みの調整対象とする制約条件を設定することができる。
【0054】
ステップS303において、プロセッサ101は、ステップS302で選択した制約条件の変化後の重み値を決定する。ここでは、例えば予め定められた調整幅の範囲内で、当該制約条件の重み値を初期値からランダムに変化させるようにする。なお、制約条件の重み値を初期値から適切に変化させることができれば、ステップS303では任意の方法により、変化後の重み値を決定することが可能である。
【0055】
ステップS304において、プロセッサ101は、近傍解演算部203により、ステップS303で決定した重み値を各制約条件に対して設定したときの近傍解を演算する。ここでは、例えばペナルティ関数と呼ばれる関数を用いて演算を簡略化することで、重み調整後の各制約条件を満たす最適な変数の組み合わせを容易に求めることができる。ペナルティ関数とは、制約条件ごとの重みと逸脱度との積の合計値に基づいて定義される関数であり、具体的には、例えば以下の式(1)のように表される。
Fpenalty=Foriginal+Σ(wi×Ni) ・・・(1)
【0056】
式(1)において、F
originalはステップS220で生成された最適化モデルの関数を表している。また、w
iはi番目の制約条件の重み値を表し、N
iはi番目の制約条件に対応する変数の逸脱度を表す。逸脱度とは、例えば
図5の制約条件DB212において目標値2124に格納された目標値に対して、その制約条件に対応する変数が目標値からどの程度離れているかを表す値である。なお、近傍解を適切に演算することができれば、ステップS304ではこれ以外にも任意の方法により、近傍解の演算を行うことができる。
【0057】
ステップS305において、プロセッサ101は、ステップS304の演算により求められた近傍解と、その近傍解が得られた各制約条件の重み値とを、記憶装置103に保存する。具体的には、例えば
図6の近傍点DB213において、重み値を変化させた各制約条件に対応するレコードを追加し、その各レコードの各フィールドに、変化後の重み値に関する情報を近傍点の情報として格納する。また、
図11の演算履歴DB218において、近傍解に対応するレコードを追加し、そのレコードの各フィールドに、近傍解の演算結果に関する情報を格納する。
【0058】
ステップS305の処理を実施したら、プロセッサ101は、近傍解演算処理を終了して
図12のステップS260へ進む。
【0059】
図14は、近傍解の内容をユーザに提示するための近傍解表示画面の例を示す図である。
図14に示す近傍解表示画面141は、表示枠1411,1421と、選択ボタン1431,1432とを含んで構成されている。
【0060】
表示枠1411は、近傍解演算処理によって得られた複数の近傍解のうち任意の近傍解(近傍解1とする)の内容を示す部分であり、重み一覧表1412、逸脱度グラフ1413、演算結果1414、チェックボックス1415を含む。重み一覧表1412は、近傍解1が得られたときの各制約条件の重み値を表す。逸脱度グラフ1413は、各制約条件に対応する変数の目標値からの逸脱度を表す。演算結果1414は、近傍解1の演算結果として得られたプロセス値と、変数が目標値から逸脱している制約条件の合計数とを表す。チェックボックス1415は、ユーザの入力操作によりチェックされることで、現在の近傍解のうち、次の基準解とするものを選択するための部分である。
【0061】
表示枠1421は、近傍解演算処理によって得られた複数の近傍解のうち近傍解1を除いた任意の近傍解(近傍解2とする)の内容を示す部分であり、表示枠1411と同様に、重み一覧表1422、逸脱度グラフ1423、演算結果1424、チェックボックス1425を含む。
【0062】
近傍解表示画面141の表示後、選択ボタン1431がユーザの入力操作により選択されると、情報処理装置100は近傍解の演算処理を継続する。一方、選択ボタン1432がユーザの入力操作により選択されると、情報処理装置100は近傍解の演算処理を終了する。ユーザは、選択ボタン1431,1432のいずれかを選択することで、近傍解の演算を継続するか否かを情報処理装置100に指示することができる。
【0063】
なお、
図14に示した近傍解表示画面は一例であり、他の画面構成としてもよい。近傍解演算処理によって得られたシナリオごとの近傍解の算出結果をユーザに対して適切に提示できるものであれば、任意の画面構成を採用することが可能である。
【0064】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態では、近傍解の演算を行う際に重みの調整対象とする制約条件の選択方法を、第1の実施形態とは異なる方法で行う例を説明する。
【0065】
図15は、本発明の第2の実施形態に係る情報処理装置の機能ブロックの一例を示す図である。本実施形態に係る情報処理装置100Aは、第1の実施形態で説明した
図3の情報処理装置100と比較して、シナリオ設定部204の代わりにスクリーニング処理部206を備える点と、記憶装置103にシナリオ/制約条件DB216およびシナリオDB217が格納されていない点とが異なっている。
【0066】
スクリーニング処理部206は、基準解演算部202により生成された最適化モデルにおいて、各制約条件の重みの変化が近傍解に及ぼす影響度を制約条件ごとに取得する。スクリーニング処理部206により取得された制約条件ごとの影響度は、ユーザ提示部205によってユーザに提示されるとともに、近傍解演算部203が近傍解の演算を行う際に重みの調整対象とする制約条件を選択するために利用される。
【0067】
なお、本実施形態に係る情報処理装置100Aのハードウェア構成は、第1の実施形態で説明した
図2のハードウェア構成と同様である。そのため以下では、
図2のハードウェア構成を用いて、本実施形態の情報処理装置100Aの説明を行うものとする。
【0068】
図16は、本発明の第2の実施形態に係る制約条件調整処理の流れを示すフローチャートである。
図16のフローチャートに示す処理は、例えば
図2のハードウェア構成において、ユーザからの指示に応じてプロセッサ101により実行される。
【0069】
ステップS210~S230において、プロセッサ101は、第1の実施形態で説明した
図12のフローチャートと同様の処理をそれぞれ行う。
【0070】
ステップS230の処理を実施したら、プロセッサ101は、ステップS241の処理を実施する。ステップS241において、プロセッサ101は、スクリーニング処理部206により、スクリーニング処理を実施する。このスクリーニング処理では、ステップS220で生成した最適化モデルの各制約条件について、その重みの変化が近傍解に及ぼす影響度を取得する。そして、影響度が所定値以上の制約条件を高感度の制約条件として選択し、その制約条件を重みの調整対象に設定する。これにより、調整対象の制約条件が大量にある場合でも、最適化計算の結果に影響を与える制約条件のみを容易に抽出し、短時間でユーザが望む解を得るよう制約条件を調整できる。なお、ステップS241のスクリーニング処理の詳細については、
図17を参照して後述する。
【0071】
ステップS241の処理を実施したら、ステップS250~S270において、プロセッサ101は、第1の実施形態で説明した
図12のフローチャートと同様の処理をそれぞれ行う。ただし、本実施形態ではステップS250の近傍解演算処理において、ステップS241のスクリーニング処理で選択された制約条件の重みを、ステップS230で基準解を演算したときの初期値から変化させるようにする。また、ステップS260で近傍解演算処理を継続すると判定した場合は、ステップS250へ戻るようにする。そして、ステップS270の処理を実施したら、プロセッサ101は、得られた演算結果を生産管理システム120等の外部装置へ出力した後、
図16のフローチャートに示す処理を終了する。
【0072】
図17は、スクリーニング処理の詳細を示すフローチャートである。
図17のフローチャートに示す処理は、例えば
図2のハードウェア構成において、
図16のステップS241でプロセッサ101により実行される。
【0073】
ステップS401において、プロセッサ101は、
図16のステップS220で生成された最適化モデルを読み込む。
【0074】
ステップS402において、プロセッサ101は、ステップS401で読み込んだ最適化モデルのいずれかの制約条件を選択する。
【0075】
ステップS403において、プロセッサ101は、スクリーニング処理部206により、ステップS402で選択した制約条件に対する感度分析を実施する。感度分析とは、最適化モデルを表す演算式の各変数に対して要求される制約条件の重みの変化と、その演算式を計算して得られる計算値との関係性を分析する処理のことである。具体的には、例えば制約条件の重みを所定範囲で変化させたときの演算式の計算値の変化を確認することで、感度分析を行うことができる。なお、ステップS403では、これ以外の方法で感度分析を行うようにしてもよい。
【0076】
ステップS404において、プロセッサ101は、ステップS403の感度分析において最適化モデルに含まれる全ての制約条件を選択済みであるか否かを判定する。未選択の制約条件が存在する場合は、ステップS402へ戻ってその中のいずれかを選択した後、ステップS403の処理を繰り返す。全ての制約条件を選択済みである場合は、処理を次のステップS405へ進める。
【0077】
ステップS405において、プロセッサ101は、スクリーニング処理部206により、各制約条件に対するステップS403の感度分析結果に基づいて、制約条件をグループ化する。ここでは、例えば重みの変化に応じた演算式の計算値の変化が同じ傾向の制約条件同士を同一グループに分類することで、各制約条件を複数のグループに分類する。具体的には、例えば重みの増減方向と計算値の増減方向が同一である制約条件のグループと、重みの増減方向と計算値の増減方向が反対である制約条件のグループと、重みの増減に対して計算値がほとんど変化しない制約条件のグループとに、各制約条件をグループ化することができる。さらにこのとき、計算値の増減量を考慮してグループ分けを細分化してもよい。なお、感度分析結果に応じて制約条件を適切にグループ化できれば、グループ分けの方法はこれに限定されない。
【0078】
ステップS406において、プロセッサ101は、ユーザ提示部205により、ステップS403で実施した各制約条件の感度分析結果をユーザに提示する。ここでは、例えば出力装置140である表示モニタにおいて、ステップS405で各制約条件をグループ化した結果を画面表示することにより、感度分析結果をユーザに提示する。なお、ステップS406で表示される画面の例については、
図18を参照して後述する。
【0079】
ステップS407において、プロセッサ101は、ステップS403で実施した各制約条件の感度分析結果に基づいて、
図16のステップS250で近傍解演算処理を実施する際に重みの調整対象とする制約条件を設定する。ここでは、例えばステップS405のグループ分け結果に基づき、高感度グループに含まれる各制約条件を重みの調整対象に設定する。なお、高感度グループとは、重みの増減量に対して計算値の増減量が比較的大きな制約条件のグループである。これ以外にも、感度分析結果に基づいて任意の制約条件を重みの調整対象に設定することができる。例えば、ステップS406で提示した感度分析結果に対してユーザが行った入力操作に応じて、重みの調整対象に設定する制約条件を選択することも可能である。
【0080】
ステップS407の処理を実施したら、プロセッサ101は、スクリーニング処理を終了して
図16のステップS250へ進む。
【0081】
図18は、感度分析結果をユーザに提示するための感度分析結果表示画面の例を示す図である。
図18に示す感度分析結果表示画面181には、グループ1~3にそれぞれ属する各制約条件について、重みの変化に対してプロセス値(演算式の計算値)がどのように変化するかを示している。
【0082】
なお、
図18に示した感度分析結果表示画面は一例であり、他の画面構成としてもよい。感度分析によって得られた制約条件ごとの重みの変化に対する演算式の計算値の増減傾向をユーザに対して適切に提示できるものであれば、任意の画面構成を採用することが可能である。
【0083】
以上説明した本発明の各実施形態によれば、以下のような作用効果を奏する。
【0084】
(1)情報処理装置100,100Aは、複数の変数に対して設定された制約条件と、制約条件の重みの初期値と、を含む定義情報を取得する定義情報取得部201と、定義情報取得部201により取得された定義情報に基づいて、複数の変数の最適な組み合わせを表す基準解を算出する基準解演算部202と、制約条件の重みを初期値から変化させたときの複数の変数の最適な組み合わせを表す近傍解を算出する近傍解演算部203と、を備える。このようにしたので、最適化問題における制約条件の調整を適切に行うことができる。
【0085】
(2)情報処理装置100における近傍解演算部203は、予め設定されたシナリオに基づいて近傍解を算出する(ステップS240,S250)。シナリオは、複数の制約条件のうち重みの調整対象とする制約条件の情報(制約条件ID2163、ルール2172)と、制約条件に対する変数の逸脱度に関する情報(制約種別2164、ルール2172)と、を含む。このようにしたので、近傍解を算出する際に重みの調整対象とする制約条件を容易に選択することができる。
【0086】
(3)情報処理装置100における近傍解演算部203は、制約条件ごとの重みと逸脱度との積の合計値に基づくペナルティ関数Fpenaltyを用いて、近傍解を算出することができる(ステップS304)。このようにすれば、簡略化された演算処理によって近傍解を容易に求めることができる。
【0087】
(4)情報処理装置100は、複数のシナリオについて、シナリオごとの近傍解の算出結果をユーザに提示するユーザ提示部205を備える(ステップS270、
図14)。このようにしたので、近傍解の算出結果をユーザに分かりやすく提示することができる。
【0088】
(5)情報処理装置100Aは、複数の制約条件について、重みの変化が近傍解に及ぼす影響度を制約条件ごとに取得するスクリーニング処理部206と、スクリーニング処理部206により取得された制約条件ごとの影響度をユーザに提示するユーザ提示部205と、を備える(ステップS241,S406、
図18)。このようにしたので、各制約条件の重みの変化が近傍解に及ぼす影響度を、ユーザに分かりやすく提示することができる。さらに、調整対象の制約条件が大量にある場合でも、最適化計算の結果に影響を与える制約条件のみを容易に抽出し、短時間でユーザが望む解を得るよう制約条件を調整できる。
【0089】
なお、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。
【0090】
上記の実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0091】
100,100A…情報処理装置
101…プロセッサ
102…メモリ
103…記憶装置
104…通信インタフェース
105…入出力インタフェース
110…POSシステム
120…生産管理システム
130…入力装置
140…出力装置
201…定義情報取得部
202…基準解演算部
203…近傍解演算部
204…シナリオ設定部
205…ユーザ提示部
206…スクリーニング処理部
211…変数DB
212…制約条件DB
213…近傍点DB
214…変数/制約条件DB
215…施設/変数DB
216…シナリオ/制約条件DB
217…シナリオDB
218…演算履歴DB