(57)【要約】【課題】グラフを用いた検索処理の精度への影響を低減する。【解決手段】複数のノードとノード間を接続する複数のエッジとを含むグラフデータ１３を取得する。グラフデータ１３が示す複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、検出した複数のハブノードのうちエッジによって連結された２以上のハブノードを含むコアノード集合１５を判定する。コアノード集合１５に属するハブノードの間の距離に基づいて、コアノード集合１５に対して中心ノード１６を設定し、中心ノード１６以外のコアノード集合１５に属するハブノード同士を接続するエッジに代えて、中心ノード１６以外のコアノード集合１５に属するハブノードと中心ノード１６とを接続するエッジを含む他のグラフデータ１４を生成する。【選択図】図１
2020077299.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
複数のノードとノード間を接続する複数のエッジとを含むグラフデータを取得し、
前記グラフデータが示す前記複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、前記検出した複数のハブノードのうちエッジによって連結された２以上のハブノードを含むコアノード集合を判定し、
前記コアノード集合に属するハブノードの間の距離に基づいて、前記コアノード集合に対して中心ノードを設定し、前記中心ノード以外の前記コアノード集合に属するハブノード同士を接続するエッジに代えて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジを含む他のグラフデータを生成する、
グラフ簡略化方法。
【請求項２】
前記中心ノードは、前記グラフデータに含まれていない新たなノードであり、
前記中心ノードの設定では、前記コアノード集合に属するハブノードの間の距離の平均値を算出し、前記算出した平均値に基づいて、前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジのウェイトを決定する、
請求項１記載のグラフ簡略化方法。
【請求項３】
前記ウェイトは、前記算出した平均値の２分の１である、
請求項２記載のグラフ簡略化方法。
【請求項４】
前記中心ノードは、前記コアノード集合に属するハブノードの１つであり、
前記中心ノードの設定では、前記コアノード集合に属するハブノードそれぞれと前記コアノード集合に属する他のハブノードとの間の距離に基づいて、前記コアノード集合に属するハブノードの中から前記中心ノードを選択する、
請求項１記載のグラフ簡略化方法。
【請求項５】
前記中心ノードの設定では、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとの間の距離に基づいて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジのウェイトを決定する、
請求項４記載のグラフ簡略化方法。
【請求項６】
前記他のグラフデータに基づいて、前記コアノード集合に属さない第１のノードと前記コアノード集合に属さない第２のノードとの間の経路を探索する、
請求項１記載のグラフ簡略化方法。
【請求項７】
前記複数のノードの少なくとも一部は、企業を示しており、
前記複数のエッジの少なくとも一部は、企業間の関係を示しており、
前記複数のハブノードは、前記複数のハブノード以外のノードが示す企業よりも関係をもつ他の企業が多いハブ企業を示している、
請求項１記載のグラフ簡略化方法。
【請求項８】
コンピュータに、
複数のノードとノード間を接続する複数のエッジとを含むグラフデータを取得し、
前記グラフデータが示す前記複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、前記検出した複数のハブノードのうちエッジによって連結された２以上のハブノードを含むコアノード集合を判定し、
前記コアノード集合に属するハブノードの間の距離に基づいて、前記コアノード集合に対して中心ノードを設定し、前記中心ノード以外の前記コアノード集合に属するハブノード同士を接続するエッジに代えて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジを含む他のグラフデータを生成する、
処理を実行させるグラフ簡略化プログラム。
【請求項９】
複数のノードとノード間を接続する複数のエッジとを含むグラフデータを記憶する記憶部と、
前記グラフデータが示す前記複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、前記検出した複数のハブノードのうちエッジによって連結された２以上のハブノードを含むコアノード集合を判定し、前記コアノード集合に属するハブノードの間の距離に基づいて、前記コアノード集合に対して中心ノードを設定し、前記中心ノード以外の前記コアノード集合に属するハブノード同士を接続するエッジに代えて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジを含む他のグラフデータを生成する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はグラフ簡略化方法、グラフ簡略化プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
多数のノードとノード間を接続するエッジとを含む大規模グラフを生成し、生成した大規模グラフを用いて様々な分析を行うことがある。例えば、人や企業や装置などの実体的存在（エンティティ）をノードで表現し、エンティティ間の関係をエッジで表現し、特定の条件を満たすエンティティまたは関係をグラフから検索することがある。
【０００３】
例えば、同一企業内のユーザ間で行われるコミュニケーションのうち業務との関連が強いコミュニケーションを抽出して、ユーザ間の人脈を定量的に評価する人脈分析検索システムが提案されている。提案の人脈分析検索システムは、相互にコミュニケーション量が多いユーザの集合をコミュニケーションコアとして抽出する。
【０００４】
また、例えば、スケールフリー特性をもつ大規模グラフにおける最短経路探索を並列処理化するグラフ処理方法が提案されている。また、例えば、専用の論理回路を用いたハードウェア処理と汎用プロセッサを用いたソフトウェア処理とを併用して、グラフの最短経路探索を行う情報処理システムが提案されている。提案の情報処理システムは、接続エッジ数が最も大きいノードをハブノードとしてグラフから抽出し、ハブノードを中心に形成されるノード群を優先的にハードウェア処理に割り当てる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２８００００号公報
【特許文献２】国際公開第２０１３／１４５００１号
【特許文献３】国際公開第２０１５／００４７８８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
経路探索などの検索処理に用いるグラフは、多数のエッジをもつハブノードと、少数のエッジをもつ周辺ノードとから形成されていることがある。特に、人や企業の間の社会的関係を表すグラフなど、ある種類のグラフは、ハブノード同士が密に接続されたコアと周辺ノードが分散した周辺部とを有していることがある。
【０００７】
コアを有するグラフに対してそのまま検索処理を行うと、コアは多数のエッジを含むため計算量が大きくなってしまう。一方で、コア内部においては多くのハブノードが相互に接続されていることが期待されるため、検索処理上の重要性が比較的低く、厳密な検索処理が不要であることもある。そこで、検索処理の効率化のためにグラフを簡略化することが考えられる。例えば、周辺部に属する２つの周辺ノードの間の経路を、コアを簡略化したグラフを用いて探索することが考えられる。
【０００８】
しかし、コアを無視したりコアを１つのノードに置換するなどの極端な簡略化を行うと、コア内部のハブノードと周辺ノードとの間の接続関係についての情報が大きく失われ、検索処理の精度を低下させるという影響がある。
【０００９】
１つの側面では、本発明は、グラフを用いた検索処理の精度への影響を低減するグラフ簡略化方法、グラフ簡略化プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、コンピュータが実行するグラフ簡略化方法が提供される。複数のノードとノード間を接続する複数のエッジとを含むグラフデータを取得する。グラフデータが示す複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、検出した複数のハブノードのうちエッジによって連結された２以上のハブノードを含むコアノード集合を判定する。コアノード集合に属するハブノードの間の距離に基づいて、コアノード集合に対して中心ノードを設定し、中心ノード以外のコアノード集合に属するハブノード同士を接続するエッジに代えて、中心ノード以外のコアノード集合に属するハブノードと中心ノードとを接続するエッジを含む他のグラフデータを生成する。
【００１１】
また、１つの態様では、コンピュータに実行させるグラフ簡略化プログラムが提供される。また、１つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【００１２】
１つの側面では、グラフを用いた検索処理の精度への影響を低減する。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理装置の例を説明する図である。
【図２】第２の実施の形態の分析装置のハードウェア例を示すブロック図である。
【図３】企業ネットワークの関係性分析の例を示す図である。
【図４】企業ネットワークの形状例を示す図である。
【図５】企業ネットワークの特徴例を示す分布図である。
【図６】経路探索の例を示す図である。
【図７】企業ネットワークの簡略化例を示す図である。
【図８】分析装置の機能例を示すブロック図である。
【図９】グラフデータの例を示す図である。
【図１０】接続情報の例を示す図である。
【図１１】グラフ簡略化の手順例を示すフローチャートである。
【図１２】グラフ簡略化の他の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１５】
図１は、第１の実施の形態の情報処理装置の例を説明する図である。
第１の実施の形態の情報処理装置１０は、複数のノードおよびノード間のエッジを含むグラフを分析する。情報処理装置１０をコンピュータと言うことがある。また、情報処理装置１０は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置１０が分析するグラフは、人や企業や装置などのエンティティをノードで表現し、エンティティ間の関係をエッジで表現した大規模グラフである。例えば、グラフとして、人や企業の間の取引関係を表現した企業ネットワーク、通信装置間の接続関係を表現した通信ネットワーク、Ｗｅｂサイト間のリンク関係を表現したＷｅｂネットワークなどが挙げられる。情報処理装置１０は、所定の条件を満たすノードまたはエッジをグラフから検索する検索処理を行ってもよい。例えば、検索処理として、最短経路探索など、あるノードから１以上のエッジを介して別のノードに到達する経路を探索する経路探索を行ってもよい。
【００１６】
情報処理装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性ストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１７】
記憶部１１は、グラフデータ１３を記憶する。グラフデータ１３は、複数のノードとノード間を接続する複数のエッジとを含む。処理部１２は、グラフデータ１３をグラフデータ１４に変換する。グラフデータ１４は、検索処理の計算量を削減するためにグラフデータ１３を簡略化したものであり、グラフデータ１３と同様に複数のノードとノード間を接続する複数のエッジとを含む。グラフデータ１４は、例えば、記憶部１１に記憶され、処理部１２によって経路探索などの検索処理に使用される。例えば、グラフデータ１３，１４に含まれるノードはノードＩＤによって識別され、グラフデータ１３，１４に含まれるエッジは両端のノードの組み合わせによって識別される。
【００１８】
グラフデータ１３からグラフデータ１４への変換において、処理部１２は、グラフデータ１３が示す複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出する。ハブノードは、関係をもつ他のエンティティの数が多い大規模エンティティを表している。処理部１２は、検出された複数のハブノードのうちエッジによって連結された２以上のハブノードを含むコアノード集合１５を判定する。コアノード集合１５は、ハブノード同士が密に接続されたものであり、大規模エンティティの集合を表している。例えば、処理部１２は、グラフデータ１３からハブノードとハブノード間を接続するエッジとを抽出し、ハブノードによって形成される連結部分グラフ（連結成分）のうちハブノード数が最大の連結部分グラフをコアノード集合１５と判定する。
【００１９】
例えば、グラフデータ１３がノードＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈを含んでいるとする。ノードＡのエッジ数（次数）は４、ノードＢのエッジ数は４、ノードＣのエッジ数は６、ノードＤのエッジ数は４、ノードＥのエッジ数は５、ノードＦのエッジ数は１、ノードＧのエッジ数は１、ノードＨのエッジ数は１である。処理部１２は、例えば、ノードＡ，Ｂ，Ｃ，Ｄ，Ｅをハブノードとして検出し、ノードＡ，Ｂ，Ｃ，Ｄ，Ｅによって形成される連結部分グラフをコアノード集合１５と判定する。
【００２０】
処理部１２は、コアノード集合１５に属するハブノードの間の距離に基づいて、コアノード集合１５に対して中心ノード１６を設定する。中心ノード１６は、グラフデータ１３においてコアノード集合１５に含まれていたハブノードの１つであってもよいし、グラフデータ１３においてコアノード集合１５に含まれていない新規ノードであってもよい。処理部１２は、中心ノード１６以外のコアノード集合１５に属するハブノード同士を接続するエッジを削除する。代わりに、処理部１２は、中心ノード１６以外のコアノード集合１５に属するハブノードと中心ノード１６とを接続するエッジを追加する。これにより、コアノード集合１５がスター型の連結部分グラフに変形される。
【００２１】
処理部１２は、スター型に変形されたコアノード集合１５を含むグラフデータ１４を生成する。グラフデータ１３とグラフデータ１４の主要な違いは、コアノード集合１５に属するハブノード同士の接続関係である。グラフデータ１４は、グラフデータ１３に含まれるノードを含んでよい。また、グラフデータ１４において、コアノード集合１５に属さないノード同士を接続するエッジは、グラフデータ１３と同様でよい。また、グラフデータ１４において、コアノード集合１５に属さないノードと、中心ノード１６以外のコアノード集合１５に属するハブノードとを接続するエッジは、グラフデータ１３と同様でよい。
【００２２】
上記のように、中心ノード１６の設定にあたってはコアノード集合１５に属するハブノードの間の距離が参照される。例えば、処理部１２は、新規ノードを中心ノード１６として設定し、中心ノード１６と各ハブノードとの間のエッジのウェイトを一定値に統一する。エッジのウェイトは、コアノード集合１５に属するハブノードの間の距離に基づいて決定することが考えられる。ハブノードの間の距離の平均値の２分の１を、エッジのウェイトとしてもよい。また、例えば、処理部１２は、既存のハブノードの１つを中心ノード１６として設定し、中心ノード１６と他のハブノードそれぞれとの間のエッジのウェイトをグラフデータ１３上で算出される距離に決定することが考えられる。中心ノード１６は、近接中心性など、ハブノード間の距離に基づいてハブノードの中から選択してもよい。
【００２３】
例えば、処理部１２は、コアノード集合１５に対して新規の中心ノード１６を追加する。処理部１２は、コアノード集合１５に属するノードＡ，Ｂ，Ｃ，Ｄ，Ｅの間の１０個のエッジを削除し、代わりに中心ノード１６とノードＡ，Ｂ，Ｃ，Ｄ，Ｅの間に５個のエッジを追加する。このようにして生成されたグラフデータ１４では、コアノード集合１５に属するノードＡ，Ｂ，Ｃ，Ｄ，Ｅは維持される。また、コアノード集合１５内のノードＣとコアノード集合１５外のノードＦ，Ｇとの間のエッジは維持され、コアノード集合１５内のノードＥとコアノード集合１５外のノードＨとの間のエッジは維持される。
【００２４】
処理部１２は、グラフデータ１４を用いて経路探索などの検索処理を実行してもよい。例えば、処理部１２は、コアノード集合１５外のノードＦからコアノード集合１５外のノードＨに至る経路を探索することが考えられる。探索すべき経路はコアノード集合１５を通過する可能性がある。しかし、コアノード集合１５に属する複数のハブノードは相互に密に接続されていることが期待され、コアノード集合１５内のルートを厳密に探索する必要性は低い。一方、コアノード集合１５をスター型に簡略化しても、コアノード集合１５に属するハブノードとコアノード集合１５外のノードとの間の接続関係は維持される。このため、コアノード集合１５外の２つのノードが、同じハブノードに接続されている場合と異なるハブノードに接続されている場合とを区別することができる。よって、グラフデータ１４を用いて検索処理を行うことは、効率性および精度の観点から有用である。
【００２５】
第１の実施の形態の情報処理装置１０によれば、グラフデータ１３から複数のハブノードが検出され、エッジによって連結された２以上のハブノードを含むコアノード集合１５が判定される。そして、コアノード集合１５に属するハブノードの間の距離に基づいて中心ノード１６が設定され、中心ノード１６以外のコアノード集合１５に属するハブノードと中心ノード１６とがスター型に接続されたグラフデータ１４が生成される。
【００２６】
これにより、グラフデータ１４を用いて経路探索などの検索処理を行うことで、グラフデータ１３を用いる場合よりも計算量を削減することができる。また、コアノード集合１５を１つのノードに置換するなどの極端な簡略化を行う場合と比べて、コアノード集合１５内のハブノードとコアノード集合１５外のノードとの間の接続関係についての情報が大きく失われることを抑制できる。よって、検索処理の精度への影響を低減できる。
【００２７】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
第２の実施の形態の分析装置は、人や企業の間の関係を表すグラフである企業ネットワークを用いて、これらの人や企業の間で行われる可能性がある不正取引のリスクを分析する。第２の実施の形態の分析装置を、情報処理装置やコンピュータと言うこともある。分析装置は、クライアント装置でもよいしサーバ装置でもよい。
【００２８】
図２は、第２の実施の形態の分析装置のハードウェア例を示すブロック図である。
分析装置１００は、バスに接続されたＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。分析装置１００は、第１の実施の形態の情報処理装置１０に対応する。ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００２９】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、分析装置１００は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００３０】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、分析装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【００３１】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、分析装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【００３２】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、分析装置１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを使用することができる。
【００３３】
入力信号処理部１０５は、分析装置１００に接続された入力デバイス１１２から入力信号を受信する。入力デバイス１１２として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用できる。また、分析装置１００に複数の種類の入力デバイスが接続されてもよい。
【００３４】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３５】
通信インタフェース１０７は、ネットワーク１１４に接続され、ネットワーク１１４を介して他の情報処理装置と通信を行う。通信インタフェース１０７は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【００３６】
次に、企業ネットワークについて説明する。
図３は、企業ネットワークの関係性分析の例を示す図である。
企業ネットワーク３０は、複数のノードおよびノード間を接続する複数のエッジを含む無向グラフまたは有向グラフである。ただし、第２の実施の形態では無向グラフを想定する。企業ネットワーク３０に含まれる各ノードは、人または企業を表す。企業ネットワーク３０に含まれる各エッジは、企業間の関係または人と企業の間の関係を表す。
【００３７】
企業ネットワーク３０は、ＥＤＩＮＥＴ（Electronic Disclosure for Investor's Network）やＴＤＮＥＴ（Timely Disclosure Network）などの公開データベースが開示する公開投資情報から生成することができる。ノードが表す企業には、株式会社や持分会社などの事業会社、事業会社に投資する機関投資家、事業会社を監査する監査法人などが含まれる。ノードが表す人には、取締役や執行役や監査役など事業会社に従事する役員、事業会社に投資する個人投資家などが含まれる。エッジが表す企業間の関係には、親子会社関係や関連会社関係などのグループ関係、機関投資家による事業会社への投資、監査法人による事業会社の監査、その他の重要な取引関係などが含まれる。エッジが表す人と企業の間の関係には、事業会社の役員への就任、個人投資家による事業会社への投資、事業会社と個人の間のその他の重要な取引関係などが含まれる。
【００３８】
企業ネットワーク３０は、数万個から数十万個のノードを含む大規模グラフである。分析装置１００は、企業ネットワーク３０を用いて関係性分析を行う。関係性分析では、インサイダー取引やマネーロンダリングなどの不正取引が行われる可能性のある要注意関係を検出する。関係性分析のために、分析装置１００は、ある２つのノードが１以上の他のノードを介して繋がっている経路を企業ネットワーク３０から探索する。経路は、３以上の主体が関与する連続的な取引関係を表すことがある。このとき、機関投資家を表すノードや監査法人を表すノードなど多数のエッジをもつノードを介した短い経路（当たり前の経路）だけでなく、多数のエッジをもつノードを迂回するような長い経路（当たり前ではない経路）も探索することが好ましい。これにより、一方の企業が役員を介して他方の企業に影響を与えるような不正リスクの高い関係を発見することができる。
【００３９】
一例として、企業ネットワーク３０は、企業Ｃ１を表すノード３１、企業Ｃ２を表すノード３２、企業Ｃ３を表すノード３３、機関投資家Ｉを表すノード３４および役員Ｋを表すノード３５を含む。ノード３１とノード３４、ノード３１とノード３３、ノード３２とノード３４、ノード３２とノード３５、ノード３３とノード３５の間にエッジがある。
【００４０】
ノード３１とノード３４の間のエッジは、機関投資家Ｉによる企業Ｃ１への投資を表す。ノード３２とノード３４の間のエッジは、機関投資家Ｉによる企業Ｃ２への投資を表す。よって、ノード３１からノード３４を介してノード３２に至る経路は「当たり前の経路」であり、企業Ｃ１と企業Ｃ２の間の関係性分析では重要性が比較的低い。一方、ノード３１からノード３３，３５を介してノード３２に至る経路は「当たり前ではない経路」である。役員Ｋが企業Ｃ２，Ｃ３に影響を与えることで不正取引が行われるリスクがあるため、企業Ｃ１と企業Ｃ２の間の関係性分析では重要性が比較的高い。
【００４１】
「当たり前ではない経路」を発見しやすくするため、分析装置１００は、企業ネットワーク３０に対して次数ウェイト付き経路探索を行う。
無向グラフに含まれるエッジｅに対してウェイトｗ（ｅ）が割り当てられているとする。また、ある経路がノードｖ０，ｖ１，…，ｖｈというｈ＋１個のノードを順に通過するものとする。ノードｖ０は始点ノードｓであり、ノードｖｈは終点ノードｔである。ｋ＝１，２，…，ｈとして、経路上で隣接するノードｖｋ−１とノードｖｋの間のエッジをｅｋ−１，ｋとする。すると、その経路の長さ（経路長）は数式（１）のように定義される。
【００４２】
【数１】
2020077299.tif 000003
【００４３】
無向グラフに含まれるノードｖに対してウェイトｗ（ｖ）が割り当てられている場合、エッジｅのウェイトｗ（ｅ）はノードｖのウェイトｗ（ｖ）から算出できる。ノードｖｉとノードｖｊがエッジｅｉ，ｊで接続されており、ノードｖｉにウェイトｗ（ｖｉ）が割り当てられており、ノードｖｊにウェイトｗ（ｖｊ）が割り当てられているとする。すると、エッジｅｉ，ｊのウェイトｗ（ｅｉ，ｊ）は数式（２）のように定義される。すなわち、あるエッジのウェイトは、そのエッジの両端にあるノードのウェイトの平均値である。
【００４４】
【数２】
2020077299.tif 000004
【００４５】
次数ウェイト付き経路探索では、ノードｖのウェイトｗ（ｖ）として、ノードｖに接続されたエッジの数、すなわち、ノードｖの次数ｄｅｇ（ｖ）を用いる。ノードｖｉとノードｖｊがエッジｅｉ，ｊで接続されており、ノードｖｉの次数がｄｅｇ（ｖｉ）であり、ノードｖｊの次数がｄｅｇ（ｖｊ）であるとする。すると、エッジｅｉ，ｊのウェイトｗ（ｅｉ，ｊ）は数式（３）のように定義される。すなわち、あるエッジのウェイトは、そのエッジの両端にあるノードの次数の平均値である。
【００４６】
【数３】
2020077299.tif 000005
【００４７】
次数ウェイト付き経路探索では、機関投資家を表すノードや監査法人を表すノードなど次数の大きいノードを通過する経路の長さは大きく算出される。このため、次数ウェイト付き経路探索と、短い経路を優先的に探索する経路探索アルゴリズムとを組み合わせると、「当たり前の経路」だけでなく「当たり前ではない経路」も発見しやすくなる。そこで、第２の実施の形態では次数ウェイト付き経路探索を採用する。
【００４８】
図４は、企業ネットワークの形状例を示す図である。
人や企業の間の関係を表す企業ネットワークは、図４に示すような形状をとることが多い。企業ネットワーク４０は、コア４１および周辺部４２を含む。
【００４９】
コア４１は、多数のハブノードが密結合した連結部分グラフ（任意の２つのノードを結ぶ経路が存在する部分グラフ）である。ハブノードは、企業ネットワーク４０に含まれるノードのうち次数が閾値を超えるノードである。ハブノードとしては、機関投資家を表すノードや監査法人を表すノードなど、多数の他の企業と関係をもつハブ企業を表すノードが想定される。企業ネットワーク４０に含まれるノードのうち数パーセントから数十パーセントのノードが、コア４１に属することがある。図４では、コア４１に属するハブノードを円の外周に配置している。
【００５０】
周辺部４２は、それぞれ少数の他のノードとのみエッジで接続された周辺ノードから形成される部分グラフである。周辺部４２は２つの階層を含むことがある。周辺部４２の第１階層に属するノードは、コア４１に属する少数のハブノードとエッジで接続されている。ただし、第１階層に属するノード同士が直接接続されていることもある。第１階層に属するノードとしては、機関投資家や監査法人などのハブ企業と関係をもつ一般事業会社を表すノードが想定される。周辺部４２の第２階層に属するノードは、コア４１に属する少数のハブノードや周辺部４２の第１階層に属する少数の周辺ノードとエッジで接続されている。第２階層に属するノードとしては、役員などの人を表すノードが想定される。
【００５１】
図５は、企業ネットワークの特徴例を示す分布図である。
分散図５０は、企業ネットワーク４０に含まれるノードの次数とノードの相対頻度の関係を表す。分散図５０の横軸は、ノードの次数、すなわち、ノードに接続されたエッジの数を対数表記したものである。分散図５０の縦軸は、ある次数をもつノードの出現頻度、すなわち、ある次数をもつノードの全ノードに対する割合を対数表記したものである。分散図５０は領域５１および領域５２を含む。
【００５２】
領域５１は、企業ネットワーク４０の周辺部４２に対応する。領域５１が示すように、周辺部４２はスケールフリーネットワークの特徴をもっていると言える。スケールフリーネットワークは、大多数のノードは少数の相手とのみエッジをもち、一部のノードは多数の相手とエッジをもつという特徴をもつネットワークである。
【００５３】
一方、領域５２は、企業ネットワーク４０のコア４１に対応する。領域５２が示すように、コア４１はランダムグラフの特徴をもっていると言える。ランダムグラフは、任意の２つのノード間に一定の確率ｐでエッジを張ったグラフである。ランダムグラフに含まれるノードの次数と相対頻度との関係はポアソン分布に従う。
【００５４】
分析装置１００は、このような特徴をもつ企業ネットワークから、次数ウェイト付き経路探索により経路長が短いものから優先的に複数の経路を探索する。
図６は、経路探索の例を示す図である。
【００５５】
経路探索にはダイクストラ（Dijkstra）法や双方向ダイクストラ法などの経路探索アルゴリズムを応用することができる。ただし、第２の実施の形態では、経路長が最も短い最短経路だけでなく、最短経路ではない他の経路も探索される。そこで、純粋なダイクストラ法を拡張したものなど、複数の経路を探索可能な経路探索アルゴリズムを使用する。
【００５６】
例えば、ダイクストラ法に従ってノード毎に始点ノードからの経路長および前段ノードを示す情報を更新する際に、経路長が最小の情報だけでなく経路長が最小ではない情報も履歴として残しておく。そして、経路長が最小でない情報も用いて次段ノードの情報を複数パターン作成する。ノード毎の情報としては経路長が小さい方から所定個までの情報を保持しておく。これにより、始点ノードから終点ノードに至る経路として、最短経路に加えて、比較的経路長が小さい準最短経路も探索することができる。
【００５７】
一例として、グラフ７０はノード７１〜７７（ノードａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ）を含む。ノード７１とノード７２との間にはウェイト１のエッジがある。ノード７１とノード７３との間にはウェイト７のエッジがある。ノード７１とノード７４との間にはウェイト２のエッジがある。ノード７２とノード７５との間にはウェイト４のエッジがある。ノード７３とノード７５との間にはウェイト２のエッジがある。ノード７３とノード７６との間にはウェイト３のエッジがある。ノード７４とノード７６との間にはウェイト５のエッジがある。ノード７５とノード７７との間にはウェイト６のエッジがある。ノード７６とノード７７との間にはウェイト２のエッジがある。
【００５８】
始点ノードをノード７１、終点ノードをノード７７として、ダイクストラ法に準じて経路探索を行うことを考える。まず、ノード７１が選択され、ノード７１に対して長さ０のラベルが付与される。すると、ノード７２に対して長さ１かつ前段ノードａのラベルが付与され、ノード７３に対して長さ７かつ前段ノードａのラベルが付与され、ノード７４に対して長さ２かつ前段ノードａノラベルが付与される。
【００５９】
次に、最小経路長をもつノード７２が選択される。すると、ノード７５に対して長さ５かつ前段ノードｂのラベルが付与される。次に、最小経路長をもつノード７４が選択される。すると、ノード７６に対して長さ７かつ前段ノードｄのラベルが付与される。次に、最小経路長をもつノード７５が選択される。すると、ノード７３に対して、長さ７かつ前段ノードａのラベルを残して、長さ７かつ前段ノードｅのラベルが追加される。また、ノード７７に対して長さ１１かつ前段ノードｅのラベルが付与される。
【００６０】
次に、最小経路長をもつノードとしてノード７３が選択されたとする。すると、ノード７６に対して、ノード７３の１つ目のラベルに対応して長さ１０かつ前段ノードｃのラベルが追加される。また、ノード７３の２つ目のラベルに対応して長さ１０かつ前段ノードｃのラベルが追加される。このとき、長さ７かつ前段ノードｄのラベルは残しておく。次に、最小経路長をもつノード７６が選択される。すると、ノード７７に対して、ノード７６の１つ目のラベルに対応して長さ９かつ前段ノードｆのラベルが追加される。また、ノード７６の２つ目のラベルに対応して長さ１２かつ前段ノードｆのラベルが追加される。また、ノード７６の３つ目のラベルに対応して長さ１２かつ前段ノードｆのラベルが追加される。このとき、長さ１１かつ前段ノードｅのラベルは残しておく。
【００６１】
これにより、ノード７１，７４，７６，７７を順に辿る経路が長さ９の最短経路として抽出される。また、ノード７１，７２，７５，７７を順に辿る経路が長さ１１の経路として抽出される。また、ノード７１，７２，７５，７３，７６，７７を順に辿る経路が長さ１２の経路として抽出される。また、ノード７１，７３，７６，７７を順に辿る経路が長さ１２の経路として抽出される。このようにして、グラフ７０から、経路長が短い方から優先的に所定個までの経路を探索することが可能である。
【００６２】
次に、企業ネットワークにおける経路探索の問題点について説明する。
前述の図４の企業ネットワーク４０を用いた不正調査では、周辺部４２に属する１つのノードから周辺部４２に属する別のノードに至る経路を複数通り探索したいことがある。例えば、ある人を表すノードから別の人を表すノードに至る経路であって、極端に遠回りではない経路を網羅的に探索したいことがある。探索すべき経路の中にはコア４１を通過しないものがある。例えば、始点ノードから１以上の一般事業会社を表すノードを経由して終点ノードに至る経路が存在することがある。一方、探索すべき経路の中にはコア４１を通過するものもある。例えば、始点ノードから１以上のハブ企業を表すノードを経由して終点ノードに至る経路が存在することがある。
【００６３】
しかし、コア４１内ではハブノード同士が密に接続されており経由するハブノードの選択パターンが多数存在するため、コア４１を通過する経路を探索する計算量が大きくなってしまうという問題がある。一方で、企業ネットワーク４０を用いた不正調査では、コア４１内のハブノードは相互に接続されていることが「当たり前」であるため、周辺部４２で何れのノードを経由するかは重要性が高いもののコア４１で何れのノードを通過するかは重要性が低い。すなわち、コア４１内で厳密な探索を行う必要性は低い。そこで、分析装置１００は、企業ネットワーク４０のコア４１を簡略化し、簡略化した企業ネットワークを用いて経路探索を行って計算量を削減する。
【００６４】
ただし、コア４１を１つの仮想ノードに置換するような極端な簡略化を行うと、企業ネットワーク４０がもっていたコア４１と周辺部４２との間の関係についての情報が大きく失われてしまうおそれがある。例えば、周辺部４２の１つのノードと周辺部４２の別ノードとが、コア４１の異なるハブノードに接続されている場合がある。また、周辺部４２の１つのノードと周辺部４２の別ノードとが、コア４１の同じハブノードに接続されている場合がある。コア４１を１つの仮想ノードに置換すると、上記の２つの場合が同一視されてしまう。これは、２以上の役員または一般事業会社が同一のハブ企業と関係をもつ場合と、２以上の役員または一般事業会社が異なるハブ企業と関係をもつ場合とを同一視することになる。その結果、経路探索の精度が低下するという問題がある。
【００６５】
そこで、分析装置１００は、コア４１に属するハブノードは残しつつコア４１に含まれるエッジを削減して、コア４１を簡略化した企業ネットワークを生成する。簡略化した企業ネットワークはスター型のコアを含む。
【００６６】
図７は、企業ネットワークの簡略化例を示す図である。
企業ネットワーク６０は、企業ネットワーク４０を簡略化したものである。企業ネットワーク６０は、コア６１および周辺部６２を含む。コア６１は企業ネットワーク４０のコア４１に対応し、周辺部６２は企業ネットワーク４０の周辺部４２に対応する。
【００６７】
コア６１は、コア４１と同じハブノードを含む。また、コア６１は中心ノード６３を含む。中心ノード６３は、コア４１に含まれていなかった新規ノードでもよいし、コア４１に含まれている何れか１つのハブノードでもよい。コア６１では、コア４１に含まれていたハブノード間のエッジは削除されている。その代わりにコア６１では、設定された中心ノード６３と各ハブノードとがエッジで直接接続され、スター型部分グラフを形成している。
【００６８】
周辺部６２は周辺部４２と同様である。周辺部６２に属するノードとコア６１に属するハブノードとは、企業ネットワーク４０と同様のエッジで接続されている。ただし、中心ノード６３がコア４１に属するハブノードの１つである場合、中心ノード６３と周辺部６２に属するノードとの間のエッジは削除される。すなわち、中心ノード６３はコア６１に属するハブノードのみと接続され、周辺部６２に属するノードとは接続されない。
【００６９】
中心ノード６３が新規ノードである場合、分析装置１００は、中心ノード６３とコア６１に属するハブノードとの間にあるエッジのウェイトを一定値に統一する。
具体的には、分析装置１００は、簡略化前のコア４１の中で、コア４１に属するハブノード間の最短経路の経路長（距離）の平均値を算出する。このとき、コア４１に属するハブノード間の最短経路として、ハブノード同士を接続するエッジのみを辿る経路を探索すればよく、周辺部４２を経由する経路は考慮しなくてよい。分析装置１００は、全てのハブノードの組み合わせについて距離を算出して実際平均値を求めてもよい。また、分析装置１００は、コア４１から一部のハブノードの組み合わせをサンプリングし、サンプリングした組み合わせのみ距離を算出して推定平均値を求めてもよい。分析装置１００は、算出した平均値の２分の１を、中心ノード６３と各ハブノードとの間のエッジのウェイトとする。これにより、ハブノード間の平均距離でコア６１を通過できるようになる。
【００７０】
一方、中心ノード６３が既存ハブノードの１つである場合、分析装置１００は、コア４１の中から何れか１つのハブノードを中心ノード６３として選択する。そして、分析装置１００は、中心ノード６３と他のハブノードそれぞれとの間にあるエッジのウェイトを、コア４１における当該２つのノードの間の距離に設定する。
【００７１】
具体的には、分析装置１００は、コア４１に属するハブノードそれぞれに対して、中心性を表す指標として近接中心性を算出する。近接中心性は、あるノードが他のノードとの関係でグラフの中心にどの程度近いかを示す指標である。着目するノードをｖｉ、他の１つのノードをｖｊ、ノードｖｉとノードｖｊの距離をｄ（ｖｉ，ｖｊ）とする。すると、ノードｖｉの近接中心性Ｃｃ（ｖｉ）は数式（４）のように定義される。数式（４）の近接中心性Ｃｃ（ｖｉ）は、他のノードとの間の距離の和の逆数である。ただし、ノード数をｎとして、ノードｖｉの近接中心性Ｃｃ（ｖｉ）を数式（５）のように定義することもできる。数式（５）の近接中心性Ｃｃ（ｖｉ）は、他のノードとの間の平均距離の逆数である。
【００７２】
【数４】
2020077299.tif 000006
【００７３】
【数５】
2020077299.tif 000007
【００７４】
分析装置１００は、コア４１から近接中心性が最大のハブノードを中心ノード６３として選択する。中心ノード６３とコア６１の他のハブノードとの間にあるエッジのウェイトは、近接中心性を求める際に算出した当該２つのハブノードの間の距離を用いればよい。よって、中心ノード６３を新規ノードとする方法の場合、コア６１に含まれるエッジのウェイトは一定値に統一されるのに対し、中心ノード６３を既存ハブノードの１つとする方法の場合、コア６１に含まれるエッジのウェイトは統一されない。
【００７５】
中心ノード６３を既存ハブノードの１つとする方法では、コア６１に含まれる複数のエッジはそれぞれ、コア４１のハブノード間の関係を考慮した異なるウェイトをもつ。よって、コア４１のハブノードの個性をコア６１に反映させることができ、企業ネットワーク６０を用いた経路探索の精度を向上させることができる。一方、中心ノード６３を新規ノードとする方法では、近接中心性の計算など中心ノード６３を選択するための処理が軽減される。また、ハブノード間の距離の平均値をサンプリングによって推定することが可能であり、ハブノード間の距離計算を軽減することもできる。
【００７６】
次に、分析装置１００の機能および処理手順について説明する。
図８は、分析装置の機能例を示すブロック図である。
分析装置１００は、グラフデータ記憶部１２１、接続情報生成部１２２、接続情報記憶部１２３、経路探索部１２４および探索結果表示部１２５を有する。グラフデータ記憶部１２１および接続情報記憶部１２３は、例えば、ＲＭＡ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。接続情報生成部１２２、経路探索部１２４および探索結果表示部１２５は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００７７】
グラフデータ記憶部１２１は、簡略化前の企業ネットワークを示すグラフデータを記憶する。グラフデータは、ＥＤＩＮＥＴやＴＤＮＥＴなどの公開データベースが開示する公開投資情報から生成される。グラフデータは、分析装置１００が生成してもよいし他の情報処理装置が生成してもよい。グラフデータは、それぞれ人または企業を表す複数のノードと、人や企業の間の関係を表す複数のエッジとを含む。エッジのウェイトは、接続情報生成部１２２においてグラフデータから自動的に算出される。
【００７８】
接続情報生成部１２２は、グラフデータ記憶部１２１に記憶されたグラフデータから、ノード間の接続関係を示す接続情報を生成する。接続情報は隣接行列として表現される。このとき、接続情報生成部１２２は、各ノードの次数をウェイトとして算出し、各ノードのウェイトを用いてノード間を接続する各エッジのウェイトを算出する。
【００７９】
接続情報の生成にあたり、接続情報生成部１２２は、簡略化フラグおよび次数閾値を含むオプション情報をユーザから受け付ける。簡略化フラグは、企業ネットワークの簡略化を行うか否かを示すフラグである。次数閾値は、企業ネットワークの簡略化を行う場合に適用されるパラメータであり、ハブノードとみなすノードの次数の閾値である。簡略化フラグがＯＦＦである場合、接続情報生成部１２２は、グラフデータが示す簡略化前の企業ネットワークに相当する元隣接行列を出力する。一方、簡略化フラグがＯＮである場合、接続情報生成部１２２は、簡略化前の企業ネットワークを簡略化後の企業ネットワークに変換し、簡略化後の企業ネットワークに相当する簡略化隣接行列を出力する。
【００８０】
接続情報記憶部１２３は、接続情報生成部１２２が生成した接続情報を記憶する。簡略化フラグがＯＦＦである場合、接続情報記憶部１２３には、簡略化前の企業ネットワークに相当する元隣接行列が記憶される。簡略化フラグがＯＮである場合、接続情報記憶部１２３には、簡略化後の企業ネットワークに相当する簡略化隣接行列が記憶される。接続情報が１度生成されれば、生成された接続情報を用いて経路探索を繰り返し実行できる。
【００８１】
経路探索部１２４は、接続情報記憶部１２３に記憶された接続情報を用いて、企業ネットワーク上の経路探索を行う。経路探索にあたり、経路探索部１２４は、始点ノード、終点ノード、出力する経路の個数およびウェイトを考慮するか否かのフラグを含むオプション情報をユーザから受け付ける。すると、経路探索部１２４は、ダイクストラ法に準じた経路探索アルゴリズムなどを用いて、経路長の短い方から優先的に始点ノードから終点ノードに至る複数の経路を探索する。ウェイトを考慮するか否かのフラグがＯＦＦである場合、経路探索部１２４は、接続情報が示すウェイトにかかわらず各エッジのウェイトを１とみなして経路探索を行う。ウェイトを考慮するか否かのフラグがＯＮである場合、経路探索部１２４は、接続情報が示すウェイトに基づいて経路探索を行う。
【００８２】
探索結果表示部１２５は、経路探索部１２４の探索結果をディスプレイ１１１に表示する。例えば、探索結果表示部１２５は、複数のノードおよび複数のエッジを含む企業ネットワークを図形情報として表示し、探索された経路を太線で表すなど企業ネットワーク上で強調表示する。また、例えば、探索結果表示部１２５は、経由するノードを列挙した文字列で経路を表現し、複数の経路を表す複数の文字列を並べたリストを表示する。また、探索結果表示部１２５は、探索結果をＨＤＤ１０３などのストレージに保存してもよいし、ネットワーク１１４を介して他の情報処理装置に送信してもよいし、分析装置１００が有する他の出力デバイスに出力するようにしてもよい。
【００８３】
図９は、グラフデータの例を示す図である。
ノードテーブル１３１は、企業ネットワークに含まれるノードを示す。ノードテーブル１３１は、グラフデータ記憶部１２１に記憶される。ノードテーブル１３１は、ノードＩＤ、ノード名およびウェイトの項目を含む。ノードＩＤは、ノードを識別する識別子である。ノード名は、人物名や企業名などノードの意味を表す文字列である。ウェイトは、接続情報生成部１２２によって算出されるノードの次数である。
【００８４】
エッジテーブル１３２は、企業ネットワークに含まれるエッジを示す。エッジテーブル１３２は、グラフデータ記憶部１２１に記憶される。エッジテーブル１３２は、エッジＩＤ、始点、終点およびウェイトの項目を含む。エッジＩＤは、エッジを識別する識別子である。始点は、エッジの一端にあるノードを識別する識別子である。終点は、エッジの他端にあるノードを識別する識別子である。ウェイトは、接続情報生成部１２２によって両端のノードのウェイトから算出されるエッジのウェイトである。
【００８５】
図１０は、接続情報の例を示す図である。
隣接行列１３３は、企業ネットワークに含まれるノードの間に存在するエッジを示す接続情報である。隣接行列１３３は、接続情報記憶部１２３に記憶される。生成時に簡略化フラグがＯＦＦに指定された場合、接続情報記憶部１２３に保存される隣接行列１３３は、簡略化前の企業ネットワークに相当する元隣接行列である。生成時に簡略化フラグがＯＮに指定された場合、接続情報記憶部１２３に保存される隣接行列１３３は、簡略化後の企業ネットワークに相当する簡略化隣接行列である。
【００８６】
隣接行列１３３の行は、企業ネットワークに含まれるノードを識別するノードＩＤに対応付けられている。同様に、隣接行列１３３の列は、企業ネットワークに含まれるノードを識別するノードＩＤに対応付けられている。隣接行列１３３の１つの要素は、当該要素の行番号に対応するノードと当該要素の列番号に対応するノードとの間に存在するエッジのウェイトを示す。要素の値が０であることは、エッジが存在しないことを示す。接続情報生成部１２２は、まず簡略化前の企業ネットワークを表す元隣接行列を生成する。簡略化フラグがＯＮに指定された場合、接続情報生成部１２２は、元隣接行列を更新することで、簡略化後の企業ネットワークを示す簡略化隣接行列を生成する。
【００８７】
次に、接続情報生成部１２２による企業ネットワークの簡略化について説明する。まず中心ノードとしてコアに新規ノードを追加する第１の方法を説明し、その次に中心ノードとしてコアの中から既存ハブノードの１つを選択する第２の方法を説明する。
【００８８】
図１１は、グラフ簡略化の手順例を示すフローチャートである。
（Ｓ１０）接続情報生成部１２２は、ＥＤＩＮＥＴやＴＤＮＥＴが開示する公開投資情報に基づいて予め生成されたグラフデータをグラフデータ記憶部１２１から読み込む。また、接続情報生成部１２２は、ユーザが入力したオプション情報を読み込む。オプション情報は、簡略化フラグおよび次数閾値を含む。
【００８９】
（Ｓ１１）接続情報生成部１２２は、グラフデータに基づいて、各ノードに接続されたエッジをカウントして各ノードの次数をウェイト（次数ウェイト）として算出する。接続情報生成部１２２は、各エッジについて、当該エッジの両端にあるノードのウェイトを平均化して当該エッジのウェイトを算出する。
【００９０】
（Ｓ１２）接続情報生成部１２２は、簡略化前の企業ネットワークを示す元隣接行列を生成する。元隣接行列の行数および列数は、グラフデータが示すノードの数である。元隣接行列の要素は、ステップＳ１１で算出したエッジのウェイトである。
【００９１】
（Ｓ１３）接続情報生成部１２２は、ステップＳ１０で読み込んだオプション情報に含まれる簡略化フラグがＯＮであるか判断する。簡略化フラグがＯＮである場合はステップＳ１４に進み、簡略化フラグがＯＦＦである場合はステップＳ２１に進む。
【００９２】
（Ｓ１４）接続情報生成部１２２は、グラフデータまたは元隣接行列に基づいて、次数が閾値より大きいノードをハブノードとして企業ネットワークから抽出する。ここで使用する閾値は、ステップＳ１０で読み込んだオプション情報に含まれる次数閾値である。
【００９３】
（Ｓ１５）接続情報生成部１２２は、２以上のハブノードがエッジによって連結されている連結部分グラフを抽出する。連結部分グラフは、例えば、元隣接行列からハブノードに対応する行および列のみを抽出することで特定できる。このとき、不連続な２つ以上の連結部分グラフが抽出されることがある。接続情報生成部１２２は、抽出された連結部分グラフのうちハブノード数が最大のものをコアと判定する。
【００９４】
（Ｓ１６）接続情報生成部１２２は、コアに属するハブノードの間の平均距離を算出する。例えば、接続情報生成部１２２は、コアに属する各ハブノードを始点ノードとして、ダイクストラ法などの経路探索アルゴリズムにより他のハブノードとの距離を算出する。接続情報生成部１２２は、コアに属する全てのハブノードの組の距離を網羅的に算出して平均値を求めてもよい。また、接続情報生成部１２２は、コアに属する幾つかのハブノードの組をサンプリングして平均距離の推定値を求めてもよい。
【００９５】
（Ｓ１７）接続情報生成部１２２は、コアに新規の中心ノードを追加する。例えば、接続情報生成部１２２は、隣接行列に対して１つの行および１つの列を追加する。
（Ｓ１８）接続情報生成部１２２は、コア内のハブノードの間のエッジ、すなわち、コア内のハブノードからコア内の別のハブノードへのエッジを削除する。例えば、接続情報生成部１２２は、隣接行列に含まれる要素のうち、コア内のハブノードに対応する行番号およびコア内のハブノードに対応する列番号をもつ要素の値を０に書き換える。そして、接続情報生成部１２２は、コア内の各ハブノードと中心ノードとの間のエッジを追加する。追加されるエッジは、隣接行列において、中心ノードに対応する行番号およびコア内のハブノードに対応する列番号をもつ要素と、コア内のハブノードに対応する行番号および中心ノードに対応する列番号をもつ要素に相当する。
【００９６】
（Ｓ１９）接続情報生成部１２２は、ステップＳ１８で追加したエッジのウェイトを設定する。追加したエッジのウェイトは、ステップＳ１６で算出した平均距離の２分の１とする。例えば、接続情報生成部１２２は、隣接行列に含まれる要素のうち、ステップＳ１８で特定した追加エッジに相当する要素の値を平均距離の２分の１に設定する。
【００９７】
（Ｓ２０）接続情報生成部１２２は、ステップＳ１４〜Ｓ２０を通じて生成された簡略化隣接行列を接続情報記憶部１２３に出力する。そして、グラフ簡略化が終了する。
（Ｓ２１）接続情報生成部１２２は、ステップＳ１２で生成された元隣接行列を接続情報記憶部１２３に出力する。
【００９８】
図１２は、グラフ簡略化の他の手順例を示すフローチャートである。
ステップＳ３０〜Ｓ３５，Ｓ４０，Ｓ４１の処理は、図１１のステップＳ１０〜Ｓ１５，Ｓ２０，Ｓ２１と同様であるため説明を省略する。
【００９９】
（Ｓ３６）接続情報生成部１２２は、コアに属する各ハブノードの近接中心性を算出する。例えば、接続情報生成部１２２は、コアに属する各ハブノードを始点ノードとして、ダイクストラ法などの経路探索アルゴリズムにより他のハブノードとの距離を算出する。接続情報生成部１２２は、例えば、ハブノード毎に、他のハブノードとの間の距離の和の逆数または平均距離の逆数を近接中心性として算出する。
【０１００】
（Ｓ３７）接続情報生成部１２２は、コア内のハブノードの中から、ステップＳ３６で算出した近接中心性が最大であるハブノードと中心ノードとして選択する。
（Ｓ３８）接続情報生成部１２２は、コア内のハブノードの間のエッジ、すなわち、コア内のハブノードからコア内の別のハブノードへのエッジを削除する。そして、接続情報生成部１２２は、ステップＳ３７で選択した中心ノードとコア内の他のハブノードとの間のエッジを追加する。追加されるエッジは、隣接行列において、中心ノードに対応する行番号および他のハブノードに対応する列番号をもつ要素と、他のハブノードに対応する行番号および中心ノードに対応する列番号をもつ要素に相当する。
【０１０１】
（Ｓ３９）接続情報生成部１２２は、ステップＳ３８で追加したエッジのウェイトを設定する。追加したエッジのウェイトは、当該エッジの両端にあるハブノードの間の距離とする。この距離は、簡略化前の企業ネットワークの接続関係を基準に算出される距離であり、ステップＳ３６で近接中心性を求める過程で算出された距離を用いることができる。例えば、接続情報生成部１２２は、隣接行列に含まれる要素のうち、ステップＳ３８で特定した追加エッジに相当する要素の値を、両端のノードに応じた距離に設定する。
【０１０２】
第２の実施の形態の分析装置１００によれば、企業ネットワークから次数の大きいハブノードが検出され、複数のハブノードが連結したコアが検出される。そして、コアに中心ノードが設定され、コアに属するハブノード同士はコアを介して接続されているスター型コアになるように企業ネットワークが簡略化される。これにより、コアを通過する経路を探索するための計算量が削減され、企業ネットワーク上での経路探索が高速化される。また、コアを１つの仮想ノードに置換するなどの極端な簡略化と比べて、コアに属するハブノードは削除されず、コアに属するハブノードと周辺部に属する周辺ノードとの間の接続関係の情報が維持される。よって、経路探索の精度の低下を抑制できる。
【符号の説明】
【０１０３】
１０  情報処理装置
１１  記憶部
１２  処理部
１３，１４  グラフデータ
１５  コアノード集合
１６  中心ノード
【図１】
2020077299.tif 000008
【図２】
2020077299.tif 000009
【図３】
2020077299.tif 000010
【図４】
2020077299.tif 000011
【図５】
2020077299.tif 000012
【図６】
2020077299.tif 000013
【図７】
2020077299.tif 000014
【図８】
2020077299.tif 000015
【図９】
2020077299.tif 000016
【図１０】
2020077299.tif 000017
【図１１】
2020077299.tif 000018
【図１２】
2020077299.tif 000019