JP2001516098A - ブール・ルールに対する要求を処理する方法および装置 - Google Patents

ブール・ルールに対する要求を処理する方法および装置

Info

Publication number
JP2001516098A
JP2001516098A JP2000511111A JP2000511111A JP2001516098A JP 2001516098 A JP2001516098 A JP 2001516098A JP 2000511111 A JP2000511111 A JP 2000511111A JP 2000511111 A JP2000511111 A JP 2000511111A JP 2001516098 A JP2001516098 A JP 2001516098A
Authority
JP
Japan
Prior art keywords
variables
rule
output signal
input signal
elements
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.)
Withdrawn
Application number
JP2000511111A
Other languages
English (en)
Inventor
スコブガールド、ハンス、ヨルゲン
Original Assignee
バーン ディベラップメント ベスローテン フェンノートシャップ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by バーン ディベラップメント ベスローテン フェンノートシャップ filed Critical バーン ディベラップメント ベスローテン フェンノートシャップ
Publication of JP2001516098A publication Critical patent/JP2001516098A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/313Logic programming, e.g. PROLOG programming language

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Communication Control (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Numerical Control (AREA)
  • Logic Circuits (AREA)

Abstract

(57)【要約】 変数の状態を表した複数の要素を有する入力信号と、複数の項に配列された複数の要素を有する記憶済みのルール・ベースと、前記変数の状態を表した複数の要素を有する出力信号とを使用することにより、前記複数の変数を有するブール・ルールに対する要求を処理する方法を提供するものであって、前記入力信号および前記出力信号における前記要素が複数の2ビット対をなし、前記ルール・ベースにおける前記要素は、前記変数の状態の複数の組合せを表示可能な2ビットの対であり、かつ、前記ルール・ベースにおける項は、複数の変数の多数の組合せを表し、前記ルール・ベースにおける複数の項について、いずれの2ビット対を前記出力信号における要素に書き込むのかを判断し、ともに与えられた変数を表す、前記ルール・ベースにおける要素および前記入力信号における要素について、論理的なオペレーションにより前記入力信号の2ビットと前記ルール・ベースにおける項の2ビットとを比較する。

Description

【発明の詳細な説明】
【0001】 発明の分野 本発明は、入力信号,ルール情報および出力信号を使用することにより、ルー
ルに対する要求を処理する分野に関する。
【0002】 発明の背景 ルールに対する要求を処理する特殊なアプリケーションは、コンフギュレーシ
ョン・システムである。 コンフギュレーションの一般的な問題は、3つの基本的な構成要素、すなわち
、変数,値およびルールを有する。その目的は、すべての割当てがルールに従っ
て有効となるように、変数に対して値のすべての割当てを見つけ出すことである
。これは、制約満足問題と呼ばれ、コンフギュレーションの分野に偏在する。コ
ンフギュレーション・システムでは、制約/ルールが満足されるときに、これら
の変数は、ユーザの選択により積に含めることが可能な選択可能オブジェクトを
表す。ルールにしばしば使用される他の項は、例えば「制約および「関係」であ
る。
【0003】 コンフギュレーション問題は、一組の選択可能な全オブジェクトが、選択可能
なオブジェクト間で何らのルールにも違反せずに、コンフギュレーションに含ま
れるオブジェクトとコンフギュレーションから除外されたオブジェクトとを表す
2つの分離サブセットに明確に区分されるときに、解決される。
【0004】 選択可能なオブジェクトは、包含されても排除されてもよい任意のものである
。それは、物理的オブジェクト(例えば、車または特殊な種類のエンジン),属
性(例えば、赤い色またはカーペットの織り方パターン)または何らかの要約(
例えば、家庭と仕事との間の特定の移動数または特定の契約形式)が考えられる
【0005】 ルールには、1以上の選択可能オブジェクトが含まれる。ルールの目的は、い
くつかの必要条件に従うようにオブジェクトの選択を制限することである。ルー
ルは、物理的制限(例えば、選択された多数の付属品を維持していくために大き
なエンジンを車が必要とするとき)または任意選択的判断(例えば、更にスポー
ティな見栄えを与えるために特定の大きさのエンジンを有するすべての車を赤い
色でのみ生産するものと市場マーケティング管理者が判断したとき)に基づいて
もよい。しばしば、項「制約」は、どのようにして要素を組み合わせ可能かにつ
いて制限するルールを参照するために使用される。
【0006】 典型的には、このルールは、ルール・ベース、すなわち、ある形式のテーブル
またはデータ・ベースに便宜的なフォーマットで記憶される。ルール・ベースに
対するアクセスは、コンフギュレーション・エンジンにより得られる。コンフギ
ュレーション・エンジンは、ユーザによって実行される選択がこのルールに従っ
て有効であるか否かを確かめるとともに、このことをユーザに報告することに責
任がある。また、コンフギュレーション・エンジンは、ルールから更なる知識を
推論すること、すなわち、ユーザがまだ決定していないオブジェクトの値につい
て論理的に結論付けることができる。
【0007】 しかしながら、コンフギュレーション・エンジンは、多数の方法で実現され得
るが、典型的には、複数の分野、すなわち、強制ロジック・プログラミング,制
約統合,関係代数,命題論理,整数計画法,グラフ理論,予想計算法などを含む
調査の分野から得られる。
【0008】 調査問題の特徴は、NP−Hardであることが証明される。すなわち、その
実行時の複雑さは指数関数的であり、それは、アルゴリズム実行時間が簡単では
ない問題に関する問題のサイズに対して指数関数的となることを意味する。これ
は、特性の非常に残念な問題であり、アルゴリズムに大きな関心を起こさせた。
【0009】 典型的には、コンフギュレーション・システムには、多数の変数が含まれてお
り、また、ルール・ベースは、コンフギュレーションの処理中にユーザをサポー
トし支援するために、ユーザが選択を行う度に考慮されるべきである。また、今
日のユーザは、異なる形式のコンピュータ・プログラム(例えば、コンフギュレ
ーションを実行するプログラム)を使用するときには超高速応答時間を期待し、
また、彼らは、コンフギュレーションの基本的な問題または他の形式の技術的側
面を考慮しない。
【0010】 従来技術 本発明は、欧州特許第0456675号に関係する。欧州特許第045667
5号は、記憶されたルール情報,入力信号および出力信号を使用することにより
、入力信号の情報内容を強化する方法および装置を開示している。ルール情報は
、ブール・ルールに違反しないように、多数の変数を有するブール・ルールを変
数のすべての可能な組合せ、すなわち、変数に割り当てられた複数の2進値の組
合せを表す複数の項に変換することによって、得られる。これは、正のインデッ
クス形式としても知られている。開示された他の表示は、負のインデックス形式
(ルールに違反している変数の組合せ)およびアレー形式(変数のすべての組合
せと、各組合せについてのルールに違反しているか否かの表示)である。
【0011】 ルール・ベースの各項に関して、変数に割り当てられた2進値は、入力信号の
変数に対する割当てと比較されて、出力信号を供給する。入力信号および出力信
号は、2つの可能状態、例えば「真」と「偽」や,「トートロジー」(不定)と
「矛盾」(許容状態)を表すことができる。
【0012】 入力信号で可能状態にある変数を含む項は、認識される。これらのすべての項
が特定の変数に対する同一値を有するときは、各変数は出力信号でその値を有す
ると判断される。これによって、ルール・ベースから情報を推論または抽出する
ことができる。
【0013】 これによって、ブール・ルール用の検索ツリーにおいて時間が掛かる検索を実
行する必要なく、ルールに含まれる変数の割当てについての情報を推論を可能に
する方法および装置が提供される。情報を推論するための検索ツリーを使用する
ことによって、ツリーを検索するための計算負荷は、ブール・ルールにおける変
数の許容組合せに対して指数関数的であり、一方、同じルールに対して例えば正
のインデックス形式で項を走査する計算負荷は、同じブール・ルールにおける変
数の許容組合せの数に対して線形である。したがって、特にルールが多数の変数
を含むときは、計算負荷のかなりの減少が達成される。
【0014】 しかしながら、欧州特許第0456675号に開示された方法は、ルール・ベ
ースにおける変数の数に対して指数関数的となるルール・ベースを記憶するメモ
リを消費する。一般的に、この方法は、N/2×(2N)項の記憶容量を必要と する。ただし、Nはこの式における変数の数である。これは、ルールが下記のよ
うであることを意味する。 A⇒B or C or D or E or F or G or H or I or J or K or L or M or N or O or P がメモリにおいて64Kバイトの16ビット・ワードを取る32768項に帰結
する。特に、多数の変数がルールに含まれているときは、この方法は、ルール・
ベースを参照する度にすべての項を調べることに関して許容できない大きな計算
負荷になる恐れがある。また、メモリ消費は許容できないものとなる。
【0015】 「ブール結合」としても知られている「制約ロジック・プログラミング」の分
野内では、多数の方法が、ブール・ルールにおけるブール変数の特定の組合せが
ブール・ルールに従って有効であるか否かを表す多数の項(「一般単一化子」す
なわちMGUとも呼ばれる)に多数のブール・ルールを変換することを提案して
いる。このような方法は、例えば、「ブール結合、効率的なアルゴリズム」,ア
ントイネ・ロージ,1989年,LaBri,ユニベルシテ・ド・ボルドーや、
「制約ロジック・プログラミング」,フレデリック・ベンハモードおよびアライ
ン・コルマーアウエル編集,ケンブリッジ,MIT,第237頁〜第251頁,
「ブール結合の列挙方法を使用して」,アントイネ・ロージに説明されている。
【0016】 これらの方法はすべて、ブール・ルールをコンピュータのメモリに記憶可能な
共通表示に組み合わせることに関わり、共通表示におけるすべての変数を組合せ
の形式で要求は検証され得る。これらの方法は、特に、PROLOG言語のよう
な制約ロジック・プログラミング言語に使用するように開発されている。制約ロ
ジック・プログラミング言語では、ブール・ルールまたは項が連続的に発生され
、したがって、その目的は、新しいルールが発生する度に新しい表示を完全に発
生する必要なく、新しいルールの表示を既存の表示に加えることである。
【0017】 しかしながら、これらの方法は、新しいルールを連続的に加える能力を代償と
する指数関数的なメモリ消費の問題がある。したがって、ルールの高速走査時間
、すなわち、ルールに対する要求の高速な検証を得ることは不可能である。また
、これらの方法は、共通表示における単にいくつかの変数の組合せの形式で要求
の検証には関係しない。したがって、すべての変数の部分的な知識のみを提供す
るだけでは十分でない。
【0018】 クロス・レファレンス この出願と同じ日に出願され、かつ、同じ譲受人のベオーロジックA/Sに譲
受された下記特許出願を参照する。 (1)コンピュータにおいて一組のオブジェクトを構成する方法 (2)対話構成において部分的な知識を推測する方法および装置 (3)ネットワークを経由する構成 (4)対話構成システムにおいて無効選択を可能にする方法 これらは、本発明と連係して理解されるべき引用として組み込まれる。
【0019】 発明の概要 本発明の第1の目的は、要求が有効であるか否かをルールに従って検証するよ
うに、ルールに対する要求の高速処理を可能にする方法を提供することにある。 本発明の第2の目的は、要求が有効であるか否かをルールに従って検証する要
求を条件としてルールの表示を圧縮可能にする方法を提供することにある。 本発明の第3の目的は、必ずではないが要求における未知の情報を決定できる
ように、ルール・ベースから情報を推論できるようにする方法を提供することに
ある。
【0020】 変数の状態を表した複数の要素を有する入力信号と複数の項に配列された複数
の要素を有する記憶済みのルール・ベースと前記変数の状態を表した複数の要素
を有する出力信号とを使用することにより、前記複数の変数を有するブール・ル
ールに対する要求を処理する方法であって、前記入力信号および前記出力信号に
おける前記要素が複数の2ビット対であり、前記ルール・ベースの前記要素が、
前記変数の状態の複数の組合せを表示可能な2ビット対であり、前記ルール・ベ
ースの項が、複数の変数の多数の組合せを表し、前記ルール・ベースの複数の項
について、いずれの2ビット対を前記出力信号の要素に書き込むかを判断し、共
に与えられた変数を表す前記ルール・ベースの要素および前記入力信号の要素に
ついて、論理的オペレーションにより前記入力信号の2ビットと前記ルール・ベ
ースの項の2ビットとを比較する、方法が提供される。
【0021】 したがって、ルール・ベースに対する要求を超高速に実行し、出力信号として
前記要求の結果を前記ルール・ベースに高速に供給することができるが、非常に
効率的な表示で前記ルール・ベースをコンピュータに記憶することができる。 上で導入した式に対して、メモリ内の32×16ビット・ワードのみを取るよ
うに、かつ、コンピュータ上の実行時間が約2000倍速く走査されるように、
前記ルールの表示を圧縮することができる。 また、メモリを有し、複数の変数を有するブール・ルールに対する要求を処理
するコンピュータ・システムが提供される。
【0022】 以下、本発明を好ましい実施例に関連させるとともに、図面を参照して、さら
に詳細に説明する。
【0023】 好ましい実施例の詳細な説明 ここで、参照として組み込まれる欧州特許第0456675号では、ブール式
をその式の正のインデックス形式により表す。これは、下記の式および表1によ
り示される。 例1:式 A or !B ⇒ !C の場合に、ブール変数A,BおよびCを用いてこれを「A or Bの否定ならば
、C’の否定」と読み、正のインデックス形式は、表1で与えられる。
【0024】
【表1】
【0025】 表1における5つの項は、式が有効である(違反していない)変数のすべての
組合せを正確に表している。コンピュータでは、表1の内容は、通常、メモリに
おける1ビット/変数/項により表すことができる。
【0026】 本発明の第1の態様によれば、このブール・ルール表示を真および偽の2状態
から、真,偽およびドント・ケアに変更することができる。ドント・ケア状態は
、表示されたルールに違反することなく真および偽の値をドント・ケア状態が取
ることができることを意味するトートロジーを表す。ドント・ケア状態は、式の
正のインデックス形式の表示においてスター(*)により示される。 したがって、式 A or !B ⇒ !C は、表2に示すように表すことができる。
【0027】
【表2】
【0028】 表1と比較すると、表2は、表1より2列少なく構成されている。第1の列を
表1における項1および項4に拡張することができ、また、最後の列を表1にお
ける項3および項5に拡張することができることは、表2から明らかである。こ
れにより、圧縮ルール表示が導入される。
【0029】 本発明の第2の態様によれば、コンピュータ上でより速い実行速度を得るため
に、また、メモリの消費を少なくするために、この圧縮正インデックス形式を使
用することができる。ドント・ケア(*)を含む1つの項は、各変数に対して2
ビット表示で表すことができる。圧縮表示に使用する3つのシンボル(0,1,
*)を2ビット表示でビットS1,S2の2進数割付けとともに表3に示す。
【0030】
【表3】
【0031】 特定のビット組合せを選択する目的は、簡単なロジックおよび/またはオペレ
ーションによりルール走査アルゴリズムを実施可能にすることである。ビット組
合せは、最も頻繁に実行されると仮定されるオペレーションは実行が最早のオペ
レーションとなるように、選択されてもよい。
【0032】 表2における圧縮正インデックス形式は、便宜的に、メモリにおいて5バイト
により表され、すなわち、2バイト/圧縮項および1バイト/非圧縮項により表
されてもよい。多数の変数を有するルールのときは、かなりのメモリ節約を達成
することができる。
【0033】 例2:ルール A or B or C or D or E or F or G or H or I
or J ⇒ Kの場合: 正インデックス形式を表4に示す。
【0034】
【表4】
【0035】 表4における非圧縮項は、2050バイトに等しい2バイト×1025項を必
要とする。圧縮項表示を表5に示す。
【0036】
【表5】
【0037】 この圧縮表示は、2バイト×2バイト/項×2項を必要とし、8バイトに等し
い。 このルールの場合に、圧縮項表示が1項当たり2倍のメモリ、すなわち、1変
数当たり2ビットを使用しても、メモリ消費がかなり節約される。 圧縮項の発生方法は、ディジタル設計の分野で周知である。カルノー・カード
はその一方法であり、クイン・マックラスキー方法(1965年)のような方法
を「モリス・マノズ・ブック・ディジタル設計」に見い出すことができる。項の
重複組は、クイン・マックラスキー方法によって発生される。
【0038】 しかしながら、我々は、アントイネ・ロージィの「ブール結合、効果的なアル
ゴリズム」,1989,LaBri,ユニベルシテ・ド・ボルドーによる方法を
使用する。この方法は、重なりのない一組の項を発生する。ブール結合は、更に
、フレデリック・ベンハモードおよびアライン・コルマーアウエルにより編集さ
れた、ケンブリッジ,MIT,第237頁〜第251頁,「制約ロジック・プロ
グラミング」,アントイネ・ロージィによる「明確なブール結合方法を使用」に
おいて説明されている。ブール結合は、例えば検索されている検索ツリーに対し
て逆の線形な時間で調べられるブール・ルールの単一表示を発生するフィールド
に関連され、指数関数的な時間消費を伴う多少のインテリジェンスによることに
、注意すべきである。用語「制約ロジック・プログラミング」は、「ブール結合
」としても知られている。
【0039】 図1は、圧縮ルール表示を発生する方法に関するフロー・チャートを示す。ス
テップ1において、この方法は、圧縮表示を条件とする記号ブール式により開始
する。ステップ2において、初期化処理は、変数ActiveListおよび変
数ResultListを空きのセットに割り付け、かつ、Tを空きのセットに
割り付けることを含む。初期化を実行すると、ステップ3において、現在、式f
にあって項Tにない変数Qを選択する。いくつかの変数が可能なときは、関連す
るパーズ・ツリー(図2を参照)の頂端を選択する。すなわち、最少のオペレー
タにより支配された変数を選択する。タイの場合は、変数をランダムに選択する
。ステップ4において、2つの項T1,T2を発生する。ただし、T1はQが付
加されたTであり、T2はQの否定が付加されたTである。各項は、パーズ・ツ
リーの片側をそれぞれ表す。更に、カウンタiを初期化する。次に、ループに入
り、ループの最初のステップ5において、カウンタをインクリメントする。すな
わち、iをi+1と等価にセットする。ループ内の次のステップ6は、T1また
はT2における既知の変数値に対する関数fの真理値、すなわち、f(Ti)の
値を計算することである。この真理値は、表6に与えられている書換えルールを
使用した計算器により計算される。シンボルAは、変数および部分式の両方を表
すことができる。
【0040】
【表6】
【0041】 書換えルールは、ブール代数から直接導き出される。すべての変数が既知であ
れば、式fの真理値が容易に決定されるが、部分割付けだけによると、いくつか
の場合で真理値を決定できない。 ルール表示は記憶することができるので、ルールを1回圧縮することのみが必
要である。
【0042】 図2は、式:(X or Y) ⇒ Zに関するパーズ・ツリーを示す。パーズ・
ツリーの先端ノードは、“=>”に対応する、すなわち、式に含意している。他
のノードは、orオペレータに対応する。X,YおよびZは、パーズ・ツリーの
変数である。
【0043】 例3:式 (X or Y)⇒ Z ただし、Zは真に等しく(Z:=真)、式は、 (XorY)⇒ 真 となり、R11に従って、式は「真」である。すなわち、真理値は、XおよびY
の割付けに係わらず、真である。他の項T=!XYのとき、式は、 (偽 or 真)⇒ Z となる。R9により”真 ⇒ Z”、かつ、R10により“Z”、したがって、こ
の場合には真理値を決定できない。式の真理値を決定することができない場合は
、ステップ6の計算結果は、「未知」となり、次に、ステップ7において、Ti
をActiveListに加算し、ステップ3〜11を含むループにおいて更に
処理される。ステップ6において式の真理値が「真」であると評価された場合は
、ステップ8において、項Tは有効な圧縮項としてResultListに加算
される。ステップ6において式の真理値が「偽」であると評価された場合、また
は、項Tがステップ8においてResultListに加算されるかステップ7
においてActiveListに加算された場合には、ステップ9において、カ
ウンタiが“2”に等しいか否かについてテストする。T1およびT2が共に計
算されているときは、ステップ10において、ActiveListが空か否か
についてテストし、そうではなく、T1およびT2が計算されていないときは、
ステップ5においてループを繰り返し、カウンタiがインクリメントされる。ス
テップ10において、ActiveListが空であるか否かをテストする。空
であれば、処理を終結し、そうでないときは、ActiveListからTを取
ることにより項Tを更に処理することを条件にして、ステップ3においてループ
を再開する。
【0044】 ステップ10においてActiveListが空であれば、その結果のリスト
は、圧縮形式で式の正インデックスを表す一組の項を含む。これらの項は、表7
によりインデックス形式に変換される。
【0045】
【表7】
【0046】 一般的に、この圧縮式表示は、N×Oビット・オーダーのメモリを取る。ただ
し、Nは変数の数であり、0はオペレータの数である。
【0047】 圧縮の例: 例4:この例において、式 (X or Y)⇒ Z は、圧縮項表示を条件にしている。表8に、ResultListおよびAct
iveListの連続更新を示す。
【0048】
【表8】
【0049】 したがって、圧縮正インデックス形式は、表9に示すようになる。
【0050】
【表9】
【0051】 例5:この例において、式 X ⇒(Y or Z) は、圧縮項表示を条件としている。下記の表10にResultListおよび
ActiveListの連続更新を示す。
【0052】
【表10】
【0053】 したがって、圧縮正インデックス形式は、表11に与えられる。
【0054】
【表11】
【0055】 メモリの使用を最適化するために、どのようなドント・ケア(*)も有しない
項は、ドント・ケア(*)を有する項から独立したリストに保持される。 以上、ブール式は、3つの要素を有する構造 式 =(VL,PIL,CPIL) として示される。ただし、VLは変数リストであり、PILは非圧縮正インデッ
クス・リストであり、CPILは複数対{S1,S2}のリストを含む圧縮正イ
ンデックス・リストである。
【0056】 例5(続き):ブール・ルール: X ⇒(Y or Z) を想起すると、表10のResultListの内容と表3および表7に示され
た変換とは、下記の式のデータ表示を与える。 式 =([X,Y,Z],[101],[{001,111},{111, 011}])
【0057】 例2(続き):ブール・ルール: A or B or C or D or E or F or G or H or I or J ⇒ K を想起すると、表5の項表示は、下記の式のデータ表示を与える。 式 =([A,B,C,D,E,F,G,H,I,J,K], [000000 00000], [{11111111110,11111111111)]) したがって、この表示は、非常に効率的であることが明らかである。
【0058】 図3は、4つの状態ベクトルを示し、本発明による圧縮項および非圧縮項の走
査を示す。走査アルゴリズムの総合的な構造は、4段階に分割される。段階1で
は、ルールに対する要求を準備する。この要求は状態ベクトルの形式にあり、こ
のルールは圧縮項および非圧縮項によって表される式の形式にある。すなわち、
要素304を有するローカル入力状態ベクトル(ISV)303は、要素302
を有するグローバル状態ベクトル301から情報を抽出することによって発生さ
れる。この情報は、式に係わる変数のみを抽出するように抽出される。これは、
ルールに対する要求の処理に必要とされる計算負荷を最小化する。この処理は、
2段階、すなわち、圧縮項および非圧縮項の走査を含む。
【0059】 段階2 305では、ローカル入力状態ベクトルは、式のすべての非圧縮項を
走査して、「一致」または「不一致」についてテストし、ローカル出力状態ベク
トル(OSV)306の関連要素307は非圧縮走査の結果により更新される。
【0060】 段階310では、ローカル入力状態ベクトル(ISL)303は、式のすべて
の圧縮項を走査して、「一致」または「不一致」についてテストする。この走査
により抽出された情報はローカル出力状態ベクトル(OSV)に含まれる。ロー
カル出力状態ベクトルの内容は、要素309を有するグローバル出力状態ベクト
ル308に転送される。
【0061】 入力状態ベクトルの形式での要求は、1つの要素の既知の態様、例えばセンサ
の状態または構成選択についての情報を備えているが、一般的には、状態ベクト
ルの他の要素は未知となる。情報は、変数値を有する状態ベクトルの要素に含ま
れてもよい。段階2および段階4における要求処理は、状態ベクトルに見い出さ
れる現在の変数の割付けの知識を有するブール式を走査する。本発明の一つの目
的は、ルールがこれを可能にするいくつかまたはすべての未知の要素を判断する
ことである。要求の結果は出力状態ベクトルで更新される。
【0062】 要求とルールとの間の矛盾が検出されると、すなわち、式が違反しているとき
は、アルゴリズムが終了し、また、式が有効であるときは、更なる変数を推論で
きるか、すなわち、値が状態ベクトルに割り付けられるか否かが判断される。状
態ベクトルは、物理的には、データ・ベースまたは式に発生する一組のブール項
目についての関連の値を有する一組のオブジェクトのように、任意のデータ・リ
ポジトリでよい。
【0063】 入力状態ベクトルおよび出力状態ベクトルは、式に発生する変数値を有する。
状態ベクトルにおける各変数は、4つの可能な2ビット組合せのうちの1つの形
式で記憶される。
【0064】
【表12】
【0065】 式12は、状態ベクトルにおける2ビットS1,S2による可能な変数値を示
す。 これは、状態「真」,「偽」および「トートロジー」(ドント・ケア)に対す
る圧縮項を表すために使用されるのと同じ取決めであることに注意すべきである
。しかしながら、本発明によれば、状態のビット表示は入れ換えることができ、
例えば、「真」をビット値S1=1;S2=1によって表すことができ、「偽」
をビット値S1=0;S2=0によって表すことができ、「トートロジー」(ド
ント・ケア)をビット値S1=1;S2=0によって表すことができ、「矛盾」
をビット値S1=0;S2=1によって表すことができる。好ましい一実施例で
は、要求状態ベクトルにおける状態のビット表示,ルール・ベースおよび応答状
態ベクトルは同じであるが、本発明によれば、他の組合せを実施することもでき
る。本発明により効果を得るためには、開示されたアルゴリズムの適正な変更を
行う必要がある。しかしながら、これは、当該技術分野における当業者の技術範
囲内にある。
【0066】 走査処理は、式の項で一つずつ見ると理解される。入力状態ベクトルに拘束さ
れた変数と項(すなわち、ルール表示)との間が一致しているときは、未拘束の
変数は、項で表された値を有することができる。拘束された変数は、シンボル値
「真」または「偽」を取ることができ、一方、未拘束の変数は、シンボル値「ト
ートロジー」すなわち「ドント・ケア」を取ることができる。 下記の表は、ルール項と入力状態ベクトル変数との間が一致するか否かを判断
する。項のすべての変数が入力状態ベクトルと一致するときは、その項と入力状
態ベクトルとの間の一致が検出される。
【0067】
【表13】
【0068】 表13は、“0”(「偽」),“1”(「真」)および“*”(「ドント・ケ
ア」/「トートロジー」)の組合せが「一致」または「不一致」に帰結すること
を示す。 実際に選択されたビット表示を見るときは、両ビットは、「不一致」を検出す
るためには、相違している必要がある。状態の他のビット表示を使用すると、ビ
ットの他の論理関係を見い出すことができる。 一致を検出したときは、一致項に関する知識が下記の更新表を使用して出力状
態ベクトルに記憶される。
【0069】
【表14】
【0070】 表14は、項変数および前出力状態ベクトルに応答する出力状態ベクトルの更
新を示す。 表12に与えられた選択ビット表示および表14の出力更新を見るときは、簡
単なブールORオペレーションによって出力状態ベクトルを更新することができ
る。
【0071】 例5(Iの続き):状態ベクトルに外部割付けを行った要求とともにルール X ⇒(Y or Z) を想起する。この割付けは、Zが偽にセットされ、Xが真にセットされ、かつ、
Yについての知識がないすなわちトートロジーということである。入力状態ベク
トルは、 [X Y Z]=[1 * 0] であり、かつ、項表示は表11に与えられたようになる。
【0072】
【表15】
【0073】 表15は、入力状態ベクトルと、項1,2,3と、出力状態ベクトルの3つの
連続更新とを示す。出力状態ベクトルは、デフォールトによって、出力状態ベク
トルのすべての状態に対して「矛盾」(!)に初期化される。したがって、入力
状態ベクトルと項1との間に一致が見られないので、出力状態ベクトルはステッ
プ1では更新されない。ステップ2では、一致が検出され、したがって、出力状
態ベクトルが表14に従って更新される。ステップ3では、いずれにも一致が検
出されず、出力状態ベクトルは未変化のままである。「一致」/「不一致」は表
13によって検出される。
【0074】 出力状態ベクトルを見て、入力状態ベクトルに拘束されたこれらの要素を削除
するときは、Yはルール項に従って真でなければならないことが分かる。これは
、Yが、値「真」を取り、かつ、その値を有する出力状態ベクトルに転送され得
ることを意味する。
【0075】 表3および表12に与えられた表示を使用すると、一致があるか否かのビット
に関する判断と出力変数の更新とを4つのオペレーション[論理積(and),
論理和(or),否定(not),排他的論理和(xor)」によって実行する
ことができる。一般的に、コンピュータは、これらの基本オペレーションを非常
に高速に実行する。信号成分S1,S2が例えば2ワードで表されると、32ビ
ット・コンピュータは、32個未満の変数を有する式に対する2つの基本オペレ
ーションで項一致処理を実行することができる。構成システムでは、32個未満
の変数を有するルールは、最も一般的なルールである。
【0076】 図4は、本発明の好ましい一実施例の全体構造である。この構造は、4段階す
なわち414,415,416および417に分割される。好ましい一実施例で
使用される詳細な方法は、これらの4段階のそれぞれで提供される。開始413
と終了418は、この方法が開始される場所と、この方法がそれ以上の処理をし
ない場所とを示す。第1の段階414は、図3におけるグローバルからローカル
への入力状態ベクトル変換に対応し、また、第4の段階は、ローカルからグロー
バルへの出力状態ベクトル変換に対応する。
【0077】 走査アルゴリズムにおける変数の説明 StateVectorは、すべての変数がこれらの現在値によって表される
ベクトルである。StateVector[A]の値は、Aの現在値(真,偽,
未定)である。 TVは、2進数“1”で入力状態ベクトルにおける「真」変数を示すビット・
マスクである。 BVは、2進数“1”で入力状態ベクトルにおける拘束された変数を示すビッ
ト・マスクである。 ISVは、ローカル入力状態ベクトルである。 OSVは、ローカル出力状態ベクトルである。 CHは、2進数“1”で入力状態ベクトルにおける変更された変数を示すビッ
ト・マスクである。 |X|は、Xの長さを意味する。例えば、|X|=|{a,b,s,d}|=
4。 式=(VL,PIL,CPIL)、ただし、 VLは、変数リストである。 PILは、正インデックス・リストである。 CPIL=[{S1,S2}]は、対{S1,S2}の圧縮正インデックス・
リストである。
【0078】 図5は、グローバル入力状態ベクトルからローカル入力状態ベクトルを発生す
る方法のフロー・チャートを示す。開始519は図4の開始413と同様である
。まず、ステップ520において、カウンタiは、式内の変数についてカウント
するために、ゼロに初期化される。次に、ループに入り、このループの最初のス
テップ521は、カウントiをi+1にインクリメントすることである。カウン
タは、式変数リストVLのインデックスとして使用され、StateVecto
rのインデックスとしても使用される変数を得て、真,偽または不定のいずれか
の変数の実際の値を抽出する。ステップ522では、式VLにおける要素数iの
変数値が、真(T),偽(F)または不定(UB)として認識される。ステップ
522の結果が真であると、ステップ523に入り、結果が不定であると、ステ
ップ524に入り、結果が偽であると、ステップ525に入る。ステップ523
では、変数番号iのビットS1,S2がS1:=0およびS2:=1で更新され
る。ステップ524では、変数番号iのビットS1,S2がS1:=1およびS
2:=1で更新される。ステップ525では、変数番号iのビットS1,S2が
S1:=1およびS2:=0で更新される。ループは、式内のすべての変数の真
理値がローカル入力状態ベクトル(ISV)に転送されてしまうまで、繰り返さ
れる。これは、ステップ526でテストされる。カウンタiが式変数リスト式V
Lの長さに達すると、ループは終結され、そうでないと、ループはステップ52
1でカウンタ・インクリメントで再開される。ループが終結すると、この方法は
、ステップA 527を経由して非圧縮項の走査で継続する。
【0079】 図6は、非圧縮項を走査する方法のフロー・チャートを示す。図5の方法は、
ステップA 527を経由して継続する。ステップ627では、非圧縮項の走査
に関する変数の初期化が実行される。ローカル出力状態ベクトルOSVは、2ビ
ットS1,S2を“0”にセットすることによって、「矛盾」に初期化される。
すなわち、OSV[i].S1:=0、OSV[i].S2:=0であり、すべ
ての要素が“0”にセットされることに対応する。ローカル入力状態ベクトルI
SVにおける拘束された変数は、ビット・マスクBVを2進数“1”とすること
によって表される。すなわち、BV:=not(ISV.S1およびISV.S
2)。ローカル入力状態ベクトルの真の変数も、ビット・マスクTV:=BVお
よびISV.S2によって表される。最後に、種々のAnyMatchは偽に、
すなわち、Anymatch:=Falseにセットされる。ステップ628で
は、カウンタiはゼロすなわちi:=0にセットされる。このカウンタは、式の
正インデックス・リストPILにおける非圧縮項をカウントするために使用され
る。ステップ629は、カウンタiをインクリメントするとともに、ループの第
1のステップである。ループは、ステップ630で、カウンタiが式PILリス
トの長さすなわちi=|式.PIL|に達したか否かをテストし、すべてのPI
L項を走査したのであれば、終結される。一致があるか否かの検出は、ステップ
631で実行され、ステートメント TV=式.PIL[i]and BV の真理値がテストされる。このステートメントが偽であると、ステップ629で
、カウンタ・インクリメントでループが再開され、そうでないと、ステップ62
9でループを再開する前に、ローカル出力状態ベクトルが変数AnyMatch
とともに更新される。この更新は、下記のようである。 OSV.S1:=OSV.S1 or not(式.PIL[i]) OSV.S2:=OSV.S2 or 式.PIL[i] AnyMatch:=真 一致がないと、OSVは更新されず、矛盾が検出される。ステップ630で検
出されたのでループを終結すると、この方法は、ステップB 633を経由して
圧縮項の走査で続けられる。
【0080】 図7は、圧縮項を走査する方法のフロー・チャートを示す。図6の方法は、ス
テップB 633を経由して継続する。ステップ733では、カウンタiはゼロ
にすなわちi:=0にセットされる。カウンタは、式の圧縮正インデックス・リ
ストCPILにおける圧縮項をカウントするために使用される。ステップ734
は、カウンタiをインクリメントするとともに、ループの第1のステップである
。ループは、ステップ735で、カウンタiが式CPILリストの長さすなわち
i=|式.CPIL|に達したか否かをテストし、すべてのCPIL項を走査し
たのであれば、終結される。一致があるか否かの検出は、ステップ736で実行
され、ステートメント 0=((式.CPIL[i].S1 xor ISV.S1) and (式.
CPIL[i].S2 xor ISV.S2)) の真理値がテストされる。このステートメントが偽であると、ステップ734で
カウンタ・インクリメントでループを再開し、そうでないと、ステップ629で
ループを再開する前に変数AnyMatchとともにローカル出力状態ベクトル
が更新される。この更新は、下記のようである。 OSV.S1:=OSV.S1 or 式.CPIL[i].S1 OSV.S2:=OSV.S2 or 式.CPIL[i].S2 AnyMatch:=真 一致がないと、OSVは更新されず、矛盾が検出される。ステップ735で検
出されたのでループが終結されると、この方法は、ステップC 738を経由し
て圧縮項の走査で続けられる。
【0081】 図8は、情報を抽出する方法のフロー・チャートを示す。図7の方法は、ステ
ップC 738を経由して継続する。ステップ838で圧縮項または非圧縮項の
いずれについても不一致が検出されると、入力状態ベクトルの形式での要求は、
ルール表示したがってルールと矛盾している。変数AnyMatchが偽である
と、この結果はステップ839で提供される。代替として、検出は、ステートメ
ント:0=(OSV.S1 or OSV.S2)の真理値を計算することによっ
て実行される。
【0082】 走査処理により変更された変数は、ローカル入力状態ベクトル(ISV)を出
力状態ベクトル(OSV)と比較することによって抽出され、変更ベクトルCV
におけるBVによって示されたすべての拘束変数を除去する。すなわち、真の変
数は、非拘束変数と一致可能となる。ステップ840では、変更された変数は、
下記ステートメントによりベクトルCHで表される。 CH:=(ISV.S1 xor OSV.S1) or (ISV.S2 x or OSV.S2) and not(BV) 変更ベクトルのみがゼロを含むと、走査は新しい情報を見い出さず、アルゴリ
ズムがこれを報告する。すなわち、要求は、ルールに従って有効となる。ステッ
プ841では、CHは0に等しいか否かがテストされ、CHが0に等しいと、ス
テップ842で何も推論しなかったと結論され、この方法は終結する。この方法
は、終了し、報告される推論された変数を有する。ステップ841では、ループ
の開始でカウンタiがインクリメントされる。このループは、真理値がローカル
出力状態ベクトル(OSV)の推論されたすべての変数の真理値がStateV
ector SVに転送されてしまうまで繰り返され、ステップ844でカウン
タiが式変数リストVLの長さに達したか否かがここでテストされる。すなわち
、i<|式.VL|? この結果がノーであると、この方法はステップ849で 終結され、そうでないと、この方法はステップ845で続けられる。ステップ8
45では、ベクトルCHにおける要素iの値が真か否かがテストされる。この要
素の値が真であると、ステップ846では、ローカル出力状態ベクトルの要素i
におけるビットS1が真であるか否かすなわちOSV[i].S1=0?がテス
トされる。これが真であると、ステップ847では、StateVector[
式.VL[i]]が真にセットされ、そうでないと、StateVector[
式.VL[i]]は偽にセットされる。ステップ847またはステップ848が
実行されるときは、ステップ843では、カウンタ・インクリメントでループが
再開される。同様に、ステップ845の結果が偽であると、ループが再開される
【0083】 例5(IIの続き):ルール X ⇒(Y or Z) を想起すべきである。ただし、式は下記により示される。 {[X,Y,Z],[101],[{111,011},{001,111}] ) また、Xは真に割り付けられ、Zは偽に割り付けられることを認識すべきである
。 段階1での開始:ローカル入力状態ベクトルを発生する。 (X) StateVector[1]=真 (Y) StateVector[2]=未定 (Z) StateVector[3]=偽 isv={011,110},osv={000,000},TV=[100]
,BV=[101] 段階2:非圧縮項を走査する 一致? (式.PIL[i] and BV) xor TV PIL[1]:(101 and 101) xor 100=101=001(不 一致) isv={011,110},osv={000,000},TV=[100]
,BV=[101] 段階3:圧縮項を走査する 一致? ((式.CPIL[1].sl xor isv.sl) and (式.
CPIL[1].s2 xor isv.s2)) [{111,011},{001,111} CPIL[1]:(111 xor 011) and (011 xor 110) =100 and 101=100(不一致)続く CPIL[2]:(001 xor 011) and (111 xor 110) =010 and 001=000(一致) osv.s1:=osv.s1 or 式.CPIL[2].s1=000 or
001=001 osv.s2:=osv.s2 or 式.CPIL[2].s2=000 or
111=111 isv={011,110},osv={001,111},TV=[100]
,BV=[101] 段階4:走査から情報を抽出する CH:=((isv.s1 xor osv.s1) or (isv.s2 xo r osv.s2)) and !(BV) =(011 xor 001) or (110 xor 111)and ! 101 =(010 or 001) and 010=011 and 010=01
0 ローカルStateVector[2]={0,1}=真 したがって、予想したように、Yは真に等しい。
【0084】 例6:この例は、構成のフィールドから取られる。 車,ルールまたは制約について選択可能な要素間の関係は、 Model[Turbo] or Model[Cabriolet] ⇒ Me
talic Paints and Trim[Leather] and C
ruiseControl 以上の項を使用する代わりに、我々はこれらを更に可読性変数名に簡略化する
。 Model[Turbo] =A Model[Cabriolet] =B ModelPaints =C Trim =D CruiseControl =E 以上の制約は、下記の式に簡略化する。 A or B ⇒ C and D and E 我々は、高速ブール走査アルゴリズムを開始する。左端は、ActiveLi
stおよびResultListを示すポイントである。p4 5はステップ4
とステップ5との間のポイントを表し、同様に、p9 10はステップ9とステ
ップ10との間のポイントを表す。各反復において、項T,T1,T2が割り付
けられるものを表す。
【0085】
【表16】
【表17】
【0086】 その結果を、表16に挙げた2ビット表示に変換することができる。
【0087】
【表18】
【0088】 下記の表示に帰結する。 式=([A,B,C,D,E],[11111,10111,01111]
,[{11111,00111}])
【0089】 図5の「ローカル入力状態ベクトルを発生する」を参照する。 ここで、式A or B ⇒ C and D and Eにおいて、ユーザは、Ca
brioletモデルを無視する選択をしたがCruise制御を選択すること
に対応するB=偽およびE=真を選択していてもよい。 我々は、初期には、以上から下記のデータ構造を有する。 式.VariableList=[A,B,C,D,E] 式.PositiveIndexList=[11111,10111,01
111] 式.CompressPositiveIndexList=[{11111
,00111}] ポイントA(最初のループ後)で、InputStateVectorが割り
付けされていた。 isv.sl=11110 isv.s2=10111 Aの後、OutputStateVectorは、BoundVariabl
e,TrueVariableおよびAnyMatchが osv.s1=0 osv.s2=0 BV=not(isv.s1 and isv.s2)=not(11110 and 10111) =not 10110=01001 TV=BV and isv.s2=01001 and 10111=0000
1 AnyMatch=偽
【0090】 図6の「非圧縮項の走査」を参照する。 以下は、ループ629〜632の各反復における631および632を示す。
【0091】
【表19】
【0092】 したがって、Bで、出力状態ベクトルは、下記のように割り付けられる。 osv.s1=01000 osv.s2=10111
【0093】 図7の「圧縮項を走査する」を参照する。 734から737へのループは、圧縮正インデックス・リストのみが1要素を
含むときに、1回実行される。 736) 0=(式.CPIL[i].sl xor isv.s1) and ( 式.CPIL[i].s2 xor isv.s2) 0=(11111 xor 11110) and (00111 xor
10111) 0=00001 and 10000 0=00000 真 737) osv.sl:=osv.s1 or 式.CPIL[1].sl :=01000 or 11111 :=11111 osv.s2:=osv.s2 or 式.CPIL[1].s2 :=10111 or 00111 :=10111 AnyMatch:=真 ここで、AnyMatchは真に割り付けられたので、(38)でのテストは
通過され、アルゴリズムは、CHを初期化する(40)に進む。
【0094】 図8の「情報を抽出する」を参照する。 CH:=((isv.s1 xor osv.s1) or (isv.s2 x or osv.s2) and not BV CH:=(11110 xor 11111) or (10111 xor 10
111) and not 01001 :=(00001 or 00000) and 10110 :=00001 and 10110 :=00000
【0095】 844から848までのループ後に、状態ベクトルの要素が変更されることは
ない(真または偽に推論される)。しかしながら、状態ベクトルは何ら矛盾に至
ることはない。
【0096】 説明における一例として正インデックス形式を使用したが、ルール・ベースに
ついて他の表示が可能であることに注意すべきである。他の表示は、負インデッ
クス形式(ルールに違反している変数の組合せ)およびアレー形式(変数とルー
ルに違反しているか否かの表示とのすべての組合せ)であってもよい。本発明に
よる効果を得るために、開示されたアルゴリズムの適正な変更を行う必要がある
。しかしながら、これは、当該技術分野の当業者の技能範囲内である。
【0097】 本発明は、コンピュータのメモリにロードされて実行されるコンピュータ・プ
ログラムまたはコンピュータ・プログラムの一部として実施されてもよい。コン
ピュータ・プログラムは、任意のデータ・ストレージ媒体またはデータ伝送媒体
により分配されてもよい。ストレージ媒体は、磁気テープ,光ディスク,コンパ
クト・ディスク(CDまたはCD−ROM),ミニディスク,ハードディスク,
フロッピ・ディスク,強誘電体メモリ,電気的に消去可能なプログラマブル読出
し専用メモリ(EEPROM),フラッシュ・メモリ,EPROM,読出し専用
メモリ(ROM),スタティック・ランダム・アクセス・メモリ(SRAM),
ダイナミック・ランダム・アクセス・メモリ(DRAM),強磁性体メモリ,光
学的ストレージ,電荷結合素子,スマート・カードなどであってもよい。伝送媒
体は、ネットワーク、例えば、ローカル・エリア・ネットワーク(LAN),ワ
イド・エリア・ネットワーク(WAN)またはこれらの任意の組合せ、例えばイ
ンターネットであってもよい。ネットワークは、ワイヤおよびワイヤレス通信リ
ンクを備えていてもよい。ネットワークを経由して、本発明のソフトウェア実施
(すなわち、プログラム)またはその一部は、ネットワークを経由してプログラ
ムを転送することにより分配されてもよい。 また、本発明は説明された好ましい実施例に制限されないことが強調されるべ
きである。
【図面の簡単な説明】
【図1】 圧縮ルール表示を発生する方法に関するフロー・チャートを示す。
【図2】 式:(X or Y)⇒ Z用のパーズ・ツリーを示す。
【図3】 本発明による4状態のベクトルを示すとともに、圧縮項および非圧縮項の走査
を示す。
【図4】 本発明の好ましい一実施例の総合的な構造である。
【図5】 グローバル入力状態のベクトルからローカル入力信号を発生する方法に関する
フロー・チャートを示す。
【図6】 非圧縮項を走査する方法に関するフロー・チャートを示す。
【図7】 圧縮項を走査する方法に関するフロー・チャートを示す。
【図8】 情報を抽出する方法に関するフロー・チャートを示す。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年3月8日(2000.3.8)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正内容】
【0001】 発明の分野 本発明は、複数の要素を有する入力信号と複数の項に配列された複数の要素を 有する記憶されたルール・ベースと複数の要素を有する出力信号とを使用するこ とにより、複数の変数を有するブール・ルールに対する要求を処理する方法であ って、ルール・ベースにおける要素が、変数に対する真または偽のブール状態を 表示可能であり、かつ、ともに与えられた変数を表すルール・ベースにおける要 素および入力信号における要素について、論理的なオペレーションにより入力信 号の状態とルール・ベースにおける項の状態とを比較して、論理的なオペレーシ ョンの結果で出力信号を更新する、方法に関する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正内容】
【0018】 したがって、従来技術は、変数の項の形式で記憶され得るブール・ルールの表 示が許容できない大きなメモリ消費を必要とする、という問題がある。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正内容】
【0019】 発明の概要 したがって、本発明の目的は、ブール・ルールを表す複数の項を記憶するため に必要とするメモリの量を減少させることにある。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正内容】
【0020】 これは、前記ルール・ベースにおける要素がさらなる状態を表すとともに変数 が状態「真」および「偽」を取り得るように表示することを、導入段落で述べた 方法が特徴とするときに、達成される。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正内容】
【0022】 クロス・レファレンス 参照は下記の特許出願についてなされる。 (1)一組のオブジェクトを構成する方法およびコンピュータ・システム、PC T公開番号WO99/13413 (2)一組のオブジェクトを構成する方法およびコンピュータ・システム、PC T公開番号WO99/13410 (3)対話構成用の方法およびコンピュータ・システム、PCT公開番号WO9 9/13412 (4)対話構成システムにおいて無効選択を可能にする方法、PCT公開番号W O99/13411 これらは、本発明と連係して理解されるべきである。 以下、本発明を好ましい実施例に関連させるとともに、図面を参照して、さら
に詳細に説明する。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0094
【補正方法】変更
【補正内容】
【0094】 844から848までのループ後に、状態ベクトルの要素が変更されることは
ない(真または偽に推論される)。しかしながら、状態ベクトルは何ら矛盾に至
ることはない。 本発明によれば、要求がルールに従って有効か否かを検証するように、ルール に対する要求の高速処理を可能にする方法が提供される。 また、要求がルールに従って有効か否かを検証する要求を条件としてルールの 表示を圧縮可能にする方法が提供される。 さらに、要求における未知の情報を必ずではないが判断するように、ルール・ ベースから情報を推論可能にする方法が提供される。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U S,UZ,VN,YU,ZW

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 変数の状態を表した複数の要素を有する入力信号と複数の項
    に配列された複数の要素を有する記憶されたルール・ベースと前記変数の状態を
    表した複数の要素を有する出力信号とを使用することにより、前記複数の変数を
    有するブール・ルールに対する要求を処理する方法であって、前記入力信号およ
    び前記出力信号における前記要素が複数の2ビット対である方法であって、 前記ルール・ベースにおける前記要素は、前記変数の状態の複数の組合せが表
    示可能な2ビット対であり、かつ、前記ルール・ベースにおける項は、複数の変
    数の多数の組合せを表し、 前記ルール・ベースにおける複数の項について、いずれの2ビット対を前記出
    力信号における要素に書き込むのかを判断し、ともに与えられた変数を表す前記
    ルール・ベースにおける要素および前記入力信号における要素について、論理的
    なオペレーションにより前記入力信号の2ビットと前記ルール・ベースにおける
    項の2ビットとを比較する、 方法。
  2. 【請求項2】 前記入力信号,前記出力信号および前記ルール・ベースにお
    ける複数の項が、一つの共通組の状態を有し、前記共通組における各状態が、前
    記入力信号,前記出力信号および前記複数の項における同じビット値で符号化さ
    れる、請求項1記載の方法。
  3. 【請求項3】 前記入力信号および前記項の前記要素が、複数の状態の1つ
    すなわち「真」,「偽」または「トートロジー」を表す、請求項1〜2記載の方
    法。
  4. 【請求項4】 前記出力信号の前記要素が、複数の状態の一つすなわち「真
    」,「偽」,「トートロジー」または「矛盾」を表す、請求項1記載の方法。
  5. 【請求項5】 前記状態が、下記の2ビット値、すなわち 0 1 「真」 1 0 「偽」 1 1 「トートロジー」 0 0 「矛盾」 を有する、請求項3〜4記載の方法。
  6. 【請求項6】 前記ルール・ベースが、複数の2進要素を有する一組の項を
    さらに備え、かつ、前記組の項における各項が、前記変数に対して複数の状態の
    単一の組合せを表す、請求項1〜5記載の方法。
  7. 【請求項7】 前記項が、前記ブール・ルールに違反しない組合せのみ、前
    記ブール・ルールに違反する組合せのみ、またはすべての組合せと項がブール・
    ルールに違反するか否かの表示とを表す、請求項1〜6記載の方法。
  8. 【請求項8】 前記方法が、グローバル入力信号から1つのサブセットの変
    数として前記入力信号を発生するステップをさらに備え、かつ、前記変数のサブ
    セットが、前記ルールに係わる変数として判断される、請求項1〜7記載の方法
  9. 【請求項9】 前記方法が、複数の変数を有するグローバル出力信号を発生
    するステップをさらに備え、かつ、前記変数のいくつかが、前記出力信号からの
    複数の可変状態で更新される、請求項1〜8記載の方法。
  10. 【請求項10】 前記出力信号におけるすべての変数が、シンボル表示の「
    矛盾」で初期化される、請求項1〜9記載の方法。
  11. 【請求項11】 一致が、前記入力信号の複数の要素を前記ルール・ベース
    における複数項の要素とそれぞれ比較することによって検出され、かつ、前記入
    力信号における複数の要素が有効な組合せを表すと、一致が検出される、請求項
    1〜10記載の方法。
  12. 【請求項12】 下記の情報抽出戦略、すなわち 一致が検出されないと、前記出力信号が矛盾情報を含み、 前記出力信号において変数が変化しないと、何も推論せず、 そうでないときは、前記出力信号が前記シンボル表示「真」または偽」で更新
    されること、を有し、 前記抽出された情報をユーザ・インターフェースによりユーザに表示する、 請求項11記載の方法。
  13. 【請求項13】 メモリを有し、変数の状態を表した複数の要素を有する入
    力信号と前記変数の状態を表した複数の要素を有する出力信号とを使用すること
    により、前記複数の変数を有するブール・ルールに対する要求を処理するコンピ
    ュータ・システムであって、前記入力信号および前記出力信号における前記要素
    が、複数の2ビット対である、コンピュータ・システムであって、 前記メモリが、複数の項に配列された複数の要素を有するルール・ベースを備
    え、該ルール・ベースにおける前記複数の要素が、前記複数の変数の状態の複数
    の組合せが表示可能な2ビット対であり、前記ルール・ベースにおける項が、複
    数の変数の多数の組合せを表し、かつ、前記メモリが、前記ルール・ベースにお
    ける複数の項について、いずれの2ビット対を前記出力信号における要素に書き
    込むのかを判断し、ともに与えられた変数を表す前記ルール・ベースにおける要
    素および前記入力信号における要素について、論理的なオペレーションにより、
    前記入力信号の2ビットと前記ルール・ベースにおける項の2ビットとを比較す
    る、 コンピュータ・システム。
  14. 【請求項14】 前記入力信号,前記出力信号および前記ルール・ベースに
    おける複数の項が、一つの共通組の状態を有し、前記共通組における各状態が、
    前記入力信号,前記出力信号および前記ルール・ベースにおける同じビット値に
    より符号化されている、請求項13の記載のメモリを有するコンピュータ・シス
    テム。
  15. 【請求項15】 前記入力信号および前記項の前記要素が、複数の状態すな
    わち「真」,「偽」または「トートロジー」のうちの1つを表す、請求項13〜
    14記載のメモリを有するコンピュータ・システム。
  16. 【請求項16】 前記出力信号の前記要素が、複数の状態すなわち「真」,
    「偽」「トートロジー」または「矛盾」のうちの1つを表す、請求項13〜15
    記載のメモリを有するコンピュータ・システム。
  17. 【請求項17】 前記状態が、下記の2ビット値、すなわち 0 1 「真」 1 0 「偽」 1 1 「トートロジー」 0 0 「矛盾」 を有する、請求項15〜16記載のメモリを有するコンピュータ・システム。
  18. 【請求項18】 前記ルール・ベースが、複数の2進要素を有する一組の項
    をさらに備え、かつ、前記組の項における各項が、前記変数に対して複数の状態
    の単一の組合せを表す、請求項13〜17記載のメモリを有するコンピュータ・
    システム。
  19. 【請求項19】 前記項が、前記ブール・ルールに違反しない組合せのみ、
    前記ブール・ルールに違反する組合せのみ、または、すべての組合せと項がブー
    ル・ルールに違反するか否かの表示とを表す、請求項13〜18記載のメモリを
    有するコンピュータ・システム。
  20. 【請求項20】 前記方法が、グローバル入力信号から1つのサブセットの
    変数として前記入力信号を発生するステップをさらに備え、かつ、前記変数のサ
    ブセットが、前記ルールに係わる変数として判断される、請求項13〜9記載の
    メモリを有するコンピュータ・システム。
  21. 【請求項21】 前記方法が、複数の変数を有するグローバル出力信号を発
    生するステップをさらに備え、かつ、前記変数のいくつかが、前記出力信号から
    の複数の可変状態で更新される、請求項13〜20記載のメモリを有するコンピ
    ュータ・システム。
  22. 【請求項22】 前記出力信号におけるすべての変数が、シンボル表示「矛
    盾」で初期化される、請求項13〜21記載のメモリを有するコンピュータ・シ
    ステム。
  23. 【請求項23】 一致が、前記入力信号の複数の要素を前記ルール・ベース
    における複数項の要素とそれぞれ比較することによって検出され、かつ、前記入
    力信号における複数の要素が有効な組合せを表すと、一致が検出される、請求項
    13〜22記載のメモリを有するコンピュータ・システム。
  24. 【請求項24】 前記手順が、下記の情報抽出戦略、すなわち 一致が検出されないと、前記出力信号は矛盾情報を含み、 前記出力信号における変数が変化しないと、何も推論されず、 そうでないときは、前記出力信号は前記シンボル表示「真」または偽」で更新
    されることをさらに備え、 前記抽出された情報をユーザ・インターフェースによりユーザに表示する、請
    求項23記載のメモリを有するコンピュータ・システム。
JP2000511111A 1997-09-09 1998-09-09 ブール・ルールに対する要求を処理する方法および装置 Withdrawn JP2001516098A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DK102997 1997-09-09
DK1029/97 1997-09-09
PCT/DK1998/000383 WO1999013401A2 (en) 1997-09-09 1998-09-09 Method and apparatus for processing a request to a boolean rule

Publications (1)

Publication Number Publication Date
JP2001516098A true JP2001516098A (ja) 2001-09-25

Family

ID=8100194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000511111A Withdrawn JP2001516098A (ja) 1997-09-09 1998-09-09 ブール・ルールに対する要求を処理する方法および装置

Country Status (7)

Country Link
US (1) US20020013775A1 (ja)
EP (1) EP1019811B1 (ja)
JP (1) JP2001516098A (ja)
AT (1) ATE253750T1 (ja)
AU (1) AU9062498A (ja)
DE (1) DE69819543T2 (ja)
WO (1) WO1999013401A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725452B1 (en) * 2000-06-01 2004-04-20 Aduoa, Inc. Method for resolving dependency conflicts among multiple operative entities within a computing environment
US7140013B2 (en) * 2000-06-01 2006-11-21 Aduva, Inc. Component upgrading with dependency conflict resolution, knowledge based and rules
US7814052B2 (en) * 2006-11-03 2010-10-12 Salesforce.Com, Inc. Implementing formulas for custom fields in an on-demand database
US8832144B2 (en) * 2011-07-11 2014-09-09 International Business Machines Corporation Search optimization in a computing environment
US10318703B2 (en) 2016-01-19 2019-06-11 Ford Motor Company Maximally standard automatic completion using a multi-valued decision diagram
WO2020159772A1 (en) * 2019-01-31 2020-08-06 Optumsoft, Inc. Approximate matching

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL93220A0 (en) * 1989-02-03 1990-11-05 Bang & Olufsen As Signal processing apparatus and method

Also Published As

Publication number Publication date
ATE253750T1 (de) 2003-11-15
US20020013775A1 (en) 2002-01-31
DE69819543T2 (de) 2004-05-13
WO1999013401A2 (en) 1999-03-18
DE69819543D1 (de) 2003-12-11
EP1019811B1 (en) 2003-11-05
AU9062498A (en) 1999-03-29
WO1999013401A3 (en) 1999-05-06
EP1019811A2 (en) 2000-07-19

Similar Documents

Publication Publication Date Title
US7376668B2 (en) Dynamic filtering in a database system
EP2450809B1 (en) Method for extracting information from a database
US6742001B2 (en) System and method for sharing data between hierarchical databases
US7096216B2 (en) Performing operations on a set of objects in a database system
US7149733B2 (en) Translation of object queries involving inheritence
US7162469B2 (en) Querying an object for properties
US7693812B2 (en) Querying data and an associated ontology in a database management system
US7082433B2 (en) Translation of object queries involving inheritence
US20090077074A1 (en) Apparatus, computer program product, and method for supporting construction of ontologies
US20060242183A1 (en) Declaratively extended hierarchical configuration system and method
US20050015745A1 (en) Method and system for designing customizable applications and user-interfaces based on user-defined policies and metadata
US8280836B2 (en) Converting unordered graphs to oblivious read once ordered graph representation
US20040015473A1 (en) Method for specifying and parsing expressions
JP2000029674A (ja) アプリケ―ションソフトウェア構成方法
Hasan et al. Graphettes: Constant-time determination of graphlet and orbit identity including (possibly disconnected) graphlets up to size 8
JP2001516098A (ja) ブール・ルールに対する要求を処理する方法および装置
US8935657B2 (en) Model-to-model transformation by kind
JP5005908B2 (ja) 従属性によって与えられるマッピング合成のシステムおよび方法
JP6802109B2 (ja) ソフトウェア仕様分析装置、及びソフトウェア仕様分析方法
CN117422120A (zh) 深度学习模型的计算图优化方法、装置、终端及存储介质
Grilnberger Dynamic Triangle Counting with Worst-Case Update Time
Sefer et al. Optimal Reconstruction of Graph Evolution Dynamics for Duplication-Based Models
JPH11167507A (ja) オブジェクト指向のファイルを用いたデータ処理方法及びオブジェクト指向のファイルを用いたデータ処理プログラムを記録した記録媒体
JP2004110102A (ja) プロジェクト管理方法および工程定義装置
JP3574458B2 (ja) データ評価システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060110