GKRuleSystem
来源:互联网 发布:硬盘坏了数据恢复价格 编辑:程序博客网 时间:2024/05/22 06:04
GKRuleSystem
用于构造数据驱动逻辑或模糊逻辑系统的规则列表,以及评估它们和解释结果的上下文。
概括
GKRuleSystem对象管理规则列表(GKRule对象)。规则系统还提供了在由两个特征定义的上下文中评估其规则列表的方法:包含要由规则测试的信息的状态字典以及表示由规则评估结果得出的结论的一组事实。你可以基于二进制真值状态来评估事实 - 即事实是或不在集合中,或者是连续变量的成员级别,表示用于模糊逻辑的不同级别的真实性,置信度或强度。
你可以通过创建GKRule对象并将其添加到系统的规则列表来构建规则系统。有多种方法来构建规则:为了更好的可重用性,请使用“创建数据驱动规则”中列出的方法; 或者为了更大的灵活性,请使用ruleWithBlockPredicate:action: 方法或创建GKRule或GKNSPredicateRule的自定义子类。然后,使用“管理系统的规则列表”中列出的方法向系统添加规则。
要评估系统,请调用evaluate方法。该方法按照系统日程列表中显示的顺序处理系统中的每个规则。 您可以使用每个规则的salience属性或按照向系统添加规则的顺序设置此顺序。当系统处理每个规则时,它会测试规则的evaluatePredicateWithSystem: 方法,以确定该规则是否在系统上下文中得到满足。如果规则的谓词满足,系统将执行规则的performActionWithSystem: 方法并将规则移动到执行的列表中(因此进一步评估议程并不会重复触发规则的操作)。
规则通常使用系统的状态字典作为输入,其事实集作为输出。 (然而,更复杂的系统可以包括一组规则,其谓词测试事实或其操作会突破系统的状态。)在评估规则系统后,您可以使用事实中的图形结论中列出的方法检查其生成的事实集。然后,您可以使用集合中的事实,其成员等级的值,或一组事实的组合成员等级来影响游戏中的行为。