저는 대학 프로젝트에 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로 작성된 프로그램을 실행하기위한 렉스/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))
빠른 답장을 보내 주셔서 감사합니다. 예, 프로젝트 요구 사항입니다. 나는 '(변경 전략 변경) ( '(declare (돌출) -1)' '=>' ' (설정 전략 복잡성)' 과 같은 규칙을 사용하려고 시도했다. 초기 질문은 무작위로 묻고, 그러나 주심 증상 규칙으로 특정 증상을 주장한 후에는 그 증상에 따라 모든 규칙이 실제로 실행되지 않는 변경 전략 규칙 이전에 의제에 포함됩니다. –