剪辑中的模糊事实

7
我设计了一个模糊模板,用于代表学生在某一领域的知识。问题是,如果将学生John标记为“低级”,则他也会被标记为“中级”,因为在30到40之间,低级学生也是中级学生。
那么怎样才能将学生标记为“低级”而不是“中级”呢?
请注意,我知道可以像这样做:(student (name John) (knowledge (20 0) (21 1) (22 0))) ,但是如果我想使用模糊值来标记他呢?
(deftemplate fz-knowledge
0 100
( (low (20 1) (40 0))
  (med (30 0) (50 1) (70 0))
  (high (60 0) (80 1))
))


(deftemplate student
(slot name)
(slot knowledge (type FUZZY-VALUE fz-knowledge))
)

(deffacts students
(student (name John) (knowledge low) )
)
1个回答

2

如果有重叠的范围,这种做法似乎是有道理的。但也许重叠并不是你想要的。那么怎么办呢:

(deftemplate fz-knowledge
0 100
( (low (20 1) (40 0))
  (high (60 0) (80 1))
  (med   NOT [ low OR high ] )
))

那样,您可以清楚地知道得分是低还是高,并且松散的med只是填补了裂缝。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接