JPH0652502B2 - 推論方法 - Google Patents

推論方法

Info

Publication number
JPH0652502B2
JPH0652502B2 JP62109046A JP10904687A JPH0652502B2 JP H0652502 B2 JPH0652502 B2 JP H0652502B2 JP 62109046 A JP62109046 A JP 62109046A JP 10904687 A JP10904687 A JP 10904687A JP H0652502 B2 JPH0652502 B2 JP H0652502B2
Authority
JP
Japan
Prior art keywords
rule
collation
cycle
rules
precondition
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.)
Expired - Lifetime
Application number
JP62109046A
Other languages
English (en)
Other versions
JPS63273939A (ja
Inventor
孝義 横田
圭介 戸次
亘曼 浜田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62109046A priority Critical patent/JPH0652502B2/ja
Priority to US07/187,590 priority patent/US4937755A/en
Priority to DE3851014T priority patent/DE3851014T2/de
Priority to EP88107101A priority patent/EP0297248B1/en
Publication of JPS63273939A publication Critical patent/JPS63273939A/ja
Publication of JPH0652502B2 publication Critical patent/JPH0652502B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • Y10S706/921Layout, e.g. circuit, construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、種々の状況に応じて対処する前向き推論型プ
ログラムのプロダクシヨンシステムの高速化技術に関わ
り、特に、論理回路の計算機による設計支援方式におけ
るCMOS−LSI 等の大規模な論理装置内で使われ
る組合せ論理回路の部分の自動設計技術への応用に適す
る、 〔従来の技術〕 従来のプロダクシヨンシステムの高速化技術は、弁別ネ
ツトを基本としたルールコンパイラ方式の延長上の技術
が提案されているが、この種のアルゴリズムはルールの
条件に変数を多く持つような応用分野では、効率の低下
が著しく、またコンパイル時間も問題となる。さらに、
処理系自体複雑になる。一方、論理回路の等価変換等の
回路の結線情報を扱う分野では、必然的に、ルールは変
数を多く含むため、この様な応用分野でも高速に動作可
能なプロダクシヨンシステムの実現が必要であつた。
この種の技術としては特開昭60−24646 号公報,特開昭
61−88371 号公報,特開昭61−153738号公報,特開昭61
−177547号公報,特開昭60−72031 号公報,特開昭60−
72032 号公報,特開昭60−134349号公報,特開昭60−72
032 号公報、特開昭59−168545号公報,特開昭61−2418
72号公報等に記載されている。
〔発明が解決しようとする問題点〕
上記従来技術は、プロダクシヨンシステムの高速化に関
して、特に論理回路の接続情報の様に、平板で均質に近
い情報を扱う場合の考慮がされておらず、ルールの条件
記述内に変数を多く含む場合に処理速度が低下したり、
あるいは、全く高速化の工夫が成されておらず、扱う回
路規模や、ルール数の増大とともに、適用可能なルール
を探すために、プロダクシヨンシステムは膨大なパター
ン照合処理に時間を要してしまうという問題があつた。
本発明の目的は、従来のルールコンパイラの様なルール
自体の持つている先見的情報を利用して高速化するので
は無く、プロダクシヨンシステムの実行状況を元に、後
見的にルールの適用制限処理と、ルールの順序を再編成
する一種の学習的処理を用いる事によつて回路の接続情
報等の均質な情報を扱うプロダクシヨンシステムの高速
化を図ることにある。
〔問題点を解決するための手段〕
上記目的は照合を開始してから前提条件が成立するまで
を1の照合サイクルとする該照合サイクルを開始し、前
提条件が成立した場合に照合サイクルを終了するととも
に前提条件が成立した照合サイクル数及び前提条件が成
立したルールに付されている番号を記憶し、前提条件の
成立したルールから照合サイクル数に1を加えて新たな
照合サイクルを開始し、 新たな照合サイクルが開始された後に全てのルールの前
提条件が成立しなかった場合に作業記憶部に記憶された
情報の内容についての照合を終了し、 次に記憶した照合サイクル数及び記憶されたルールに付
された番号の大小を相互に比較し、照合サイクル数の大
小関係とルールに付された番号の大小関係が異なると
き、記憶されたルールに付された番号の大きいルールの
後に記憶されたルールに付された番号の小さいルールが
配置されるように複数のルールを再構成することをによ
り達成される。
〔作用〕
本願発明は照合を開始してから前提条件が成立するまで
を1の照合サイクルとする該照合サイクルを開始し、前
提条件が成立した場合に照合サイクルを終了するととも
に前提条件が成立した照合サイクル数及び前提条件が成
立したルールに付されている番号を記憶し、前提条件の
成立したルールから照合サイクル数に1を加えて新たな
照合サイクルを開始することにより使用したルール及び
その使用した順位を記憶することができる。
新たな照合サイクルが開始された後に全てのルールの前
提条件が成立しなかった場合に作業記憶部に記憶された
情報の内容についての照合を終了し、 次に記憶した照合サイクル数及び記憶されたルールに付
された番号の大小を相互に比較し、照合サイクル数の大
小関係とルールに付された番号の大小関係が異なると
き、記憶されたルールに付された番号の大きいルールの
後に記憶されたルールに付された番号の小さいルールが
配置されるように複数のルールを再構成することによ
り、使用したルールについて使用した順にルールを配置
するよう再構成するために、使用しないルールについて
再度照合することがなくなるためパターン照合処理時間
が短くなり、高速なプロダクションシステムを得ること
ができる。
〔実施例〕
以下、本発明の第1の実施例を第1図により説明する。
実施例に用いるシステムの構成を第1図に示す。
第1図に於いて、1はCMOS論理回路への等価変換の
対象となる回路接続情報の初期データを入力する初期デ
ータ入力部、 2は等価変換の対象となる回路接続情報を格納しておく
作業記憶部、 3はルール記憶部に格納されたルールを取り出し、上記
作業記憶内に格納された接続情報とルールの条件部との
照合を行ない、照合した場合ルールの実行部を実行する
解釈実行部となるルールインタープリンタ、 4は複数の等価変換ルール群を格納するルール記憶部、 5は照合に失敗したルールに付加するルールフラグ記
憶、 6は、プロダクシヨンシステムの各照合サイクル中に照
合に失敗したルールとそのサイクル番号を対応付けて記
憶するための記憶要素、 7は、該作業記憶部2内に格納記憶された回路接続情報
を利用者にプリント,デイスプレイ等の表示するための
データ出力部、 8は、全体の制御を行うための制御部である。
以降、第2図に示すフロー図とともにルールフラグを用
いる実施例を説明する。
まず最初に、第1図中初期データ入力部1には第3図に
示す回路図に対応する接続情報が第4図に示す形式で格
納されているとする。
この接続情報の第1要素のand,inv,or等は、ゲートの
論理種別を表わし、第2要素は入力端子の節点番号ある
いは節点名リスト、第3要素は出力端子の節点番号ある
いは節点名を表わす。
第1図中のルール記憶部に4は、第5図に示すようなif
then形式のルールが格納され、if の後には前提条件部
となるもので、等価変換の対象となる接続情報の相互関
係をリストの節点情報を変数にした形で記載しておく。
ここで同一変数には同一節点番号が代入されるようにPr
olog言語を用いる。
また、thenの後には、実行部となるものでif部が作業記
憶内容と照合に成功した場合に実行される作業記憶内容
を更新するためのPrologのプログラムを記述してある。
ここで、第5図に示すようなプロダクシヨンルールが複
数個(例えば20個)ある優先度で順番に並んでいるも
のとする。第5図(a)のプロダクシヨンルールは、5
番目のルールであり、第5図(b)に示す変換を行うも
のである。第5図(c)は第9番目のプロダクシヨンル
ールであり、第5図(d)に示す変換を行うものであ
る。第5図(e)は第11番目のプロダクシヨンルール
であり、第5図(f)に示す変換を行うものである。第
5図(g)は第17番目のプロダクシヨンルールであ
り、第5図(h)に示す変換を行うものである。また、
第3図に示す回路の等価変換に必要なルールは第5図
(a),(c),(e),(g)で明記した4種しか無
く、図示しない他のルール(例えば他16個)は全て照
合を失敗する無関係なルールであるとする。
次に、第2図に示すフロー図を用いて本実施例の動作を
説明する。
まず、第4図に示す等価変換の対象となるネツトリスト
を第1図中の初期データ入力部1によつて入力し(第2
図中100)、 その後第1図中の作業記憶部2内に第1図中の制御部8
の働きによつて転送する。(第2図中101) 次に、ルールの照合サイクルのカウンタlを1に初期設
定し、(第2図中102) 次に、全てのルールフラグをOKにセツトする。(第2
図中103) 次に、ルールの番号を表わすルールポインタNを1に設
定する。(第2図中104) 第1図中のルールフラグメモリ5からn=1のフラグF
(1)を取り出す。(第2図中105) この場合、フラグの値はOKなのでn=1のルールを取
り出す。(第2図中106,107) 次に、その条件部のリストと第4図に示した作業記憶内
容との照合を試みる。(第2図中108) しかし、ルール1の条件部と照合する接続情報は作業記
憶部内に存在しないので照合に失敗し、ルールフラグF
(1)にNGが代入される。(第2図中109−11
2)。
次に、照合失敗サイクル記憶のC(1)に現在の照合サ
イクル数1が代入される。(第2図中113) この段階ではルールフラグのF(2)からF(20)ま
ではOKが格納されているため第2図中(114)を経
由してルールポインタを1つ加算して2にする。(第2
図中117) この値はルール総数N=20よりも小さいので第2図中
118を経由して次のルールの適用に移る。(第2図中
105) この場合、ルールポインタの値は2であるのでルールフ
ラグF(2)が取り出され(第2図中105)、この値
はOKになつているためルール2を取り出し(第2図中
106,107)照合を試みるがこれも失敗し、(第2
図中108,109)第2図中112へ分岐する。
このようにして次々とルールの照合を繰り返すと、ルー
ル1からルール4までは作業記憶内容と各ルールの条件
部が照合しないので全て照合に失敗し、ルールフラグの
F(1)からF(4)までは全てNGが格納され、照合
失敗サイクル記憶C(1)からC(4)までに現照合サ
イクル数1が代入される。
次に、第2図中105に分岐すると第5図(a)に示され
るルール5が取り出されるが、このルール5の条件部の [[and,In1,Out1],[and,In2,Out2], [not match,In1,In2],[intersect,In1,In
2,Ans], [num of atom,Ans,N], [not match,N,O],[not match,N,1]] は第4図で示す作業記憶内の下線を施した結線情報リス
トの[and,[1000,1001,2],2002]と[and,[1
000,1001,1002],2003]に照合し、変数In
1には[1000,1001,2]が、Out1には200
2が、In2には[1000,1001,1002]が、
Out2には2003が代入されることから以下のような
具体化される。
[[and,[1000,1001,2],2002], [and,[1000,1001,1002],2003], [not match,[1000,1001,2],[1000,100
1,1002]], [intersect,[1000,1001,2],[1000,100
1,1002],[1000,1001]], [num of atom,[1000,1001],2], [not match,2,0], [not match,2,1]] ここで、not matchは2つのリストが異なつているかを
調べる関数で、上記条件文に含まれるnot match 関数は
全て成立する。
一方、intersect は2つのリストの共通要素を求め、そ
れが第3引数と等しいかを判定する関数である。この場
合、[1000,1001]が共通要素であるから、この
関数intersectは成功する。
また、関数num of atom は、第1引き数のリストの要素
数が第2引き数と等しいかを判定する関数である。この
場合、リスト[1000,1001]の要素数は2であるから
成立する。
従つて、上記条件部は全て成立することが判明し、該ル
ールの、実行部が実行され、第5図(b)に示すような等
価変換が行われる。(第2図中110) この照合にはPrologのパターンマツチング機能を用いて
いる。
このように、ルール5の前提条件が成立し、照合に成功
し、その実行部を実行した後、第2図中121へ進み、
照合サイクルカウンタ1に1を加算し、次の照合サイク
ル2に入る。(第2図中104) このように、ある照合サイクル中に、あるルールが適用
可能であると判定された場合に、そのルールを1度だけ
適用し作業記憶部の更新書き換えた後は次の照合サイク
ルに入る。
照合サイクル2ではルールフラグ1から4までがNGで
あるため、ルール5から照合を試みる。
つまり、ルール1〜4の優先度が低く更新されたことに
より、また、ルール5の優先度が高く更新されることに
なる。ルール5から照合を試みるが、もはや照合する接
続情報が作業記憶中に存在しない場合はルールフラグF
(5)をNGにして(第2図中108→109→11
2)、照合失敗サイクル記憶C(5)に現サイクル数2
の代入する。(第2図中113) 照合サイクル2で、再度ルール5の照合に成功した場合
は、次の照合サイクル3でも、再度ルール5から照合を
試みる。
同様にして第2図中114→117→118→105を
経由して次のルール6の照合処理に移る。
この様にしてルール6,7,8,9,10と順に照合を
試みて行くが、全て照合に失敗するのでルールフラグF
(1)からF(10)までがNGとなり、照合失敗サイ
クル記憶のC(6)からC(10)に現サイクル数の2
が代入される。
次にルール11が照合に成功し、このルールの実行部を
実行した後に照合サイクル3に入る。(第2図中12
1) この様にして1つの照合サイクルの中で前照合サイクル
中に適用に失敗したルールの照合を禁止し、全てのルー
ルフラグがNGになつた場合に処理の終了判定を行う。
(第2図中114,115) この終了判定条件は、第2図中115に示す様に、各ル
ールに1対1の設けた照合失敗サイクル記憶C(1)か
らC(20)の値の差が1以下であるという条件を用い
る。ここで、もし上記終了条件が満たされていれば、も
はや照合可能なルールが存在しないので処理を終了す
る。(第2図中116) 照合サイクル記憶の内容の差が1以下でない場合は、ル
ール照合が全てのルールに対して一連に失敗していない
ことを表わすため、サイクルカウンタに1を加算して
(第2図中119)、次の照合サイクルに入る。
次に第2図中120に進み、照合サイクル記憶中で最も
サイクル番号の大きいもの以外のサイクル番号が格納さ
れているものに対応するルールのルールフラグの値をN
GからOKに復帰させる。そして、第2図中104に進
み照合処理を続行する。
本実施例における各照合サイクル中でのルールの照合の
様子を第9図(a)に示す。ここでx印は照合の失敗を
表わし、第4図の作業記憶内容の全ての組合せを取つて
も照合しようとするルールの条件部が成立し得なかつた
ことを示す。
照合失敗の様子を、より分かり易く図で示すと第10図
にようになる。すなわち、例えば第10図(a)に示す
ような回路図に対応する作業記憶内容に対して、第10
図中(b)のルールの条件部を照合しようとする場合を
考える。同ルール中のANDゲートXが第1番目の条件
で、NOT回路Yが第2番目の条件であるとする。AN
DゲートXに該当するANDゲートは第10図(a)の
作業記憶内に5個存在する。
一方NOT回路は存在しない。このような場合、結局第
10図(c)に示すように5回の条件部の照合を試みた
末に全て照合しないことがわかり、該ルールは照合失敗
と判定される。従つて、回路情報の規模が増出した場合
やルールの条件部が複雑になる程、この照合失敗の判定
に要する計算時間は非常に大きなものとなる。
一方、第9図(a)中の○印は照合成功を表わし、これ
は作業記憶内容の1つの最初に発見されたある回路接続
情報の組合せがルールの条件部を満足し、そのルールの
実行部が一度だけ適用され、作業記憶内容が書き替えら
れたことを意味し、これに要する計算時間は一般に、前
記の照合失敗の判定よりも少ない。
第9図中(a)の空白はルールフラグを参照することに
よつて省かれた不要な照合を表わす。
本実施例では、全部で9サイクルの照合サイクルで処理
を終了する。
この結果、第4図に示した作業記憶内容は第6図(b)
に示すものに変換され、対応する論理図は第6図(a)
となる。
次に本発明の第2の実施例を説明する。
構成要素は、実施例1と同一である。本実施例では、実
施例1で説明した処理に第7図,第11図のフローで示
す処理を加える。
実施例1において、各照合サイクル中で、照合サイクル
番号と、照合に成功したルールの番号を第8図に示す様
な形式で作業記憶内に記録して行く。(第7図中200
→201→202→203→204→201) この様にして照合サイクルを繰り返し、実施例1で述べ
た終了条件を満たすと作業記憶内には第8図に示す様な
照合サイクル番号とそのサイクルで照合したルール番号
の情報cycle 述語が列挙される。
そして、以下の学習処理に移る。(第7図中の203−20
5) 学習処理について第11図のフロー図で説明する。
まず、等価変換処理に要した照合サイクル数をLmax に
代入する。(第11図中300) この場合Lmax には9が代入される。
次に、変数nに1を代入し、(第11図中301)変数m
に2を代入する。(第111図中302) 次に、照合サイクル番号がnとmに該当するcycle述語
を参照し、(第11図中303−304)ルール番号とR
nとRmの値を調べる。
まず、第11図中305においてRnが無効番号“1”
であるかを調べ、もしそうであれば第11図中308へ
進む。
もし、そうでなければ第11図中306に進みRmが無
効番号であるかを調べる。
もし、Rmが無効番号一であれば第11図中308へ進
み、もしそうでなければ第11図中307に進みRnと
Rmの大小比較を行う。
ここで、もし、RnがRm以下であれば第11図中30
8へ進み、もしそうでなければ第11図中311に進
む。
本実施例では、第8図に示すようにcycle(1,5)、cycle
(2,11)であるので第11図中の305−306−
307を経由して図中の308へ進む。
第11図中308では変数nに1を加算し、このnの値
がLmax 未満であれば第11図中302に分岐して次の
照合サイクルについての学習処理に入る。
第11図中307の大小比較において、もし、RnがR
mより大きければ、ルールnとルールmの順序関係を逆
転した方が照合サイクル数の低減化が図れるのでルール
nをルールmの直後に移動する。(第11図中311)
そして、第11図中308に進む。
この様にして、全てのcycle 述語について調べ終わつた
ら学習処理を終了する。(第11図中308−309−
310) 本実施例の場合、第8図を見て明らかなように、ルール
17とルール9の優先順序関係を逆転することになり、
ルールの順番は第9図(b)に示すように再編成され
(下線を引いたものが再編成されたルール)、それに伴
つて、同一問題に対してサイクル数の低減化,照合失敗
回数の低減化(9サイクル→8サイクル)が図られる。
次に本発明の第3の実施例を説明する。構成要素は、上
記の実施例1,2と同一である。本実施例では、実施例
2で得られたcycle 述語を利用して、さらに効率の良い
ルールの順序変更を行い、同種の問題に対する処理速度
の向上を行う。この処理の流れを第12図のフローを用
いて説明する。
まず、再編成後のルールの位置を与えるためのルールポ
インタpの値を1に初期設定する。(第12図中40
0) 次に実施例2で示した実行後の最大サイクル数を変数L
max に代入する。(第12図中401)、本実施例では
Lmax の値は9である。
次に、変数nを1に初期設定し、(第12図中40
2)、変数mを2に初期設定する。(第12図中40
3) 次に、照合サイクル番号がnとmに該当するcycle述語
を取り出す。この場合、cycle述語は実施例2によつて
第8図に示す物が第1図中の作業記憶2内に登録されて
いるとする。
すなわち、まず、cycle(1,5)と、cycle(2,1
1)が取り出される。(第12図中404、405)ここ
で、Rn=R1=5であり、R1の値は“−”でないの
で、第12図中の406から407へ進み、R1とR2
比較が行われる。
ここでRm=R=11であるから第12図中の410
へ進み、nの値を1だけ加算して、ルールポインタpの
値1の位置にルール5を移動する。(第12図中41
3) 次に、ルールポインタpの値を1加算して2にして第1
2図中411に進む。ここではまだ、pの値はLmax 以
下であるから第12図中411から403へ進み次のル
ープに入る。
以降、この処理を繰り返すことによりルールは第8図の
cycle 述語に出現するルール番号の順に再編成され、先
頭部に5,11,17,9の順で並ぶことになる。
この再編成されたルール群を用いて同一の等価変換問題
を解くと第9図(c)に示す様に、実施例2で示したよ
りも、さらに照合失敗回路の低減が図られる。
以下、ルール適用禁止フラグを用いない場合の第4の実
施例を第13図により説明する。本実施例に用いるシス
テムの構成を第13図に示す。
第13図中21はCMOS論理回路への等価変換の対象
となる回路接続情報の初期データを入力する初期データ
入力部、 第13図中22は等価変換の対象となる回路接続情報を
格納しておく作業記憶部、 第13図中23はルール記憶部に格納されたルールを取
り出し、上記作業記憶内に格納された接続情報とルール
の条件部との照合を行ない、照合した場合ルールの実行
部を実行する解釈実行部となるルールインタープリン
タ、 第13図中24は等価変換ルール群を格納するルール記
憶部、 第13図中25は、該作業記憶内に格納された回路接続
情報を利用者に表示するためのデータ出力部、 第13図中26は、全体の制御を行うための制御部であ
る。
以降、第14図に示すフロー図をもとに実施例を説明す
る。
まず最初に、第13図中の初期データ入力部21には第
3図に示す回路図に対応する接続情報が第4図に示す形
式で格納されているとする。
この接続情報の第1要素のand,inv,or等は、ゲートの
論理種別を表わし、第2要素は入力端子の節点番号ある
いは節点名リスト、第3要素は出力端子の節点番号ある
いは節点名を表わす。
第13図中のルール記憶部24には、第5図に示すよう
になif then形式のルールが格納され、ifの後には等価
変換の対象となる接続情報の相互関係をリストの節点情
報を変数にした形で記載しておく。ここで同一変換には
同一節点番号が代入されるようにProlog言語を用いる。
また、thenの後には、if部が作業記憶内容と照合に成功
した場合に実行される作業記憶内容を更新するためのPr
ologのプログラムを記述してある。
ここで、例えば、全部が20個のプロダクシヨンルール
が順番に並んでいるものとする。また、第3図に示す回
路の等価変換に必要なルールは第5図(a),(c),
(e),(g)で明記した4種しか無く、他のルールは
全て照合を失敗する無関係なルールであるとする。
次に、第14図に示すフロー図を用いて本実施例の動作
を説明する。
まず、第4図に示す等価変換の対象となるネツトリスト
を第13図中の初期データ入力部21によつて入力し
(第14図中100)、 その後第13図中の作業記憶内22に第13図中の制御
部26の働きによつて転送する。(第14図中101) 次に、ルールの照合サイクルのカウンタlを1に初期設
定し、(第14図中102) 次に、ルールの番号を表わすルールポインタnを1に設
定する。(第14図中103) 次に、該ルールポインタの値で指定されるルール1の条
件部のリストと第4図に示した作業記憶内容との照合を
試みる。(第14図中105) しかし、ルール1の条件部と照合する接続情報は作業記
憶内に存在しないので照合に失敗し、照合失敗サイクル
記憶のC(1)に現在の照合サイクル数1が代入され
る。(第14図中108) 次に、第14図中(109)を経由してルールポインタ
を1つ加算して2にする。(第14図中111) このルールポインタの値はルール総数N=20よりも小
さいので第14図中112を経由して次のルールの適用
に移る。(第14図中104) この場合、ルールポインタの値は2であるのでルール2
を取り出し(第14図中105,106)照合を試みるが
これも失敗し(第14図中106)、第14図中108へ
分岐する。
このようにして次々とルールの照合を繰り返すと、ルー
ル1からルール4までは作業記憶内容と各ルールの条件
部が照合しないので全て照合に失敗し、照合失敗サイク
ル記憶C(1)からC(4)までに現照合サイクル数1が
代入される。
次に、第14図中104に分岐するとルール5が取り出
されるが、このルール5の条件部の [[and,In1,Out1],[and,In2,Out2], [not match,In1,In2],[intersect,In1,In
2,Ans], [num of atom,Ans,N], [not match,N,O],[not match,N,1]] は作業記憶内の結線情報リストと第14図105におい
て照合し、実施例1と同様にして以下のように具体化さ
れる。
[[and,[1000,1001,2],2002], [and,[1000,1001,1002],2003], [not match,[1000,1001,2],[1000,100
1,1002]], [intersect,[1000,1001,2],[1000,100
1,1002],[1000,1001]], [num of atom,[1000,1001],2], [not match,2,0],[not match,2,1]] ここで、not match は2つのリストが異なつているかを
調べる関係で、intersect は2つのリストの共通アトム
を求め、第3引数に帰する関数である。
その後、上記条件部は実施例1の同様に全て成立するこ
とが判明し、該ルールの実行部が実行され、第5図
(b)に示すように等価変換が行われる。(第14図中
107) この照合にはPrologのパターンマツチング機能を用いて
いる。
ルール5が照合に成功し、その実行部を実行した後、第
14図中113へ進み、照合サイクルカウンタ1に1を
加算し、次の照合サイクル2に入る。(第14図中10
3) このように、ある照合サイクル中に、あるルールが適用
可能であると判定された場合に、そのルールを1度だけ
適用し、作業記憶を書き替えた後次の照合サイクルに入
る。
照合サイクル2ではルール1から4までの照合を照合サ
イクル1の時と同様に失敗し、ルール5の照合に進む
が、もはや照合する接続情報が作業記憶中に存在しない
のでルール5も照合に失敗し、照合失敗サイクル記憶C
(5)に現サイクル数2を代入する。(第14図中10
8) 同様にして第14図中109→111→112→104
を経由して次のルールの照合処理に移る。
この様にしてルール6,7,8,9,10と順に照合を
試みて行くが、全て照合に失敗するので照合失敗サイク
ル記憶のC(6)からC(10)に現サイクル数2が代
入される。
次にルール11が照合に成功し、このルールの実行部を
実行した後に照合サイクル3に入る。(第14図中11
3) このような処理を繰り返し、全ての照合失敗サイクル記
憶に値が格納された場合に処理の終了判定を行う(第1
4図中109)。
この終了判定条件は、第14図中109に示す様に、各
ルールに1対1に設けた照合失敗サイクル記憶C(1)
からC(20)の値の差が1以下であるという条件を用
いる。ここで、もし上記終了条件が満たされていれば、
もはや照合可能なルールが存在しないので処理を終了す
る。(第14図中110) 照合サイクル記憶の内容の差が1以下でない場合は、ル
ール照合が全てのルールに対して一連に失敗していない
ことを表わすため、サイクルカウンタに1を加算して
(第14図中113)、次の照合サイクルに入り、第1
4図中103へ進み、照合処理を続行する。
このような回路の等価変換処理において、実施例2で示
したように、各照合サイクル中で、照合サイクル番号
と、照合に成功したルールの番号を第8図に示す様な形
式で作業記憶内に記録して行く。(第8図中200→2
01→202→203→204→201) この様にして照合サイクルを繰り返し、実施例4で述べ
た終了条件を満たすと作業記憶内には第8図に示す様な
照合サイクル番号とそのサイクルで照合したルール番号
の情報cycle 述語が列挙される。そして、以下の学習処
理に移る。(第7図中203→205) 学習処理については実施例2と同様に第11図のフロー
図で説明する。
まず、等価変換処理に要した照合サイクル数をLmax に
代入する。(第11図中300) この場合Lmax には9が代入される。次に、変数nに1
を代入し、(第11図中301)変数mに2を代入す
る。(第11図中302) 次に、照合サイクル番号がnとmに該当するcycle 述語
を参照し、(第11図中304−304)ルール番号Rn
とRmの値を調べる。
まず、第11図中305においてRnが無効番号“−”
であるかを調べ、もしそうであれば第10図中308へ
進む。
もし、そうでなければ第11図中306に進みRmが無
効番号であるかを調べる。
もし、Rmが無効番号“−”であれば第11図中308
へ進み、もし、そうでなければ第11図中307に進み
RnとRmの大小比較を行う。
ここでもし、RnがRm以下であれば第11図中308
へ進み、もしそうでなければ第11図中311へ進む。
本実施例では、第8図に示すように、cycle (1,
5)、cycle(2,11)であるので第11図中の30
5−306−307を経由して図中の308へ進む。
第11図中308では変数nに1を加算し、このnの値
がLmax 未満であれば第11図中302に分岐して次の
照合サイクルについての学習処理に入る。
第11図中307の大小比較において、もし、RnがR
mより大きければ、ルールnとルールmの順序関係を逆
転した方が照合サイクル数の低減化が図れるのでルール
nをルールmの値後に移動する。(第11図中311)
そして、第11図中308に進む。
この様にして、全てのcycle 述語について調べ終わつた
ら学習処理を終了する。(第11図中308−309−
310) 本実施例の場合、第8図を見て明らかなように、ルール
17とルール9の優先順序関係を逆転することになり、
ルールの順番は第15図(b)に示すように再編成され
る(下線を引いたものが再編成されたルール)、それに
伴つて、同一問題に対して、第15図(a)に示す様
に、ルールの再編成をしない場合に比較して照合失敗回
数の低減化(88回→78回)が図られる。
次に本発明の第5の実施例を説明する。構成要素は、上
記の実施例4と同一である。
本実施例では、実施例4で得られたcycle 述語を利用し
て、さらに効率の良いルールの順序変更を行い、同種の
問題に対する処理速度の向上を行う。この処理の流れを
実施例3と同様に第12図のフローを用いて説明する。
まず、再編成後のルールの位置を与えるためのルールポ
インタpの値を1に初期設定する。(第12図中40
0) 次に実施例2で示した実行後の最大サイクル数を変数L
maxに代入する。(第12図中401)本実施例ではLm
ax の値は9である。
次に、変数nを1に初期設定し、(第12図中40
2)、変数mを2に初期設定する。(第12図中40
3) 次に、サイクル番号がnとmに該当するcycle 述語を取
り出す。この場合、cycle 語述は実施例2によつて第8
図に示す物が第1図中(2)の作業記憶内に登録されて
いるとする。
すなわち、まず、cycle(1,5)と、cycle (2,1
1)が取り出される。(第12図中404,405)こ
こで、Rn=R1=5であり、R1の値は“−”でないの
で、第12図中の406から407へ進み、R1とR2
比較が行われる。
ここでRm=R=11であるから第12図中の410
へ進み、nの値を1だけ加算して、ルールポインタpの
値1の位置にルール5を移動する。(第12図中41
3) 次に、ルールポインタpの値を1加算して2にして第1
2図中411に進む。ここではまだ、pの値はLmax 以
下であるから第12図中411から403へ進み次のル
ープに入る。
以降、この処理を繰り返すことによりルールは第8図の
cycle 述語に出現するルール番号の順に再編成され第1
5図中(c)に示すように、先頭部に5,11,17,
9の順で並ぶことになる。
この再編成されたルール群を用いて同一の等価変換問題
を解くと第15図中(c)に示す様に、実施例4で示し
たよりも、さらに照合失敗回数の低減が(78回→33
回)図られる。
尚、本発明の第1から第5の実施例に於いて、データ出
力部7にて、更新されたルールの運先度に対応する情報
を表示しても良く、この場合、使用者はルールの優先度
更新されたことがわかり、より使い易いものとなる。
本実施例1,2,3,4,5の場合と、ルール適用手法
に何等の工夫もしないPure Production System(単純プ
ロダクシヨンシステム)の場合で照合回数の比較を行う
と第16図に示す様になる。ここでは、照合成功回数と
照合失敗と判定された回数の合計で比較する。
照合失敗に要する計算時間は、照合成功に関する計算時
間よりも一般に多大であり、全体の処理時間支配的に左
右するが、ここでは、単純に照合成功回数と失敗回数の
合計で比較した。
第1の実施例で単純プロダクシヨンシステムの約1.7
倍高速化され、 第2の実施例で単純プロダクシヨンシステムの約2.4
倍高速化され、 第3の実施例で単純プロダクシヨンシステムの約3.6
倍高速化されている。
第4の実施例では単純プロダクシヨンシステムの約1.
1 倍高速化されている。
第5の実施例では単純プロダクシヨンシステムの約2.
5 倍高速化されている。
一方、第9図(a),(b),(c)を見て明らかなよ
うに、同一回路構造のパターンが複数個存在し、変換過
程で同一ルールが繰り返し的に適用されるような場合で
本発明中のルール適用禁止フラグを用いた場合、照合回
数が繰り返し回数分しか増加しないが、単純プロダクシ
ヨンシステムでは、概ねルール総数x繰り返し回数に比
例する照合回数が必要となるため、扱う回路規模が本実
施例よりも大きな場合、より本発明の効果が顕著とな
る。
実際に、50ゲート程度の回路規模の場合、単純プロダ
クシヨンシステムに比較して、実施例2の方法を用い
て、約1桁の速度向上を確認している。
〔発明の効果〕
本発明によれば、パターン照合処理時間が短くなり、高
速なプロダクシヨンシステムを得ることができる。
【図面の簡単な説明】
第1図は本発明の第1の実施例のシステム構成を示す
図、第2図は第1図のシステムのフロー図、第3図及び
第4図は接続情報を示す図、第5図はプロダクシヨンル
ールの例を示す図、第6図は、更新された作業記憶情報
を示す図、第7図及び第11図は本発明の第2の実施例
のフロー図、第8図は本発明の第2の実施例にて用いら
れるcycle 述語を示す図、第9図及び第15図は本発明
の実施例のサイクルとの関係を示す図、第10図は本発
明の第1図の実施例における照合失敗を説明する図、第
12図は本発明の第3の実施例のフロー図、第13図は
本発明の第4の実施例のシステム構成を示す図、第14
図は本発明の第4の実施例のフロー図、第16図は本発
明の第1から第5の実施例の効果を示す図である。 1……初期データ入力部、2……作業記憶部、3……ル
ールインタプリンタ、4……ルール記憶部、5……ルー
ルフラグ記憶部、6……照合失敗サイクル記憶部、7…
…照合失敗サイクル記憶部、8……データ出力部。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】作業記憶部に記憶されたルールの適応対象
    となる複数の情報であって当該各情報は相互に関連性を
    有するものから順次各情報を選択し、 ルール記憶部に前提条件部と実行部とを有し、かつ番号
    が付された複数のルールから前記付された番号に従って
    1のルールを選択し、 前記選択された情報と前記選択されたルールの前提条件
    部とを照合し前提条件の成否の判定を前記複数ルールに
    わたり繰り返し実行し、 照合の結果、前提条件が成立した場合には、前記前提条
    件が成立したルールの実行部を実行し前記作業記憶部に
    記憶された情報の内容を更新する推論方法であって、 照合を開始してから前提条件が成立するまでを1の照合
    サイクルとする該照合サイクルを開始し、前提条件が成
    立した場合に照合サイクルを終了するとともに前記前提
    条件が成立した照合サイクル数及び当該前提条件が成立
    したルールに付されている番号を記憶し、前記前提条件
    の成立したルールから前記照合サイクル数に1を加えて
    新たな照合サイクルを開始し、 前記新たな照合サイクルが開始された後に全てのルール
    の前提条件が成立しなかった場合に前記作業記憶部に記
    憶された情報の内容についての照合を終了し、 次に前記記憶した照合サイクル数及び前記記憶されたル
    ールに付された番号の大小を相互に比較し、照合サイク
    ル数の大小関係とルールに付された番号の大小関係が異
    なるとき、前記記憶されたルールに付された番号の大き
    いルールの後に前記記憶されたルールに付された番号の
    小さいルールが配置されるように前記複数のルールを再
    構成することを特徴とする推論方法。
JP62109046A 1987-05-06 1987-05-06 推論方法 Expired - Lifetime JPH0652502B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP62109046A JPH0652502B2 (ja) 1987-05-06 1987-05-06 推論方法
US07/187,590 US4937755A (en) 1987-05-06 1988-04-28 Production system for an expert system
DE3851014T DE3851014T2 (de) 1987-05-06 1988-05-03 Eine Vielzahl an Regeln enthaltendes System mit einer vorausermittelten Inferenz-Strategie.
EP88107101A EP0297248B1 (en) 1987-05-06 1988-05-03 Look-ahead inference-type rule-based system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62109046A JPH0652502B2 (ja) 1987-05-06 1987-05-06 推論方法

Publications (2)

Publication Number Publication Date
JPS63273939A JPS63273939A (ja) 1988-11-11
JPH0652502B2 true JPH0652502B2 (ja) 1994-07-06

Family

ID=14500235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62109046A Expired - Lifetime JPH0652502B2 (ja) 1987-05-06 1987-05-06 推論方法

Country Status (4)

Country Link
US (1) US4937755A (ja)
EP (1) EP0297248B1 (ja)
JP (1) JPH0652502B2 (ja)
DE (1) DE3851014T2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095441A (en) * 1986-09-12 1992-03-10 Digital Equipment Corporation Rule inference and localization during synthesis of logic circuit designs
US5150308A (en) * 1986-09-12 1992-09-22 Digital Equipment Corporation Parameter and rule creation and modification mechanism for use by a procedure for synthesis of logic circuit designs
US5212650A (en) * 1986-09-12 1993-05-18 Digital Equipment Corporation Procedure and data structure for synthesis and transformation of logic circuit designs
US5151867A (en) * 1986-09-12 1992-09-29 Digital Equipment Corporation Method of minimizing sum-of-product cases in a heterogeneous data base environment for circuit synthesis
US5249260A (en) * 1988-08-12 1993-09-28 Hitachi, Ltd. Data input system
US5177688A (en) * 1989-12-01 1993-01-05 Texas Instruments Incorporated Assembly line balancer
JPH047743A (ja) * 1990-04-26 1992-01-13 Toshiba Corp 推論システム
JP3049561B2 (ja) * 1990-05-21 2000-06-05 東洋通信機株式会社 プロダクションシステムとプロダクションシステムの変換装置
US5263126A (en) * 1992-09-10 1993-11-16 Chang Hou Mei H Automatic expert system
US5720009A (en) * 1993-08-06 1998-02-17 Digital Equipment Corporation Method of rule execution in an expert system using equivalence classes to group database objects
US5510998A (en) * 1994-06-13 1996-04-23 Cadence Design Systems, Inc. System and method for generating component models
US6253351B1 (en) * 1998-03-24 2001-06-26 Matsushita Electric Industrial Co., Ltd. Circuit optimization system
US7216113B1 (en) * 2000-03-24 2007-05-08 Symyx Technologies, Inc. Remote Execution of Materials Library Designs
US6993733B2 (en) * 2002-04-09 2006-01-31 Atrenta, Inc. Apparatus and method for handling of multi-level circuit design data
TW200742396A (en) * 2006-04-17 2007-11-01 Benq Corp Method of searching communication addresses
CN105468363B (zh) * 2015-11-19 2018-06-26 浪潮电子信息产业股份有限公司 一种增强服务器主板与不同网卡兼容性的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58222376A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd テ−ブルサ−チ方式
JPS6024646A (ja) * 1983-07-20 1985-02-07 Hitachi Ltd 適応型推論処理方式
JPS61134864A (ja) * 1984-12-04 1986-06-21 テクトロニツクス・インコーポレイテツド エクスパート・システム用規則収得方法
JPS62198930A (ja) * 1986-02-26 1987-09-02 Matsushita Electric Ind Co Ltd 推論方法
JPS634333A (ja) * 1986-06-24 1988-01-09 Toshiba Corp エキスパ−トシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4145735A (en) * 1977-02-02 1979-03-20 Nippon Steel Corporation Monitor for priority level of task in information processing system
JPS59168545A (ja) * 1983-03-15 1984-09-22 Fujitsu Ltd 論理回路変換処理装置
JPS60114968A (ja) * 1983-11-28 1985-06-21 Hitachi Ltd 推論システム
US4649515A (en) * 1984-04-30 1987-03-10 Westinghouse Electric Corp. Methods and apparatus for system fault diagnosis and control
US4703435A (en) * 1984-07-16 1987-10-27 International Business Machines Corporation Logic Synthesizer
US4651284A (en) * 1984-07-27 1987-03-17 Hitachi, Ltd. Method and system of circuit pattern understanding and layout
JPS61109148A (ja) * 1984-11-01 1986-05-27 Agency Of Ind Science & Technol プロダクシヨン・ル−ルの競合解消方式
US4635208A (en) * 1985-01-18 1987-01-06 Hewlett-Packard Company Computer-aided design of systems
US4670848A (en) * 1985-04-10 1987-06-02 Standard Systems Corporation Artificial intelligence system
JPH0668756B2 (ja) * 1985-04-19 1994-08-31 株式会社日立製作所 回路自動変換方法
JPS6214227A (ja) * 1985-07-12 1987-01-22 Hitachi Ltd 推論過程の制御方式
US4748439A (en) * 1985-08-13 1988-05-31 Fairchild Semiconductor Corporation Memory apparatus and method for retrieving sequences of symbols including variable elements

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58222376A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd テ−ブルサ−チ方式
JPS6024646A (ja) * 1983-07-20 1985-02-07 Hitachi Ltd 適応型推論処理方式
JPS61134864A (ja) * 1984-12-04 1986-06-21 テクトロニツクス・インコーポレイテツド エクスパート・システム用規則収得方法
JPS62198930A (ja) * 1986-02-26 1987-09-02 Matsushita Electric Ind Co Ltd 推論方法
JPS634333A (ja) * 1986-06-24 1988-01-09 Toshiba Corp エキスパ−トシステム

Also Published As

Publication number Publication date
DE3851014T2 (de) 1995-03-09
US4937755A (en) 1990-06-26
EP0297248A3 (en) 1992-03-04
JPS63273939A (ja) 1988-11-11
DE3851014D1 (de) 1994-09-15
EP0297248A2 (en) 1989-01-04
EP0297248B1 (en) 1994-08-10

Similar Documents

Publication Publication Date Title
JPH0652502B2 (ja) 推論方法
Balzer Transformational implementation: An example
Cohen Non-deterministic algorithms
JPH0424826A (ja) プロダクションシステムとプロダクションシステムの変換装置
Spivey An introduction to logic programming through Prolog
Hanus Efficient implementation of narrowing and rewriting
Klin et al. Scalar and Vectorial mu-calculus with Atoms
Smith et al. Backtracking in MLISP2
Goel et al. Computer-aided processing of design specifications
HERNÁNDEZ et al. BDI multiagent learning based on first-order induction of logical decision trees
Epstein The nonlow computably enumerable degrees are not invariant in ℰ
Subramanian A mechanized framework for specifying problem domains and verifying plans
Pradhan Enhancement of Turing machine to universal Turing machine to halt for recursive enumerable language and its JFLAP simulation
JPH0642200B2 (ja) プロダクシヨンシステム
Schrödl et al. Inferring flow of control in program synthesis by example
Darlington The Synthesis of Implementations for Abstract Data Types: A Program Transformation Tactic
Rosenberg Simulating a stack by queues
Pacuit Voting Theory in the Lean Theorem Prover
Heisel Formalizing and implementing Gries' program development method in dynamic logic
JP2001117774A (ja) 適応化機構を備えたプロダクションシステム
Robič et al. The First Basic Results
Czaja et al. Basic Concepts of Cause-Effect Structures
Sacha Real-time software specification and validation with transnet
Alhazov et al. Length P Systems with a Lonesome Traveler
Alagić et al. Recursion