(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-12
(45)【発行日】2022-10-20
(54)【発明の名称】グラフ簡略化方法、グラフ簡略化プログラムおよび情報処理装置
(51)【国際特許分類】
G06F 16/28 20190101AFI20221013BHJP
G06F 16/90 20190101ALI20221013BHJP
【FI】
G06F16/28
G06F16/90
(21)【出願番号】P 2018211325
(22)【出願日】2018-11-09
【審査請求日】2021-08-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】北島 弘伸
(72)【発明者】
【氏名】山根 康男
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2013-164693(JP,A)
【文献】特開2007-323385(JP,A)
【文献】特開2009-151471(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
複数のノードとノード間を接続する複数のエッジとを含むグラフデータを取得し、
前記グラフデータが示す前記複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、前記検出した複数のハブノードのうちエッジによって連結された
3以上のハブノードを含むコアノード集合を判定し、
前記コアノード集合に属するハブノード
それぞれと前記コアノード集合に属する他のハブノードとの間の距離に基づいて、前記コアノード集合
に属するハブノードの中から中心ノードを選択し、前記中心ノード以外の前記コアノード集合に属するハブノード同士を接続するエッジに代えて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジを含む他のグラフデータを生成する、
グラフ簡略化方法。
【請求項2】
前記中心ノードの設定では、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとの間の距離に基づいて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジのウェイトを決定する、
請求項1記載のグラフ簡略化方法。
【請求項3】
前記他のグラフデータに基づいて、前記コアノード集合に属さない第1のノードと前記コアノード集合に属さない第2のノードとの間の経路を探索する、
請求項1記載のグラフ簡略化方法。
【請求項4】
前記複数のノードの少なくとも一部は、企業を示しており、
前記複数のエッジの少なくとも一部は、企業間の関係を示しており、
前記複数のハブノードは、前記複数のハブノード以外のノードが示す企業よりも関係をもつ他の企業が多いハブ企業を示している、
請求項1記載のグラフ簡略化方法。
【請求項5】
コンピュータに、
複数のノードとノード間を接続する複数のエッジとを含むグラフデータを取得し、
前記グラフデータが示す前記複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、前記検出した複数のハブノードのうちエッジによって連結された
3以上のハブノードを含むコアノード集合を判定し、
前記コアノード集合に属するハブノード
それぞれと前記コアノード集合に属する他のハブノードとの間の距離に基づいて、前記コアノード集合
に属するハブノードの中から中心ノードを選択し、前記中心ノード以外の前記コアノード集合に属するハブノード同士を接続するエッジに代えて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジを含む他のグラフデータを生成する、
処理を実行させるグラフ簡略化プログラム。
【請求項6】
複数のノードとノード間を接続する複数のエッジとを含むグラフデータを記憶する記憶部と、
前記グラフデータが示す前記複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、前記検出した複数のハブノードのうちエッジによって連結された
3以上のハブノードを含むコアノード集合を判定し、前記コアノード集合に属するハブノード
それぞれと前記コアノード集合に属する他のハブノードとの間の距離に基づいて、前記コアノード集合
に属するハブノードの中から中心ノードを選択し、前記中心ノード以外の前記コアノード集合に属するハブノード同士を接続するエッジに代えて、前記中心ノード以外の前記コアノード集合に属するハブノードと前記中心ノードとを接続するエッジを含む他のグラフデータを生成する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はグラフ簡略化方法、グラフ簡略化プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
多数のノードとノード間を接続するエッジとを含む大規模グラフを生成し、生成した大規模グラフを用いて様々な分析を行うことがある。例えば、人や企業や装置などの実体的存在(エンティティ)をノードで表現し、エンティティ間の関係をエッジで表現し、特定の条件を満たすエンティティまたは関係をグラフから検索することがある。
【0003】
例えば、同一企業内のユーザ間で行われるコミュニケーションのうち業務との関連が強いコミュニケーションを抽出して、ユーザ間の人脈を定量的に評価する人脈分析検索システムが提案されている。提案の人脈分析検索システムは、相互にコミュニケーション量が多いユーザの集合をコミュニケーションコアとして抽出する。
【0004】
また、例えば、スケールフリー特性をもつ大規模グラフにおける最短経路探索を並列処理化するグラフ処理方法が提案されている。また、例えば、専用の論理回路を用いたハードウェア処理と汎用プロセッサを用いたソフトウェア処理とを併用して、グラフの最短経路探索を行う情報処理システムが提案されている。提案の情報処理システムは、接続エッジ数が最も大きいノードをハブノードとしてグラフから抽出し、ハブノードを中心に形成されるノード群を優先的にハードウェア処理に割り当てる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2007-280000号公報
【文献】国際公開第2013/145001号
【文献】国際公開第2015/004788号
【発明の概要】
【発明が解決しようとする課題】
【0006】
経路探索などの検索処理に用いるグラフは、多数のエッジをもつハブノードと、少数のエッジをもつ周辺ノードとから形成されていることがある。特に、人や企業の間の社会的関係を表すグラフなど、ある種類のグラフは、ハブノード同士が密に接続されたコアと周辺ノードが分散した周辺部とを有していることがある。
【0007】
コアを有するグラフに対してそのまま検索処理を行うと、コアは多数のエッジを含むため計算量が大きくなってしまう。一方で、コア内部においては多くのハブノードが相互に接続されていることが期待されるため、検索処理上の重要性が比較的低く、厳密な検索処理が不要であることもある。そこで、検索処理の効率化のためにグラフを簡略化することが考えられる。例えば、周辺部に属する2つの周辺ノードの間の経路を、コアを簡略化したグラフを用いて探索することが考えられる。
【0008】
しかし、コアを無視したりコアを1つのノードに置換するなどの極端な簡略化を行うと、コア内部のハブノードと周辺ノードとの間の接続関係についての情報が大きく失われ、検索処理の精度を低下させるという影響がある。
【0009】
1つの側面では、本発明は、グラフを用いた検索処理の精度への影響を低減するグラフ簡略化方法、グラフ簡略化プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの態様では、コンピュータが実行するグラフ簡略化方法が提供される。複数のノードとノード間を接続する複数のエッジとを含むグラフデータを取得する。グラフデータが示す複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出し、検出した複数のハブノードのうちエッジによって連結された2以上のハブノードを含むコアノード集合を判定する。コアノード集合に属するハブノードの間の距離に基づいて、コアノード集合に対して中心ノードを設定し、中心ノード以外のコアノード集合に属するハブノード同士を接続するエッジに代えて、中心ノード以外のコアノード集合に属するハブノードと中心ノードとを接続するエッジを含む他のグラフデータを生成する。
【0011】
また、1つの態様では、コンピュータに実行させるグラフ簡略化プログラムが提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0012】
1つの側面では、グラフを用いた検索処理の精度への影響を低減する。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態の情報処理装置の例を説明する図である。
【
図2】第2の実施の形態の分析装置のハードウェア例を示すブロック図である。
【
図3】企業ネットワークの関係性分析の例を示す図である。
【
図5】企業ネットワークの特徴例を示す分布図である。
【
図7】企業ネットワークの簡略化例を示す図である。
【
図11】グラフ簡略化の手順例を示すフローチャートである。
【
図12】グラフ簡略化の他の手順例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0015】
図1は、第1の実施の形態の情報処理装置の例を説明する図である。
第1の実施の形態の情報処理装置10は、複数のノードおよびノード間のエッジを含むグラフを分析する。情報処理装置10をコンピュータと言うことがある。また、情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が分析するグラフは、人や企業や装置などのエンティティをノードで表現し、エンティティ間の関係をエッジで表現した大規模グラフである。例えば、グラフとして、人や企業の間の取引関係を表現した企業ネットワーク、通信装置間の接続関係を表現した通信ネットワーク、Webサイト間のリンク関係を表現したWebネットワークなどが挙げられる。情報処理装置10は、所定の条件を満たすノードまたはエッジをグラフから検索する検索処理を行ってもよい。例えば、検索処理として、最短経路探索など、あるノードから1以上のエッジを介して別のノードに到達する経路を探索する経路探索を行ってもよい。
【0016】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0017】
記憶部11は、グラフデータ13を記憶する。グラフデータ13は、複数のノードとノード間を接続する複数のエッジとを含む。処理部12は、グラフデータ13をグラフデータ14に変換する。グラフデータ14は、検索処理の計算量を削減するためにグラフデータ13を簡略化したものであり、グラフデータ13と同様に複数のノードとノード間を接続する複数のエッジとを含む。グラフデータ14は、例えば、記憶部11に記憶され、処理部12によって経路探索などの検索処理に使用される。例えば、グラフデータ13,14に含まれるノードはノードIDによって識別され、グラフデータ13,14に含まれるエッジは両端のノードの組み合わせによって識別される。
【0018】
グラフデータ13からグラフデータ14への変換において、処理部12は、グラフデータ13が示す複数のノードの中から、接続されたエッジの数が閾値より大きい複数のハブノードを検出する。ハブノードは、関係をもつ他のエンティティの数が多い大規模エンティティを表している。処理部12は、検出された複数のハブノードのうちエッジによって連結された2以上のハブノードを含むコアノード集合15を判定する。コアノード集合15は、ハブノード同士が密に接続されたものであり、大規模エンティティの集合を表している。例えば、処理部12は、グラフデータ13からハブノードとハブノード間を接続するエッジとを抽出し、ハブノードによって形成される連結部分グラフ(連結成分)のうちハブノード数が最大の連結部分グラフをコアノード集合15と判定する。
【0019】
例えば、グラフデータ13がノードA,B,C,D,E,F,G,Hを含んでいるとする。ノードAのエッジ数(次数)は4、ノードBのエッジ数は4、ノードCのエッジ数は6、ノードDのエッジ数は4、ノードEのエッジ数は5、ノードFのエッジ数は1、ノードGのエッジ数は1、ノードHのエッジ数は1である。処理部12は、例えば、ノードA,B,C,D,Eをハブノードとして検出し、ノードA,B,C,D,Eによって形成される連結部分グラフをコアノード集合15と判定する。
【0020】
処理部12は、コアノード集合15に属するハブノードの間の距離に基づいて、コアノード集合15に対して中心ノード16を設定する。中心ノード16は、グラフデータ13においてコアノード集合15に含まれていたハブノードの1つであってもよいし、グラフデータ13においてコアノード集合15に含まれていない新規ノードであってもよい。処理部12は、中心ノード16以外のコアノード集合15に属するハブノード同士を接続するエッジを削除する。代わりに、処理部12は、中心ノード16以外のコアノード集合15に属するハブノードと中心ノード16とを接続するエッジを追加する。これにより、コアノード集合15がスター型の連結部分グラフに変形される。
【0021】
処理部12は、スター型に変形されたコアノード集合15を含むグラフデータ14を生成する。グラフデータ13とグラフデータ14の主要な違いは、コアノード集合15に属するハブノード同士の接続関係である。グラフデータ14は、グラフデータ13に含まれるノードを含んでよい。また、グラフデータ14において、コアノード集合15に属さないノード同士を接続するエッジは、グラフデータ13と同様でよい。また、グラフデータ14において、コアノード集合15に属さないノードと、中心ノード16以外のコアノード集合15に属するハブノードとを接続するエッジは、グラフデータ13と同様でよい。
【0022】
上記のように、中心ノード16の設定にあたってはコアノード集合15に属するハブノードの間の距離が参照される。例えば、処理部12は、新規ノードを中心ノード16として設定し、中心ノード16と各ハブノードとの間のエッジのウェイトを一定値に統一する。エッジのウェイトは、コアノード集合15に属するハブノードの間の距離に基づいて決定することが考えられる。ハブノードの間の距離の平均値の2分の1を、エッジのウェイトとしてもよい。また、例えば、処理部12は、既存のハブノードの1つを中心ノード16として設定し、中心ノード16と他のハブノードそれぞれとの間のエッジのウェイトをグラフデータ13上で算出される距離に決定することが考えられる。中心ノード16は、近接中心性など、ハブノード間の距離に基づいてハブノードの中から選択してもよい。
【0023】
例えば、処理部12は、コアノード集合15に対して新規の中心ノード16を追加する。処理部12は、コアノード集合15に属するノードA,B,C,D,Eの間の10個のエッジを削除し、代わりに中心ノード16とノードA,B,C,D,Eの間に5個のエッジを追加する。このようにして生成されたグラフデータ14では、コアノード集合15に属するノードA,B,C,D,Eは維持される。また、コアノード集合15内のノードCとコアノード集合15外のノードF,Gとの間のエッジは維持され、コアノード集合15内のノードEとコアノード集合15外のノードHとの間のエッジは維持される。
【0024】
処理部12は、グラフデータ14を用いて経路探索などの検索処理を実行してもよい。例えば、処理部12は、コアノード集合15外のノードFからコアノード集合15外のノードHに至る経路を探索することが考えられる。探索すべき経路はコアノード集合15を通過する可能性がある。しかし、コアノード集合15に属する複数のハブノードは相互に密に接続されていることが期待され、コアノード集合15内のルートを厳密に探索する必要性は低い。一方、コアノード集合15をスター型に簡略化しても、コアノード集合15に属するハブノードとコアノード集合15外のノードとの間の接続関係は維持される。このため、コアノード集合15外の2つのノードが、同じハブノードに接続されている場合と異なるハブノードに接続されている場合とを区別することができる。よって、グラフデータ14を用いて検索処理を行うことは、効率性および精度の観点から有用である。
【0025】
第1の実施の形態の情報処理装置10によれば、グラフデータ13から複数のハブノードが検出され、エッジによって連結された2以上のハブノードを含むコアノード集合15が判定される。そして、コアノード集合15に属するハブノードの間の距離に基づいて中心ノード16が設定され、中心ノード16以外のコアノード集合15に属するハブノードと中心ノード16とがスター型に接続されたグラフデータ14が生成される。
【0026】
これにより、グラフデータ14を用いて経路探索などの検索処理を行うことで、グラフデータ13を用いる場合よりも計算量を削減することができる。また、コアノード集合15を1つのノードに置換するなどの極端な簡略化を行う場合と比べて、コアノード集合15内のハブノードとコアノード集合15外のノードとの間の接続関係についての情報が大きく失われることを抑制できる。よって、検索処理の精度への影響を低減できる。
【0027】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の分析装置は、人や企業の間の関係を表すグラフである企業ネットワークを用いて、これらの人や企業の間で行われる可能性がある不正取引のリスクを分析する。第2の実施の形態の分析装置を、情報処理装置やコンピュータと言うこともある。分析装置は、クライアント装置でもよいしサーバ装置でもよい。
【0028】
図2は、第2の実施の形態の分析装置のハードウェア例を示すブロック図である。
分析装置100は、バスに接続されたCPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。分析装置100は、第1の実施の形態の情報処理装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0029】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、分析装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0030】
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、分析装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【0031】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、分析装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【0032】
画像信号処理部104は、CPU101からの命令に従って、分析装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを使用することができる。
【0033】
入力信号処理部105は、分析装置100に接続された入力デバイス112から入力信号を受信する。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用できる。また、分析装置100に複数の種類の入力デバイスが接続されてもよい。
【0034】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
【0035】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信を行う。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0036】
次に、企業ネットワークについて説明する。
図3は、企業ネットワークの関係性分析の例を示す図である。
企業ネットワーク30は、複数のノードおよびノード間を接続する複数のエッジを含む無向グラフまたは有向グラフである。ただし、第2の実施の形態では無向グラフを想定する。企業ネットワーク30に含まれる各ノードは、人または企業を表す。企業ネットワーク30に含まれる各エッジは、企業間の関係または人と企業の間の関係を表す。
【0037】
企業ネットワーク30は、EDINET(Electronic Disclosure for Investor's Network)やTDNET(Timely Disclosure Network)などの公開データベースが開示する公開投資情報から生成することができる。ノードが表す企業には、株式会社や持分会社などの事業会社、事業会社に投資する機関投資家、事業会社を監査する監査法人などが含まれる。ノードが表す人には、取締役や執行役や監査役など事業会社に従事する役員、事業会社に投資する個人投資家などが含まれる。エッジが表す企業間の関係には、親子会社関係や関連会社関係などのグループ関係、機関投資家による事業会社への投資、監査法人による事業会社の監査、その他の重要な取引関係などが含まれる。エッジが表す人と企業の間の関係には、事業会社の役員への就任、個人投資家による事業会社への投資、事業会社と個人の間のその他の重要な取引関係などが含まれる。
【0038】
企業ネットワーク30は、数万個から数十万個のノードを含む大規模グラフである。分析装置100は、企業ネットワーク30を用いて関係性分析を行う。関係性分析では、インサイダー取引やマネーロンダリングなどの不正取引が行われる可能性のある要注意関係を検出する。関係性分析のために、分析装置100は、ある2つのノードが1以上の他のノードを介して繋がっている経路を企業ネットワーク30から探索する。経路は、3以上の主体が関与する連続的な取引関係を表すことがある。このとき、機関投資家を表すノードや監査法人を表すノードなど多数のエッジをもつノードを介した短い経路(当たり前の経路)だけでなく、多数のエッジをもつノードを迂回するような長い経路(当たり前ではない経路)も探索することが好ましい。これにより、一方の企業が役員を介して他方の企業に影響を与えるような不正リスクの高い関係を発見することができる。
【0039】
一例として、企業ネットワーク30は、企業C1を表すノード31、企業C2を表すノード32、企業C3を表すノード33、機関投資家Iを表すノード34および役員Kを表すノード35を含む。ノード31とノード34、ノード31とノード33、ノード32とノード34、ノード32とノード35、ノード33とノード35の間にエッジがある。
【0040】
ノード31とノード34の間のエッジは、機関投資家Iによる企業C1への投資を表す。ノード32とノード34の間のエッジは、機関投資家Iによる企業C2への投資を表す。よって、ノード31からノード34を介してノード32に至る経路は「当たり前の経路」であり、企業C1と企業C2の間の関係性分析では重要性が比較的低い。一方、ノード31からノード33,35を介してノード32に至る経路は「当たり前ではない経路」である。役員Kが企業C2,C3に影響を与えることで不正取引が行われるリスクがあるため、企業C1と企業C2の間の関係性分析では重要性が比較的高い。
【0041】
「当たり前ではない経路」を発見しやすくするため、分析装置100は、企業ネットワーク30に対して次数ウェイト付き経路探索を行う。
無向グラフに含まれるエッジeに対してウェイトw(e)が割り当てられているとする。また、ある経路がノードv0,v1,…,vhというh+1個のノードを順に通過するものとする。ノードv0は始点ノードsであり、ノードvhは終点ノードtである。k=1,2,…,hとして、経路上で隣接するノードvk-1とノードvkの間のエッジをek-1,kとする。すると、その経路の長さ(経路長)は数式(1)のように定義される。
【0042】
【0043】
無向グラフに含まれるノードvに対してウェイトw(v)が割り当てられている場合、エッジeのウェイトw(e)はノードvのウェイトw(v)から算出できる。ノードviとノードvjがエッジei,jで接続されており、ノードviにウェイトw(vi)が割り当てられており、ノードvjにウェイトw(vj)が割り当てられているとする。すると、エッジei,jのウェイトw(ei,j)は数式(2)のように定義される。すなわち、あるエッジのウェイトは、そのエッジの両端にあるノードのウェイトの平均値である。
【0044】
【0045】
次数ウェイト付き経路探索では、ノードvのウェイトw(v)として、ノードvに接続されたエッジの数、すなわち、ノードvの次数deg(v)を用いる。ノードviとノードvjがエッジei,jで接続されており、ノードviの次数がdeg(vi)であり、ノードvjの次数がdeg(vj)であるとする。すると、エッジei,jのウェイトw(ei,j)は数式(3)のように定義される。すなわち、あるエッジのウェイトは、そのエッジの両端にあるノードの次数の平均値である。
【0046】
【0047】
次数ウェイト付き経路探索では、機関投資家を表すノードや監査法人を表すノードなど次数の大きいノードを通過する経路の長さは大きく算出される。このため、次数ウェイト付き経路探索と、短い経路を優先的に探索する経路探索アルゴリズムとを組み合わせると、「当たり前の経路」だけでなく「当たり前ではない経路」も発見しやすくなる。そこで、第2の実施の形態では次数ウェイト付き経路探索を採用する。
【0048】
図4は、企業ネットワークの形状例を示す図である。
人や企業の間の関係を表す企業ネットワークは、
図4に示すような形状をとることが多い。企業ネットワーク40は、コア41および周辺部42を含む。
【0049】
コア41は、多数のハブノードが密結合した連結部分グラフ(任意の2つのノードを結ぶ経路が存在する部分グラフ)である。ハブノードは、企業ネットワーク40に含まれるノードのうち次数が閾値を超えるノードである。ハブノードとしては、機関投資家を表すノードや監査法人を表すノードなど、多数の他の企業と関係をもつハブ企業を表すノードが想定される。企業ネットワーク40に含まれるノードのうち数パーセントから数十パーセントのノードが、コア41に属することがある。
図4では、コア41に属するハブノードを円の外周に配置している。
【0050】
周辺部42は、それぞれ少数の他のノードとのみエッジで接続された周辺ノードから形成される部分グラフである。周辺部42は2つの階層を含むことがある。周辺部42の第1階層に属するノードは、コア41に属する少数のハブノードとエッジで接続されている。ただし、第1階層に属するノード同士が直接接続されていることもある。第1階層に属するノードとしては、機関投資家や監査法人などのハブ企業と関係をもつ一般事業会社を表すノードが想定される。周辺部42の第2階層に属するノードは、コア41に属する少数のハブノードや周辺部42の第1階層に属する少数の周辺ノードとエッジで接続されている。第2階層に属するノードとしては、役員などの人を表すノードが想定される。
【0051】
図5は、企業ネットワークの特徴例を示す分布図である。
分散
図50は、企業ネットワーク40に含まれるノードの次数とノードの相対頻度の関係を表す。分散
図50の横軸は、ノードの次数、すなわち、ノードに接続されたエッジの数を対数表記したものである。分散
図50の縦軸は、ある次数をもつノードの出現頻度、すなわち、ある次数をもつノードの全ノードに対する割合を対数表記したものである。分散
図50は領域51および領域52を含む。
【0052】
領域51は、企業ネットワーク40の周辺部42に対応する。領域51が示すように、周辺部42はスケールフリーネットワークの特徴をもっていると言える。スケールフリーネットワークは、大多数のノードは少数の相手とのみエッジをもち、一部のノードは多数の相手とエッジをもつという特徴をもつネットワークである。
【0053】
一方、領域52は、企業ネットワーク40のコア41に対応する。領域52が示すように、コア41はランダムグラフの特徴をもっていると言える。ランダムグラフは、任意の2つのノード間に一定の確率pでエッジを張ったグラフである。ランダムグラフに含まれるノードの次数と相対頻度との関係はポアソン分布に従う。
【0054】
分析装置100は、このような特徴をもつ企業ネットワークから、次数ウェイト付き経路探索により経路長が短いものから優先的に複数の経路を探索する。
図6は、経路探索の例を示す図である。
【0055】
経路探索にはダイクストラ(Dijkstra)法や双方向ダイクストラ法などの経路探索アルゴリズムを応用することができる。ただし、第2の実施の形態では、経路長が最も短い最短経路だけでなく、最短経路ではない他の経路も探索される。そこで、純粋なダイクストラ法を拡張したものなど、複数の経路を探索可能な経路探索アルゴリズムを使用する。
【0056】
例えば、ダイクストラ法に従ってノード毎に始点ノードからの経路長および前段ノードを示す情報を更新する際に、経路長が最小の情報だけでなく経路長が最小ではない情報も履歴として残しておく。そして、経路長が最小でない情報も用いて次段ノードの情報を複数パターン作成する。ノード毎の情報としては経路長が小さい方から所定個までの情報を保持しておく。これにより、始点ノードから終点ノードに至る経路として、最短経路に加えて、比較的経路長が小さい準最短経路も探索することができる。
【0057】
一例として、グラフ70はノード71~77(ノードa,b,c,d,e,f,g)を含む。ノード71とノード72との間にはウェイト1のエッジがある。ノード71とノード73との間にはウェイト7のエッジがある。ノード71とノード74との間にはウェイト2のエッジがある。ノード72とノード75との間にはウェイト4のエッジがある。ノード73とノード75との間にはウェイト2のエッジがある。ノード73とノード76との間にはウェイト3のエッジがある。ノード74とノード76との間にはウェイト5のエッジがある。ノード75とノード77との間にはウェイト6のエッジがある。ノード76とノード77との間にはウェイト2のエッジがある。
【0058】
始点ノードをノード71、終点ノードをノード77として、ダイクストラ法に準じて経路探索を行うことを考える。まず、ノード71が選択され、ノード71に対して長さ0のラベルが付与される。すると、ノード72に対して長さ1かつ前段ノードaのラベルが付与され、ノード73に対して長さ7かつ前段ノードaのラベルが付与され、ノード74に対して長さ2かつ前段ノードaノラベルが付与される。
【0059】
次に、最小経路長をもつノード72が選択される。すると、ノード75に対して長さ5かつ前段ノードbのラベルが付与される。次に、最小経路長をもつノード74が選択される。すると、ノード76に対して長さ7かつ前段ノードdのラベルが付与される。次に、最小経路長をもつノード75が選択される。すると、ノード73に対して、長さ7かつ前段ノードaのラベルを残して、長さ7かつ前段ノードeのラベルが追加される。また、ノード77に対して長さ11かつ前段ノードeのラベルが付与される。
【0060】
次に、最小経路長をもつノードとしてノード73が選択されたとする。すると、ノード76に対して、ノード73の1つ目のラベルに対応して長さ10かつ前段ノードcのラベルが追加される。また、ノード73の2つ目のラベルに対応して長さ10かつ前段ノードcのラベルが追加される。このとき、長さ7かつ前段ノードdのラベルは残しておく。次に、最小経路長をもつノード76が選択される。すると、ノード77に対して、ノード76の1つ目のラベルに対応して長さ9かつ前段ノードfのラベルが追加される。また、ノード76の2つ目のラベルに対応して長さ12かつ前段ノードfのラベルが追加される。また、ノード76の3つ目のラベルに対応して長さ12かつ前段ノードfのラベルが追加される。このとき、長さ11かつ前段ノードeのラベルは残しておく。
【0061】
これにより、ノード71,74,76,77を順に辿る経路が長さ9の最短経路として抽出される。また、ノード71,72,75,77を順に辿る経路が長さ11の経路として抽出される。また、ノード71,72,75,73,76,77を順に辿る経路が長さ12の経路として抽出される。また、ノード71,73,76,77を順に辿る経路が長さ12の経路として抽出される。このようにして、グラフ70から、経路長が短い方から優先的に所定個までの経路を探索することが可能である。
【0062】
次に、企業ネットワークにおける経路探索の問題点について説明する。
前述の
図4の企業ネットワーク40を用いた不正調査では、周辺部42に属する1つのノードから周辺部42に属する別のノードに至る経路を複数通り探索したいことがある。例えば、ある人を表すノードから別の人を表すノードに至る経路であって、極端に遠回りではない経路を網羅的に探索したいことがある。探索すべき経路の中にはコア41を通過しないものがある。例えば、始点ノードから1以上の一般事業会社を表すノードを経由して終点ノードに至る経路が存在することがある。一方、探索すべき経路の中にはコア41を通過するものもある。例えば、始点ノードから1以上のハブ企業を表すノードを経由して終点ノードに至る経路が存在することがある。
【0063】
しかし、コア41内ではハブノード同士が密に接続されており経由するハブノードの選択パターンが多数存在するため、コア41を通過する経路を探索する計算量が大きくなってしまうという問題がある。一方で、企業ネットワーク40を用いた不正調査では、コア41内のハブノードは相互に接続されていることが「当たり前」であるため、周辺部42で何れのノードを経由するかは重要性が高いもののコア41で何れのノードを通過するかは重要性が低い。すなわち、コア41内で厳密な探索を行う必要性は低い。そこで、分析装置100は、企業ネットワーク40のコア41を簡略化し、簡略化した企業ネットワークを用いて経路探索を行って計算量を削減する。
【0064】
ただし、コア41を1つの仮想ノードに置換するような極端な簡略化を行うと、企業ネットワーク40がもっていたコア41と周辺部42との間の関係についての情報が大きく失われてしまうおそれがある。例えば、周辺部42の1つのノードと周辺部42の別ノードとが、コア41の異なるハブノードに接続されている場合がある。また、周辺部42の1つのノードと周辺部42の別ノードとが、コア41の同じハブノードに接続されている場合がある。コア41を1つの仮想ノードに置換すると、上記の2つの場合が同一視されてしまう。これは、2以上の役員または一般事業会社が同一のハブ企業と関係をもつ場合と、2以上の役員または一般事業会社が異なるハブ企業と関係をもつ場合とを同一視することになる。その結果、経路探索の精度が低下するという問題がある。
【0065】
そこで、分析装置100は、コア41に属するハブノードは残しつつコア41に含まれるエッジを削減して、コア41を簡略化した企業ネットワークを生成する。簡略化した企業ネットワークはスター型のコアを含む。
【0066】
図7は、企業ネットワークの簡略化例を示す図である。
企業ネットワーク60は、企業ネットワーク40を簡略化したものである。企業ネットワーク60は、コア61および周辺部62を含む。コア61は企業ネットワーク40のコア41に対応し、周辺部62は企業ネットワーク40の周辺部42に対応する。
【0067】
コア61は、コア41と同じハブノードを含む。また、コア61は中心ノード63を含む。中心ノード63は、コア41に含まれていなかった新規ノードでもよいし、コア41に含まれている何れか1つのハブノードでもよい。コア61では、コア41に含まれていたハブノード間のエッジは削除されている。その代わりにコア61では、設定された中心ノード63と各ハブノードとがエッジで直接接続され、スター型部分グラフを形成している。
【0068】
周辺部62は周辺部42と同様である。周辺部62に属するノードとコア61に属するハブノードとは、企業ネットワーク40と同様のエッジで接続されている。ただし、中心ノード63がコア41に属するハブノードの1つである場合、中心ノード63と周辺部62に属するノードとの間のエッジは削除される。すなわち、中心ノード63はコア61に属するハブノードのみと接続され、周辺部62に属するノードとは接続されない。
【0069】
中心ノード63が新規ノードである場合、分析装置100は、中心ノード63とコア61に属するハブノードとの間にあるエッジのウェイトを一定値に統一する。
具体的には、分析装置100は、簡略化前のコア41の中で、コア41に属するハブノード間の最短経路の経路長(距離)の平均値を算出する。このとき、コア41に属するハブノード間の最短経路として、ハブノード同士を接続するエッジのみを辿る経路を探索すればよく、周辺部42を経由する経路は考慮しなくてよい。分析装置100は、全てのハブノードの組み合わせについて距離を算出して実際平均値を求めてもよい。また、分析装置100は、コア41から一部のハブノードの組み合わせをサンプリングし、サンプリングした組み合わせのみ距離を算出して推定平均値を求めてもよい。分析装置100は、算出した平均値の2分の1を、中心ノード63と各ハブノードとの間のエッジのウェイトとする。これにより、ハブノード間の平均距離でコア61を通過できるようになる。
【0070】
一方、中心ノード63が既存ハブノードの1つである場合、分析装置100は、コア41の中から何れか1つのハブノードを中心ノード63として選択する。そして、分析装置100は、中心ノード63と他のハブノードそれぞれとの間にあるエッジのウェイトを、コア41における当該2つのノードの間の距離に設定する。
【0071】
具体的には、分析装置100は、コア41に属するハブノードそれぞれに対して、中心性を表す指標として近接中心性を算出する。近接中心性は、あるノードが他のノードとの関係でグラフの中心にどの程度近いかを示す指標である。着目するノードをvi、他の1つのノードをvj、ノードviとノードvjの距離をd(vi,vj)とする。すると、ノードviの近接中心性Cc(vi)は数式(4)のように定義される。数式(4)の近接中心性Cc(vi)は、他のノードとの間の距離の和の逆数である。ただし、ノード数をnとして、ノードviの近接中心性Cc(vi)を数式(5)のように定義することもできる。数式(5)の近接中心性Cc(vi)は、他のノードとの間の平均距離の逆数である。
【0072】
【0073】
【0074】
分析装置100は、コア41から近接中心性が最大のハブノードを中心ノード63として選択する。中心ノード63とコア61の他のハブノードとの間にあるエッジのウェイトは、近接中心性を求める際に算出した当該2つのハブノードの間の距離を用いればよい。よって、中心ノード63を新規ノードとする方法の場合、コア61に含まれるエッジのウェイトは一定値に統一されるのに対し、中心ノード63を既存ハブノードの1つとする方法の場合、コア61に含まれるエッジのウェイトは統一されない。
【0075】
中心ノード63を既存ハブノードの1つとする方法では、コア61に含まれる複数のエッジはそれぞれ、コア41のハブノード間の関係を考慮した異なるウェイトをもつ。よって、コア41のハブノードの個性をコア61に反映させることができ、企業ネットワーク60を用いた経路探索の精度を向上させることができる。一方、中心ノード63を新規ノードとする方法では、近接中心性の計算など中心ノード63を選択するための処理が軽減される。また、ハブノード間の距離の平均値をサンプリングによって推定することが可能であり、ハブノード間の距離計算を軽減することもできる。
【0076】
次に、分析装置100の機能および処理手順について説明する。
図8は、分析装置の機能例を示すブロック図である。
分析装置100は、グラフデータ記憶部121、接続情報生成部122、接続情報記憶部123、経路探索部124および探索結果表示部125を有する。グラフデータ記憶部121および接続情報記憶部123は、例えば、RMA102またはHDD103の記憶領域を用いて実装される。接続情報生成部122、経路探索部124および探索結果表示部125は、例えば、CPU101が実行するプログラムを用いて実装される。
【0077】
グラフデータ記憶部121は、簡略化前の企業ネットワークを示すグラフデータを記憶する。グラフデータは、EDINETやTDNETなどの公開データベースが開示する公開投資情報から生成される。グラフデータは、分析装置100が生成してもよいし他の情報処理装置が生成してもよい。グラフデータは、それぞれ人または企業を表す複数のノードと、人や企業の間の関係を表す複数のエッジとを含む。エッジのウェイトは、接続情報生成部122においてグラフデータから自動的に算出される。
【0078】
接続情報生成部122は、グラフデータ記憶部121に記憶されたグラフデータから、ノード間の接続関係を示す接続情報を生成する。接続情報は隣接行列として表現される。このとき、接続情報生成部122は、各ノードの次数をウェイトとして算出し、各ノードのウェイトを用いてノード間を接続する各エッジのウェイトを算出する。
【0079】
接続情報の生成にあたり、接続情報生成部122は、簡略化フラグおよび次数閾値を含むオプション情報をユーザから受け付ける。簡略化フラグは、企業ネットワークの簡略化を行うか否かを示すフラグである。次数閾値は、企業ネットワークの簡略化を行う場合に適用されるパラメータであり、ハブノードとみなすノードの次数の閾値である。簡略化フラグがOFFである場合、接続情報生成部122は、グラフデータが示す簡略化前の企業ネットワークに相当する元隣接行列を出力する。一方、簡略化フラグがONである場合、接続情報生成部122は、簡略化前の企業ネットワークを簡略化後の企業ネットワークに変換し、簡略化後の企業ネットワークに相当する簡略化隣接行列を出力する。
【0080】
接続情報記憶部123は、接続情報生成部122が生成した接続情報を記憶する。簡略化フラグがOFFである場合、接続情報記憶部123には、簡略化前の企業ネットワークに相当する元隣接行列が記憶される。簡略化フラグがONである場合、接続情報記憶部123には、簡略化後の企業ネットワークに相当する簡略化隣接行列が記憶される。接続情報が1度生成されれば、生成された接続情報を用いて経路探索を繰り返し実行できる。
【0081】
経路探索部124は、接続情報記憶部123に記憶された接続情報を用いて、企業ネットワーク上の経路探索を行う。経路探索にあたり、経路探索部124は、始点ノード、終点ノード、出力する経路の個数およびウェイトを考慮するか否かのフラグを含むオプション情報をユーザから受け付ける。すると、経路探索部124は、ダイクストラ法に準じた経路探索アルゴリズムなどを用いて、経路長の短い方から優先的に始点ノードから終点ノードに至る複数の経路を探索する。ウェイトを考慮するか否かのフラグがOFFである場合、経路探索部124は、接続情報が示すウェイトにかかわらず各エッジのウェイトを1とみなして経路探索を行う。ウェイトを考慮するか否かのフラグがONである場合、経路探索部124は、接続情報が示すウェイトに基づいて経路探索を行う。
【0082】
探索結果表示部125は、経路探索部124の探索結果をディスプレイ111に表示する。例えば、探索結果表示部125は、複数のノードおよび複数のエッジを含む企業ネットワークを図形情報として表示し、探索された経路を太線で表すなど企業ネットワーク上で強調表示する。また、例えば、探索結果表示部125は、経由するノードを列挙した文字列で経路を表現し、複数の経路を表す複数の文字列を並べたリストを表示する。また、探索結果表示部125は、探索結果をHDD103などのストレージに保存してもよいし、ネットワーク114を介して他の情報処理装置に送信してもよいし、分析装置100が有する他の出力デバイスに出力するようにしてもよい。
【0083】
図9は、グラフデータの例を示す図である。
ノードテーブル131は、企業ネットワークに含まれるノードを示す。ノードテーブル131は、グラフデータ記憶部121に記憶される。ノードテーブル131は、ノードID、ノード名およびウェイトの項目を含む。ノードIDは、ノードを識別する識別子である。ノード名は、人物名や企業名などノードの意味を表す文字列である。ウェイトは、接続情報生成部122によって算出されるノードの次数である。
【0084】
エッジテーブル132は、企業ネットワークに含まれるエッジを示す。エッジテーブル132は、グラフデータ記憶部121に記憶される。エッジテーブル132は、エッジID、始点、終点およびウェイトの項目を含む。エッジIDは、エッジを識別する識別子である。始点は、エッジの一端にあるノードを識別する識別子である。終点は、エッジの他端にあるノードを識別する識別子である。ウェイトは、接続情報生成部122によって両端のノードのウェイトから算出されるエッジのウェイトである。
【0085】
図10は、接続情報の例を示す図である。
隣接行列133は、企業ネットワークに含まれるノードの間に存在するエッジを示す接続情報である。隣接行列133は、接続情報記憶部123に記憶される。生成時に簡略化フラグがOFFに指定された場合、接続情報記憶部123に保存される隣接行列133は、簡略化前の企業ネットワークに相当する元隣接行列である。生成時に簡略化フラグがONに指定された場合、接続情報記憶部123に保存される隣接行列133は、簡略化後の企業ネットワークに相当する簡略化隣接行列である。
【0086】
隣接行列133の行は、企業ネットワークに含まれるノードを識別するノードIDに対応付けられている。同様に、隣接行列133の列は、企業ネットワークに含まれるノードを識別するノードIDに対応付けられている。隣接行列133の1つの要素は、当該要素の行番号に対応するノードと当該要素の列番号に対応するノードとの間に存在するエッジのウェイトを示す。要素の値が0であることは、エッジが存在しないことを示す。接続情報生成部122は、まず簡略化前の企業ネットワークを表す元隣接行列を生成する。簡略化フラグがONに指定された場合、接続情報生成部122は、元隣接行列を更新することで、簡略化後の企業ネットワークを示す簡略化隣接行列を生成する。
【0087】
次に、接続情報生成部122による企業ネットワークの簡略化について説明する。まず中心ノードとしてコアに新規ノードを追加する第1の方法を説明し、その次に中心ノードとしてコアの中から既存ハブノードの1つを選択する第2の方法を説明する。
【0088】
図11は、グラフ簡略化の手順例を示すフローチャートである。
(S10)接続情報生成部122は、EDINETやTDNETが開示する公開投資情報に基づいて予め生成されたグラフデータをグラフデータ記憶部121から読み込む。また、接続情報生成部122は、ユーザが入力したオプション情報を読み込む。オプション情報は、簡略化フラグおよび次数閾値を含む。
【0089】
(S11)接続情報生成部122は、グラフデータに基づいて、各ノードに接続されたエッジをカウントして各ノードの次数をウェイト(次数ウェイト)として算出する。接続情報生成部122は、各エッジについて、当該エッジの両端にあるノードのウェイトを平均化して当該エッジのウェイトを算出する。
【0090】
(S12)接続情報生成部122は、簡略化前の企業ネットワークを示す元隣接行列を生成する。元隣接行列の行数および列数は、グラフデータが示すノードの数である。元隣接行列の要素は、ステップS11で算出したエッジのウェイトである。
【0091】
(S13)接続情報生成部122は、ステップS10で読み込んだオプション情報に含まれる簡略化フラグがONであるか判断する。簡略化フラグがONである場合はステップS14に進み、簡略化フラグがOFFである場合はステップS21に進む。
【0092】
(S14)接続情報生成部122は、グラフデータまたは元隣接行列に基づいて、次数が閾値より大きいノードをハブノードとして企業ネットワークから抽出する。ここで使用する閾値は、ステップS10で読み込んだオプション情報に含まれる次数閾値である。
【0093】
(S15)接続情報生成部122は、2以上のハブノードがエッジによって連結されている連結部分グラフを抽出する。連結部分グラフは、例えば、元隣接行列からハブノードに対応する行および列のみを抽出することで特定できる。このとき、不連続な2つ以上の連結部分グラフが抽出されることがある。接続情報生成部122は、抽出された連結部分グラフのうちハブノード数が最大のものをコアと判定する。
【0094】
(S16)接続情報生成部122は、コアに属するハブノードの間の平均距離を算出する。例えば、接続情報生成部122は、コアに属する各ハブノードを始点ノードとして、ダイクストラ法などの経路探索アルゴリズムにより他のハブノードとの距離を算出する。接続情報生成部122は、コアに属する全てのハブノードの組の距離を網羅的に算出して平均値を求めてもよい。また、接続情報生成部122は、コアに属する幾つかのハブノードの組をサンプリングして平均距離の推定値を求めてもよい。
【0095】
(S17)接続情報生成部122は、コアに新規の中心ノードを追加する。例えば、接続情報生成部122は、隣接行列に対して1つの行および1つの列を追加する。
(S18)接続情報生成部122は、コア内のハブノードの間のエッジ、すなわち、コア内のハブノードからコア内の別のハブノードへのエッジを削除する。例えば、接続情報生成部122は、隣接行列に含まれる要素のうち、コア内のハブノードに対応する行番号およびコア内のハブノードに対応する列番号をもつ要素の値を0に書き換える。そして、接続情報生成部122は、コア内の各ハブノードと中心ノードとの間のエッジを追加する。追加されるエッジは、隣接行列において、中心ノードに対応する行番号およびコア内のハブノードに対応する列番号をもつ要素と、コア内のハブノードに対応する行番号および中心ノードに対応する列番号をもつ要素に相当する。
【0096】
(S19)接続情報生成部122は、ステップS18で追加したエッジのウェイトを設定する。追加したエッジのウェイトは、ステップS16で算出した平均距離の2分の1とする。例えば、接続情報生成部122は、隣接行列に含まれる要素のうち、ステップS18で特定した追加エッジに相当する要素の値を平均距離の2分の1に設定する。
【0097】
(S20)接続情報生成部122は、ステップS14~S20を通じて生成された簡略化隣接行列を接続情報記憶部123に出力する。そして、グラフ簡略化が終了する。
(S21)接続情報生成部122は、ステップS12で生成された元隣接行列を接続情報記憶部123に出力する。
【0098】
図12は、グラフ簡略化の他の手順例を示すフローチャートである。
ステップS30~S35,S40,S41の処理は、
図11のステップS10~S15,S20,S21と同様であるため説明を省略する。
【0099】
(S36)接続情報生成部122は、コアに属する各ハブノードの近接中心性を算出する。例えば、接続情報生成部122は、コアに属する各ハブノードを始点ノードとして、ダイクストラ法などの経路探索アルゴリズムにより他のハブノードとの距離を算出する。接続情報生成部122は、例えば、ハブノード毎に、他のハブノードとの間の距離の和の逆数または平均距離の逆数を近接中心性として算出する。
【0100】
(S37)接続情報生成部122は、コア内のハブノードの中から、ステップS36で算出した近接中心性が最大であるハブノードと中心ノードとして選択する。
(S38)接続情報生成部122は、コア内のハブノードの間のエッジ、すなわち、コア内のハブノードからコア内の別のハブノードへのエッジを削除する。そして、接続情報生成部122は、ステップS37で選択した中心ノードとコア内の他のハブノードとの間のエッジを追加する。追加されるエッジは、隣接行列において、中心ノードに対応する行番号および他のハブノードに対応する列番号をもつ要素と、他のハブノードに対応する行番号および中心ノードに対応する列番号をもつ要素に相当する。
【0101】
(S39)接続情報生成部122は、ステップS38で追加したエッジのウェイトを設定する。追加したエッジのウェイトは、当該エッジの両端にあるハブノードの間の距離とする。この距離は、簡略化前の企業ネットワークの接続関係を基準に算出される距離であり、ステップS36で近接中心性を求める過程で算出された距離を用いることができる。例えば、接続情報生成部122は、隣接行列に含まれる要素のうち、ステップS38で特定した追加エッジに相当する要素の値を、両端のノードに応じた距離に設定する。
【0102】
第2の実施の形態の分析装置100によれば、企業ネットワークから次数の大きいハブノードが検出され、複数のハブノードが連結したコアが検出される。そして、コアに中心ノードが設定され、コアに属するハブノード同士はコアを介して接続されているスター型コアになるように企業ネットワークが簡略化される。これにより、コアを通過する経路を探索するための計算量が削減され、企業ネットワーク上での経路探索が高速化される。また、コアを1つの仮想ノードに置換するなどの極端な簡略化と比べて、コアに属するハブノードは削除されず、コアに属するハブノードと周辺部に属する周辺ノードとの間の接続関係の情報が維持される。よって、経路探索の精度の低下を抑制できる。
【符号の説明】
【0103】
10 情報処理装置
11 記憶部
12 処理部
13,14 グラフデータ
15 コアノード集合
16 中心ノード