(57)【特許請求の範囲】
【請求項１】
複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付け、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、
前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定し、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出し、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定し、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う
処理をコンピュータに実行させることを特徴とするニーポイント可視化プログラム。
【請求項２】
前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択することを特徴とする請求項１に記載のニーポイント可視化プログラム。
【請求項３】
前記安定度を算出する処理は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする請求項１または２に記載のニーポイント可視化プログラム。
【請求項４】
コンピュータが実行するニーポイント可視化方法であって、
複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付け、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、
前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定し、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出し、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定し、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う
処理をコンピュータに実行することを特徴とするニーポイント可視化方法。
【請求項５】
複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付ける受付部と、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定する領域特定部と、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出する算出部と、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定する重み特定部と、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う可視化部と
を有することを特徴とするニーポイント可視化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニーポイント可視化プログラム等に関する。
【背景技術】
【０００２】
多目的最適化問題では、各目的関数がトレードオフの関係にあり、最適解は一つに決まらないため、各目的関数の非劣解集合を求める。非劣解集合は、優劣のつけられない非劣解の集合のことで、目的関数値のいずれかを改善しようとした場合に、他の目的関数値が改悪されるような状態と言える。非劣解集合が形成する面は、パレートフロントと呼ばれる。
【０００３】
図２６は、パレートフロントの一例を示す図である。図２６において、横軸は目的関数ｆ１の目的関数値に対応する軸であり、左側に向かうほど、目的関数ｆ１に関する目的関数値がより良いものとなる。縦軸は目的関数ｆ２の目的関数値に対応する軸であり、下側に向かうほど、目的関数ｆ２に関する目的関数値がより良いものとなる。
【０００４】
意志決定者は、パレートフロントに含まれる非劣集合の中から最終的な非劣解を一つ選ぶこととなる。好ましい非劣解は、トレードオフ比のバランスがよいニーポイントＰとなる。なお、ニーポイントＰの周辺では、目的関数ｆ１を少し改善すると目的関数ｆ２が大きく改悪され、目的関数ｆ２を改善すると目的関数ｆ１が大きく改悪されるという特徴がある。
【０００５】
例えば、パレートフロントのニーポイントを検出する従来技術として、法線境界交差法を用いるものがある。この従来技術では、パレートフロントの端点Ａ，Ｂを結んだ境界線Ｃから優越法線方向に最も遠い点をニーポイントとして検出する。図２６に示す例では、Ｐがニーポイントとして検出される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】I.  Das.  On  characterizing  the  “knee”  of  the  Pareto  curve  based  on  normal-boundary  intersection.  Structural  Optimization,  18(2):107-115,  1999.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、ノイズが含まれるサンプルから、ノイズの含まれない真の状態から求めたニーポイントに近い条件での可視化を行うことができないという問題がある。
【０００８】
１つの側面では、本発明は、ノイズが含まれるサンプルから、ノイズの含まれない真の状態から求めたニーポイントに近い条件での可視化を行うことができるニーポイント可視化プログラム、ニーポイント可視化方法およびニーポイント可視化装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、コンピュータに次の処理を実行させる。コンピュータは、複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付ける。コンピュータは、複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定する。コンピュータは、特定のニーポイントが、連続してニーポイントに該当する重み領域を特定する。コンピュータは、複数の重みのうち、特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を重み領域の幅に基づいて算出する。コンピュータは、安定度に基づいて、複数の重みから可視化に最適な重みを特定し、特定した重みに基づいて、特定のニーポイントの可視化を行う。
【発明の効果】
【００１０】
ノイズが含まれるサンプルから、ノイズの含まれない真の状態から求めたニーポイントに近い条件での可視化を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、非劣解集合情報のデータ構造の一例を示す図である。
【図２】図２は、正規化処理を説明するための図である。
【図３】図３は、無向グラフ情報のデータ構造の一例を示す図である。
【図４】図４は、有向グラフ情報のデータ構造の一例を示す図である。
【図５】図５は、第１情報処理装置がニーポイントを検出する処理を説明するための図（１）である。
【図６】図６は、第１情報処理装置がニーポイントを検出する処理を説明するための図（２）である。
【図７】図７は、参考技術１の問題点を説明するための図である。
【図８】図８は、第２情報処理装置の処理を説明するための図である。
【図９】図９は、参考技術２の問題点を説明するための図である。
【図１０】図１０は、本実施例に係るニーポイント可視化装置の処理を説明するための図（１）である。
【図１１】図１１は、本実施例に係るニーポイント可視化装置の処理を説明するための図（２）である。
【図１２】図１２は、本実施例に係るニーポイント可視化装置の処理を説明するための図（３）である。
【図１３】図１３は、本実施例に係るニーポイント可視化装置の構成を示す機能ブロック図である。
【図１４】図１４は、本実施例に係る非劣解集合情報のデータ構造の一例を示す図である。
【図１５】図１５は、本実施例に係る重み集合情報のデータ構造の一例を示す図である。
【図１６】図１６は、本実施例に係る極小非劣解情報のデータ構造の一例を示す図である。
【図１７】図１７は、本実施例に係る極小回数テーブルのデータ構造の一例を示す図である。
【図１８】図１８は、本実施例に係る安定度テーブルのデータ構造の一例を示す図である。
【図１９】図１９は、重み領域情報の一例を示す図である。
【図２０】図２０は、極小回数テーブルの更新処理の一例を示す図である。
【図２１】図２１は、領域特定部の処理を説明するための図である。
【図２２】図２２は、算出部の処理を説明するための図である。
【図２３】図２３は、本実施例に係るニーポイント可視化装置の処理手順を示すフローチャートである。
【図２４】図２４は、ニーポイント可視化装置のその他の処理１を説明するための図である。
【図２５】図２５は、ニーポイント可視化装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【図２６】図２６は、パレートフロントの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するニーポイント可視化プログラム、ニーポイント可視化方法およびニーポイント可視化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
本発明の実施例を説明する前に、発明者が考案した参考技術１，２の説明を行う。この参考技術１，２は、従来技術ではない。まず、参考技術１について説明する。参考技術１に係る第１情報処理装置は、非劣解集合情報を受け付けると、非劣解集合情報を正規化する処理を行う。
【００１４】
ここで、非劣解集合情報は、多目的最適化問題における、複数の目的関数に対する非劣解の情報である。
【００１５】
図１は、非劣解集合情報のデータ構造の一例を示す図である。たとえば、Ｎ個の目的関数に対する非劣解は、図１に示すように、Ｎ次元空間上の解として示され、非劣解集合情報２０は、非劣解ＩＤと、ｆ１、ｆ２、ｆ３とを対応付ける。非劣解ＩＤは、非劣解を一意に識別する情報である。ｆ１、ｆ２、ｆ３は、各目的関数ｆ１、ｆ２、ｆ３に対応する目的関数値である。例えば、非劣解ＩＤ「１」に対応する非劣解は、「ｆ１＝１．４、ｆ２＝−２．４、ｆ３＝７．７」となる。図１に示す例では、ｆ１〜ｆ３を示すが、非劣解集合情報は、他の目的関数値を含んでいてもよい。
【００１６】
参考技術１に係る第１情報処理装置が、非劣解集合情報を正規化する処理について説明する。図２は、正規化処理を説明するための図である。第１情報処理装置は、非劣解集合情報２０を読み出し、各列の値から、最大値と最小値を検索する。例えば、ｆ１の列において、最大値は「４．４」、最小値は「１．４」となる。ｆ２の列において、最大値は「２．６」、最小値は「−２．４」となる。ｆ３の列において、最大値は「１２．６」、最小値は「５．６」となる。
【００１７】
第１情報処理装置は、非劣解集合情報２０の各列の値から最小値を引き、（最大値−最小値）で割る処理をそれぞれ実行することで、各目的関数値を更新し、中間データ２０ａを生成する。
【００１８】
例えば、非劣解集合情報２０の非劣解ＩＤ「１」の目的関数値ｆ１「１．４」を更新する場合について説明すると、（１．４−１．４）／（４．４−１．４）＝０となる。このため、中間データ２０ａの非劣解ＩＤ「１」の目的関数ｆ１は「０」となる。非劣解集合情報２０の非劣解ＩＤ「２」の目的関数ｆ１「２．６」を更新する場合について説明すると、（２．６−１．４）／（４．４−１．４）＝０．４となる。このため、中間データ２０ａの非劣解ＩＤ「２」の目的関数ｆ１は「０．４」となる。第１情報処理装置は、他の目的関数値も同様にして更新する。
【００１９】
第１情報処理装置は、中間データ２０ａの値に、目的関数の種別に応じた重みを乗算することで、各値を更新し、正規化情報２０ｂを生成する。例えば、第１情報処理装置は、目的関数ｆ１の目的関数値にｗ１を乗算し、目的関数ｆ２の目的関数値にｗ２を乗算し、目的関数ｆ３の目的関数値にｗ３を乗算する。重みｗ１、ｗ２、ｗ３は予め設定されており、たとえば、ｗ１＝「１」、ｗ２＝「２」、ｗ３＝「３」とする。
【００２０】
第１情報処理装置は、多次元空間上に配置された非劣解に対して、多次元空間上の非優越方向に位置する非劣解ほど値が大きくなる「高さ情報」を付与し、高さ情報を付与した各非劣解から、極小点となる非劣解をニーポイントとして検出する。
【００２１】
たとえば、第１情報処理装置は、各非劣解ＩＤに対する高さ情報を、高さ関数ｈｗを基にして算出する。高さ関数ｈｗは、式（１）により示される。式（１）により算出される、非劣解ＩＤに付与される高さ情報は、正規化情報２０ｂの行方向の和に対応する。
【００２２】
【数１】
0006988575.tif 000002
【００２３】
第１情報処理装置は、距離（ユーグリッド距離）の近い非劣解を同一のクラスタに分類するクラスタリングを、同一の高さ情報に属する非劣解毎に実行する。たとえば、第１情報処理装置は、Mapperによるクラスタリングを実行することで、各非劣解をクラスタに分類する。たとえば、第１情報処理装置は、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.」に記載された技術を用いる。
【００２４】
第１情報処理装置は、Mapperによるクラスタリングの結果を基にして、無向グラフ情報を生成する。無向グラフ情報は、Mapperに基づいてクラスタリングされたクラスタを、オーバーラップするクラスタ同士、辺で接続した情報である。ここで、２つのクラスタがオーバーラップするとは、非劣解集合の中に、２つのクラスタの両方に属する非劣解があることをいう。
【００２５】
図３は、無向グラフ情報のデータ構造の一例を示す図である。図３に示す例では、無向グラフ情報２５ａは、各クラスタに高さ情報が付与され、オーバーラップするクラスタ同士が、辺で接続されている。各クラスタの高さ情報は、Mapperに基づいてクラスタリングされる非劣解それぞれの高さ情報に基づき付与される。
【００２６】
すなわち、多次元空間上に配置された非劣解に対しては、多次元空間上の非優越方向に位置する非劣解ほど値の大きくなる高さ情報が付与され、各クラスタｃ１〜ｃ７には、クラスタを構成する非劣解の高さ情報に基づき、高さ情報が付与される。例えば、多次元空間上に存在するクラスタについて、非優越方向に位置するクラスタほど、高さ情報の値が大きくなる。図３に示す例では、クラスタｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７には、高さ情報１，３，２，１，２，３，２が付与されている。
【００２７】
また、クラスタｃ２とクラスタｃ３とが辺ｈ１で接続される。クラスタｃ３とクラスタｃ４とが辺ｈ２で接続される。クラスタｃ４とクラスタｃ５とが辺ｈ３で接続される。クラスタｃ５とクラスタｃ６とが辺ｈ４で接続される。クラスタｃ６とクラスタｃ７とが辺ｈ５で接続される。
【００２８】
第１情報処理装置は、各クラスタの高さの情報を基にして、無向グラフ情報２５ａを有向グラフ情報２５ｂに変換する。有向グラフは、図３で説明した無向グラフ情報２５ａに示した各辺に向きの情報を持たせた情報である。例えば、第１情報処理装置は、第１のクラスタの高さ情報が、第２のクラスタの高さ情報よりも大きい場合に、第１のクラスタと第２のクラスタとを接続する辺の向きを、第２のクラスタから第１のクラスタに向かう方向に設定する。第１情報処理装置は、第２のクラスタの高さ情報が、第１のクラスタの高さ情報よりも大きい場合に、第１のクラスタと第２のクラスタとを接続する辺の向きを、第１のクラスタから第２のクラスタに向かう方向に設定する。
【００２９】
図４は、有向グラフ情報のデータ構造の一例を示す図である。図４に示すように、図３で説明した情報に加えて、各辺ｈ１〜ｈ５に向きの情報が付与されている。辺ｈ２は、クラスタｃ４からクラスタｃ３に向かう有向辺である。辺ｈ１は、クラスタｃ３からクラスタｃ２に向かう有向辺である。辺ｈ３は、クラスタｃ４からクラスタｃ５に向かう有向辺である。辺ｈ４は、クラスタｃ５からクラスタｃ６に向かう有向辺である。辺ｈ５は、クラスタｃ７からクラスタｃ６に向かう有向辺である。
【００３０】
第１情報処理装置は、有向グラフ情報２５ｂを基にして、ニーポイントに対応する非劣解を含むクラスタを検出する。図５は、第１情報処理装置がニーポイントを検出する処理を説明するための図（１）である。第１情報処理装置は、入力次数＝０となり、かつ、出力次数≧１となる極小クラスタを検出する。図５に示す例では、クラスタｃ４，ｃ７が、入力次数＝０となり、かつ、出力次数≧１となる極小クラスタとなる。極小クラスタとは、極小クラスタの周囲に、極小クラスタよりも低い他のクラスタが存在しないものとなる。第１情報処理装置は、極小クラスタｃ４に含まれる非劣解の非劣解ＩＤおよび極小クラスタｃ７に含まれる非劣解の非劣解ＩＤを、ニーポイントとして検出する。
【００３１】
例えば、極小クラスタｃ４に含まれる非劣解の非劣解ＩＤを「１，３」とし、極小クラスタｃ７に含まれる非劣解の非劣解ＩＤを「２，５」とする。この場合には、第１情報処理装置は、非劣解ＩＤ「１，２，３，５」を、ニーポイントとして検出する。
【００３２】
ところで、第１情報処理装置は、入力次数＝０となり、かつ、出力次数≧１となる極小クラスタに属する非劣解であっても、下記の条件を更に満たす場合には、該当する非劣解を、ニーポイントとして検出することを抑止する。具体的には、第１情報処理装置は、極小クラスタに属する非劣解が、他の極大クラスタにも含まれる場合には、該当する非劣解を、ニーポイントとして検出することを抑止する。極大クラスタとなるクラスタの条件は、入力次数＝１となり、かつ、出力次数＝０となるクラスタである。
【００３３】
図６は、第１情報処理装置がニーポイントを検出する処理を説明するための図（２）である。図６において、グラフ２６は、各非劣解を２次元上にプロットしたグラフである。例えば、横軸は、目的関数ｆ１の目的関数値に対応する軸であり、左側に向かうほど、目的関数ｆ１に関する目的関数値がより良いものとなる。縦軸は目的関数ｆ２の目的関数値に対応する軸であり、下側に向かうほど、目的関数ｆ２に関する目的関数値がより良いものとなる。グラフ２６は、右上から左下に向かう方向が、優越方向である。このため、グラフ２６の各非劣解は、グラフ２６の右上に位置するものほど、高さが大きくなる。
【００３４】
第１情報処理装置は、図６のグラフ２６に示した各非劣解に対してMapperによるクラスタリングを実行することで、有向グラフ情報２５ｃが生成される。例えば、グラフ２６において、領域２６ａ〜２６ｈに含まれる各非劣解が、極小クラスタ３０ａ〜３０ｈにそれぞれ分類される。
【００３５】
なお、Mapperによる非劣解集合の高さに基づく区間分割では、隣接する区間をオーバーラップさせて分割し、各区間に属する非劣解に対してクラスタリングを行うことで無向グラフ情報２５ａを生成する。このため、区間がオーバーラップした領域に位置する非劣解は、それぞれの区間において１つずつのクラスタに属するため、全区間を通して２つ以上のクラスタに属することになる。そのため、領域２６ｅのように単一の非劣解しか存在しない場合でも、非劣解が区間のオーバーラップする位置にあれば、該当する非劣解は、生成される無向グラフ２５ａにおいて、極小クラスタ３０ｅに属するだけでなく、その次に大きい高さのクラスタ４１ａにも属し、さらには極大クラスタ４２ａにも属する。領域２６ｆの非劣解についても同様にして、極小クラスタ３０ｆだけでなく、クラスタ４１ｂや、極大クラスタ４２ｂにも属する。
【００３６】
図６において、極小クラスタ３０ａ〜３０ｄ，３０ｇ，３０ｈは、検出対象となる極小クラスタである。しかし、極小クラスタ３０ｅ，３０ｆに属する非劣解は、領域２６ｅ，２６ｆに含まれる孤立点であり、ニーポイントとして相応しくない。このため、第１情報処理装置は、極小クラスタに属する非劣解が、他の極大クラスタにも属するかを判定する。第１情報処理装置は、係る条件を満たす非劣解を、ニーポイントとして検出することを抑止することで、領域２６ｅ，２６ｆに含まれる非劣解を検出しないようにする。
【００３７】
上記のように、参考技術１では、極小クラスタに含まれる非劣解を、ニーポイントとして検出する。以下の説明では、極小クラスタに含まれる非劣解を、適宜、「極小点にあたる非劣解」と表記する。
【００３８】
ここで、参考技術１の問題点について説明する。参考技術１により検出されるニーポイントは、非劣解集合情報に含まれるノイズによって変化しやすいという問題がある。
【００３９】
図７は、参考技術１の問題点を説明するための図である。図７において、グラフ５０ａは、ノイズを含まない理想的な非劣解集合を２次元上にプロットしたグラフである。グラフ５０ｂ，５０ｃは、ノイズを含む非劣解集合を２次元上にプロットしたグラフである。グラフ５０ａ〜５０ｃにおいて、横軸は、目的関数ｆ１の目的関数値に対応する軸である。縦軸は目的関数ｆ２の目的関数値に対応する軸である。
【００４０】
図７に示すように、非劣解集合にノイズが含まれると、座標軸のスケールが変わる。座標軸のスケールが変わると、高さ関数が変わり、高さ関数が変わると、検出されるニーポイントが変わってしまう。参考技術により検出されるニーポイントには、高さ関数が少し変化しただけで、ニーポイントではなくなる非劣解も含まれる。なお、高さ関数は、式（１）に示したように、ｗが変われば高さ関数の値が変わる。目的関数ｆのスケールを変えることは、ｗを変えることと等価である。すなわち、高さ関数が少し変化しただけで、ニーポイントではなくなる不安定な非劣解を除外し、ロバストなニーポイントを選択することが求められる。
【００４１】
次に、参考技術２について説明する。参考技術２の第２情報処理装置について説明する。第２情報処理装置は、式（１）の高さ関数で用いる重みの値を複数生成しておき、重みの異なる複数の高さ関数を用いて、極小点にあたる非劣解を特定する処理を行い、各非劣解について、極小点となった回数をカウントする。第２情報処理装置は、極小点となった回数の多い上位の非劣解を、ニーポイントとして選択する。
【００４２】
図８は、第２情報処理装置の処理を説明するための図である。図８に示すグラフに示すグラフ５５ａ，５５ｂ，５５ｃは、高さ関数を基にして非劣解集合に高さ情報を与えたものをプロットしたグラフである。たとえば、各グラフ５５ａ〜５５ｃの横軸は、目的関数ｆ１の目的関数値に対応する軸である。各グラフ５５ａ〜５５ｃの縦軸は、目的関数ｆ２の目的関数値に対応する軸である。
【００４３】
ここで、グラフ５５ａ〜５５ｃを生成する際の高さ関数の重みはそれぞれ異なっている。たとえば、グラフ５５ａを生成する際に用いた高さ関数を「ｈ１＝０．２×ｆ１＋０．８×ｆ２」とする。グラフ５５ｂを生成する際に用いた高さ関数を「ｈ２＝０．５×ｆ１＋０．５×ｆ２」とする。グラフ５５ｃを生成する際に用いた高さ関数を「ｈ３＝０．８×ｆ１＋０．２×ｆ２」とする。
【００４４】
たとえば、グラフ５５ａにおいて、極小点にあたる非劣解（ニーポイント）の非劣解ＩＤを「１０Ｂ，１０Ｃ，１０Ｄ，１０Ｆ」とする。グラフ５５ｂにおいて、極小点にあたる非劣解の非劣解ＩＤを「１０Ｃ，１０Ｄ，１０Ｆ」とする。グラフ５５ｃにおいて、極小点にあたる非劣解の非劣解ＩＤを「１０Ａ，１０Ｃ，１０Ｄ，１０Ｆ」とする。そうすると、極小点として選択された回数は、非劣解ＩＤ「１０Ａ」の非劣解が「１回」、非劣解ＩＤ「１０Ｂ」の非劣解が「１回」、非劣解ＩＤ「１０Ｃ」の非劣解が「３回」となる。また、非劣解ＩＤ「１０Ｄ」の非劣解が「３回」、非劣解ＩＤ「１０Ｅ」の非劣解が「２回」、非劣解ＩＤ「１０Ｆ」の非劣解が「２回」となる。
【００４５】
第２情報処理装置は、極小点として選択された回数の多いものから上位Ｎの非劣解を、ニーポイントとして選択する。たとえば、Ｎ＝４とすると、第２情報処理装置は、非劣解ＩＤ「１０Ｃ，１０Ｄ，１０Ｅ，１０Ｆ」の非劣解をニーポイントとして選択する。
【００４６】
このように、第２情報処理装置は、重みの異なる複数の高さ関数を用いて、極小点にあたる非劣解を特定する処理を行い、各非劣解について、極小点となった回数が多いものをニーポイントとして選択する。極小点となった回数が多い非劣解は、高さ関数が少し変化しても、ニーポイントである場合が多いため、ロバストなニーポイントであるといえる。このため、第２情報処理装置によれば、第１情報処理装置と比較して、高さ関数が少し変化しただけで、ニーポイントではなくなる不安定な非劣解を除外し、ロバストなニーポイントを選択することができる。
【００４７】
ここで、参考技術２による第２情報処理装置の問題点について説明する。第２情報処理装置が生成するグラフは、誤差を含まない真のトレードオフ曲線から計算した「真のグラフ」とは異なるものである。たとえば、第２情報処理装置により検出された非劣解がロバストなニーポイントであったとしても、高さ関数の重みの設定次第では、真のグラフとはかけ離れたグラフになる場合もある。
【００４８】
図９は、参考技術２の問題点を説明するための図である。図９において、グラフ５６ａは、真のトレードオフ曲面から計算した真のグラフを示すものである。グラフ５６ｂ，５６ｃは、誤差を含むサンプルから計算したグラフを示す。たとえば、グラフ５６ｂを生成する場合に用いた高さ関数を「ｈｗ（ｆ１，ｆ２）＝０．５ｆ１＋０．５ｆ２」とする。グラフ５６ｃを生成する場合に用いた高さ関数を「ｈｗ（ｆ１，ｆ２）＝０．３ｆ１＋０．５ｆ２」とする。
【００４９】
たとえば、図９のグラフ５６ａには、複数の極小点にあたる非劣解（ニーポイント）が検出されている。ここでは、複数の極小点となる非劣解のうち、非劣解１０Ｃに着目する。この非劣解１０Ｃは、グラフ５６ｂにおいても極小点にあたる非劣解となるため、グラフ５６ａと同様にして、ニーポイントとして検出されている。一方、非劣解１０Ｃは、グラフ５６ｃにおいて正測点となり、ニーポイントとして検出されない。参考技術２により検出されるニーポイントは、参考技術１と比較して、誤差には強いが、検出されたニーポイントを極小点とする高さ関数は複数あり、どの高さ関数を用いれば、真のグラフに近づくグラフを生成できるのかを判定できていない。すなわち、ノイズが含まれる非劣解集合から、真のグラフに近い条件（重み）で、ニーポイントの可視化を行えていない。
【００５０】
次に、本実施例に係るニーポイント可視化装置の処理について説明する。図１０、図１１、図１２は、本実施例に係るニーポイント可視化装置の処理を説明するための図である。本実施例の説明では便宜上、高さ関数を式（２）に示す関数とする。式（２）において、ｗ１、ｗ２は、重みを示す。ｆ１，ｆ２は、目的関数ｆ１の目的関数値および目的関数ｆ２の目的関数値を示す。目的関数ｆ１の目的関数値および目的関数ｆ２の目的関数値として、非劣解が入力される。
【００５１】
ｈ＝ｗ１ｆ１＋ｗ２ｆ２・・・（２）
【００５２】
ニーポイント可視化装置は、高さ関数に設定する重みを変化させつつ、各重みにおいて、極小点にあたる非劣解（ニーポイント）を検出する。たとえば、図１０では、グラフ５７ａ，５７ｂ，５７ｃを示す。グラフ５７ａ，５７ｂ，５７ｃにおいて、横軸は、目的関数ｆ１の目的関数値に対応する軸である。縦軸は目的関数ｆ２の目的関数値に対応する軸である。グラフ５７ａを生成する場合に用いた高さ関数を「ｈ１＝０．２ｆ１＋０．８ｆ２」とする。グラフ５７ｂを生成する場合に用いた高さ関数を「ｈ２＝０．５ｆ１＋０．５ｆ２」とする。グラフ５７ｃを生成する場合に用いた高さ関数を「ｈ２＝０．８ｆ１＋０．２ｆ２」とする。図示を省略するが、ニーポイント可視化装置は、他の重みを設定して、他のグラフを生成するものとする。
【００５３】
たとえば、グラフ５７ａでは、非劣解ＩＤ「１０Ｂ，１０Ｃ，１０Ｅ，１０Ｆ」の非劣解がニーポイントとして検出されている。グラフ５７ｂでは、非劣解ＩＤ「１０Ａ，１０Ｂ，１０Ｃ，１０Ｅ，１０Ｆ」の非劣解がニーポイントとして検出されている。グラフ５７ｃでは、非劣解ＩＤ「１０Ａ，１０Ｂ，１０Ｃ，１０Ｅ，１０Ｆ」の非劣解がニーポイントとして検出されている。
【００５４】
ニーポイント可視化装置は、次の処理を行うことで、特定のニーポイントを、最も安定して検出することができる重みを特定する。ニーポイント可視化装置は、特定のニーポイントが連続して極小となる重み領域を特定し、特定した重み領域の幅を基にして、各重みの安定度を算出する。ニーポイント可視化装置は、安定度が最も大きい重みを、特定のニーポイントを、最も安定して検出することができる重みとする。
【００５５】
図１１を用いて、ニーポイント可視化装置の処理を説明する。ここでは一例として、特定のニーポイントを非劣解ＩＤ「１０Ｃ」の非劣解とし、着目する重みを式（２）の重みｗ１として説明を行う。図１１のテーブルの１行目は、ｗ１の値を示す。テーブルの２行目は、非劣解ＩＤ「１０Ｃ」の非劣解が極小であるかを示すものである。図１１に示す例では、ｗ１が「０．２〜０．６」である場合に、非劣解ＩＤ「１０Ｃ」の非劣解が極小である。ｗ１が「０．０，０．１，０．７，０，８」である場合に、非劣解ＩＤ「１０Ｃ」の非劣解が極小ではない。
【００５６】
図１１に示す例では、特定のニーポイントが連続して極小となる重み領域は、ｗ１が「０．２〜０．６」となる領域である。ニーポイント可視化装置は、この重み領域の幅を基にして、各重みの安定度を算出する。たとえば、ニーポイント可視化装置は、重み領域に含まれる着目する重みと、重み領域の端の各重みとの差分の絶対値をそれぞれ算出し、値の小さい方を、安定度として算出する。着目する重みを「０．４」とすると、安定度は「０．２」となる。ニーポイント可視化装置は、他の重みについても同様に、安定度を算出する。なお、ニーポイント可視化装置は、重み領域に含まれない重みの安定度を「０」とする。
【００５７】
ニーポイント可視化装置は、図１１で説明した安定度を基にして、安定度が最も大きい重みは「ｗ１＝０．４」であると判定する。このため、特定のニーポイント（非劣解ＩＤ「１０Ｃ」の非劣解）を安定して検出できる重みは「ｗ１＝０．４」である。
【００５８】
図１２に示すグラフ５８ａは、誤差のない非劣解集合を用いた真のグラフを示し、グラフ５８ｂ，５８ｃは、誤差のある非劣解集合を用いたグラフを示す。各グラフ５８ａ〜５８ｃの横軸は、目的関数ｆ１の目的関数値に対応する軸である。各グラフ５８ａ〜５８ｃの縦軸は、目的関数ｆ２の目的関数値に対応する軸である。たとえば、ニーポイント可視化装置は、安定度の高い重み「ｗ１＝０．４」を用いた高さ関数「ｈ＝０．４ｆ１＋０．６ｆ２」を用いて、グラフ５８ａ〜５８ｃの生成を行い可視化したものとする。そうすると、いずれのグラフ５８ａ〜５８ｃにおいても、非劣解ＩＤ「１０Ｃ」の非劣解が極小であり、特定のニーポイントが検出されていることを示すことができる。また、これにより、真のグラフに近い形で、ニーポイントとその周辺でのトレードオフの様子を可視化することができる。
【００５９】
次に、本実施例に係るニーポイント可視化装置の構成について説明する。図１３は、本実施例に係るニーポイント可視化装置の構成を示す機能ブロック図である。図１３に示すように、このニーポイント可視化装置１００は、通信部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。
【００６０】
通信部１１０は、ネットワークを介して図示しない外部装置等に接続し、外部装置とデータ通信を実行する処理部である。通信部１１０は、ＮＩＣ（Network  Interface  Card）等の通信装置に対応する。
【００６１】
入力部１２０は、各種の情報をニーポイント可視化装置１００に入力するための入力装置である。入力部１２０は、キーボードやマウス、タッチパネル等に対応する。例えば、利用者は、入力部１２０を操作して、後述する非劣解集合情報１４１等を入力する。
【００６２】
表示部１３０は、制御部１５０から出力される情報を表示する表示装置である。表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。
【００６３】
記憶部１４０は、非劣解集合情報１４１、重み集合情報１４２、Mapperパラメータ１４３、無向グラフ情報１４４、有向グラフ情報１４５、極小非劣解情報１４６、極小回数テーブル１４７、安定度テーブル１４８を有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００６４】
非劣解集合情報１４１は、多目的最適化問題における複数の目的関数に対する非劣解の情報である。
【００６５】
図１４は、本実施例に係る非劣解集合情報のデータ構造の一例を示す図である。たとえば、Ｎ個の目的関数に対する非劣解は、図１４に示すように、Ｎ次元空間上の解として示され、非劣解集合情報１４１は、非劣解ＩＤと、ｆ１、ｆ２とを対応付ける。非劣解ＩＤは、非劣解を一意に識別する情報である。ｆ１、ｆ２は、各目的関数ｆ１、ｆ２に対応する目的関数値である。図１４に示す例では、ｆ１、ｆ２を示すが、非劣解集合情報１４１は、他の目的関数値を含んでいても良い。
【００６６】
重み集合情報１４２は、高さ情報を算出する場合に、各目的関数に与える重みの情報を保持する。重み集合情報１４２は、複数種類の重みの組を含む。
【００６７】
図１５は、本実施例に係る重み集合情報のデータ構造の一例を示す図である。図１５に示すように、この重み集合情報１４２は、重みセット番号と、重みｗ１、ｗ２とを対応付ける。重みセット番号は、高さ関数に与える重みｗ１、ｗ２の組を識別する番号である。たとえば、重みセット番号「Ｗ１００１」が選択されると、式（１）に示す高さ関数にｗ１＝「７」、ｗ２＝「２」が与えられる。図１５では一例として、重みｗ１、ｗ２の組を示すが、他の重み（たとえば、ｗ３、ｗ４、・・・）を含んでいてもよい。
【００６８】
Mapperパラメータ１４３は、Mapperに基づいて非劣解をクラスタリングする場合に利用するパラメータの情報を含む。例えば、Mapperパラメータ１４３には、Mapperの区間数、Mapperの区間のオーバーラップ率、Mapperのクラスタリングにおけるビン数を含む。
【００６９】
無向グラフ情報１４４は、Mapperに基づいてクラスタリングされたクラスタを、オーバーラップするクラスタ同士、辺で接続した情報である。たとえば、無向グラフ情報１４４のデータ構造は、図３で説明した無向グラフ情報２５ａのデータ構造に対応する。
【００７０】
有向グラフ情報１４５は、無向グラフ情報１４４に示される各辺に向きの情報を持たせた情報である。例えば、第１のクラスタと第２のクラスタとを接続する辺の向きは、第１のクラスタの高さ情報が、第２のクラスタの高さ情報よりも大きい場合に、第２のクラスタから第１のクラスタに向かう方向となる。第１のクラスタと第２のクラスタとを接続する辺の向きは、第２のクラスタの高さ情報が、第１のクラスタの高さ情報よりも大きい場合に、第１のクラスタから第２のクラスタに向かう方向となる。たとえば、有向グラフ情報１４５のデータ構造は、図４で説明した有向グラフ情報２５ｂのデータ構造に対応する。
【００７１】
極小非劣解情報１４６は、高さ関数に設定された重みと、かかる重みにより極小となった非劣解とを対応付ける情報である。図１６は、本実施例に係る極小非劣解情報のデータ構造の一例を示す図である。図１６に示すように、この極小非劣解情報１４６は、重みセット番号と、極小にあたる非劣解ＩＤ群とを対応付ける。重みセット番号は、高さ関数に与える重みｗ１、ｗ２の組を識別する番号である。極小にあたる非劣解ＩＤ群は、該当する重みセット番号に対応する重みが高さ関数に与えられた場合に、極小となる非劣解の非劣解ＩＤを示す。重みセット番号は、図１５に示した重みセット番号に対応する。
【００７２】
たとえば、図１５の１行目のレコードでは、重みセット番号「Ｗ１００１（ｗ１＝７、ｗ２＝２）」が高さ関数の重みに設定された場合に、非劣解ＩＤ「１０Ａ，１０Ｃ，・・・」の非劣解が、極小にあたる非劣解であることを示している。
【００７３】
極小回数テーブル１４７は、各非劣解について、極小点にあたる非劣解となる回数を保持するテーブルである。図１７は、本実施例に係る極小回数テーブルのデータ構造の一例を示す図である。図１７に示すように、この極小回数テーブル１４７は、非劣解ＩＤと、極小回数とを対応付ける。非劣解ＩＤは、非劣解を一意に識別する情報である。極小回数は、極小点にあたる非劣解となった回数を示す。各極小回数の初期値は０である。極小回数テーブル１４７を用いる処理は、後述する。
【００７４】
安定度テーブル１４８は、特定のニーポイントに関する重みの安定度の情報を保持するテーブルである。図１８は、本実施例に係る安定度テーブルのデータ構造の一例を示す図である。図１８に示すように、この安定度テーブル１４８は、特定非劣解ＩＤと、重み領域情報と、安定重み情報とを対応付ける。特定非劣解ＩＤは、特定のニーポイントとして指定された非劣解を一意に識別する情報である。安定重み情報は、該当する非劣解ＩＤが安定してニーポイントとなる重みの情報である。
【００７５】
重み領域情報は、特定のニーポイントが連続して極小となる領域を示す情報である。図１９は、重み領域情報の一例を示す図である。図１９に示す例では、特定非劣解ＩＤ「１０Ｃ」の重み領域情報を示す。重み領域情報には、重みに設定した各値と、極小フラグと、安定度とを対応付ける。このうち重みは、式（１）で説明した高さ関数に設定する重みの値を示す。一例として、重みをｗ１とするが、これに限定されるものではない。極小フラグは、特定非劣解ＩＤにより識別される非劣解が、該当する重みにおいて、極小となるか否かを示すものである。極小となる場合には、極小フラグは「オン」となる。極小とならない場合には、極小フラグは「オフ」となる。安定度は、重み領域の幅に基づいて算出される値であり、安定度が高い重みほど、かかる重みを高さ関数に用いた場合に、特定非劣解ＩＤの非劣解をニーポイントとしてより検出されやすくなる。
【００７６】
図１３の説明に戻る。制御部１５０は、受付部１５１と、重み生成部１５２と、ニーポイント算出部１５３と、領域特定部１５４と、算出部１５５と、重み特定部１５６と、可視化部１５７とを有する。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００７７】
受付部１５１は、通信部１１０または入力部１２０から、各種の情報を受け付け、受け付けた情報を、記憶部１４０に格納する処理部である。たとえば、受付部１５１は、非劣解集合情報１４１、Mapperパラメータ１４３を受け付け、記憶部１４０に格納する。また、受付部１５１は、重み生成条件情報を受け付けた場合には、重み生成条件情報を、重み生成部１５２に出力する。重み生成条件情報は、重み集合情報１４２を生成するための条件（格子点、分布など）を含む。
【００７８】
重み生成部１５２は、重み生成条件情報を基にして、重み集合情報１４２を生成する処理部である。重み生成部１５２は、重み集合情報１４２を、記憶部１４０に格納する。たとえば、重み生成部１５２は、重みの取りうる範囲Δから格子状に重みを選択する。範囲Δは、式（３）のように定義される。あるいは、重み生成部１５２は、範囲Δ上の一様分布で、重みを選択してもよいし、範囲Δ上である指定された値を中心に正規分布で重みを選択してもよい。
【００７９】
【数２】
0006988575.tif 000003
【００８０】
本実施例では一例として、重み生成部１５２が、重み集合情報１４２を生成する場合について説明したが、ニーポイント可視化装置１００は、重み集合情報１４２を、通信部１１０または入力部１２０から受け付けてもよい。
【００８１】
ニーポイント算出部１５３は、非劣解集合情報１４１を基にして、極小にあたる非劣解（ニーポイント）を算出する処理部である。以下において、ニーポイント算出部１５３の処理の一例について説明する。
【００８２】
ニーポイント算出部１５３は、重み集合情報１４２の複数の重みセットのうち、一つの重みセットを選択し、非劣解集合情報１４１に含まれる非劣解それぞれについて、高さ情報を算出する。ニーポイント算出部１５３は、各非劣解の高さ情報を基にして、極小点にあたる非劣解を特定する。ニーポイント算出部１５３は、高さ関数に設定した重みの重みセット番号と、極小点にあたる各非劣解の非劣解ＩＤとを対応付けて、極小非劣解情報１４６に登録する。ニーポイント算出部１５３は、極小回数テーブル１４７を参照し、極小点となる非劣解の非劣解ＩＤに対応する極小回数に１を加算する。ニーポイント算出部１５３は、重み集合情報１４２に含まれる各重みセットを変えつつ上記処理を繰り返し実行する。
【００８３】
ニーポイント算出部１５３は、非劣解集合情報１４１に含まれる非劣解の高さ情報を算出する処理の一例について説明する。ニーポイント算出部１５３は、重み集合情報１４２から一つの重みセットを選択し、選択した重みセットの重みｗ１，ｗ２を、式（１）に示した高さ関数に設定し、かかる高さ関数を基にして、非劣解の高さ情報を算出する。非劣解の高さ情報を算出する処理について、重み集合情報１４２から一つの重みセットを選択して、高さ関数に用いること以外は、上述した参考技術１の第１情報処理装置と同様である。
【００８４】
続いて、ニーポイント算出部１５３が、非劣解の高さ情報を基にして、極小点にあたる非劣解を特定する処理の一例について説明する。ニーポイント算出部１５３は、距離（ユーグリッド距離）の近い非劣解を同一のクラスタに分類するクラスタリングを、同一の高さ情報に属する非劣解毎に実行する。ニーポイント算出部１５３は、Mapperパラメータ１４３を用いて、Mapperによるクラスタリングを実行することで、各非劣解をクラスタに分類する。
【００８５】
ニーポイント算出部１５３は、Mapperによるクラスタリングの結果を基にして、無向グラフ情報１４４を生成する。また、ニーポイント算出部１５３は、各クラスタの高さの情報を基にして、無向グラフ情報１４４を有向グラフ情報１４５に変換する。ニーポイント算出部１５３が、無向グラフ情報１４４および有向グラフ情報１４５を生成する処理は、上述した参考技術１の第１情報処理装置と同様である。
【００８６】
ニーポイント算出部１５３は、有向グラフ情報１４５を基にして、ニーポイントに対応する非劣解を含むクラスタ（極小クラスタ）を検出する。ニーポイント算出部１５３は、極小クラスタに含まれる非劣解を、ニーポイント（極小点にあたる非劣解）として検出する。ニーポイント算出部１５３が、ニーポイントを検出する処理は、上述した参考技術１の第１情報処理装置と同様である。ニーポイント算出部１５３は、重みセット番号と、ニーポイントとして検出した非劣解の非劣解ＩＤとを対応付けて、極小非劣解情報１４６に登録する。
【００８７】
ニーポイント算出部１５３は、上記の処理を実行することで、極小点にあたる非劣解を検出すると、極小非劣解情報１４６を更新すると共に、極小回数テーブル１４７を更新する。図２０は、極小回数テーブルの更新処理の一例を示す図である。極小回数テーブル１４７ａは、更新前の極小回数テーブル１４７とする。たとえば、上記処理により、ニーポイントとして検出された非劣解の非劣解ＩＤを「１０Ａ，１０Ｃ，１０Ｄ」とする。この場合には、ニーポイント算出部１５３は、非劣解ＩＤを「１０Ａ，１０Ｃ，１０Ｄ」に対応する極小回数に１をインクリメントすることで、更新後の極小回数テーブル１４６ｂを生成する。
【００８８】
領域特定部１５４は、ニーポイント算出部１５３により算出された複数のニーポイントから、特定のニーポイントを選択する。領域特定部１５４は、選択した特定のニーポイントが、各重みにおいて、ニーポイントに該当するか否かを判定し、特定のニーポイントが、連続してニーポイントに該当する重み領域を特定する。
【００８９】
領域特定部１５４が、複数のニーポイントから、特定のニーポイントを選択する処理の一例について説明する。領域特定部１５４は、極小回数テーブル１４７を参照し、極小回数が上位Ｎの非劣解ＩＤに対応する非劣解を、特定のニーポイントとして選択する。特定のニーポイントとして選択した非劣解の非劣解ＩＤは、特定非劣解ＩＤとなる。
【００９０】
領域特定部１５４が、特定のニーポイントに該当する重み領域を特定する処理について説明する。図２１は、領域特定部の処理を説明するための図である。領域特定部１５４は、特定のニーポイントの特定非劣解ＩＤと、極小非劣解情報１４６とを比較して、特定のニーポイントについて、各重みと、特定非劣解ＩＤが、極小点であるか否かを判定することで、重み領域情報１６０を生成する。
【００９１】
重み領域情報１６０は、重みと、極小フラグと、安定度とを対応付ける。重み、極小フラグ、安定度に関する説明は、図１９で説明したものと同様である。図２１で示す重み領域情報１６０は、たとえば、特定非劣ＩＤ１０Ｃの重み領域情報であるものとする。領域特定部１５４は、重みを選択し、特定非劣解ＩＤ「１０Ｃ」と、極小非劣解情報１４６とを比較し、選択した重みに対する特定非劣解ＩＤ「１０Ｃ」の非劣解が極小点である場合には、選択した重みに対する極小フラグを「オン」に設定する。領域特定部１５４は、重みを選択し、特定非劣解ＩＤ「１０Ｃ」と、極小非劣解情報１４６とを比較し、選択した重みに対する特定非劣解ＩＤ「１０Ｃ」の非劣解が極小点でない場合には、選択した重みに対する極小フラグを「オフ」に設定する。領域特定部１５４は、選択する重みを変えつつ、上記処理を繰り返し実行することで、重み領域情報１６０の各極小フラグを設定する。
【００９２】
領域特定部１５４は、重み領域情報１６０の各極小フラグを設定すると、重み領域情報１６０の各極小フラグを参照し、極小フラグが連続して「オン」となる領域を重み領域として特定する。図２１に示す例では、重み「０．２〜０．６」となる領域１６０ａが、重み領域となる。なお、領域特定部１５４により生成される重み領域情報１６０の安定度は、初期値「０」となる。重み領域情報１６０は、特定非劣解ＩＤ「１０Ｃ」の重み領域情報１６０を、算出部１５５に出力する。領域特定部１５４は、他の特定のニーポイントに該当する重み領域情報についても同様に生成し、算出部１５５に出力する。
【００９３】
算出部１５５は、重み領域の幅を基にして、各重みの安定度を算出する処理部である。図２２は、算出部の処理を説明するための図である。たとえば、算出部１５５は、式（４）に基づいて、重みの安定度δｗを算出する。式（４）において、ｗは、安定度の算出対象となる重みの値を示す。ｖは、重み領域の端の重みの値を示す。
【００９４】
【数３】
0006988575.tif 000004
【００９５】
算出部１５５は、領域特定部１５４に特定された重み領域１６０ａの重みに着目し、重みを選択して、重みの安定度を算出する処理を繰り返し実行することで、重み領域情報１６０から、重み領域情報１６１を生成する。算出部１５５は、特定非劣解ＩＤと対応付けて、重み領域情報１６１を、安定度テーブル１４８に登録する。算出部１５５は、他の特定非劣解ＩＤに対する重み領域情報についても同様に、安定度を算出し、安定度テーブル１４８に登録する。
【００９６】
重み特定部１５６は、安定度テーブル１４８の安定度を基にして、複数の重みから可視化に最適な重みを特定する処理部である。たとえば、重み特定部１５６は、特定のニーポイント（特定非劣解ＩＤ）毎に最適な重みを特定する。重み特定部１５６は、特定のニーポイントの特定非劣解ＩＤと、最適な重みとを対応付けた情報を、可視化部１５７に出力する。
【００９７】
重み特定部１５６は、安定度テーブル１４８の特定非劣解ＩＤに対応する重み領域情報を取得し、重み領域情報に含まれる重みのうち、安定度が最も大きい重みを、特定のニーポイントについての最適な重みであると判定する。たとえば、図１９に示した重み領域情報は、特定非劣解ＩＤ「１０Ｃ」の重み領域情報である。この重み領域情報に関して、安定度が最も大きい重みは「ｗ１＝０．４」となる。このため、重み特定部１５６は、特定のニーポイント（特定非劣解ＩＤ「１０」）に最適な重いは「ｗ１＝０．４」であると特定する。
【００９８】
可視化部１５７は、特定のニーポイント（特定非劣解ＩＤ）毎に最適な重みの情報を受け付け、特定のニーポイントに関するグラフを生成して可視化を行う処理部である。可視化部１５７は、生成したグラフの情報を表示部１３０に出力して表示させる。
【００９９】
たとえば、可視化部１５７は、最適な重みの値を高さ関数に設定し、非劣解集合情報１４１の各非劣解に高さ情報を付与する。可視化部１５７は、高さ情報を付与した各非劣解を基にして、極小点にあたる非劣解ＩＤを特定する。また、可視化部１５７は、高さ情報を付与した各非劣解を２次元上のグラフにプロットした情報を生成する。可視化部１５７が、グラフを生成する処理は、上述した第１情報処理装置と同様の処理である。可視化部１５７は、生成したグラフを、表示部１３０に表示させる場合に、極小点にあたる非劣解や、特定のニーポイントを強調表示させてもよい。
【０１００】
次に、本実施例に係るニーポイント可視化装置の処理手順について説明する。図２３は、本実施例に係るニーポイント可視化装置の処理手順を示すフローチャートである。図２３に示すように、ニーポイント可視化装置１００の受付部１５１は、非劣解集合情報１４１、Mapperパラメータ１４３、重み生成条件情報を受け付ける（ステップＳ１０１）。
【０１０１】
ニーポイント可視化装置１００の重み生成部１５２は、重み生成条件情報を基にして、重み集合情報１４２を生成する（ステップＳ１０２）。ニーポイント可視化装置１００のニーポイント算出部１５３は、重み集合情報１４２に含まれる未選択の重みセットを選択する（ステップＳ１０３）。
【０１０２】
ニーポイント算出部１５３は、極小点にあたる非劣解を検出する（ステップＳ１０４）。ニーポイント算出部１５３は、極小点にあたる非劣解の検出結果を基にして、極小回数テーブル１４７を更新する（ステップＳ１０５）。
【０１０３】
ニーポイント算出部１５３は、重み集合情報１４２に含まれる全ての重みセットを選択したか否かを判定する（ステップＳ１０６）。ニーポイント算出部１５３は、全ての重みセットを選択していない場合には（ステップＳ１０６，Ｎｏ）、ステップＳ１０３に移行する。一方、ニーポイント算出部１５３は、全ての重みセットを選択した場合には（ステップＳ１０６，Ｙｅｓ）、ステップＳ１０７に移行する。
【０１０４】
ニーポイント可視化装置１００の領域特定部１５４は、特定のニーポイントに対する重み領域を特定する（ステップＳ１０７）。ニーポイント可視化装置１００の算出部１５５は、重み領域の幅を基にして、各重みの安定度を算出する（ステップＳ１０８）。
【０１０５】
ニーポイント可視化装置１００の重み特定部１５６は、安定度が最大となる重みを特定する（ステップＳ１０９）。ニーポイント可視化装置１００の可視化部１５７は、安定度が最大となる重みを用いてグラフを生成する（ステップＳ１１０）。可視化部１５７は、グラフを表示部１３０に出力して表示させる（ステップＳ１１１）。
【０１０６】
次に、本実施例に係るニーポイント可視化装置１００の効果について説明する。ニーポイント可視化装置１００は、特定のニーポイントが連続して極小点となる重み領域を特定し、特定した重み領域の幅を基にして、各重みの安定度を算出する。ニーポイント可視化装置１００は、安定度が最も大きい重みを、特定のニーポイントを、最も安定して検出することができる重みとして特定し、特定した重みを用いて、特定のニーポイントを可視化する。これにより、ノイズが含まれるサンプル（非劣解集合情報１４１）から、ノイズの含まれない真の状態から求めたニーポイントに近い条件での可視化を行うことができる。また、これにより、真のグラフに近い形で、ニーポイントとその周辺でのトレードオフの様子を可視化することができる。
【０１０７】
ニーポイント可視化装置１００は、高さ関数を基にして、非劣解集合情報１４１の各非劣解に高さ情報を付与し、極小点となる非劣解を特定する処理を、各重みセットを変更しつつ実行し、非劣解毎に極小回数を計算する。そして、ニーポイント可視化装置１００は、極小回数が上位の非劣解を、特定のニーポイントとして選択する。これにより、ニーポイントとして検出されすい非劣解を特定のニーポイントとして選択できる。
【０１０８】
ニーポイント可視化装置１００は、重み領域に含まれる注目する重みと、重み領域の端の重みとの差分に基づいて、注目する重みの安定度を算出する。この安定度を用いることで、特定のニーポイントが、より、ニーポイントとして検出されやすくなる重みを選択することができる。
【０１０９】
なお、上述したニーポイント可視化装置１００の処理は一例である。以下において、ニーポイント可視化装置１００のその他の処理１，２について説明する。
【０１１０】
ニーポイント可視化装置１００のその他の処理１について説明する。上述したニーポイント可視化装置１００は、１つの特定のニーポイントについて、重み領域を特定し、各重みの安定度を算出していたが、これに限定されるものではなく、複数の特定のニーポイントについても同様に可能である。
【０１１１】
図２４は、ニーポイント可視化装置のその他の処理１を説明するための図である。ここでは、特定のニーポイントの特定非劣解ＩＤを「１０Ｃ，１０Ｄ」とする。たとえば、特定非劣解ＩＤ「１０Ｃ」の極小フラグは、重み「ｗ１＝０．２〜０．７」において、「オン」となる。特定非劣解ＩＤ「１０Ｄ」の極小フラグは、重み「ｗ１＝０．１〜０．６」において、「オン」となる。ニーポイント可視化装置１００の領域特定部１５４は、各特定非劣解ＩＤ「１０Ｃ，１０Ｄ」が共に「オン」となる領域１６０ｂを、重み領域として特定する。ニーポイント可視化装置１００が、重み領域の幅を基にして、各重みの安定度を算出する処理は、上述した算出部１５５の処理と同様である。
【０１１２】
すなわち、ニーポイント可視化装置１００は、複数の特定のニーポイントに関して、重み領域を特定する場合には、各極小フラグが全て「オン」となる領域を、重み領域として設定する。
【０１１３】
ニーポイント可視化装置１００のその他の処理２について説明する。上述したニーポイント可視化装置１００は、１つの重み（たとえば、ｗ１）に着目して、安定度を算出していたが、これに限定されるものではない。たとえば、ニーポイント可視化装置１００は、複数の重みに着目して、安定度を算出することもできる。
【０１１４】
ニーポイント可視化装置１００の算出部１５５は、式（５）に基づいて、３つの重み（ｗ１，ｗ２，ｗ３）に着目した安定度を算出することができる。式（５）において、ｗ１，ｗ２，ｗ３は、着目する重みの値が入力される。ｖ１は、ｗ１に設定される各重みのうち、特定のニーポイントが極小とはならない重みが設定される。ｖ２は、ｗ２に設定される各重みのうち、特定のニーポイントが極小とはならない重みが設定される。ｖ３は、ｗ３に設定される各重みのうち、特定のニーポイントが極小とはならない重みが設定される。
【０１１５】
【数４】
0006988575.tif 000005
【０１１６】
次に、上記実施例に示したニーポイント可視化装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図２５は、ニーポイント可視化装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１１７】
図２５に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４と、有線または無線ネットワークを介して収録機器等との間でデータの授受を行うインターフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７とを有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【０１１８】
ハードディスク装置２０７は、受付プログラム２０７ａ、重み生成プログラム２０７ｂ、ニーポイント算出プログラム２０７ｃ、領域特定プログラム２０７ｄを有する。また、ハードディスク装置２０７は、算出プログラム２０７ｅ、重み特定プログラム２０７ｆ、可視化プログラム２０７ｇを有する。ＣＰＵ２０１は、各プログラム２０７ａ〜２０７ｇを読み出してＲＡＭ２０６に展開する。
【０１１９】
受付プログラム２０７ａは、受付プロセス２０６ａとして機能する。重み生成プログラム２０７ｂは、重み生成プロセス２０６ｂとして機能する。ニーポイント算出プログラム２０７ｃは、ニーポイント算出プロセス２０６ｃとして機能する。領域特定プログラム２０７ｄは、領域特定プロセス２０６ｄとして機能する。算出プログラム２０７ｅは、算出プロセス２０６ｅとして機能する。重み特定プログラム２０７ｆは、重み特定プロセス２０６ｆとして機能する。可視化プログラム２０７ｇは、可視化プロセス２０６ｇとして機能する。
【０１２０】
受付プロセス２０６ａの処理は、受付部１５１の処理に対応する。重み生成プロセス２０６ｂの処理は、重み生成部１５２の処理に対応する。ニーポイント算出プロセス２０６ｃの処理は、ニーポイント算出部１５３の処理に対応する。領域特定プロセス２０６ｄの処理は、領域特定部１５４の処理に対応する。算出プロセス２０６ｅの処理は、算出部１５５の処理に対応する。重み特定プロセス２０６ｆの処理は、重み特定部１５６の処理に対応する。可視化プロセス２０６ｇの処理は、可視化部１５７の処理に対応する。
【０１２１】
なお、各プログラム２０７ａ〜２０７ｇについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が各プログラム２０７ａ〜２０７ｇを読み出して実行するようにしても良い。
【０１２２】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２３】
（付記１）複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付け、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、
前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定し、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出し、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定し、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う
処理をコンピュータに実行させることを特徴とするニーポイント可視化プログラム。
【０１２４】
（付記２）前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択することを特徴とする付記１に記載のニーポイント可視化プログラム。
【０１２５】
（付記３）前記安定度を算出する処理は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする付記１または２に記載のニーポイント可視化プログラム。
【０１２６】
（付記４）コンピュータが実行するニーポイント可視化方法であって、
複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付け、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、
前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定し、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出し、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定し、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う
処理をコンピュータに実行させることを特徴とするニーポイント可視化方法。
【０１２７】
（付記５）前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択することを特徴とする付記４に記載のニーポイント可視化方法。
【０１２８】
（付記６）前記安定度を算出する処理は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする付記４または５に記載のニーポイント可視化方法。
【０１２９】
（付記７）複数の目的関数を用いた最適化問題についての複数の非劣解の入力を受け付ける受付部と、
前記複数の非劣解に対して複数の重みを用いた場合に特定される複数のニーポイントにおいて、特定のニーポイントが各重みにおいてニーポイントに該当するか否かを判定し、前記特定のニーポイントが、連続してニーポイントに該当する重み領域を特定する領域特定部と、
前記複数の重みのうち、前記特定のニーポイントがニーポイントに該当する重みそれぞれについて、各重みの安定度を前記重み領域の幅に基づいて算出する算出部と、
前記安定度に基づいて、前記複数の重みから可視化に最適な重みを特定する重み特定部と、
特定した重みに基づいて、前記特定のニーポイントの可視化を行う可視化部と
を有することを特徴とするニーポイント可視化装置。
【０１３０】
（付記８）前記複数の非劣解それぞれについて、前記複数の目的関数を座標軸とする多次元空間上に設定される特定の方向に基づく高さ情報を付与する処理を前記非劣解に対する重みを変えつつ繰り返し実行することで、非劣解毎に前記高さ情報が極小となる回数を算出し、前記極小となる回数を基にして、前記特定のニーポイントを選択するニーポイント算出部を更に有することを特徴とするニーポイント可視化装置。
【０１３１】
（付記９）算出部は、前記重み領域に含まれる注目する重みと、前記重み領域の端の重みとの差分に基づいて、前記注目する重みの安定度を算出することを特徴とする付記７または８に記載のニーポイント可視化装置。
【符号の説明】
【０１３２】
１１０    通信部
１２０    入力部
１３０    表示部
１４０    記憶部
１４１    非劣解集合情報
１４２    重み集合情報
１４３    Mapperパラメータ
１４４    無向グラフ情報
１４５    有向グラフ情報
１４６    極小非劣解情報
１４７    極小回数テーブル
１４８    安定度テーブル
１５０    制御部
１５１    受付部
１５２    重み生成部
１５３    ニーポイント算出部
１５４    領域特定部
１５５    算出部
１５６    重み特定部
１５７    可視化部
【図１】
0006988575.tif 000006
【図２】
0006988575.tif 000007
【図３】
0006988575.tif 000008
【図４】
0006988575.tif 000009
【図５】
0006988575.tif 000010
【図６】
0006988575.tif 000011
【図７】
0006988575.tif 000012
【図８】
0006988575.tif 000013
【図９】
0006988575.tif 000014
【図１０】
0006988575.tif 000015
【図１１】
0006988575.tif 000016
【図１２】
0006988575.tif 000017
【図１３】
0006988575.tif 000018
【図１４】
0006988575.tif 000019
【図１５】
0006988575.tif 000020
【図１６】
0006988575.tif 000021
【図１７】
0006988575.tif 000022
【図１８】
0006988575.tif 000023
【図１９】
0006988575.tif 000024
【図２０】
0006988575.tif 000025
【図２１】
0006988575.tif 000026
【図２２】
0006988575.tif 000027
【図２３】
0006988575.tif 000028
【図２４】
0006988575.tif 000029
【図２５】
0006988575.tif 000030
【図２６】
0006988575.tif 000031