JPH02156331A - Method and device for aiding judgement - Google Patents

Method and device for aiding judgement

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
Japanese (ja)
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/en
Publication of JPH02156331A publication Critical patent/JPH02156331A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To obtain a device which prevents expert's premature judgement, oversight, or the like and is a capable helper and is free from unnecessary operation by verifying expert's judgement and spontaneously presenting another answer or a competitive answer. CONSTITUTION:A certification processing 305 is started with a character string indicating a potential answer as the argument by a control processing 303. When this answer is found in a work memory 309, certification results in suc cess, but when it cannot be found there, a rule having this answer as a conclu sion character string is extracted from a rule group 308, and success or failure of a condition character string and a condition formula of this rule is verified. A leading-out means 306 compares the rule, whose all condition character strings and condition formulas are satisfied, with an answer candidate group 310 to discriminate the rule while referring to character strings and variable values stored in the work memory 309, and the rule is transferred to the control processing 303 when it is an answer, but the rule is stored in the memory 309 as an intermediate result when it is not an answer. Thus, the device which is a capable helper and is free from unnecessary operation is obtained.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、推論マシン又はエキスパートシステムのよう
な、特定のルール群に基づいて問題に関する判断を行な
うデータ処理システムに関し、特に、専門家の代行とい
うよりも専門家の助手として利用するのに適した、この
種のシステムに関する。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to a data processing system, such as a reasoning machine or an expert system, that makes decisions regarding problems based on a specific set of rules, and in particular, to Rather, it concerns a system of this kind that is suitable for use as a specialist's assistant.

〔従来の技術〕[Conventional technology]

まず、推論マシンについて概略を説明する。推論マシン
は、対象とする分野の知識をルール群の形で受取り、記
憶する。利用者が、自分の解決したい問題をデータの形
で推論マシンに入力すると、推論マシンは、前記のルー
ル群を用いて、指定された推論を行う。従来の推論マシ
ンは、情報処理学会誌、第26巻、第12号(1985
年)、第1487頁から第1496頁に論じられている
ように、以下の2種類の推論を行うことができる。
First, an outline of the inference machine will be explained. Reasoning machines receive and store knowledge in the field of interest in the form of rules. When a user inputs the problem he/she wants to solve in the form of data into an inference machine, the inference machine performs the specified inference using the aforementioned rule group. Conventional inference machines are described in Information Processing Society of Japan, Vol. 26, No. 12 (1985).
As discussed in J.D., pp. 1487-1496, two types of inferences can be made:

(1)証明処理 問題と、それに対する利用者の解答を入力して、利用者
の解答の正誤を判定する。具体的には、問題を表わすデ
ータと、利用者の解答を入力して、前者からルール群を
介して後者が矛盾なく導けるかどうかを検証する。以下
、問題に対する利用者の解答を、利用者の「予想解」と
呼ぶことにする。
(1) Input the proof processing question and the user's answer to the question, and determine whether the user's answer is correct or incorrect. Specifically, data representing the problem and the user's answer are input, and it is verified whether the latter can be derived from the former through a set of rules without contradiction. Hereinafter, the user's answer to the question will be referred to as the user's "expected answer."

証明処理は、予想解の検証を行う処理である。The proof process is a process of verifying the predicted solution.

(2)導出処理 問題を入力して、それに対する解答を新たに導出する。(2) Derivation processing Enter a question and derive a new answer.

具体的には、問題を表わすデータを入力して、このデー
タからルール群を介して解答を導出する。
Specifically, data representing a problem is input, and an answer is derived from this data via a set of rules.

例えば、医療診断システムにおいては、体温が37.5
℃、顔色が青白いなどの症状を問題データとしと、風邪
という病名を予想解として受けて、利用者の予想解が正
しいかどうかをデータとルール群から検証するのが、証
明処理である。一方、これらのデータとルール群から、
風邪、インフルエンザなどの病名を新たに推定するのが
、導出処理である。
For example, in a medical diagnostic system, body temperature is 37.5
℃, pale complexion, and other symptoms are used as problem data, and the name of a disease called a cold is used as a predicted answer.The proof process involves verifying whether the user's predicted answer is correct using the data and a set of rules. On the other hand, from these data and rules,
The derivation process is to newly estimate the name of a disease such as a cold or influenza.

専門家が行っている知的業務を推論マシンに代行させる
試みが、1970年頃から進められてきた。しかし、多
くの適用実験の結果、計算機化に適した一部の分野を除
くと、専門家の知的業務を完全に代行しうる推論マシン
の開発は困難であることが明らかになってきた。
Efforts have been underway since the 1970s to have reasoning machines perform the intellectual tasks performed by experts. However, as a result of many applied experiments, it has become clear that it is difficult to develop reasoning machines that can completely perform the intellectual tasks of experts, except in some fields that are suitable for computerization.

そこで近年、推論マシンを、専門家の代行ではなく、助
手として利用することが考慮されるようになってきた。
Therefore, in recent years, consideration has been given to using inference machines as assistants rather than substitutes for experts.

推論マシンを専門家の助手として利用する場合には、専
門家の代行として利用する場合とは異なる機能が要求さ
れる。助手としての推論マシンには、自ら主導権を持っ
て結論を下す機能ではなく、専門家の判断を補う機能が
必要である。つまり、専門家の判断を検証するとともに
、早計や見落としを防いで最も妥当な結論に導くために
、助言として別解や対抗解を示す機能が必要である。
When an inference machine is used as an assistant to an expert, different functions are required than when it is used as a substitute for the expert. As an assistant, a reasoning machine needs the ability to supplement the judgment of experts, rather than the ability to draw conclusions on its own. In other words, it is necessary to have a function that not only verifies the judgment of experts but also provides alternative or counter-solutions as advice in order to prevent premature mistakes or oversights and lead to the most appropriate conclusion.

このような機能は、部分的には、証明処理又は導出処理
を個々に用いるだけで実現できる。例えば、証明処理に
よれば、状況をデータとし、それに対する専門家の判断
を予想解として入力し、専門家の判断を検証することが
できる。また、導出処理によれば、状況をデータとして
入力し、いくつかの可能な判断を出力することができる
Such functionality can be achieved in part simply by using individual proof or derivation processes. For example, according to the proof process, it is possible to verify the expert's judgment by inputting the situation as data and the expert's judgment regarding the data as a predicted solution. Moreover, according to the derivation process, the situation can be input as data and several possible judgments can be output.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

しかしながら、従来技術は、個々の部分的な機能を提供
するのみであり、これらを統合して助手システムとして
十分な機能を提供することはできなかった。すなわち、
必要な機能が適宜自動的に起動されるのではなく、専門
家が自分で必要な機能を選択して、それらを個々に起動
しなければならなかった。そのため、助手として実際に
利用するときに、以下の不便があった。
However, the conventional technology only provides individual partial functions, and cannot integrate these functions to provide sufficient functions as an assistant system. That is,
Instead of the necessary functions being activated automatically as appropriate, the expert had to select the necessary functions himself and activate them individually. Therefore, when actually using it as an assistant, there were the following inconveniences.

まず、専門家の早計や見落としを指摘する機能が弱い、
専門家の判断を検証し、正しいと判断した場合、有能な
助手としては、専門家の判断に賛成を表明するだけでな
く、他の可能な判断(別解)を探索し、もしあれば、こ
れを示すべきである。
First, the ability to point out premature mistakes or oversights by experts is weak.
After verifying the expert's judgment and determining that it is correct, a competent assistant should not only express agreement with the expert's judgment, but also explore other possible judgments (alternative solutions), if any. , this should be shown.

例えば、医師が患者の症状から′風邪′と判断し。For example, a doctor determines that a patient has a ``cold'' based on his symptoms.

この検証を助手システムに依頼した場合、助手システム
は、医師の判断に誤りが発見できない時でも、更に他の
病気の可能性を探すべきである。ところが、従来技術で
は、専門家が証明処理を用いて判断を検証し、賛成の回
答を得た時に、専門家が用心深くも別の可能性を求めて
導出処理を新たに起動しない限り、システムは何もしな
い、したがって、専門家の見落としを自動的に防止する
ことができない0例えば、患者の症状から′風邪′以ガ
に′結核′が考えられる場合にも、システムが自発的に
これを指摘することはない。
When an assistant system is requested to perform this verification, the assistant system should look for the possibility of other diseases even if no error is detected in the doctor's judgment. However, in the conventional technology, when the expert verifies the judgment using the proof process and receives a positive answer, the system will not work unless the expert is cautious and starts a new derivation process in search of another possibility. Does nothing, therefore cannot automatically prevent oversight by experts. For example, if a patient's symptoms indicate that ``tuberculosis'' is more likely than a ``cold,'' the system will automatically point this out. There's nothing to do.

また、専門家の判断の誤りに対して積極的に助言する機
能もない、専門家の判断を検証し、誤りと判断した場合
、有能な助手としては、反対を表明するだけでなく、自
分の判断(対抗解)を示すべきである。しかし、従来技
術では、システムは、単に反対を表明するだけであり、
自分の判断は示さない、専門家は、対抗解を得るために
、改めて導出処理を起動しなければならない、このよう
なシステムは、助手として極めて不親切である。
In addition, there is no function to proactively advise against errors in the judgment of experts.If an expert's judgment is verified and determined to be incorrect, a competent assistant should not only express opposition, but also The judgment (counter solution) should be shown. However, in the prior art, the system simply expresses the opposition;
Such a system, which does not show its own judgment and requires the expert to restart the derivation process in order to obtain a counter solution, is extremely unfriendly as an assistant.

以上のように、従来技術は、専門家の助手として利用す
るための十分な機能を提供することができず、助手とし
て役立てるには、専門家側の注意と重複的な操作とが必
要であった。
As described above, the conventional technology cannot provide sufficient functions to be used as an assistant to an expert, and requires careful attention and redundant operations on the part of the expert to be useful as an assistant. Ta.

本発明の目的は、専門家の判断を検証するとともに、別
解又は対抗解を自発的に提示し、それにより、専門家の
早計や見落としを防ぎ、あるいは正解への具体的な示唆
を与える機能を持ち、助手として極めて有能で、かつ、
操作にむだのない、判断補助システムを提供することに
ある。
The purpose of the present invention is to verify the expert's judgment and spontaneously present an alternative or counter solution, thereby preventing the expert from making premature decisions or overlooking the matter, or providing specific suggestions for the correct answer. and is extremely capable as an assistant, and
The objective is to provide a decision support system that is efficient in operation.

〔課題を解決するための手段〕[Means to solve the problem]

本発明は、起動命令に応じて証明処理を遂行するととも
に、証明処理と連動して導出処理を起動する。証明処理
は、入力されたデータを用いて入力された予想解の証明
を試み、導出処理は、この入力された同じデータを用い
てあらゆる可能な解を導出し、少なくとも一方の処理は
、他方の処理がその過程で利用者に要求して入手した追
加データを、必要に応じて使用する。導出処理により得
られた解は、証明処理の結果と関連付けて出力される。
The present invention performs proof processing in response to a startup command, and starts derivation processing in conjunction with the proof processing. The proof process attempts to prove the input predicted solution using the input data, the derivation process uses this same input data to derive all possible solutions, and at least one process attempts to prove the input predicted solution. Where necessary, the processing uses additional data requested and obtained from the user during the process. The solution obtained by the derivation process is output in association with the result of the proof process.

例えば、証明処理が予想解の証明に成功した場合には、
予想解と異なる解が別解として出力され、証明処理が予
想解の証明に失敗した場合には、すべての解が対抗解と
して出力される。
For example, if the proof process succeeds in proving the predicted solution,
Solutions different from the predicted solution are output as separate solutions, and if the proof process fails to prove the predicted solution, all solutions are output as counter solutions.

複数の予想解を入力して、1回の起動に応じてそれらの
すべてを検証するようにしてもよい。他の変形として、
別解又は対抗解を直接出力する代りに、別解又は対抗解
の有無を示す情報を出力し、利用者から要求された時に
それらの解を出力してもよい。
A plurality of predicted solutions may be input and all of them may be verified in response to a single activation. Another variation is
Instead of directly outputting alternative solutions or counter solutions, information indicating the presence or absence of alternative solutions or counter solutions may be output, and these solutions may be output when requested by the user.

証明処理と導出処理のどちらが先に行われてもよいが、
証明処理を導出処理の前に行うのが有利である。あるい
は、証明処理と並行して導出処理が行われてもよい。前
者の場合、導出処理は、証明処理の過程で要求されて入
力された追加データを利用し、後者の場合、任意の一方
の処理は、他方の処理の過程で要求されて入力された追
加データを利用する。導出処理と証明処理の並行遂行は
、任意の時分割方式によることができるが、証明処理に
優先権を与えて、証明処理が待ち状態にある間に導出処
理を行うのが有利である。
Either the proof process or the derivation process may be performed first, but
It is advantageous to carry out the proof process before the derivation process. Alternatively, the derivation process may be performed in parallel with the proof process. In the former case, the derivation process utilizes additional data requested and entered during the proof process; in the latter case, any one process utilizes additional data requested and entered during the other process. Take advantage of. Although the derivation process and the proof process can be performed in parallel in any time-sharing manner, it is advantageous to give priority to the proof process and perform the derivation process while the proof process is in a waiting state.

本発明は、予めルールが記憶されているエキスパートシ
ステムによっても、また、必要に応じてルールの少なく
とも一部が供給される推論マシンによっても、実現する
ことができる。
The invention can be implemented by an expert system in which rules are stored in advance, or by a reasoning machine to which at least some of the rules are supplied as needed.

