GKRuleSystem

来源:互联网 发布:硬盘坏了数据恢复价格 编辑:程序博客网 时间:2024/05/22 06:04

GKRuleSystem

用于构造数据驱动逻辑或模糊逻辑系统的规则列表,以及评估它们和解释结果的上下文。

概括

GKRuleSystem对象管理规则列表(GKRule对象)。规则系统还提供了在由两个特征定义的上下文中评估其规则列表的方法:包含要由规则测试的信息的状态字典以及表示由规则评估结果得出的结论的一组事实。你可以基于二进制真值状态来评估事实 - 即事实是或不在集合中,或者是连续变量的成员级别,表示用于模糊逻辑的不同级别的真实性,置信度或强度。

你可以通过创建GKRule对象并将其添加到系统的规则列表来构建规则系统。有多种方法来构建规则:为了更好的可重用性,请使用“创建数据驱动规则”中列出的方法; 或者为了更大的灵活性,请使用ruleWithBlockPredicate:action: 方法或创建GKRule或GKNSPredicateRule的自定义子类。然后,使用“管理系统的规则列表”中列出的方法向系统添加规则。

要评估系统,请调用evaluate方法。该方法按照系统日程列表中显示的顺序处理系统中的每个规则。 您可以使用每个规则的salience属性或按照向系统添加规则的顺序设置此顺序。当系统处理每个规则时,它会测试规则的evaluatePredicateWithSystem: 方法,以确定该规则是否在系统上下文中得到满足。如果规则的谓词满足,系统将执行规则的performActionWithSystem:  方法并将规则移动到执行的列表中(因此进一步评估议程并不会重复触发规则的操作)。

规则通常使用系统的状态字典作为输入,其事实集作为输出。 (然而,更复杂的系统可以包括一组规则,其谓词测试事实或其操作会突破系统的状态。)在评估规则系统后,您可以使用事实中的图形结论中列出的方法检查其生成的事实集。然后,您可以使用集合中的事实,其成员等级的值,或一组事实的组合成员等级来影响游戏中的行为。

Topics

创建规则系统(Creating a Rule System)

- init

初始化一个新的空规则系统。

管理状态信息(Managing State Information)

state

由系统规则评估的状态信息字典。

管理系统的规则表(Managing a System’s List of Rules)

rules

评估系统时要执行的规则列表。

- addRule:

将指定的规则添加到系统。

- addRulesFromArray:

将指定的规则列表添加到系统。

- removeAllRules

从系统中删除所有规则。

评估规则系统(Evaluating a Rule System)

- evaluate

评估规则制度,执行其议程中的规则清单。

agenda

评估系统时要考虑的规则清单。

executed

在系统评估过程中执行操作的规则列表。

- reset

将规则制度恢复到原来的议程,并清除所有事实。
断言和撤回事实(Asserting and Retracting Facts)

facts

规则制度所要求的事实清单。

- assertFact:

将规定的事实添加到成员等级为1.0的事实集中,并重新评估系统议程中的规则。

- assertFact:grade:

将指定事实的成员等级提高指定数量,如果需要,将其添加到事实集中,并重新评估系统议程中的规则。

- retractFact:

从事实集中删除指定的事实,并重新评估系统议程中的规则。

- retractFact:grade:

将指定事实的成员等级降低指定数量,如果需要,将其从事实集合中删除,并重新评估系统议程中的规则。

从事实中得出结论(Drawing Conclusions from Facts)

- gradeForFact:

返回指定事实的成员等级。

- minimumGradeForFacts:

返回指定事实中最低的会员等级。

- maximumGradeForFacts:

返回指定事实中最高的会员等级。

关系

继承

NSObject

原创粉丝点击