CLIPS-是否可以在运行时更改规则的显着性?

尼古拉·米奇(NikolaMićić)

我要建立一个专家系统,在紧急情况下,如果建筑物有几层楼(一层+三层),电梯应将人员带入地下。想法是首先从最高的一层(第三层)中拯救人们,然后从第二层中拯救人们,最后从第一层中拯救人们。我对规则的显着性有疑问(每个楼层都有单独的规则)。开始时,规则“ MoveFloor3”的最高显着性是-将电梯移至第三层(因为我首先要救掉最高层中的人)。当我从三楼救起所有人时,我想将此规则的显着性更改为0(或比第二层和一楼的显着性小的数字),因为在那之后,我要从第二层和一楼救出人们。下面是该规则的代码,

(defrule moveFloor3
(declare (salience 50))
?j<-(lastJob ?t&~moveFloor3)
?e<-(elevator ?peopleInElevator)
?f<-(floor3 ?peopleInFloor)
(capacityElevator ?capacityElevator)

=>
(bind ?newPeopleInElevator (+ ?peopleInElevator (min ?peopleInFloor (- ?capacityElevator ?peopleInElevator))))
(bind ?newPeopleInFloor (- ?peopleInFloor (min ?peopleInFloor (- ?capacityElevator ?peopleInElevator))))
(retract ?e ?f ?s ?j)
(assert (elevator ?newPeopleInElevator))
(assert (floor3 ?newPeopleInFloor))
(assert (lastJob moveFloor3))
(printout t "Elevator moved to third floor" crlf)
)
节庆

使用全局变量设置显着性,一旦触发该规则即可在规则的RHS中对其进行更改。另请参阅在规则定义中的显着性声明中使用变量

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

CLIPS运行时崩溃

CLIPS条件规则

CLIPS规则触发多次

CLIPS 打印输出规则触发次数

CLIPS从文件加载并运行程序

是否可以在 CLIPS 中拥有多个类的实例?

Clips 规则 - 有条件地触发规则

如何在 Clips 中创建除法规则?

使用 CLIPS 规则引擎计算折扣时出错

测试是否存在于多字段中-CLIPS

是否可以在运行时更改组件样式?

是否可以在运行时更改AngularJS变量的类型?

如何在运行时更改NLog规则目标?

CLIPS(模板)-家庭关系:编写规则时处理模板和初始事实时遇到麻烦

使用 OR 组中的绑定模式变量来测试 CLIPS 规则中的条件元素

CLIPS:一次性模式匹配多槽的值

使用CLIPS时,如何在不重置事实的情况下运行剪辑

测试 Clips 中是否存在具有多字段字段值的事实

是否可以在运行时更改Android <host-apdu-service>属性android:requireDeviceUnlock?

是否有部分布局的概念可以在运行时更改而不会滑动?

是否可以在运行时更改Docker挂载的只读/读写状态?

是否可以在运行时更改 TinyMCE 中的按钮文本?

是否可以在运行时更改AWS Lambda的日志级别?

是否可以在运行时更改 DDV_MinMaxInt 范围?

是否可以在 Swift 中在运行时更改本地化语言?

FileHelpers库-是否可以在运行时更改字段的日期格式?

是否可以在运行时更改max_input_vars?

是否可以在uwp中在运行时更改启动屏幕?

在Haxe / Starling中,是否有编程方式可以在运行时更改vsync?