導出処理と証明処理の並行遂行に適する本発明の装置は
、証明処理のための第1推論ユニットと、導出処理のた
めの第2推論ユニットと、両推論ユニットの並行動作を
制御するとともに入出力処理を行なう制御ユニットと、
第1及び第2推論ユニット並びに制御ユニットに共用さ
れるメモリとを備える。
The device of the present invention, which is suitable for performing derivation processing and proof processing in parallel, has a first inference unit for proof processing, a second inference unit for derivation processing, and controls the parallel operations of both inference units, as well as input/output. A control unit that performs processing;
a memory shared by the first and second inference units and the control unit.

〔作用〕[Effect]

本発明によれば、利用者が問題を表わすデータと自分の
判断を示す予想解を与えてシステムを起動すると、シス
テムは、証明処理と導出処理の双方を自発的に実行して
、利用者の判断に対する賛否と共に、システム自身によ
る解を1例えば別解又は対抗解として出力し、それによ
り、利用者の早計又は見落としが防止されて、最も妥当
な結論に能率よく到達することができる。一方の処理は
他方の処理の過程で入力された追加データを直接使用で
きるので、利用者への問い合わせの重複が避けられ、能
率がよい。
According to the present invention, when a user starts the system by providing data representing a problem and a predicted solution representing his/her own judgment, the system autonomously performs both proof processing and derivation processing to support the user. Along with the pros and cons of the judgment, the system outputs its own solution as, for example, an alternative solution or a counter solution, thereby preventing the user from making premature decisions or overlooking the decision, and making it possible to efficiently reach the most appropriate conclusion. Since one process can directly use additional data input during the process of the other process, duplication of inquiries to users can be avoided and efficiency is improved.

複数のp想解を処理する変形は、1回の起動で、複数の
予想解のそれぞれを検証するとともに、システム自身に
よる解を出力するから、利用者が複数の代替的な判断に
達した場合でも、それらを−括して処理することができ
る。また、別解又は対抗解の存在を示す情報を出力する
変形では、別解又は対抗解の出力は利用者の選択に任さ
れるから、利用者は過剰な情報に悩まれることがない。
The variant that handles multiple p-conceptions verifies each of the multiple predicted solutions and outputs the system's own solution in a single activation, so if the user reaches multiple alternative decisions, However, they can be processed together. Further, in the modification that outputs information indicating the existence of an alternative solution or a counter solution, outputting the alternative solution or a counter solution is left to the user's choice, so the user does not have to worry about excessive information.

導出処理が証明処理の終了の後で行われる場合には、証
明処理の過程で入力された追加データが保存されるので
、導出処理は、この追加データを。
If the derivation process is performed after the completion of the proof process, the additional data input during the proof process is saved, so the derivation process saves this additional data.

利用者に問い合わせることなしに、直ちに使用できる。It can be used immediately without asking the user.

また、両処理が並行して行われる場合には、各処理の過
程で入力された追加データが保存されるので、どちらの
処理も、他方の処理の過程で人力された追加データを、
利用者に問い合わせることなしに、直ちに使用できる。
Additionally, when both processes are performed in parallel, the additional data input in each process is saved, so either process can save the additional data input manually in the process of the other process.
It can be used immediately without asking the user.

特に、証明処理が待ち状態にある間に導出処理が行われ
る場合には。
Especially if the derivation process is performed while the proof process is in a waiting state.

例えば利用者への追加データの要求からその入力までの
間などの、遊休時間が有効に利用され、したがって、単
純な定期的時分割処理と比較して、効率がよい。これら
の場合において、証明処理を優先させるのが有利な理由
は、証明処理の結果が導出処理により得られる解の扱い
に影ツするためと、予想解の当否を早く知らせれば利用
者のいらだちが少ないためである。
Idle time, for example between requesting additional data to the user and inputting it, is effectively utilized and is therefore more efficient compared to simple periodic time-sharing processing. In these cases, the reason why it is advantageous to give priority to the proof process is that the result of the proof process will affect the handling of the solution obtained by the derivation process, and also because informing the user of the validity of the predicted solution early will reduce user irritation. This is because there are few

また1本発明の前記装置は、証明処理と導出処理を各別
のハードウェアにより同時に遂行する。
Further, in the apparatus of the present invention, the proof processing and the derivation processing are simultaneously performed by separate hardware.

両処理は、共用メモリを介して、ルール、問題データ、
追加データ、中間結果、及びその他の所要情報を共有し
、両処理の結果は、制御ユニットにより関連付けられる
。したがって、通常のデータ処理装置によっても本発明
の方法を実施しうろことはいうまでもないが、特にこの
装置は、本発明の方法を極めて能率よ〈実施することが
できる。
Both processes store rules, problem data,
The results of both processes are linked by the control unit, sharing additional data, intermediate results, and other required information. Therefore, although it goes without saying that the method of the present invention can be carried out using ordinary data processing equipment, this apparatus in particular can carry out the method of the present invention extremely efficiently.

〔実施例〕〔Example〕

まず、第1の実施例を説明する。この実施例では、ルー
ルの集合と、状況又は問題を表わすデータと、m−の予
想間とが推論マシンに入力されて。
First, a first example will be described. In this example, a set of rules, data representing a situation or problem, and m-predictions are input into a reasoning machine.

予想間の検証と、別間又は対抗解の導出が行われ、賛成
の表明と別間、あるいは反対の表明と対抗解が出力され
る。
Verification of predictions and derivation of alternative predictions or counter solutions are performed, and expressions of approval and predictions, or expressions of opposition and counter solutions are output.

第2図は1本実施例のためのハードウェア構成の一例を
示す。入出力端末201は、例えば、キーボードとCR
Tを有するデイスプレィ端末であり、ルールの集合、解
候補の集合、データ、P思量及び起動命令を、外部(利
用者)から受け取って中央処理装置12202に渡し、
また、処理の途中で生じたデータ要求及び処理の結果を
、中央処理装置12202から受け取って外部に出力す
る。中央処理装置202は、入出力端末201からのル
ールの集合と解候補の集合とデータを、ルールは中間語
に変換した後、記憶装置203に格納する。
FIG. 2 shows an example of the hardware configuration for this embodiment. The input/output terminal 201 includes, for example, a keyboard and a CR.
It is a display terminal with T, which receives a set of rules, a set of solution candidates, data, P considerations, and a startup command from the outside (user) and passes it to the central processing unit 12202.
Further, data requests generated during processing and processing results are received from the central processing unit 12202 and output to the outside. The central processing unit 202 converts the set of rules, the set of solution candidates, and data from the input/output terminal 201 into intermediate words, and then stores the rules in the storage device 203 .

予想間と起動命令を入出力端末201から受け取ると、
中央処理Mff1202は、ルールとデータと解候補を
必要に応じて記憶装置203から読み出しつつ、まず、
予想間を検証し、次に別間又は対抗解を導出し、そして
、検証の結果と別間又は対抗解を入出力端末201に送
る。中央処理装置202は、また、検証又は導出の過程
で必要が生じたデータの要求を、入出力端末201に送
る。
Upon receiving the expected time and start command from the input/output terminal 201,
The central processing Mff 1202 first reads rules, data, and solution candidates from the storage device 203 as necessary.
The predicted interval is verified, then an alternative interval or counter solution is derived, and the verification result and the alternative interval or counter solution are sent to the input/output terminal 201. The central processing unit 202 also sends requests for data that become necessary during the verification or derivation process to the input/output terminal 201.

第3図は、本実施例の機能構成を示す。ブロック301
は処理群であり、入出力処理302.コントロール処理
303.解析変換処理304.証明処理305、及び導
出処理306から成る。ブロック307はメモリであり
、ルール郡部308゜作業メモリ309、及び解候補郡
部310から成る。
FIG. 3 shows the functional configuration of this embodiment. block 301
is a processing group, and input/output processing 302. Control processing 303. Analysis conversion processing 304. It consists of a proof process 305 and a derivation process 306. Block 307 is a memory, which includes a rule group section 308, a working memory 309, and a solution candidate group section 310.

入出力処理302は、ルールの集合、解候補の集合、デ
ータ、予想間、及び起動命令を外部から受けて、ルール
の集合を解析変換処理304に出力し、予想間、及び起
動命令をコントロール処理303に出力し、データをコ
ントロール処理303゜証明処理305又は導出処理3
06に出力し、解候補の集合を解候補郡部310に格納
する。コントロール処理303は、入出力処理302か
らのデータを作業メモリ309に格納する。コントロー
ル処理303は、また、入出力処理302から予想間と
起動命令を受け取った時に、この予想間を引数として証
明処理305を起動し、証明処理が終ると、導出処理3
06を起動する。導出処理306から解が得られると、
コントロール処理303は、それを予想間と比較し、等
しければその解を捨てる。導出処理が終ると、コントロ
ール処理303は、証明処理と導出処理の結果を総合し
て、出力メツセージを編集し、入出力処理302に出力
する。
The input/output processing 302 receives a set of rules, a set of solution candidates, data, a prediction interval, and a start command from the outside, outputs the set of rules to an analysis conversion process 304, and performs control processing on the prediction interval and start command. 303, and the data is subjected to control processing 303, proof processing 305 or derivation processing 3
06, and a set of solution candidates is stored in the solution candidate grouping section 310. Control processing 303 stores data from input/output processing 302 in working memory 309 . When the control processing 303 receives a prediction interval and a startup command from the input/output processing 302, it activates a proof process 305 using the prediction interval as an argument, and when the proof process is finished, a derivation process 305 is started.
Start 06. When a solution is obtained from the derivation process 306,
Control processing 303 compares it with the expected interval and discards the solution if they are equal. When the derivation process is completed, the control process 303 combines the results of the proof process and the derivation process, edits an output message, and outputs it to the input/output process 302.

解析変換処理304は、入出力処理302からルールの
集合を受け取って、これを中間語に変換してルール郡部
308に格納する。証明処理305は、コントロール処
理305から予想間を引数として起動命令を受けた時に
、作業メモリ309に格納されたデータを参照しながら
ルール郡部308中の中間語化されたルール集合を解釈
適用することにより、この予想間を検証して、その結果
をコントロール処理303に報告する。この検証の過程
で、追加データが必要になると、証明処理305は、入
出力処理302に要求を発して、そこから新たなデータ
を受け取り、二九を作業メモリ309に格納する。
The analysis conversion process 304 receives a set of rules from the input/output process 302, converts it into an intermediate language, and stores it in the rule group section 308. The proof processing 305 interprets and applies the intermediated rule set in the rule group section 308 while referring to the data stored in the working memory 309 when receiving a start command from the control processing 305 with the prediction interval as an argument. This prediction interval is verified and the result is reported to the control processing 303. During this verification process, when additional data is required, the proof processing 305 issues a request to the input/output processing 302, receives new data therefrom, and stores the number in the working memory 309.

導出処理306は、コントロール処理303から起動命
令を受けた時に、作業メモリ309に格納されたデータ
と中間結果を参照しながらルール郡部308中の中間語
化されたルール集合を解釈適用することにより、解を導
出して、それをコントロール処理303に報告する。こ
の導出の過程で、導出したある事実が解となりうるかど
うかを判定するために、導出処理306は、解候補郡部
310を参照して、導出した東夷が解候補集合に含まれ
ていれば、これを解と判断し、含まれなければ、解では
なく中間結果であると判断する。また、導出処理306
も、追加データが必要になると、入出力処理302に要
求を発して、そこから新たなデータを受け取り、これを
作業メモリ309に格納する。
When the derivation process 306 receives the activation command from the control process 303, the derivation process 306 interprets and applies the intermediated rule set in the rule group unit 308 while referring to the data stored in the working memory 309 and intermediate results. A solution is derived and reported to control processing 303. In this derivation process, in order to determine whether a certain derived fact can be a solution, the derivation process 306 refers to the solution candidate group 310, and if the derived Toi is included in the solution candidate set, the derivation processing 306 is judged to be a solution, and if it is not included, it is judged to be an intermediate result rather than a solution. Also, the derivation process 306
When additional data is needed, it issues a request to input/output processing 302, receives new data from it, and stores it in working memory 309.

ルール郡部308は、解析変換処理304から中間語化
されたルールの集合を受け取って、これを記憶し、証明
処理305及び導出処理306に、要求に応じてルール
を供給する。作業メモリ307は、証明処理305の起
動に先立って、コントロール処理303からデータを受
け取り、また、証明及び導出の過程で、証明処理305
及び導出処理306から新たなデータを受け取り、更に
、導出処理306から推論の中間結果を受け取って、そ
れらを記憶する。
The rule grouping unit 308 receives a set of intermediate rules from the analysis conversion process 304, stores it, and supplies the rules to the proof process 305 and the derivation process 306 according to requests. The working memory 307 receives data from the control process 303 before starting the proof process 305, and also receives data from the proof process 305 in the process of proof and derivation.
and new data from the derivation process 306, and also receives intermediate results of inference from the derivation process 306 and stores them.

解候補郡部310は、推論の対象とする問題の分野にお
いて解となりうる事実の集合、すなわち解候補の集合を
、入出力処理302がら受け取り、これを記憶する。例
えば医療診断の分野では、解候補の集合は、病名の集合
である。更に、メモリ307は、図示されていないが、
前記語処理のために、必要な他の種々の情報を格納する
部分を含む。
The solution candidate grouping unit 310 receives from the input/output processing 302 a set of facts that can be a solution in the field of the problem targeted for inference, that is, a set of solution candidates, and stores it. For example, in the field of medical diagnosis, a set of solution candidates is a set of disease names. Furthermore, although the memory 307 is not shown,
It also includes a section for storing various other necessary information for the word processing.

第4図は、本実施例で使用されるルールの構成を示す。FIG. 4 shows the configuration of rules used in this embodiment.

ブロック401はルールの条件部であり。Block 401 is the condition part of the rule.

0個以にのく条件文字列〉及び〈条件式〉から成る。た
だし、〈条件文字列〉とく条件式〉の少なくとも一方は
、1個以上である。く条件文字列〉は文字列であり、推
論の前提条件あるいは中間結果を表わす。く条件式〉は
、−個以上の変数に関する等式あるいは不等式であり、
推論の前提条件を表わす。
Consists of 0 or more condition character strings and conditional expressions. However, at least one of the <conditional character string> and the conditional expression> is one or more. A condition string> is a character string that represents a precondition or an intermediate result of inference. A conditional expression is an equality or inequality regarding − or more variables,
Represents preconditions for inference.

ブロック402はルールの結論部であり、1n眉のく結
論文字列〉から成る。く結論文字列〉は、文字列であり
、推論の中間結果あるいは解を表わす。
Block 402 is the conclusion part of the rule and consists of 1n eyebrow-raising conclusion character string. The conclusion character string is a character string that represents an intermediate result or solution of the inference.

第5図は、第4図のルールを解析変換処理3011が解
析変換した結果の中間語、即ちルール中間語であり、各
ルールはこの形式でルール郡部308に記憶される。上
記の証明処理及び導出処理は、実際には本中間語を用い
て行われる。
FIG. 5 shows an intermediate word resulting from analysis and conversion of the rule shown in FIG. 4 by the analysis conversion processing 3011, that is, a rule intermediate word, and each rule is stored in this format in the rule group section 308. The above proof processing and derivation processing are actually performed using this intermediate language.

本実施例では、ルール郡部308中のルール中間語およ
び作業メモリ309中の変数値情報をリスト構造で表わ
すことにする。リストは、任意の個数の要素を′(′ 
と′)′で囲むことにより記述する。リストの要素がそ
れ自体リストであってもかまわない。そのような入れイ
ヤのリストは′(′ と′)′の間に更に′(″と′)
′ を挿入することにより表わす。入れ子の深さは任意
である。ルール中間語は、個々のルールを表わす中間a
!Iであり、ルール集合を表わす中間語はルール中間語
のリストである。ルール郡部308には、ルール中間語
のリス!・が記憶される。
In this embodiment, the rule intermediate words in the rule group section 308 and the variable value information in the working memory 309 are expressed in a list structure. A list can contain any number of elements ′(′
It is written by surrounding it with and ′)′. The elements of the list may themselves be lists. The list of such inputs is between ′(′ and ′)′ and further ′(″ and ′)
It is expressed by inserting ′. The depth of nesting is arbitrary. A rule intermediate word is an intermediate word a that represents an individual rule.
! I, and the intermediate word representing the rule set is a list of rule intermediate words. Ruhr county part 308 has Ruhr intermediate language squirrel!・is memorized.

ブロック501は条件部の中間語であり、く条件文字列
〉及びく条件式中間語〉から成る。く条件文字列〉は、
第4図のブロック401中のく条件文字列〉と同じであ
る。く条件式中間語〉は。
A block 501 is an intermediate word of the conditional part, and is composed of a condition character string and a conditional expression intermediate word. The condition string is
This is the same as the condition character string in block 401 in FIG. The conditional expression intermediate word is.

第4図のブロック401中のく条件式〉を変換した結果
である。〈条件式中間Jn〉は、後に第6図を用いて詳
しく説明する。
This is the result of converting the conditional expression in block 401 in FIG. <Intermediate conditional expression Jn> will be explained in detail later using FIG. 6.

ブロック502は結論部の中間語であり、く結論文字列
〉は第4図のブロック402中のく結論文字列〉と同じ
である。
Block 502 is an intermediate word of the conclusion part, and the conclusion character string is the same as the conclusion character string in block 402 in FIG.

第6図は、第5図のブロック501中のく条件式中間語
〉の構成を示す。〈条件式中間語〉は、第4図のブロッ
ク1101中のく条件式〉の中間語である。ブロック6
01は、く条件式〉中の各変数の値を求める処理を表わ
す。get(<変数名〉)は、〈変数名〉に対応する変
数値を求めて、それをく変数名〉に代入する処理を表わ
す。ブロック602は、〈変数名〉に関する条件式であ
り。
FIG. 6 shows the structure of the conditional expression intermediate word in block 501 of FIG. The <conditional expression intermediate word> is the intermediate word of the conditional expression in block 1101 in FIG. Block 6
01 represents the process of determining the value of each variable in the conditional expression. get(<variable name>) represents a process of obtaining a variable value corresponding to <variable name> and substituting it to <variable name>. Block 602 is a conditional expression regarding <variable name>.

第4図のブロック401中のく条件式〉と同じである。This is the same as the conditional expression in block 401 in FIG.

証明処理305および導出処理306は。The proof process 305 and the derivation process 306 are as follows.

く条件式中間語〉の処理に当って、まずブロック601
を処理して、各〈変数名〉に変数値を代入し、次にブロ
ック602を処理して、これらのく変数名〉に関する条
件式く条件式〉(<変数名1〉く変数名2〉・・・〈変
数名1〉)の成立、不成立を決定する。
In processing the conditional expression intermediate word, first block 601
, and assigns a variable value to each <variable name>, and then processes block 602 to calculate the conditional expressions for these variable names (<variable name 1> variable name 2). ...<Variable name 1>) is established or not.

第7図は、作業メモリ309に記憶された文字列および
変数値の形式を示す。ブロック701は文字列の集合で
あり、これら文字列の表わす前提条件あるいは中間結果
が成立することを表わす。
FIG. 7 shows the format of character strings and variable values stored in working memory 309. Block 701 is a set of character strings, and represents that the preconditions or intermediate results represented by these character strings are satisfied.

ブロック702は変数値情報の集合であり、(く変数名
〉〈変数値〉)は、〈変数名〉の値かく変数値〉である
ことを示す。
Block 702 is a collection of variable value information, and (variable name><variable value>) indicates that the value of <variable name><variable value>.

次に、証明処理305と導出処理306による処理の概
要を説明する。証明処理305は、コントロール処理3
03から、予思量を表わす文字列を引数として起動され
る。まず、この予思量が作業メモリ309中に記憶され
ていれば、証明は成功である。記憶されていない場合に
は、この予思量をく結論文字列〉として持つルールをル
ール郡部308から索出し、このルールのく条件文字列
〉とく条件式〉の成立、不成立を検証する。一般に、予
思量を〈結論文字列〉として持つルールは複数見つかる
ため、これらのルールを一つずつ検証する。ルールが一
つでも成立すれば、予思量の証明は成功であり、全ての
ルールが不成立であれば、予思量の証明は失敗である。
Next, an overview of the proof processing 305 and derivation processing 306 will be explained. The proof process 305 is the control process 3
03, it is started with a character string representing the expected amount as an argument. First, if this predicted amount is stored in the working memory 309, the proof is successful. If it is not stored, a rule having this prediction amount as a conclusion character string is searched from the rule group section 308, and it is verified whether the condition character string and conditional expression of this rule hold true or not. Generally, multiple rules are found that have a predicted amount as a <conclusion string>, so these rules are verified one by one. If even one rule holds, the proof of foresight is a success; if all the rules do not hold, the proof of foresight is a failure.

く条件文字列〉の検証は、予思量の検証と同様の処理を
再帰的に繰り返すことにより行う。すなわち、このく条
件文字列〉をく結論文字列〉として持つルールを索出し
て、このルールの成立、不成立を調べる。この〈条件文
字列〉と等しいく結論文字列〉を持つルールがない場合
には、この〈条件文字列〉を利用者に表示して、このく
条件文字列〉の表わす条件の成立、不成立を問い合わせ
る。く条件式〉の検証は、〈条件式〉の表わす等式ある
いは不等式に含まれる各変数の値を、作業メモリ309
から求めた後、この等式あるいは不等式の成立、不成立
を計算する。変数の値が作業メモリ309に記憶されて
い、ない場合には、変数名を利用者に表示し、その値を
問い合わせる。
Verification of the condition string> is performed by recursively repeating the same process as the verification of the expected quantity. That is, a rule having the condition character string as the conclusion character string is searched for, and whether this rule holds true or not is checked. If there is no rule with a conclusion string that is equal to this condition string, this condition string is displayed to the user and the condition expressed by this condition string is met or not. Inquire. To verify the conditional expression, the values of each variable included in the equality or inequality expressed by the conditional expression are stored in the working memory 309.
After finding this, calculate whether this equality or inequality holds true or not. If the value of the variable is not stored in the working memory 309, the variable name is displayed to the user and the user is asked about the value.

なお、証明処理の詳細は、後に第8図と第9図を用いて
説明する。
Note that details of the proof processing will be explained later using FIGS. 8 and 9.

導出処理306は1作業メモリ309に記憶された文字
列および変数値を参照しながら1条件部のく条件文字列
〉及びく条件式〉がすべて満たされるルールを、ルール
郡部308から見出し、このルールのく結論文字列〉を
取り出す、このく結論文字列〉を解候補郡部310中の
解候補群と比較して、解であるか否かを判定し、解であ
れば。
The derivation process 306 refers to the character strings and variable values stored in the first working memory 309, finds a rule from the rule group part 308 that satisfies both the condition string and the conditional expression in the first condition part, and calculates this rule. This conclusion character string is extracted and compared with the solution candidate group in the solution candidate group 310 to determine whether it is a solution, and if it is a solution.

コントロール処理303に渡し、解でなければ、中間結
果として作業メモリ309に格納する。導出処理306
は、当初の入力データに加えて、証明処理の過程で新た
に入力された追加データを利用し、更に、必要に応じて
、く条件文字列〉の成否及び変数の値を、利用者に間合
わせる。導出処理306の処理方法は、従来の処理方法
と同様であり1例えば、リスプ、アデイソンーウエスレ
イ(1981年)第239頁から250頁(Lisp 
+Addison−Wesley(1981)p p 
239−250)に詳しく述べられている。
It is passed to the control processing 303, and if it is not a solution, it is stored in the working memory 309 as an intermediate result. Derivation process 306
In addition to the original input data, the system uses additional data newly input during the proof process, and also informs the user of the success or failure of the condition string and the values of variables as needed. match. The processing method of the derivation process 306 is similar to the conventional processing method.
+Addison-Wesley (1981) p p
239-250).

次に、証明処理の詳細を説明する。Next, details of the proof processing will be explained.

第8図は、証明処理305が、予思量をく結論文字列〉
として持つ一つのルールの成立、不成立を検証する処理
を表わす。証明処理305は。
FIG. 8 shows a conclusion character string in which the proof process 305 exceeds expectations.
Represents the process of verifying whether a single rule holds true or not. The proof processing 305 is as follows.

つのルールが成立するか、あるいは全ルールを検証し終
わるまで、本処理を繰り返す、なお、ルールは、第5図
のように中間語化されており、変数Rに代入されている
(すなわち、変数Rに割当てられたメモリ領域に格納さ
れている)とする。
This process is repeated until one rule is established or all rules have been verified. Note that the rules are intermediated as shown in Figure 5 and are assigned to the variable R (i.e., the variable ) is stored in the memory area allocated to R.

ブロック801は、ルールの条件部を変数CLi5tに
代入する。これにより、CLi5tには、第5図のブロ
ック501のようなく条件文字列〉および〈条件式〉の
リストが代入さゝれる。これらのく条件文字列〉及びく
条件式〉を、以下、条件と呼ぶ。ブロック802は、C
Li5tの先頭の条件を変数Cに代入する。
Block 801 assigns the condition part of the rule to variable CLi5t. As a result, a list of conditional character strings and conditional expressions is assigned to CLi5t, as shown in block 501 of FIG. These conditional character strings and conditional expressions are hereinafter referred to as conditions. Block 802
Assign the condition at the beginning of Li5t to variable C.

ブロック803は、Cがく条件文字列〉かく条件式〉か
を判定する。く条件文字列〉の場合にはブロック804
〜ブロツク809、く条件式〉の場合にはブロック81
0〜ブロツク814を実行することにより、それらの成
立、不成立を検証する。
Block 803 determines whether C is a condition character string>such a conditional expression>. block 804 if the condition string is
~ block 809, block 81 if conditional expression>
By executing blocks 0 to 814, whether or not they hold true is verified.

ブロック804は、く条件文字列〉が作業メモリ309
中に記憶されているかどうかを判定する。
Block 804 indicates that the condition string> is in the working memory 309.
Determine whether it is stored in the memory.

記憶されている場合には、く条件文字列〉が成立であり
、ブロック816に行く、記憶されていない場合には、
ブロック805に行く。
If it is stored, then the condition string is true and the process goes to block 816; if it is not stored, then
Go to block 805.

ブロック805は、現在説明中の証明処理をこのく条件
文字列〉を〈結論文字列〉として持つルールに対して再
帰的に適用することにより、〈条件文字列〉を検証する
。ブロック806はCの証明の成功、不成功を判定する
。成功の場合には、〈条件文字列〉は成立であり、ブロ
ック816に行く。不成功の場合には、ブロック807
に行く。
Block 805 verifies the <condition string> by recursively applying the proof process currently being explained to the rule having the <condition string> as the <conclusion string>. Block 806 determines whether the proof of C is successful or not. If successful, <condition string> is met and the process goes to block 816. If unsuccessful, block 807
go to.

