命题逻辑推理:从SAT求解器到知识编译
1. 知识编译概述
在表达知识和进行推理时,命题语言乍一看可能显得过于局限。因为表达数值信息、顺序关系甚至简单的组合计算都相对复杂。然而,在很多情况下,如果所考虑的知识允许,或者用命题逻辑表达的代价不高,它可能是一个不错的选择。此外,SAT技术的最新进展使得处理包含数百个变量的知识库成为可能,同时有望保持良好的性能。有时,命题逻辑中表达的“知识”实际上是基于对真实知识的抽象构建的,从而实现高效但高层次的推理。
知识编译(Knowledge Compilation,KC)可以定义为使知识库(KB)中包含的某些信息更加明确,以便在后续阶段加速对这些信息的访问,并保证响应时间。当处理以命题逻辑表达的知识时,所寻求的信息通常可以通过从初始公式中推导出来的定理子集来表征,例如通过归结法得到的定理。然而,找到其中一个定理本身通常就是一个难题,而且这些定理的数量可能呈指数级增长。当人们想要自动明确所有有用信息(针对特定任务)时,就需要正式定义用于构建这些有趣定理的目标语言。这一概念催生了各种形式化方法,如生产域计算、受限语言、P - 蕴含式或素P - 蕴含式等。
2. KC的原理
“编译”这一术语通常涵盖了将知识库KB转换为一种理论的所有操作,这种理论可以加速对KB的使用(查询、转换、更新)。其主要原则之一是KB不发生变化(或很少变化),并且需要对其进行大量查询。因此,编译时间(可能相当长)实际上可以通过所有查询节省的时间来分摊。在这种情况下,关键的响应时间在于查询阶段,而编译时间(有时称为“离线”阶段)则是次要的。不过,更新编译后的数据库在某些应用中也可能至关重要。
更正式地说,目标是使用属于语言LQ的查询q
超级会员免费看
订阅专栏 解锁全文
9万+

被折叠的 条评论
为什么被折叠?



