模拟症状和疾病

时间:2011-07-05 16:23:59

标签: prolog

教授要求我们建立一个Prolog程序,根据用户输入的症状诊断疾病。我的症状和疾病数据库是这样的:

causes_of(symptom1, Disease) :-
    Disease = disease1;
    Disease = disease2.
causes_of(symptom2, Disease) :-
    Disease = disease3;
    Disease = disease4.
causes_of(symptom3, Disease) :-
    Disease = disease4.

我需要的是以交互方式询问用户症状并同时过滤可能的疾病,直到我没有更多症状需要验证。然后,我将向用户提供可能的疾病列表。

请注意,我还需要过滤出冲突的症状。为了说明这一点,请采用上面定义的关系,并在某个时刻考虑用户有症状2。如果发生这种情况,我不应再问用户是否有症状1,因为没有疾病同时引起症状1和症状2。

我不知道我是否正确地为此制定了规则,如果没有,请指出我正确的方向。

1 个答案:

答案 0 :(得分:1)

看看动物猜测的例子:

http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/2_17.html

它解决了与家庭作业基本相同的问题。