以下に、本願の開示するニーポイント可視化プログラム、ニーポイント可視化方法およびニーポイント可視化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本発明の実施例を説明する前に、発明者が考案した参考技術1,2の説明を行う。この参考技術1,2は、従来技術ではない。まず、参考技術1について説明する。参考技術1に係る第1情報処理装置は、非劣解集合情報を受け付けると、非劣解集合情報を正規化する処理を行う。
ここで、非劣解集合情報は、多目的最適化問題における、複数の目的関数に対する非劣解の情報である。
図1は、非劣解集合情報のデータ構造の一例を示す図である。たとえば、N個の目的関数に対する非劣解は、図1に示すように、N次元空間上の解として示され、非劣解集合情報20は、非劣解IDと、f1、f2、f3とを対応付ける。非劣解IDは、非劣解を一意に識別する情報である。f1、f2、f3は、各目的関数f1、f2、f3に対応する目的関数値である。例えば、非劣解ID「1」に対応する非劣解は、「f1=1.4、f2=−2.4、f3=7.7」となる。図1に示す例では、f1〜f3を示すが、非劣解集合情報は、他の目的関数値を含んでいてもよい。
参考技術1に係る第1情報処理装置が、非劣解集合情報を正規化する処理について説明する。図2は、正規化処理を説明するための図である。第1情報処理装置は、非劣解集合情報20を読み出し、各列の値から、最大値と最小値を検索する。例えば、f1の列において、最大値は「4.4」、最小値は「1.4」となる。f2の列において、最大値は「2.6」、最小値は「−2.4」となる。f3の列において、最大値は「12.6」、最小値は「5.6」となる。
第1情報処理装置は、非劣解集合情報20の各列の値から最小値を引き、(最大値−最小値)で割る処理をそれぞれ実行することで、各目的関数値を更新し、中間データ20aを生成する。
例えば、非劣解集合情報20の非劣解ID「1」の目的関数値f1「1.4」を更新する場合について説明すると、(1.4−1.4)/(4.4−1.4)=0となる。このため、中間データ20aの非劣解ID「1」の目的関数f1は「0」となる。非劣解集合情報20の非劣解ID「2」の目的関数f1「2.6」を更新する場合について説明すると、(2.6−1.4)/(4.4−1.4)=0.4となる。このため、中間データ20aの非劣解ID「2」の目的関数f1は「0.4」となる。第1情報処理装置は、他の目的関数値も同様にして更新する。
第1情報処理装置は、中間データ20aの値に、目的関数の種別に応じた重みを乗算することで、各値を更新し、正規化情報20bを生成する。例えば、第1情報処理装置は、目的関数f1の目的関数値にw1を乗算し、目的関数f2の目的関数値にw2を乗算し、目的関数f3の目的関数値にw3を乗算する。重みw1、w2、w3は予め設定されており、たとえば、w1=「1」、w2=「2」、w3=「3」とする。
第1情報処理装置は、多次元空間上に配置された非劣解に対して、多次元空間上の非優越方向に位置する非劣解ほど値が大きくなる「高さ情報」を付与し、高さ情報を付与した各非劣解から、極小点となる非劣解をニーポイントとして検出する。
たとえば、第1情報処理装置は、各非劣解IDに対する高さ情報を、高さ関数hwを基にして算出する。高さ関数hwは、式(1)により示される。式(1)により算出される、非劣解IDに付与される高さ情報は、正規化情報20bの行方向の和に対応する。
第1情報処理装置は、距離(ユーグリッド距離)の近い非劣解を同一のクラスタに分類するクラスタリングを、同一の高さ情報に属する非劣解毎に実行する。たとえば、第1情報処理装置は、Mapperによるクラスタリングを実行することで、各非劣解をクラスタに分類する。たとえば、第1情報処理装置は、Mapperによるクラスタリングとして「G.Singh, F.Memoli, and G.Carlsson. Topological Methods for the Analysis of High Dimensional Data Sets and 3D Object Recognition. In Proceedings of the Symposium on Point Based Graphics,Prague,Czech Republic,2007.」に記載された技術を用いる。
第1情報処理装置は、Mapperによるクラスタリングの結果を基にして、無向グラフ情報を生成する。無向グラフ情報は、Mapperに基づいてクラスタリングされたクラスタを、オーバーラップするクラスタ同士、辺で接続した情報である。ここで、2つのクラスタがオーバーラップするとは、非劣解集合の中に、2つのクラスタの両方に属する非劣解があることをいう。
図3は、無向グラフ情報のデータ構造の一例を示す図である。図3に示す例では、無向グラフ情報25aは、各クラスタに高さ情報が付与され、オーバーラップするクラスタ同士が、辺で接続されている。各クラスタの高さ情報は、Mapperに基づいてクラスタリングされる非劣解それぞれの高さ情報に基づき付与される。
すなわち、多次元空間上に配置された非劣解に対しては、多次元空間上の非優越方向に位置する非劣解ほど値の大きくなる高さ情報が付与され、各クラスタc1〜c7には、クラスタを構成する非劣解の高さ情報に基づき、高さ情報が付与される。例えば、多次元空間上に存在するクラスタについて、非優越方向に位置するクラスタほど、高さ情報の値が大きくなる。図3に示す例では、クラスタc1,c2,c3,c4,c5,c6,c7には、高さ情報1,3,2,1,2,3,2が付与されている。
また、クラスタc2とクラスタc3とが辺h1で接続される。クラスタc3とクラスタc4とが辺h2で接続される。クラスタc4とクラスタc5とが辺h3で接続される。クラスタc5とクラスタc6とが辺h4で接続される。クラスタc6とクラスタc7とが辺h5で接続される。
第1情報処理装置は、各クラスタの高さの情報を基にして、無向グラフ情報25aを有向グラフ情報25bに変換する。有向グラフは、図3で説明した無向グラフ情報25aに示した各辺に向きの情報を持たせた情報である。例えば、第1情報処理装置は、第1のクラスタの高さ情報が、第2のクラスタの高さ情報よりも大きい場合に、第1のクラスタと第2のクラスタとを接続する辺の向きを、第2のクラスタから第1のクラスタに向かう方向に設定する。第1情報処理装置は、第2のクラスタの高さ情報が、第1のクラスタの高さ情報よりも大きい場合に、第1のクラスタと第2のクラスタとを接続する辺の向きを、第1のクラスタから第2のクラスタに向かう方向に設定する。
図4は、有向グラフ情報のデータ構造の一例を示す図である。図4に示すように、図3で説明した情報に加えて、各辺h1〜h5に向きの情報が付与されている。辺h2は、クラスタc4からクラスタc3に向かう有向辺である。辺h1は、クラスタc3からクラスタc2に向かう有向辺である。辺h3は、クラスタc4からクラスタc5に向かう有向辺である。辺h4は、クラスタc5からクラスタc6に向かう有向辺である。辺h5は、クラスタc7からクラスタc6に向かう有向辺である。
第1情報処理装置は、有向グラフ情報25bを基にして、ニーポイントに対応する非劣解を含むクラスタを検出する。図5は、第1情報処理装置がニーポイントを検出する処理を説明するための図(1)である。第1情報処理装置は、入力次数=0となり、かつ、出力次数≧1となる極小クラスタを検出する。図5に示す例では、クラスタc4,c7が、入力次数=0となり、かつ、出力次数≧1となる極小クラスタとなる。極小クラスタとは、極小クラスタの周囲に、極小クラスタよりも低い他のクラスタが存在しないものとなる。第1情報処理装置は、極小クラスタc4に含まれる非劣解の非劣解IDおよび極小クラスタc7に含まれる非劣解の非劣解IDを、ニーポイントとして検出する。
例えば、極小クラスタc4に含まれる非劣解の非劣解IDを「1,3」とし、極小クラスタc7に含まれる非劣解の非劣解IDを「2,5」とする。この場合には、第1情報処理装置は、非劣解ID「1,2,3,5」を、ニーポイントとして検出する。
ところで、第1情報処理装置は、入力次数=0となり、かつ、出力次数≧1となる極小クラスタに属する非劣解であっても、下記の条件を更に満たす場合には、該当する非劣解を、ニーポイントとして検出することを抑止する。具体的には、第1情報処理装置は、極小クラスタに属する非劣解が、他の極大クラスタにも含まれる場合には、該当する非劣解を、ニーポイントとして検出することを抑止する。極大クラスタとなるクラスタの条件は、入力次数=1となり、かつ、出力次数=0となるクラスタである。
図6は、第1情報処理装置がニーポイントを検出する処理を説明するための図(2)である。図6において、グラフ26は、各非劣解を2次元上にプロットしたグラフである。例えば、横軸は、目的関数f1の目的関数値に対応する軸であり、左側に向かうほど、目的関数f1に関する目的関数値がより良いものとなる。縦軸は目的関数f2の目的関数値に対応する軸であり、下側に向かうほど、目的関数f2に関する目的関数値がより良いものとなる。グラフ26は、右上から左下に向かう方向が、優越方向である。このため、グラフ26の各非劣解は、グラフ26の右上に位置するものほど、高さが大きくなる。
第1情報処理装置は、図6のグラフ26に示した各非劣解に対してMapperによるクラスタリングを実行することで、有向グラフ情報25cが生成される。例えば、グラフ26において、領域26a〜26hに含まれる各非劣解が、極小クラスタ30a〜30hにそれぞれ分類される。
なお、Mapperによる非劣解集合の高さに基づく区間分割では、隣接する区間をオーバーラップさせて分割し、各区間に属する非劣解に対してクラスタリングを行うことで無向グラフ情報25aを生成する。このため、区間がオーバーラップした領域に位置する非劣解は、それぞれの区間において1つずつのクラスタに属するため、全区間を通して2つ以上のクラスタに属することになる。そのため、領域26eのように単一の非劣解しか存在しない場合でも、非劣解が区間のオーバーラップする位置にあれば、該当する非劣解は、生成される無向グラフ25aにおいて、極小クラスタ30eに属するだけでなく、その次に大きい高さのクラスタ41aにも属し、さらには極大クラスタ42aにも属する。領域26fの非劣解についても同様にして、極小クラスタ30fだけでなく、クラスタ41bや、極大クラスタ42bにも属する。
図6において、極小クラスタ30a〜30d,30g,30hは、検出対象となる極小クラスタである。しかし、極小クラスタ30e,30fに属する非劣解は、領域26e,26fに含まれる孤立点であり、ニーポイントとして相応しくない。このため、第1情報処理装置は、極小クラスタに属する非劣解が、他の極大クラスタにも属するかを判定する。第1情報処理装置は、係る条件を満たす非劣解を、ニーポイントとして検出することを抑止することで、領域26e,26fに含まれる非劣解を検出しないようにする。
上記のように、参考技術1では、極小クラスタに含まれる非劣解を、ニーポイントとして検出する。以下の説明では、極小クラスタに含まれる非劣解を、適宜、「極小点にあたる非劣解」と表記する。
ここで、参考技術1の問題点について説明する。参考技術1により検出されるニーポイントは、非劣解集合情報に含まれるノイズによって変化しやすいという問題がある。
図7は、参考技術1の問題点を説明するための図である。図7において、グラフ50aは、ノイズを含まない理想的な非劣解集合を2次元上にプロットしたグラフである。グラフ50b,50cは、ノイズを含む非劣解集合を2次元上にプロットしたグラフである。グラフ50a〜50cにおいて、横軸は、目的関数f1の目的関数値に対応する軸である。縦軸は目的関数f2の目的関数値に対応する軸である。
図7に示すように、非劣解集合にノイズが含まれると、座標軸のスケールが変わる。座標軸のスケールが変わると、高さ関数が変わり、高さ関数が変わると、検出されるニーポイントが変わってしまう。参考技術により検出されるニーポイントには、高さ関数が少し変化しただけで、ニーポイントではなくなる非劣解も含まれる。なお、高さ関数は、式(1)に示したように、wが変われば高さ関数の値が変わる。目的関数fのスケールを変えることは、wを変えることと等価である。すなわち、高さ関数が少し変化しただけで、ニーポイントではなくなる不安定な非劣解を除外し、ロバストなニーポイントを選択することが求められる。
次に、参考技術2について説明する。参考技術2の第2情報処理装置について説明する。第2情報処理装置は、式(1)の高さ関数で用いる重みの値を複数生成しておき、重みの異なる複数の高さ関数を用いて、極小点にあたる非劣解を特定する処理を行い、各非劣解について、極小点となった回数をカウントする。第2情報処理装置は、極小点となった回数の多い上位の非劣解を、ニーポイントとして選択する。
図8は、第2情報処理装置の処理を説明するための図である。図8に示すグラフに示すグラフ55a,55b,55cは、高さ関数を基にして非劣解集合に高さ情報を与えたものをプロットしたグラフである。たとえば、各グラフ55a〜55cの横軸は、目的関数f1の目的関数値に対応する軸である。各グラフ55a〜55cの縦軸は、目的関数f2の目的関数値に対応する軸である。
ここで、グラフ55a〜55cを生成する際の高さ関数の重みはそれぞれ異なっている。たとえば、グラフ55aを生成する際に用いた高さ関数を「h1=0.2×f1+0.8×f2」とする。グラフ55bを生成する際に用いた高さ関数を「h2=0.5×f1+0.5×f2」とする。グラフ55cを生成する際に用いた高さ関数を「h3=0.8×f1+0.2×f2」とする。
たとえば、グラフ55aにおいて、極小点にあたる非劣解(ニーポイント)の非劣解IDを「10B,10C,10D,10F」とする。グラフ55bにおいて、極小点にあたる非劣解の非劣解IDを「10C,10D,10F」とする。グラフ55cにおいて、極小点にあたる非劣解の非劣解IDを「10A,10C,10D,10F」とする。そうすると、極小点として選択された回数は、非劣解ID「10A」の非劣解が「1回」、非劣解ID「10B」の非劣解が「1回」、非劣解ID「10C」の非劣解が「3回」となる。また、非劣解ID「10D」の非劣解が「3回」、非劣解ID「10E」の非劣解が「2回」、非劣解ID「10F」の非劣解が「2回」となる。
第2情報処理装置は、極小点として選択された回数の多いものから上位Nの非劣解を、ニーポイントとして選択する。たとえば、N=4とすると、第2情報処理装置は、非劣解ID「10C,10D,10E,10F」の非劣解をニーポイントとして選択する。
このように、第2情報処理装置は、重みの異なる複数の高さ関数を用いて、極小点にあたる非劣解を特定する処理を行い、各非劣解について、極小点となった回数が多いものをニーポイントとして選択する。極小点となった回数が多い非劣解は、高さ関数が少し変化しても、ニーポイントである場合が多いため、ロバストなニーポイントであるといえる。このため、第2情報処理装置によれば、第1情報処理装置と比較して、高さ関数が少し変化しただけで、ニーポイントではなくなる不安定な非劣解を除外し、ロバストなニーポイントを選択することができる。
ここで、参考技術2による第2情報処理装置の問題点について説明する。第2情報処理装置が生成するグラフは、誤差を含まない真のトレードオフ曲線から計算した「真のグラフ」とは異なるものである。たとえば、第2情報処理装置により検出された非劣解がロバストなニーポイントであったとしても、高さ関数の重みの設定次第では、真のグラフとはかけ離れたグラフになる場合もある。
図9は、参考技術2の問題点を説明するための図である。図9において、グラフ56aは、真のトレードオフ曲面から計算した真のグラフを示すものである。グラフ56b,56cは、誤差を含むサンプルから計算したグラフを示す。たとえば、グラフ56bを生成する場合に用いた高さ関数を「hw(f1,f2)=0.5f1+0.5f2」とする。グラフ56cを生成する場合に用いた高さ関数を「hw(f1,f2)=0.3f1+0.5f2」とする。
たとえば、図9のグラフ56aには、複数の極小点にあたる非劣解(ニーポイント)が検出されている。ここでは、複数の極小点となる非劣解のうち、非劣解10Cに着目する。この非劣解10Cは、グラフ56bにおいても極小点にあたる非劣解となるため、グラフ56aと同様にして、ニーポイントとして検出されている。一方、非劣解10Cは、グラフ56cにおいて正測点となり、ニーポイントとして検出されない。参考技術2により検出されるニーポイントは、参考技術1と比較して、誤差には強いが、検出されたニーポイントを極小点とする高さ関数は複数あり、どの高さ関数を用いれば、真のグラフに近づくグラフを生成できるのかを判定できていない。すなわち、ノイズが含まれる非劣解集合から、真のグラフに近い条件(重み)で、ニーポイントの可視化を行えていない。
次に、本実施例に係るニーポイント可視化装置の処理について説明する。図10、図11、図12は、本実施例に係るニーポイント可視化装置の処理を説明するための図である。本実施例の説明では便宜上、高さ関数を式(2)に示す関数とする。式(2)において、w1、w2は、重みを示す。f1,f2は、目的関数f1の目的関数値および目的関数f2の目的関数値を示す。目的関数f1の目的関数値および目的関数f2の目的関数値として、非劣解が入力される。
h=w1f1+w2f2・・・(2)
ニーポイント可視化装置は、高さ関数に設定する重みを変化させつつ、各重みにおいて、極小点にあたる非劣解(ニーポイント)を検出する。たとえば、図10では、グラフ57a,57b,57cを示す。グラフ57a,57b,57cにおいて、横軸は、目的関数f1の目的関数値に対応する軸である。縦軸は目的関数f2の目的関数値に対応する軸である。グラフ57aを生成する場合に用いた高さ関数を「h1=0.2f1+0.8f2」とする。グラフ57bを生成する場合に用いた高さ関数を「h2=0.5f1+0.5f2」とする。グラフ57cを生成する場合に用いた高さ関数を「h2=0.8f1+0.2f2」とする。図示を省略するが、ニーポイント可視化装置は、他の重みを設定して、他のグラフを生成するものとする。
たとえば、グラフ57aでは、非劣解ID「10B,10C,10E,10F」の非劣解がニーポイントとして検出されている。グラフ57bでは、非劣解ID「10A,10B,10C,10E,10F」の非劣解がニーポイントとして検出されている。グラフ57cでは、非劣解ID「10A,10B,10C,10E,10F」の非劣解がニーポイントとして検出されている。
ニーポイント可視化装置は、次の処理を行うことで、特定のニーポイントを、最も安定して検出することができる重みを特定する。ニーポイント可視化装置は、特定のニーポイントが連続して極小となる重み領域を特定し、特定した重み領域の幅を基にして、各重みの安定度を算出する。ニーポイント可視化装置は、安定度が最も大きい重みを、特定のニーポイントを、最も安定して検出することができる重みとする。
図11を用いて、ニーポイント可視化装置の処理を説明する。ここでは一例として、特定のニーポイントを非劣解ID「10C」の非劣解とし、着目する重みを式(2)の重みw1として説明を行う。図11のテーブルの1行目は、w1の値を示す。テーブルの2行目は、非劣解ID「10C」の非劣解が極小であるかを示すものである。図11に示す例では、w1が「0.2〜0.6」である場合に、非劣解ID「10C」の非劣解が極小である。w1が「0.0,0.1,0.7,0,8」である場合に、非劣解ID「10C」の非劣解が極小ではない。
図11に示す例では、特定のニーポイントが連続して極小となる重み領域は、w1が「0.2〜0.6」となる領域である。ニーポイント可視化装置は、この重み領域の幅を基にして、各重みの安定度を算出する。たとえば、ニーポイント可視化装置は、重み領域に含まれる着目する重みと、重み領域の端の各重みとの差分の絶対値をそれぞれ算出し、値の小さい方を、安定度として算出する。着目する重みを「0.4」とすると、安定度は「0.2」となる。ニーポイント可視化装置は、他の重みについても同様に、安定度を算出する。なお、ニーポイント可視化装置は、重み領域に含まれない重みの安定度を「0」とする。
ニーポイント可視化装置は、図11で説明した安定度を基にして、安定度が最も大きい重みは「w1=0.4」であると判定する。このため、特定のニーポイント(非劣解ID「10C」の非劣解)を安定して検出できる重みは「w1=0.4」である。
図12に示すグラフ58aは、誤差のない非劣解集合を用いた真のグラフを示し、グラフ58b,58cは、誤差のある非劣解集合を用いたグラフを示す。各グラフ58a〜58cの横軸は、目的関数f1の目的関数値に対応する軸である。各グラフ58a〜58cの縦軸は、目的関数f2の目的関数値に対応する軸である。たとえば、ニーポイント可視化装置は、安定度の高い重み「w1=0.4」を用いた高さ関数「h=0.4f1+0.6f2」を用いて、グラフ58a〜58cの生成を行い可視化したものとする。そうすると、いずれのグラフ58a〜58cにおいても、非劣解ID「10C」の非劣解が極小であり、特定のニーポイントが検出されていることを示すことができる。また、これにより、真のグラフに近い形で、ニーポイントとその周辺でのトレードオフの様子を可視化することができる。
次に、本実施例に係るニーポイント可視化装置の構成について説明する。図13は、本実施例に係るニーポイント可視化装置の構成を示す機能ブロック図である。図13に示すように、このニーポイント可視化装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、ネットワークを介して図示しない外部装置等に接続し、外部装置とデータ通信を実行する処理部である。通信部110は、NIC(Network Interface Card)等の通信装置に対応する。
入力部120は、各種の情報をニーポイント可視化装置100に入力するための入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。例えば、利用者は、入力部120を操作して、後述する非劣解集合情報141等を入力する。
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイやタッチパネル等に対応する。
記憶部140は、非劣解集合情報141、重み集合情報142、Mapperパラメータ143、無向グラフ情報144、有向グラフ情報145、極小非劣解情報146、極小回数テーブル147、安定度テーブル148を有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
非劣解集合情報141は、多目的最適化問題における複数の目的関数に対する非劣解の情報である。
図14は、本実施例に係る非劣解集合情報のデータ構造の一例を示す図である。たとえば、N個の目的関数に対する非劣解は、図14に示すように、N次元空間上の解として示され、非劣解集合情報141は、非劣解IDと、f1、f2とを対応付ける。非劣解IDは、非劣解を一意に識別する情報である。f1、f2は、各目的関数f1、f2に対応する目的関数値である。図14に示す例では、f1、f2を示すが、非劣解集合情報141は、他の目的関数値を含んでいても良い。
重み集合情報142は、高さ情報を算出する場合に、各目的関数に与える重みの情報を保持する。重み集合情報142は、複数種類の重みの組を含む。
図15は、本実施例に係る重み集合情報のデータ構造の一例を示す図である。図15に示すように、この重み集合情報142は、重みセット番号と、重みw1、w2とを対応付ける。重みセット番号は、高さ関数に与える重みw1、w2の組を識別する番号である。たとえば、重みセット番号「W1001」が選択されると、式(1)に示す高さ関数にw1=「7」、w2=「2」が与えられる。図15では一例として、重みw1、w2の組を示すが、他の重み(たとえば、w3、w4、・・・)を含んでいてもよい。
Mapperパラメータ143は、Mapperに基づいて非劣解をクラスタリングする場合に利用するパラメータの情報を含む。例えば、Mapperパラメータ143には、Mapperの区間数、Mapperの区間のオーバーラップ率、Mapperのクラスタリングにおけるビン数を含む。
無向グラフ情報144は、Mapperに基づいてクラスタリングされたクラスタを、オーバーラップするクラスタ同士、辺で接続した情報である。たとえば、無向グラフ情報144のデータ構造は、図3で説明した無向グラフ情報25aのデータ構造に対応する。
有向グラフ情報145は、無向グラフ情報144に示される各辺に向きの情報を持たせた情報である。例えば、第1のクラスタと第2のクラスタとを接続する辺の向きは、第1のクラスタの高さ情報が、第2のクラスタの高さ情報よりも大きい場合に、第2のクラスタから第1のクラスタに向かう方向となる。第1のクラスタと第2のクラスタとを接続する辺の向きは、第2のクラスタの高さ情報が、第1のクラスタの高さ情報よりも大きい場合に、第1のクラスタから第2のクラスタに向かう方向となる。たとえば、有向グラフ情報145のデータ構造は、図4で説明した有向グラフ情報25bのデータ構造に対応する。
極小非劣解情報146は、高さ関数に設定された重みと、かかる重みにより極小となった非劣解とを対応付ける情報である。図16は、本実施例に係る極小非劣解情報のデータ構造の一例を示す図である。図16に示すように、この極小非劣解情報146は、重みセット番号と、極小にあたる非劣解ID群とを対応付ける。重みセット番号は、高さ関数に与える重みw1、w2の組を識別する番号である。極小にあたる非劣解ID群は、該当する重みセット番号に対応する重みが高さ関数に与えられた場合に、極小となる非劣解の非劣解IDを示す。重みセット番号は、図15に示した重みセット番号に対応する。
たとえば、図15の1行目のレコードでは、重みセット番号「W1001(w1=7、w2=2)」が高さ関数の重みに設定された場合に、非劣解ID「10A,10C,・・・」の非劣解が、極小にあたる非劣解であることを示している。
極小回数テーブル147は、各非劣解について、極小点にあたる非劣解となる回数を保持するテーブルである。図17は、本実施例に係る極小回数テーブルのデータ構造の一例を示す図である。図17に示すように、この極小回数テーブル147は、非劣解IDと、極小回数とを対応付ける。非劣解IDは、非劣解を一意に識別する情報である。極小回数は、極小点にあたる非劣解となった回数を示す。各極小回数の初期値は0である。極小回数テーブル147を用いる処理は、後述する。
安定度テーブル148は、特定のニーポイントに関する重みの安定度の情報を保持するテーブルである。図18は、本実施例に係る安定度テーブルのデータ構造の一例を示す図である。図18に示すように、この安定度テーブル148は、特定非劣解IDと、重み領域情報と、安定重み情報とを対応付ける。特定非劣解IDは、特定のニーポイントとして指定された非劣解を一意に識別する情報である。安定重み情報は、該当する非劣解IDが安定してニーポイントとなる重みの情報である。
重み領域情報は、特定のニーポイントが連続して極小となる領域を示す情報である。図19は、重み領域情報の一例を示す図である。図19に示す例では、特定非劣解ID「10C」の重み領域情報を示す。重み領域情報には、重みに設定した各値と、極小フラグと、安定度とを対応付ける。このうち重みは、式(1)で説明した高さ関数に設定する重みの値を示す。一例として、重みをw1とするが、これに限定されるものではない。極小フラグは、特定非劣解IDにより識別される非劣解が、該当する重みにおいて、極小となるか否かを示すものである。極小となる場合には、極小フラグは「オン」となる。極小とならない場合には、極小フラグは「オフ」となる。安定度は、重み領域の幅に基づいて算出される値であり、安定度が高い重みほど、かかる重みを高さ関数に用いた場合に、特定非劣解IDの非劣解をニーポイントとしてより検出されやすくなる。
図13の説明に戻る。制御部150は、受付部151と、重み生成部152と、ニーポイント算出部153と、領域特定部154と、算出部155と、重み特定部156と、可視化部157とを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
受付部151は、通信部110または入力部120から、各種の情報を受け付け、受け付けた情報を、記憶部140に格納する処理部である。たとえば、受付部151は、非劣解集合情報141、Mapperパラメータ143を受け付け、記憶部140に格納する。また、受付部151は、重み生成条件情報を受け付けた場合には、重み生成条件情報を、重み生成部152に出力する。重み生成条件情報は、重み集合情報142を生成するための条件(格子点、分布など)を含む。
重み生成部152は、重み生成条件情報を基にして、重み集合情報142を生成する処理部である。重み生成部152は、重み集合情報142を、記憶部140に格納する。たとえば、重み生成部152は、重みの取りうる範囲Δから格子状に重みを選択する。範囲Δは、式(3)のように定義される。あるいは、重み生成部152は、範囲Δ上の一様分布で、重みを選択してもよいし、範囲Δ上である指定された値を中心に正規分布で重みを選択してもよい。
本実施例では一例として、重み生成部152が、重み集合情報142を生成する場合について説明したが、ニーポイント可視化装置100は、重み集合情報142を、通信部110または入力部120から受け付けてもよい。
ニーポイント算出部153は、非劣解集合情報141を基にして、極小にあたる非劣解(ニーポイント)を算出する処理部である。以下において、ニーポイント算出部153の処理の一例について説明する。
ニーポイント算出部153は、重み集合情報142の複数の重みセットのうち、一つの重みセットを選択し、非劣解集合情報141に含まれる非劣解それぞれについて、高さ情報を算出する。ニーポイント算出部153は、各非劣解の高さ情報を基にして、極小点にあたる非劣解を特定する。ニーポイント算出部153は、高さ関数に設定した重みの重みセット番号と、極小点にあたる各非劣解の非劣解IDとを対応付けて、極小非劣解情報146に登録する。ニーポイント算出部153は、極小回数テーブル147を参照し、極小点となる非劣解の非劣解IDに対応する極小回数に1を加算する。ニーポイント算出部153は、重み集合情報142に含まれる各重みセットを変えつつ上記処理を繰り返し実行する。
ニーポイント算出部153は、非劣解集合情報141に含まれる非劣解の高さ情報を算出する処理の一例について説明する。ニーポイント算出部153は、重み集合情報142から一つの重みセットを選択し、選択した重みセットの重みw1,w2を、式(1)に示した高さ関数に設定し、かかる高さ関数を基にして、非劣解の高さ情報を算出する。非劣解の高さ情報を算出する処理について、重み集合情報142から一つの重みセットを選択して、高さ関数に用いること以外は、上述した参考技術1の第1情報処理装置と同様である。
続いて、ニーポイント算出部153が、非劣解の高さ情報を基にして、極小点にあたる非劣解を特定する処理の一例について説明する。ニーポイント算出部153は、距離(ユーグリッド距離)の近い非劣解を同一のクラスタに分類するクラスタリングを、同一の高さ情報に属する非劣解毎に実行する。ニーポイント算出部153は、Mapperパラメータ143を用いて、Mapperによるクラスタリングを実行することで、各非劣解をクラスタに分類する。
ニーポイント算出部153は、Mapperによるクラスタリングの結果を基にして、無向グラフ情報144を生成する。また、ニーポイント算出部153は、各クラスタの高さの情報を基にして、無向グラフ情報144を有向グラフ情報145に変換する。ニーポイント算出部153が、無向グラフ情報144および有向グラフ情報145を生成する処理は、上述した参考技術1の第1情報処理装置と同様である。
ニーポイント算出部153は、有向グラフ情報145を基にして、ニーポイントに対応する非劣解を含むクラスタ(極小クラスタ)を検出する。ニーポイント算出部153は、極小クラスタに含まれる非劣解を、ニーポイント(極小点にあたる非劣解)として検出する。ニーポイント算出部153が、ニーポイントを検出する処理は、上述した参考技術1の第1情報処理装置と同様である。ニーポイント算出部153は、重みセット番号と、ニーポイントとして検出した非劣解の非劣解IDとを対応付けて、極小非劣解情報146に登録する。
ニーポイント算出部153は、上記の処理を実行することで、極小点にあたる非劣解を検出すると、極小非劣解情報146を更新すると共に、極小回数テーブル147を更新する。図20は、極小回数テーブルの更新処理の一例を示す図である。極小回数テーブル147aは、更新前の極小回数テーブル147とする。たとえば、上記処理により、ニーポイントとして検出された非劣解の非劣解IDを「10A,10C,10D」とする。この場合には、ニーポイント算出部153は、非劣解IDを「10A,10C,10D」に対応する極小回数に1をインクリメントすることで、更新後の極小回数テーブル146bを生成する。
領域特定部154は、ニーポイント算出部153により算出された複数のニーポイントから、特定のニーポイントを選択する。領域特定部154は、選択した特定のニーポイントが、各重みにおいて、ニーポイントに該当するか否かを判定し、特定のニーポイントが、連続してニーポイントに該当する重み領域を特定する。
領域特定部154が、複数のニーポイントから、特定のニーポイントを選択する処理の一例について説明する。領域特定部154は、極小回数テーブル147を参照し、極小回数が上位Nの非劣解IDに対応する非劣解を、特定のニーポイントとして選択する。特定のニーポイントとして選択した非劣解の非劣解IDは、特定非劣解IDとなる。
領域特定部154が、特定のニーポイントに該当する重み領域を特定する処理について説明する。図21は、領域特定部の処理を説明するための図である。領域特定部154は、特定のニーポイントの特定非劣解IDと、極小非劣解情報146とを比較して、特定のニーポイントについて、各重みと、特定非劣解IDが、極小点であるか否かを判定することで、重み領域情報160を生成する。
重み領域情報160は、重みと、極小フラグと、安定度とを対応付ける。重み、極小フラグ、安定度に関する説明は、図19で説明したものと同様である。図21で示す重み領域情報160は、たとえば、特定非劣ID10Cの重み領域情報であるものとする。領域特定部154は、重みを選択し、特定非劣解ID「10C」と、極小非劣解情報146とを比較し、選択した重みに対する特定非劣解ID「10C」の非劣解が極小点である場合には、選択した重みに対する極小フラグを「オン」に設定する。領域特定部154は、重みを選択し、特定非劣解ID「10C」と、極小非劣解情報146とを比較し、選択した重みに対する特定非劣解ID「10C」の非劣解が極小点でない場合には、選択した重みに対する極小フラグを「オフ」に設定する。領域特定部154は、選択する重みを変えつつ、上記処理を繰り返し実行することで、重み領域情報160の各極小フラグを設定する。
領域特定部154は、重み領域情報160の各極小フラグを設定すると、重み領域情報160の各極小フラグを参照し、極小フラグが連続して「オン」となる領域を重み領域として特定する。図21に示す例では、重み「0.2〜0.6」となる領域160aが、重み領域となる。なお、領域特定部154により生成される重み領域情報160の安定度は、初期値「0」となる。重み領域情報160は、特定非劣解ID「10C」の重み領域情報160を、算出部155に出力する。領域特定部154は、他の特定のニーポイントに該当する重み領域情報についても同様に生成し、算出部155に出力する。
算出部155は、重み領域の幅を基にして、各重みの安定度を算出する処理部である。図22は、算出部の処理を説明するための図である。たとえば、算出部155は、式(4)に基づいて、重みの安定度δwを算出する。式(4)において、wは、安定度の算出対象となる重みの値を示す。vは、重み領域の端の重みの値を示す。
算出部155は、領域特定部154に特定された重み領域160aの重みに着目し、重みを選択して、重みの安定度を算出する処理を繰り返し実行することで、重み領域情報160から、重み領域情報161を生成する。算出部155は、特定非劣解IDと対応付けて、重み領域情報161を、安定度テーブル148に登録する。算出部155は、他の特定非劣解IDに対する重み領域情報についても同様に、安定度を算出し、安定度テーブル148に登録する。
重み特定部156は、安定度テーブル148の安定度を基にして、複数の重みから可視化に最適な重みを特定する処理部である。たとえば、重み特定部156は、特定のニーポイント(特定非劣解ID)毎に最適な重みを特定する。重み特定部156は、特定のニーポイントの特定非劣解IDと、最適な重みとを対応付けた情報を、可視化部157に出力する。
重み特定部156は、安定度テーブル148の特定非劣解IDに対応する重み領域情報を取得し、重み領域情報に含まれる重みのうち、安定度が最も大きい重みを、特定のニーポイントについての最適な重みであると判定する。たとえば、図19に示した重み領域情報は、特定非劣解ID「10C」の重み領域情報である。この重み領域情報に関して、安定度が最も大きい重みは「w1=0.4」となる。このため、重み特定部156は、特定のニーポイント(特定非劣解ID「10」)に最適な重いは「w1=0.4」であると特定する。
可視化部157は、特定のニーポイント(特定非劣解ID)毎に最適な重みの情報を受け付け、特定のニーポイントに関するグラフを生成して可視化を行う処理部である。可視化部157は、生成したグラフの情報を表示部130に出力して表示させる。
たとえば、可視化部157は、最適な重みの値を高さ関数に設定し、非劣解集合情報141の各非劣解に高さ情報を付与する。可視化部157は、高さ情報を付与した各非劣解を基にして、極小点にあたる非劣解IDを特定する。また、可視化部157は、高さ情報を付与した各非劣解を2次元上のグラフにプロットした情報を生成する。可視化部157が、グラフを生成する処理は、上述した第1情報処理装置と同様の処理である。可視化部157は、生成したグラフを、表示部130に表示させる場合に、極小点にあたる非劣解や、特定のニーポイントを強調表示させてもよい。
次に、本実施例に係るニーポイント可視化装置の処理手順について説明する。図23は、本実施例に係るニーポイント可視化装置の処理手順を示すフローチャートである。図23に示すように、ニーポイント可視化装置100の受付部151は、非劣解集合情報141、Mapperパラメータ143、重み生成条件情報を受け付ける(ステップS101)。
ニーポイント可視化装置100の重み生成部152は、重み生成条件情報を基にして、重み集合情報142を生成する(ステップS102)。ニーポイント可視化装置100のニーポイント算出部153は、重み集合情報142に含まれる未選択の重みセットを選択する(ステップS103)。
ニーポイント算出部153は、極小点にあたる非劣解を検出する(ステップS104)。ニーポイント算出部153は、極小点にあたる非劣解の検出結果を基にして、極小回数テーブル147を更新する(ステップS105)。
ニーポイント算出部153は、重み集合情報142に含まれる全ての重みセットを選択したか否かを判定する(ステップS106)。ニーポイント算出部153は、全ての重みセットを選択していない場合には(ステップS106,No)、ステップS103に移行する。一方、ニーポイント算出部153は、全ての重みセットを選択した場合には(ステップS106,Yes)、ステップS107に移行する。
ニーポイント可視化装置100の領域特定部154は、特定のニーポイントに対する重み領域を特定する(ステップS107)。ニーポイント可視化装置100の算出部155は、重み領域の幅を基にして、各重みの安定度を算出する(ステップS108)。
ニーポイント可視化装置100の重み特定部156は、安定度が最大となる重みを特定する(ステップS109)。ニーポイント可視化装置100の可視化部157は、安定度が最大となる重みを用いてグラフを生成する(ステップS110)。可視化部157は、グラフを表示部130に出力して表示させる(ステップS111)。
次に、本実施例に係るニーポイント可視化装置100の効果について説明する。ニーポイント可視化装置100は、特定のニーポイントが連続して極小点となる重み領域を特定し、特定した重み領域の幅を基にして、各重みの安定度を算出する。ニーポイント可視化装置100は、安定度が最も大きい重みを、特定のニーポイントを、最も安定して検出することができる重みとして特定し、特定した重みを用いて、特定のニーポイントを可視化する。これにより、ノイズが含まれるサンプル(非劣解集合情報141)から、ノイズの含まれない真の状態から求めたニーポイントに近い条件での可視化を行うことができる。また、これにより、真のグラフに近い形で、ニーポイントとその周辺でのトレードオフの様子を可視化することができる。
ニーポイント可視化装置100は、高さ関数を基にして、非劣解集合情報141の各非劣解に高さ情報を付与し、極小点となる非劣解を特定する処理を、各重みセットを変更しつつ実行し、非劣解毎に極小回数を計算する。そして、ニーポイント可視化装置100は、極小回数が上位の非劣解を、特定のニーポイントとして選択する。これにより、ニーポイントとして検出されすい非劣解を特定のニーポイントとして選択できる。
ニーポイント可視化装置100は、重み領域に含まれる注目する重みと、重み領域の端の重みとの差分に基づいて、注目する重みの安定度を算出する。この安定度を用いることで、特定のニーポイントが、より、ニーポイントとして検出されやすくなる重みを選択することができる。
なお、上述したニーポイント可視化装置100の処理は一例である。以下において、ニーポイント可視化装置100のその他の処理1,2について説明する。
ニーポイント可視化装置100のその他の処理1について説明する。上述したニーポイント可視化装置100は、1つの特定のニーポイントについて、重み領域を特定し、各重みの安定度を算出していたが、これに限定されるものではなく、複数の特定のニーポイントについても同様に可能である。
図24は、ニーポイント可視化装置のその他の処理1を説明するための図である。ここでは、特定のニーポイントの特定非劣解IDを「10C,10D」とする。たとえば、特定非劣解ID「10C」の極小フラグは、重み「w1=0.2〜0.7」において、「オン」となる。特定非劣解ID「10D」の極小フラグは、重み「w1=0.1〜0.6」において、「オン」となる。ニーポイント可視化装置100の領域特定部154は、各特定非劣解ID「10C,10D」が共に「オン」となる領域160bを、重み領域として特定する。ニーポイント可視化装置100が、重み領域の幅を基にして、各重みの安定度を算出する処理は、上述した算出部155の処理と同様である。
すなわち、ニーポイント可視化装置100は、複数の特定のニーポイントに関して、重み領域を特定する場合には、各極小フラグが全て「オン」となる領域を、重み領域として設定する。
ニーポイント可視化装置100のその他の処理2について説明する。上述したニーポイント可視化装置100は、1つの重み(たとえば、w1)に着目して、安定度を算出していたが、これに限定されるものではない。たとえば、ニーポイント可視化装置100は、複数の重みに着目して、安定度を算出することもできる。
ニーポイント可視化装置100の算出部155は、式(5)に基づいて、3つの重み(w1,w2,w3)に着目した安定度を算出することができる。式(5)において、w1,w2,w3は、着目する重みの値が入力される。v1は、w1に設定される各重みのうち、特定のニーポイントが極小とはならない重みが設定される。v2は、w2に設定される各重みのうち、特定のニーポイントが極小とはならない重みが設定される。v3は、w3に設定される各重みのうち、特定のニーポイントが極小とはならない重みが設定される。
次に、上記実施例に示したニーポイント可視化装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図25は、ニーポイント可視化装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図25に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る読み取り装置204と、有線または無線ネットワークを介して収録機器等との間でデータの授受を行うインターフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、受付プログラム207a、重み生成プログラム207b、ニーポイント算出プログラム207c、領域特定プログラム207dを有する。また、ハードディスク装置207は、算出プログラム207e、重み特定プログラム207f、可視化プログラム207gを有する。CPU201は、各プログラム207a〜207gを読み出してRAM206に展開する。
受付プログラム207aは、受付プロセス206aとして機能する。重み生成プログラム207bは、重み生成プロセス206bとして機能する。ニーポイント算出プログラム207cは、ニーポイント算出プロセス206cとして機能する。領域特定プログラム207dは、領域特定プロセス206dとして機能する。算出プログラム207eは、算出プロセス206eとして機能する。重み特定プログラム207fは、重み特定プロセス206fとして機能する。可視化プログラム207gは、可視化プロセス206gとして機能する。
受付プロセス206aの処理は、受付部151の処理に対応する。重み生成プロセス206bの処理は、重み生成部152の処理に対応する。ニーポイント算出プロセス206cの処理は、ニーポイント算出部153の処理に対応する。領域特定プロセス206dの処理は、領域特定部154の処理に対応する。算出プロセス206eの処理は、算出部155の処理に対応する。重み特定プロセス206fの処理は、重み特定部156の処理に対応する。可視化プロセス206gの処理は、可視化部157の処理に対応する。
なお、各プログラム207a〜207gについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a〜207gを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付け、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、
前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定し、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出し、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定し、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う
処理をコンピュータに実行させることを特徴とするニーポイント可視化プログラム。
(付記2)前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択することを特徴とする付記1に記載のニーポイント可視化プログラム。
(付記3)前記安定度を算出する処理は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする付記1または2に記載のニーポイント可視化プログラム。
(付記4)コンピュータが実行するニーポイント可視化方法であって、
複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付け、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、
前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定し、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出し、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定し、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う
処理をコンピュータに実行させることを特徴とするニーポイント可視化方法。
(付記5)前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択することを特徴とする付記4に記載のニーポイント可視化方法。
(付記6)前記安定度を算出する処理は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする付記4または5に記載のニーポイント可視化方法。
(付記7)複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付ける受付部と、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定する領域特定部と、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出する算出部と、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定する重み特定部と、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う可視化部と
を有することを特徴とするニーポイント可視化装置。
(付記8)前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択するニーポイント算出部を更に有することを特徴とするニーポイント可視化装置。
(付記9)算出部は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする付記7または8に記載のニーポイント可視化装置。