2011年3月29日

二难推理的反例

与黄繁讨论,他给出了一个用两个开关控制一盏灯的电路图,这种电路经常用于楼梯设计,可以实现如下效果:上楼时按开关 A,灯亮,上完楼按开关 B,灯灭。第二个人再上楼按开关 A,灯亮,上完楼按开关 B,灯灭。下楼也一样。受经典电路图局限,我认为如果只用两个开关,或每个开关只有两个状态,那么不可能实现这个效果。结果他给出了如下的电路图。受这个电路图启发,我认为可以给出经典逻辑中一个常用的有效推理的反例。

在经典逻辑中,如下推理是有效的:

(1) $ (A\rightarrow C)\land (B\rightarrow C)\vdash (A\lor B)\rightarrow C$

这种推理又叫做二难推理,即当要证明某个析取式蕴涵某个结论时,只需要分别证明两个析取枝蕴涵该结论。在条件句逻辑中,一般以 (CA) 命名上述推理所对应的公理:

(CA) $ (A>C)\land (B>C)\rightarrow (A\lor B)>C$

(CA) 也为通常的条件句逻辑所接受。但可以举出如下反例:



在这个反例中,(1) 中的 A, B, C 分别代表:switch 开关 A,switch 开关 B 和 C 亮。直观上,(1) 前提真而结论假。前提真容易理解,结论假的原因是,“switch A 或 switch B”也包括同时 switch A 和 B,而此时灯不会亮。

利用电路图来给出经典逻辑推理的反例,是一种非常直观而有效的方法。例如,利用标准的包含两个开关的串联电路就可以给出如下推理的反例(参见 Priest 的 Introduction to Non-classical Logic):

(2) $ (A\land B)\rightarrow C\vdash (A\rightarrow C)\lor (B\rightarrow C)$

是不是可以构造一种非经典逻辑,使得该逻辑能够刻画所有基于电路图的推理呢?或者电路图是不是可以当作非经典逻辑的试金石?类似于计算复杂性问题中的 benchmark。

与沈榆平讨论时,他指出,上述反例包含了人工智能领域三个基本难题:框架(frame)问题、衍生(ramification)问题和并发(concurrency)问题。如果真是这样,那么这个反例还是有点搞头的。

8 条评论:

  1. 人工智能的三個基本難題具體是什麼難題?有相關資料閱讀嗎?(DHM)

    回复删除
  2. 试试能不能评论……

    回复删除
  3. 不同意
    我觉得那个电路图的前提应该是(A且非B蕴含C)且(非A且B蕴含C)
    或者你也可以这样:
    A表示开关1的开关朝上,B表示开关2的开关朝上
    那个电路可以表示为:
    (A双蕴含B)蕴含C

    回复删除
  4. 多谢评论。我觉得前提不需要加上“非B”或“非A”之类,因为这样的条件你是加不完的,否则你还要加“灯泡是正常的”,“电线不是坏的”,“电池是有电的”等等。A > C的意思是“A成立而其他条件不变的情况下C成立”,而“其他条件不变”包括了“非B”。你认为呢?

    回复删除
  5. 1.我觉得'非B'之类的有必要加上,而什么‘电池是有电’的不必加上。因为在那个语境中根本就没有提到电池有没有电或其他。也就是说,这个逻辑里有且只有3个变元ABC,这个逻辑是完全限制在这上面的。其他的不在这个语境里的东西是不用考虑的,有点像缺省逻辑中的缺省项。而'非B'是必须要加上,因为B是是语境中的一个提到的变元,在论述命题时必须要考虑到它。

    2.还可以更精确一点讨论A>C命题的意义。switch是一个动作,是在一个时间点完成的,灯‘亮’可以指‘灯在下一个临近的时间段内是亮的’或‘灯由不亮变亮’。它都要求灯在switch动作之前是不亮的(否则switch动作会灭灯)。这可以当作一个隐含的前提,如果你指的就是你在图片上画的那个时刻的话,那A>C是可以接受的。但是,如果考虑‘A且B’,注意在A发生后灯已经亮了,这时候那个隐含的前提就不成立了,再去执行switch B的动作,已经不能从逻辑得到C。如果把这样的隐含前提给加进去,也是可以消解悖论的。

    3.即使能反驳以上两点,并为这个‘电路图'逻辑作出辩护,仍然不能说明这是一个二难推理的反例,甚至用同样方法构造出的其他反例也有问题。因为根本没有必要用经验知识来证明或反驳形式工具的合理性。假设某个人想反驳算术命题'1+1=2',他只需要把两杯水倒在一个杯子里,然后说”看,我构造了一个1+1=2的反例“,然后提出一种能描述水和杯子的数学;或者某人想说明’10<1‘,可以指着时钟这样说”下午1点在上午10点后面“,然后发展一种描述钟点的序关系。如果任由如此,那么任何用形式语言写出来的命题都可以找到反例了。这些反例都是由于对符号的不恰到的解释造成的。

    4.从应用的角度上说,我也不认为这种逻辑能加深我们对电路图的认识。这种电路图是完全可以用简单的命题逻辑描述的,只要对符号的应用得当。不必要再去发展另一种值得怀疑的逻辑了。

    回复删除
  6. 第3点比较有意思。或许我的表述不太恰当,用“反例”这个词不准确。这个的例子并不是要否认经典逻辑,而只是说明经典逻辑不能很好的用于日常语言推理。为1+1=2找反例并不像你说的那样没有意义,可能会因此产生新的加法定义,如产生关于矢量的加法运算。同样,我们有用于算术的乘法,也有用于矩阵的乘法,为什么我们就不能在用于数学的逻辑运算之外构造用于其他领域的逻辑运算呢?

    回复删除
  7. 经典逻辑有反例这种说法会不会引起歧义呢?毕竟说经典逻辑适用范围有限是一回事,说经典逻辑有反例(即有一个模型不满足经典逻辑系统)是另一回事。
    这里的例子是用的命题逻辑系统,并且显然经典逻辑系统不适应于这里,因为switch开关a和switch开关b根本就不是命题。

    回复删除
  8. “经典逻辑有反例”的说法的确不妥,更好的说法是经典逻辑不能很好的适用于自然语言推理。这和说“牛顿力学”有反例意思类似。switch开关a可以改成命题形式:a is switched。所以这不是经典逻辑不适用于这里的原因。更本质的原因是自然语言中的条件句不等于经典逻辑中的实质蕴涵。

    回复删除