【发布时间】:2014-02-03 01:27:48
【问题描述】:
我已经为此苦苦挣扎了一段时间,但没有找到关于如何完成我将要说明的内容的参考。 假设我有一个单元格网格,每个单元格对应于以下模板:
(deftemplate cell
(slot x)
(slot y)
(slot type (allowed-values urban rural lake hill gate border))
)
现在我的网格中的单元格类型是使用(assert (cell (x <x_coord>) (y <y_coord>) (type <some_type>)) 语句随机生成的,我想定义以下规则,它检查 3x3 范围内的所有单元格,以中心单元格为中心,并根据类型采取行动检查的细胞数:
(defrule inspect
(cell (x ?xval) (y ?yval))
; ...
=>
(loop-for-count (?i -1 1) do
(loop-for-count (?j -1 1) do
; get "type" of cell @ coordinates (- ?x ?i ), (+ ?y ?j)
; do stuff according to type (i.e. assert other facts)
)
)
)
在 CLIPS 规则的 RHS 上给定特定标准(在本例中为单元格坐标),我将如何查找事实?我知道如何在 LHS 上进行模式匹配,但我很想知道是否也可以在 RHS 上这样做。 提前致谢。
【问题讨论】:
标签: artificial-intelligence expert-system clips