私は大学プロジェクトにCLIPSを使用しています。これは質問駆動型のエキスパートシステムであり、私はいくつかの初期質問を無作為に質問する必要があるので、そして、(設定-戦略をランダム):CLIPSはさまざまなルールグループに対して異なる競合解消戦略を設定しています
(defrule ask-age
(not (age ?))
=>
(bind ?answer (question “What’s your age?”))
(assert (age ?answer)))
(defrule ask-gender
(not (age ?))
=>
(bind ?answer (question “What’s your gender?”))
(assert (gender ?answer)))
(defrule ask-main-symptom
(not (main-symptom ? TRUE))
=>
(bind ?answer (question “What’s the main symptom?”))
(assert (main-symptom ?answer TRUE)))
主な症状についての知識に基づいて、ルールの別のグループがアクティブになる、と私は紛争解決の戦略を変更する必要があります。 (assert(main-symptom?answer TRUE)の後に)ask-main-symptomルールに(set-strategy complexity)を入れるのは正しいですか?より良い方法がありますか?潜在的に矛盾するルールと、もともとOPS5で書かれたプログラムを実行するためのLEX/MEAをチェックするために、ランダムな戦略を使用するよりも、それ自体が間違っているが、他の何もない
は(defrule ask-main-symptom
(not (main-symptom ? TRUE))
=>
(bind ?answer (question “What’s the main symptom?”))
(assert (main-symptom ?answer TRUE))
(set-strategy complexity))
ご返信ありがとうございます。はい、それはプロジェクトの要件です。私はルールを次のように使用しようとしました: ' '(宣言(顕著)-1) ' ' => ' '(セット戦略の複雑さ)) ' 最初の質問は無作為に求められますが、尋問主徴候規則で特定の徴候を主張した後、その徴候に応じたすべての規則は、実際には発射されない変更戦略規則の前に議題に入れられます。 –