ブロック807は、〈条件文字列〉を利用者に表示して
、その文字列の表わす事実の成立、不成立を問い合わせ
る。利用者が成立と答えた場合には、〈条件文字列〉は
成立であり、ブロック809に行く。利用者が不成立と
答えた場合には、く条件文字列〉は不成立であり、ブロ
ック815に行く。
Block 807 displays the <condition character string> to the user and inquires whether the fact represented by the character string holds true or not. If the user answers that the condition is true, the <condition character string> is true, and the process goes to block 809. If the user answers that the condition is not satisfied, the condition character string is not satisfied, and the process goes to block 815.

ブロック809に至るのは、く条件文字列〉が作業メモ
リになく、証明もできないが、利用者への問い合わせに
より成立と判断した場合である。
Block 809 is reached when the condition character string> is not in the working memory and cannot be proven, but it is determined that the condition is established based on an inquiry to the user.

すなわち、既存のデータでは、成立、不成立が決定でき
ず、利用者からの新たなデータによって成立と判定した
場合である。そこで、ブロック809では、利用者に今
後同じ質問を繰り返さないですむように、このく条件文
字列〉を作業メモリ309に格納する。その結果、この
〈条件文字列〉については、今後、作業メモリ309の
参照によって、直ちに成立と判定することができる。特
に、後の導出処理306においてこのく条件文字列〉の
成立、不成立を判定する場合にも1作業メモリ309を
参照すればよく、利用者に再度問い合わせる必要がない
In other words, this is a case where it is not possible to determine whether an event is established or not based on existing data, and it is determined that the event is established based on new data from the user. Therefore, in block 809, the condition character string> is stored in the working memory 309 so as to avoid repeating the same question to the user in the future. As a result, this <condition character string> can be determined to be established immediately by referring to the working memory 309 in the future. In particular, in the subsequent derivation process 306, when determining whether the condition character string is satisfied or not, it is only necessary to refer to the one working memory 309, and there is no need to ask the user again.

ブロック810〜814は、条件Cが第6図のようなく
条件式中間語〉である場合の、検証処理を示す。ブロッ
ク810は、く条件式中間語〉の先頭要素を変数Exに
代入する。ブロック811は、Exがget文であるか
どうかを判定する。
Blocks 810 to 814 show verification processing when condition C is a conditional expression intermediate word as shown in FIG. Block 810 assigns the first element of conditional expression intermediate word to variable Ex. Block 811 determines whether Ex is a get statement.

get文の場合には、ブロック812に行き、そうでな
い場合にはブロック814に行く。
If it is a get statement, go to block 812; otherwise go to block 814.

ブロック812は、このget文を解釈実行し。Block 812 interprets and executes this get statement.

〈変数名〉に対応する変数値を求め、〈変数名〉に代入
する。この処理は、後に第9図を用いて詳しく説明する
。ブロック813は、実行し終わったget文をCから
除く。
Find the variable value corresponding to <variable name> and assign it to <variable name>. This process will be explained in detail later using FIG. 9. Block 813 removes the executed get statement from C.

ブロック814は、Exがく条件式〉(〈変数名1〉、
〈変数名2〉・・・〈変数名1〉)である場合の処理を
示す。ブロック814に至る時には、条件式中の変数名
はすべて値が得られている。そこで、〈条件式〉(〈変
数名1〉、く変数名2〉・・・く変数名1〉)の成立、
不成立を決定することができる。成立する場合には、ブ
ロック816に行き、成立しない場合には、ブロック8
15に行く。
Block 814 is a conditional expression (<variable name 1>,
<Variable name 2>...<Variable name 1>) will be described below. By the time block 814 is reached, values have been obtained for all variable names in the conditional expression. Therefore, if the <conditional expression>(<variable name 1>, variable name 2>, variable name 1>) is satisfied,
It is possible to determine whether the application is unsuccessful. If true, go to block 816; otherwise go to block 8.
Go to 15.

ブロック816は、C1すなわち成立すると分かった条
件を、CLi5tから除く0次に、ブロック817では
、CLi5tが空かどうか、すなわち全ての条件を調べ
終わったかどうかを判定する。調べ終わっている場合に
は、ブロック818において。
Block 816 removes C1, that is, the condition found to hold, from CLi5t to the 0th order. Block 817 determines whether CLi5t is empty, that is, whether all conditions have been checked. If so, at block 818.

ルールが成立と判定する。調べ終わっていない場合には
、ブロック802に戻って、次の条件を調べる。
It is determined that the rule is established. If the search has not been completed, the process returns to block 802 to check the next condition.

ブロック815は、条件が不成立の場合の処理である。Block 815 is processing when the condition is not met.

ルールは、条件がすべて成立する場合のみ成立となる。A rule is valid only if all conditions are met.

したがって、ここでは、ルールが不成立と判定する。Therefore, here, it is determined that the rule does not hold.

第9図は、第8図のブロック812におけるget文の
処理の詳細を表わす。ただし、get文は、第6図に示
すようにget(<変数名〉)の形であり、前述のよう
に変数Exに代入されている。ブロック901は、ge
t文からく変数名〉を取り出し、V Nameに代入す
る。ブロック902は、 VNameの値が作業メモリ
309に記憶されているかどうかを判定する。すなわち
、第7図に示す作業メモリ309に、VNameを第1
要素とするリス1−が記憶されているかどうかを判定す
る。記憶されている場合には、ブロック903に行き。
FIG. 9 shows details of the get statement processing in block 812 of FIG. However, the get statement is in the form of get (<variable name>) as shown in FIG. 6, and is assigned to the variable Ex as described above. Block 901 is ge
Extract variable name〉 from the t statement and assign it to V Name. Block 902 determines whether the value of VName is stored in working memory 309. That is, the VName is stored in the working memory 309 shown in FIG.
It is determined whether or not the element Squirrel 1- is stored. If so, go to block 903.

記憶されていない場合には、ブロック905に行く。If not, go to block 905.

ブロック903は、作業メモリ309中のVNa+*e
を第1要素とするリストをItemに代入する。
Block 903 represents VNa+*e in working memory 309.
Assign a list whose first element is Item.

ブロック904は、Itemの第2要素すなわちく変数
値〉を、VNan+eすなわち〈変数名〉に代入する。
Block 904 assigns the second element of Item, ie, <variable value>, to VNan+e, ie, <variable name>.

ブロック905〜906は、く変数名〉の値が作業メモ
リ309に記憶されていない場合の処理である。ブロッ
ク905は、利用者に〈変数名〉を表示し、その値を問
い合わせて〈変数名〉に代入する。ブロック906は、
同じく変数名〉の値を再び利用者に問い合わせなくてす
むように、く変数名〉と利用者から入力したく変数値〉
をリストにし、作業メモリ309に記憶する。その結果
、今後、同じく変数名〉の値を求める場合には、作業メ
モリ309を参照すればよい。特に、後に導出処理30
6において、同じく変数名〉を求める場合には、作業メ
モリ309を参照すればよく、利用者に再度問い合わせ
る必要はない。
Blocks 905 and 906 are processes performed when the value of variable name is not stored in the working memory 309. Block 905 displays the <variable name> to the user, inquires about its value, and assigns it to the <variable name>. Block 906 is
Similarly, in order to avoid having to ask the user again for the value of the variable name, the user should input the variable name and the variable value.
are made into a list and stored in the working memory 309. As a result, in the future, if you want to find the value of variable name> in the same way, you can refer to the working memory 309. In particular, after the derivation process 30
In step 6, when similarly obtaining the variable name, it is sufficient to refer to the working memory 309, and there is no need to inquire of the user again.

第1図は、コントロール処理303の動作を示す、ブロ
ック101は、推論に先立って利用者から変数の名前と
値を入力し、く変数名〉とく変数値〉のリストを形成し
て、作業メモリ309に記憶する。ブロック102は、
同じく文字列を入力し、作業メモリ309に記憶する0
以上の変数値および文字列が、利用者すなわち専門家の
解決したい状況あるいは問題を表わすデータである。な
お、ブロック101,102で必要なデータを全て入力
する必要はない、前述のように、証明処理の過程で利用
者から不足したデータを入力することができる。
FIG. 1 shows the operation of the control process 303. Block 101 inputs variable names and values from the user prior to inference, forms a list of variable names and variable values, and stores them in working memory. 309. Block 102 is
Similarly, enter a character string and store it in the working memory 309.
The above variable values and character strings are data representing the situation or problem that the user, that is, the expert, wants to solve. Note that it is not necessary to input all necessary data in blocks 101 and 102; as described above, missing data can be input by the user during the certification process.

ブロック103は、利用者から予思量を入力する。予思
量は、利用者の判断を表わす文字列である。ブロック1
04は、予思量を引数として証明処理305を起動する
。証明処理305は、第8図及び第9図の処理により、
予思量が前記データとルール郡部308中のルール群と
から矛盾なく導けるかどうかを検証する。証明処理の終
了とその結果が報告されると、ブロック105が、導出
処理306を起動する。導出処理306は、前述のよう
にして、ブロック101及び102で入力されたデータ
と、証明処理の過程での間合わせに応じて入力されて記
憶されたデータを用い、更に、新たに必要の生じたデー
タを問い合わせながら、それ自身の解を導出し、コント
ロール処理に報告する。
In block 103, the user inputs a predicted amount. The expected amount is a character string representing the user's judgment. block 1
04 starts the proof process 305 using the expected amount as an argument. The proof process 305 is performed by the processes shown in FIGS. 8 and 9.
It is verified whether the expected amount can be derived without contradiction from the data and the rules in the rule group 308. When the completion of the proof process and its results are reported, block 105 activates the derivation process 306. As described above, the derivation process 306 uses the data input in blocks 101 and 102 and the data input and stored in accordance with the timing of the proof process, and also uses the data input in blocks 101 and 102 and the data input and stored in accordance with the timing of the proof process. It derives its own solution while interrogating the data obtained and reports it to the control process.

ブロック106は、証明が成功か失敗かに応じて、出力
処理を選択する。証明が成功の場合には、ブロック10
7が賛成の意を表わすメツセージを出力し、次いで、ブ
ロック108が、導出処理306から受けた解を予思量
と比較して、異なっていれば、別間として出力する。も
しも予思量と異なる解が一つも得られなければ、その旨
のメツセージを出力する。
Block 106 selects the output processing depending on whether the proof is successful or unsuccessful. If the proof is successful, block 10
Block 7 outputs a message expressing approval, and then block 108 compares the solution received from the derivation process 306 with the expected amount, and if different, outputs it as a different answer. If no solution different from the expected amount is obtained, a message to that effect is output.

他方、証明が失敗の場合には、ブロック109が反対の
意を表わすメツセージを出力し、次いで、ブロック11
0が、導出処理306から受けた全ての解を、もしあれ
ば、対抗解として出力する。
On the other hand, if the proof fails, block 109 outputs a message expressing the contrary, and then block 11
0 outputs all solutions received from the derivation process 306, if any, as rival solutions.

もしも対抗解が一つも得られなければ、その旨のメツセ
ージを出力する。賛成メツセージ又は反対メツセージ並
びに別間又は対抗解は、証明処理305と導出処理30
6から報告を受けるたびに出力してもよいし、メモリ3
07中の適当な領域にそれらの報告を蓄積し、画処理の
終了後に、総合して適切なメツセージ群を組み立てて、
それを出力してもよい、しかし、一般には、導出処理が
相当長い時間を要するので、利用者の心理を考えると、
報告のたびに出力する方が好ましい。
If no competing solution is obtained, a message to that effect is output. Messages for approval or opposition as well as different or counter solutions are obtained through proof processing 305 and derivation processing 30.
You can output it every time you receive a report from 6, or you can output it every time you receive a report from memory 3.
07, and after the image processing is completed, they are combined to assemble an appropriate message group.
However, in general, the derivation process takes a considerable amount of time, so considering the psychology of the user,
It is preferable to output it every time a report is made.

次に、医療診断の具体的な事例を用いて、推論マシンが
、上記の処理方式によって、専門家の判断を検証し、さ
らにこれを補う様子を示す。推論マシンは、既に医療診
断用のルール集合を入力し、これを中間語に変換して記
憶しているとする。
Next, using a specific example of medical diagnosis, we will show how an inference machine verifies and supplements the judgment of an expert using the above processing method. It is assumed that the inference machine has already input a set of rules for medical diagnosis, converts this into intermediate language, and stores it.

利用者は医師であり、患者の症状をデータとし、それに
対する自分の診断結果すなわち病名を予思量として、推
論マシンに入力する。推論マシンは、前記ルールを用い
て、前記データからこの予思量の証明を試み、証明が成
功であれば賛成、失敗であれば反対を表明する。更に、
該データから解すなわち病名を導出し、これを別間又は
対抗解として出力する。
The user is a doctor, who uses the patient's symptoms as data and inputs his or her own diagnosis result, that is, the name of the disease, into the inference machine as a prediction amount. The inference machine attempts to prove this conjecture from the data using the rules, and expresses approval if the proof is successful, and expresses opposition if it fails. Furthermore,
A solution, that is, a disease name is derived from the data, and this is output as a different solution or a counter solution.

最初の例では、利用者即ち医師が、「倦怠感あり、体温
が38.5℃」という症状から、インフルエンザと判断
し、その判断について推論マシンに相談する。
In the first example, the user, ie, the doctor, determines that the patient has influenza based on the symptoms of ``feeling tired and has a body temperature of 38.5 degrees Celsius,'' and consults the reasoning machine regarding the determination.

第1O図は、本例題で用いるルール集合の例である。ブ
ロック1001〜1004は、それぞれ1つのルールを
表わす、ブロック1001は、倦怠感があり1体重が平
常時より2kg以上減少していれば、消耗状態であるこ
とを示している。′倦怠感あり′は条件文字列である。
FIG. 1O is an example of a rule set used in this example problem. Blocks 1001 to 1004 each represent one rule. Block 1001 indicates that if the user feels tired and his/her body weight is 2 kg or more less than normal, the user is in a state of exhaustion. ``Feeling tired'' is a conditional string.

′#現体重′及び′#平常体重″は変数名であり、゛#
現体重−#平常体重<2.0’  はこれらの変数に関
する条件式である。本例屈では、変数名の先頭に#を付
けることにする。
'#Current weight' and '#Normal weight' are variable names,
Current weight-#normal weight<2.0' is a conditional expression regarding these variables. In this example, # will be added to the beginning of the variable name.

ブロック1002は、消耗状態であり、体温が38.0
℃より高ければ、インフルエンザであることを示してい
る。ブロック1003は、消耗状態であり、腹痛があり
、高温が37.0℃より高ければ、膵臓炎であることを
示している。ブロック1004は、消耗状態であり、高
温が37.0℃より高くかつ38.0℃より低く、症状
の継続日数が30日より長ければ、結核であることを示
している。
Block 1002 is in an exhausted state and has a body temperature of 38.0.
If it's higher than ℃, it indicates influenza. Block 1003 indicates pancreatitis if the patient is exhausted, has abdominal pain, and has a high temperature above 37.0°C. Block 1004 indicates tuberculosis if the patient is exhausted, the temperature is higher than 37.0°C and lower than 38.0°C, and the duration of symptoms is longer than 30 days.

第11図は、第10図のルールを第3図中の解析変換処
理304が解析変換した結果の中間語である。ブロック
1101〜11o4は、それぞれブロック1001〜1
004に対するルール中間語である。これらの中間語は
、第3図中のルール郡部308に記憶されている。
FIG. 11 is an intermediate word resulting from analysis and conversion of the rules in FIG. 10 by the analysis and conversion process 304 in FIG. Blocks 1101 to 11o4 are blocks 1001 to 1, respectively.
This is a rule intermediate word for 004. These intermediate words are stored in the rule group section 308 in FIG.

また、解候補郡部310には、第10図のルールの下で
医療診断の解となりうる病名の集合が、予め記憶されて
いる。ここでは、′インフルエンザ′、゛膵臓炎′及び
″結核′が記憶されている。
Further, in the solution candidate group section 310, a set of disease names that can be solutions for medical diagnosis under the rules of FIG. 10 is stored in advance. 'Influenza', 'pancreatitis' and 'tuberculosis' are remembered here.

利用者が推論マシンを起動すると、第3図中のコントロ
ール処理303が第1図の処理を開始する。ブロック1
01が、利用者から変数値を入力し、これを作業メモリ
309に記憶する。ここでは、#体温とその値38.5
 を入力して記憶する。
When the user starts the inference machine, the control process 303 in FIG. 3 starts the process in FIG. 1. block 1
01 inputs variable values from the user and stores them in the working memory 309. Here, #body temperature and its value 38.5
Enter and save.

次に、ブロック102が、利用者から文字列を入力し、
作業メモリ309に記憶する。ここでは、′倦怠感あり
′を入力して記憶する。ブロック102の処理の終了時
における作業メモリ309の内容を第12図に示す。
Next, block 102 inputs a character string from the user,
It is stored in the working memory 309. Here, ``feeling of fatigue'' is input and memorized. The contents of the working memory 309 at the end of the processing of block 102 are shown in FIG.

ブロック103が予想群として、 ′インフルエンザ′
 を入力する。ブロック104が証明処理305を起動
する。
Block 103 is the predicted group, 'influenza'
Enter. Block 104 initiates proof processing 305.

以下、第8図と第9図を用いて、証明処理305の動作
を説明する。
The operation of the proof processing 305 will be described below with reference to FIGS. 8 and 9.

証明処理305は、まず、予想解′インフルエンザ″が
作業メモリ309に記憶されているかどうかを調べるに
の時点では1作業メモリ309に゛インフルエンザ′は
記憶されていない。次に、′インフルエンザ′を結論文
字列とするルール中間語を、ルール郡部308で探索す
る。この例では、第11図中のブロック1102を見出
す。次に、このルール中間語を変数Rに代入して、第8
図の処理を行う。
In the proof processing 305, first, when checking whether the predicted solution 'influenza' is stored in the working memory 309, 'influenza' is not stored in the working memory 309. Next, 'influenza' is determined as a conclusion. The rule intermediate word to be converted into a character string is searched for in the rule group section 308. In this example, block 1102 in FIG.
Process the diagram.

ブロック801は、Rの条件部を取りだし、CLi5t
に代入する。ここでは、CLi5tにブロック1106
が代入される。ブロック802は、Cに、CLi5tの
先頭要素すなわち′消耗状態′を代入する。ブロック8
03は、Cが条件文字列か条件式かを判定する。ここで
は、条件文字列と判定する。
Block 801 takes out the conditional part of R and CLi5t
Assign to . Here, block 1106 is added to CLi5t.
is assigned. Block 802 assigns to C the leading element of CLi5t, ie, the 'exhausted state'. Block 8
03 determines whether C is a conditional string or a conditional expression. Here, it is determined that it is a conditional string.

ブロック804は、Cすなわち′消耗状態′が、作業メ
モリ309に記憶されているかどうかを判定する。ここ
では、作業メモリ309は第12図の状態なので、No
となる。
Block 804 determines whether C or 'exhausted condition' is stored in working memory 309. Here, since the working memory 309 is in the state shown in FIG.
becomes.

そこで、ブロック805が、′消耗状態ゝの証明を試み
る。すなわち、′消耗状態′を予思量として、証明処理
305を再帰的に起動する。以下。
Block 805 then attempts to prove the 'exhausted state'. That is, the proof process 305 is started recursively using the 'exhaustion state' as the expected quantity. below.

′消耗状態″を証明するための、証明処理305の動作
を説明する。
The operation of the proving process 305 for proving the 'exhausted state' will be explained.

証明処理305は、゛消耗状態′を結論文字列とするル
ールを探索する。ここでは、ブロック1101を見出す
。そこで、第8図の処理により該ルールの成立、不成立
を検証する。ブロック801は、 CLi5tにブロッ
ク1105を代入する。
The proof process 305 searches for a rule whose conclusion character string is ``exhaustion state''. Here we find block 1101. Therefore, the process shown in FIG. 8 verifies whether the rule holds true or not. Block 801 assigns block 1105 to CLi5t.

ブック802が、Cに′倦怠感あり″ を代入する。Book 802 assigns ``feeling of fatigue'' to C.

ブロック803が、Cは条件文字列であると判定する。Block 803 determines that C is a condition string.

