JPH02156331A - 判断補助方法および装置 - Google Patents

判断補助方法および装置

Info

Publication number
JPH02156331A
JPH02156331A JP63308854A JP30885488A JPH02156331A JP H02156331 A JPH02156331 A JP H02156331A JP 63308854 A JP63308854 A JP 63308854A JP 30885488 A JP30885488 A JP 30885488A JP H02156331 A JPH02156331 A JP H02156331A
Authority
JP
Japan
Prior art keywords
block
solution
rule
processing
output
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.)
Pending
Application number
JP63308854A
Other languages
English (en)
Inventor
Yutaka Yoshiura
裕 吉浦
Shiyouichi Masui
増位 庄一
Kikuo Yoshimura
吉村 紀久雄
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 JP63308854A priority Critical patent/JPH02156331A/ja
Publication of JPH02156331A publication Critical patent/JPH02156331A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、推論マシン又はエキスパートシステムのよう
な、特定のルール群に基づいて問題に関する判断を行な
うデータ処理システムに関し、特に、専門家の代行とい
うよりも専門家の助手として利用するのに適した、この
種のシステムに関する。
〔従来の技術〕
まず、推論マシンについて概略を説明する。推論マシン
は、対象とする分野の知識をルール群の形で受取り、記
憶する。利用者が、自分の解決したい問題をデータの形
で推論マシンに入力すると、推論マシンは、前記のルー
ル群を用いて、指定された推論を行う。従来の推論マシ
ンは、情報処理学会誌、第26巻、第12号(1985
年)、第1487頁から第1496頁に論じられている
ように、以下の2種類の推論を行うことができる。
(1)証明処理 問題と、それに対する利用者の解答を入力して、利用者
の解答の正誤を判定する。具体的には、問題を表わすデ
ータと、利用者の解答を入力して、前者からルール群を
介して後者が矛盾なく導けるかどうかを検証する。以下
、問題に対する利用者の解答を、利用者の「予想解」と
呼ぶことにする。
証明処理は、予想解の検証を行う処理である。
(2)導出処理 問題を入力して、それに対する解答を新たに導出する。
具体的には、問題を表わすデータを入力して、このデー
タからルール群を介して解答を導出する。
例えば、医療診断システムにおいては、体温が37.5
℃、顔色が青白いなどの症状を問題データとしと、風邪
という病名を予想解として受けて、利用者の予想解が正
しいかどうかをデータとルール群から検証するのが、証
明処理である。一方、これらのデータとルール群から、
風邪、インフルエンザなどの病名を新たに推定するのが
、導出処理である。
専門家が行っている知的業務を推論マシンに代行させる
試みが、1970年頃から進められてきた。しかし、多
くの適用実験の結果、計算機化に適した一部の分野を除
くと、専門家の知的業務を完全に代行しうる推論マシン
の開発は困難であることが明らかになってきた。
そこで近年、推論マシンを、専門家の代行ではなく、助
手として利用することが考慮されるようになってきた。
推論マシンを専門家の助手として利用する場合には、専
門家の代行として利用する場合とは異なる機能が要求さ
れる。助手としての推論マシンには、自ら主導権を持っ
て結論を下す機能ではなく、専門家の判断を補う機能が
必要である。つまり、専門家の判断を検証するとともに
、早計や見落としを防いで最も妥当な結論に導くために
、助言として別解や対抗解を示す機能が必要である。
このような機能は、部分的には、証明処理又は導出処理
を個々に用いるだけで実現できる。例えば、証明処理に
よれば、状況をデータとし、それに対する専門家の判断
を予想解として入力し、専門家の判断を検証することが
できる。また、導出処理によれば、状況をデータとして
入力し、いくつかの可能な判断を出力することができる
〔発明が解決しようとする課題〕
しかしながら、従来技術は、個々の部分的な機能を提供
するのみであり、これらを統合して助手システムとして
十分な機能を提供することはできなかった。すなわち、
必要な機能が適宜自動的に起動されるのではなく、専門
家が自分で必要な機能を選択して、それらを個々に起動
しなければならなかった。そのため、助手として実際に
利用するときに、以下の不便があった。
まず、専門家の早計や見落としを指摘する機能が弱い、
専門家の判断を検証し、正しいと判断した場合、有能な
助手としては、専門家の判断に賛成を表明するだけでな
く、他の可能な判断(別解)を探索し、もしあれば、こ
れを示すべきである。
例えば、医師が患者の症状から′風邪′と判断し。
この検証を助手システムに依頼した場合、助手システム
は、医師の判断に誤りが発見できない時でも、更に他の
病気の可能性を探すべきである。ところが、従来技術で
は、専門家が証明処理を用いて判断を検証し、賛成の回
答を得た時に、専門家が用心深くも別の可能性を求めて
導出処理を新たに起動しない限り、システムは何もしな
い、したがって、専門家の見落としを自動的に防止する
ことができない0例えば、患者の症状から′風邪′以ガ
に′結核′が考えられる場合にも、システムが自発的に
これを指摘することはない。
また、専門家の判断の誤りに対して積極的に助言する機
能もない、専門家の判断を検証し、誤りと判断した場合
、有能な助手としては、反対を表明するだけでなく、自
分の判断(対抗解)を示すべきである。しかし、従来技
術では、システムは、単に反対を表明するだけであり、
自分の判断は示さない、専門家は、対抗解を得るために
、改めて導出処理を起動しなければならない、このよう
なシステムは、助手として極めて不親切である。
以上のように、従来技術は、専門家の助手として利用す
るための十分な機能を提供することができず、助手とし
て役立てるには、専門家側の注意と重複的な操作とが必
要であった。
本発明の目的は、専門家の判断を検証するとともに、別
解又は対抗解を自発的に提示し、それにより、専門家の
早計や見落としを防ぎ、あるいは正解への具体的な示唆
を与える機能を持ち、助手として極めて有能で、かつ、
操作にむだのない、判断補助システムを提供することに
ある。
〔課題を解決するための手段〕
本発明は、起動命令に応じて証明処理を遂行するととも
に、証明処理と連動して導出処理を起動する。証明処理
は、入力されたデータを用いて入力された予想解の証明
を試み、導出処理は、この入力された同じデータを用い
てあらゆる可能な解を導出し、少なくとも一方の処理は
、他方の処理がその過程で利用者に要求して入手した追
加データを、必要に応じて使用する。導出処理により得
られた解は、証明処理の結果と関連付けて出力される。
例えば、証明処理が予想解の証明に成功した場合には、
予想解と異なる解が別解として出力され、証明処理が予
想解の証明に失敗した場合には、すべての解が対抗解と
して出力される。
複数の予想解を入力して、1回の起動に応じてそれらの
すべてを検証するようにしてもよい。他の変形として、
別解又は対抗解を直接出力する代りに、別解又は対抗解
の有無を示す情報を出力し、利用者から要求された時に
それらの解を出力してもよい。
証明処理と導出処理のどちらが先に行われてもよいが、
証明処理を導出処理の前に行うのが有利である。あるい
は、証明処理と並行して導出処理が行われてもよい。前
者の場合、導出処理は、証明処理の過程で要求されて入
力された追加データを利用し、後者の場合、任意の一方
の処理は、他方の処理の過程で要求されて入力された追
加データを利用する。導出処理と証明処理の並行遂行は
、任意の時分割方式によることができるが、証明処理に
優先権を与えて、証明処理が待ち状態にある間に導出処
理を行うのが有利である。
本発明は、予めルールが記憶されているエキスパートシ
ステムによっても、また、必要に応じてルールの少なく
とも一部が供給される推論マシンによっても、実現する
ことができる。
導出処理と証明処理の並行遂行に適する本発明の装置は
、証明処理のための第1推論ユニットと、導出処理のた
めの第2推論ユニットと、両推論ユニットの並行動作を
制御するとともに入出力処理を行なう制御ユニットと、
第1及び第2推論ユニット並びに制御ユニットに共用さ
れるメモリとを備える。
〔作用〕
本発明によれば、利用者が問題を表わすデータと自分の
判断を示す予想解を与えてシステムを起動すると、シス
テムは、証明処理と導出処理の双方を自発的に実行して
、利用者の判断に対する賛否と共に、システム自身によ
る解を1例えば別解又は対抗解として出力し、それによ
り、利用者の早計又は見落としが防止されて、最も妥当
な結論に能率よく到達することができる。一方の処理は
他方の処理の過程で入力された追加データを直接使用で
きるので、利用者への問い合わせの重複が避けられ、能
率がよい。
複数のp想解を処理する変形は、1回の起動で、複数の
予想解のそれぞれを検証するとともに、システム自身に
よる解を出力するから、利用者が複数の代替的な判断に
達した場合でも、それらを−括して処理することができ
る。また、別解又は対抗解の存在を示す情報を出力する
変形では、別解又は対抗解の出力は利用者の選択に任さ
れるから、利用者は過剰な情報に悩まれることがない。
導出処理が証明処理の終了の後で行われる場合には、証
明処理の過程で入力された追加データが保存されるので
、導出処理は、この追加データを。
利用者に問い合わせることなしに、直ちに使用できる。
また、両処理が並行して行われる場合には、各処理の過
程で入力された追加データが保存されるので、どちらの
処理も、他方の処理の過程で人力された追加データを、
利用者に問い合わせることなしに、直ちに使用できる。
特に、証明処理が待ち状態にある間に導出処理が行われ
る場合には。
例えば利用者への追加データの要求からその入力までの
間などの、遊休時間が有効に利用され、したがって、単
純な定期的時分割処理と比較して、効率がよい。これら
の場合において、証明処理を優先させるのが有利な理由
は、証明処理の結果が導出処理により得られる解の扱い
に影ツするためと、予想解の当否を早く知らせれば利用
者のいらだちが少ないためである。
また1本発明の前記装置は、証明処理と導出処理を各別
のハードウェアにより同時に遂行する。
両処理は、共用メモリを介して、ルール、問題データ、
追加データ、中間結果、及びその他の所要情報を共有し
、両処理の結果は、制御ユニットにより関連付けられる
。したがって、通常のデータ処理装置によっても本発明
の方法を実施しうろことはいうまでもないが、特にこの
装置は、本発明の方法を極めて能率よ〈実施することが
できる。
〔実施例〕
まず、第1の実施例を説明する。この実施例では、ルー
ルの集合と、状況又は問題を表わすデータと、m−の予
想間とが推論マシンに入力されて。
予想間の検証と、別間又は対抗解の導出が行われ、賛成
の表明と別間、あるいは反対の表明と対抗解が出力され
る。
第2図は1本実施例のためのハードウェア構成の一例を
示す。入出力端末201は、例えば、キーボードとCR
Tを有するデイスプレィ端末であり、ルールの集合、解
候補の集合、データ、P思量及び起動命令を、外部(利
用者)から受け取って中央処理装置12202に渡し、
また、処理の途中で生じたデータ要求及び処理の結果を
、中央処理装置12202から受け取って外部に出力す
る。中央処理装置202は、入出力端末201からのル
ールの集合と解候補の集合とデータを、ルールは中間語
に変換した後、記憶装置203に格納する。
予想間と起動命令を入出力端末201から受け取ると、
中央処理Mff1202は、ルールとデータと解候補を
必要に応じて記憶装置203から読み出しつつ、まず、
予想間を検証し、次に別間又は対抗解を導出し、そして
、検証の結果と別間又は対抗解を入出力端末201に送
る。中央処理装置202は、また、検証又は導出の過程
で必要が生じたデータの要求を、入出力端末201に送
る。
第3図は、本実施例の機能構成を示す。ブロック301
は処理群であり、入出力処理302.コントロール処理
303.解析変換処理304.証明処理305、及び導
出処理306から成る。ブロック307はメモリであり
、ルール郡部308゜作業メモリ309、及び解候補郡
部310から成る。
入出力処理302は、ルールの集合、解候補の集合、デ
ータ、予想間、及び起動命令を外部から受けて、ルール
の集合を解析変換処理304に出力し、予想間、及び起
動命令をコントロール処理303に出力し、データをコ
ントロール処理303゜証明処理305又は導出処理3
06に出力し、解候補の集合を解候補郡部310に格納
する。コントロール処理303は、入出力処理302か
らのデータを作業メモリ309に格納する。コントロー
ル処理303は、また、入出力処理302から予想間と
起動命令を受け取った時に、この予想間を引数として証
明処理305を起動し、証明処理が終ると、導出処理3
06を起動する。導出処理306から解が得られると、
コントロール処理303は、それを予想間と比較し、等
しければその解を捨てる。導出処理が終ると、コントロ
ール処理303は、証明処理と導出処理の結果を総合し
て、出力メツセージを編集し、入出力処理302に出力
する。
解析変換処理304は、入出力処理302からルールの
集合を受け取って、これを中間語に変換してルール郡部
308に格納する。証明処理305は、コントロール処
理305から予想間を引数として起動命令を受けた時に
、作業メモリ309に格納されたデータを参照しながら
ルール郡部308中の中間語化されたルール集合を解釈
適用することにより、この予想間を検証して、その結果
をコントロール処理303に報告する。この検証の過程
で、追加データが必要になると、証明処理305は、入
出力処理302に要求を発して、そこから新たなデータ
を受け取り、二九を作業メモリ309に格納する。
導出処理306は、コントロール処理303から起動命
令を受けた時に、作業メモリ309に格納されたデータ
と中間結果を参照しながらルール郡部308中の中間語
化されたルール集合を解釈適用することにより、解を導
出して、それをコントロール処理303に報告する。こ
の導出の過程で、導出したある事実が解となりうるかど
うかを判定するために、導出処理306は、解候補郡部
310を参照して、導出した東夷が解候補集合に含まれ
ていれば、これを解と判断し、含まれなければ、解では
なく中間結果であると判断する。また、導出処理306
も、追加データが必要になると、入出力処理302に要
求を発して、そこから新たなデータを受け取り、これを
作業メモリ309に格納する。
ルール郡部308は、解析変換処理304から中間語化
されたルールの集合を受け取って、これを記憶し、証明
処理305及び導出処理306に、要求に応じてルール
を供給する。作業メモリ307は、証明処理305の起
動に先立って、コントロール処理303からデータを受
け取り、また、証明及び導出の過程で、証明処理305
及び導出処理306から新たなデータを受け取り、更に
、導出処理306から推論の中間結果を受け取って、そ
れらを記憶する。
解候補郡部310は、推論の対象とする問題の分野にお
いて解となりうる事実の集合、すなわち解候補の集合を
、入出力処理302がら受け取り、これを記憶する。例
えば医療診断の分野では、解候補の集合は、病名の集合
である。更に、メモリ307は、図示されていないが、
前記語処理のために、必要な他の種々の情報を格納する
部分を含む。
第4図は、本実施例で使用されるルールの構成を示す。
ブロック401はルールの条件部であり。
0個以にのく条件文字列〉及び〈条件式〉から成る。た
だし、〈条件文字列〉とく条件式〉の少なくとも一方は
、1個以上である。く条件文字列〉は文字列であり、推
論の前提条件あるいは中間結果を表わす。く条件式〉は
、−個以上の変数に関する等式あるいは不等式であり、
推論の前提条件を表わす。
ブロック402はルールの結論部であり、1n眉のく結
論文字列〉から成る。く結論文字列〉は、文字列であり
、推論の中間結果あるいは解を表わす。
第5図は、第4図のルールを解析変換処理3011が解
析変換した結果の中間語、即ちルール中間語であり、各
ルールはこの形式でルール郡部308に記憶される。上
記の証明処理及び導出処理は、実際には本中間語を用い
て行われる。
本実施例では、ルール郡部308中のルール中間語およ
び作業メモリ309中の変数値情報をリスト構造で表わ
すことにする。リストは、任意の個数の要素を′(′ 
と′)′で囲むことにより記述する。リストの要素がそ
れ自体リストであってもかまわない。そのような入れイ
ヤのリストは′(′ と′)′の間に更に′(″と′)
′ を挿入することにより表わす。入れ子の深さは任意
である。ルール中間語は、個々のルールを表わす中間a
!Iであり、ルール集合を表わす中間語はルール中間語
のリストである。ルール郡部308には、ルール中間語
のリス!・が記憶される。
ブロック501は条件部の中間語であり、く条件文字列
〉及びく条件式中間語〉から成る。く条件文字列〉は、
第4図のブロック401中のく条件文字列〉と同じであ
る。く条件式中間語〉は。
第4図のブロック401中のく条件式〉を変換した結果
である。〈条件式中間Jn〉は、後に第6図を用いて詳
しく説明する。
ブロック502は結論部の中間語であり、く結論文字列
〉は第4図のブロック402中のく結論文字列〉と同じ
である。
第6図は、第5図のブロック501中のく条件式中間語
〉の構成を示す。〈条件式中間語〉は、第4図のブロッ
ク1101中のく条件式〉の中間語である。ブロック6
01は、く条件式〉中の各変数の値を求める処理を表わ
す。get(<変数名〉)は、〈変数名〉に対応する変
数値を求めて、それをく変数名〉に代入する処理を表わ
す。ブロック602は、〈変数名〉に関する条件式であ
り。
第4図のブロック401中のく条件式〉と同じである。
証明処理305および導出処理306は。
く条件式中間語〉の処理に当って、まずブロック601
を処理して、各〈変数名〉に変数値を代入し、次にブロ
ック602を処理して、これらのく変数名〉に関する条
件式く条件式〉(<変数名1〉く変数名2〉・・・〈変
数名1〉)の成立、不成立を決定する。
第7図は、作業メモリ309に記憶された文字列および
変数値の形式を示す。ブロック701は文字列の集合で
あり、これら文字列の表わす前提条件あるいは中間結果
が成立することを表わす。
ブロック702は変数値情報の集合であり、(く変数名
〉〈変数値〉)は、〈変数名〉の値かく変数値〉である
ことを示す。
次に、証明処理305と導出処理306による処理の概
要を説明する。証明処理305は、コントロール処理3
03から、予思量を表わす文字列を引数として起動され
る。まず、この予思量が作業メモリ309中に記憶され
ていれば、証明は成功である。記憶されていない場合に
は、この予思量をく結論文字列〉として持つルールをル
ール郡部308から索出し、このルールのく条件文字列
〉とく条件式〉の成立、不成立を検証する。一般に、予
思量を〈結論文字列〉として持つルールは複数見つかる
ため、これらのルールを一つずつ検証する。ルールが一
つでも成立すれば、予思量の証明は成功であり、全ての
ルールが不成立であれば、予思量の証明は失敗である。
く条件文字列〉の検証は、予思量の検証と同様の処理を
再帰的に繰り返すことにより行う。すなわち、このく条
件文字列〉をく結論文字列〉として持つルールを索出し
て、このルールの成立、不成立を調べる。この〈条件文
字列〉と等しいく結論文字列〉を持つルールがない場合
には、この〈条件文字列〉を利用者に表示して、このく
条件文字列〉の表わす条件の成立、不成立を問い合わせ
る。く条件式〉の検証は、〈条件式〉の表わす等式ある
いは不等式に含まれる各変数の値を、作業メモリ309
から求めた後、この等式あるいは不等式の成立、不成立
を計算する。変数の値が作業メモリ309に記憶されて
い、ない場合には、変数名を利用者に表示し、その値を
問い合わせる。
なお、証明処理の詳細は、後に第8図と第9図を用いて
説明する。
導出処理306は1作業メモリ309に記憶された文字
列および変数値を参照しながら1条件部のく条件文字列
〉及びく条件式〉がすべて満たされるルールを、ルール
郡部308から見出し、このルールのく結論文字列〉を
取り出す、このく結論文字列〉を解候補郡部310中の
解候補群と比較して、解であるか否かを判定し、解であ
れば。
コントロール処理303に渡し、解でなければ、中間結
果として作業メモリ309に格納する。導出処理306
は、当初の入力データに加えて、証明処理の過程で新た
に入力された追加データを利用し、更に、必要に応じて
、く条件文字列〉の成否及び変数の値を、利用者に間合
わせる。導出処理306の処理方法は、従来の処理方法
と同様であり1例えば、リスプ、アデイソンーウエスレ
イ(1981年)第239頁から250頁(Lisp 
+Addison−Wesley(1981)p p 
239−250)に詳しく述べられている。
次に、証明処理の詳細を説明する。
第8図は、証明処理305が、予思量をく結論文字列〉
として持つ一つのルールの成立、不成立を検証する処理
を表わす。証明処理305は。
つのルールが成立するか、あるいは全ルールを検証し終
わるまで、本処理を繰り返す、なお、ルールは、第5図
のように中間語化されており、変数Rに代入されている
(すなわち、変数Rに割当てられたメモリ領域に格納さ
れている)とする。
ブロック801は、ルールの条件部を変数CLi5tに
代入する。これにより、CLi5tには、第5図のブロ
ック501のようなく条件文字列〉および〈条件式〉の
リストが代入さゝれる。これらのく条件文字列〉及びく
条件式〉を、以下、条件と呼ぶ。ブロック802は、C
Li5tの先頭の条件を変数Cに代入する。
ブロック803は、Cがく条件文字列〉かく条件式〉か
を判定する。く条件文字列〉の場合にはブロック804
〜ブロツク809、く条件式〉の場合にはブロック81
0〜ブロツク814を実行することにより、それらの成
立、不成立を検証する。
ブロック804は、く条件文字列〉が作業メモリ309
中に記憶されているかどうかを判定する。
記憶されている場合には、く条件文字列〉が成立であり
、ブロック816に行く、記憶されていない場合には、
ブロック805に行く。
ブロック805は、現在説明中の証明処理をこのく条件
文字列〉を〈結論文字列〉として持つルールに対して再
帰的に適用することにより、〈条件文字列〉を検証する
。ブロック806はCの証明の成功、不成功を判定する
。成功の場合には、〈条件文字列〉は成立であり、ブロ
ック816に行く。不成功の場合には、ブロック807
に行く。
ブロック807は、〈条件文字列〉を利用者に表示して
、その文字列の表わす事実の成立、不成立を問い合わせ
る。利用者が成立と答えた場合には、〈条件文字列〉は
成立であり、ブロック809に行く。利用者が不成立と
答えた場合には、く条件文字列〉は不成立であり、ブロ
ック815に行く。
ブロック809に至るのは、く条件文字列〉が作業メモ
リになく、証明もできないが、利用者への問い合わせに
より成立と判断した場合である。
すなわち、既存のデータでは、成立、不成立が決定でき
ず、利用者からの新たなデータによって成立と判定した
場合である。そこで、ブロック809では、利用者に今
後同じ質問を繰り返さないですむように、このく条件文
字列〉を作業メモリ309に格納する。その結果、この
〈条件文字列〉については、今後、作業メモリ309の
参照によって、直ちに成立と判定することができる。特
に、後の導出処理306においてこのく条件文字列〉の
成立、不成立を判定する場合にも1作業メモリ309を
参照すればよく、利用者に再度問い合わせる必要がない
ブロック810〜814は、条件Cが第6図のようなく
条件式中間語〉である場合の、検証処理を示す。ブロッ
ク810は、く条件式中間語〉の先頭要素を変数Exに
代入する。ブロック811は、Exがget文であるか
どうかを判定する。
get文の場合には、ブロック812に行き、そうでな
い場合にはブロック814に行く。
ブロック812は、このget文を解釈実行し。
〈変数名〉に対応する変数値を求め、〈変数名〉に代入
する。この処理は、後に第9図を用いて詳しく説明する
。ブロック813は、実行し終わったget文をCから
除く。
ブロック814は、Exがく条件式〉(〈変数名1〉、
〈変数名2〉・・・〈変数名1〉)である場合の処理を
示す。ブロック814に至る時には、条件式中の変数名
はすべて値が得られている。そこで、〈条件式〉(〈変
数名1〉、く変数名2〉・・・く変数名1〉)の成立、
不成立を決定することができる。成立する場合には、ブ
ロック816に行き、成立しない場合には、ブロック8
15に行く。
ブロック816は、C1すなわち成立すると分かった条
件を、CLi5tから除く0次に、ブロック817では
、CLi5tが空かどうか、すなわち全ての条件を調べ
終わったかどうかを判定する。調べ終わっている場合に
は、ブロック818において。
ルールが成立と判定する。調べ終わっていない場合には
、ブロック802に戻って、次の条件を調べる。
ブロック815は、条件が不成立の場合の処理である。
ルールは、条件がすべて成立する場合のみ成立となる。
したがって、ここでは、ルールが不成立と判定する。
第9図は、第8図のブロック812におけるget文の
処理の詳細を表わす。ただし、get文は、第6図に示
すようにget(<変数名〉)の形であり、前述のよう
に変数Exに代入されている。ブロック901は、ge
t文からく変数名〉を取り出し、V Nameに代入す
る。ブロック902は、 VNameの値が作業メモリ
309に記憶されているかどうかを判定する。すなわち
、第7図に示す作業メモリ309に、VNameを第1
要素とするリス1−が記憶されているかどうかを判定す
る。記憶されている場合には、ブロック903に行き。
記憶されていない場合には、ブロック905に行く。
ブロック903は、作業メモリ309中のVNa+*e
を第1要素とするリストをItemに代入する。
ブロック904は、Itemの第2要素すなわちく変数
値〉を、VNan+eすなわち〈変数名〉に代入する。
ブロック905〜906は、く変数名〉の値が作業メモ
リ309に記憶されていない場合の処理である。ブロッ
ク905は、利用者に〈変数名〉を表示し、その値を問
い合わせて〈変数名〉に代入する。ブロック906は、
同じく変数名〉の値を再び利用者に問い合わせなくてす
むように、く変数名〉と利用者から入力したく変数値〉
をリストにし、作業メモリ309に記憶する。その結果
、今後、同じく変数名〉の値を求める場合には、作業メ
モリ309を参照すればよい。特に、後に導出処理30
6において、同じく変数名〉を求める場合には、作業メ
モリ309を参照すればよく、利用者に再度問い合わせ
る必要はない。
第1図は、コントロール処理303の動作を示す、ブロ
ック101は、推論に先立って利用者から変数の名前と
値を入力し、く変数名〉とく変数値〉のリストを形成し
て、作業メモリ309に記憶する。ブロック102は、
同じく文字列を入力し、作業メモリ309に記憶する0
以上の変数値および文字列が、利用者すなわち専門家の
解決したい状況あるいは問題を表わすデータである。な
お、ブロック101,102で必要なデータを全て入力
する必要はない、前述のように、証明処理の過程で利用
者から不足したデータを入力することができる。
ブロック103は、利用者から予思量を入力する。予思
量は、利用者の判断を表わす文字列である。ブロック1
04は、予思量を引数として証明処理305を起動する
。証明処理305は、第8図及び第9図の処理により、
予思量が前記データとルール郡部308中のルール群と
から矛盾なく導けるかどうかを検証する。証明処理の終
了とその結果が報告されると、ブロック105が、導出
処理306を起動する。導出処理306は、前述のよう
にして、ブロック101及び102で入力されたデータ
と、証明処理の過程での間合わせに応じて入力されて記
憶されたデータを用い、更に、新たに必要の生じたデー
タを問い合わせながら、それ自身の解を導出し、コント
ロール処理に報告する。
ブロック106は、証明が成功か失敗かに応じて、出力
処理を選択する。証明が成功の場合には、ブロック10
7が賛成の意を表わすメツセージを出力し、次いで、ブ
ロック108が、導出処理306から受けた解を予思量
と比較して、異なっていれば、別間として出力する。も
しも予思量と異なる解が一つも得られなければ、その旨
のメツセージを出力する。
他方、証明が失敗の場合には、ブロック109が反対の
意を表わすメツセージを出力し、次いで、ブロック11
0が、導出処理306から受けた全ての解を、もしあれ
ば、対抗解として出力する。
もしも対抗解が一つも得られなければ、その旨のメツセ
ージを出力する。賛成メツセージ又は反対メツセージ並
びに別間又は対抗解は、証明処理305と導出処理30
6から報告を受けるたびに出力してもよいし、メモリ3
07中の適当な領域にそれらの報告を蓄積し、画処理の
終了後に、総合して適切なメツセージ群を組み立てて、
それを出力してもよい、しかし、一般には、導出処理が
相当長い時間を要するので、利用者の心理を考えると、
報告のたびに出力する方が好ましい。
次に、医療診断の具体的な事例を用いて、推論マシンが
、上記の処理方式によって、専門家の判断を検証し、さ
らにこれを補う様子を示す。推論マシンは、既に医療診
断用のルール集合を入力し、これを中間語に変換して記
憶しているとする。
利用者は医師であり、患者の症状をデータとし、それに
対する自分の診断結果すなわち病名を予思量として、推
論マシンに入力する。推論マシンは、前記ルールを用い
て、前記データからこの予思量の証明を試み、証明が成
功であれば賛成、失敗であれば反対を表明する。更に、
該データから解すなわち病名を導出し、これを別間又は
対抗解として出力する。
最初の例では、利用者即ち医師が、「倦怠感あり、体温
が38.5℃」という症状から、インフルエンザと判断
し、その判断について推論マシンに相談する。
第1O図は、本例題で用いるルール集合の例である。ブ
ロック1001〜1004は、それぞれ1つのルールを
表わす、ブロック1001は、倦怠感があり1体重が平
常時より2kg以上減少していれば、消耗状態であるこ
とを示している。′倦怠感あり′は条件文字列である。
′#現体重′及び′#平常体重″は変数名であり、゛#
現体重−#平常体重<2.0’  はこれらの変数に関
する条件式である。本例屈では、変数名の先頭に#を付
けることにする。
ブロック1002は、消耗状態であり、体温が38.0
℃より高ければ、インフルエンザであることを示してい
る。ブロック1003は、消耗状態であり、腹痛があり
、高温が37.0℃より高ければ、膵臓炎であることを
示している。ブロック1004は、消耗状態であり、高
温が37.0℃より高くかつ38.0℃より低く、症状
の継続日数が30日より長ければ、結核であることを示
している。
第11図は、第10図のルールを第3図中の解析変換処
理304が解析変換した結果の中間語である。ブロック
1101〜11o4は、それぞれブロック1001〜1
004に対するルール中間語である。これらの中間語は
、第3図中のルール郡部308に記憶されている。
また、解候補郡部310には、第10図のルールの下で
医療診断の解となりうる病名の集合が、予め記憶されて
いる。ここでは、′インフルエンザ′、゛膵臓炎′及び
″結核′が記憶されている。
利用者が推論マシンを起動すると、第3図中のコントロ
ール処理303が第1図の処理を開始する。ブロック1
01が、利用者から変数値を入力し、これを作業メモリ
309に記憶する。ここでは、#体温とその値38.5
 を入力して記憶する。
