句对进行归结,不仅要耗费许多时间,而且还会因为归结出了许多无用的归结式而过分扩张了子句集,从而浪费了时空,并降低了效率。解决问题的关键在于选择有利于导致快速产生空子句的子句对进行归结。归结策略删除策略:限制策略:通过删除某些无用的子句来缩小归结的范围通过设置选用条件对参与归结的子句进行种种限制,减少归结的盲目性,如支持集、线性输入、单文字子句优先、祖先过滤等策略。广度优先策略广度优先是一种穷尽子句比较的复杂搜索方法广度优先的归结过程:设初始子句集为S0,归结过程如下:从S0出发,对S0中的全部子句作所有可能的归结,得到第一层归结式,把这些归结式的集合记为S1。2.用S0中的子句与S1中的子句作所有可能的归结,得到第二层归结式,把这些归结式的集合记为S2。3.用S0和S1中的子句与S2中的子句作所有可能的归结,得到第三层归结式,把这些归结式的集合记为S3。如此继续,直到得到空子句。例:子句集S={I(x)R(x),I(a),R(x)L(y),L(a)}S:S0:R(a)I(x)L(x)I(x)R(x)I(a)R(x)L(y)L(a)R(a)S1:L(a)L(a)I(a)I(a)NIL广度优先策略归结出了许多无用的子句,既浪费时间,有浪费空间。容易引起组合爆炸。P(A)当问题有解时,用广度优先策略归结能保证找到最短路径。因此,它是一种完备的归结策略。支持集策略要求每依次参加归结的两个亲本子句中,至少应该有一个是由目标公式的否定所得到的子句或它们的后裔。支持集策略是完备的,即当子句集不可满足时,由支持集策略一定能够归结出一个空子句。例:子句集S={I(x)R(x),I(a),R(x)L(y),L(a)}S:S0:R(a)I(x)L(x)I(x)R(x)I(a)R(x)L(y)L(a)S1:L(a)L(a)I(a)NILS3: