IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7276116データ生成プログラム、情報処理装置およびデータ生成方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-18
(54)【発明の名称】データ生成プログラム、情報処理装置およびデータ生成方法
(51)【国際特許分類】
   G06N 5/022 20230101AFI20230511BHJP
   G06N 99/00 20190101ALI20230511BHJP
【FI】
G06N5/022
G06N99/00 180
【請求項の数】 7
(21)【出願番号】P 2019230985
(22)【出願日】2019-12-20
(65)【公開番号】P2021099650
(43)【公開日】2021-07-01
【審査請求日】2022-05-17
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、国立研究開発法人日本医療研究開発機構、「臨床ゲノム情報統合データベース整備事業」「ゲノム医療を促進する臨床ゲノム情報知識基盤の構築」委託研究開発、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】多湖 真一郎
(72)【発明者】
【氏名】小林 健一
(72)【発明者】
【氏名】吉川 和
(72)【発明者】
【氏名】小林 賢司
(72)【発明者】
【氏名】富士 秀
【審査官】坂庭 剛史
(56)【参考文献】
【文献】米国特許出願公開第2017/0103337(US,A1)
【文献】米国特許出願公開第2017/0060958(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00-5/048
G06N 99/00
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
有向グラフに含まれる複数のノードから選択された始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成するデータ生成プログラムであって、
前記始点ノードから順方向に第1距離以内での最短パス探索を行った結果である第1パス群と、前記終点ノードから逆方向に第2距離以内での最短パス探索を行った結果である第2パス群とを特定し、
前記第1パス群と前記第2パス群とに含まれる1のノードについて、前記始点ノードから前記1のノードへの第1最短パスの距離と前記1のノードから前記終点ノードへの第2最短パスの距離との和が、前記始点ノードから前記終点ノードへの最短パスの距離に所定距離を加えた距離以下である場合、前記第1最短パスと前記第2最短パスとを含む前記特徴グラフを生成する、
処理をコンピュータに実行させるデータ生成プログラム。
【請求項2】
前記第1距離と前記第2距離とのそれぞれは、前記始点ノードから前記終点ノードへの最短パスの距離に前記所定距離を加えた距離である、
ことを特徴とする請求項1に記載のデータ生成プログラム。
【請求項3】
前記第1距離と前記第2距離とのそれぞれは、前記始点ノードから前記終点ノードへの最短パスの距離に前記所定距離を加えた値の半分以上の値である、
ことを特徴とする請求項1に記載のデータ生成プログラム。
【請求項4】
生成された前記特徴グラフを用いた機械学習によって、学習モデルを生成する、
ことを特徴とする請求項1に記載のデータ生成プログラム。
【請求項5】
推定対象の始点ノードおよび終点ノードを入力すると、入力した前記推定対象の始点ノードと終点ノードとをつなぐ特徴グラフを前記学習モデルに入力し、前記推定対象の始点ノードおよび終点ノードにおける関係を推定する、
ことを特徴とする請求項4に記載のデータ生成プログラム。
【請求項6】
有向グラフに含まれる複数のノードから選択された始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成する情報処理装置であって、
前記始点ノードから順方向に第1距離以内での最短パス探索を行った結果である第1パス群と、前記終点ノードから逆方向に第2距離以内での最短パス探索を行った結果である第2パス群とを特定する特定部と、
前記第1パス群と前記第2パス群とに含まれる1のノードについて、前記始点ノードから前記1のノードへの第1最短パスの距離と前記1のノードから前記終点ノードへの第2最短パスの距離との和が、前記始点ノードから前記終点ノードへの最短パスの距離に所定距離を加えた距離以下である場合、前記第1最短パスと前記第2最短パスとを含む前記特徴グラフを生成する生成部と、
を有することを特徴とする情報処理装置。
【請求項7】
有向グラフに含まれる複数のノードから選択された始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成するデータ生成方法であって、
前記始点ノードから順方向に第1距離以内での最短パス探索を行った結果である第1パス群と、前記終点ノードから逆方向に第2距離以内での最短パス探索を行った結果である第2パス群とを特定し、
前記第1パス群と前記第2パス群とに含まれる1のノードについて、前記始点ノードから前記1のノードへの第1最短パスの距離と前記1のノードから前記終点ノードへの第2最短パスの距離との和が、前記始点ノードから前記終点ノードへの最短パスの距離に所定距離を加えた距離以下である場合、前記第1最短パスと前記第2最短パスとを含む前記特徴グラフを生成する
処理をコンピュータが実行するデータ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ生成技術に関する。
【背景技術】
【0002】
知識ベース内の複数の情報についての関係を推定する技術がある。かかる技術では、例えば、知識ベース中に存在する関係のうち推定したい関係を定め、正解となる関係を列挙して、列挙した関係それぞれに対して、始点と終点とをつなぐパスとその周辺情報を付与した特徴グラフを構築する。そして、かかる技術では、関係の種別(正解/不正解)と特徴グラフとの組の集合を入力とし機械学習により、学習モデルを構築する。そして、かかる技術では、関係を推定したい始点と終点とをつなぐパスとその周辺情報を付与した特徴グラフを構築し、学習モデルに入力して、関係を推定する。
【0003】
ここで、特徴グラフの構築方法は、始点から終点までの(最短パスの距離+α)(α:自然数)以内のパスを全て列挙し、列挙した全てのパスからなる特徴グラフを構築する。図13は、特徴グラフの構築方法の参考例を示す図である。図13の上図には、タンパク質の知識ベースが表わされている。nodeaとnodebとの関係を推定したい場合である。nodeaが始点、nodebが終点を示す。特徴グラフを構築する装置は、知識ベースの推定したい関係に対して、始点(nodea)と終点(nodeb)とをつなぐパスを全て列挙する。そして、装置は、列挙したパスの中で(最短パスの距離+α)以内のパスを全て列挙する。そして、装置は、列挙した全てのパスからなる特徴グラフを構築する。図13の下図が、構築された特徴グラフである。
【先行技術文献】
【特許文献】
【0004】
【文献】特表2016-538615号公報
【文献】特開2014-81841号公報
【文献】特開2012-181765号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の特徴グラフの構築方法では、知識ベースから特徴グラフを生成する計算負荷が高いという問題がある。すなわち、特徴グラフの構築方法の参考例では、知識ベースの中の推定したい関係の始点と終点とをつなぐパスを全て探索するので、探索のための計算負荷が高くなる。
【0006】
本発明は、1つの側面では、知識ベースから特徴グラフを生成する際に、精度を確保しつつ計算負荷を減らすことを目的とする。
【課題を解決するための手段】
【0007】
1つの態様では、データ生成プログラムは、有向グラフに含まれる複数のノードから選択された始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成する生成プログラムであって、前記始点ノードから順方向に第1距離以内での最短パス探索を行った結果である第1パス群と、前記終点ノードから逆方向に第2距離以内での最短パス探索を行った結果である第2パス群とを特定し、前記第1パス群と前記第2パス群とに含まれる1のノードについて、前記始点ノードから前記1のノードへの第1最短パスの距離と前記1のノードから前記終点ノードへの第2最短パスの距離との和が、前記始点ノードから前記終点ノードへの最短パスの距離に所定距離を加えた距離以下である場合、前記第1最短パスと前記第2最短パスとを含む前記特徴グラフを生成する、処理をコンピュータに実行させる。
【発明の効果】
【0008】
1実施態様によれば、知識ベースから特徴グラフを生成する際に、精度を確保しつつ計算負荷を減らすことができる。
【図面の簡単な説明】
【0009】
図1図1は、実施例に係る情報処理装置の構成を示す機能ブロック図である。
図2図2は、実施例に係る生成処理の概要を示す図である。
図3図3は、実施例に係る生成処理の概要の変形例を示す図である。
図4図4は、実施例に係るノードリストのデータ構造の一例を示す図である。
図5図5は、実施例に係るエッジリストのデータ構造の一例を示す図である。
図6図6は、実施例に係る始点用テーブルのデータ構造の一例を示す図である。
図7図7は、実施例に係る終点用テーブルのデータ構造の一例を示す図である。
図8図8は、実施例に係る変数テーブルの一例を示す図である。
図9A図9Aは、実施例に係る最短パス探索処理の流れの一例を示す図(1)である。
図9B図9Bは、実施例に係る最短パス探索処理の流れの一例を示す図(2)である。
図9C図9Cは、実施例に係る最短パス探索処理の流れの一例を示す図(3)である。
図9D図9Dは、実施例に係る最短パス探索処理の流れの一例を示す図(4)である。
図9E図9Eは、実施例に係る最短パス探索処理の流れの一例を示す図(5)である。
図9F図9Fは、実施例に係る最短パス探索処理の流れの一例を示す図(6)である。
図9G図9Gは、実施例に係る最短パス探索処理の流れの一例を示す図(7)である。
図9H図9Hは、実施例に係る最短パス探索処理の流れの一例を示す図(8)である。
図9I図9Iは、実施例に係る最短パス探索処理の流れの一例を示す図(9)である。
図9J図9Jは、実施例に係る最短パス探索処理の流れの一例を示す図(10)である。
図9K図9Kは、実施例に係る最短パス探索処理の流れの一例を示す図(11)である。
図9L図9Lは、実施例に係る最短パス探索処理の流れの一例を示す図(12)である。
図9M図9Mは、実施例に係る最短パス探索処理の流れの一例を示す図(13)である。
図9N図9Nは、実施例に係る最短パス探索処理の流れの一例を示す図(14)である。
図9O図9Oは、実施例に係る最短パス探索処理の流れの一例を示す図(15)である。
図9P図9Pは、実施例に係る最短パス探索処理の流れの一例を示す図(16)である。
図10A図10Aは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(1)である。
図10B図10Bは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(2)である。
図10C図10Cは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(3)である。
図10D図10Dは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(4)である。
図10E図10Eは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(5)である。
図10F図10Fは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(6)である。
図10G図10Gは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(7)である。
図10H図10Hは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(8)である。
図10I図10Iは、実施例に係る特徴グラフ生成処理の流れの一例を示す図(9)である。
図11図11は、実施例に係る特徴グラフ生成処理のフローチャートの一例を示す図である。
図12図12は、データ生成プログラムを実行するコンピュータの一例を示す図である。
図13図13は、特徴グラフの構築方法の参考例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示するデータ生成プログラム、情報処理装置およびデータ生成方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【0011】
[情報処理装置の構成]
図1は、実施例に係る情報処理装置の構成を示す機能ブロック図である。情報処理装置1は、知識ベースを示す有向グラフにおいて与えられた始点ノードおよび終点ノードの関係性を判別するために用いられる特徴グラフを以下のように生成する。情報処理装置は、始点ノードと終点ノードそれぞれから所定距離以内の最短パス探索を行い、ノードごとに、始点ノードと終点ノードそれぞれからの最短パスの和が所定距離以内であるか否かを判定する。そして、情報処理装置は、最短パスの和が所定距離以内であるノードについて、始点ノードからの最短パスと終点ノードからの最短パスの2つのパスを合わせたパスを追加して、特徴グラフを生成する。
【0012】
[特徴グラフの生成処理の概要]
特徴グラフの生成処理の概要を、図2を参照して説明する。図2は、実施例に係る生成処理の概要を示す図である。図2に示すように、知識ベースを示す有向グラフについて、関係を推定したい始点ノードa1および終点ノードb1が灰色で示されている。なお、ここでは、知識ベースは、タンパク質に関する知識ベースを一例とする。
【0013】
情報処理装置は、関係を推定したい始点ノードa1と終点ノードb1とをつなぐ、(最短パス距離+α)以内となるパスを、以下のように探索して、探索できたパスを追加して、特徴グラフを生成する。情報処理装置は、始点ノードa1から終点ノードb1へ順方向に第1距離以内での最短パス探索を行う。また、情報処理装置は、終点ノードb1から始点ノードa1へ逆方向に第2距離以内での最短パス探索を行う。ここでは、第1距離および第2距離は、(最短パスの距離+α)であるとする。(最短パスの距離+α)は、例えば「4」であるとする。最短パスの距離となるパスを探索するのでなく(最短パスの距離+α)となるパスを探索するのは、αの余裕を持たせて始点ノードa1から終点ノードb1へ、その間の特徴の取りこぼしを少なくしてパスを通すためである。左上図が、始点ノードa1から順方向に最短パス探索を行った結果の第1パス群である。すなわち、第1パス群は、始点ノードa1から順方向に「4」以内の最短パス群である。左下図が、終点ノードb1から逆方向に最短パス探索を行った結果の第2パス群である。すなわち、第2パス群は、終点ノードb1から逆方向に「4」以内の最短パス群である。
【0014】
そして、情報処理装置は、第1パス群と第2パス群のどちらにも含まれる各ノードxについて、始点ノードa1からノードxへの第1最短パスの距離と、ノードxから終点ノードb1への第2最短パスの距離との和を計算する。そして、情報処理装置は、計算された和が(最短パスの距離+α)以下であるノードxの第1最短パスと第2最短パスとをつないだパスを特徴グラフに加える。ここでは、右図は、最短パスの距離の和が(最短パスの距離+α)(「4」)以内のパスでできる特徴グラフである。
【0015】
このようにして、情報処理装置は、特徴グラフを生成する際に、始点ノードa1から終点ノードb1までの(最短パスの距離+α)以内のパスを全て列挙して特徴グラフを構築する従来の手法と比べて、特徴グラフの特徴を確保しつつ計算量を減らすことができる。すなわち、(最短パスの距離+α)が「4」である場合に、従来の手法では、特徴グラフを生成する際にかかる計算量は「3」となる。これに対して、実施例に係る情報処理装置による手法では、特徴グラフを生成する際にかかる計算量は到達可能なエッジの数を示す「24」程度となり、特徴グラフの特徴を確保しつつ計算量を減らすことができる。
【0016】
なお、図2では、情報処理装置は、始点ノードと終点ノードそれぞれから(最短パスの距離+α)以内の最短パス探索をするとしたが、これに限定されるものではない。図3では、情報処理装置が、始点ノードと終点ノードそれぞれから(最短パスの距離+α)/2以内のダイクストラ法で最短パス探索をする場合について説明する。
【0017】
[特徴グラフの生成処理の概要の変形例]
図3は、実施例に係る生成処理の概要の変形例を示す図である。図3の場合も、図2と同様に、知識ベースを示す有向グラフについて、関係を推定したい始点ノードa1および終点ノードb1が灰色で示されている。なお、ここでは、知識ベースは、タンパク質に関する知識ベースを一例とする。
【0018】
情報処理装置は、関係を推定したい始点ノードa1と終点ノードb1とをつなぐ、(最短パス距離+α)以内となるパスを以下のように探索して、探索できたパスを追加して、特徴グラフを生成する。情報処理装置は、始点ノードa1から終点ノードb1へ順方向に第1距離以内での最短パス探索を行う。また、情報処理装置は、終点ノードb1から始点ノードa1へ逆方向に第2距離以内での最短パス探索を行う。かかる最短パス探索には、始点ノードa1または終点ノードb1の近傍にあるノード(「近傍ノード」という)に隣接したノード(「隣接ノード)という)の最短パスの暫定的な距離を設定することが含まれる。ここでは、第1距離および第2距離は、(最短パスの距離+α)/2であるとする。(最短パスの距離+α)/2は例えば「2」であるとする。左上図が、始点ノードa1から順方向に最短パス探索を行った結果の第1パス群である。すなわち、第1パス群は、始点ノードa1から順方向に「2」以内の最短パス群である。左下図が、終点ノードb1から逆方向に最短パス探索を行った結果の第2パス群である。すなわち、第2パス群は、終点ノードb1から逆方向に「2」以内の最短パス群である。そして、エッジが点線である矢印の先のノードが、近傍ノードに隣接した隣接ノードであって暫定距離として設定された隣接ノードである。
【0019】
そして、情報処理装置は、第1パス群と第2パス群に含まれる各ノードxについて、始点ノードa1からノードxへの第1最短パスの距離と、ノードxから終点ノードb1への第2最短パスの距離との和を計算する。そして、情報処理装置は、計算された和が(最短パスの距離+α)以下であるノードxの第1最短パスと第2最短パスとをつなぐパスを特徴グラフに加える。ここでは、右図は、最短パスの距離の和が(最短パスの距離+α)(「4」)以内のパスでできる特徴グラフである。
【0020】
このようにして、情報処理装置は、特徴グラフを生成する際に、始点ノードa1から終点ノードb1までの(最短パスの距離+α)以内のパスを全て列挙して特徴グラフを構築する従来の手法と比べて、特徴グラフの特徴を確保しつつ計算量を減らすことができる。また、情報処理装置は、図2で示した始点ノードと終点ノードそれぞれから(最短パスの距離+α)以内で最短パス探索する場合と比べて、さらに、計算量を減らすことができる。すなわち、(最短パスの距離+α)が「4」である場合に、かかる情報処理装置による手法では、特徴グラフを生成する際にかかる計算量は「17」程度となり、特徴グラフの特徴を確保しつつ計算量を減らすことができる。
【0021】
情報処理装置1は、制御部10と、記憶部20とを有する。
【0022】
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、学習部11、生成部12および推定部13を有する。なお、生成部12は、特定部および生成部の一例である。
【0023】
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、知識ベース21、始点用テーブル22、終点用テーブル23、変数テーブル24、特徴グラフ25および学習モデル26を有する。
【0024】
知識ベース21は、知識を特定の表現形式に基づいて記述したデータベースのことをいう。知識ベース21は、例えば、知識を有向グラフに基づいて記述できる。知識ベース21は、ノードリスト211およびエッジリスト212を含む。なお、以降の実施例では、知識ベース21は、タンパク質に関する知識ベースを一例とする。
【0025】
ノードリスト211は、知識ベース21で用いられるノードを管理するリストである。エッジリスト212は、知識ベース21で用いられるノードとノードとの間のエッジを管理するリストである。
【0026】
ここで、ノードリスト211のデータ構造について、図4を参照して説明する。図4は、実施例に係るノードリストのデータ構造の一例を示す図である。図4に示すように、ノードリスト211は、ノードID(IDentification)とタンパク質名と対象ノードとを対応付けて記憶する。ノードIDは、ノードを識別する識別子を示す。タンパク質名は、ノードが示す情報であるタンパク質の名称を示す。対象ノードは、特徴グラフに追加される対象となるノードを示す。対象ノードには、一例として、特徴グラフに追加される対象であるノードの場合には「〇」、特徴グラフに追加される対象でないノードの場合には「×」が設定される。なお、対象ノードのデフォルトとして、「×」が設定されていても良い。
【0027】
一例として、ノードIDが「node1」である場合に、タンパク質名として「EGFR」、対象ノードとして「〇」を記憶している。
【0028】
ここで、エッジリスト212のデータ構造について、図5を参照して説明する。図5は、エッジリスト212は、エッジIDと、始点と、終点と、重みと、対象エッジとを対応付けて記憶する。エッジIDは、エッジを識別する識別子を示す。始点とは、エッジの始点ノードを識別する識別子のことをいう。終点とは、エッジの終点ノードを識別する識別子のことをいう。重みとは、エッジで示される始点ノードと終点ノードとの遠近を重みとしたものである。すなわち、重みは、距離を意味する。対象エッジは、特徴グラフに追加される対象となるエッジを示す。対象エッジには、一例として、特徴グラフに追加される対象であるエッジの場合には「〇」、特徴グラフに追加される対象でないエッジの場合には「×」が設定される。なお、対象ノードのデフォルトとして、「×」が設定されていても良い。
【0029】
一例として、エッジIDが「edge1」である場合に、始点として「node1」、終点として「node2」、重みとして「1」、対象エッジとして「〇」を記憶している。
【0030】
図1に戻って、始点用テーブル22は、始点から最短パス探索をする場合に用いられる情報を記憶するテーブルである。終点用テーブル23は、終点から最短パス探索をする場合に用いられる情報を記憶するテーブルである。変数テーブル24は、始点および終点から最短パス探索をする場合に用いられる変数を記憶するテーブルである。なお、始点用テーブル22、終点用テーブル23および変数テーブル24は、生成部12によって用いられる。
【0031】
ここで、始点用テーブル22のデータ構造について、図6を参照して説明する。図6は、実施例に係る始点用テーブルのデータ構造の一例を示す図である。図6に示すように、始点用テーブル22は、ノードIDと、ステータスと、距離と、パスとを対応付けて記憶する。ノードIDは、ノードを識別する識別子である。ステータスは、最短パス探索中のノードの状態を示す。ステータスは、一例として、「未登録」、「近傍登録済」、「隣接登録済」を含む。「未登録」は、初期状態のノードであることを示す。また、「近傍登録済」は、最短パス探索において近傍ノードとして登録されたことを示す。「隣接登録済」は、最短パス探索において近傍ノードに隣接した隣接ノードとして登録されたことを示す。距離は、始点ノードからの距離を示す。パスは、始点ノードからの経路を示す。
【0032】
一例として、ノードIDが「node1」である場合に、ステータスとして「近傍登録済」、距離として「0」、パスとして“[node1]”を記憶している。すなわち、「node1」は、始点ノードであることを示す。また、ノードIDが「node2」である場合に、ステータスとして「隣接登録済」、距離として「1」、パスとして“[node1,node2]”を記憶している。
【0033】
ここで、終点用テーブル23のデータ構造について、図7を参照して説明する。図7は、実施例に係る終点用テーブルのデータ構造の一例を示す図である。図7に示すように、終点用テーブル23は、ノードIDと、ステータスと、距離と、パスとを対応付けて記憶する。ノードIDは、ノードを識別する識別子である。ステータスは、最短パス探索中のノードの状態を示す。ステータスの一例は、始点用テーブル22の場合と同じであるので、その説明を省略する。距離は、終点ノードからの距離を示す。パスは、終点ノードからの経路を示す。
【0034】
一例として、ノードIDが「node2」である場合に、ステータスとして「未登録」、距離として「未設定」、パスとして「未設定」を記憶している。
【0035】
ここで、変数テーブル24の一例を、図8を参照して説明する。図8は、実施例に係る変数テーブルの一例を示す図である。図8に示すように、変数テーブル24は、探索条件、距離条件、α、距離および処理ノードを対応付けて記憶する。探索条件は、始点および終点のそれぞれからどのくらいの距離まで最短パス探索をするかを示す条件である。距離条件とは、特徴グラフに追加される、始点から終点までの距離条件である。すなわち、距離条件は、始点から終点までのパスを特徴グラフに追加することができる距離に関する条件である。距離は、始点から終点までの最短パスの距離を示す。αは、最短パスの距離に余裕を持たせて最短パス探索させるための余裕に関する値である。処理ノードは、最短パス探索を処理中のノードを示す。
【0036】
図1に戻って、特徴グラフ25は、知識ベース21を示す有向グラフにおいて関係を推定したい始点ノードと終点ノードとをつなぐパスとその周辺情報を付与したグラフである。すなわち、特徴グラフ25は、関係を推定したい始点ノードと終点ノードとの関係の特徴を表すグラフである。なお、特徴グラフ25の一例は、後述する。
【0037】
学習部11は、始点ノードと終点ノードの関係の種別と、特徴グラフとの組の集合を入力とした機械学習によって、学習モデル26を構築する。ここでいう種別とは、一例として、正解または不正解のことをいう。例えば、学習部11は、正解の始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成する。学習部11は、不正解の始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成する。なお、特徴グラフは、後述する生成部12によって生成される。そして、学習部11は、始点ノードと終点ノードの関係の種別と生成された特徴グラフとの組の集合を入力とした機械学習によって、学習モデル26を構築する。
【0038】
生成部12は、最短パス探索部121および特徴グラフ生成部122を有する。
【0039】
最短パス探索部121は、始点ノードから順方向に第1距離以内での最短パス探索を行った結果である第1パス群を特定する。第1パス群の一例として、始点用テーブル22が挙げられる。例えば、最短パス探索部121は、始点ノードから順方向に、始点ノードから近い順に、始点ノードの近傍にある近傍ノードの最短パスおよび距離、並びに近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。一例として、最短パス探索部121は、近傍ノードのノードIDを始点用テーブル22のノードIDに設定し、ステータスとして「近傍登録済」、距離として始点ノードからの距離、パスとして始点ノードからのパスを設定する。最短パス探索部121は、隣接ノードのノードIDを始点用テーブル22のノードIDに設定し、ステータスとして「隣接登録済」、距離として始点ノードからの距離、パスとして始点ノードからのパスを設定する。
【0040】
また、最短パス探索部121は、終点ノードから逆方向に第2距離以内での最短パス探索を行った結果である第2パス群を特定する。第2パス群の一例として終点用テーブル23が挙げられる。例えば、最短パス探索部121は、終点ノードから逆方向に、終点ノードから近い順に、終点ノードの近傍にある近傍ノードの最短パスおよび距離、並びに近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。一例として、最短パス探索部121は、近傍ノードのノードIDを終点用テーブル23のノードIDに設定し、ステータスとして「近傍登録済」、距離として終点ノードからの距離、パスとして終点ノードからのパスを設定する。最短パス探索部121は、隣接ノードのノードIDを終点用テーブル23のノードIDに設定し、ステータスとして「隣接登録済」、距離として始点ノードからの距離、パスとして始点ノードからのパスを設定する。
【0041】
また、最短パス探索部121は、始点ノードから順方向(または終点ノードから逆方向)に処理している近傍ノードが初めて逆方向(または順方向)からの近傍ノードとして登録済みであった場合には、以下の処理を行う。最短パス探索部121は、始点ノードからの距離と終点ノードからの距離の和を始点ノードから終点ノードまでの最短パスの距離として変数テーブル24の距離に設定する。また、最短パス探索部121は、「最短パスの距離+α」を、最短パス探索をする探索条件として変数テーブル24の探索条件に設定する。なお、αは、最短パスの距離に余裕を持たせて最短パス探索させるための余裕に係る値である。また、最短パス探索部121は、「最短パスの距離+α」を距離条件として変数テーブル24の距離条件に設定する。なお、最短パス探索部121は、最短パス探索をダイクストラ法で行う場合には、「(最短パスの距離+α)/2」を、最短パス探索をする探索条件として変数テーブル24の探索条件に設定すれば良い。
【0042】
また、最短パス探索部121は、探索条件が設定されると、以下の処理を行う。最短パス探索部121は、始点ノードまたは終点ノードからの次の近傍ノードの距離が探索条件を超えるまで、最短パス探索を行う。最短パス探索部121は、始点ノードまたは終点ノードからの次の近傍ノードの距離が探索条件を超えると、最短パス探索を終了する。
【0043】
特徴グラフ生成部122は、第1パス群と第2パス群のどちらにも含まれる各ノードについて、始点ノードから当該ノードへの第1最短パスの距離と当該ノードから終点ノードへの第2最短パスの距離との和が、距離条件以下であるか否かを判定する。そして、特徴グラフ生成部122は、始点ノードから当該ノードへの第1最短パスの距離と当該ノードから終点ノードへの第2最短パスの距離との和が、距離条件以下である場合には、第1最短パスと第2最短パスとを合わせたパスを特徴グラフ25に加える。
【0044】
推定部13は、始点ノードと終点ノードを入力すると、学習モデル26を用いて、入力した始点ノードと終点ノードの関係を推定する。例えば、推定部13は、始点ノードと終点ノードを入力すると、入力した始点ノードと終点ノードとをつなぐパスを含む特徴グラフを生成する。なお、特徴グラフは、後述する生成部12によって生成される。そして、推定部13は、生成した特徴グラフを学習モデル26に入力して、始点ノードと終点ノードにおける関係を推定する。すなわち、推定部13は、入力した始点ノードと終点ノードの関係が正解であるか不正解であるかを推定する。
【0045】
[最短パス探索処理の流れの一例]
ここで、実施例に係る最短パス探索処理の流れの一例を、図9A図9Pを参照して説明する。図9A図9Pは、実施例に係る最短パス探索処理の流れの一例を示す図である。なお、ここでは、最短パス探索方法としてダイクストラ法を適用した場合について説明する。
【0046】
まず、最短パス探索部121は、学習部11から始点ノードと終点ノードとを受け付ける。なお、最短パス探索部121は、推定部13から始点ノードと終点ノードとを受け付ける場合であっても良い。図9Aに示すように、知識ベース21上の有向グラフについて、始点ノードおよび終点ノードが灰色で示されている。ここでは、始点ノードは、ノード1であり、終点ノードは、ノード10である。なお、有向グラフのエッジの横の数字はノード間の距離(重み)を表す。
【0047】
そして、最短パス探索部121は、始点ノードから順方向に、始点ノードから一番小さい近傍ノードの最短パス、および距離を求めて、始点用テーブル22に追加する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Bに示すように、始点ノードから一番小さい近傍ノードは、距離が「0」である自身の「ノード1」である。そこで、最短パス探索部121は、「ノード1」を近傍ノードとして「ノード1」の距離を「0」、最短パスを“[node1]”に設定する。「ノード1」の左下の四角付き数字「0」が、近傍ノードの始点ノードからの距離である。また、「ノード1」に隣接した隣接ノードは、「ノード2」、「ノード3」、「ノード4」である。そこで、最短パス探索部121は、「ノード2」を隣接ノードとして「ノード2」の暫定距離を「1」、最短パスを“[node1、node2]”に設定する。「ノード2」の左下の四角無し数字「1」が、隣接ノードの始点ノードからの暫定距離である。同様に、最短パス探索部121は、「ノード3」を隣接ノードとして「ノード3」の暫定距離を「1」、最短パスを“[node1、node3]”に設定する。最短パス探索部121は、「ノード4」を隣接ノードとして「ノード4」の暫定距離を「1」、最短パスを“[node1、node4]”に設定する。
【0048】
そして、最短パス探索部121は、終点ノードから逆方向に、終点ノードから一番小さい近傍ノードの最短パス、および距離を求めて、終点用テーブル23に追加する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Cに示すように、終点ノードから一番小さい近傍ノードは、距離が「0」である自身の「ノード10」である。そこで、最短パス探索部121は、「ノード10」を近傍ノードとして「ノード10」の距離を「0」、最短パスを“[node10]”に設定する。「ノード10」の右下の四角付き数字「0」が、近傍ノードの終点ノードからの距離である。また、「ノード10」に隣接した隣接ノードは、「ノード8」、「ノード9」である。そこで、最短パス探索部121は、「ノード8」を隣接ノードとして「ノード8」の暫定距離を「1」、最短パスを“[node8、node10]”に設定する。「ノード8」の右下の四角無し数字「1」が、隣接ノードの終点ノードからの暫定距離である。同様に、最短パス探索部121は、「ノード9」を隣接ノードとして「ノード9」の暫定距離を「1」に設定する。最短パス探索部121は、「ノード9」を隣接ノードとして「ノード9」の暫定距離を「1」、最短パスを“[node9、node10]”に設定する。
【0049】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードを近傍ノードとして、近傍ノードの最短パスおよび距離を求めて、始点用テーブル22に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Dに示すように、始点ノードから距離が一番小さい近傍ノードは、距離が「1」の「ノード2」である。そこで、最短パス探索部121は、「ノード2」を近傍ノードに更新する。「ノード2」の左下の四角付き数字「1」が、近傍ノードの始点ノードからの距離である。また、「ノード2」に隣接した隣接ノードは、「ノード5」、「ノード6」である。そこで、最短パス探索部121は、「ノード5」を隣接ノードとして「ノード5」の暫定距離を「2」、最短パスを“[node1、node2]、[node2、node5]”に設定する。「ノード5」の左下の四角無し数字「2」が、隣接ノードの始点ノードからの暫定距離である。同様に、最短パス探索部121は、「ノード6」を隣接ノードとして「ノード6」の暫定距離を「3」に設定する。
【0050】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードを近傍ノードとして、近傍ノードの最短パスおよび距離を求めて、始点用テーブル22に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Eに示すように、始点ノードから距離が一番小さい近傍ノードは、距離が「1」の「ノード3」である。そこで、最短パス探索部121は、「ノード3」を近傍ノードに更新する。「ノード3」の左下の四角付き数字「1」が、近傍ノードの始点ノードからの距離である。また、「ノード2」に隣接した隣接ノードは、「ノード8」、「ノード7」である。そこで、最短パス探索部121は、「ノード8」を隣接ノードとして「ノード8」の暫定距離を「2」、最短パスを“[node1、node3]、[node3、node8]”に設定する。「ノード8」の左下の四角無し数字「2」が、隣接ノードの始点ノードからの暫定距離を示す「2」である。同様に、最短パス探索部121は、「ノード7」を隣接ノードとして「ノード7」の暫定距離を「2」に設定する。
【0051】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードは距離「2」を示す「ノード4」であり、次の終点ノードからの距離が一番小さい「ノード8」より大きいので、次の終点ノードからの距離が一番小さい「ノード8」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、終点用テーブル23に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Fに示すように、終点ノードから距離が一番小さい近傍ノードは、距離が「1」の「ノード8」である。そこで、最短パス探索部121は、「ノード8」を近傍ノードに更新する。「ノード8」の右下の四角付き数字「1」が、近傍ノードの終点ノードからの距離である。また、「ノード8」に隣接した隣接ノードは、「ノード5」、「ノード7」、「ノード6」である。そこで、最短パス探索部121は、「ノード5」を隣接ノードとして「ノード5」の暫定距離を「2」、最短パスを“[node5、node8]、[node8、node10]”に設定する。「ノード5」の右下の四角無し数字「2」が、隣接ノードの終点ノードからの暫定距離である。同様に、最短パス探索部121は、「ノード7」を隣接ノードとして「ノード7」の暫定距離を「2」に設定する。最短パス探索部121は、「ノード6」を隣接ノードとして「ノード6」の暫定距離を「2」に設定する。
【0052】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードは距離「2」を示す「ノード4」であり、次の終点ノードからの距離が一番小さい「ノード9」より大きいので、次の終点ノードからの距離が一番小さい「ノード9」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、終点用テーブル23に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Gに示すように、終点ノードから距離が一番小さい近傍ノードは、距離が「1」の「ノード9」である。そこで、最短パス探索部121は、「ノード9」を近傍ノードに更新する。「ノード9」の右下の四角付き数字「1」が、近傍ノードの終点ノードからの距離である。また、「ノード9」に隣接した隣接ノードは、「ノード7」、「ノード6」である。ところが、「ノード9」の隣接ノードとしての「ノード7」、「ノード6」は、それぞれ既に設定された暫定距離と同じになる。そこで、最短パス探索部121は、近傍ノードとしての「ノード9」に隣接した隣接ノードの暫定最短パスおよび暫定距離を更新しない。
【0053】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードは距離「2」を示す「ノード4」であり、次の終点ノードからの距離が一番小さいノードと同じなので、「ノード4」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、始点用テーブル22に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Hに示すように、始点ノードから距離が一番小さい近傍ノードは、距離が「2」の「ノード4」である。そこで、最短パス探索部121は、「ノード4」を近傍ノードに更新する。「ノード4」の左下の四角付き数字「2」が、近傍ノードの始点ノードからの距離である。また、「ノード4」に隣接した隣接ノードは、「ノード5」、「ノード7」である。ところが、「ノード4」の隣接ノードとしての「ノード5」、「ノード7」は、それぞれ既に設定された暫定距離より大きくなる。そこで、最短パス探索部121は、近傍ノードとしての「ノード4」に隣接した隣接ノードの暫定最短パスおよび暫定距離を更新しない。
【0054】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードを近傍ノードとして、近傍ノードの最短パスおよび距離を求めて、始点用テーブル22に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Iに示すように、始点ノードから距離が一番小さい近傍ノードは、距離が「2」の「ノード5」である。そこで、最短パス探索部121は、「ノード5」を近傍ノードに更新する。「ノード5」の左下の四角付き数字「2」が、近傍ノードの始点ノードからの距離である。また、「ノード5」に隣接した隣接ノードは、「ノード8」、「ノード6」である。ところが、「ノード5」の隣接ノードとしての「ノード8」、「ノード6」は、それぞれ既に設定された暫定距離と同じか大きくなる。そこで、最短パス探索部121は、近傍ノードとしての「ノード4」に隣接した隣接ノードの暫定最短パスおよび暫定距離を更新しない。
【0055】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードを近傍ノードとして、近傍ノードの最短パスおよび距離を求めて、始点用テーブル22に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Jに示すように、始点ノードから距離が一番小さい近傍ノードは、距離が「2」の「ノード8」である。そこで、最短パス探索部121は、「ノード8」を近傍ノードに更新する。「ノード8」の左下の四角付き数字「2」が、近傍ノードの始点ノードからの距離である。また、「ノード8」に隣接した隣接ノードは、「ノード10」である。そこで、最短パス探索部121は、「ノード10」を隣接ノードとして「ノード10」の暫定距離を「3」、最短パスを“[node1、node3]、[node3、node5]、「node5、node8」、[node8、node10]”に設定する。「ノード10」の左下の四角無し数字「3」が、隣接ノードの始点ノードからの暫定距離である。
【0056】
このノード8は、始点ノードからの近傍ノードとして始点用テーブル22に記憶されているとともに、終点ノードからの近傍ノードとして終点用テーブル23に記憶されている。そこで、最短パス探索部121は、始点ノードからの距離と終点ノードからの距離の和を始点ノードから終点ノードまでの最短パスの距離として変数テーブル24の距離に設定する。ここでは、始点ノードからの距離「2」と終点ノードからの距離「1」の和「3」が、2点間の最短パスの距離として変数テーブル24の距離に設定される。また、最短パス探索部121は、「最短パスの距離+α」を、距離条件として変数テーブル24に設定する。ここでは、αが、変数テーブル24に予め「1」と設定されているとすると、最短パスの距離「3」とαを示す「1」を加算した「4」が、変数テーブル24の距離条件に設定される。また、最短パス探索部121は、「(最短パスの距離+α)/2」を、最短パス探索をする探索条件として変数テーブル24に設定する。ここでは、「2」が探索条件に設定される。
【0057】
そして、最短パス探索部121は、次の始点ノードからの距離が一番小さいノードを近傍ノードとして、近傍ノードの最短パスおよび距離を求めて、始点用テーブル22に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、始点用テーブル22に追加する。ここでは、図9Lに示すように、始点ノードから距離が一番小さい近傍ノードは、距離が「2」の「ノード6」である。そこで、最短パス探索部121は、「ノード6」を近傍ノードに更新する。「ノード6」の左下の四角付き数字「2」が、近傍ノードの始点ノードからの距離である。また、「ノード6」に隣接した隣接ノードは、「ノード9」である。そこで、最短パス探索部121は、「ノード9」を隣接ノードとして「ノード9」の暫定距離を「3」、最短パスを“[node1、node3]、[node3、node6]、「node6、node9」”に設定する。「ノード9」の左下の四角無し数字「3」が、隣接ノードの始点ノードからの暫定距離である。
【0058】
そして、最短パス探索部121は、次の近傍ノードの距離が終点ノードからの方が小さいので、終点ノードからの距離が次に小さい「ノード5」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、終点用テーブル23に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Mに示すように、終点ノードからの距離が次に小さい近傍ノードは、距離が「2」の「ノード5」である。そこで、最短パス探索部121は、「ノード5」を近傍ノードに更新する。「ノード5」の右下の四角付き数字「2」が、近傍ノードの終点ノードからの距離である。また、「ノード5」に隣接した隣接ノードは、「ノード2」、「ノード4」である。ところが、「ノード5」の隣接ノードとしての「ノード2」、「ノード4」は、それぞれ探索条件としての「2」を超えることとなる。そこで、最短パス探索部121は、近傍ノードとしての「ノード4」に隣接した隣接ノードの暫定最短パスおよび暫定距離を記録しない。
【0059】
そして、最短パス探索部121は、次の近傍ノードの距離が終点ノードからの方が小さいので、終点ノードからの距離が次に小さい「ノード7」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、終点用テーブル23に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Nに示すように、終点ノードからの距離が次に小さい近傍ノードは、距離が「2」の「ノード7」である。そこで、最短パス探索部121は、「ノード7」を近傍ノードに更新する。「ノード7」の右下の四角付き数字「2」が、近傍ノードの終点ノードからの距離である。また、「ノード7」に隣接した隣接ノードは、「ノード3」、「ノード4」である。ところが、「ノード7」の隣接ノードとしての「ノード3」、「ノード4」は、それぞれ探索条件としての「2」を超えることとなる。そこで、最短パス探索部121は、近傍ノードとしての「ノード7」に隣接した隣接ノードの暫定最短パスおよび暫定距離を記録しない。
【0060】
そして、最短パス探索部121は、次の近傍ノードの距離が終点ノードからの方が小さいので、終点ノードからの距離が次に小さい「ノード6」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、終点用テーブル23に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Oに示すように、終点ノードからの距離が次に小さい近傍ノードは、距離が「2」の「ノード6」である。そこで、最短パス探索部121は、「ノード6」を近傍ノードに更新する。「ノード6」の右下の四角付き数字「2」が、近傍ノードの終点ノードからの距離である。また、「ノード6」に隣接した隣接ノードは、「ノード2」、「ノード5」である。ところが、「ノード6」の隣接ノードとしての「ノード2」、「ノード5」は、それぞれ探索条件としての「2」を超えることとなる。そこで、最短パス探索部121は、近傍ノードとしての「ノード6」に隣接した隣接ノードの暫定最短パスおよび暫定距離を記録しない。
【0061】
そして、最短パス探索部121は、次の近傍ノードの距離が終点ノードからの方が小さいので、終点ノードからの距離が次に小さい「ノード3」を近傍ノードとする。そして、最短パス探索部121は、近傍ノードの最短パスおよび距離を求めて、終点用テーブル23に記録する。加えて、最短パス探索部121は、近傍ノードに隣接した隣接ノードの暫定最短パスおよび暫定距離を求めて、終点用テーブル23に追加する。ここでは、図9Pに示すように、終点ノードからの距離が次に小さい近傍ノードは、距離が「2」の「ノード3」である。そこで、最短パス探索部121は、「ノード3」を近傍ノードに更新する。「ノード3」の右下の四角付き数字「2」が、近傍ノードの終点ノードからの距離である。また、「ノード3」に隣接した隣接ノードは、「ノード1」、「ノード2」である。ところが、「ノード3」の隣接ノードとしての「ノード1」、「ノード2」は、それぞれ探索条件としての「2」を超えることとなる。そこで、最短パス探索部121は、近傍ノードとしての「ノード3」に隣接した隣接ノードの暫定最短パスおよび暫定距離を記録しない。
【0062】
そして、最短パス探索部121は、始点ノードまたは終点ノードからの次の近傍ノードの距離が、探索条件を超えている場合には、最短パス探索処理を終了する。ここでは、次の近傍ノードは、始点ノードからの距離「3」を持つノード6、ノード9、ノード10になる。ところが、距離「3」は、探索条件「2」を超えている。そこで、最短パス探索部121は、次の近傍ノードの距離が探索条件を超えているので、最短パス探索処理を終了する。
【0063】
[特徴グラフ生成処理の流れの一例]
ここで、実施例に係る特徴グラフ生成処理の流れの一例を、図10A図10Iを参照して説明する。図10A図10Iは、実施例に係る特徴グラフ生成処理の流れの一例を示す図である。なお、かかる一例では、図9A図9Pにより説明した最短パス探索処理の結果を用いて説明する。すなわち、距離条件は、「4」であるとする。
【0064】
特徴グラフ生成部122は、第1パス群と第2パス群に含まれる各ノードについて、始点からの距離(または暫定距離)が設定されているが、終点からの距離(または暫定距離)が設定されていないノードを特徴グラフ生成処理の対象外とする。同様に、特徴グラフ生成部122は、第1パス群と第2パス群とに含まれる各ノードについて、終点からの距離(または暫定距離)が設定されているが、始点からの距離(または暫定距離)が設定されていないノードを特徴グラフ生成処理の対象外とする。なお、第1パス群には、最短パス探索処理によって探索された、始点からの距離または暫定距離が設定されたノードが含まれている。第2パス群には、最短パス探索処理によって探索された、終点からの距離または暫定距離が設定されたノードが含まれている。ここでは、図10Aに示すように、ノード1,ノード2,ノード4は、始点からの距離が設定されているが、終点からの距離が設定されていないので、特徴グラフ生成処理の対象外とする。これは、終点ノードから探索条件以内でパスが到達していないからである。
【0065】
そして、特徴グラフ生成部122は、第1パス群と第2パス群のどちらにも含まれる各ノードについて、始点ノードから当該ノードへの第1最短パスの距離と当該ノードから終点ノードへの第2最短パスの距離との和が、距離条件以下であるか否かを判定する。そして、特徴グラフ生成部122は、始点ノードから当該ノードへの第1最短パスの距離と当該ノードから終点ノードへの第2最短パスの距離との和が、距離条件以下である場合には、第1最短パスと第2最短パスとを合わせたパスを特徴グラフ25に加える。具体的には、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から対象ノードに対応するパスを取得し、取得したパス内のエッジについて、エッジリスト212の対象エッジに「〇」を追加する。また、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取得した、対象ノードに対応するパス内のノードについて、ノードリスト211の対象ノードに「〇」を追加する。
【0066】
ここでは、図10Bに示すように、ノード3について、特徴グラフ生成部122は、始点ノード1からノード3への最短パスの距離とノード3から終点ノード10への最短パスの距離との和が「3」であり、距離条件「4」以下である。そこで、特徴グラフ生成部122は、始点ノード1からノード3への最短パスとノード3から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加える。すなわち、始点ノード1→ノード3の最短パス、ノード3→ノード8およびノード8→終点ノード10の最短パスを合わせたパスが特徴グラフ25に追加される。具体的には、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23からノード3に対応するパスを取得し、取得したパス内のエッジ[node1,node3]、[node3,node8]および[node8,node10]について、エッジリスト212の対象エッジに「〇」を追加する。また、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取得した、ノード3に対応するパス内のノードnode1,node3,node8およびnode10について、ノードリスト211の対象ノードに「〇」を追加する。
【0067】
また、図10Cに示すように、ノード5について、特徴グラフ生成部122は、始点ノード1からノード5への最短パスの距離とノード5から終点ノード10への最短パスの距離との和が「4」であり、距離条件「4」以下である。そこで、特徴グラフ生成部122は、始点ノード1からノード5への最短パスとノード5から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加える。すなわち、始点ノード1→ノード2→ノード5の最短パスおよびノード5→ノード8→終点ノード10の最短パスを合わせたパスが特徴グラフ25に追加される。具体的には、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23からノード5に対応するパスを取得し、取得したパス内のエッジ[node1,node2]、[node2,node5]、[node5,node8]および[node8,node10]について、エッジリスト212の対象エッジに「〇」を追加する。また、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取得した、ノード5に対応するパス内のノードnode1,node2,node5、node8およびnode10について、ノードリスト211の対象ノードに「〇」を追加する。
【0068】
また、図10Dに示すように、ノード7について、特徴グラフ生成部122は、始点ノード1からノード7への最短パスの距離とノード7から終点ノード10への最短パスの距離との和が「4」であり、距離条件「4」以下である。そこで、特徴グラフ生成部122は、始点ノード1からノード7への最短パスとノード7から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加える。すなわち、始点ノード1→ノード3→ノード7の最短パスおよびノード7→ノード8→終点ノード10の最短パスを合わせたパスが特徴グラフ25に追加される。具体的には、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23からノード7に対応するパスを取得し、取得したパス内のエッジ[node1,node3]、[node3,node7]、[node7,node8]および[node8,node10]について、エッジリスト212の対象エッジに「〇」を追加する。また、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取得した、ノード7に対応するパス内のノードnode1,node3,node7、node8およびnode10について、ノードリスト211の対象ノードに「〇」を追加する。
【0069】
また、図10Eに示すように、ノード6について、特徴グラフ生成部122は、始点ノード1からノード6への最短パスの距離とノード6から終点ノード10への最短パスの距離との和が「5」であり、距離条件「4」より大きい。そこで、特徴グラフ生成部122は、始点ノード1からノード6への最短パスとノード6から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加えない。
【0070】
また、図10Fに示すように、ノード8について、特徴グラフ生成部122は、始点ノード1からノード8への最短パスの距離とノード8から終点ノード10への最短パスの距離との和が「3」であり、距離条件「4」以下である。そこで、特徴グラフ生成部122は、始点ノード1からノード8への最短パスとノード8から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加える。但し、関連するノードとエッジは既にノードリスト211およびエッジリスト212に設定されているので、特徴グラフ生成部122は、ノードリスト211およびエッジリスト212に対して追加しない。
【0071】
また、図10Gに示すように、ノード9について、特徴グラフ生成部122は、始点ノード1からノード9への最短パスの距離とノード9から終点ノード10への最短パスの距離との和が「4」であり、距離条件「4」以下である。そこで、特徴グラフ生成部122は、始点ノード1からノード9への最短パスとノード9から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加える。すなわち、始点ノード1→ノード3→ノード7→ノード9の最短パスおよびノード9→終点ノード10の最短パスを合わせたパスが特徴グラフ25に追加される。具体的には、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23からノード9に対応するパスを取得し、取得したパス内のエッジ[node1,node3]、[node3,node7]、[node7,node9]および[node9,node10]について、エッジリスト212の対象エッジに「〇」を追加する。また、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取得した、ノード7に対応するパス内のノードnode1,node3,node7、node9およびnode10について、ノードリスト211の対象ノードに「〇」を追加する。
【0072】
また、図10Hに示すように、ノード10について、特徴グラフ生成部122は、始点ノード1からノード10への最短パスの距離とノード10から終点ノード10への最短パスの距離との和が「3」であり、距離条件「4」以下である。そこで、特徴グラフ生成部122は、始点ノード1からノード10への最短パスとノード10から終点ノード10への最短パスとを合わせたパスを特徴グラフ25に加える。但し、関連するノードとエッジは既にノードリスト211およびエッジリスト212に設定されているので、特徴グラフ生成部122は、ノードリスト211およびエッジリスト212に対して追加しない。
【0073】
そして、特徴グラフ生成部122は、始点からの距離(または暫定距離)が設定され、且つ終点からの距離(または暫定距離)が設定されている未処理のノードがなければ、特徴グラフ生成処理を終了する。ここでは、特徴グラフ生成部122は、始点からの距離(または暫定距離)が設定され、且つ終点からの距離(または暫定距離)が設定されているノードは全て処理されたので、特徴グラフ生成処理を終了する。図10Iに示す特徴グラフが、特徴グラフ生成部122によって生成された特徴グラフである。
【0074】
[特徴グラフ生成処理のフローチャート]
図11は、実施例に係る特徴グラフ生成処理のフローチャートの一例を示す図である。なお、図11では、最短パス探索方法としてダイクストラ法を適用した場合の特徴グラフ生成処理について説明する。また、学習部11または推定部13から始点ノードおよび終点ノードの指定がされたものとする。探索条件は、処理前には、変数テーブル24に格納されていないとする。
【0075】
図11に示すように、最短パス探索部121は、ダイクストラ法で始点ノードから順方向に、始点ノードから一番近い近傍ノード(始点ノード)への最短パス、および、距離を求める。加えて、最短パス探索部121は、始点ノードから当該ノードに隣接する隣接ノードへの暫定最短パス、および、暫定距離を求める。そして、最短パス探索部121は、求めたそれぞれの情報をメモリの始点用テーブル22に格納する(ステップS11)。
【0076】
そして、最短パス探索部121は、ダイクストラ法で終点ノードから逆方向に、終点ノードから一番近い近傍ノード(終点ノード)への最短パス、および、距離を求める。加えて、最短パス探索部121は、終点ノードから当該ノードに隣接する隣接ノードへの暫定最短パス、および、暫定距離を求める。そして、最短パス探索部121は、求めたそれぞれの情報をメモリの終点用テーブル23に格納する(ステップS12)。
【0077】
そして、最短パス探索部121は、始点ノードからの次の近傍ノードの距離が、終点ノードからの次の近傍ノードの距離以下であるか否かを判定する(ステップS13)。始点ノードからの次の近傍ノードの距離が終点ノードからの次の近傍ノードの距離以下であると判定した場合には(ステップS13;Yes)、最短パス探索部121は、次の処理を行う。すなわち、最短パス探索部121は、始点からの次の近傍ノードの距離が、メモリに格納された探索条件を超えたか否かを判定する(ステップS14A)。
【0078】
始点からの次の近傍ノードの距離が、メモリに格納された探索条件を超えていないと判定した場合には(ステップS14A;No)、最短パス探索部121は、次の処理を行う。すなわち、最短パス探索部121は、始点ノードから次に近い近傍ノードへの最短パス、および、距離を求める。加えて、最短パス探索部121は、始点ノードから当該ノードに隣接する隣接ノードへの暫定最短パス、および、暫定距離を求める。そして、最短パス探索部121は、求めたそれぞれの情報をメモリの始点用テーブル22に格納する(ステップS15)。
【0079】
そして、最短パス探索部121は、探索条件がメモリの変数テーブル24に格納されたか否かを判定する(ステップS16)。探索条件がメモリの変数テーブル24に格納されたと判定した場合には(ステップS16;Yes)、最短パス探索部121は、次の近傍ノードについて処理すべく、ステップS13に移行する。
【0080】
一方、探索条件がメモリの変数テーブル24に格納されていないと判定した場合には(ステップS16;No)、最短パス探索部121は、以下の処理を行う。すなわち、最短パス探索部121は、直前にメモリの始点用テーブル22に格納した近傍ノードが終点ノードからの近傍ノードとして既にメモリの終点用テーブル23に格納されているか否かを判定する(ステップS17)。直前にメモリの始点用テーブル22に格納した近傍ノードが終点ノードからの近傍ノードとして既にメモリの終点用テーブル23に格納されていると判定した場合には(ステップS17;Yes)、最短パス探索部121は、探索条件を格納すべく、ステップS21に移行する。これは、始点ノードから終点ノードまでの最短パスが求まっているからである。
【0081】
一方、直前にメモリの始点用テーブル22に格納した近傍ノードが終点ノードからの近傍ノードとして既にメモリの終点用テーブル23に格納されていないと判定した場合には(ステップS17;No)、最短パス探索部121は、次の近傍ノードについて処理すべく、ステップS13に移行する。
【0082】
ステップS13において、始点ノードからの次の近傍ノードの距離が終点ノードからの次の近傍ノードの距離より大きいと判定した場合には(ステップS13;No)、最短パス探索部121は、終点ノードからの次の近傍ノードの処理をすべく、ステップS14Bに移行する。
【0083】
ステップS14Bにおいて、最短パス探索部121は、次の処理を行う。すなわち、最短パス探索部121は、終点からの次の近傍ノードの距離が、メモリに格納された探索条件を超えたか否かを判定する(ステップS14B)。
【0084】
終点からの次の近傍ノードの距離が、メモリに格納された探索条件を超えていないと判定した場合には(ステップS14B;No)、最短パス探索部121は、次の処理を行う。すなわち、最短パス探索部121は、終点ノードから次に近い近傍ノードへの最短パス、および、距離を求める。加えて、最短パス探索部121は、終点ノードから当該ノードに隣接する隣接ノードへの暫定最短パス、および、暫定距離を求める。そして、最短パス探索部121は、求めたそれぞれの情報をメモリの終点用テーブル23に格納する(ステップS18)。
【0085】
そして、最短パス探索部121は、探索条件がメモリの変数テーブル24に格納されたか否かを判定する(ステップS19)。探索条件がメモリの変数テーブル24に格納されたと判定した場合には(ステップS19;Yes)、最短パス探索部121は、次の近傍ノードについて処理すべく、ステップS13に移行する。
【0086】
一方、探索条件がメモリの変数テーブル24に格納されていないと判定した場合には(ステップS19;No)、最短パス探索部121は、以下の処理を行う。すなわち、最短パス探索部121は、直前にメモリの終点用テーブル23に格納した近傍ノードが始点ノードからの近傍ノードとして既にメモリの始点用テーブル22に格納されているか否かを判定する(ステップS20)。直前にメモリの終点用テーブル23に格納した近傍ノードが始点ノードからの近傍ノードとして既にメモリの始点用テーブル22に格納されていないと判定した場合には(ステップS20;No)、最短パス探索部121は、次の近傍ノードについて処理すべく、ステップS13に移行する。
【0087】
一方、直前にメモリの終点用テーブル23に格納した近傍ノードが始点ノードからの近傍ノードとして既にメモリの始点用テーブル22に格納されていると判定した場合には(ステップS20;Yes)、最短パス探索部121は、この近傍ノードを用いて探索条件を格納すべく、ステップS21に移行する。この近傍ノードでは、始点ノードから終点ノードまでの最短パスが求まっているからである。
【0088】
ステップS21において、最短パス探索部121は、始点ノードから近傍ノードへの距離と当該近傍ノードから終点ノードへの距離の和を2点の距離として求め、メモリの変数テーブル24に格納する(ステップS21)。加えて、最短パス探索部121は、(2点の距離+α)/2を探索条件としてメモリの変数テーブル24に格納する(ステップS22)。また、最短パス探索部121は、(2点の距離+α)を距離条件としてメモリの変数テーブル24に格納する(ステップS23)。そして、最短パス探索部121は、次の近傍ノードの処理をすべく、ステップS13に移行する。
【0089】
ここで、始点からの次の近傍ノードの距離がメモリに格納された探索条件を超えたと判定した場合には(ステップS14A;Yes)には、最短パス探索部121は、最短パス探索処理を終了し、ステップS24に移行する。また、終点からの次の近傍ノードの距離がメモリに格納された探索条件を超えたと判定した場合には(ステップS14B;Yes)、最短パス探索部121は、最短パス探索処理を終了し、ステップS24に移行する。
【0090】
ステップS24において、特徴グラフ生成部122は、未処理のノードがあるか否かを判定する(ステップS24)。未処理のノードがあると判定した場合には(ステップS24;Yes)、特徴グラフ生成部122は、始点用テーブル22から、始点ノードからの距離、または、暫定距離が設定されているノードを1つ取り出す(ステップS25)。
【0091】
そして、特徴グラフ生成部122は、取り出したノード(以降、取出ノードと略記)について、終点用テーブル23に、終点ノードからの暫定距離、あるいは、距離が設定されているか否かを判定する(ステップS26)。取出ノードについて、終点用テーブル23に、終点ノードからの暫定距離、あるいは、距離が設定されていないと判定した場合には(ステップS26;No)、特徴グラフ生成部122は、次のノードを処理すべく、ステップS24に移行する。取出ノードは、始点ノードからの最短パス探索の結果辿りついたが、終点ノードからの最短パス探索の結果辿りつかなかったからである。
【0092】
一方、取出ノードについて、終点用テーブル23に、終点ノードからの暫定距離、あるいは、距離が設定されていると判定した場合には(ステップS26;Yes)、特徴グラフ生成部122は、以下の処理を行う。すなわち、特徴グラフ生成部122は、始点ノードから取出ノードへの距離(または暫定距離)に取出ノードから終点ノードへの距離(または暫定距離)を加算した距離が距離条件以下であるか否かを判定する(ステップS27)。
【0093】
始点ノードから取出ノードへの距離(または暫定距離)に取出ノードから終点ノードへの距離(または暫定距離)を加算した距離が距離条件以下でないと判定した場合には(ステップS27;No)、特徴グラフ生成部122は、次のノードを処理すべく、ステップS24に移行する。
【0094】
一方、始点ノードから取出ノードへの距離(または暫定距離)に取出ノードから終点ノードへの距離(または暫定距離)を加算した距離が距離条件以下であると判定した場合には(ステップS27;Yes)、特徴グラフ生成部122は、次の処理を行う。すなわち、特徴グラフ生成部122は、始点ノードから取出ノードへの最短パス(または暫定最短パス)と、取出ノードから終点ノードへの最短パス(または暫定最短パス)を、特徴グラフに追加する(ステップS28)。例えば、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取出ノードに対応するパスを取得し、取得したパス内のエッジについて、エッジリスト212の対象エッジに「〇」を追加する。また、特徴グラフ生成部122は、始点用テーブル22および終点用テーブル23から取得した、取出ノードに対応するパス内のノードについて、ノードリスト211の対象ノードに「〇」を追加する。そして、特徴グラフ生成部122は、次のノードを処理すべく、ステップS24に移行する。
【0095】
ステップS24において、未処理のノードがないと判定した場合には(ステップS24;No)、特徴グラフ生成部122は、特徴グラフ生成処理を終了する。
【0096】
[実施例の効果]
上記実施例によれば、情報処理装置1は、有向グラフに含まれる複数のノードから選択された始点ノードと終点ノードとをつなぐ特徴グラフを生成する際に、始点ノードから順方向に第1距離以内での最短パス探索を行った結果である第1パス群と、終点ノードから逆方向に第2距離以内での最短パス探索を行った結果である第2パス群とを特定する。そして、情報処理装置1は、第1パス群と第2パス群とに含まれる1のノードについて、始点ノードから当該1のノードへの第1最短パスの距離と当該1のノードから終点ノードへの第2最短パスの距離との和が、始点ノードから終点ノードへの最短パスの距離に所定距離を加えた距離以下である場合、第1最短パスと第2最短パスとを含む特徴グラフを生成する。かかる構成によれば、情報処理装置1は、知識ベースにおける有向グラフから特徴グラフを生成する際に、始点ノードから最短パス探索を行った最短パスの距離と終点ノードから最短パス探索を行った最短パスの距離とを用いることで、精度を確保しつつ計算量を減らすことができる。すなわち、情報処理装置1は、始点ノードから終点ノードまでの(最短パスの距離+所定距離)以下のパスを全て列挙して特徴グラフを生成する従来の手法と比べて、精度を確保しつつ計算量を減らすことができる。
【0097】
また、上記実施例によれば、情報処理装置1は、始点ノードから順方向に、第1距離として始点ノードから終点ノードへの最短パスの距離に所定距離を加えた距離以内での最短パス探索を行った結果である第1パス群を特定する。情報処理装置1は、終点ノードから逆方向に、第2距離として始点ノードから終点ノードへの最短パスの距離に所定距離を加えた距離以内での最短パス探索を行った結果である第2パス群とを特定する。かかる構成によれば、情報処理装置1は、始点ノードおよび終点ノードそれぞれから、始点ノードから終点ノードへの最短パスの距離に所定距離を加えた距離以内での最短パス探索を行った結果の最短パスの距離を用いることで、従来の手法と比べて計算量を減らすことができる。
【0098】
また、上記実施例によれば、情報処理装置1は、情報処理装置1は、始点ノードから順方向に、第1距離として始点ノードから終点ノードへの最短パスの距離に所定距離を加えた値の半分以上の値以内での最短パス探索を行った結果である第1パス群を特定する。情報処理装置1は、終点ノードから逆方向に、第2距離として始点ノードから終点ノードへの最短パスの距離に所定距離を加えた値の半分以上の値以内での最短パス探索を行った結果である第2パス群とを特定する。かかる構成によれば、情報処理装置1は、始点ノードおよび終点ノードそれぞれから、始点ノードから終点ノードへの最短パスの距離に所定距離を加えた値の半分以上の値以内での最短パス探索を行った結果の最短パスの距離を用いることで、従来の手法と比べて計算量を減らすことができる。
【0099】
また、上記実施例によれば、情報処理装置1は、生成された特徴グラフを用いた機械学習によって、学習モデルを生成する。かかる構成によれば、情報処理装置1は、始点ノードと終点ノードにおける関係の種別を学習する学習モデルの生成を高速に行うことができる。
【0100】
また、上記実施例によれば、情報処理装置1は、推定対象の始点ノードおよび終点ノードを入力すると、入力した推定対象の始点ノードと終点ノードとをつなぐ特徴グラフを学習モデルに入力し、推定対象の始点ノードおよび終点ノードにおける関係を推定する。かかる構成によれば、情報処理装置1は、始点ノードと終点ノードにおける関係の推定を高速に行うことができる。
【0101】
[その他]
なお、図示した情報処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、生成部12を最短パス探索部121と、特徴グラフ生成部122とに分散しても良い。また、最短パス探索部121を、始点ノードからの最短パス探索を行う第1の最短パス探索部と、終点ノードからの最短パス探索を行う第2の最短パス探索部とに分散しても良い。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0102】
また、上記実施例では、情報処理装置1が、始点ノードと終点ノードそれぞれから(最短パスの距離+α)×1/2以内のダイクストラ法で最短パス探索をする場合について説明した。しかしながら、情報処理装置1は、これに限定されず、始点ノードと終点ノードそれぞれから(最短パスの距離+α)×2/3以内のダイクストラ法で最短パス探索をする場合であっても良い。また、情報処理装置1は、始点ノードと終点ノードそれぞれから(最短パスの距離+α)×3/4以内のダイクストラ法で最短パス探索をする場合であっても良い。すなわち、情報処理装置1は、始点ノードと終点ノードそれぞれから(最短パスの距離+α)×(1/2+β)(β:正の数)以内のダイクストラ法で最短パス探索をする場合であれば良い。
【0103】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報処理装置1と同様の機能を実現するデータ生成プログラムを実行するコンピュータの一例を説明する。図12は、データ生成プログラムを実行するコンピュータの一例を示す図である。
【0104】
図12に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
【0105】
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、データ生成プログラム205aおよびデータ生成処理関連情報205bを記憶する。
【0106】
CPU203は、データ生成プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。データ生成処理関連情報205bは、知識ベース21、始点用テーブル22、終点用テーブル23、変数テーブル、特徴グラフ25および学習モデル26に対応する。そして、例えばリムーバブルディスク210が、データ生成プログラム205aなどの各情報を記憶する。
【0107】
なお、データ生成プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからデータ生成プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0108】
1 情報処理装置
10 制御部
11 学習部
12 生成部
121 最短パス探索部
122 特徴グラフ生成部
13 推定部
20 記憶部
21 知識ベース
211 ノードリスト
212 エッジリスト
22 始点用テーブル
23 終点用テーブル
24 変数テーブル
25 特徴グラフ
26 学習モデル
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図9E
図9F
図9G
図9H
図9I
図9J
図9K
図9L
図9M
図9N
図9O
図9P
図10A
図10B
図10C
図10D
図10E
図10F
図10G
図10H
図10I
図11
図12
図13