次に、ブロック102が、利用者から文字列を入力し、
作業メモリ309に記憶する。ここでは、′倦怠感あり
′を入力して記憶する。ブロック102の処理の終了時
における作業メモリ309の内容を第12図に示す。
ブロック103が予想群として、 ′インフルエンザ′
 を入力する。ブロック104が証明処理305を起動
する。
以下、第8図と第9図を用いて、証明処理305の動作
を説明する。
証明処理305は、まず、予想解′インフルエンザ″が
作業メモリ309に記憶されているかどうかを調べるに
の時点では1作業メモリ309に゛インフルエンザ′は
記憶されていない。次に、′インフルエンザ′を結論文
字列とするルール中間語を、ルール郡部308で探索す
る。この例では、第11図中のブロック1102を見出
す。次に、このルール中間語を変数Rに代入して、第8
図の処理を行う。
ブロック801は、Rの条件部を取りだし、CLi5t
に代入する。ここでは、CLi5tにブロック1106
が代入される。ブロック802は、Cに、CLi5tの
先頭要素すなわち′消耗状態′を代入する。ブロック8
03は、Cが条件文字列か条件式かを判定する。ここで
は、条件文字列と判定する。
ブロック804は、Cすなわち′消耗状態′が、作業メ
モリ309に記憶されているかどうかを判定する。ここ
では、作業メモリ309は第12図の状態なので、No
となる。
そこで、ブロック805が、′消耗状態ゝの証明を試み
る。すなわち、′消耗状態′を予思量として、証明処理
305を再帰的に起動する。以下。
′消耗状態″を証明するための、証明処理305の動作
を説明する。
証明処理305は、゛消耗状態′を結論文字列とするル
ールを探索する。ここでは、ブロック1101を見出す
。そこで、第8図の処理により該ルールの成立、不成立
を検証する。ブロック801は、 CLi5tにブロッ
ク1105を代入する。
ブック802が、Cに′倦怠感あり″ を代入する。
ブロック803が、Cは条件文字列であると判定する。
ブロック804が、Cすなわち′倦怠感あり′が、作業
メモリ309に記憶されているかどうかを判定する。こ
こでは、作業メモリ309が第12図の状態なので、Y
esとなる。ブロック816が、CLi5tから処理し
終わった条件すなわち′倦怠感あり″を除く。その結果
、CLi5tには、(get(#現体型)get(#平
常体重)#現体重−存平常体重<2.0))が残される
。これは。
(get(#現体型)・・・<2.0)のみから成る1
要素のリストである。
ブロック817が、全ての条件を判定し終わったかどう
かを判定する。ここでは、Noとなる。
ブロック802が、CにCLi5tの先頭要素を代入す
る。ここでは、Cに(g e t (#現体型)get
(#平常体重)#現体型−#平常体重<2.0 )が代
入される。ブロック803が、Cは条件式であると判定
する。
ブロック810が、Exに、Cの先頭要素即ちget(
#現体型)を代入する。ブロック811が、Exはge
t文であると判定する。ブロック812が、Exを実行
する。以下、第9図を用いて、このget文の実行を説
明する。
ブロック901が、Exの引数すなわち#現体型を、V
Namsに代入する。ブロック902が、VNameの
値が作業メモリ309に記憶されているかどうか判定す
る。ここでは、Noと判定する。
ブロック905が、 VNameすなわち#現体型の値
を利用者に問い合わせる。ここで、利用者が、55と答
えたとする。そこで、VNameに55を代入する。ブ
ロック906が、VNameの値を作業メモリ309に
記憶する。ここでは、(#現体型55)というリストを
記憶する。
以上でget文の処理が終了し、第8図におけるブロッ
ク813に戻る。ブロック813が、Cから処理し終わ
ったget文を除く。その結果、Cには、(get (
#平常体重)#現体型−#平常体重<2.0 )が残さ
れる。ブロック810が、Exにget(#平常体重)
を代入する。ブロック811が、Exはget文である
と判定する。
ブロック812が、前記と同様の処理により。
このget文を実行する。#平常体重の値が作業メモリ
に記憶されていないため、再び利用者に問い合わせる。
ここでは、利用者が60を入力したとする。そこで、#
平常体重に60が代入され、作業メモリ309には、(
#平常体重 60)が記憶される。
ブロック813が、CからExを除く、その結果、Cに
は、(#現体型−#平常体重<2.0 )が残される。
ブロック810が、Exに#現体型−#平常体重く2.
0 を代入する。これはget文ではないので、ブロッ
ク811が、Noと判定する。ブロック814が、これ
までに求めた#現体型および#平常体重の値を用いて、
Exの成立。
不成立を決定する。ここでは、成立と判定する。
ブロック816が、CLi5tから、処理し終わった条
件を除く。CLi5tは、(get(#現体型)・(2
,0)  のみから成るリストだったので1本処理の結
果、空リストになる。ブロック817が、全ての条件を
処理し終わったかどうか判定する。
ここでは、Yesとなる。
ブロック818が、ルールすなわちブロック1101が
成立すると判定する。以上の結果、′消耗状態′の証明
に成功し、ブロック1102の処理におけるブロック8
06に戻る。
ブロック806が、以上のようにして、Cすなわち′消
耗状態″の証明が成功と判定した後、ブロック816が
、CLi5tから、処理し終わった条件すなわち′消耗
状態′を除く。その結果、CLi5tには、((get
(#体温)#体温〉38.0))が残される。ブロック
817が、全ての条件を調べ終わったかどうかを判定す
る。ここでは、Noとなる。
ブロック802が、Cに(get(#体温)#体温>3
8.0 )を代入する。ブロック803が。
Cは条件式であると判定する。ブロック810が、Ex
にget(#体温)を代入する。ブロック811が、E
xはget文であると判定する。ブロック812が、前
記と同様の処理により、このget文を実行する。この
時は、作業メモリ309に(#体温38.5)が記憶さ
れているため、利用者に問い合わせることない。本処理
の結果、#体温に38.5 が代入される。
ブロック813により、Cに(#体温>38.0)が代
入される。ブロック810が、Exに#体温>38.0
  を代入する。ブロック811が、NOと判定する。
ブロック814が、Exすなわち#体温>38.0  
が成立すると判定する。ブロック816が、CLi5t
から、処理し終わった条件を除(、CLi1itは、(
get(#体温) #体温〉38.0)のみから成るリ
ストであったので、本処理の結果、CLi5tは空とな
る。ブロック817が、全ての条件を処理し終わったと
判定する。そこで、ブロック818が、処理中のルール
すなわちブロック1102が成立すると判定する。
以上の結果、証明処理305は、予想解′インフルエン
ザ′の証明に成功し、その旨をコントロール処理303
に報告する。この時点での作業メモリ309の内容を、
第13図に示す。
ここで、第1図中のブロック105が、導出処理306
を起動する。導出処理306は、従来の処理方式に従っ
て、ルール郡部308中のルール集合を用いて、作業メ
モリ中のデータから解を導出し、これをコントロール処
理303に出力する。
可能な解が複数ある場合には、全て出力する。
まず、第11図中のブロック1101の成立。
不成立を判定する。導出処理では、条件部の全ての条件
が成立するルールを成立と判定し、条件が一つでも成立
しないルールを不成立と判定する。
ブロック1101に対して、全ての条件が成立するため
、ルールが成立と判定する。この判定において、#現体
型および#平常体重の値が必要であるが、証明処理30
5の過程で利用者から入力したこれらの値が、作業メモ
リ309に記憶しであるので、再度問い合わせる必要は
ない。ブロック1101が成立した結果、゛消耗状態゛
という事実が成Jする。ここで、解候補郡部310中の
解候補集合を参照して、′消耗状態゛が解となりうるか
どうかを判定する。ここでは、NOとなる。
そこで、″消耗状態゛を中間結果として、作業メモリ3
09に記憶する。
次に、ブロック1102の成立、不成立を判定し、成立
という結果を得る。その結果′インフルエンザ′という
事実が成立する。解候補郡部310を参照して、 ′イ
ンフルエンザ″が解になりうると判定し、コントロール
処理303に渡す。
次に、ブロック1103の成立、不成立を判定する。こ
こで、利用者に゛腹痛あり′の成立、不成立を問い合わ
せる。利用者が、成立すると答えたとする。この場合、
ブロック1103が成立し、゛膵臓炎′という事実が成
立する。解候補郡部310を参照して、 ゛膵臓炎′が
解となりうると判定し、これをコントロール処理303
に出力する。
最後に、ブロック1104の成立、不成立を判定する。
ここでは、#体温が38.5であるため、不成立となる
この間、又は導出処理の終了後、コントロール処理30
3は、証明処理305からの報告が1成功′の場合は、
ブロック106及び107の処理により、利用者の判断
に賛成する旨のメツセージを出力する。ブロック108
は、導出処理306により得られた各間を予思量と比較
し、′インフルエンザ′は予思量と同じであるから、こ
れを捨て、“膵臓炎′は予思量と異なるので、別の診断
として膵臓炎の可能性もある旨のメツセージを出力する
次に、推論マシンが、利用者の判断に反対し、対抗する
判断を出力する場合を説明する。今度は、゛利用者が、
r″倦怠感あり′、#体温が37.5℃」という症状か
ら、インフルエンザと判断し、その判断について推論マ
シンに相談する。ルール郡部308には、前記の例題と
同じく、第11図のルール集合が記憶されているとする
前記例題の場合と同様、コントロール処理303が、第
1図の処理を開始する。ブロック101とブロック10
2の処理により、作業メモリ309の内容が、第14図
に示すようになる。ブロック103が予思量1インフル
エンザゝ を入力する。
ブロック104が、証明処理305を起動する。
証明処理は、′インフルエンザ′を結論文字列とするル
ール、すなわちブロック1102を見出し、第8図の処
理により、その成立、不成立を検証する。ブロック80
1が、CLi5tにブロック1106を代入する。ブロ
ック802が、Cに゛消耗状態゛を代入する。ブロック
803が、Cは条件文字列であると判定する。ブロック
804が、′消耗状態゛は作業メモリ309にないと判
定する。
ブロック805が、証明処理305を再帰的に起動して
、“消耗状態′の証明を試みる。証明処理305は、前
記と同様の処理により、゛消耗状態′を結論文字列とす
るブロック1101の成立。
不成立を検証する。ここでは、前記の例と同様に、ブロ
ック1101が成立する場合を考える。この証明過程で
、#現体型の値55と、#平常体重の値60を利用者か
ら入力し、作業メモリ309に記憶する。この時点の作
業メモリの内容を、第15図に示す。
1消耗状態′の証明に成功し、ブロック1102の処理
におけるブロック806に戻ると、ブロック806が、
Yesと判定する。ブロック816により、CLi5t
に、((get(#体温) #体温〉38.0))が残
される。ブロック817がNOと判定する。
ブロック802が、Cに(get(#’体温)#体温>
38.0 )を代入する。ブロック803が、Cは条件
式と判定する。ブロック810が、Exにget(#体
温)を代入する。ブロック811がYesと判定する。
ブロック812が、get(#体温)を実行し、#体温
に37.5 を代入する。ブロック813により、Cに
(#体温>38.0)が残される。
ブロック81oが、E x ニ#体温)38.0  を
代入する。ブロック811がNoと判定する。ブロック
814が、Exが不成立と判定する。その結果、ブロッ
ク815が、Rすなわちブロック1102は不成立と判
定する。
゛インフルエンザ′を結論文字列とするルールが、ブロ
ック1102以外にないため、証明処理305は、゛イ
ンフルエンザ′の証明に失敗し、その旨をコントロール
処理303に報告する。
そこで、ブロック105が、導出処理306を起動する
。導出処理306は、まず、ブロック1101の成立、
不成立を検証する。この例では、成立すると判定し、 
′消耗状態′を作業メモリ309に記憶する。次に、ブ
ロック1102の成立、不成立を検証する。#体温が3
7.5であることから、不成立と判定する。
次に、ブロック1103の成立、不成立を判定する。こ
こで、利用者に′腹痛あり′の成立、不成立を問い合わ
せる。利用者が、成立すると答えたとする。この場合、
ブロック11o3が成立し、゛膵臓炎′という事実が成
立する。解候補郡部310を参照して、′膵臓炎′が解
となりうると判定し5これをコントロール処理303に
出力する。
次に、ブロック1104の成立、不成立を検証する。こ
こで、利用者に、#症状の継続日数を問い合わせる。利
用者が、50と答えたとする。この場合、ブロック11
04は成立する。解候補郡部310を参照して、 ゛結
核″が解となりうると判定し、′結核′をコントロール
処理303に出力する。
この間、又は導出処理の終了後、コントロール処理30
3は、証明処理305からの報告が“失敗1の場合は、
ブロック106及び109の処理により、利用者の判断
に反対する旨のメツセージを出力する。ブロック110
は、導出処理306により得られた全ての解を採用して
、むしろ膵臓炎又は結核の可能性がある旨のメツセージ
を出力する。
以上の例で示したように、本実施例は、専門家の判断を
検証すると同時に、その判断に賛成の場合には別間を、
また、その判断に反対の場合には対抗解を、もしあれば
自動的に提示し、それにより、専門家の早計や見落とし
を防ぎ、より妥当な結論に、より効率的に導くことがで
きる。
次に、専門家の判断を表わす予想解を複数個入力して、
これら予想解のそれぞれを検証し、その結果に応じてそ
れぞれの予想解に対する賛成あるいは反対を表明し、更
に、どの予想解とも異なる解を、別間あるいは対抗解と
して出力する実施例について、説明する。
本実施例の構成および処理動作は、コントロール処理3
03以外は、第1図〜第9図で説明した前記第1の実施
例と同様である。
第16図は、本実施例におけるコントロール処理の動作
を示しており、第1図に代わるものである。ブロック1
01及び102は、前記第1図中のブロック101及び
102と同じであり、利用者からデータを入力する。
ブロック1601は、複数の子思量をリストとして読み
込み、S Li5tに代入する。ブロック1602は、
S Li5tから最初の予思量を取りだし、Sに代入す
る。ブロック1603は、Sを引数として証明処理30
5を起動する。証明処理305の動作は、前記第1の実
施例と同様である。
ブロック1604は、5Listから、処理し終わった
予思量Sを除く。ブロック1605は、全ての予思量を
処理し終わったかどうかを判定する。
処理し終わった場合には、ブロック105に行き、終わ
っていない場合にはブロック1602に戻って、次の予
思量を処理する。
ブロック105は、導出処理を起動する。本導出処理は
、前記第1の実施例における導出処理30Gと同じであ
る。
導出処理の終了後、又はそれと並行して、出力処理が行
なわれる。ブロック1606は、少なくとも一つの予思
量の証明が成功したか、それとも全予想解の証明が失敗
したかを判定する。前者の場合、ブロック1607は、
各予思量について賛成又は反対を表わすメツセージを出
力し、ブロック1608は、導出処理306から受け取
った語間から予思量と等しいものを全て除き、残りを別
間として出力する。後者の場合、ブロック1609は。
全予想解に反対である旨のメツセージを出力し、ブロッ
ク1610は、導出処理306から受取った全ての解を
、対抗解として出力する。
変形として、証明処理305から一つの予思量の処理結
果を受け取るたびに(例えば、ブロック1604の前に
)、その予思量に対する賛否を出力してもよい。この場
合には、全予想解を処理した後でブロック1606の判
断が行われ、その結果に従って、ブロック1608又は
1610の処理が行われる。
以上のように、本実施例によれば、専門家の判断を表わ
す予思量を複数個入力して、これら予思量のそれぞれを
検証し、その結果に応じてそれぞれの予思量に対する賛
成あるいは反対を表明し、次にどの予思量とも異なる解
を、別間あるいは対抗解として出力することができる。
したがって、専門家が複数通りの判断を考え出した場合
や1判断に迷う場合にも、考えられる複数の判断をそれ
ぞれ予思量として入力すれば、推論マシンは、それぞれ
の判断を検証するとともに。
いずれの判断とも異なる別間又は対抗解を出力すること
によって、専門家の見落としを補い、最も妥当な結論に
効率良く導くことができる。
次に、専門家の判断に対する別間あるいは対抗解を直接
出力する代わりに、別間あるいは対抗解の存在を示す情
報を出力する実施例について、説明する。
本実施例のハードウェア構成は、第2図のとおりであり
、前記第1の実施例と同様である。
第17図は1本実施例の機能構成を示す。ブロック30
10は処理群であり、入出力処理3o2゜コントロール
処理3030.解析変換処理304゜証明処理305.
及び導出処理3060から成る。
ブロック3070はメモリであり、ルール郡部308、
作業メモリ309.解候補郡部310、及び解メモリ1
701から成る。
これらのうち、入出力処理302.解析変換処理304
.証明処理305.ルール郡部308゜作業メモリ30
9、及び解候補郡部310は、前記第1の実施例と同様
である。
コントロール処理3030は、前記第1の実施例と同様
に、入出力処理302からデータを受け取って1作業メ
モリ309に格納する。入出力処理302から予思量と
起動命令を受け取った時に、この予思量を引数として証
明処理305を起動し、証明の結果に応じて、予思量に
対し賛成あるいは反対の表明を入出力処理302に出力
する。次に、導出処理3060を起動する。導出処理3
060の終了後、解メモリ1701に予思量と異なる解
が記憶されているかどうかを判定する。記憶されていれ
ば、入出力処理302を介して、別間あるいは対抗解の
存在を利用者に示し、さらに、利用者からの要求に応じ
て、解メモリ1701中の解を利用者に出力する。
導出処理3060は、解を求めた時に、これをコントロ
ール処理3030に出力する代わりに、解メモリ170
1に格納し、処理が終ると、その旨をコントロール処理
3030に報告する。この点を除いて、前記第1の実施
例における導出処理306と同じである。
解メモリ1701は、導出処理3060から解を受け取
り、これを記憶する。
第18図は、本実施例のコントロール処理3030の動
作を示す。ブロック101〜107及び109は、前記
第1の実施例における第1図中のブロック101〜10
7及び109と同じであり、利用者からデータと予想解
を入力して、証明処理305によりこれを検証し1次い
で、導出処理306を起動する。そして、検証の結果に
従い、予想解に対する賛成又は反対を表明する。導出処
理307は、前述のように、得られた解を解メモリ17
旧に格納し、処理の終了をコントロール処理3030に
報告する。
予想解の証明が成功した場合、ブロック1801は、解
メモリ17o1中に別間、すなわち予想解と異なる解が
あるかどうかを調べて、もしなければ、ブロック180
2が、別間は存在しない旨のメツセージを出力し、処理
は終了する6他方、別間が解メモリ1701中にあれば
、ブロック1803は、別間が存在する旨のメツセージ
を出力し、ブロック18o4は、別間の出力を要求する
かどうかを利用者に尋ねる。別間の出力が要求されな番
すれば、処理は終了し、出力が要求されれば、ブロック
1805は、解メモリ1701の内容を読み出して、予
想解と異なるものだけを別間として出力し、処理が終了
する。
予想解の証明が失敗した場合には、ブロック1806が
、解メモリ1701中に解が格納されているかどうかを
調べる。この場合には、予想解との比較は必要なく、解
があれば、それは対抗解である。対抗解がなければ、ブ
ロック1807がその旨のメツセージを出力して、処理
は終了する。
対抗解があれば、ブロック1808がその旨のメツセー
ジを出力し、ブロック1809が対抗解の出力の要否を
利用者に尋ねる。出力が要求されなければ、処理は終了
し、出力が要求されれば、ブロック1810は、解メモ
リ1701の内容を対抗解として出力し、処理が終了す
る。
以上のように、本実施例は、利用者の判断を検証すると
ともに、その判断に対する別間あるいは対抗解の存在を
示し、さらに利用者の希望に応じて、別間あるいは対抗
解を出力できる。専門家は。
仕事の状況に応じて、別間あるいは対抗解を調べること
も、これを無視することもできる。
前述の諸実施例において、導出処理の起動は、証明処理
の終了後に行われる。しかしながら、これら両処理は、
逆の順序で行われてもよく。更に、並行して実行されて
もよい。例えば、両処理に交互のタイムスロットを割当
てて、タイマーの制御の下で、定期的な時分割処理を行
わせることができる。あるいは、いずれか一方の処理に
優先権を与え、この処理が、例えば利用者への問い合わ
せなどのために待ち状態にある間と、終了した後でのみ
、他方の処理が実行されてもよい。このような並行処理
の場合に、いずれか一方の処理が、中間結果として、又
は利用者への要求により、獲得して作業メモリに格納し
た情報は、他の処理で利用することができる。一般には
、証明処理を優先させるのが好ましい。その理由は、証
明処理の結果が導出処理により得られる解の扱いに影響
するためと、予想解の当否を早く知らせれば利用者のい
らだちが少ないためである。
第19図は、証明と導出の並行処理に特に適したハード
ウェア構成の一例を示す。入出力端末201及び記憶装
rI1203は、第2図における入出力端末201及び
記憶装置203と、それぞれ同等のものである。制御ユ
ニット1901は、第3図中の入出力処理3o2.コン
トロール処理303(又は第17図3030)、及び解
析変換処理304を実行するユニットであり、起動命令
を受けると、証明処理ユニット1902と導出処理ユニ
ット1903を同時に起動する。証明処理ユニット19
02は、第3図中の証明処理305を実行するための専
用ハードウェアであり、導出処理ユニット1903は、
第3図中の導出処理306(又は第17図3060)を
実行するための専用ハードウェアである。記憶制御装置
1904は、制御ユニット1901.証明処理ユニット
19o2、及び導出処理ユニット1903の間の、記憶
アクセス要求の競合を調整する。処理の高速化のために
、キャッシュメモリが記憶制御装置1904中に設けら
れてもよい、また、証明処理ユニット1902又は導出
処理ユニット1903のいずれかの一方(好ましくは証
明処理ユニット)は、制御ユニット19o1の一部とし
て構成されてもよい。
更に、前述の諸実施例では、コントロール処理303又
は3030が、導出処理により得られた解を予想解と比
較する。しかし、導出処理303又は3030に予想解
を渡して、導出処理自身にこの比較を行なわせてもよい
次に、エキスパートシステムへの本発明の詳細な説明す
る。エキスパートシステムは、推論マシンに予めルール
の集合を装備することによって、実現される。したがっ
て、前述の諸実施例は、ルールの集合が予め記憶されて
いて、ルールの集合を入力する処理が除かれることによ
り、そのまま。
エキスパートシステムにおける対応する実施例になる。
かくして、本発明は、推論マシン又はエキスパートシス
テムのいずれによっても、有能な助手システムを提供す
ることができる。
〔発明の効果〕
以上の説明から明らかなように1本発明によれば、利用
者の判断の検証と、別間又は対抗解の提示とが、1回の
起動操作で自動的に行われ、それにより、早計及び見落
としが防がれ、最も妥当な結論に能率良く到達すること
ができる。証明処理と導出処理はデータを共有し、した
がって、追加データの利用者への問い合わせの重複は防
止される。証明処理の待ち状態の間に導出処理を行えば
、能率は一層高められる。
複数の予想解を一括して処理する変形は、利用者が複数
の判断の間で迷う場合に便利であり、別間又は対抗解の
有無のみをまず出力する変形は、利用者を過剰な情報か
ら救う。
また、本発明の装置によれば、証明処理と導出処理の完
全な同時実行が実現され、したがって。
処理時間が短縮される。
【図面の簡単な説明】
第1図は本発明の方法の一実施例におけるコントロール
処理の手順を示すフローチャートであり、第2図は本発
明の方法を実行するのに適したデータ処理システムの一
例のハードウェア構成を示すブロックダイヤグラムであ
り、第3図は前記実施例を実行するデータ処理システム
の機能構成を示すブロックダイヤグラムであり、第4図
は本発明で使用されるルールの形式の一例を示す図であ
り、第5図は第4図に示されたルールの中間語の形式を
示す図であり、第6図は第5図に示されたルール中間語
中の条件式の詳細を示す図であり、第7図は本発明で使
用される作業メモリの内容の形式の一例を示す図であり
、第8図は前記実施例におけるルールの成立を検証する
処理の手順を示すフローチャートであり、第9図は第8
図の処理手順における変数値を求める処理の手順を示す
フローチャーhであり、第10図はルール集合の一例を
示す図であり、第11図は第10図のルール集合の中間
語を示す図であり、第12図は推論過程の初期における
作業メモリの内容の一例を示す図であり、第13図は推
論過程の中間において第12図から変化した作業メモリ
の内容を示す図であり、第14図は推論過程の初期にお
ける作業メモリの内容の他の例を示す図であり、第15
図は推論過程の中間において第14図から変化した作業
メモリの内容を示す図であり、第16図は本発明の方法
の第2の実施例におけろコントロール処理の手順を示す
フローチャートであり、第17図は本発明の第3の実施
例を実行するデータ処理システムの機能構成を示すブロ
ックダイヤグラムであり。 第18図は第3の実施例におけるコントロール処理の手
順を示すフローチャートであり、第19図は本発明の方
法の実行に適する本発明の判断補助装置の一実施例のブ
ロックダイヤグラムである。 101〜103・・・データと予想解の入力、104・
・・証明処理の起動、105・・・導出処理の起動。 107・・・予想解に賛成の旨の出力、108・・・別
解の出力、109・・・予想群に反対の旨の出力、11
0・・・対抗解の出力、1601〜1605・・・複数
の子思量の入力、1801〜1803・・・別間の有無
の出力、1804.1805・・・要求による別間の出
力、1806〜1808・・・対抗解の有無の出力、1
809.1810・・・要求による対抗解の出力、19
01・・・制御ユニット、1902・・・証明処理のた
めの第1推論ユニット、1903・・・導出処理のため
の第2推論ユニット、201・・・入出力ユニツ1−1
203・・・共用メモリ。

Claims (1)

  1. 【特許請求の範囲】 1、入力装置と、出力装置と、1個以上のルールを保持
    するルール記憶部を含む記憶装置と、前記ルールに基づ
    く推論処理を行なう推論手段を含む処理装置とを備える
    データ処理システムにおいて、問題を表わすデータとこ
    の問題の予想解とを前記入力手段を介して受け取つて前
    記記憶装置に記憶する入力ステップと、前記推論手段に
    より前記データに前記ルールを適用して前記予想解の証
    明を試みる証明ステップと、前記証明ステップと連動し
    て開始されて前記推論手段により前記データに前記ルー
    ルを適用して前記問題の全ての可能な解を導出する導出
    ステップと、前記証明の成功又は不成功を表わす情報を
    前記出力装置を介して出力する第1出力ステップと、前
    記導出された解の少なくとも一部を前記証明の成功又は
    不成功と関連付けて前記出力装置を介して出力する第2
    出力ステップとを有し、前記証明ステップと導出ステッ
    プの少なくとも一方は、その過程で必要が生じた追加デ
    ータを前記出力装置を介して要求するステップと、前記
    追加データを前記入力装置を介して受け取つて前記記憶
    装置に記憶するステップとを含み、前記証明ステップ及
    び導出ステップの他方は、前記一方の過程で記憶された
    前記追加データを必要に応じて使用する、判断補助方法
    。 2、請求項1において、前記第2出力ステップは、前記
    証明が成功した場合に前記導出された解の内で前記予想
    解と異なるもののみを別解として出力し、前記証明が不
    成功の場合に前記導出された解のすべてを対抗解として
    出力する、判断補助方法。 3、請求項1又は2において、前記入力ステップは、複
    数の予想解を受け取り、前記証明ステップは、前記複数
    の予想解のそれぞれの証明を試みる、判断補助方法。 4、請求項1において、前記第2出力ステップに代えて
    、前記予想解と異なる解の有無を表わす情報を出力する
    ステップと、前記入力装置を介する要求に応じて予想解
    と異なる前記解を前記出力装置を介して出力するステッ
    プとを有する、判断補助方法。 5、請求項1、2、3又は4において、前記証明ステッ
    プは、その過程で必要が生じた追加データを前記出力装
    置を介して要求するステップと、前記追加データを前記
    入力装置を介して受け取つて前記記憶装置に記憶するス
    テップとを含み、前記導出ステップは、前記証明ステッ
    プの終了後に開始されて、記憶された前記追加データを
    必要に応じて使用する、判断補助方法。 6、請求項1、2、3又は4において、前記証明ステッ
    プと導出ステップは並行して遂行され、両ステップのそ
    れぞれは、その過程において必要が生じた追加データを
    前記出力装置を介して要求するステップと、前記追加デ
    ータを前記入力装置を介して受け取つて前記記憶装置に
    記憶するステップとを含み、更に、他方により記憶され
    た前記追加データを必要に応じて使用する、判断補助方
    法。 7、請求項6において、前記導出ステップは前記証明ス
    テップが待ち状態にある間に行われる、判断補助方法。 8、請求項1ないし7の任意の一つにおいて、前記ルー
    ルの少なくとも一部を前記入力装置を介して受け取つて
    前記記憶装置に記憶し、それにより前記ルール記憶部を
    形成するステップを更に有する、判断補助方法。 9、入力ユニットと、出力ユニットと、問題を表わすデ
    ータにルール群を適用して予想解の証明を試みる第1推
    論ユニットと、前記データに前記ルール群を適用して前
    記問題の全ての可能な解を導出する第2推論ユニットと
    、前記入力ユニット及び出力ユニット並びに第1及び第
    2推論ユニットに接続されて前記第1及び第2推論ユニ
    ットの並列動作を制御するとともに入出力処理を行なう
    制御ユニットと、前記第1及び第2推論ユニット並びに
    制御ユニットに接続されて前記データ及びルール群を含
    む所要情報を記憶する共用メモリとを備える、判断補助
    装置。
JP63308854A 1988-12-08 1988-12-08 判断補助方法および装置 Pending JPH02156331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63308854A JPH02156331A (ja) 1988-12-08 1988-12-08 判断補助方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63308854A JPH02156331A (ja) 1988-12-08 1988-12-08 判断補助方法および装置

Publications (1)

Publication Number Publication Date
JPH02156331A true JPH02156331A (ja) 1990-06-15

Family

ID=17986064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63308854A Pending JPH02156331A (ja) 1988-12-08 1988-12-08 判断補助方法および装置

Country Status (1)

Country Link
JP (1) JPH02156331A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230370A (en) * 1991-03-14 1993-07-27 Sulzer Brothers Limited Shaft rod and a heald frame for a loom

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62256128A (ja) * 1986-04-30 1987-11-07 Toshiba Corp 推論方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62256128A (ja) * 1986-04-30 1987-11-07 Toshiba Corp 推論方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230370A (en) * 1991-03-14 1993-07-27 Sulzer Brothers Limited Shaft rod and a heald frame for a loom

Similar Documents

Publication Publication Date Title
EP1011419B1 (en) Method and apparatus to assist a user in creating a medical protocol
Barnett et al. DXplain: an evolving diagnostic decision-support system
Munaiseche et al. An Expert system for diagnosing eye diseases using forward chaining method
US5812984A (en) Method for entering information into an electronic patient chart, and protocol auto-negative capabilities
CN110825862B (zh) 基于药学知识图谱的智能问答方法及装置
JPS619729A (ja) 推論システム
WO1999023573A1 (en) Intelligent profiling system
JP2008507784A (ja) 実行可能医療ガイドラインの実行をシミュレートするための意思決定支援システム
CN113035350B (zh) 一种基于知识抽取的医学决策支持方法和系统
Pfeifer et al. The value of disease severity in predicting patient readiness to address end-of-life issues
JPH02156331A (ja) 判断補助方法および装置
CN111383724A (zh) 多中心协同临床试验中受试者随机入组的辅助系统和方法
Colleen Corte A theoretical analysis of Carper's ways of knowing using a model of social cognition
CN112700861B (zh) 伴随症状交互方法及伴随症状交互系统
JP2003256580A (ja) 病院紹介システム
Kohout et al. Design of questioning strategies for knowledge-based systems
JP2005182362A (ja) 看護医療支援装置、方法、及びプログラム
Puppe et al. Overview on MED1: a heuristic diagnostics system with an efficient control-structure
Yuan et al. A hybrid automated event adjudication system for clinical trials
Shahsavar et al. Kave: a tool for knowledge acquisition to support artificial ventilation
McWhinney Decision making in general practice
Malin Information-processing load in problem solving by network search.
EP4180989A1 (en) Method and apparatus for processing data
Goldberg et al. Building a meta-agent for human-machine dialogue in machine learning systems
Chen et al. Toward a Clinical Point of Care Tool for Managing Heart Failure