JP2010061179A - 計画最適化装置、計画最適化プログラム、および計画最適化方法 - Google Patents
計画最適化装置、計画最適化プログラム、および計画最適化方法 Download PDFInfo
- Publication number
- JP2010061179A JP2010061179A JP2008222993A JP2008222993A JP2010061179A JP 2010061179 A JP2010061179 A JP 2010061179A JP 2008222993 A JP2008222993 A JP 2008222993A JP 2008222993 A JP2008222993 A JP 2008222993A JP 2010061179 A JP2010061179 A JP 2010061179A
- Authority
- JP
- Japan
- Prior art keywords
- solution
- reproduction
- unit
- objective
- objective functions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】複数の目的を最適化する解を探索する装置において、制約条件を変化させた場合でも最適解を再現する。
【解決手段】計画最適化装置1は、複数の目的関数および制約条件を受け付けるユーザ設定受付部10と、前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出する処理と、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する処理と、を行う解再現目的生成部13と、前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算部15と、前記解を出力する解出力部17と、を有する。
【選択図】図1
【解決手段】計画最適化装置1は、複数の目的関数および制約条件を受け付けるユーザ設定受付部10と、前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出する処理と、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する処理と、を行う解再現目的生成部13と、前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算部15と、前記解を出力する解出力部17と、を有する。
【選択図】図1
Description
本発明は、与えられた制約条件のもとで、与えられた複数の目的を最適化する解を探索する計画最適化装置、計画最適化方法、および、計画最適化プログラムに関する。本発明は、特に、繰り返し変更される各々の制約条件のもとで、与えられた複数の目的の最適解が探索される必要がある計画業務を対象とする。
近年、コンピュータ技術の高度化により、例えば、生産計画の立案などを行うため、与えられた制約条件のもとで、与えられた複数の目的の最適解を探索する装置が開発されている。
例えば、特許文献1には、コンピュータシステムを用いて、与えられた複数の目的関数の重要度が明らかでない場合に、複数の目的関数それぞれの重みを自動的に繰り返し変更することにより、複数の最適解を得る最適化方式が記載されている。
ところで、例えば、生産計画の立案など、繰り返し変更される各々の制約条件のもとで、与えられた複数の目的の最適解が探索される必要がある計画業務では、必ずしも最適解に変化を与える制約条件が変更されるわけではない。また、必ずしも最適解に大きな変化を与える制約条件が変更されるされるわけではない。すなわち、既に算出された最適解の再現に大きく影響しない制約条件が変更される場合がある。
上記のような場合、ユーザは、そもそも、制約条件の変更後に算出される最適解が、制約条件の変更前の最適解と異なる、もしくは、大きく異なることを想定していない。すなわち、ユーザは、最適解の再現に影響しない制約条件の変更の前後において、同一もしくは近似の最適解が算出されることを要望している。
しかしながら、複数の目的の最適解を探索する装置は、最適解が複数存在する場合、ユーザから指示がなければ、いずれの解がユーザにとって最適であるか否かを自動的に判断できないことがある。このような場合、いずれの解が選択されるか否かは、実行されるプログラムなどのロジックに依存する。そのため、既に算出された最適解の再現に大きく影響しない制約条件が変更された場合に、制約条件の変更前と異なる、もしくは、大きく異なる解が出力されることがある。
特許文献1の技術では、解が複数算出される場合に特定の最適解を再現させたいというユーザの要望に応えることはできない。
本発明は、上記の要望に応えるため、制約条件を変化させた場合でも、最適解を再現することのできる技術を提供することを目的とする。
上記の課題を解決するための装置に係る発明は、制約条件に従って複数の目的関数を最適化する解を算出する計画最適化装置であって、前記複数の目的関数および前記制約条件を、入力部を介して受け付けるユーザ設定受付部と、前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出する処理と、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する処理と、を行う解再現目的生成部と、前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算部と、前記解を出力する解出力部と、を有する。
また、上記の課題を解決するためのプログラムに係る発明は、コンピュータを上記の計画最適化装置として機能させるプログラムである。
また、上記の課題を解決するための方法に係る発明は、制約条件に従って複数の目的関数を最適化する解を算出する計画最適化装置における計画最適化方法であって、前記複数の目的関数および前記制約条件を、入力部を介して受け付けるユーザ設定受付ステップと、前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出し、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する、解再現目的生成ステップと、前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算ステップと、前記解を出力する解出力ステップと、を有する。
本発明によれば、制約条件を変化させた場合でも、最適解を再現することができる。
以下、本発明の一実施形態について、図面を参照して説明する。なお、「目的」には、目的関数と、当該目的関数の値についての目的(例えば、最大化、最小化など)と、が含まれる。
図1は、本発明の一実施形態に係る計画最適化装置1の機能構成を示すブロック図である。
本図に示すように、計画最適化装置1は、ユーザ設定受付部10、目的記憶部11、制約条件記憶部12、解再現目的生成部13、解再現設定受付部14、最適化問題計算部15、解記憶部16、解出力部17、解再現目的記憶部18、入力部20、表示部21を有する。
ユーザ設定受付部10は、ユーザが指定する制約条件、ユーザが指定する目的(以下、「ユーザ目的」と呼ぶ。)を受け付ける処理を行う。
具体的には、ユーザ設定受付部10は、制約条件およびユーザ目的の入力を受け付けるための操作画面を表示部21に表示させる。また、少なくとも1以上の制約条件と、少なくとも1以上のユーザ目的との入力を、入力部20を介して受け付ける。ユーザ設定受付部10は、受け付けた制約条件を、制約条件記憶部12に格納する。また、受け付けたユーザ目的を、目的記憶部11に格納する。
目的記憶部11には、ユーザ設定受付部10により受け付けられたユーザ目的と、解再現目的生成部13により生成された目的(以下、「解再現目的」と呼ぶ。)とが格納される。
制約条件記憶部12には、ユーザ設定受付部10により受け付けられた制約条件が格納される。
解再現目的生成部13は、ユーザ目的ごとに、ユーザ目的に基づいて解再現目的を生成する処理を行う。ここで、解再現目的とは、ユーザ目的の最適解の再現を行うための目的である。
具体的には、解再現目的生成部13は、まず、ユーザ目的から、解の再現を妨げる可能性のある要素を抽出する。本実施形態では、ユーザ目的ごとに、同じ係数を有する変数の組み合わせ(集合)を抽出する。
続いて、解再現目的生成部13は、所定のルールにより、もしくは、解再現設定受付部14を介して受け付けたユーザの指示により、抽出した要素の優先順序を特定する。本実施形態では、抽出した変数の組み合わせごとに、各変数をアルファベット順(昇順)に並べ替える。もしくは、各変数をユーザの指定した順序に並べ替える。
もちろん、所定のルールは、制約条件を繰り返し変更して最適解を算出する中で、一貫して同じであればよく、アルファベット順に限られない。
その後、解再現目的生成部13は、特定した優先順序に従って、所定のルールにより、各要素に異なる重み付けを行い、解再現目的を生成する。本実施形態では、抽出した変数の組み合わせごとに、特定された優先順に、各変数に1から順に1間隔で係数を関連付ける。すなわち、各変数に対して重み付けを行う。
もちろん、重み付けのルールは、上記に限られず、各変数の間で重みが異なればよい。また、制約条件を繰り返し変更して最適解を算出する中で、一貫して同じであればよい。
また、解再現目的生成部13は、抽出した変数の組み合わせごとに、重み付けした各変数の合計値を求める関数を生成する。そして、生成した関数の値を最大化もしくは最小化する目的を、解再現目的として生成する。最大化するか最小化するか否かは、例えば、ユーザ目的と合わせるようにすればよい。最大化もしくは最小化のいずれか一方に固定的に設定するようにしてもよい。なお、制約条件を繰り返し変更して最適解を算出する中で、一貫して同じであればよい。
また、解再現目的生成部13は、生成した解再現目的を、目的記憶部11および解再現目的記憶部18に格納する。
なお、解再現目的記憶部18に既に記憶されている解再現目的を使用すべき指示が、解再現設定受付部14を介して指示された場合、解再現目的生成部13は、解再現目的の生成を行わずに、解再現目的記憶部18に既に記憶されている解再現目的を、目的記憶部11に格納する。
解再現設定受付部14は、解の再現に関する各種設定を受け付ける処理を行う。各種設定は、解再現目的生成部13において使用される。
具体的には、解再現設定受付部14は、解再現目的を生成する方法を選択するための操作画面を表示部21に表示させる。解再現目的を生成する方法には、ユーザの入力を必要とする方法(以下、「手動生成」と呼ぶ。)、ユーザの入力を必要としない方法(以下、「自動生成」と呼ぶ。)、既に生成された解再現目的を再利用する方法(以下、「再利用」と呼ぶ。)がある。また、解再現設定受付部14は、「手動生成」、「自動生成」、「再利用」のいずれかの選択を、入力部20を介して受け付ける。
また、解再現設定受付部14は、上記「手動生成」が選択されている場合、解の再現を妨げる可能性のある要素の優先順序を指定するための操作画面を表示部21に表示させる。また、解再現設定受付部14は、各要素の優先順序の指定を、入力部20を介して受け付ける。
最適化問題計算部15は、与えられた制約条件の下、ユーザ目的を最適化し、かつ、解再現目的を最適化する解を算出する。
具体的には、最適化問題計算部15は、制約条件記憶部12に格納された制約条件を取得する。また、目的記憶部11に格納されたユーザ目的および解再現目的を、所定の順序で順次取得する。そして、取得した制約条件の下、取得した目的ごとに最適解を順次算出する。ここで、最適化問題計算部15は、先に取得した目的の最適解の中から、次に取得した目的の最適解を選択することにより、最適解を順次絞り込む。
本実施形態では、最適化問題計算部15は、ユーザ目的を解再現目的より先に目的記憶部11から取得する。また、ユーザ目的が複数ある場合、所定の順序(例えば、ユーザ目的が入力された順序、ユーザに予め指定された優先順序など)でユーザ目的を取得する。また、解再現目的が複数ある場合、所定の順序(例えば、解再現目的生成部13により生成された順序)で解再現目的を取得する。
もちろん、ユーザ目的の取得順序および解再現目的の取得順序は、計画最適化装置1において一定であれば、すなわち、計算が行われる度に変更されなければ、上記に限られない。
なお、最適化問題計算部15は、例えば、線形計画法、混合整数計画法、遺伝アルゴリズムなどを用いて、複数の目的の最適解を算出する。
解記憶部16には、最適化問題計算部15により最終的に算出された一つの最適解が格納される。
解出力部17は、解記憶部16から最適解を取得し、表示部21に表示させる。
解再現目的記憶部18には、解再現目的生成部13より生成された解再現目的が格納される。
入力部20は、ユーザからの入力操作を受け付けるためのユーザインタフェースである。
表示部21は、他の機能部の指示に従って、各種操作画面や画像などを表示するためのユーザインタフェースである。
もちろん、計画最適化装置1の機能構成は上記に限られない。例えば、ネットワークを介してデータの送受信を行う通信部(図示しない)を介して、ユーザ設定受付部10および解再現設定受付部14は、各種設定を受け付けるようにしてもよい。また、解出力部17は、通信部を介して外部のコンピュータ等に最適解を出力するようにしてもよい。
上記の各種機能を有する計画最適化装置1は、例えば、図2に示すようなコンピュータにより実現される。
図2は、計画最適化装置1のハードウェア構成例を示すブロック図である。
本図に示すように、計画最適化装置1は、CPU100、RAM110、ROM120、補助記憶装置130、表示装置140、入力装置150、メディア読取装置160、通信装置170を有する。計画最適化装置1は、例えば、一般的なPCである。
CPU100は、各種演算を実行するユニットである。CPU100は、補助記憶装置130からRAM110にロードした所定の計画最適化プログラム(図示せず)を実行することにより、各種処理を実行する。
計画最適化プログラムは、例えば、OS(Operating System)プログラム上で実行可能なアプリケーションプログラムである。
なお、計画最適化プログラムは、例えば、メディア読取装置160を介して可搬型記憶媒体から、補助記憶装置130にインストールされてもよい。また、通信装置170を介してネットワークから、補助記憶装置130にダウンロードされてもよい。また、通信装置170を介してネットワークから、RAM110に直接ロードされ、CPU100により実行されるようにしてもよい。
RAM110は、CPU100により実行されるプログラムや、プログラムの実行に必要なデータなどを格納するメモリである。ROM120は、計画最適化装置1の起動に必要なプログラムなどを格納するメモリである。
補助記憶装置130は、例えば、HDD(Hard Disk Drive)などの装置である。フラッシュメモリなどを用いたSSD(Solid State Drive)であってもよい。
表示装置140は、例えば、CRTディスプレイ、LCD(Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなどの装置である。入力装置150は、例えば、キーボード、マウス、マイクなどの装置である。
メディア読取装置160は、CD−ROM等の可搬性を有する可搬型記憶媒体の情報を読み出す装置である。通信装置170は、ネットワークに接続して外部装置と通信を行う装置である。通信装置170は、例えば、Ethernet(登録商標)のネットワークカードである。
上述したユーザ設定受付部10、目的記憶部11、制約条件記憶部12、解再現目的生成部13、解再現設定受付部14、最適化問題計算部15、解記憶部16、解出力部17、解再現目的記憶部18は、例えば、CPU100がRAM110にロードした計画最適化プログラムを実行することにより実現される。目的記憶部11、制約条件記憶部12、解記憶部16、解再現目的記憶部18のデータは、例えば、RAM110または補助記憶装置130に格納される。
また、入力部20は、例えば、CPU100が所定のプログラムの実行して、入力装置150を制御することにより実現される。表示部21は、例えば、CPU100が所定のプログラムを実行して、表示装置140を制御することにより実現される。通信部は、例えば、CPU100が所定のプログラムを実行して通信装置170を制御することにより実現される。
もちろん、計画最適化装置1の構成は、上記に限られない。例えば、補助記憶装置130は、通信装置170を介して接続される外部のストレージであってもよい。
次に、上記の計画最適化装置1により実現される計画最適化処理について説明する。
以下では、説明をわかり易くするため、計画最適化の対象のモデルを例に挙げて説明を行う。まず、図5を参照して、対象のモデルについて説明する。
本図に示すように、工場Xで生産される製品A、B、Cの数は、それぞれa個、b個、c個である。また、工場Yで生産される製品A、B、Cの数は、それぞれd個、e個、f個である。工場Xおよび工場Yの各々の生産能力は、それぞれ製品50個分である。また、製品A、B、Cの各々の需要は、100個である。また、製品A、B、Cの単価は、それぞれ、10円、10円、5円である。なお、本モデルは、1日の生産を単位としている。
また、上記の条件の下、売り上げを最大化し、かつ、工場Xの稼動(生産量)を最小化することをユーザ目的とする。この場合の制約条件は以下のように定義される。
(制約条件1)a+d ≦ 100
(制約条件2)b+e ≦ 100
(制約条件3)c+f ≦ 100
(制約条件4)a+b+c ≦ 50
(制約条件5)d+e+f ≦ 50
(制約条件6)a ≧ 0
(制約条件7)b ≧ 0
(制約条件8)c ≧ 0
(制約条件9)d ≧ 0
(制約条件10)e ≧ 0
(制約条件11)f ≧ 0
(制約条件2)b+e ≦ 100
(制約条件3)c+f ≦ 100
(制約条件4)a+b+c ≦ 50
(制約条件5)d+e+f ≦ 50
(制約条件6)a ≧ 0
(制約条件7)b ≧ 0
(制約条件8)c ≧ 0
(制約条件9)d ≧ 0
(制約条件10)e ≧ 0
(制約条件11)f ≧ 0
また、ユーザ目的は以下のように定義される。ここで、売り上げを「S1」、工場Xの生産量を「S2」とする。
(ユーザ目的1)
最大化:S1=10×a+10×b+5×c+10×d+10×e+5×f
(ユーザ目的2)
最小化:S2=a+b+c
最大化:S1=10×a+10×b+5×c+10×d+10×e+5×f
(ユーザ目的2)
最小化:S2=a+b+c
ここで、製品AおよびBの単価、制約条件は同じであるため、いずれの製品をより多く生産しても、最大の売り上げには影響しない。また、需要を満たすため、工場Xの生産量は合計で50個である必要がある。そのため、ユーザ目的1および2を最適化する解は、複数存在し、一つに定まらない。
しかしながら、現実的には、例えば、各種製品の生産を行う工場や生産個数が日によって大幅に変化すると、生産ラインなどに支障を来す。そのため、ユーザ目的が達成されるのであれば、最適解は一つに定まった方がよい。
このような場合に、本実施形態に係る計画最適化装置を用いれば、解に直接影響しない制約条件の変更、例えば、製品Cの需要を100個から200個へ増加させる変更があっても、制約条件の変更前と同じ解が算出される。
次に、上記のモデルを用いながら、計画最適化処理の流れを説明する。
図3は、計画最適化処理の流れを示すフロー図である。本フローは、例えば、ユーザの操作により所定の計画最適化処理プログラムが実行されることで開始される。
本フローが開始されると、まず、解再現設定受付部14は、解再現目的の生成方法の選択を受け付ける(S11)。
具体的には、解再現設定受付部14は、図7に示すような、設定ウィンドウ700を表示部21に表示させる。
設定ウィンドウ700は、例えば、複数のラジオボタン710と、選択終了ボタン720を有する。ラジオボタン710は、解再現目的の生成方法(手動生成、自動生成、再利用)を選択するためのボタンである。ラジオボタン710は、解再現目的の生成方法ごとに設けられている。選択終了ボタン720は、解再現目的の生成方法の選択を確定するためのボタンである。
解再現設定受付部14は、上記のような設定ウィンドウ700上で選択終了ボタン720を選択する操作を入力部20を介して受け付けると、選択されたラジオボタン710に対応する解再現目的の生成方法を特定する。
解再現目的の生成方法が選択されると(S11)、ユーザ設定受付部10は、ユーザ目的および制約条件を受け付ける(S12)。
具体的には、ユーザ設定受付部10は、ユーザ目的、制約条件、変数の定義を受け付けるための設定ウィンドウ(図示しない)を表示部21に表示させる。また、ユーザ設定受付部10は、設定ウィンドウ上の操作を入力部20を介して受け付け、ユーザ目的、制約条件、変数の定義を取得する。
例えば、ユーザ設定受付部10は、ユーザ目的、制約条件、変数の定義の記載を含むテキストファイルを受け付ける。各テキストファイルの内容は、例えば、図6(A)〜(C)に示すように記載される。図6(A)は、変数を定義するテキストファイルの内容を示している。図6(B)は、制約条件を定義するテキストファイルの内容を示している。図6(C)は、ユーザ目的を定義するテキストファイルの内容を示している。もちろん、ユーザ目的、制約条件、変数の定義を受け付ける方法は上記に限られない。
それから、ユーザ設定受付部10は、受け付けたユーザ目的および制約条件(S12)を記憶する(S13)。
具体的には、ユーザ設定受付部10は、例えば、受け付けたテキストファイル(図6(C))からユーザ目的を順次抽出し、目的記憶部11に格納する。また、受け付けたテキストファイル(図6(B))から制約条件を順次抽出し、制約条件記憶部12に格納する。なお、受け付けた変数の定義(図6(A))も、所定の記憶部(図示しない)に格納する。
図5のモデルの場合、上述したユーザ目的1および2が、目的記憶部11に順次格納される。また、制約条件1〜11が、制約条件記憶部12に順次格納される。
その後、解再現目的生成部13は、解再現目的の生成を行う(S14)。以下、図4を参照して、解再現目的の生成処理について説明する。図4は、解再現目的の生成処理の流れを示すフロー図である
本フローが開始されると、解再現目的生成部13は、解再現目的の生成方法の判定を行う(S1401)。
具体的には、解再現目的生成部13は、S11(図3)で選択された解再現目的の生成方法が、「手動生成」、「自動生成」、「再利用」のいずれであるかを判定する。解再現目的の生成方法が「手動生成」である場合(S1401:手動生成)、処理をS1411に進める。解再現目的の生成方法が「自動生成」である場合(S1401:自動生成)、処理をS1421に進める。解再現目的の生成方法が「再利用」である場合(S1401:再利用)、処理をS1435に進める。
解再現目的の生成方法が「手動生成」である場合(S1401:手動生成)、解再現目的生成部13は、ユーザ目的を取得する(S1411)。
具体的には、解再現目的生成部13は、目的記憶部11からユーザ目的を取得する。図5のモデルの場合、ユーザ目的1および2が取得される。
続いて、解再現目的生成部13は、取得したユーザ目的ごとに、同じ係数を有する変数の組み合わせを抽出する(S1412)。
図5のモデルの場合、ユーザ目的1から、同じ係数10を有する変数(a、b、d、e)と、同じ係数5を有する変数(c、f)との組み合わせが抽出される。また、ユーザ目的2から、同じ係数1を有する変数(a、b、c)の組み合わせが抽出される。
それから、解再現設定受付部14は、解再現目的生成部13により抽出された変数を表示する(S1413)。
具体的には、解再現設定受付部14は、図10に示すような、設定ウィンドウ800を表示部21に表示させる。ここでは、設定ウィンドウ800は、ユーザ目的ごとに表示されている。
設定ウィンドウ800は、変数表示フィールド810、入力終了ボタン830を有する。変数表示フィールド810は、同じ係数を有する変数の組み合わせごとに、設けられている。変数表示フィールド810には、同じ係数を有する変数が表示される。また、各変数の優先順位を入力するための優先順位設定フィールド820が、変数ごとに表示される。入力終了ボタン830は、各変数の優先順位を確定するためのボタンである。
図10は、図5のモデルの場合に表示される設定ウィンドウ800を示している。ユーザ目的1の設定ウィンドウ800には、変数(a、b、d、e)の組み合わせと、変数(c、f)の組み合わせとのそれぞれについて、変数表示フィールド810が表示されている。また、ユーザ目的2の設定ウィンドウ800には、変数(a、b、c)の組み合わせについて、変数表示フィールド810が表示されている。
上記のようにして抽出された変数を表示し、解再現設定受付部14は、優先順位を受け付ける(S1414)。すなわち、解再現設定受付部14は、設定ウィンドウ800の優先順位設定フィールド820への優先順位の入力を、入力部20を介して受け付ける。また、入力終了ボタン830の操作を入力部20を介して受け付けて、優先順位設定フィールド820に設定された各変数の優先順位を取得する。そして、処理をS1415に進める。
もちろん、各変数の優先順位の受け付け方法は上記に限られない。例えば、図11に示すように、設定ウィンドウ800の変数表示フィールド810に、マウスなどの操作(例えば、ドラッグ・アンド・ドロップ)により移動可能な変数オブジェクト825を、変数ごとに表示するようにしてもよい。このようにすれば、ユーザは、各変数の優先順位を簡単に設定できる。
優先順位が入力されると(S1414)、解再現目的生成部13は、入力された変数の優先順位に従って、解再現目的を生成する(S1415)。
具体的には、解再現目的生成部13は、まず、同じ係数を有する変数の組み合わせごとに、各変数を、指定された優先順位により並べ替える。また、解再現目的生成部13は、同じ係数を有する変数の組み合わせごとに、指定された優先順に、各変数に1から順に1間隔で係数を関連付ける。すなわち、各変数に重み付けを行う。そして、重み付けを行った各変数の合計値を求める関数を解再現目的として生成する。
図5のモデルの場合、ユーザ目的1の変数(a、b、d、e)の組み合わせ、ユーザ目的1の変数(c、f)の組み合わせ、ユーザ目的2の変数(a、b、c)の組み合わせ、それぞれから、以下の解再現目的1〜3が生成される。なお、各変数の優先順位は、アルファベット順で指定されたものとする。
(解再現目的1)
最大化:S3=a+2×b+3×d+4×e
(解再現目的2)
最大化:S4=c+2×f
(解再現目的3)
最小化:S5=a+2×b+3×c
最大化:S3=a+2×b+3×d+4×e
(解再現目的2)
最大化:S4=c+2×f
(解再現目的3)
最小化:S5=a+2×b+3×c
解再現目的を生成すると(S1415)、解再現目的生成部13は、生成した解再現目的を記憶する(S1416)。
具体的には、解再現目的生成部13は、生成した解再現目的を、目的記憶部11および解再現目的記憶部18に順次格納する。その結果、目的記憶部11には、ユーザ目的および解再現目的が格納される。
図5のモデルの場合、解再現目的記憶部18には、図8に示すように、上述した解再現目的1〜3が順次格納される。目的記憶部11には、図9に示すように、上述したユーザ目的1および2に加え、解再現目的1〜3が順次格納される。
一方、解再現目的の生成方法が「自動生成」である場合(S1401:自動生成)、解再現目的生成部13は、ユーザ目的を取得する(S1421)。処理の内容は、S1411と同様である。
続いて、解再現目的生成部13は、ユーザ目的ごとに、同じ係数を有する変数の組み合わせを抽出する(S1422)。処理の内容は、S1412と同様である。
その後、解再現目的生成部13は、所定の優先順位に従って、解再現目的を生成する(S1415)。
具体的には、解再現目的生成部13は、まず、同じ係数を有する変数の組み合わせごとに、各変数を、アルファベット順(昇順)に並べ替える。また、解再現目的生成部13は、同じ係数を有する変数の組み合わせごとに、アルファベット順に、各変数に1から順に1間隔で係数を関連付ける。すなわち、各変数に重み付けを行う。そして、重み付けを行った各変数の合計値を求める関数を解再現目的として生成する。
解再現目的を生成すると(S1425)、解再現目的生成部13は、生成した解再現目的を記憶する(S1426)。処理の内容は、S1416と同様である。
図5のモデルの場合、解再現目的記憶部18には、図8に示すように、上述した解再現目的1〜3が順次格納される。目的記憶部11には、図9に示すように、上述したユーザ目的1および2に加え、解再現目的1〜3が順次格納される。
一方、解再現目的の生成方法が「再利用」である場合(S1401:再利用)、解再現目的生成部13は、解再現目的記憶部18から解再現目的を取得する(S1435)。なお、取得される解再現目的は、「手動生成」もしくは「自動生成」により、同じユーザ目的に基づいて既に生成された解再現目的である。
解再現目的を取得すると(S1435)、解再現目的生成部13は、取得した解再現目的を記憶する(S1436)。
具体的には、解再現目的生成部13は、取得した解再現目的を、目的記憶部11に順次格納する。その結果、目的記憶部11には、ユーザ目的および解再現目的が格納される。
図5のモデルの場合、目的記憶部11には、図9に示すように、上述したユーザ目的1および2に加え、解再現目的1〜3が順次格納される。
上記のようにして解再現目的を記憶し(S1416、1426、S1436)、解再現目的生成部13は、本フローを終了する。
図3に戻って説明を続ける。解再現目的が生成されると(S14)、最適化問題計算部15は、最適解を算出する(S15)。
具体的には、最適化問題計算部15は、制約条件記憶部12から制約条件を取得する。また、目的記憶部11からユーザ目的および解再現目的を、所定の順序で取得する。そして、取得した制約条件の下、取得した目的ごとに最適解を順次算出し、最適解を1つに絞り込む。すなわち、ユーザ目的を最適化する解のうち、解再現目的を最適化する解を特定する。
図5のモデルの場合、最適化問題計算部15は、目的記憶部11に記憶された順序(図9)で、すなわち、ユーザ目的1、ユーザ目的2、解再現目的1、解再現目的2、解再現目的3の順序で、最適解を算出する。
まず、最適化問題計算部15は、ユーザ目的1を最適化する解を算出する。その結果、以下の複数の解が算出される。
(解1)a=50、b=0、c=0、d=50、e=0、f=0
(解2)a=50、b=0、c=0、d=0、e=50、f=0
(解3)a=0、b=50、c=0、d=50、e=0、f=0
(解4)a=0、b=50、c=0、d=0、e=50、f=0
(解5)a=25、b=25、c=0、d=25、e=25、f=0
(解1)a=50、b=0、c=0、d=50、e=0、f=0
(解2)a=50、b=0、c=0、d=0、e=50、f=0
(解3)a=0、b=50、c=0、d=50、e=0、f=0
(解4)a=0、b=50、c=0、d=0、e=50、f=0
(解5)a=25、b=25、c=0、d=25、e=25、f=0
続いて、最適化問題計算部15は、ユーザ目的1の最適解の中から、ユーザ目的2を最適化する解を特定する。その結果、以下の複数の解が特定される。
(解1)a=50、b=0、c=0、(d=50、e=0、f=0)
(解2)a=50、b=0、c=0、(d=0、e=50、f=0)
(解3)a=0、b=50、c=0、(d=50、e=0、f=0)
(解4)a=0、b=50、c=0、(d=0、e=50、f=0)
(解5)a=25、b=25、c=0、(d=25、e=25、f=0)
(解1)a=50、b=0、c=0、(d=50、e=0、f=0)
(解2)a=50、b=0、c=0、(d=0、e=50、f=0)
(解3)a=0、b=50、c=0、(d=50、e=0、f=0)
(解4)a=0、b=50、c=0、(d=0、e=50、f=0)
(解5)a=25、b=25、c=0、(d=25、e=25、f=0)
続いて、最適化問題計算部15は、ユーザ目的1および2を最適化する解の中から、解再現目的1を最適化する解を特定する。その結果、以下の一つの解が特定される。
(解4)a=0、b=50、c=0、d=0、e=50、f=0
(解4)a=0、b=50、c=0、d=0、e=50、f=0
以上のようにして、ユーザ目的を最適化する解が一つ算出される。
最適解を算出すると(S15)、最適化問題計算部15は、算出した最適解を解記憶部16に記憶する(S16)。そして、処理をS17に進める。
解出力部17は、解を表示する(S18)。具体的には、解出力部17は、解記憶部16から解を取得し、表示部21に表示させる。そして、本フローを終了する。もちろん、通信部(図示しない)を介して、外部のコンピュータに送信するようにしてもよい。
以上のようにして、計画最適化処理が実行される。
本処理によれば、同じユーザ目的について、制約条件を繰り返し変更させて最適解を算出させた場合であっても、同じ最適解もしくは近似する最適解が算出される。なお、上述した変数の優先順位が最適解の計算の度に変化すると、同じ最適解もしくは近似する最適解が算出されないことがある。
そのため、「手動生成」の場合(S1411〜1416)、ユーザは、同じユーザ目的について、毎回同じ優先順位を指定する必要がある。「自動生成」の場合(S1421〜S1426)、所定のルールにより毎回同じ優先順位が自動的に設定されるので、上記のような問題は起こらない。「再利用」の場合(S1435、1436)、一度設定された優先順位従って生成された解再現目的が繰り返し使用されるので、上記のような問題は起こらない。
以上、本発明の一実施形態について説明した。本実施形態によれば、制約条件等を変化させた場合でも、最適解を再現することができる。
すなわち、本実施形態によれば、ユーザ目的から、解の再現を妨げる可能性のある要素が抽出され、各要素の重み付けにより解の再現させるための解再現目的が生成される。また、ユーザ目的および解再現目的に対する最適解の計算が行われる。
このような構成により、同じユーザ目的に対する最適解を算出する場合に、本来、解の内容が変化しない、もしくは、解の内容が大きくは変化しないと思われる制約条件の変更があっても、同一もしくは近似の最適解が算出される。
また、最適解の再現に影響しない制約条件の変更の前後において、同一もしくは近似の最適解を得たいというユーザの要望に応えることができる。そして、出力された解の検証、調整などのユーザの作業負担を軽減することができる。
以上、本発明について、例示的な実施形態と関連させて記載した。多くの代替物、修正および変形例が当業者にとって明らかであることは明白である。したがって、上に記載の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。
例えば、本発明は、生産計画立案業務に限られず、繰り返し制約条件を変えて目的に対する最適解を探索する計画業務に適用可能である。
1:計画最適化装置、10:ユーザ設定受付部、11:目的記憶部、12:制約条件記憶部、13:解再現目的生成部、14:解再現設定受付部、15:最適化問題計算部、16:解記憶部、17:解出力部、18:解再現目的記憶部、20:入力部、21:表示部、
100:CPU、110:RAM、120:ROM、130:補助記憶装置、140:表示装置、150:入力装置、160:メディア読取装置、170:通信装置、
700:設定ウィンドウ、710:ラジオボタン、720:選択終了ボタン、800:設定ウィンドウ、810:変数表示フィールド、820:優先順位設定フィールド、825:変数オブジェクト、830:入力終了ボタン
100:CPU、110:RAM、120:ROM、130:補助記憶装置、140:表示装置、150:入力装置、160:メディア読取装置、170:通信装置、
700:設定ウィンドウ、710:ラジオボタン、720:選択終了ボタン、800:設定ウィンドウ、810:変数表示フィールド、820:優先順位設定フィールド、825:変数オブジェクト、830:入力終了ボタン
Claims (6)
- 制約条件に従って複数の目的関数を最適化する解を算出する計画最適化装置であって、
前記複数の目的関数および前記制約条件を、入力部を介して受け付けるユーザ設定受付部と、
前記複数の目的関数を記憶する目的記憶部と、
前記制約条件を記憶する制約条件記憶部と、
前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出する処理と、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する処理と、を行う解再現目的生成部と、
前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算部と、
前記最適化問題計算部により算出された解を記憶する解記憶部と、
前記解記憶部に記憶された解を出力する解出力部と、を有すること、
を特徴とする計画最適化装置。 - 請求項1に記載の計画最適化装置であって、
前記解再現目的を生成する方法の指定を、前記入力部を介して受け付ける解再現設定受付部を有し、
前記解再現設定受付部は、
前記解再現目的を手動で生成する方法が指定された場合、前記解再現目的生成部により抽出された前記変数の優先順序の指定を、前記入力部を介して受け付け、
前記解再現目的生成部は、
前記解再現設定受付部が受け付けた前記優先順序に従って前記変数の重み付けを行うこと、
を特徴とする計画最適化装置。 - 請求項1に記載の計画最適化装置であって、
前記解再現目的を生成する方法の指定を、前記入力部を介して受け付ける解再現設定受付部と、
前記解再現目的関数を記憶する解再現目的記憶部と、を有し、
前記解再現目的生成部は、
前記生成した解再現目的関数を前記解再現目的記憶部に記憶し、
前記最適化問題計算部は、
前記解再現目的を再利用する方法が指定された場合、前記解再現目的記憶部に記憶された前記解再現目的関数を用いて前記解を算出すること、
を特徴とする計画最適化装置。 - 請求項1〜3いずれか一項に記載の計画最適化装置であって、
前記最適化問題計算部は、
線形計画法、混合整数計画法、遺伝的アルゴリズムのいずれかを用いて、前記解を算出すること、
を特徴とする計画最適化装置。 - コンピュータを、制約条件に従って複数の目的関数を最適化する解を算出する計画最適化装置として機能させるための計画最適化プログラムであって、
前記コンピュータを、
前記複数の目的関数および前記制約条件を、入力部を介して受け付けるユーザ設定受付部と、
前記複数の目的関数を記憶する目的記憶部と、
前記制約条件を記憶する制約条件記憶部と、
前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出する処理と、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する処理と、を行う解再現目的生成部と、
前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算部と、
前記最適化問題計算部により算出された解を記憶する解記憶部と、
前記解記憶部に記憶された解を出力する解出力部として機能させること、
を特徴とする計画最適化プログラム。 - 制約条件に従って複数の目的関数を最適化する解を算出する計画最適化装置における計画最適化方法であって、
前記計画最適化装置は、
前記複数の目的関数および前記制約条件を、入力部を介して受け付けるユーザ設定受付ステップと、
前記複数の目的関数を記憶する目的記憶ステップと、
前記制約条件を記憶する制約条件記憶ステップと、
前記複数の目的関数それぞれから、同じ係数を有する変数の集合を抽出し、前記集合ごとに、前記変数ごとに異なる重み付けを所定の順序で行って合計する関数を解再現目的関数として生成する、解再現目的生成ステップと、
前記複数の目的関数、前記複数の解再現目的関数、および、前記制約条件を用いて、前記制約条件を満たし、かつ、前記複数の目的関数を最適化する解のうち、前記解再現目的関数を最適化する解を算出する、最適化問題計算ステップと、
前記最適化問題計算ステップにおいて算出された解を記憶する解記憶ステップと、
前記解記憶ステップにおいて記憶された解を出力する解出力ステップと、を実行すること、
を特徴とする計画最適化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008222993A JP2010061179A (ja) | 2008-09-01 | 2008-09-01 | 計画最適化装置、計画最適化プログラム、および計画最適化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008222993A JP2010061179A (ja) | 2008-09-01 | 2008-09-01 | 計画最適化装置、計画最適化プログラム、および計画最適化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010061179A true JP2010061179A (ja) | 2010-03-18 |
Family
ID=42187940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008222993A Pending JP2010061179A (ja) | 2008-09-01 | 2008-09-01 | 計画最適化装置、計画最適化プログラム、および計画最適化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010061179A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150000941A (ko) * | 2013-06-25 | 2015-01-06 | 주식회사 엘지화학 | 인터뷰 일정 최적화 방법 및 이를 위한 시스템 |
WO2017135322A1 (ja) * | 2016-02-03 | 2017-08-10 | 日本電気株式会社 | 最適化システム、最適化方法、及び、記録媒体 |
WO2017135314A1 (ja) * | 2016-02-03 | 2017-08-10 | 日本電気株式会社 | 情報処理装置、情報処理方法、及び、記録媒体 |
CN111401626A (zh) * | 2020-03-12 | 2020-07-10 | 东北石油大学 | 基于六度分隔理论的社交网络数值优化方法、系统及介质 |
-
2008
- 2008-09-01 JP JP2008222993A patent/JP2010061179A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150000941A (ko) * | 2013-06-25 | 2015-01-06 | 주식회사 엘지화학 | 인터뷰 일정 최적화 방법 및 이를 위한 시스템 |
KR101711914B1 (ko) * | 2013-06-25 | 2017-03-03 | 주식회사 엘지화학 | 인터뷰 일정 최적화 방법 및 이를 위한 시스템 |
WO2017135322A1 (ja) * | 2016-02-03 | 2017-08-10 | 日本電気株式会社 | 最適化システム、最適化方法、及び、記録媒体 |
WO2017135314A1 (ja) * | 2016-02-03 | 2017-08-10 | 日本電気株式会社 | 情報処理装置、情報処理方法、及び、記録媒体 |
JPWO2017135322A1 (ja) * | 2016-02-03 | 2018-11-29 | 日本電気株式会社 | 最適化システム、最適化方法、及び、プログラム |
CN111401626A (zh) * | 2020-03-12 | 2020-07-10 | 东北石油大学 | 基于六度分隔理论的社交网络数值优化方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11946753B2 (en) | Generating digital event recommendation sequences utilizing a dynamic user preference interface | |
US11227106B2 (en) | Suggested functions for formulas in spreadsheets | |
CN102402573B (zh) | 表格处理装置和表格处理方法 | |
JP2010061179A (ja) | 計画最適化装置、計画最適化プログラム、および計画最適化方法 | |
CN103699233A (zh) | 字符串输入方法和输入装置 | |
US9336337B2 (en) | Online frame layout tool | |
US20210209690A1 (en) | Order matching | |
CN117408452A (zh) | 任务规划方法、装置、电子设备、存储介质及程序产品 | |
CN104679754B (zh) | 用于数据预测的模型选择设备和方法 | |
JP2011203776A (ja) | 類似画像検索装置、方法及びプログラム | |
CN102981607B (zh) | 以预定义顺序排列文本项的计算机实现的方法 | |
US20170262424A1 (en) | Simulation system, simulation method, and simulation program | |
US20210264071A1 (en) | Solar panel system generation | |
JP2010113655A (ja) | 画像処理装置、画像処理装置の制御方法、及び制御プログラム | |
US8635550B2 (en) | GUI for goal programming and goal weighting in optimization based applications | |
JP2019061390A (ja) | 電子機器、測定モード設定方法、およびプログラム | |
CN114254078A (zh) | 信息筛选方法及装置 | |
KR20120004719A (ko) | 그룹학습 지원 방법, 시스템, 장치 및 단말기 | |
JP5393816B2 (ja) | 情報検索装置および情報検索方法 | |
JP2006065768A (ja) | 入力式入力制御装置及びプログラム | |
JP7073029B1 (ja) | 事業戦略評価装置、および事業戦略評価プログラム | |
JP2010061333A (ja) | アイコン作成システム、アイコン作成プログラム及びアイコン作成方法 | |
JP7221430B1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
KR102402491B1 (ko) | 데이터 변동량 디스플레이 방법 및 그 장치 | |
CN112154466B (zh) | 信息技术运用评价装置、信息技术运用评价系统及信息技术运用评价方法 |