ブロック804が、Cすなわち′倦怠感あり′が、作業
メモリ309に記憶されているかどうかを判定する。こ
こでは、作業メモリ309が第12図の状態なので、Y
esとなる。ブロック816が、CLi5tから処理し
終わった条件すなわち′倦怠感あり″を除く。その結果
、CLi5tには、(get(#現体型)get(#平
常体重)#現体重−存平常体重<2.0))が残される
。これは。
Block 804 determines whether C, ``Feeling Fatigue'', is stored in working memory 309. Here, since the working memory 309 is in the state shown in FIG.
It becomes es. Block 816 removes the processed condition, ie, 'feeling tired', from CLi5t. As a result, CLi5t contains (get(#actual body type)get(#normal weight)#current weight-existing normal weight<2. 0)) is left. This is.

(get(#現体型)・・・<2.0)のみから成る1
要素のリストである。
1 consisting only of (get(#actual type)...<2.0)
It is a list of elements.

ブロック817が、全ての条件を判定し終わったかどう
かを判定する。ここでは、Noとなる。
Block 817 determines whether all conditions have been determined. Here, the answer is No.

ブロック802が、CにCLi5tの先頭要素を代入す
る。ここでは、Cに(g e t (#現体型)get
(#平常体重)#現体型−#平常体重<2.0 )が代
入される。ブロック803が、Cは条件式であると判定
する。
Block 802 assigns the first element of CLi5t to C. Here, in C, (get (#actual type) get
(#normal weight) #current body type - #normal weight<2.0) is substituted. Block 803 determines that C is a conditional expression.

ブロック810が、Exに、Cの先頭要素即ちget(
#現体型)を代入する。ブロック811が、Exはge
t文であると判定する。ブロック812が、Exを実行
する。以下、第9図を用いて、このget文の実行を説
明する。
Block 810 adds the first element of C, ie, get(
#Substitute actual type). Block 811 is Ex is ge
It is determined that it is a t sentence. Block 812 executes Ex. The execution of this get statement will be explained below using FIG. 9.

ブロック901が、Exの引数すなわち#現体型を、V
Namsに代入する。ブロック902が、VNameの
値が作業メモリ309に記憶されているかどうか判定す
る。ここでは、Noと判定する。
Block 901 sets the argument of Ex, that is, the #actual type to V
Assign to Nams. Block 902 determines whether the value of VName is stored in working memory 309. Here, the determination is No.

ブロック905が、 VNameすなわち#現体型の値
を利用者に問い合わせる。ここで、利用者が、55と答
えたとする。そこで、VNameに55を代入する。ブ
ロック906が、VNameの値を作業メモリ309に
記憶する。ここでは、(#現体型55)というリストを
記憶する。
Block 905 queries the user for the value of VName or #actual type. Here, assume that the user answers 55. Therefore, 55 is assigned to VName. Block 906 stores the value of VName in working memory 309. Here, a list called (#actual type 55) is stored.

以上でget文の処理が終了し、第8図におけるブロッ
ク813に戻る。ブロック813が、Cから処理し終わ
ったget文を除く。その結果、Cには、(get (
#平常体重)#現体型−#平常体重<2.0 )が残さ
れる。ブロック810が、Exにget(#平常体重)
を代入する。ブロック811が、Exはget文である
と判定する。
This completes the processing of the get statement and returns to block 813 in FIG. Block 813 removes the processed get statement from C. As a result, C has (get (
#Normal weight) #Current body type - #Normal weight <2.0) is left. Block 810 gets to Ex (#normal weight)
Substitute. Block 811 determines that Ex is a get statement.

ブロック812が、前記と同様の処理により。Block 812 performs the same process as described above.

このget文を実行する。#平常体重の値が作業メモリ
に記憶されていないため、再び利用者に問い合わせる。
Execute this get statement. # Since the normal weight value is not stored in the working memory, ask the user again.

ここでは、利用者が60を入力したとする。そこで、#
平常体重に60が代入され、作業メモリ309には、(
#平常体重 60)が記憶される。
Here, it is assumed that the user inputs 60. Therefore,#
60 is substituted for the normal weight, and the working memory 309 contains (
#Normal weight 60) is stored.

ブロック813が、CからExを除く、その結果、Cに
は、(#現体型−#平常体重<2.0 )が残される。
Block 813 removes Ex from C, leaving C with (#actual body type - #normal weight<2.0).

ブロック810が、Exに#現体型−#平常体重く2.
0 を代入する。これはget文ではないので、ブロッ
ク811が、Noと判定する。ブロック814が、これ
までに求めた#現体型および#平常体重の値を用いて、
Exの成立。
Block 810 adds #actual type to #normal weight2.
Substitute 0. Since this is not a get statement, block 811 determines No. Block 814 uses the values of #current body type and #normal weight determined so far to
Establishment of Ex.

不成立を決定する。ここでは、成立と判定する。Determine failure. Here, it is determined that it is true.

ブロック816が、CLi5tから、処理し終わった条
件を除く。CLi5tは、(get(#現体型)・(2
,0)  のみから成るリストだったので1本処理の結
果、空リストになる。ブロック817が、全ての条件を
処理し終わったかどうか判定する。
Block 816 removes the processed conditions from CLi5t. CLi5t is (get(#actual type)・(2
, 0), the result of processing one line is an empty list. Block 817 determines whether all conditions have been processed.

ここでは、Yesとなる。Here, the answer is Yes.

ブロック818が、ルールすなわちブロック1101が
成立すると判定する。以上の結果、′消耗状態′の証明
に成功し、ブロック1102の処理におけるブロック8
06に戻る。
Block 818 determines that the rule, block 1101, holds true. As a result of the above, the 'exhausted state' is successfully proven, and block 8 in the process of block 1102
Return to 06.

ブロック806が、以上のようにして、Cすなわち′消
耗状態″の証明が成功と判定した後、ブロック816が
、CLi5tから、処理し終わった条件すなわち′消耗
状態′を除く。その結果、CLi5tには、((get
(#体温)#体温〉38.0))が残される。ブロック
817が、全ての条件を調べ終わったかどうかを判定す
る。ここでは、Noとなる。
After block 806 determines that the proof of C, ie, the 'exhausted state', is successful in the above manner, block 816 removes the processed condition, ie, the 'exhausted state', from CLi5t.As a result, CLi5t is ((get
(#body temperature) #body temperature>38.0)) is left. Block 817 determines whether all conditions have been examined. Here, the answer is No.

ブロック802が、Cに(get(#体温)#体温>3
8.0 )を代入する。ブロック803が。
Block 802 returns C to (get(#body temperature)#body temperature>3
8.0). Block 803.

Cは条件式であると判定する。ブロック810が、Ex
にget(#体温)を代入する。ブロック811が、E
xはget文であると判定する。ブロック812が、前
記と同様の処理により、このget文を実行する。この
時は、作業メモリ309に(#体温38.5)が記憶さ
れているため、利用者に問い合わせることない。本処理
の結果、#体温に38.5 が代入される。
It is determined that C is a conditional expression. Block 810 is
Assign get(#body temperature) to . Block 811 is E
It is determined that x is a get statement. Block 812 executes this get statement by processing similar to that described above. At this time, since (#body temperature 38.5) is stored in the working memory 309, no inquiry is made to the user. As a result of this processing, 38.5 is assigned to #body temperature.

ブロック813により、Cに(#体温>38.0)が代
入される。ブロック810が、Exに#体温>38.0
  を代入する。ブロック811が、NOと判定する。
Block 813 assigns (#body temperature>38.0) to C. Block 810 indicates Ex #body temperature>38.0
Substitute. Block 811 determines NO.

ブロック814が、Exすなわち#体温>38.0  
が成立すると判定する。ブロック816が、CLi5t
から、処理し終わった条件を除(、CLi1itは、(
get(#体温) #体温〉38.0)のみから成るリ
ストであったので、本処理の結果、CLi5tは空とな
る。ブロック817が、全ての条件を処理し終わったと
判定する。そこで、ブロック818が、処理中のルール
すなわちブロック1102が成立すると判定する。
Block 814 indicates that Ex or #body temperature>38.0
It is determined that the following holds true. Block 816 is CLi5t
Remove the condition that has been processed from (, CLi1it is (
get(#body temperature) #body temperature>38.0), CLi5t becomes empty as a result of this process. Block 817 determines that all conditions have been processed. Therefore, block 818 determines that the rule being processed, ie, block 1102, holds true.

以上の結果、証明処理305は、予想解′インフルエン
ザ′の証明に成功し、その旨をコントロール処理303
に報告する。この時点での作業メモリ309の内容を、
第13図に示す。
As a result of the above, the proof process 305 succeeds in proving the predicted solution 'influenza', and the control process 303
Report to. The contents of the working memory 309 at this point are:
It is shown in FIG.

ここで、第1図中のブロック105が、導出処理306
を起動する。導出処理306は、従来の処理方式に従っ
て、ルール郡部308中のルール集合を用いて、作業メ
モリ中のデータから解を導出し、これをコントロール処
理303に出力する。
Here, the block 105 in FIG. 1 is the derivation process 306
Start. The derivation process 306 uses the rule set in the rule group section 308 to derive a solution from the data in the working memory according to a conventional processing method, and outputs this to the control process 303.

可能な解が複数ある場合には、全て出力する。If there are multiple possible solutions, all are output.

まず、第11図中のブロック1101の成立。First, block 1101 in FIG. 11 is established.

不成立を判定する。導出処理では、条件部の全ての条件
が成立するルールを成立と判定し、条件が一つでも成立
しないルールを不成立と判定する。
Determine failure. In the derivation process, a rule in which all the conditions in the condition part are satisfied is determined to be true, and a rule in which even one condition is not satisfied is determined to be untrue.

ブロック1101に対して、全ての条件が成立するため
、ルールが成立と判定する。この判定において、#現体
型および#平常体重の値が必要であるが、証明処理30
5の過程で利用者から入力したこれらの値が、作業メモ
リ309に記憶しであるので、再度問い合わせる必要は
ない。ブロック1101が成立した結果、゛消耗状態゛
という事実が成Jする。ここで、解候補郡部310中の
解候補集合を参照して、′消耗状態゛が解となりうるか
どうかを判定する。ここでは、NOとなる。
Since all conditions are met for block 1101, it is determined that the rule is met. In this determination, the values of #actual body type and #normal weight are required, but the proof process 30
These values input by the user in step 5 are stored in the working memory 309, so there is no need to inquire about them again. As a result of block 1101 being established, the fact that there is a "depleted state" is established. Here, by referring to the solution candidate set in the solution candidate group 310, it is determined whether the 'exhausted state' can be a solution. Here, the answer is NO.

そこで、″消耗状態゛を中間結果として、作業メモリ3
09に記憶する。
Therefore, using the "exhausted state" as an intermediate result, the working memory 3
Stored in 09.

次に、ブロック1102の成立、不成立を判定し、成立
という結果を得る。その結果′インフルエンザ′という
事実が成立する。解候補郡部310を参照して、 ′イ
ンフルエンザ″が解になりうると判定し、コントロール
処理303に渡す。
Next, it is determined whether the block 1102 is established or not, and a result that the block 1102 is established is obtained. As a result, the fact of ``influenza'' is established. Referring to the solution candidate group 310, it is determined that 'influenza' can be a solution, and the result is passed to the control process 303.

次に、ブロック1103の成立、不成立を判定する。こ
こで、利用者に゛腹痛あり′の成立、不成立を問い合わ
せる。利用者が、成立すると答えたとする。この場合、
ブロック1103が成立し、゛膵臓炎′という事実が成
立する。解候補郡部310を参照して、 ゛膵臓炎′が
解となりうると判定し、これをコントロール処理303
に出力する。
Next, it is determined whether block 1103 is satisfied or not. Here, the user is asked whether "I have abdominal pain" is true or not. Suppose that the user answers that it is true. in this case,
Block 1103 is established, and the fact of "pancreatitis" is established. Referring to the solution candidate group 310, it is determined that ``pancreatitis'' can be a solution, and this is determined in the control process 303.
Output to.

最後に、ブロック1104の成立、不成立を判定する。Finally, it is determined whether block 1104 holds true or not.

ここでは、#体温が38.5であるため、不成立となる
Here, since #body temperature is 38.5, it is not established.

この間、又は導出処理の終了後、コントロール処理30
3は、証明処理305からの報告が1成功′の場合は、
ブロック106及び107の処理により、利用者の判断
に賛成する旨のメツセージを出力する。ブロック108
は、導出処理306により得られた各間を予思量と比較
し、′インフルエンザ′は予思量と同じであるから、こ
れを捨て、“膵臓炎′は予思量と異なるので、別の診断
として膵臓炎の可能性もある旨のメツセージを出力する
During this time or after the completion of the derivation process, the control process 30
3, if the report from the proof processing 305 is 1 success,
Through the processing in blocks 106 and 107, a message indicating that the user agrees with the decision is output. block 108
compares each interval obtained in the derivation process 306 with the expected amount, and since 'influenza' is the same as the expected amount, it is discarded, and 'pancreatitis' is different from the expected amount, so pancreas is treated as another diagnosis. Outputs a message indicating that there is a possibility of fire.

次に、推論マシンが、利用者の判断に反対し、対抗する
判断を出力する場合を説明する。今度は、゛利用者が、
r″倦怠感あり′、#体温が37.5℃」という症状か
ら、インフルエンザと判断し、その判断について推論マ
シンに相談する。ルール郡部308には、前記の例題と
同じく、第11図のルール集合が記憶されているとする
Next, a case will be described in which the inference machine disagrees with the user's judgment and outputs a counter-judgment. This time, the user
Based on the symptoms of ``feeling tired'' and #body temperature of 37.5 degrees Celsius, it is determined that it is influenza, and the inference machine is consulted regarding the determination. It is assumed that the rule group section 308 stores the rule set shown in FIG. 11, as in the example above.

前記例題の場合と同様、コントロール処理303が、第
1図の処理を開始する。ブロック101とブロック10
2の処理により、作業メモリ309の内容が、第14図
に示すようになる。ブロック103が予思量1インフル
エンザゝ を入力する。
As in the previous example, control processing 303 starts the processing of FIG. block 101 and block 10
Through the process 2, the contents of the working memory 309 become as shown in FIG. Block 103 inputs the expected amount 1 influenza.

ブロック104が、証明処理305を起動する。Block 104 initiates proof processing 305.

証明処理は、′インフルエンザ′を結論文字列とするル
ール、すなわちブロック1102を見出し、第8図の処
理により、その成立、不成立を検証する。ブロック80
1が、CLi5tにブロック1106を代入する。ブロ
ック802が、Cに゛消耗状態゛を代入する。ブロック
803が、Cは条件文字列であると判定する。ブロック
804が、′消耗状態゛は作業メモリ309にないと判
定する。
In the proof process, a rule having 'influenza' as a conclusion character string, that is, block 1102, is found, and the process shown in FIG. 8 verifies whether the rule holds true or not. block 80
1 assigns block 1106 to CLi5t. Block 802 assigns ``exhaustion state'' to C. Block 803 determines that C is a condition string. Block 804 determines that the 'exhausted state' is not in working memory 309.

ブロック805が、証明処理305を再帰的に起動して
、“消耗状態′の証明を試みる。証明処理305は、前
記と同様の処理により、゛消耗状態′を結論文字列とす
るブロック1101の成立。
Block 805 recursively activates proof processing 305 to attempt to prove "exhausted state". Proof processing 305 establishes block 1101 with "exhausted state" as the conclusion character string by processing similar to the above. .

不成立を検証する。ここでは、前記の例と同様に、ブロ
ック1101が成立する場合を考える。この証明過程で
、#現体型の値55と、#平常体重の値60を利用者か
ら入力し、作業メモリ309に記憶する。この時点の作
業メモリの内容を、第15図に示す。
Verify failure. Here, as in the previous example, consider the case where block 1101 is established. In this certification process, the value 55 of #actual body type and the value 60 of #normal weight are input by the user and stored in the working memory 309. The contents of the working memory at this point are shown in FIG.

1消耗状態′の証明に成功し、ブロック1102の処理
におけるブロック806に戻ると、ブロック806が、
Yesと判定する。ブロック816により、CLi5t
に、((get(#体温) #体温〉38.0))が残
される。ブロック817がNOと判定する。
1 exhaustion state' is successfully proven and returns to block 806 in the processing of block 1102, block 806
Determine Yes. Block 816 causes CLi5t
, ((get(#body temperature) #body temperature>38.0)) is left. Block 817 determines NO.

ブロック802が、Cに(get(#’体温)#体温>
38.0 )を代入する。ブロック803が、Cは条件
式と判定する。ブロック810が、Exにget(#体
温)を代入する。ブロック811がYesと判定する。
Block 802 returns C to (get(#'body temperature)#body temperature>
38.0 ). Block 803 determines that C is a conditional expression. Block 810 assigns get(#body temperature) to Ex. Block 811 determines Yes.

ブロック812が、get(#体温)を実行し、#体温
に37.5 を代入する。ブロック813により、Cに
(#体温>38.0)が残される。
Block 812 executes get(#body temperature) and assigns 37.5 to #body temperature. Block 813 leaves C with (#body temperature>38.0).

ブロック81oが、E x ニ#体温)38.0  を
代入する。ブロック811がNoと判定する。ブロック
814が、Exが不成立と判定する。その結果、ブロッ
ク815が、Rすなわちブロック1102は不成立と判
定する。
Block 81o assigns E x (temperature) 38.0. Block 811 determines No. Block 814 determines that Ex does not hold. As a result, it is determined that block 815 is R, that is, block 1102 is not established.

゛インフルエンザ′を結論文字列とするルールが、ブロ
ック1102以外にないため、証明処理305は、゛イ
ンフルエンザ′の証明に失敗し、その旨をコントロール
処理303に報告する。
Since there is no rule other than block 1102 that uses "influenza" as the conclusion string, the proof processing 305 fails to prove "influenza" and reports this to the control processing 303.

そこで、ブロック105が、導出処理306を起動する
。導出処理306は、まず、ブロック1101の成立、
不成立を検証する。この例では、成立すると判定し、 
′消耗状態′を作業メモリ309に記憶する。次に、ブ
ロック1102の成立、不成立を検証する。#体温が3
7.5であることから、不成立と判定する。
Block 105 then initiates a derivation process 306. In the derivation process 306, first, the establishment of the block 1101,
Verify failure. In this example, it is determined that it holds,
The 'exhaustion state' is stored in the working memory 309. Next, it is verified whether block 1102 holds true or not. #Body temperature is 3
Since it is 7.5, it is determined that it does not hold true.

次に、ブロック1103の成立、不成立を判定する。こ
こで、利用者に′腹痛あり′の成立、不成立を問い合わ
せる。利用者が、成立すると答えたとする。この場合、
ブロック11o3が成立し、゛膵臓炎′という事実が成
立する。解候補郡部310を参照して、′膵臓炎′が解
となりうると判定し5これをコントロール処理303に
出力する。
Next, it is determined whether block 1103 is satisfied or not. Here, the user is asked whether ``I have abdominal pain'' is true or not. Suppose that the user answers that it is true. in this case,
Block 11o3 is established, and the fact of "pancreatitis" is established. Referring to the solution candidate group 310, it is determined that 'pancreatitis' can be a solution, and this is output to the control processing 303.

次に、ブロック1104の成立、不成立を検証する。こ
こで、利用者に、#症状の継続日数を問い合わせる。利
用者が、50と答えたとする。この場合、ブロック11
04は成立する。解候補郡部310を参照して、 ゛結
核″が解となりうると判定し、′結核′をコントロール
処理303に出力する。
Next, it is verified whether block 1104 holds true or not. Here, ask the user how many days #symptoms last. Assume that the user answers 50. In this case, block 11
04 is established. Referring to the solution candidate group 310, it is determined that "tuberculosis" can be a solution, and "tuberculosis" is output to the control processing 303.

この間、又は導出処理の終了後、コントロール処理30
3は、証明処理305からの報告が“失敗1の場合は、
ブロック106及び109の処理により、利用者の判断
に反対する旨のメツセージを出力する。ブロック110
は、導出処理306により得られた全ての解を採用して
、むしろ膵臓炎又は結核の可能性がある旨のメツセージ
を出力する。
During this time or after the completion of the derivation process, the control process 30
3, if the report from the proof processing 305 is “Failure 1,”
Through the processing in blocks 106 and 109, a message to the effect that the user disagrees with the decision is output. block 110
adopts all the solutions obtained by the derivation process 306 and outputs a message indicating that there is a possibility of pancreatitis or tuberculosis.

以上の例で示したように、本実施例は、専門家の判断を
検証すると同時に、その判断に賛成の場合には別間を、
また、その判断に反対の場合には対抗解を、もしあれば
自動的に提示し、それにより、専門家の早計や見落とし
を防ぎ、より妥当な結論に、より効率的に導くことがで
きる。
As shown in the above example, this embodiment verifies the expert's judgment, and at the same time, if the expert agrees with the judgment,
In addition, if the judgment is contrary to the judgment, a counter solution, if any, is automatically presented, thereby preventing experts from making premature decisions or making oversights, and leading to a more valid conclusion more efficiently.

次に、専門家の判断を表わす予想解を複数個入力して、
これら予想解のそれぞれを検証し、その結果に応じてそ
れぞれの予想解に対する賛成あるいは反対を表明し、更
に、どの予想解とも異なる解を、別間あるいは対抗解と
して出力する実施例について、説明する。
Next, enter multiple predicted solutions that represent the expert's judgment,
An example will be explained in which each of these predicted solutions is verified, and depending on the result, approval or opposition to each predicted solution is expressed, and a solution different from any of the predicted solutions is output as a different or counter solution. .

本実施例の構成および処理動作は、コントロール処理3
03以外は、第1図〜第9図で説明した前記第1の実施
例と同様である。
The configuration and processing operation of this embodiment are as follows:
The components other than 03 are the same as those of the first embodiment described in FIGS. 1 to 9.

第16図は、本実施例におけるコントロール処理の動作
を示しており、第1図に代わるものである。ブロック1
01及び102は、前記第1図中のブロック101及び
102と同じであり、利用者からデータを入力する。
FIG. 16 shows the operation of the control process in this embodiment, and is an alternative to FIG. 1. block 1
Blocks 01 and 102 are the same as blocks 101 and 102 in FIG. 1, and input data from the user.

ブロック1601は、複数の子思量をリストとして読み
込み、S Li5tに代入する。ブロック1602は、
S Li5tから最初の予思量を取りだし、Sに代入す
る。ブロック1603は、Sを引数として証明処理30
5を起動する。証明処理305の動作は、前記第1の実
施例と同様である。
Block 1601 reads a plurality of child sizes as a list and assigns them to SLi5t. Block 1602 is
Take out the first predicted amount from S Li5t and substitute it into S. Block 1603 is a proof process 30 using S as an argument.
Start 5. The operation of the proof processing 305 is similar to that of the first embodiment.

ブロック1604は、5Listから、処理し終わった
予思量Sを除く。ブロック1605は、全ての予思量を
処理し終わったかどうかを判定する。
Block 1604 removes the processed prediction amount S from 5List. Block 1605 determines whether all prediction quantities have been processed.

処理し終わった場合には、ブロック105に行き、終わ
っていない場合にはブロック1602に戻って、次の予
思量を処理する。
If the processing has been completed, the process goes to block 105; if the process has not been completed, the process returns to block 1602 to process the next expected amount.

ブロック105は、導出処理を起動する。本導出処理は
、前記第1の実施例における導出処理30Gと同じであ
る。
Block 105 initiates the derivation process. This derivation process is the same as the derivation process 30G in the first embodiment.

導出処理の終了後、又はそれと並行して、出力処理が行
なわれる。ブロック1606は、少なくとも一つの予思
量の証明が成功したか、それとも全予想解の証明が失敗
したかを判定する。前者の場合、ブロック1607は、
各予思量について賛成又は反対を表わすメツセージを出
力し、ブロック1608は、導出処理306から受け取
った語間から予思量と等しいものを全て除き、残りを別
間として出力する。後者の場合、ブロック1609は。
After the derivation process is completed or in parallel with it, the output process is performed. Block 1606 determines whether the proof of at least one conjecture was successful or the proof of all conjectures failed. In the former case, block 1607 is
A message expressing approval or disapproval for each predicted amount is output, and block 1608 removes all the word spacings that are equal to the predicted amount from the word spacing received from the derivation process 306 and outputs the rest as separate spaces. In the latter case, block 1609.

全予想解に反対である旨のメツセージを出力し、ブロッ
ク1610は、導出処理306から受取った全ての解を
、対抗解として出力する。
Outputting a message of opposition to all predicted solutions, block 1610 outputs all solutions received from derivation process 306 as counter solutions.

変形として、証明処理305から一つの予思量の処理結
果を受け取るたびに(例えば、ブロック1604の前に
)、その予思量に対する賛否を出力してもよい。この場
合には、全予想解を処理した後でブロック1606の判
断が行われ、その結果に従って、ブロック1608又は
1610の処理が行われる。
As a variation, each time the processing result of one conjecture quantity is received from the proving process 305 (eg, before block 1604), the approval or disapproval of that conjecture quantity may be output. In this case, the decision in block 1606 is made after all predicted solutions have been processed, and the processing in block 1608 or 1610 is performed according to the result.

以上のように、本実施例によれば、専門家の判断を表わ
す予思量を複数個入力して、これら予思量のそれぞれを
検証し、その結果に応じてそれぞれの予思量に対する賛
成あるいは反対を表明し、次にどの予思量とも異なる解
を、別間あるいは対抗解として出力することができる。
As described above, according to this embodiment, a plurality of prediction quantities representing the expert's judgment are input, each of these prediction quantities is verified, and depending on the result, the judgment is made for or against each prediction quantity. A solution that differs from any predicted quantity can then be output as an alternative or counter solution.

したがって、専門家が複数通りの判断を考え出した場合
や1判断に迷う場合にも、考えられる複数の判断をそれ
ぞれ予思量として入力すれば、推論マシンは、それぞれ
の判断を検証するとともに。
Therefore, even if an expert has come up with multiple decisions or is unsure about one decision, the inference machine can verify each decision by inputting each of the possible decisions as prediction quantities.

いずれの判断とも異なる別間又は対抗解を出力すること
によって、専門家の見落としを補い、最も妥当な結論に
効率良く導くことができる。
By outputting an alternative or counter solution that is different from any judgment, it is possible to compensate for an expert's oversight and efficiently lead to the most appropriate conclusion.

次に、専門家の判断に対する別間あるいは対抗解を直接
出力する代わりに、別間あるいは対抗解の存在を示す情
報を出力する実施例について、説明する。
Next, an embodiment will be described in which instead of directly outputting a different answer or a counter solution to the expert's judgment, information indicating the existence of a different answer or a counter solution is output.

本実施例のハードウェア構成は、第2図のとおりであり
、前記第1の実施例と同様である。
The hardware configuration of this embodiment is as shown in FIG. 2, and is the same as that of the first embodiment.

第17図は1本実施例の機能構成を示す。ブロック30
10は処理群であり、入出力処理3o2゜コントロール
処理3030.解析変換処理304゜証明処理305.
及び導出処理3060から成る。
FIG. 17 shows the functional configuration of this embodiment. block 30
10 is a processing group, including input/output processing 3o2° control processing 3030. Analysis conversion processing 304゜Proof processing 305.
and derivation processing 3060.

ブロック3070はメモリであり、ルール郡部308、
作業メモリ309.解候補郡部310、及び解メモリ1
701から成る。
The block 3070 is a memory, and the rule section 308,
Working memory 309. Solution candidate group 310 and solution memory 1
Consists of 701.

これらのうち、入出力処理302.解析変換処理304
.証明処理305.ルール郡部308゜作業メモリ30
9、及び解候補郡部310は、前記第1の実施例と同様
である。
Among these, input/output processing 302. Analysis conversion process 304
.. Proof processing 305. Ruhr County Department 308゜Working Memory 30
9 and the solution candidate group section 310 are the same as those in the first embodiment.

コントロール処理3030は、前記第1の実施例と同様
に、入出力処理302からデータを受け取って1作業メ
モリ309に格納する。入出力処理302から予思量と
起動命令を受け取った時に、この予思量を引数として証
明処理305を起動し、証明の結果に応じて、予思量に
対し賛成あるいは反対の表明を入出力処理302に出力
する。次に、導出処理3060を起動する。導出処理3
060の終了後、解メモリ1701に予思量と異なる解
が記憶されているかどうかを判定する。記憶されていれ
ば、入出力処理302を介して、別間あるいは対抗解の
存在を利用者に示し、さらに、利用者からの要求に応じ
て、解メモリ1701中の解を利用者に出力する。
The control processing 3030 receives data from the input/output processing 302 and stores it in one working memory 309, as in the first embodiment. When receiving the predicted amount and the activation command from the input/output processing 302, the proof processing 305 is started using the predicted amount as an argument, and depending on the result of the proof, an expression for or against the predicted amount is sent to the input/output processing 302. Output. Next, derivation processing 3060 is activated. Derivation process 3
After completing step 060, it is determined whether the solution memory 1701 stores a solution different from the expected amount. If stored, the existence of a different or counter solution is indicated to the user via the input/output processing 302, and furthermore, the solution in the solution memory 1701 is output to the user in response to a request from the user. .

導出処理3060は、解を求めた時に、これをコントロ
ール処理3030に出力する代わりに、解メモリ170
1に格納し、処理が終ると、その旨をコントロール処理
3030に報告する。この点を除いて、前記第1の実施
例における導出処理306と同じである。
When the derivation processing 3060 obtains a solution, instead of outputting it to the control processing 3030, the derivation processing 3060 stores the solution in the solution memory 170.
1, and when the processing is completed, it is reported to the control processing 3030. Except for this point, the process is the same as the derivation process 306 in the first embodiment.

解メモリ1701は、導出処理3060から解を受け取
り、これを記憶する。
Solution memory 1701 receives the solution from derivation process 3060 and stores it.

第18図は、本実施例のコントロール処理3030の動
作を示す。ブロック101〜107及び109は、前記
第1の実施例における第1図中のブロック101〜10
7及び109と同じであり、利用者からデータと予想解
を入力して、証明処理305によりこれを検証し1次い
で、導出処理306を起動する。そして、検証の結果に
従い、予想解に対する賛成又は反対を表明する。導出処
理307は、前述のように、得られた解を解メモリ17
旧に格納し、処理の終了をコントロール処理3030に
報告する。
FIG. 18 shows the operation of the control processing 3030 of this embodiment. Blocks 101 to 107 and 109 are blocks 101 to 10 in FIG. 1 in the first embodiment.
7 and 109, the user inputs data and predicted solutions, verifies them in proof processing 305, and then starts derivation processing 306. Then, based on the verification results, express approval or disapproval of the predicted solution. As mentioned above, the derivation process 307 stores the obtained solution in the solution memory 17.
The process is stored in the previous file and the end of the process is reported to the control process 3030.

予想解の証明が成功した場合、ブロック1801は、解
メモリ17o1中に別間、すなわち予想解と異なる解が
あるかどうかを調べて、もしなければ、ブロック180
2が、別間は存在しない旨のメツセージを出力し、処理
は終了する6他方、別間が解メモリ1701中にあれば
、ブロック1803は、別間が存在する旨のメツセージ
を出力し、ブロック18o4は、別間の出力を要求する
かどうかを利用者に尋ねる。別間の出力が要求されな番
すれば、処理は終了し、出力が要求されれば、ブロック
1805は、解メモリ1701の内容を読み出して、予
想解と異なるものだけを別間として出力し、処理が終了
する。
If the proof of the predicted solution is successful, block 1801 checks whether there is another solution in the solution memory 17o1, that is, a solution different from the predicted solution, and if not, block 180
2 outputs a message to the effect that the Betsuma does not exist, and the process ends.6 On the other hand, if the Betsuma is in the solution memory 1701, the block 1803 outputs a message to the effect that the Betsuma exists, and the block 18o4 asks the user if he would like to request another output. If output is not requested, the process ends, and if output is requested, block 1805 reads the contents of the solution memory 1701 and outputs only those that differ from the expected solution as separate items. Processing ends.

予想解の証明が失敗した場合には、ブロック1806が
、解メモリ1701中に解が格納されているかどうかを
調べる。この場合には、予想解との比較は必要なく、解
があれば、それは対抗解である。対抗解がなければ、ブ
ロック1807がその旨のメツセージを出力して、処理
は終了する。
If proof of the predicted solution fails, block 1806 checks whether a solution is stored in solution memory 1701. In this case, there is no need to compare with the expected solution; if there is a solution, it is a counter solution. If there is no competing solution, block 1807 outputs a message to that effect and the process ends.

対抗解があれば、ブロック1808がその旨のメツセー
ジを出力し、ブロック1809が対抗解の出力の要否を
利用者に尋ねる。出力が要求されなければ、処理は終了
し、出力が要求されれば、ブロック1810は、解メモ
リ1701の内容を対抗解として出力し、処理が終了す
る。
If there is a counter solution, block 1808 outputs a message to that effect, and block 1809 asks the user whether or not the counter solution should be output. If output is not requested, the process ends; if output is requested, block 1810 outputs the contents of solution memory 1701 as a counter solution, and the process ends.

以上のように、本実施例は、利用者の判断を検証すると
ともに、その判断に対する別間あるいは対抗解の存在を
示し、さらに利用者の希望に応じて、別間あるいは対抗
解を出力できる。専門家は。
As described above, the present embodiment not only verifies the user's judgment, but also indicates the existence of a different answer or counter solution to the user's judgment, and can output the different answer or counter solution according to the user's wishes. The experts are.

仕事の状況に応じて、別間あるいは対抗解を調べること
も、これを無視することもできる。
Depending on your work situation, you can look into separate or counter solutions, or you can ignore them.

前述の諸実施例において、導出処理の起動は、証明処理
の終了後に行われる。しかしながら、これら両処理は、
逆の順序で行われてもよく。更に、並行して実行されて
もよい。例えば、両処理に交互のタイムスロットを割当
てて、タイマーの制御の下で、定期的な時分割処理を行
わせることができる。あるいは、いずれか一方の処理に
優先権を与え、この処理が、例えば利用者への問い合わ
せなどのために待ち状態にある間と、終了した後でのみ
、他方の処理が実行されてもよい。このような並行処理
の場合に、いずれか一方の処理が、中間結果として、又
は利用者への要求により、獲得して作業メモリに格納し
た情報は、他の処理で利用することができる。一般には
、証明処理を優先させるのが好ましい。その理由は、証
明処理の結果が導出処理により得られる解の扱いに影響
するためと、予想解の当否を早く知らせれば利用者のい
らだちが少ないためである。
In the embodiments described above, the derivation process is started after the proof process is completed. However, both of these treatments
May be done in reverse order. Furthermore, they may be executed in parallel. For example, alternating time slots may be assigned to both processes, allowing periodic time-sharing operations to occur under the control of a timer. Alternatively, priority may be given to one of the processes, and the other process may be executed only while this process is in a waiting state for, for example, making an inquiry to the user, and only after the process has finished. In such parallel processing, information acquired and stored in the working memory by either process, either as an intermediate result or by a request to a user, can be used by the other process. Generally, it is preferable to give priority to certification processing. The reason for this is that the result of the proof process affects the handling of the solution obtained by the derivation process, and the sooner the user is notified of the validity of the predicted solution, the less the user will be irritated.

第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の一部とし
て構成されてもよい。
FIG. 19 shows an example of a hardware configuration particularly suitable for parallel processing of proof and derivation. The input/output terminal 201 and the storage device rI 1203 are equivalent to the input/output terminal 201 and the storage device 203 in FIG. 2, respectively. The control unit 1901 performs input/output processing 3o2. This is a unit that executes control processing 303 (or 3030 in FIG. 17) and analysis conversion processing 304, and upon receiving a startup command, simultaneously activates proof processing unit 1902 and derivation processing unit 1903. Proof processing unit 19
02 is dedicated hardware for executing the proof processing 305 in FIG. 3, and the derivation processing unit 1903 is
This is dedicated hardware for executing the derivation process 306 in FIG. 3 (or 3060 in FIG. 17). The storage control device 1904 includes control units 1901. Coordinates storage access request conflicts between the proof processing unit 19o2 and the derivation processing unit 1903. In order to speed up processing, a cache memory may be provided in the storage control device 1904, and either the proof processing unit 1902 or the derivation processing unit 1903 (preferably the proof processing unit) is a control unit. It may be configured as part of 19o1.

更に、前述の諸実施例では、コントロール処理303又
は3030が、導出処理により得られた解を予想解と比
較する。しかし、導出処理303又は3030に予想解
を渡して、導出処理自身にこの比較を行なわせてもよい
Furthermore, in the embodiments described above, the control process 303 or 3030 compares the solution obtained by the derivation process with the expected solution. However, the predicted solution may be passed to the derivation process 303 or 3030 and the derivation process itself may perform this comparison.

次に、エキスパートシステムへの本発明の詳細な説明す
る。エキスパートシステムは、推論マシンに予めルール
の集合を装備することによって、実現される。したがっ
て、前述の諸実施例は、ルールの集合が予め記憶されて
いて、ルールの集合を入力する処理が除かれることによ
り、そのまま。
Next, a detailed explanation of the present invention to an expert system will be given. An expert system is realized by equipping an inference machine with a set of rules in advance. Therefore, the aforementioned embodiments can be used as they are because the set of rules is stored in advance and the process of inputting the set of rules is removed.

エキスパートシステムにおける対応する実施例になる。A corresponding example will be given in an expert system.

かくして、本発明は、推論マシン又はエキスパートシス
テムのいずれによっても、有能な助手システムを提供す
ることができる。
Thus, the invention can provide a competent assistant system, either by a reasoning machine or an expert system.

〔発明の効果〕〔Effect of the invention〕

以上の説明から明らかなように1本発明によれば、利用
者の判断の検証と、別間又は対抗解の提示とが、1回の
起動操作で自動的に行われ、それにより、早計及び見落
としが防がれ、最も妥当な結論に能率良く到達すること
ができる。証明処理と導出処理はデータを共有し、した
がって、追加データの利用者への問い合わせの重複は防
止される。証明処理の待ち状態の間に導出処理を行えば
、能率は一層高められる。
As is clear from the above description, according to the present invention, the verification of the user's judgment and the presentation of alternative or counter solutions are automatically performed with a single activation operation, thereby preventing premature Overlooks are prevented and the most reasonable conclusion can be reached efficiently. The proof process and the derivation process share data, thus preventing duplication of queries to users for additional data. Efficiency can be further improved by performing the derivation process while waiting for the proof process.

複数の予想解を一括して処理する変形は、利用者が複数
の判断の間で迷う場合に便利であり、別間又は対抗解の
有無のみをまず出力する変形は、利用者を過剰な情報か
ら救う。
A variant that processes multiple predicted solutions at once is useful when the user is confused between multiple decisions, and a variant that first outputs only the presence or absence of a separate or counter solution may overwhelm the user with excessive information. save from

また、本発明の装置によれば、証明処理と導出処理の完
全な同時実行が実現され、したがって。
Further, according to the apparatus of the present invention, complete simultaneous execution of proof processing and derivation processing is realized.

処理時間が短縮される。Processing time is reduced.

【図面の簡単な説明】[Brief explanation of the drawing]

第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・・・共用メモリ。
FIG. 1 is a flowchart showing the procedure of control processing in an embodiment of the method of the present invention, and FIG. 2 is a block diagram showing the hardware configuration of an example of a data processing system suitable for executing the method of the present invention. FIG. 3 is a block diagram showing the functional configuration of a data processing system that executes the embodiment, FIG. 4 is a diagram showing an example of the format of rules used in the present invention, and FIG. The figures are diagrams showing the format of the intermediate word of the rule shown in FIG. 4, FIG. 6 is a diagram showing details of the conditional expression in the rule intermediate word shown in FIG. 5, and FIG. 8 is a diagram showing an example of the format of the contents of the working memory used in the present invention, FIG.
10 is a flowchart showing a procedure for determining variable values in the processing procedure shown in the figure, FIG. 10 is a diagram showing an example of a rule set, and FIG. 11 is a diagram showing an intermediate word of the rule set in FIG. FIG. 12 is a diagram showing an example of the contents of the working memory at the beginning of the inference process, and FIG. 13 is a diagram showing the contents of the working memory that have changed from FIG. 12 at the middle of the inference process. Figure 14 is a diagram showing another example of the contents of working memory at the initial stage of the inference process, and Figure 15
The figure is a diagram showing the contents of the working memory changed from FIG. 14 in the middle of the inference process, and FIG. 16 is a flowchart showing the procedure of control processing in the second embodiment of the method of the present invention. FIG. 17 is a block diagram showing the functional configuration of a data processing system that implements the third embodiment of the present invention. FIG. 18 is a flowchart showing the procedure of control processing in the third embodiment, and FIG. 19 is a block diagram of an embodiment of the judgment assisting device of the present invention suitable for executing the method of the present invention. 101-103... Input of data and predicted solutions, 104.
...Start of proof processing, 105...Start of derivation processing. 107... Output to the effect that I agree with the predicted solution, 108... Output to the effect of another solution, 109... Output to the effect that I disagree with the predicted group, 11
0... Output of counter solution, 1601-1605... Input of multiple child calculations, 1801-1803... Output of presence/absence of the difference, 1804.1805... Output of the difference according to request, 1806- 1808... Output of presence/absence of counter solution, 1
809.1810...Output of counter solution according to request, 19
01... Control unit, 1902... First inference unit for proof processing, 1903... Second inference unit for derivation processing, 201... Input/output unit 1-1
203...Shared memory.

Claims (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推論ユニット並びに
制御ユニットに接続されて前記データ及びルール群を含
む所要情報を記憶する共用メモリとを備える、判断補助
装置。
[Scope of Claims] 1. Comprising an input device, an output device, a storage device including a rule storage unit that holds one or more rules, and a processing device including an inference means for performing inference processing based on the rule. In the data processing system, an input step of receiving data representing a problem and a predicted solution to the problem via the input means and storing the data in the storage device; and applying the rule to the data by the reasoning means to generate the prediction. a proving step for attempting to prove a solution; a deriving step, which is started in conjunction with the proving step, and in which the inference means applies the rules to the data to derive all possible solutions to the problem; a first output step of outputting information indicating success or failure through the output device; and outputting at least a part of the derived solution through the output device in association with the success or failure of the proof. Second
and an output step, and at least one of the proof step and the derivation step includes a step of requesting additional data that becomes necessary in the process via the output device, and receiving the additional data via the input device. and storing the additional data in the storage device, and the other of the proving step and the deriving step uses the additional data stored in the one process as necessary. 2. In claim 1, the second output step outputs only the derived solutions that are different from the expected solution as different solutions when the proof is successful, and when the proof is unsuccessful. A decision aiding method that outputs all of the derived solutions as competing solutions. 3. The decision assisting method according to claim 1 or 2, wherein the input step receives a plurality of predicted solutions, and the proving step attempts to prove each of the plurality of predicted solutions. 4. In claim 1, in place of the second output step, outputting information indicating the presence or absence of a solution different from the predicted solution, and outputting the solution different from the predicted solution in response to a request via the input device. A decision aiding method comprising the step of outputting via an output device. 5. In claim 1, 2, 3, or 4, the proving step includes a step of requesting additional data that becomes necessary in the process via the output device, and receiving the additional data via the input device. and storing the additional data in the storage device, and the deriving step is started after the proving step is completed, and the stored additional data is used as necessary. 6. In claim 1, 2, 3 or 4, the proving step and the deriving step are performed in parallel, and each of both steps requests additional data via the output device as required during the process. and receiving the additional data via the input device and storing it in the storage device, and further using the additional data stored by the other device as needed. 7. The decision aiding method according to claim 6, wherein the deriving step is performed while the proving step is in a waiting state. 8. Any one of claims 1 to 7, further comprising the step of receiving at least a portion of the rules via the input device and storing them in the storage device, thereby forming the rule storage. Decision aid method. 9. an input unit, an output unit, a first inference unit that attempts to prove a predicted solution by applying a set of rules to data representing a problem; and a first inference unit that attempts to prove a predicted solution by applying a set of rules to data representing the problem; a second inference unit that derives a solution; and a control unit that is connected to the input unit, the output unit, and the first and second inference units to control parallel operations of the first and second inference units and performs input/output processing. and a shared memory connected to the first and second inference units and the control unit to store necessary information including the data and the rule group.
JP63308854A 1988-12-08 1988-12-08 Method and device for aiding judgement Pending JPH02156331A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63308854A JPH02156331A (en) 1988-12-08 1988-12-08 Method and device for aiding judgement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63308854A JPH02156331A (en) 1988-12-08 1988-12-08 Method and device for aiding judgement

Publications (1)

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

Family

ID=17986064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63308854A Pending JPH02156331A (en) 1988-12-08 1988-12-08 Method and device for aiding judgement

Country Status (1)

Country Link
JP (1) JPH02156331A (en)

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 (en) * 1986-04-30 1987-11-07 Toshiba Corp Inference system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62256128A (en) * 1986-04-30 1987-11-07 Toshiba Corp Inference system

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 (en) Intelligent question and answer method and device based on pharmacy knowledge graph
JPS619729A (en) Reasoning system
JP2008507784A (en) A decision support system for simulating the implementation of feasible medical guidelines
CN113035350B (en) Medical decision support method and system based on knowledge extraction
Pfeifer et al. The value of disease severity in predicting patient readiness to address end-of-life issues
JPH02156331A (en) Method and device for aiding judgement
CN111383724A (en) Auxiliary system and method for random grouping of subjects in multi-center cooperative clinical trial
Colleen Corte A theoretical analysis of Carper's ways of knowing using a model of social cognition
CN112700861B (en) Accompanying symptom interaction method and accompanying symptom interaction system
Kohout et al. Design of questioning strategies for knowledge-based systems
JP2005182362A (en) Nursing and medical care supporting device, method and program
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.
Deane A Comparison of Usa and New Zealand Patients' Requests and Clinicians Understanding of Patients' Requests
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
Dora et al. Building decision support systems for treating severe head injuries