剪辑中的模糊事实

时间:2014-04-24 10:31:28

标签: fuzzy-logic clips

我制作了一个模糊模板,代表学生在某个领域的知识。问题是,在将学生John声明为low时,他也将被宣布为med,因为低学生也在30到40之间。

如何在不low的情况下宣布学生为med

请注意,我知道我可以执行类似(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 个答案:

答案 0 :(得分:1)

通过重叠范围,这是有道理的。但也许重叠不是你想要做的。怎么样:

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

通过这种方式,你可以清楚地分辨得分何时低或高,而松散的挑剔med只是填补了裂缝。