JP6828834B2 - 論理計算装置、論理計算方法、およびプログラム - Google Patents
論理計算装置、論理計算方法、およびプログラム Download PDFInfo
- Publication number
- JP6828834B2 JP6828834B2 JP2019561549A JP2019561549A JP6828834B2 JP 6828834 B2 JP6828834 B2 JP 6828834B2 JP 2019561549 A JP2019561549 A JP 2019561549A JP 2019561549 A JP2019561549 A JP 2019561549A JP 6828834 B2 JP6828834 B2 JP 6828834B2
- Authority
- JP
- Japan
- Prior art keywords
- predicate
- rule
- logical
- formulas
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N5/013—Automatic theorem proving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、述語論理式を計算する論理計算装置、論理計算方法、およびプログラムに関する。
複数の論理式(以下、ルールともよぶ)に基づいて事象を推論する論理ネットワーク処理システムが知られている(例えば、特許文献1を参照)。論理ネットワーク処理システムは、各ルールについて既知の値(以下、入力データともよぶ)を代入することで、推論を行う。
特許文献2には、If(条件部)−Then(結論部)で表される複数の論理式(以下、ルールともよぶ)に基づいて事象を推論するプロダクションシステムにおいて、ルールの結論部を予め定めた確信度で正確な評価を下すための技術が開示されている。特許文献1によれば、結論部が同一であり、条件部が包含関係にあるルールを抽出し、抽出したルールのうち、最も包含度が高いもの(条件部の事象数が最も多いルール)を実行する。
論理ネットワーク処理システムにおいては、ルールの数が増えるほど、計算時間が長くなることが知られている。理由としては、入力ルールが増加すると、論理ネットワーク処理システムがルールごとに個別に代入処理を行うためである。たとえば、「Friend(x, y) -> Friend(y, x)」、「Friend(x, y) -> Friend(y, z)」といった2つのルールがある場合、互いに似たルールであるにも関わらず、引数(ここでは2つめの述語項Friendの第二引数)が異なるため、代入結果が異なる値となる。そのため論理ネットワーク処理システムは、2つのルールで個別に代入操作を行う必要がある。
特許文献2に開示されている技術は、結論部が同一であり、かつ条件部の一部が包含関係にあるルール群がある場合に、その中から1つのルールを選択して実行する。結論部が同一でない場合や、上記の2つのルールにおいては、特許文献2にいうところの包含関係にないため、それぞれについて代入処理を行わなければならない。また、特許文献2に開示されている技術はあくまで推論のために1つのルールを選択するものであって、各ルールの検証を行うためには、すべてのルールについて代入を行う必要がある。
本発明の目的の一例は、上述した課題のいずれかを解決する論理計算装置、論理計算方法、およびプログラムを提供することにある。
本発明の目的の一例は、上述した課題のいずれかを解決する論理計算装置、論理計算方法、およびプログラムを提供することにある。
本発明の第1の態様によれば、論理計算装置は、1つの述語と1つ以上の変数とからなる複数の述語項をそれぞれ含む複数の述語論理式から、第1と第2の述語論理式のセットであって、前記第1の述語論理式の各変数に値を代入した閉論理式の集合が前記第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する第1と第2の述語論理式のセットを抽出する包含抽出部を備える。
本発明の第2の態様によれば、論理計算方法は、コンピュータを用いて行われる論理計算方法であって、1つの述語と1つ以上の変数とからなる複数の述語項をそれぞれ含む複数の述語論理式から、第1と第2の述語論理式のセットであって、前記第1の述語論理式の各変数に値を代入した閉論理式の集合が前記第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する述語論理式のセットを抽出することを含む。
本発明の第3の態様によれば、プログラムは、コンピュータに、1つの述語と1つ以上の変数とからなる複数の述語項を含む複数の述語論理式から、第1と第2の述語論理式のセットであって、前記第1の述語論理式の各変数に値を代入した閉論理式の集合が前記第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する述語論理式のセットを抽出することを実行させる。
上記態様のうち少なくとも1つの態様によれば、論理計算装置は、述語論理式の計算時間を抑えることができる。
〈定義〉
「変数」とは、特定の集合に属する要素を代入可能なデータを表す記号である。例えば、人間を表す変数「x」には、人間に係る集合に属する「Alice」や「Bob」などの要素を代入することができる。本願においては関数項も変数の一例に含む。例えば、変数「x」の親を表す関数項「Parent(x)」は、変数と同様に扱われる。
「述語」とは、変数または変数の順列が所定の属性を有するか否かを表す真偽値(1または0)を返す関係式である。例えば、「Friend()」は、アリティ2の述語であって、第1変数が第2変数の友人であるという関係にあるか否かを表す述語である。アリティとは述語が参照する引数の数を示す値である。
「述語項」、「原子式」とは、1つの述語と1つ以上の変数から構成された真偽値を表す項である。例えば、「Friend(x, y)」は、変数xが変数yの友人であるか否かを表す述語項である。
「述語論理式」とは、真偽値を表す論理式であって、複数の述語項の組み合わせから構成される。例えば、「Friend(x, y) -> Friend(y, x)」は、変数xが変数yの友人であるならば、変数yが変数xの友人であることが成立するというルールを表す述語論理式である。
「閉論理式」とは、変数を含まない述語論理式である。述語論理式のすべての変数に要素を代入することで閉論理式を得ることができる。例えば、「Friend(Alice, Bob) -> Friend(Bob, Alice)」は、AliceがBobの友人ならばBobがAliceの友人であるという論理を表す式である。Friend(Alice, Bob)が真であり、かつFriend(Bob, Alice)が真であるならば、上記閉論理式は真であるといえる。
「変数」とは、特定の集合に属する要素を代入可能なデータを表す記号である。例えば、人間を表す変数「x」には、人間に係る集合に属する「Alice」や「Bob」などの要素を代入することができる。本願においては関数項も変数の一例に含む。例えば、変数「x」の親を表す関数項「Parent(x)」は、変数と同様に扱われる。
「述語」とは、変数または変数の順列が所定の属性を有するか否かを表す真偽値(1または0)を返す関係式である。例えば、「Friend()」は、アリティ2の述語であって、第1変数が第2変数の友人であるという関係にあるか否かを表す述語である。アリティとは述語が参照する引数の数を示す値である。
「述語項」、「原子式」とは、1つの述語と1つ以上の変数から構成された真偽値を表す項である。例えば、「Friend(x, y)」は、変数xが変数yの友人であるか否かを表す述語項である。
「述語論理式」とは、真偽値を表す論理式であって、複数の述語項の組み合わせから構成される。例えば、「Friend(x, y) -> Friend(y, x)」は、変数xが変数yの友人であるならば、変数yが変数xの友人であることが成立するというルールを表す述語論理式である。
「閉論理式」とは、変数を含まない述語論理式である。述語論理式のすべての変数に要素を代入することで閉論理式を得ることができる。例えば、「Friend(Alice, Bob) -> Friend(Bob, Alice)」は、AliceがBobの友人ならばBobがAliceの友人であるという論理を表す式である。Friend(Alice, Bob)が真であり、かつFriend(Bob, Alice)が真であるならば、上記閉論理式は真であるといえる。
〈第1の実施形態〉
《構成の説明》
発明を実施するための第一の実施形態について図面を参照して詳細に説明する。
図1は、第1の実施形態における論理計算装置の全体構成を示したブロック図である。
第1の実施形態に係る論理計算装置1は、利用者によって入力された入力データ112および入力ルール111に基づいて推論処理を行う。第1の実施形態に係る論理計算装置1は、入力装置2と、出力装置3と、処理部10と、記憶部11と、を備える。入力装置2は、入力データ112および入力ルール111の入力を受け付ける。出力装置3は、処理の経過や推論結果を表示する。処理部10は、論理計算処理を実行する。記憶部11は、論理計算処理を行うためのデータを保持する。
《構成の説明》
発明を実施するための第一の実施形態について図面を参照して詳細に説明する。
図1は、第1の実施形態における論理計算装置の全体構成を示したブロック図である。
第1の実施形態に係る論理計算装置1は、利用者によって入力された入力データ112および入力ルール111に基づいて推論処理を行う。第1の実施形態に係る論理計算装置1は、入力装置2と、出力装置3と、処理部10と、記憶部11と、を備える。入力装置2は、入力データ112および入力ルール111の入力を受け付ける。出力装置3は、処理の経過や推論結果を表示する。処理部10は、論理計算処理を実行する。記憶部11は、論理計算処理を行うためのデータを保持する。
入力装置2としては、入力データ112を取得するためのセンサ装置、入力データ112や入力ルール111を入力するためのマウスやキーボード、およびネットワークに接続されたコンピュータ端末などの装置を用いてもよい。出力装置3としては、例えばディスプレイやインジケータなどの表示装置を用いてもよい。処理部10は、論理ネットワーク処理システムに含まれるCPUやFPGAやGPUなどの演算装置と、それら演算装置上で動作するプログラムとによって実現される。また、記憶部11はHDDやSSDやメモリなどの記憶装置によって実現される。
処理部10は、プログラムを実行することで、包含抽出部101、代入処理部102、前処理部103、および推論処理部104として機能する。
包含抽出部101は、入力ルール111間の包含関係を判定し包含関係のあるルールのうち包含する側を「親ルール」とし、包含される側を「子ルール」として、複数のルールを集約して集約ルール113を生成する処理を行う。「親ルール」は、第1の述語論理式の一例である。「子ルール」は、第2の述語論理式の一例である。
代入処理部102は、集約ルール113の親ルール(一次ルール、主ルール)に対して入力データを代入し、代入データ114を生成する。
前処理部103は、親ルールを用いて生成された代入データ114から子ルール(二次ルール、副ルール)を用いて生成することの出来る代入データ114を抽出する。
推論処理部104は、代入処理部102が生成した代入データ114および前処理部103によって生成された代入データ114を用いて推論処理を行う。
包含抽出部101は、入力ルール111間の包含関係を判定し包含関係のあるルールのうち包含する側を「親ルール」とし、包含される側を「子ルール」として、複数のルールを集約して集約ルール113を生成する処理を行う。「親ルール」は、第1の述語論理式の一例である。「子ルール」は、第2の述語論理式の一例である。
代入処理部102は、集約ルール113の親ルール(一次ルール、主ルール)に対して入力データを代入し、代入データ114を生成する。
前処理部103は、親ルールを用いて生成された代入データ114から子ルール(二次ルール、副ルール)を用いて生成することの出来る代入データ114を抽出する。
推論処理部104は、代入処理部102が生成した代入データ114および前処理部103によって生成された代入データ114を用いて推論処理を行う。
記憶部11は、入力ルール111と、集約ルール113と、入力データ112と、代入データ114とを記憶する。入力ルール111は、入力装置2から入力されたルールである。集約ルール113は、包含抽出部101によって集約されたルールである。入力データ112は、入力装置2から入力された原子式に係る真偽値である。代入データ114は、代入処理部102によって計算されたデータである。
図2は、入力ルールの例を示す図である。
入力ルール111は、IDとそのIDに係るルールとを関連付けたデータである。第1の実施形態に係る入力ルール111は一階述語論理を用いて記述される述語論理式である。入力ルールに格納されるルールはAND、OR、->、!などの結合記号と、変数記号と、述語記号とを組み合わせて構成される。例えば、図2に示す入力ルール111のうち、ID1に関連付けられたルール”Smoke(x) -> Cancer(x)”は、「人物xがたばこを吸っているならば、人物xはガンである。」という意味を持つルールである。
入力ルール111は、IDとそのIDに係るルールとを関連付けたデータである。第1の実施形態に係る入力ルール111は一階述語論理を用いて記述される述語論理式である。入力ルールに格納されるルールはAND、OR、->、!などの結合記号と、変数記号と、述語記号とを組み合わせて構成される。例えば、図2に示す入力ルール111のうち、ID1に関連付けられたルール”Smoke(x) -> Cancer(x)”は、「人物xがたばこを吸っているならば、人物xはガンである。」という意味を持つルールである。
図3は、集約ルールの例を示す図である。
集約ルール113は、親ルールのIDと子ルールのIDとを関連付けたデータである。集約ルール113において、1つの親ルールに複数の子ルールが関連付けられてもよい。また、集約ルール113において、親ルールに関連付けられた子ルールがなくてもよい。
集約ルール113は、親ルールのIDと子ルールのIDとを関連付けたデータである。集約ルール113において、1つの親ルールに複数の子ルールが関連付けられてもよい。また、集約ルール113において、親ルールに関連付けられた子ルールがなくてもよい。
図4は、入力データの例を示す図である。
入力データ112は、述語と、その述語の変数に値(定数)を代入した原子式と、その原子式がとる真偽値とを関連付けたデータである。入力データ112に係る述語は、入力ルール111に係る述語論理式に含まれる述語である。入力ルール111における真偽値は、1(真)、0(偽)、またはNULL(値なし)をとる。
入力データ112は、述語と、その述語の変数に値(定数)を代入した原子式と、その原子式がとる真偽値とを関連付けたデータである。入力データ112に係る述語は、入力ルール111に係る述語論理式に含まれる述語である。入力ルール111における真偽値は、1(真)、0(偽)、またはNULL(値なし)をとる。
図5は、ルール“Smoke(x) -> Cancer(x)”に係る代入データの例を示す図である。図6は、ルール“Smoke(x) AND Friend(x, y) -> Friend(y, z)”に係る代入データの例を示す図である。図7は、ルール“Smoke(x) AND Friend(x, y) -> Friend(y, x)”に係る代入データの例を示す図である。
代入データ114は、入力ルール111に係るルールごとに、そのルールの各変数に要素を代入した閉論理式に含まれる複数の述語項と、各述語項の真偽値とを関連付けたデータである。代入データ114は、各行に閉論理式をとり、各列に述語項と真偽値の組み合わせを取ったデータである。
例えば、ルール“Smoke(x)->Cancer(x)”に係る閉論理式は、“Smoke(A)->Cancer(A)”、“Smoke(B)->Cancer(B)”、“Smoke(C)->Cancer(C)”の3つである。そのため、“Smoke(x)->Cancer(x)”の代入データ114には、図5に示すように、“Smoke(A)->Cancer(A)”を構成する述語項“Smoke(A)”および述語項“Cancer(A)”のそれぞれに係る真偽値と、“Smoke(B)->Cancer(B)”を構成する述語項“Smoke(B)”および述語項“Cancer(B)”のそれぞれに係る真偽値と、“Smoke(C)->Cancer(C)”を構成する述語項“Smoke(C)”および述語項“Cancer(C)”のそれぞれに係る真偽値とが格納される。
代入データ114は、入力ルール111に係るルールごとに、そのルールの各変数に要素を代入した閉論理式に含まれる複数の述語項と、各述語項の真偽値とを関連付けたデータである。代入データ114は、各行に閉論理式をとり、各列に述語項と真偽値の組み合わせを取ったデータである。
例えば、ルール“Smoke(x)->Cancer(x)”に係る閉論理式は、“Smoke(A)->Cancer(A)”、“Smoke(B)->Cancer(B)”、“Smoke(C)->Cancer(C)”の3つである。そのため、“Smoke(x)->Cancer(x)”の代入データ114には、図5に示すように、“Smoke(A)->Cancer(A)”を構成する述語項“Smoke(A)”および述語項“Cancer(A)”のそれぞれに係る真偽値と、“Smoke(B)->Cancer(B)”を構成する述語項“Smoke(B)”および述語項“Cancer(B)”のそれぞれに係る真偽値と、“Smoke(C)->Cancer(C)”を構成する述語項“Smoke(C)”および述語項“Cancer(C)”のそれぞれに係る真偽値とが格納される。
第1の実施形態では入力ルール111、入力データ112、集約ルール113、および代入データ114は表の形式をとる例を示しているが、他の実施形態においては、同様の情報であれば、形式は特に問わない。
《動作の説明》
図8を参照しながら、第1の実施形態に係る論理計算装置1の推論動作について詳細に説明する。
図8は、第1の実施形態に係る論理計算装置による推論処理を示すフローチャートである。
利用者は、入力装置2を介して論理計算装置1に入力データ112および入力ルール111を入力する。論理計算装置1は、入力データ112および入力ルール111を記憶部11に記録する。利用者は、入力装置2を介して論理計算装置1に推論処理の開始指示を入力する。
図8を参照しながら、第1の実施形態に係る論理計算装置1の推論動作について詳細に説明する。
図8は、第1の実施形態に係る論理計算装置による推論処理を示すフローチャートである。
利用者は、入力装置2を介して論理計算装置1に入力データ112および入力ルール111を入力する。論理計算装置1は、入力データ112および入力ルール111を記憶部11に記録する。利用者は、入力装置2を介して論理計算装置1に推論処理の開始指示を入力する。
論理計算装置1が推論処理の開始指示を受け付けると、包含抽出部101は、記憶部11に記憶された入力ルール111から集約ルール113を作成する(ステップS1)。つまり、包含抽出部101は入力ルール111の中から親ルールと、その親ルールに包含されるルールである子ルールを抽出し、集約ルール113を作成する。
次に、代入処理部102は、集約ルール113、入力ルール111、および入力データ112を用いて代入データ114を作成する(ステップS2)。代入処理部102は集約ルール113に係る親ルールのIDを参照し、入力ルール111においてその親ルールIDに関連付けられたルールの各変数に、入力データ112に係る値を代入する。
次に、前処理部103は、代入処理部102が生成した親ルールの代入データ114から、子ルールの代入データ114を抽出する(ステップS3)。親ルールに係る代入データ114には、その親ルールに包含される子ルールの代入データ114相当のデータが含まれる。前処理部103は、この子ルールの代入データ114相当のデータを特定し、親ルールの代入データ114のうちそのデータが格納されている箇所の情報を推論処理部104へ出力する。
次に、推論処理部104は、代入処理部102が生成した代入データ114と、前処理部103から取得した情報とを用いて推論処理を行う(ステップS4)。推論処理部104は、推論処理を実行することで、代入データ114のうちNULLとなっている値を推論する。
次に、上記ステップS1に係る包含抽出部101の処理について詳細に説明する。図9は、第1の実施形態に係る包含抽出部の処理を示すフローチャートである。
包含抽出部101は、入力ルール111をそれぞれ集約ルール113として初期化する(ステップS11)。具体的には、図2に示す入力ルール111の場合、包含抽出部101は、各IDのルールをそれぞれ親ルールとし、子ルールを有しない集約ルール113として初期化する。次に包含抽出部101は、集約ルール113の親ルールのペアの全ての組み合わせを特定し、各ペアを1つずつ選択して、すべてのペアについて以下のステップS13からステップS14の処理を実行する(ステップS12)。図2に示す入力ルール111から集約ルール113が初期化される場合、6つの集約ルール113が生成されるため、15通り(6C2)のペアが特定される。
包含抽出部101は、入力ルール111をそれぞれ集約ルール113として初期化する(ステップS11)。具体的には、図2に示す入力ルール111の場合、包含抽出部101は、各IDのルールをそれぞれ親ルールとし、子ルールを有しない集約ルール113として初期化する。次に包含抽出部101は、集約ルール113の親ルールのペアの全ての組み合わせを特定し、各ペアを1つずつ選択して、すべてのペアについて以下のステップS13からステップS14の処理を実行する(ステップS12)。図2に示す入力ルール111から集約ルール113が初期化される場合、6つの集約ルール113が生成されるため、15通り(6C2)のペアが特定される。
包含抽出部101は、ステップS12で選択されたペアについて、包含関係があるかどうかを判定する(ステップS13)。包含抽出部101は、例えば、代入データを作成した際、親ルールで作成された代入データと、子ルールで作成された代入データに、包含関係が存在するかどうかを判定する。本実施形態に係るルールの「包含関係」とは、一方のルールの各変数に要素を代入した閉論理式の集合が他方のルールの各変数に要素を代入した閉論理式の集合を包含する関係をいう。包含抽出部101は、選択された親ルールのペアが包含関係を有するか否かを判定するために、以下の条件で親ルールのペアを評価する。
包含抽出部101は、親ルールに含まれる結合記号を削除して各親ルールについて複数の述語項を特定する。包含抽出部101は、特定された複数の述語項間で同一の値をとるべき変数の条件を特定する。以下、述語項間で同一の値をとるべき変数の条件を「一致条件」ともいう。
包含抽出部101は、「一方のルールに係る述語項を構成する述語およびその述語項の数が、他方のルールに係る述語項を構成する述語および述語項の数と一致」し、かつ「一方のルールにおける一致条件の全部が他方のルールにおける一致条件の一部と一致」する場合(第1の集約条件)に、そのペアが、その一方のルールを親ルールとし、その他方のルールを子ルールとする包含関係を有すると評価する。
また包含抽出部101は、「一方のルールに係る複数の述語の一部が、他方のルールに係る述語の全部と一致」し、かつ「一方のルールと他方のルールとで共通する述語項において、一方のルールにおける一致条件の全部が他方のルールにおける一致条件の一部と一致」する場合(第2の集約条件)に、そのペアが、その一方のルールを親ルールとし、その他方のルールを子ルールとする包含関係を有すると評価する。
包含抽出部101は、「一方のルールに係る述語項を構成する述語およびその述語項の数が、他方のルールに係る述語項を構成する述語および述語項の数と一致」し、かつ「一方のルールにおける一致条件の全部が他方のルールにおける一致条件の一部と一致」する場合(第1の集約条件)に、そのペアが、その一方のルールを親ルールとし、その他方のルールを子ルールとする包含関係を有すると評価する。
また包含抽出部101は、「一方のルールに係る複数の述語の一部が、他方のルールに係る述語の全部と一致」し、かつ「一方のルールと他方のルールとで共通する述語項において、一方のルールにおける一致条件の全部が他方のルールにおける一致条件の一部と一致」する場合(第2の集約条件)に、そのペアが、その一方のルールを親ルールとし、その他方のルールを子ルールとする包含関係を有すると評価する。
ここで、第1の集約条件を満たすルールのペアについて説明する。
図3のID2のルールとID3のルールとのペアは、第1の条件を満たすペアである。ID2のルールは、述語項“Smoke(x)”、述語項“Friend(x, y)”、述語項“Friend(y,z)”を有するルールである。ID3のルールは、述語項“Smoke(x)”、述語項“Friend(x, y)”、述語項“Friend(y, x)”を有するルールである。
上述のとおり、ID2のルールの述語項を構成する述語およびID3のルールの述語項を構成する述語は、いずれも“Smoke”、“Friend”、“Friend”である。またID2のルールの述語項の数およびID3のルールの述語項の数は、いずれも3である。つまり、ID3のルールに係る述語項を構成する述語およびその述語項の数は、ID2のルールに係る述語項を構成する述語および述語項の数と一致する。
図3のID2のルールとID3のルールとのペアは、第1の条件を満たすペアである。ID2のルールは、述語項“Smoke(x)”、述語項“Friend(x, y)”、述語項“Friend(y,z)”を有するルールである。ID3のルールは、述語項“Smoke(x)”、述語項“Friend(x, y)”、述語項“Friend(y, x)”を有するルールである。
上述のとおり、ID2のルールの述語項を構成する述語およびID3のルールの述語項を構成する述語は、いずれも“Smoke”、“Friend”、“Friend”である。またID2のルールの述語項の数およびID3のルールの述語項の数は、いずれも3である。つまり、ID3のルールに係る述語項を構成する述語およびその述語項の数は、ID2のルールに係る述語項を構成する述語および述語項の数と一致する。
ID2のルールにおける一致条件は、第1述語項の第1変数(Smoke(x)のx)と第2述語項の第1変数(Friend(x, y)のx)とが一致すること、および第2述語項の第2変数(Friend(x, y)のy)と第3述語項の第1変数(Friend(y, z)のy)とが一致すること、である。また、ID3のルールにおける一致条件は、第1述語項の第1変数(Smoke(x)のx)と第2述語項の第1変数(Friend(x, y)のx)とが一致すること、第2述語項の第2変数(Friend(x, y)のy)と第3述語項の第1変数(Friend(y, x)のy)とが一致すること、および第3述語項の第1変数(Friend(x, y)のx)と第3述語項の第2変数(Friend(y, x)のx)とが一致すること、である。
ここで、それぞれのルールの一致条件を比較すると、ID2のルールの一致条件の全部は、ID3のルールの一致条件の一部と一致する。
なお、包含抽出部101は、一致条件について、述語の並べ替えを行った場合に同様であるかどうかについても評価する。包含抽出部101は、述語の並べ替えを行った場合に一致条件に包含されている場合、一方のルールにおける一致条件が他方のルールにおける一致条件の全部と一致すると判断する。
ここで、それぞれのルールの一致条件を比較すると、ID2のルールの一致条件の全部は、ID3のルールの一致条件の一部と一致する。
なお、包含抽出部101は、一致条件について、述語の並べ替えを行った場合に同様であるかどうかについても評価する。包含抽出部101は、述語の並べ替えを行った場合に一致条件に包含されている場合、一方のルールにおける一致条件が他方のルールにおける一致条件の全部と一致すると判断する。
以上のように、ID2のルールとID3のルールは、第1の集約条件を満たすため、包含抽出部101は、ID2のルールがID3のルールの親ルールであると判定することができる。なお、包含抽出部101は、同様にID4のルールとID5のルールについても第1の集約条件を満たすため、ルールID4がルールID5の親ルールであると判定できる。なお、ID4のルールとID5のルールは変数の一致条件が一致するため、包含抽出部101は、いずれを親ルールに設定してもよい。
ここで、第2の集約条件を満たすルールのペアについて説明する。
図3のID2のルールとID4のルールとのペアは、第1の条件を満たすペアである。ID2のルールは、述語項“Smoke(x)”、述語項“Friend(x, y)”、述語項“Friend(y, z)”を有するルールである。ID4のルールは、述語項“Friend(x, y)”、述語項“Friend(y, x)”を有するルールである。
上述のとおり、ID2のルールには、ID4のルールを構成する2つの述語“Friend”が含まれる。つまり、ID2のルールに係る複数の述語の一部は、ID3のルールに係る述語の全部と一致する。
図3のID2のルールとID4のルールとのペアは、第1の条件を満たすペアである。ID2のルールは、述語項“Smoke(x)”、述語項“Friend(x, y)”、述語項“Friend(y, z)”を有するルールである。ID4のルールは、述語項“Friend(x, y)”、述語項“Friend(y, x)”を有するルールである。
上述のとおり、ID2のルールには、ID4のルールを構成する2つの述語“Friend”が含まれる。つまり、ID2のルールに係る複数の述語の一部は、ID3のルールに係る述語の全部と一致する。
ID2のルールにおける一致条件は、第1述語項の第1変数(Smoke(x)のx)と第2述語項の第1変数(Friend(x, y)のx)とが一致すること、および第2述語項の第2変数(Friend(x, y)のy)と第3述語項の第1変数(Friend(y, z)のy)とが一致すること、である。このうち、ID4のルールと共通する述語項に係る一致条件は、第2述語項の第2変数(Friend(x, y)のy)と第3述語項の第1変数(Friend(y, z)のy)とが一致することである。また、ID4のルールにおける一致条件は、第1述語項の第2変数(Friend(x, y)のy)と第2述語項の第1変数(Friend(y, x)のy)とが一致すること、および第1述語項の第1変数(Friend(x, y)のx)と第2述語項の第2変数(Friend(y, x)のx)とが一致すること、である。
ここで、それぞれの変数の一致条件を比較すると、ID2のルールとID4のルールとで共通する述語項において、ID2のルールの一致条件の一部は、ID4のルールの一致条件の全部と一致する。
ここで、それぞれの変数の一致条件を比較すると、ID2のルールとID4のルールとで共通する述語項において、ID2のルールの一致条件の一部は、ID4のルールの一致条件の全部と一致する。
以上のように、ID2のルールとID4のルールは、第2の集約条件を満たすため、包含抽出部101は、ID2のルールがID4のルールの親ルールであると判定することができる。なお、包含抽出部101は、同様にID2のルールとID5のルールについても第2の集約条件を満たすため、ルールID2がルールID5の親ルールであると判定できる。
包含抽出部101は、ステップS12で選択されたペアについて、包含関係があると判定した場合(ステップS13:YES)、集約ルール113から、ステップS12で選択されたペアのうち子ルールに相当するルールを親ルールにもつ行(親行)と、親ルールに相当するルールを親ルールにもつ行(子行)とを特定する(ステップS14)。包含抽出部101は、親行の子ルールに、子行の親ルールのIDおよび子ルールのIDを追加する(ステップS15)。包含抽出部101は、子行を削除する(ステップS16)。集約ルール113が更新されると、包含抽出部101は、ステップS12のループを脱し、再度更新語の集約ルール113に基づいてステップS12以下の処理を行う。
他方、ステップS17において、ステップS12で選択されたペアについて包含関係がない場合(ステップS13:NO)、包含抽出部101は、ステップS12によって次のペアを選択する。
包含抽出部101は、集約ルール113の親ルールのペアの全ての組み合わせについてステップS13からステップS14の処理を実行すると、処理を終了する。なお、入力ルール111が図2に示すものである場合、集約ルール113は上記処理により図3に示すものとなる。
次に、上記ステップS2に係る代入処理部102の処理について詳細に説明する。図10は、第1の実施形態に係る包含抽出部の処理を示すフローチャートである。
代入処理部102は、集約ルール113の親ルールのIDを特定し、入力ルール111のうちそのIDに関連付けられたルールの各変数に要素を代入した閉論理式を特定する(ステップS21)。集約ルール113が図3に示すものである場合、集約ルール113においてID1、ID2、ID6が親ルールであるため、代入処理部102は、これらの3つのルールについて閉論理式を特定する。
代入処理部102は、特定された各閉論理式の述語項の真偽値として、入力データ112を代入する(ステップS22)。そして、代入処理部102は、代入によって得られたデータを代入データ114として記憶部11に記録する(ステップS23)。入力データ112が図4に示すものである場合、代入データ114は、図5、図6、図7に示すものとなる。
代入処理部102は、集約ルール113の親ルールのIDを特定し、入力ルール111のうちそのIDに関連付けられたルールの各変数に要素を代入した閉論理式を特定する(ステップS21)。集約ルール113が図3に示すものである場合、集約ルール113においてID1、ID2、ID6が親ルールであるため、代入処理部102は、これらの3つのルールについて閉論理式を特定する。
代入処理部102は、特定された各閉論理式の述語項の真偽値として、入力データ112を代入する(ステップS22)。そして、代入処理部102は、代入によって得られたデータを代入データ114として記憶部11に記録する(ステップS23)。入力データ112が図4に示すものである場合、代入データ114は、図5、図6、図7に示すものとなる。
次に、上記ステップS3に係る前処理部103の処理について詳細に説明する。図11は、第1の実施形態に係る前処理部の処理を示すフローチャートである。
前処理部103は、集約ルール113の各行を1つずつ選択し、選択した行について以下のステップS32からステップS34の処理を行う。
前処理部103は、選択された行に子ルールが存在するか否かを判定する(ステップS32)。選択された行に子ルールが存在しない場合(ステップS32:NO)、前処理部103は、ステップS31により次の行を選択する。
前処理部103は、集約ルール113の各行を1つずつ選択し、選択した行について以下のステップS32からステップS34の処理を行う。
前処理部103は、選択された行に子ルールが存在するか否かを判定する(ステップS32)。選択された行に子ルールが存在しない場合(ステップS32:NO)、前処理部103は、ステップS31により次の行を選択する。
選択された行に子ルールが存在する場合(ステップS32:YES)、前処理部103は、選択された行に係る親ルールの代入データ114から、その行に係る各子ルールの代入データ114に相当する箇所を抽出する(ステップS33)。
例えば、集約ルール113が図3に示すものである場合、集約ルール113の第2行において、親ルールとしてID2のルールが、子ルールとしてID3、ID4、ID5のルールが関連付けられている。この場合、前処理部103は、ID2のルールに係る代入データから、ID3、ID4、ID5のルールに係る代入データを抽出する。
例えば、集約ルール113が図3に示すものである場合、集約ルール113の第2行において、親ルールとしてID2のルールが、子ルールとしてID3、ID4、ID5のルールが関連付けられている。この場合、前処理部103は、ID2のルールに係る代入データから、ID3、ID4、ID5のルールに係る代入データを抽出する。
図12は、ID2に係る代入データから、ID3に係る代入データを抽出する処理の例を示す図である。
ID2のルールに係る閉論理式の集合は、ID3のルールに係る閉論理式の集合を包含する。したがって、ID2に係る代入データ114は、ID3に係る代入データ114に相当するデータを含んでいる。図12においてID2に係る代入データのうち太線枠で囲われた部分が、ID3に係る代入データ114と等価となる。
ID2のルールに係る閉論理式の集合は、ID3のルールに係る閉論理式の集合を包含する。したがって、ID2に係る代入データ114は、ID3に係る代入データ114に相当するデータを含んでいる。図12においてID2に係る代入データのうち太線枠で囲われた部分が、ID3に係る代入データ114と等価となる。
前処理部103は、子ルールに係る一致条件を特定し、親ルールに係る代入データ114からその一致条件をすべて満たす行を抽出する。より具体的には、親ルールに係る代入データ114から、子ルールに係る一致条件のうち親ルールに係る一致条件と共通しないものをすべて満たす行を抽出する。
図12に示す例においては、子ルールであるID3のルールにおける一致条件は、第1述語項の第1変数(Smoke(x)のx)と第2述語項の第1変数(Friend(x, y)のx)とが一致すること、第2述語項の第2変数(Friend(x, y)のy)と第3述語項の第1変数(Friend(y, x)のy)とが一致すること、および第2述語項の第1変数(Friend(x, y)のx)と第3述語項の第2変数(Friend(y, x)のx)とが一致すること、である。このうち、親ルールであるID2のルールにおける一致条件と共通しないものは、第2述語項の第1変数と第3述語項の第2変数とが一致すること、である。そこで、前処理部103は、ID2に係る代入データ114から、第2述語項の第1変数と第3述語項の第2変数とが一致するものを抽出することで、ID3に係る代入データ114に相当するデータを抽出する。
前処理部103は、例えば、子ルールに係る代入データ114を親ルールに係る代入データ114からコピーして作成してもよいし、親ルールに係る代入データ114のうち、子ルールに係る代入データ114に相当するデータが含まれる行番号または記憶部11のアドレスを特定してもよい。
図12に示す例においては、子ルールであるID3のルールにおける一致条件は、第1述語項の第1変数(Smoke(x)のx)と第2述語項の第1変数(Friend(x, y)のx)とが一致すること、第2述語項の第2変数(Friend(x, y)のy)と第3述語項の第1変数(Friend(y, x)のy)とが一致すること、および第2述語項の第1変数(Friend(x, y)のx)と第3述語項の第2変数(Friend(y, x)のx)とが一致すること、である。このうち、親ルールであるID2のルールにおける一致条件と共通しないものは、第2述語項の第1変数と第3述語項の第2変数とが一致すること、である。そこで、前処理部103は、ID2に係る代入データ114から、第2述語項の第1変数と第3述語項の第2変数とが一致するものを抽出することで、ID3に係る代入データ114に相当するデータを抽出する。
前処理部103は、例えば、子ルールに係る代入データ114を親ルールに係る代入データ114からコピーして作成してもよいし、親ルールに係る代入データ114のうち、子ルールに係る代入データ114に相当するデータが含まれる行番号または記憶部11のアドレスを特定してもよい。
図13は、ID2に係る代入データから、ID4に係る代入データを抽出する処理の例を示す図である。第1の抽出条件に基づいて抽出された子ルールに係る代入データ114は、図12に示すように親ルールの行から抽出される。他方、第2の抽出条件に基づいて抽出された子ルールに係る代入データ114は、図13に示すように、親ルールの行のうち共通する述語項に係る列から抽出されることとなる。
前処理部103は、子ルールに係る代入データ114を抽出すると、その代入データ114を推論処理部104に出力する(ステップS34)。
前処理部103は、集約ルール113の全ての行についてステップS32からステップS34の処理を実行すると、処理を終了する。
前処理部103は、集約ルール113の全ての行についてステップS32からステップS34の処理を実行すると、処理を終了する。
次に、上記ステップS4に係る推論処理部104の処理について詳細に説明する。図14は、第1の実施形態に係る推論処理部の処理を示すフローチャートである。
推論処理部104は、入力ルール111に係るすべてのルールについて、代入処理部102が生成した代入データまたは前処理部103から取得した代入データにおいてNULLとなっている原子式の真偽値を推論する(ステップS41)。推論処理部104は、機械学習などの任意のアルゴリズム(たとえば回帰モデルやマルコフネットワークなどのアルゴリズム)を用いてNULL値の推定値を推論することができる。そして、推論処理部104は、推論結果を出力装置3に送信し(ステップS42)、処理を終了する。
推論処理部104は、入力ルール111に係るすべてのルールについて、代入処理部102が生成した代入データまたは前処理部103から取得した代入データにおいてNULLとなっている原子式の真偽値を推論する(ステップS41)。推論処理部104は、機械学習などの任意のアルゴリズム(たとえば回帰モデルやマルコフネットワークなどのアルゴリズム)を用いてNULL値の推定値を推論することができる。そして、推論処理部104は、推論結果を出力装置3に送信し(ステップS42)、処理を終了する。
《効果の説明》
上述したように、第1の実施形態に係る論理計算装置1は、包含抽出部101によって、入力ルール111を集約した集約ルール113を生成する。これにより、代入処理部102で行う代入操作の回数を減らし、論理計算装置1における推論処理全体の速度を高速化することができる。また、前処理部103が親データの代入データ114の行番号やアドレスを、子データの代入データ114として推論処理部104に出力する場合、論理計算装置1が生成する代入データ114の量を減少させることができるため、論理計算装置1は、記憶部11の容量が少ない場合においても推論処理を行うことができる。
上述したように、第1の実施形態に係る論理計算装置1は、包含抽出部101によって、入力ルール111を集約した集約ルール113を生成する。これにより、代入処理部102で行う代入操作の回数を減らし、論理計算装置1における推論処理全体の速度を高速化することができる。また、前処理部103が親データの代入データ114の行番号やアドレスを、子データの代入データ114として推論処理部104に出力する場合、論理計算装置1が生成する代入データ114の量を減少させることができるため、論理計算装置1は、記憶部11の容量が少ない場合においても推論処理を行うことができる。
〈第2の実施形態〉
《構成の説明》
図15は、第2の実施形態における論理計算装置の全体構成を示したブロック図である。
第2の実施形態に係る論理計算装置1は、利用者によって入力された入力データ112および入力ルール111に基づいてルールの学習処理を行う。第2の実施形態に係る論理計算装置1は、第1の実施形態の推論処理部104に代えて学習処理部105を備える。学習処理部105は、代入処理部102が生成した代入データ114および前処理部103から取得した代入データ114を用いて入力ルール111を更新する学習処理を行う。
《構成の説明》
図15は、第2の実施形態における論理計算装置の全体構成を示したブロック図である。
第2の実施形態に係る論理計算装置1は、利用者によって入力された入力データ112および入力ルール111に基づいてルールの学習処理を行う。第2の実施形態に係る論理計算装置1は、第1の実施形態の推論処理部104に代えて学習処理部105を備える。学習処理部105は、代入処理部102が生成した代入データ114および前処理部103から取得した代入データ114を用いて入力ルール111を更新する学習処理を行う。
《動作の説明》
図16は、第2の実施形態に係る論理計算装置による学習処理を示すフローチャートである。
利用者は、入力装置2を介して論理計算装置1に入力データ112および入力ルール111を入力する。論理計算装置1は、入力データ112および入力ルール111を記憶部11に記録する。利用者は、入力装置2を介して論理計算装置1に学習処理の開始指示を入力する。
図16は、第2の実施形態に係る論理計算装置による学習処理を示すフローチャートである。
利用者は、入力装置2を介して論理計算装置1に入力データ112および入力ルール111を入力する。論理計算装置1は、入力データ112および入力ルール111を記憶部11に記録する。利用者は、入力装置2を介して論理計算装置1に学習処理の開始指示を入力する。
論理計算装置1が学習処理の開始指示を受け付けると、論理計算装置1は、第1の実施形態と同様にステップS1からステップS3の処理を実行する。つまり、包含抽出部101が集約ルール113を作成し、代入処理部102が親ルールの代入データ114を作成し、前処理部103が子ルールの代入データ114を抽出する。なお、後述するように、2回目以降の繰り返しに係る包含抽出部101の処理および代入処理部102の処理は、1回目の処理と異なる。
次に、学習処理部105は、代入処理部102が生成した代入データ114と、前処理部103から取得した情報とを用いて学習処理を行う(ステップS5)。学習処理部105は、代入データを用いて、入力ルールの確からしさを評価する。また学習処理部105は、学習処理により入力ルール111を更新する。
学習処理部105は、学習処理の結果が学習処理の終了条件を満たすか否かを判定する(ステップS6)。学習処理の終了条件の例は、学習処理の繰り返し回数が所定回数を超えることや、ルールの確からしさの評価値が所定の閾値を超えることなどを含んでもよい。
学習処理の結果が学習処理の終了条件を満たさない場合(ステップS6:NO)、論理計算装置1は、ステップS1に処理を戻し、再度処理を行う。他方、学習処理の結果が学習処理の終了条件を満たす場合(ステップS6:YES)、論理計算装置1は、学習処理を終了する。
学習処理部105は、学習処理の結果が学習処理の終了条件を満たすか否かを判定する(ステップS6)。学習処理の終了条件の例は、学習処理の繰り返し回数が所定回数を超えることや、ルールの確からしさの評価値が所定の閾値を超えることなどを含んでもよい。
学習処理の結果が学習処理の終了条件を満たさない場合(ステップS6:NO)、論理計算装置1は、ステップS1に処理を戻し、再度処理を行う。他方、学習処理の結果が学習処理の終了条件を満たす場合(ステップS6:YES)、論理計算装置1は、学習処理を終了する。
次に、上記ステップS1に係る包含抽出部101の処理について詳細に説明する。図17は、第2の実施形態に係る包含抽出部の2回目以降の繰り返しに係る処理を示すフローチャートである。
包含抽出部101は、入力ルール111のうちステップS5の学習処理によって追加されたルールを、集約ルール113として初期化し、追加する(ステップS111)。つまり、包含抽出部101は、すでに包含関係が判定されたルールのセットに係る集約ルール113をそのまま保持する。これにより、包含抽出部101は、2回目の繰り返し以降の計算処理を低減することができる。以下、包含抽出部101は、第1の実施形態と同様にステップS12からステップS16の処理を実行する。
包含抽出部101は、入力ルール111のうちステップS5の学習処理によって追加されたルールを、集約ルール113として初期化し、追加する(ステップS111)。つまり、包含抽出部101は、すでに包含関係が判定されたルールのセットに係る集約ルール113をそのまま保持する。これにより、包含抽出部101は、2回目の繰り返し以降の計算処理を低減することができる。以下、包含抽出部101は、第1の実施形態と同様にステップS12からステップS16の処理を実行する。
次に、上記ステップS2に係る代入処理部102の処理について詳細に説明する。図18は、第2の実施形態に係る代入処理部の2回目以降の繰り返しに係る処理を示すフローチャートである。
代入処理部102は、集約ルール113のうち代入データ114が存在しないものの親ルールのIDを特定し、入力ルール111のうちそのIDに関連付けられたルールの各変数に要素を代入した閉論理式を特定する(ステップS121)。つまり、代入処理部102は、すでに代入処理がなされた集約ルール113について、代入処理を行わない。これにより、代入処理部102は、2回目の繰り返し以降の代入処理回数を低減することができる。以下、代入処理部102は、第1の実施形態と同様にステップS22からステップS23の処理を実行する。
代入処理部102は、集約ルール113のうち代入データ114が存在しないものの親ルールのIDを特定し、入力ルール111のうちそのIDに関連付けられたルールの各変数に要素を代入した閉論理式を特定する(ステップS121)。つまり、代入処理部102は、すでに代入処理がなされた集約ルール113について、代入処理を行わない。これにより、代入処理部102は、2回目の繰り返し以降の代入処理回数を低減することができる。以下、代入処理部102は、第1の実施形態と同様にステップS22からステップS23の処理を実行する。
次に、上記ステップS5に係る学習処理部105の処理について詳細に説明する。図19は、第2の実施形態に係る学習処理部の処理を示すフローチャートである。
学習処理部105は代入データを参照し、入力ルール111の確からしさを評価する(ステップS51)。ここで学習処理部105は、入力データ112の内容が入力ルール111に対してどの程度正しいかを示す評価値を算出する。例えば、学習処理部105は、各ルールに係る代入データ114において、ルールが真となる割合を評価値として算出することができる。例えば、学習処理部105は、任意の機械学習アルゴリズム(たとえば確率的勾配降下法など)を用いてルールの尤度を計算し、これを評価値としてもよい。学習処理部105は、評価値が所定値未満となるルールを、入力ルール111から削除する(ステップS52)。
学習処理部105は代入データを参照し、入力ルール111の確からしさを評価する(ステップS51)。ここで学習処理部105は、入力データ112の内容が入力ルール111に対してどの程度正しいかを示す評価値を算出する。例えば、学習処理部105は、各ルールに係る代入データ114において、ルールが真となる割合を評価値として算出することができる。例えば、学習処理部105は、任意の機械学習アルゴリズム(たとえば確率的勾配降下法など)を用いてルールの尤度を計算し、これを評価値としてもよい。学習処理部105は、評価値が所定値未満となるルールを、入力ルール111から削除する(ステップS52)。
次に、学習処理部105は新たなルールを作成し、入力ルール111へルールを追加する(ステップS53)。学習処理部105は、任意のアルゴリズムによって新たなルールを生成してよい。たとえば、学習処理部105は、過去に入力ルール111に設定されていない組み合わせのルールをランダムに作成し、入力ルール111として追加することができる。
《効果の説明》
上述したように、第2の実施形態に係る論理計算装置1は、2回目以降の繰り返し処理において、包含抽出部101の処理および代入処理部102の処理に関して、繰り返し以前にすでに計算された情報を使いまわすことで、処理を省略し、高速化することができる。これは包含関係を判定し、ルールを集約した場合でも、ルールを集約しない場合と同様に適用することが可能となる。
上述したように、第2の実施形態に係る論理計算装置1は、2回目以降の繰り返し処理において、包含抽出部101の処理および代入処理部102の処理に関して、繰り返し以前にすでに計算された情報を使いまわすことで、処理を省略し、高速化することができる。これは包含関係を判定し、ルールを集約した場合でも、ルールを集約しない場合と同様に適用することが可能となる。
以上、図面を参照して複数の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
〈基本構成〉
図20は、論理計算装置の基本構成を示す概略ブロック図である。
上述した実施形態では、論理計算装置1の実施形態として図1または図15に示す構成について説明したが、論理計算装置1の基本構成は、図20に示すとおりである。
すなわち、論理計算装置1は、包含抽出部101を基本構成として備える。
図20は、論理計算装置の基本構成を示す概略ブロック図である。
上述した実施形態では、論理計算装置1の実施形態として図1または図15に示す構成について説明したが、論理計算装置1の基本構成は、図20に示すとおりである。
すなわち、論理計算装置1は、包含抽出部101を基本構成として備える。
包含抽出部101は、1つの述語と1つ以上の変数とからなる複数の述語項を含む複数の述語論理式から、述語論理式のセットであって、第1の述語論理式の各変数に値を代入した閉論理式の集合が第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する述語論理式のセットを抽出する。
これにより、論理計算装置1は、述語論理式の計算時間を抑えることができる。
これにより、論理計算装置1は、述語論理式の計算時間を抑えることができる。
なお、論理計算装置1が行う処理の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
この出願は、2017年12月27日に出願された日本国特願2017−252612を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、論理計算装置、論理計算方法、およびプログラムに適用してもよい。
1 論理計算装置
2 入力装置
3 出力装置
10 処理部
11 記憶部
101 包含抽出部
102 代入処理部
103 前処理部
104 推論処理部
111 入力ルール
112 入力データ
113 集約ルール
114 代入データ
105 学習処理部
2 入力装置
3 出力装置
10 処理部
11 記憶部
101 包含抽出部
102 代入処理部
103 前処理部
104 推論処理部
111 入力ルール
112 入力データ
113 集約ルール
114 代入データ
105 学習処理部
Claims (8)
- 1つの述語と1つ以上の変数とからなる複数の述語項をそれぞれ含む複数の述語論理式から、第1と第2の述語論理式のセットであって、前記第1の述語論理式の各変数に値を代入した閉論理式の集合が前記第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する第1と第2の述語論理式のセットを抽出する包含抽出部
を備える論理計算装置。 - 前記抽出された第1と第2の述語論理式のセットのうち、前記第1の述語論理式に係る複数の閉論理式の述語項に、予め定められた真偽値を代入する代入処理部
をさらに備える請求項1に記載の論理計算装置。 - 前記複数の閉論理式に係る真偽値を用いて、前記抽出された第1と第2の述語論理式のセットのうち前記第2の述語論理式に係る複数の閉論理式に係る真偽値を抽出する前処理部
をさらに備える請求項2に記載の論理計算装置。 - 前記包含抽出部は、各述語論理式について、複数の述語項で同一の値をとるべき変数の条件を特定し、各述語論理式に係る前記変数の条件に基づいて前記第1と第2の述語論理式のセットを抽出する
請求項1から請求項3の何れか1項に記載の論理計算装置。 - 前記第1の述語論理式に係る前記述語項を構成する述語および前記述語項の数が、前記第2の述語論理式に係る前記述語項を構成する述語および前記述語項の数と一致し、かつ第1の述語論理式における前記変数の条件の全部が前記第2の述語論理式における前記変数の条件の一部と一致する
請求項4に記載の論理計算装置。 - 前記第1の述語論理式に係る複数の述語の一部が、前記第2の述語論理式に係る述語の全部と一致し、かつ前記第1の述語論理式と前記第2の述語論理式とで共通する述語に係る前記変数の条件において、第1の述語論理式における前記変数の条件の全部が前記第2の述語論理式における前記変数の条件の一部と一致する
請求項4に記載の論理計算装置。 - コンピュータを用いて行われる論理計算方法であって、
1つの述語と1つ以上の変数とからなる複数の述語項をそれぞれ含む複数の述語論理式から、第1と第2の述語論理式のセットであって、前記第1の述語論理式の各変数に値を代入した閉論理式の集合が前記第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する述語論理式のセットを抽出すること
を含む論理計算方法。 - コンピュータに、
1つの述語と1つ以上の変数とからなる複数の述語項を含む複数の述語論理式から、第1と第2の述語論理式のセットであって、前記第1の述語論理式の各変数に値を代入した閉論理式の集合が前記第2の述語論理式の各変数に値を代入した閉論理式の集合を包含する述語論理式のセットを抽出すること
を実行させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017252612 | 2017-12-27 | ||
JP2017252612 | 2017-12-27 | ||
PCT/JP2018/046622 WO2019131342A1 (ja) | 2017-12-27 | 2018-12-18 | 論理計算装置、論理計算方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019131342A1 JPWO2019131342A1 (ja) | 2020-07-02 |
JP6828834B2 true JP6828834B2 (ja) | 2021-02-10 |
Family
ID=67067321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019561549A Active JP6828834B2 (ja) | 2017-12-27 | 2018-12-18 | 論理計算装置、論理計算方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200349454A1 (ja) |
JP (1) | JP6828834B2 (ja) |
WO (1) | WO2019131342A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210065016A1 (en) * | 2019-08-27 | 2021-03-04 | Sap Se | Automatic generation of computing artifacts for data analysis |
WO2021064891A1 (ja) * | 2019-10-02 | 2021-04-08 | 日本電気株式会社 | 推論知識構築支援装置、推論知識構築支援方法、及びコンピュータ読み取り可能な記録媒体 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0358230A (ja) * | 1989-07-27 | 1991-03-13 | Toshiba Corp | プロダクションシステムにおけるルール実行装置 |
JPH0793161A (ja) * | 1993-09-28 | 1995-04-07 | Toshiba Corp | 推論装置 |
JPH07306789A (ja) * | 1994-05-10 | 1995-11-21 | Nippon Steel Corp | エキスパートシステムにおける推論制御方法および装置 |
-
2018
- 2018-12-18 US US16/958,408 patent/US20200349454A1/en not_active Abandoned
- 2018-12-18 WO PCT/JP2018/046622 patent/WO2019131342A1/ja active Application Filing
- 2018-12-18 JP JP2019561549A patent/JP6828834B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2019131342A1 (ja) | 2019-07-04 |
US20200349454A1 (en) | 2020-11-05 |
JPWO2019131342A1 (ja) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015103964A1 (en) | Method, apparatus, and device for determining target user | |
CN102903008B (zh) | 用于计算机问答的方法及系统 | |
Vistro et al. | The cricket winner prediction with application of machine learning and data analytics | |
WO2017159403A1 (ja) | 予測システム、方法およびプログラム | |
Fernández-Francos et al. | One-class convex hull-based algorithm for classification in distributed environments | |
WO2022116689A1 (zh) | 图数据处理方法、装置、计算机设备和存储介质 | |
JP6828834B2 (ja) | 論理計算装置、論理計算方法、およびプログラム | |
JP6311851B2 (ja) | 共クラスタリングシステム、方法およびプログラム | |
Liu et al. | Self-supervised temporal graph learning with temporal and structural intensity alignment | |
WO2017165693A4 (en) | Use of clinical parameters for the prediction of sirs | |
JP6860084B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JPWO2019092868A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN114723014A (zh) | 张量切分模式的确定方法、装置、计算机设备及介质 | |
JP7063274B2 (ja) | 情報処理装置、ニューラルネットワークの設計方法及びプログラム | |
JP7256766B2 (ja) | 推測根拠分析装置及び推測根拠分析方法 | |
JP6822220B2 (ja) | 推論結果可視化装置、推論結果可視化方法、及びプログラム | |
Nogueira et al. | Fuzzy affective player models: A physiology-based hierarchical clustering method | |
Lokhande et al. | Accelerating column generation via flexible dual optimal inequalities with application to entity resolution | |
US11699038B2 (en) | Information processing apparatus | |
Weerasundara et al. | Comparative analysis of named entity recognition in the dungeons and dragons domain | |
JP2022007311A (ja) | 学習モデルからの情報漏洩リスクを評価するシステム | |
CN111368337A (zh) | 保护隐私的样本生成模型构建、仿真样本生成方法及装置 | |
Saxsena et al. | Feature Selection Using Heterogeneous Data Indexes: a data science perspective | |
KR102663160B1 (ko) | 효율적인 생성형 인공지능 모델의 압축을 위한 프루닝 방법 및 시스템 | |
JP7476984B2 (ja) | 行動予測方法、行動予測装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200117 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210104 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6828834 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |