冲突解决策略:大小排序/数据排序/最近最少使用规则有什么区别?

大小排序/数据排序/最近最少使用规则有什么区别?

我已经做了很多研究,大多数书籍都说:

数据排序:将所有可能的断言按优先级排列成一个长列表。使用触发的规则,该规则的条件模式与列表中优先级最高的断言相匹配。

大小排序:使用具有最严格要求的触发规则,其中最严格指的是条件列表最长的规则。

最近最少使用规则(最近性排序):使用最近最少使用的规则。

然而,这些解释对我来说都太抽象了,我无法很好地理解它们。

有人能用以下案例帮我解释这三种策略吗?(可以自由使用自己的案例)

  1. 一个快速处理投诉的系统。这涉及到在没有真正答案时使用一套通用借口的图书馆。
  2. 一个检测当前和潜在客户并将他们的电话转接给适当经理的系统。
  3. 一个处理投诉的同理心系统。这个系统的目标是让自动语音与来电者进行对话,并表现得对投诉知识渊博且关心。这个系统希望来电者在结束对话时感到满意,觉得他们的投诉已被倾听,并且公司正在适当地处理它。系统将根据来电者愿意对机器说的话而拥有不同数量的信息。系统在收集大量信息时使用特定规则,而在信息不足时使用一般规则。

回答:

为了理解冲突解决策略是什么,让我们模拟一个两个规则之间发生冲突的条件。我将涵盖提供的第一个和第二个例子,并为规则使用CLIPS语言。

第一条规则,用快速响应回答投诉。如果我们没有进一步的信息来处理投诉,这是理想的选择。

第二条规则在客户投诉时激活,如果客户被分配给经理,则将投诉转发给经理。

(defrule generic-excuse  ; 为投诉的客户提供通用借口  ?complaint <- (complaint (customer ?customer))  =>  (respond-to-customer ?customer "我们对给您带来的不便表示歉意。")  (retract ?complaint))(defrule forward-complaint-to-manager  ; 将投诉转发给指定的经理  ?complaint <- (complaint (customer ?customer))  ?manager <- (manager (assigned-customers $?customers))  ; 经理有一份分配的客户列表  (test (member$ ?customer ?customers))                   ; 测试客户是否在分配给经理的客户中  =>  (forward-to-manager ?manager ?complaint)  (retract ?complaint))

这两条规则似乎很好地覆盖了这两个案例。规则一旦触发,就会从引擎的工作内存中移除(撤回)投诉,因为投诉本身得到了处理。

然而,如果这两条规则都满足触发条件,它们就会相互冲突。理想情况下,如果给定客户被分配了经理,投诉应该转发给他/她。但在这种情况下,第一条规则可能会优先执行,客户会收到一个通用的道歉,而不是被重定向到经理那里。

通常,规则开发者通过优先级机制来控制规则的执行顺序。如果规则看起来具有相同的优先级,冲突解决机制就会介入并决定规则的触发顺序。

您提到的第一种解决策略(数据排序)建议优先级将基于事实的断言顺序来决定。

第二种策略(大小排序)在CLIPS中被称为复杂性策略。它优先考虑具有更多约束的规则。在上面的例子中,这是正确的策略,因为经理规则更具体,因此更复杂。如果您构建规则库,使得更具体的规则优先于通用规则,那么这就是您选择的策略。

第三种策略非常容易理解。最近最少触发的规则将被优先考虑。

总之,规则冲突在专家系统中极为常见。解决策略会影响您的规则库的增长方式及其维护成本的增加。在设计初期明智地选择非常重要,因为以后更改可能会带来很多不愉快的重构工作。

您可以在以下gist中看到示例程序的完整副本。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注