"論理で表わされた知識をもとに推論を実行するための論理推論システムであって、前記知識を、後ろ向き推論の形式のデータフローグラフであって、複数の演算ノードおよび前記演算ノードの間を各々つなぐ複数のエッジから成るデータフローグラフを用いて表現し、前記複数の演算ノードは、前記論理の各種演算に対応する演算ノードを含み、前記演算ノードに対応づけられるシンボルは、前記論理における項に対して予め設定された数値に変換されたものが割り当てられ、前記データフローグラフ上での各ノードの発火に基づくトークン伝搬により、前記データフローグラフをAND/ORグラフへ展開する展開手段と、前記AND/ORグラフ上での各前記ノードの発火に基づく前記トークン伝搬により、前記論理に対する導出を実行する推論実行部とを備える、論理推論システム。前記AND/ORグラフにおける前記推論実行部は、各前記ノードが並列独立に発火し、トークンを生成して必要な事実節の探索を行なう順伝播処理と、補正情報を表わすトークンを逆方向に流し、それに確率的な選択を施すことにより変数間の矛盾を解消する逆伝播処理とを繰返し実行することにより、演繹推論を実行する推論手段を含む、請求項1記載の論理推論システム。前記データフローグラフでは、前記論理を表わす前記知識を述語論理で表現し、それをもとに前記演算ノードとその間を各々つなぐ前記複数のエッジにより前記論理の構造を表わす前記データフローグラフを生成する変換手段を備える、請求項1または2に記載の論理推論システム。計算学習装置であって、複数の演算ノードおよび前記演算ノードの間を各々つなぐ複数のエッジにより計算手続きを表わすデータフローグラフを用いて順伝播計算を実行する計算実行部を備え、前記複数の演算ノードは、プログラムの各種演算に対応する演算ノードを含み、前記計算実行部の計算結果に基づき外部から与えられる教師値や制約を満足するための補正情報を算出する補正情報算出部と、前記補正情報に基づき前記データフローグラフの中で局所的な補正情報を表わすトークンを逆方向に伝搬し、それらトークンに確率的な選択を施すことにより定数の学習や制約に基づく変数値の算出を行なう処理部とをさらに備える、計算学習装置。前記計算学習装置において、前記トークンが持つ前記局所的な補正情報を、各ノードにおける逆算によって求める、請求項4記載の計算学習装置。論理で表わされた知識をもとに推論を実行するための論理推論方法であって、前記知識を、後ろ向き推論の形式のデータフローグラフであって、複数の演算ノードおよび前記演算ノードの間を各々つなぐ複数のエッジから成るデータフローグラフを用いて表現し、前記複数の演算ノードは、前記論理の各種演算に対応する演算ノードを含み、前記演算ノードに対応づけられるシンボルは、前記論理における項に対して予め設定された数値に変換されたものが割り当てられ、前記データフローグラフ上での各ノードの発火に基づくトークン伝搬により、前記データフローグラフをAND/ORグラフへ展開するステップと、前記AND/ORグラフ上での各前記ノードの発火に基づく前記トークン伝搬により、前記論理に対する導出を実行するステップとを備える、論理推論方法。図50は、これまで記号処理AIの分野で提案されてきた代表的なモデルを示す図である。図50の第2列には、知識がグラフ表現されているかを示している。また第3、4列には、演繹推論の効率を決めるファクターを示している。ここで、第2列において、○は、演算効率の点から望ましいことを示し、△は、グラフ表現はされるものの、演算処理を直接的に導くものではないことを意味し、×はグラフ表現が用いられないことを示す。また、第3,4列においては、○は、グラフ表現が演繹処理の過程で、原理的に計算効率が高い処理方法が採用されていることを意味し、△は、演繹の原理としては効率的非効率的とは一概に言えないことを意味し、×は、演繹の原理としては、むしろ非効率的であることを示す。後向き推論が前向き推論より評価が高いのは、後向き推論ではゴールを念頭において探索の絞り込みをするため、事実の爆発的生成がないからである。一方、ニューラルネットの研究では、知識は記号やシンボルではなく、脳内のニューロ素子を真似て作ったネットワークの繋がり情報として非明示的に表現される。その人工的なネットワクを、事例に基づいて所定の学習則に従って改変することで、事例の背後にある知識を帰納的に構成しようとする。この方式に基づき、これまで様々なネットワークトポロジーや学習則が提案されており、パターン認識等の分野では実用化例も報告されている。図50の記号処理AIのモデルは、a知織表現とb演繹推論の観点から主としてデザインされたもので、これにc学習機能を盛り込むことは難しい技術課題である。例からの学習として行なわれてきた機械学習の研究はそれに挑戦してきたが、記号の持つ離散性と事例情報の持つあいまい性やノイズとの間のギャップを埋めることは多くの方法で実現できていない。また、図50の一番下の確率論理プログラミングは、重み付けされた述語論理を元にペイジアンネットワークを生成し、その上で確率推論を行なうことで、知識のあいまい性を衣現している。ただ、この方法の場合、述語論理からネットワークの変換の段階で変数を消去して命題論理化してしまうため、述語論理特有の汎用な知識表現ができない上、出来上がるグラフの規模も、エルブラン基底の要素すべてをノードとして持つという膨大なものとなる。また学習も、そのように網羅的に用意されたノードの条件付き確率の最適化であり、新しい述語の生成や、論理構造の変更といったことは行なえない。一方、ニューラルネットは、よりC学習の機能に特化したシステムである。このモデルの困難性はむしろ出来上がった知識の非明示性にあり、学習によって構築された知識を人間が解釈抽出できないが故に、人間がそれを修正活用したり、別のアーキテクチャ上に移植するといったことができないでいる。本発明は、上記のような問題を解決するためになされたものであって、その目的は、学習機能を盛り込みつつ演繹推論を実行し、構築された知識の構造がグラフにおいて明示されるような論理推論システム、計算学習装置および論理推論方法を提供することである。この発明の他の目的は、演繹推論のための論理プログラム、または、算術演算および論理演算を実行するプログラムを学習により、ユーザが所望する演算結果を出力するプログラムを作成する計算学習装置を提供することである。この発明の1つの局面にしたがうと、論理で表わされた知識をもとに推論を実行するための論理推論システムであって、知識を、後ろ向き推論の形式のデータフローグラフであって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジから成るデータフローグラフを用いて表現し、複数の演算ノードは、論理の各種演算に対応する演算ノードを含み、演算ノードに対応づけられるシンボルは、論理における項に対して予め設定された数値に変換されたものが割り当てられ、データフローグラフ上での各ノードの発火に基づくトークン伝搬により、データフローグラフをAND/ORグラフへ展開する展開手段と、AND/ORグラフ上での各ノードの発火に基づくトークン伝搬により、論理に対する導出を実行する推論実行部とを備える。好ましくは、AND/ORグラフにおける推論実行部は、各ノードが並列独立に発火し、トークンを生成して必要な事実節の探索を行なう順伝播処理と、補正情報を表わすトークンを逆方向に流し、それに確率的な選択を施すことにより変数間の矛盾を解消する逆伝播処理とを繰返し実行することにより、演繹推論を実行する推論手段を含む。好ましくは、データフローグラフでは、論理を表わす知識を述語論理で表現し、それをもとに演算ノードとその間を各々つなぐ複数のエッジにより論理の構造を表わすデータフローグラフを生成する変換手段を備える。好ましくは、推論実行部において、トークンとして逆伝搬される補正情報を元に確率的に数値を補正することによりデータフローグラフ中の定数をより最適な値へと近づける定数学習手段を含む。好ましくは、データフローグラフにおいて、ランダムに生成された節に対応する部分木の付加を行う第1のトポロジー変更手段をさらに備える。好ましくは、データフローグラフにおいて、偽枝を生成する節に対応する部分木の削除を行う第2のトポロジー変更手段をさらに備える。この発明の他の局面に従うと、計算学習装置であって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジにより計算手続きを表わすデータフローグラフを用いて順伝播計算を実行する計算実行部を備え、複数の演算ノードは、プログラムの各種演算に対応する演算ノードを含み、計算実行部の計算結果に基づき外部から与えられる教師値や制約を満足するための補正情報を算出する補正情報算出部と、補正情報に基づきデータフローグラフの中で局所的な補正情報を表わすトークンを逆方向に伝搬し、それらトークンに確率的な選択を施すことにより定数の学習や制約に基づく変数値の算出を行なう処理部とをさらに備える。好ましくは、計算学習装置において、トークンが持つ局所的な補正情報を、各ノードにおける逆算によって求める。好ましくは、計算学習装置において、トークンが持つ局所的な補正情報を、各ノードにおける微分係数の伝搬によって求める。好ましくは、計算手続きは、知識を表す論理プログラムである。好ましくは、計算手続きは、算術演算および論理演算の処理を実行するためのプログラムである。好ましくは、計算手続きは、算術演算を組み合わせてできる線形、または非線形の連立方程式である。この発明のさらに他の局面に従うと、論理で表わされた知識をもとに推論を実行するための論理推論方法であって、知識を、後ろ向き推論の形式のデータフローグラフであって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジから成るデータフローグラフを用いて表現し、複数の演算ノードは、論理の各種演算に対応する演算ノードを含み、演算ノードに対応づけられるシンボルは、論理における項に対して予め設定された数値に変換されたものが割り当てられ、データフローグラフ上での各ノードの発火に基づくトークン伝搬により、データフローグラフをAND/ORグラフへ展開するステップと、AND/ORグラフ上での各ノードの発火に基づくトークン伝搬により、論理に対する導出を実行するステップとを備える。好ましくは、論理に対する導出を実行するステップは、各ノードが並列独立に発火し、トークンを生成して必要な事実節の探索を行なう順伝播処理と、補正情報を表わすトークンを逆方向に流し、それに確率的な選択を施すことにより変数間の矛盾を解消する逆伝播処理とを繰返し実行することにより、演繹推論を実行するステップを含む。好ましくは、データフローグラフでは、論理を表わす知識を述語論理で表現し、それをもとに演算ノードとその間を各々つなぐ複数のエッジにより述語論理の構造を表わすデータフローグラフを生成する変換手段を備える。この発明のさらに他の局面に従うと、計算学習方法であって、複数の演算ノードおよび演算ノードの間を各々つなぐ複数のエッジにより計算手続きを表わすデータフローグラフを用いて順伝播計算を実行するステップを備え、複数の演算ノードは、プログラムの各種演算に対応する演算ノードを含み、順伝播計算の計算結果に基づき外部から与えられる教師値や制約を満足するための補正情報を算出するステップと、補正情報に基づきデータフローグラフの中で局所的な補正情報を表わすトークンを逆方向に伝搬し、それらトークンに確率的な選択を施すことにより定数の学習や制約に基づく変数値の算出を行なうステップとをさらに備える。好ましくは、補正情報を算出するステップにおいては、トークンが持つ局所的な補正情報を、各ノードにおける逆算によって求める。好ましくは、補正情報を算出するステップにおいては、トークンが持つ局所的な補正情報を、各ノードにおける微分係数の伝搬によって求める。この発明によれば、学習機能を盛り込みつつ演繹推論が実行され、構築された知識の構造がグラフにおいて明示される。また、この発明によれば、演繹推論のための論理プログラム、または、算術演算および論理演算を実行するプログラムを学習により、ユーザが所望する演算結果を出力するプログラムが作成される。以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部分には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。1.概要本実施の形態に係る計算処理装置100は、外部から与えられたプログラム以下、初期プログラムともよぶ、特に、述語論理に基づく論理プログラムについての導出処理を実行する。なお、プログラムとしては、このような述語論理に基づく論理プログラムだけではなく、上述した特許文献1国際公開2010/047388号公報に開示されるような算術演算および論理演算等からなるプログラムでもよい。ただし、以下では、述語論理に基づく論理プログラムについての導出処理を中心として説明する。さらに、本実施の形態に係る計算処理装置100は、後に説明するように、学習により、初期プログラムを修正し、より適切な演算結果を出力するプログラムを作成する処理を行なうことも可能である。計算処理装置は、大まかに分けて、次の3つの処理を行なう。1論理プログラムのネットワークデータフローグラフへの変換2ネットワークを用いた計算の実行3ネットワークの修正以下、各処理の概要を説明する。1プログラムのネットワークへの変換]計算処理装置100は、与えられた初期プログラムに基づいて、ネットワーク型のプログラムのグラフ表現、より具体的には、データフローグラフを作成する。すなわち、計算処理装置100は、論理プログラムである初期プログラムの述語論理の構造を表現するネットワークを作成する。本実施の形態では、計算処理装置100が初期プログラムから作成したプログラムのグラフ表現のことを、KTNKnowledgeTransitiveNetwork;知識推移ネットワーク形式のネットワークと呼ぶ。KTN形式のネットワークは、各々が演算処理を表わす複数の演算ノードと、複数の演算ノードのうちいずれか2つの演算ノードを各々つなぐ複数のエッジとにより、述語論理の構造を表わす。エッジは、演算順序を表わす方向を持つ。2ネットワークを用いた計算の実行]計算処理装置100は、作成したネットワークを用いて計算を実行する。すなわち、計算処理装置100は、入力値に対し、エッジで表わされる順序に従って、演算ノードによる演算を施す。本実施の形態では、計算処理装置100は、演算に必要な情報を持つシャトルエージェント以下、単にエージェントとよぶに対して、各演算ノードにより演算を施す。演算ノードは、1つまたは複数のエージェントの入力を受け付け、所定の規則に基づいて、エッジから入力されたエージェントに対し演算を行ない、演算後のエージェントをエッジに出力する。演算ノードから出力されたエージェントは、エッジの行き先の演算ノードに入力される。エージェントの詳細、および、エージェントに対する処理規則の詳細については後述する。3ネットワークの修正]計算処理装置100は、学習アルゴリズムを用いて、ネットワークを用いた計算結果に基づいてネットワークを修正する。ネットワークの修正方法については、後述する。計算処理装置100は、2ネットワークを用いた計算の実行により、述語論理に対する推論導出を実行することができる。さらに、計算処理装置100は、必要に応じて、3ネットワークの修正とを繰り返すことにより、ユーザが所望する値を出力するネットワークしたがって、論理プログラムを作成することができる。2.ハードウェア構成本実施の形態に係る計算処理装置100のハードウェア構成について、図1を参照して説明する。図1は、本実施の形態に係る計算処理装置100の構成をブロック図形式で表す図である。計算処理装置100は、コンピュータ本体102と、表示装置としてのモニタ104と、入力装置としてのキーボード110およびマウス112とを備える。モニタ104、キーボード110、およびマウス112は、コンピュータ本体102とバス105を介して接続される。コンピュータ本体102は、フレキシブルディスクFlexibleDisc、以下FDと呼ぶドライブ106と、光ディスクドライブ108と、CPUCentralProcessingUnit120と、メモリ122と、直接アクセスメモリ装置、たとえば、ハードディスク124と、通信インターフェイス128とを含む。これらの部品は、互いにバス105で接続されている。FDドライブ106は、FD116に情報を読み書きする。光ディスクドライブ108は、CD-ROMCompactDiscRead-OnlyMemory118等の光ディスク上の情報を読み込む。通信インターフェイス128は、外部とデータの授受を行なう。なお、CD-ROM118は、コンピュータ本体に対してインストールされるプログラム等の情報を記録可能な媒体であれば、他の媒体、たとえば、DVD-ROMDigitalVersatileDiscやメモリーカードなどでもよく、その場合は、コンピュータ本体102には、これらの媒体を読み取ることが可能なドライブ装置が設けられる。また、バス105には、カセット形式の磁気テープを着脱自在に装着してアクセスする磁気テープ装置が接続されていてもよい。メモリ122は、ROMReadOnlyMemoryおよびRAMRandomAccessMemoryを含む。ハードディスク124は、初期プログラム131と、ネットワーク作成プログラム132と、ネットワーク修正プログラム133と、ネットワーク情報134と、ノード演算定義135と、学習情報136とを格納する。初期プログラム131は、論理プログラムにおける導出または論理プログラムの初期プログラムからの改変による作成の基礎となる論理プログラムである。ハードディスク124は、ユーザが作成した論理プログラムを初期プログラム131として格納することができる。初期プログラム131は、FD116またはCD-ROM118等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信インターフェイス128を経由して供給されてもよい。ネットワーク作成プログラム132は、初期プログラム131に基づいて、初期プログラム131に対応するネットワークデータフローグラフ、展開データフローグラフを作成する。また、ネットワーク作成プログラム132は、作成したネットワークに関するネットワーク情報134をハードディスク124に格納する。ネットワーク修正プログラム133は、ネットワーク作成プログラム132が作成したネットワークを修正する。ネットワーク情報134は、ネットワーク作成プログラム132が作成したネットワークに関する情報、および、ネットワーク修正プログラム133がネットワークによる演算あるいはネットワークの修正の際に作成する情報を含む。ノード演算定義135は、ネットワークに含まれる演算ノードによる演算の規則を表わす。ノード演算定義135は、演算ノードを特定する情報演算コード、演算ノードへ入力されるエッジの数入力数などを含む。ノード演算定義135の詳細については、後述する。学習情報136は、ネットワークにおける導出処理やネットワークの修正に必要な情報である。学習情報136は、例えば、ユーザが計算結果として所望する教師値や、学習途中において更新される定数値、数値トークンの値、トークンに対する補正値、データフローグラフ上での発火と転送の履歴の情報トークンファイヤ系図と呼ぶなどを含む。ここで、ノード演算定義135については、ユーザが入力装置を利用して作成したものを用いることができる。ただし、これらは、FD116またはCD-ROM118等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信インターフェイス128を経由して供給されてもよい。また、ネットワーク作成プログラム132およびネットワーク修正プログラム133は、FD116、またはCD-ROM118等の記憶媒体によって供給されてもよいし、他のコンピュータにより通信インターフェイス128を経由して供給されてもよい。演算処理装置として機能するCPU120は、メモリ122をワーキングメモリとして、上述した各プログラムに対応した処理を実行する。ネットワーク作成プログラム132およびネットワーク修正プログラム133は、上述の通り、CPU120により実行されるソフトウェアである。一般的に、こうしたソフトウェアは、CD-ROM118、FD116等の記憶媒体に格納されて流通し、光ディスクドライブ108またはFDドライブ106等により記憶媒体から読み取られてハードディスク124に一旦格納される。または、計算処理装置100がネットワークに接続されている場合には、ネットワーク上のサーバから一旦ハードディスク124にコピーされる。そうしてさらにハードディスク124からメモリ122中のRAMに読み出されてCPU120により実行される。なお、ネットワーク接続されている場合には、ハードディスク124に格納することなくRAMに直接ロードして実行するようにしてもよい。図1に示したコンピュータのハードウェア自体およびその動作原理は一般的なものである。したがって、本発明の機能を実現するに当り本質的な部分は、FD116、CD-ROM118、ハードディスク124等の記憶媒体に記憶されたソフトウェアである。3.機能的構成図2を参照して、本実施の形態に係る計算処理装置100の機能的構成について説明する。図2は、本実施の形態に係る計算処理装置100の機能的構成をブロック図形式で示す図である。計算処理装置100は、外部からデータを受け付ける入力部210と、演算部220と、演算部220の演算結果を外部に出力する出力部230と、記憶部240とを備える。演算部220は、記憶部240に格納されたデータに対して演算を実行する。演算部220は、ネットワーク作成部222と、計算実行部226と、ネットワーク更新部228とを含む。ネットワーク作成部222は、記憶部240に格納されている初期プログラム131に基づいて、ネットワーク情報134を作成する。ネットワーク作成部222は、形式変換部224を含む。形式変換部224は、後に説明するように、論理プログラムを、後向き演繹を幅優先探索で実行するための展開データフローグラフに変換する。計算実行部226は、ネットワーク情報134と、ノード演算定義135とに基づいて、ネットワークを用いた計算を実行する。計算実行部226が行なう処理の詳細については、後述する。ネットワーク更新部228は、学習アルゴリズムを用いて、ネットワーク情報134を修正する。より詳しくは、ネットワーク更新部228は、トポロジー学習部228aを含む。このほかに、ネットワーク更新部228は、学習情報136に含まれる誤差に基づいて、ネットワークに含まれる演算ノードの定数値を修正する定数学習部を含んでもよい。トポロジー学習部228は、所定の規則に基づいて、随時、演算ノードの生成や削除、エッジの生成や削除などのネットワークの更新処理を実行する。ネットワーク更新部228が行なう処理の詳細については後述する。なお、以上の説明では、計算処理装置100は、単一のコンピュータ装置であるものとして説明したが、エージェントを用いて演算処理が実行されることから、計算処理装置100は、複数のコンピュータにより、分散処理を実行するシステムにより構成されていてもよい。本実施の形態の計算処理装置100では、以下の説明で明らかとなるように、上述した2つの技術、記号処理AIとニューラルネットのギャップを埋める新しいAIのモデルを用いて論理プログラムに対する導出処理またはネットワークの修正すなわち、ネットワークのトポロジ変更による論理プログラムの作成を実行するものである。ネットワークをベースとしたこのモデルは、記号/シンボルを明示的に信頼度とともに扱いながら、ニューラルネットの分野で開発されてきた学習則を動かせるようにしたもので、前述のa知識表現、b演繹、c学習の3つの機種を併せ持つ新たな推論学習システムを構築できる。このモデルを実行するためのネットワークを、上述のとおり、知識推移ネットワークKnowledgeTransitiveNetworkKTNと呼ぶ。このモデルは、以下の説明で明らかとなるように、先に出願済みですでに公開された特許文献1の国際公開2010/047388号公報に開示されたモデルであって、算術演算および論理演算を実行するプログラムのためのアルゴリズム推移ネットワークAlgorithmicallyTranstciveNetworkATNを基礎としつつも、以下に説明するように、述語論理におけるシンボルを扱うための改良を行なうとともに、学習方法についても、確率近接法と呼ばれる新しいアルゴリズムを適用するものである。図3は、KTNそのものではないが、KTNと類似の前向き推論型ネットワークにおける推論と学習の手続きを示す概念図である。図3は、一例として、IfxAthenyBという論理に対する推論と学習を行なう場合を示す。ここでは、あくまで、推論型ネットワークについての処理の概念を大枠を説明するので、個々の処理についての言及は省略する。まず、3つの定数項のノード図中、cが同時に発火して、トークンがこれらのノードから出力される。ここで、トークンは、シンボルとそのシンボルの信頼度を示す値との組として表現される。各ノードからの複数のトークンが最終ノードに到達した段階で、教師データtと比較され、信頼度が所定値以上であるトークン、すなわち正解であるトークンについて、このトークンの発火履歴を逆にたどって、補正情報が逆伝播する。このような前向き推論型ネットワークでは、矛盾を含む複数の答えが信頼度とともに、順方向に伝播するので、推論の曖昧さを取り込むことが可能であると共に、学習では、信頼度の高いトークンを選択して逆伝播させるので、学習の際に、処理しなければならないトークンの数が爆発的に増加する事態をある程度防ぐことができる。述語論理とネットワークへの変換図4は、述語論理を高レベルペトリネットでのグラフ表現に変換した例を示す図である。図4においては、以下の述語論理を扱っている。事実節:太郎は男であるTaroisamanManと表現。ルール節:男は人間であるAmanisahumanHuman←Manと表現。ゴール節:人間は誰かWhoisahuman←Humanと表現。高レベルペトリネットでは、アークにラベル付の項が付された前向きの有向グラフとして、述語論理が表現される。図5は、述語論理をKTNでのネットワーク表現に変換した例を示す図である。述語論理としては、図4と同様のものを例にとることにする。まず、述語論理を前向きデータフローグラフで表す場合を考える。発火を開始する開始ノードBeginから、Taroとのシンボルの付された定数ノードに有向エッジが向かう。次に、定数ノードTaroから、Manに相当するマージノードへ有向エッジが向かい、さらに、マージノードManから、Humanに相当するマージノードへ有向エッジが向かう。マージノードHumanから、クエリ変数qに対応するマージノードへ有向エッジが向かい、マージノードqから、探索の停止を意味する終端ノードに有向エッジが向かうグラフとなる。一方、KTNでは、ネットワーク作成部222の処理により、上述した前向きデータフローグラフを反転した、後向きデータフローグラフとして表現する。まず、発火を開始する開始ノードBeginから、qとのシンボルの付された定数ノードに有向エッジが向かう。次に、定数ノードqから、Humanに相当するマージノードへ有向エッジが向かい、さらに、マージノードHumanから、Manに相当するマージノードへ有向エッジが向かう。マージノードManからは、1つはTaroに相当する定数ノードに有向エッジが向かうとともに、2入力が等しいときに真を生成する同値ノードの一方入力へ有向エッジが向かう。一方、定数ノードTaroからは、同値ノードの他方入力へ有向エッジが向かう。同値ノードの結果が、終端ノードに渡される。以上のように、KTNでは、グラフトポロジーで知識述語論理が表現されるとともに、高レベルペトリネットとは異なり、定数と未定変数についてのラベルのみがノードに付与される。図6は、KTNにおいて、図5で説明した後向きデータフローグラフをさらに、展開数量化して演繹推論する処理を示す概念図である。図6に示されるように、後向きデータフローグラフは、ネットワーク作成部222により、展開され、AND/ORグラフとして表現されるとともに、シンボルトークンを数値トークンとして表現される。ここで、Taroが、たとえば、数値1で表現されるなら、トークンの逆伝播で、クエリ変数qの値が、1となっていることが、最終的に、答えが得られることに相当する。トークンの数値化に伴い、Manに対応するマージノードの2つの出力は、ANDで結ばれ、同値ノードは、論理真を与えるための束縛として機能することになる。以上のような構成により、KTNでは、ノードの並列発火により、後向き演繹を幅優先探索で行なう。図7は、シンボル/シンボル列を数値化する手続きを示す概念図である。図7に示すとおり、シンボル/シンボル列は数で表現される。このような数値化は、図7に示されるように、述語論理中の項個体定数、個体変数、関数を自然数と予め対応付けておき、これを大域テーブルグローバルに参照できるテーブルとして予め定義しておく。図7に示されるように、Taroが自然数であれば、数値に変換するとテーブルを参照して、1となる。また、関数wifeが7に対応づいていれば、関数wifeTaroTaroの妻は、71とコードされる。同様に、関数childに8が対応付けられていれば、childは、871とコードされる。一般に、項がN個存在するのであれば、たとえば、N進数で、項に対応するシンボルをコードできる。このようなシンボルから数値への変換において、N進数グレーコードを用いることにすれば、グレーコードは高い対称性を持つから、演繹学習による数値の微小な変化で、どの桁も均等に入れ替わりうるという特徴を持たせることができる。図8は、ノードに対応付けられる演算オペレーションを示す図である。図8において、同期/非同期とあるのは、2つ以上の入力があるときに、同期では全ての入力エッジ上にオペランドとなるトークンが揃うのを待ってからノードが発火し、処理が実行されることを意味する。論理プログラムからKTNへの変換図9は、論理プログラムの述語論理がKTNにおいて、どのようなグラフに変換されるかを示す第1の図である。図10は、論理プログラムの述語論理がKTNにおいて、どのようなグラフに変換されるかを示す第2の図である。図9、図10に示されるように、述語の引数が、クエリ変数、個体変数、個体定数のいずれであるか、また、論理の関係、関数に応じて、述語論理がKTNに変換される。図11は、KTNを構築した例を示す図である。図11の例では、以下のような論理プログラムを対象としている。JJKKxy←JK←K図12~図24は、図11に示したKTN中での、シンボルトークンの流れを順次示す図である。KTNに対するトークン伝播処理の実行は、ATNと同様に、Beginノードの発火から始まる。その後各ノードは、通常のデータフロー計算機と同じように、入力エッジに到着したトークンの持つデータをオペランドとしてコードされた演算を実行し、結果のトークンを出力エッジ上に流すという処理を並列独立に行ない、それにより、ノード発火ファイヤーとトークン伝搬がカスケード的にネットワーク中に起こる。まず、図12を参照して、開始ノードが発火して、トークンが定数ノードシンボルは、それぞれ、2,1,qに伝播する。次に、図13に示すように、定数ノードを通過したトークンは、それぞれ、シンボル2,シンボル1,シンボルqが付随する。図14に示すように、引数合成ノードをトークンが通過すると、トークンは1つにまとめられ、これに、シンボル2,1、qが付随して、マージノードに伝播する。次に、図15に示すように、マージノードからは、2つの出力として、シンボル2,1、qが付随するトークンが出力される。さらに、図16に示すように、マージノードから、第1のブランチBR1の引数分解ノードに伝播したシンボル2,1、qは、それぞれ、シンボル2,シンボル1,シンボルqが付随するトークンに分割されて、出力される。一方、第2のブランチBR2の引数分解ノードに伝播したシンボル2,1、qも、それぞれ、シンボル2,シンボル1,シンボルqが付随するトークンに分割されて、出力される。図17に示されるように、第1のブランチBR1では、上側の同値ノードでは、1つの入力が一致しないため、出力は偽F:Faulseが生成され、下側の同値ノードでは、、q=1であれば、出力は真T:Trueとの出力が生成される。第2のブランチでは、関数fのノードで、トークン2のシンボルはsに変わり、これが逆関数ノードに伝播する。一方、定数ノードをトークンqが通過することにより、このトークンのシンボルは、z0となる。そこで、逆関数ノードからのトークンと、トークン1とが同値ノードに伝播する。上側の引数合成ノードには、トークン1、トークンz0、トークンqが伝播し、下側の引数合成ノードには、トークンz0、トークンqが伝播する。次に、図18に示すように、第1のブランチBR1では、論理積ノードの一方入力に偽Fが伝播するため、論理積ノードの出力は、偽Fとなる。一方、第2のブランチBR2では、同値ノードへの入力がともに1となり、上側引数合成ノードからは、トークン1、z0、qが、下側引数合成ノードからは、トークンz0、qが、それぞれ伝播する。さらに、図19に示すように、第2のブランチBR2では、同値ノードから上側ゲートノードおよび下側ゲートノードへの出力が真Tとなる。したがって、上側引数合成ノードからのトークン1、z0、qと、下側引数合成ノードからのトークンz0、qは、それぞれ上側ゲートノードおよび下側ゲートノードを通過して伝播する。図20に示すように、上側ゲートノードを通過したトークンは、第1および第2ブランチの入力側のマージノードに伝播する。また、下側ゲートノードを通過したトークンは、第3ブランチの入力側のマージノードに伝播する。図21に示すように、第1および第2ブランチの入力側のマージノードからは、2つのトークン1、z0、qが出力される。第3ブランチの入力側のマージノードからは、2つのトークンz0、qが出力される。図22に示すように、第3ブランチでは、上側の引数分解ノードからは、トークンz0、トークンqが伝播し、下側の引数分解ノードからも、トークンz0、トークンqが伝播する。一方、第1ブランチBR1では、上側の引数分解ノードからは、トークン1、トークンz0、トークンqが伝播し、下側の引数分解ノードからも、トークン1、トークンz0、トークンqが伝播する。図23に示すように、第1ブランチBR1では、上側の同値ノードからは、Tifz01が出力され、下側の同値ノードからは、Tifqz0が出力される。第2ブランチBR2では、関数fのノードで、トークン1のシンボルはsに変わり、これが逆関数ノードに伝播する。一方、定数ノードをトークンqが通過することにより、このトークンのシンボルは、z1となる。そこで、逆関数ノードからのトークンと、トークンz0とが同値ノードに伝播する。上側の引数合成ノードには、トークンz0、トークンz1、トークンqが伝播し、下側の引数合成ノードには、トークンz1、トークンqが伝播する。第3ブランチBR3では、上側の同値ノードには、トークン0とトークンqとが入力し、下側の同値ノードからは、Tifq0が出力される。図24に示すように、第1ブランチBR1では、論理積ノードから、Tifz01qz0が出力される。さらに、第2ブランチBR2では、上側引数合成ノードからは、トークンz0、z1、qが、下側引数合成ノードからは、トークンz1、qが、それぞれ上側ゲートノードと下側ゲートノードに伝播する。ゲートノードからは、同値ノードにおいて、Tifz00が成り立ては、トークンが通過することになる。図25は、このような図12~図24で説明したデータフローグラフを展開して、AND/ORグラフで示したグラフである。図25において、節は、点線で囲んであり、引数は、一点鎖線で囲んである。各節では、AND/ORグラフに展開するに当たり、変数/定数ANDノードを挿入してある。図26は、図25に示したAND/ORグラフを、各節の内部構造を省略しAND/OR木として示す図である。ルート節では、クエリ変数qが生成され、引数となるマージノードは、ORノードとして機能する。ブランチBR1-1に相当する節は、葉として表現される。ブランチBR2-1に相当するノードは、変数z0を生成するANDノードとして機能する。z0、qを引数とする、ブランチBR3-1、ブランチBR3-2に相当する葉では、束縛条件が最終的に存在するTifq0と、Tifqz0。一方、1、z0、qを引数とする、ブランチBR1-2に相当する葉では、束縛条件が最終的に存在するTifz01qz0。一方、ブランチBR2-2に相当する葉では、葉の上にはないそれ以前の葉において確定している束縛Tifz00が存在する。また、ブランチBR1-2に相当する葉では、変数z1が生成される。ここで、以上のような論理プログラムすなわちKTNの目的は、ゴール節が成り立つかどうか、もしくはゴール節の中のクエリ変数qが何であるかを決めることにある。このような述語論理が恒真式であるか否かを判断したり、クエリ変数を求める処理は、上述のとおり導出と呼ばれる。KTNの場合、この答えの抽出問題は、作られたAND/ORグラフから、条件1変数の束縛条件が無矛盾な解を持ちつまり単一化可能で、条件2木の根を真とするような部分木を求める問題に帰着される。図27は、木探索と単一化について、ブランチBR1-1に相当する葉から探索と単一化が可能であるかを判断した結果を示す。図27に示すように、ブランチBR1-1に相当する葉が、偽Fであることから、根も、偽Fとなり、条件2が満たされないため、この部分木は、解とはなりえない。図28は、木探索と単一化について、ブランチBR3-1に相当する葉とブランチBR1-2に相当する葉から探索と単一化が可能であるかを判断した結果を示す。図28に示すように、ブランチBR3-1に相当する葉の束縛条件とブランチBR1-2に相当する葉の束縛条件を同時に満たすqが存在しない、すなわち、これらの2つの葉の束縛制約式を連立方程式としたときの解がない単一化不能であることから、条件1が満たされないため、この部分木は、解とはなりえない。図29は、木探索と単一化について、ブランチBR3-2に相当する葉とブランチBR1-2に相当する葉から探索と単一化が可能であるかを判断した結果を示す。図29に示すように、ブランチBR3-2に相当する葉の束縛条件とブランチBR1-2に相当する葉の束縛条件を同時に満たすqが存在する、すなわち、これらの2つの葉の束縛制約式を連立方程式としたときの解が存在するq=1ことから、条件1および条件2が満たされないため、この部分木は、解となる。言い換えると、トークンの伝播後に、変数間の連立方程式を解くことにより演繹推論の答えが求まることになる。このような問題に対して、本実施の形態の計算処理装置100では、確率近接法ProbabilisticApproach法:PA法という、連立方程式をネットワークを用いて、数値的分散的に解く方法を適用する。確率近接法は求解の途中で、系図内の部分木の論理的な無矛盾性も調べていくので、これに基づき有望な枝の先を成長させるといった処理を行なっていくことにより、系図成長真偽チェック変数単一化を有機的に結び付けながら解の探索を行なうことができる。図30は、このような確率近接法の概念を説明するための概念図である。つまり、確率近接法は、連立方程式を逐次的に解く数値解法であって、制約式を満たすためのパラメータ補正値を逆算または微分を用いて計算するとの補正値算出と、パラメータを補正値に、近さに応じて確率的にジャンプさせるとの確率的近接とを繰り返して、逐次的に解を求める。確率近接法では、近接性を基準により制約間矛盾が小さい解候補が生き残ることで、パラメータ矛盾が次第にゼロに収束し、解が求まることになる。また、以下に説明するように、確率近接法は、逆伝播における学習定数学習を実行する際にも使用することができる。以下、より簡単化した例で、確率近接法の処理について説明する。定数学習を行なう処理まず、確率近接法により、定数学習をする場合を例にとって説明する。図31は、確率近接法により、定数学習をする場合を示す概念図である。aが答えであり、sは、解を求める過程で試行的に代入されるセンサである。したがって、ここでは、aとsとの関係が、最終的な解の関数形となるように、定数ν0およびν1の値を定める手続きを行なう必要がある。ここで、教師値セットは定数を未知数とする一群の連立方程式を与えることになる。図32は、上述した式1を表すデータフローグラフでの確率近接法の処理を示す図である。まず、定数ν0およびν1の初期値が、それぞれ、1.5および1.0であるものとする。センサとして、値1.0を用い、教師値が1.0であるものとする。データフローグラフに従って、トークンが伝播すると、解として、2.0が得られることになる。しかし、教師値が1.0であるため、まず、プラスノードから逆方向への伝播学習において、プラスがノードの上側の入力のみで、教師値となるように、この入力を調整したとしたときの値を求める。プラスがノードの下側の入力は、1.5であるから、上側の入力は、-0.5となっていれば、教師値と一致することになる。したがって、この-0.5に対して、積ノードの入力がどのようになっていればよいかを計算すると、センサが1.0であるから、定数ν1の値は、-0.5であればよいことになる。一方、教師値が1.0であるため、プラスノードから逆方向への伝播学習において、プラスがノードの下側の入力のみで、教師値となるように、この入力を調整したとしたときの値も求める。プラスがノードの上側の入力は、0.5であるから、下側の入力は、0.5となっていれば、教師値と一致することになる。したがって、この0.5に対して、定数ν0の値は、ν0 ́:0.5であればよいことになる。この処理の後、各定数ノードでは、逆算により戻ってきた値Vと元の値νから近接性因子rexp2を計算しておく。以上のようにした後、たとえば定数v0を更新するためには、v0の近接性因子r0を全定数ノードの近接性因子の総和Σjrjで割った商を確率としてv0からV0への変更を行なう。定数ν1についても同様である。全ての定数でこのような確率的更新をすることにより、1度の逆伝搬で計算される補正値セットの中で、実際に定数値に反映されるのがネットワーク全体で平均1個となることが保証される。更新された定数を用いて、式1を書き直し、センサと教師値を用いて、さらに、順伝播と逆伝播とを繰り返す。このような繰り返しにより、最終的には、最終解となるように、定数が更新されていくことになる。連立方程式の解を求める処理次に、確率近接法により、連立方程式の解を求める場合を例にとって説明する。すなわち、複数の制約を満足するように変数の値を決める問題を、確率近接法により解くことになる。例として、以下の連立方程式を解く場合を考える。x1=x01...2x1=2x0-1...3図33は、このような連立方程式をデータフローグラフAND/ORグラフを用いて、解く場合の手続きを説明するための図である。上記のような式1と式2の連立方程式を解くにあたり、初期値としてx0、x1=0,0とする。まず、データフローグラフで、ノードx0の側を通って、上側の同値ノード300には、1と0とが入力する。無矛盾とするためには、先ほどの定数学習の場合と同様に、上側の入力の変更だけで無矛盾とするためには、値は0に変更する必要があり、下側の入力の変更だけで、無矛盾とするためには、値は1としなければならない。そこで、上側の同値ノード300については、2つの無矛盾なトークンペア0,1aと、1,1bとが生成される。ここで、トークンについてのx、ryとは、xがトークンの値であり、rは、この値xの信頼度であり、yは、このトークンについての識別子である。この場合、識別子は、グラフ中の点a,b,c,dのいずれの点であるかに相当しているが、実際には、トークンを識別可能な識別子であれば、何でもよい。また、同値ノードにおいては、無矛盾なのであるから、信頼度は、1としている。下側の同値ノード302についても、同様である。図34は、このように、同値ノード300または302で生成されたトークンを逆伝播させた場合の処理を説明する図である。まず、x0ノードは、ANDノードであり、このノードに入力する逆伝播したトークンは、それぞれ、-1,1a,0,1b,0.5,1c,0,1dとなる。そこで、このANDノードまで逆伝播したトークンのANDノードからの出力数についての組み合わせをすべて考える。つまり、トークンの識別子の組み合わせでは、ac,ad,bc,bdとなる。このような組合せによって生じるトークンの個数は、規模の大きな連立方程式の場合、変数の個数、制約式の個数とともに発散的に増加することが予想されるが、そのような場合、確率近接法では、後に述べる確率的選択を、組合せを行なう前のトークンに施すことにより、適宜トークン数を抑える処理が行なわれる。以上のようにして組み合わせたトークンについて、数値と信頼度は、以下の式にしたがって、計算する。は、組み合わせるxからランダムに取られた1個を意味する。Variは、組み合わせるxについての分散を意味し、κは所定の定数である。これによって計算される信頼度近接性因子は、組み合わせる変数の値が一致していれば、分散は0であって、信頼度は1となる。標準偏差が大きくなるほど、信頼度は小さくなる。たとえば、組み合わせacについては、x、rは、0.5,0.55acとなる。他の組み合わせについても、同様である。また、ノードx1についても同様に逆伝播したトークンのすべての組み合わせについて、x、rを算出できる。さらに、ノードx0,x1では、ノードx0とノードx1からの逆伝播として、トークンの各識別子について、最終的な逆伝播した結果のトークンのシンボルx0,x1,rを計算できる。ここで、この場合の信頼度rは、組み合わせる2つのトークンの信頼度の最小値である。結果として、図34に示すように、4つのトークンが最終的に得られるので、各信頼度を信頼度の総和Σrで割った商rΣrを確率として選択を行なう。図の例では最も信頼度の高いものの一つである0,0,0.77bcが選択されている。次には、このトークン0,0,0.77bcを初期値として、順伝播と逆伝播とを繰り返す。このような手続きを繰り返すことで、最終的には、式2と式3の解が得られる。図29で説明したとおり、KTNにおいて、葉の束縛条件において、連立方程式の解が存在するような部分木が、KTNの推論の解なのであるから、より複雑なトポロジーのネットワークであっても、本質的には、同様の手続きにより、解となる部分木を探索することができる。図35は、図12等のデータフローグラフを展開したAND/ORグラフについて、qの初期値を0.5、z0の初期値も0.5として順伝播させた場合のトークンのシンボルx、rを示す図である。図36は、図35の状態から逆伝播を行なった状態を示す図である。z0の値が更新されていることがわかる。一方、節が未確定のため正r値のトークンが来ない枝である未定枝が存在することもわかる。図37は、図36において拡大図1で示した部分の拡大した図である。逆伝播では、以下のことがいえる。i信頼度は、同値ノードを介して継承される。ii同値ノードでは、固有のIDを持つ無矛盾なトークンペアが生成される。iii論理積ノードでは、図34で説明したとおり、トークンの組み合わせについての演算を行なうトークンを反応させるという。iv定数ノードでは、x値が定数ノードと符合するトークンだけを通過させる。v引数分解ノードでは、IDを共有するトークンを組み合わせる。このとき、信頼度は、組み合わせるトークンの信頼度の最小値とする。図38は、図36において拡大図2で示した部分の拡大した図である。逆伝播では、以下のことがいえる。viORノードはトークンをカンマ記号ORを意味するで繋ぎ、通過させる。viiORで繋がれたトークンが多くなり過ぎる場合は、信頼度rを用いた確率的選択を行なって、rが小さいトークンを間引く。図39は、図36の逆伝播の状態から、初期値を更新した上で、再度、順伝播を行った状態を示す図である。図40は、図39の状態から、さらに、逆伝播を行なった状態を示す図である。qおよびz0は、さらに更新されて、ともに1となっている。このような処理を繰り返すことにより未定変数に到着するトークンの値は次第にq=z0=1、r=1に収束し、単一化が近似的に解けることになる。図41は、教師ありで定数を学習させる方法について説明するための図である。以上の説明からも明らかなように、確率近接法は、変数決定演繹をしながらの定数補正学習を可能にする方法である。したがってKTNにおいても、教師値を用いて確率近接し、その途上で算出される補正値を用いて、定数値を改めることにより、根ができるだけ真になるような補正を行なうことができる。この学習処理により、データフローグラフの中に埋め込まれたいくつかの定数についても、問題としてそれが変化することが許されるようなものについては、より最適な値へと近づけることが可能である。図42は、トポロジーを改変処理する場合の概念を説明する図である。たとえば、順伝播と逆伝播の所定の回数ごとに、または、乱数が所定の値を超える場合など、特定の頻度で、ランダム生成された節をデータフローグラフに加える改変を行なうことができる。また、展開されたデータフローグラフ上で、確率近接法の複数の試行において、所定回数以上、偽枝を生成する節については、削除することも可能である。このような処理により、初期的な論理プログラムに対して、対応するデータフローグラフのトポロジーを変化させながら、より教師値に近い結果を生成する論理プログラムを生成することができる。あるいは、論理推論に必ずしも意義を有さない枝を削除することで、教師値の結果を維持しつつ、より簡単なトポロジーを有するデータフローグラフで表現される論理プログラムを生成することができる。図43は、演算部220が実行する処理を説明するためのフローチャートである。図43を参照して、演算部220の処理がスタートすると、述語論理で表現された初期知識に相当するデータフローグラフDFGを、ネットワーク作成部222が用意するステップS102。続いて、ネットワーク作成部222が、与えられたクエリ/教師値に相当する部分グラフをDFGに追加するS104。さらに、計算実行部226が、DFG上でシンボルトークンを順伝搬し、展開DFGを未定枝の先で1段成長させるS106。図12~24に示されたように、シンボルトークンはたいていの場合DFG上を循環的に回ることになるが、このS106の処理が最初呼ばれた場合は、Beginの発火から始まるシンボルトークンの伝搬を循環1回まで実行することに、またそれ以後に呼び出された場合は、未定枝の先で止まっているシンボルトークンの伝搬をさらに循環1回分進めることになる。次に、計算実行部226が、変数地を初期化してS108、数値トークンを順伝播させるS110。次に、計算実行部226が、数値トークンを逆伝搬させるS112。根にトークンが逆伝播により戻っている場合、続いて、変数の辻褄があっているか、言い換えると、戻ったトークンの信頼度rが、信頼度1に対して所定の範囲で一致しているかが計算実行部226により判断されるS122。変数の辻褄が合わない場合、計算実行部226により、ループ回数が所定の回数をオーバーしたかが判断され、オーバーしていなければ、処理はステップS110に戻る。一方、ループ数が所定回数をオーバーしている場合S116、未定枝があるかを計算実行部226が、判断し、未定枝があれば、ネットワーク更新部228が偽枝を刈り取りS120、処理はステップS106に復帰する。一方、S118で見え家だがなければ、演算の答え偽を出力しS130、ネットワーク更新部228がデータフローグラフのトポロジーを、節の生成または削除により改変するS126。S122で変数の辻褄があっていれば、演算の答えqまたは真を出力し、処理はステップS126へ移行する。ステップS126の処理が終了すると、新しいクエリまたは教師値があるかを計算実行部226が判断し、存在すれば処理は、処理はステップS104に復帰し、存在しなければ、処理は終了するS132。以上のような処理により、KTNによる論理推論学習には、以下のような効果がある。i知識が脳やニューラルネットワークと同じ静的なグラフによって表現される。このこと自体に計算上の優位性が必ずしも存在するとはいえない。しかし、AIの究極的な目標が人間に匹敵するような知能を作ろうとするものであること、また最近進歩が著しい人間の脳の非侵襲計測技術から得られる生理学的なデータとの将来における比較の可能性等を考えた時、脳と数学的に同じアーキテクチャで知識を表現することには大きな意味がある。ii系図作成、単一化といった一連の演繹学習処理の素過程が、グラフ上のトークン伝搬によって実現される。従ってこれらを実装するKTNの実行プログラムは、並列/分散マシン上へ移植することにより大きな効率アップが期待できる。iii演繹では、ゴール節を元に探索を行なう後向き推論を行なう。従って深い推論の場合でも探索の範囲を絞り込むことが可能で、事実を無闇に生成する前向き推諭よりも効率がいい。iv知識を表わすネットワーク上で、各シンボルは連続実数で表わされ、またそれに加え、最終解が信頼度rとともに提示されることにより、知識のあいまい性が表現されている。これは、確率論理プログラミングで行なわれるルールの重み付けとは異なる方法による知識のあいまい性表現である。v述語論理中の変数がネットワーク上で識別子を用いて明示的に扱われており、これにより、述語論理を命題論理化してグラフ化する他のアプローチに較べて、コンパクトな規模のグラフによる汎用の知識表現を実現している。またグラフに対するトポロジー変更知識改変学習では、新しいノード述語の生成や論理構造の変更も行なえる枠組みを提供している。なお、以上の説明では、確率近接法のための補正値の算出には、すべて逆算を用いることとした。しかしながら、特許文献1の国際公開2010/047388号公報にも開示されているように、ネットワーク上の逆伝搬を用いると、演算結果<x>、正しい結果教師値と演算結果との差に基づいて定まるエネルギー誤差E、エネルギー誤差Eの微係数Dx、Drを計算することができ、それを用いると、補正値は、テイラー展開の1次の範囲で近似計算することも可能である。図51は、このような微係数を計算する場合の手続きを示す概念図である。図中のxはある任意のノードの現在の値を示し、ネットワークから出力される答えaはこの関数としてa=Gと書かれるものとする。今このxが仮にxTに補正されることでネットワークの答えが教師値tになって欲しいとすると、その要請はt=Gのように書ける。この2つの式を辺々引いて、エネルギー誤差の定義式E=122を用いて変形すると、最終的にxTは、現在のノード値x、エネルギー誤差E、微係数Dxを使って、xT=x2EDxのように書かれる。確率近接法のための補正値は、この式を用いて計算することも可能である。また、対象となるプログラムは論理プログラムであるとしたが、特許文献1の国際公開2010/047388号公報にも開示されているように、算術演算および論理演算を行なうプログラムのソースコードをGIMPLE形式の中間コードへ変換し、中間コードをネットワークに変換することにより得られるATNに対して、確率近接法による逆伝播学習を行なうことも可能である。以上の説明では、概念的な処理を中心として説明したが、本実施の形態の効果が最も発揮される利用例としては、たとえば、受注仕様からの製造条件決定問題などが想定される。鉄鋼鋼板の製造の現場では、JTS規格、用途、板厚等の受注仕様データから、適切な製造条件を決めるという問題がある。受注仕様は離散的な記号、もしくは連続的な数値が並んだ数百項目にのぼるリストであり、これをもとに製造条件として、あらかじめ用意された数百の条件数百個の異なるシンボルの中から適切なものがただ一つ選ばれる必要がある。現在現場でこの問題は、熟練した作業員が手作業で行なっているが、判定結果が人によって異なる、ルールが精密に明文化できないといった理由のため大雑把なマニュアル作業書しか作れず、スキルの伝承が難しく、マニュアル自体の改善も行なえない等の問題を抱えている。過去この問題に対しての研究として、ID3IterativeDichotomiser3という、仮説に基づき分類決定木を生成する方法が適用された例がある。しかしながら、蓄積された約29000件の判定データから合成された約3千リーフの分類木による判定結果は、熟練者の結果の約80を再現するに留まった。これはID3が、前述した機械学習の問題点-記号の持つ離散性と事例情報の持つあいまい性やノイズとの間のギャップの問題-を抱えていることに起因している。別に試した直近のデータに割り当てる方法の方がむしろ正答率は高かったが、この方法ではもちろんマニュアル化には繋げられない。この間題は、陰のルールをif受注仕様then製造条件、もしくは製造条件←受注仕様として書くことができるもので、論理プログラムで知識を表現するのに好適な問題である。論理プログラムで表現された知識をあいまい性を考慮しながら演繹学習を行なう方法には、本発明KTNとペイジアンネットワークが考えられるが、変数を明示的に扱うKTNで記述する方が出来上がった知識に汎用性があり、マニュアル化も容易である。またグラフの規模自体も、受注仕様の各項目で定数化されたノードを用意しなければならないペイジアンネットワークより小さくできる可能性がある。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"