[英]How does the Backward Chaining algorithm work in first order logic?
我可以得到for each
循环的解释,因为它对我没有多大意义。 特别是,STANDARDIZE-APART()和第二个最后一行做什么?
这是FOL_BC_ASK(KB,[p1...,pn|REST(goals)],COMPOSE(@',@)) U ans
r是知识库中的FOL句子。
除其他外,FOL句子可能包含量词和变量。
对于任何FOL句子,都有一种简化形式,有各种形式,如CNF(Conjunctive Normal Form)(Horn子句类似),这个算法可以操作。 CNF样式的简化仅限于特定的,有限的一组操作符,并且通常导致与原始操作符相比的扩展语句(有时显着更长)。 尽管允许变量,但CNF不使用量词。
量词是“全民”(通用)和“存在”(存在主义)的运算符。 每个量词都采用变量(或变量列表)和单个(子)语句,在该语句中量化引入的变量(在列表中)。 这些变量被认为是绑定的, 但仅限于一个子语句的范围 (在量化表达式中)。 因此,量词隐含地引入了新的范围(对于其变量) 。
CNF不允许明确表示量词,也不为变量提供多个或单独的范围! 因此,不仅必须消除量词,还必须消除变量的范围(或折叠到单个范围)。 (范围很容易消除,因此首先要做。)
当单个语句包含多个量词时,在FOL中完全可以接受相同的变量名称在具有不相交范围的量词中重用。 因此,以下单个(尽管复合)语句在FOL中是可接受的:
(there-exists(x) (Father(x,Joe))) AND (there-exists(x) (Mother(x,Joe)))
其中有一些x是乔的父亲,而且还有一些x(不同的x)是乔的母亲。
在上面的语句中,变量x被引入两次,尽管它的两个不同用法实际上是不相关的! 但是,因为x被使用了两次,所以当我们读取和解释或操作和转换这个语句时,我们必须保持知道两个独立的范围(否则我们的转换有时会无法等效)。 这通常适用于任何FOL语句,这意味着我们需要了解范围,以便解释和操纵一般FOL语句。
以下语句从逻辑角度来看是等效的,但不使用x两次:
(there-exists(x) (Father(x,Joe))) AND (there-exists(y) (Mother(y,Joe)))
如果我们保证我们的(转换的)语句没有重叠变量(即在不相交的范围内没有两个相同的变量名使用),我们不再需要考虑两种使用量化引入的两个独立范围。 我们可以有效地认为这些陈述的变量只有一个范围。 这是STANDARDIZE-APART的区分性的本质,通过确保跨范围的变量不重叠(通过赋予它们每个唯一的名称),我们不再需要在单个语句中单独考虑多个范围(可能有多个量词)。
(如果将两个过程或方法或语句块合并为一个,则在Java中执行相同的操作:您需要确保所选变量名称在它们之间是唯一的,这样它们就不会发生冲突。)
STANDARIZE-APART正在转换为CNF,这需要将多个范围合并为一个,并且消除量词(以及替换某些运算符,如“and”,“or”和“和”等对应词的含义和等同性)不”)。
存在量词被消除,有利于skolem函数如下:在第二(和更高)阶逻辑中,我们可以量化函数(例如,存在(f),使得f()......),但是,在一阶逻辑中,我们无法量化功能。 虽然我们无法量化FOL中的函数,但我们仍然可以使用函数。 在FOL中,简单地假设函数存在 。 (CNF和喇叭子句形式也尊重函数的假设存在。)Skolemization是存在量化的替代,其中存在量化变量(在子语句中出现的任何地方)被新构造和适当参数化的函数替代(为每个这样的存在量词替换构成一个新函数,所提供的参数与其他封闭量词的上下文有关。 简单地假设这个新引入的函数存在而不需要存在量词。 消除了存在量化变量的使用(支持新函数),我们现在可以省略存在量化算子本身并保留修改后的子语句。
通用量词被提升到语句的最外层(范围),可以简单地被消除(1)因为范围已经崩溃,(2)因为不再存在任何存在量词(因为已经通过skolemization消除了这些量)和(3)因为在各种CNF /喇叭形式中,所有变量都被简单地假设为具有通用量化。
统一是一种组合技术,在这种技术中,如果我们将关于相同关系R的两条(另外是单独的)信息组合在一起,我们就会考虑我们所知道的信息。信息片段采用变量和常量参数的形式来表达关系。 与标准化不同,统一并不总是成功,也就是说,它并不总能揭示更多信息。
最后一行是后向链接搜索的下一级别的后向链接的递归调用,其中已经被寻址的一个目标(例如,CNF语句)被替换为所得到的子目标。 通过解决,我的意思是统一成功,统一成功意味着我们至少名义上提升了我们搜索引擎的状态,这一进步值得进一步探索(另一个层次)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.