1701741366
1701741367
(9)一个不赌钱、食欲不旺盛的人,总是有活力的;
1701741368
1701741369
(10)一个真正热心的、有活力的逻辑学家,没有丢钱的危险;
1701741370
1701741371
(11)一个食欲旺盛的人不需要去开出租车,如果他是真正热心的;
1701741372
1701741373
(12)一个郁闷的、没有丢钱危险的赌徒,在凌晨4点以前不睡觉;
1701741374
1701741375
(13)一个丢了钱、晚餐不吃猪排的人,最好去开出租车,除非他在凌晨5点起床;
1701741376
1701741377
(14)一个在凌晨4点以前睡觉的赌徒不需要去开出租车,除非他食欲旺盛;
1701741378
1701741379
(15)一个郁闷的、没有丢钱危险的并且食欲旺盛的人,是一个赌徒。
1701741380
1701741381
我们习惯于把逻辑看作某种自然产生的东西。我们期望解决一个逻辑问题而无须认真考虑问题的答案是怎么来的。在卡罗尔的问题中,命题的数量太多了,而且非常不自然,无法立刻掌握。所以我们不得不将其诉诸算法,例如卡罗尔介绍的树形图和术语(或者借助于计算机)。
1701741382
1701741383
猪排问题有11个布尔变量(热心的、吃猪排、是赌徒、凌晨5点起床、丢了钱的、食欲旺盛的、很可能丢钱的、有活力的、是逻辑学家、最好去开出租车、凌晨4点以前不睡觉的)。对于其中任意一个变量,都有211=2048种不同的假说。
1701741384
1701741385
猪排问题要求给出一个结论,看起来这个问题更像是科学研究。这似乎与可满足性问题完全不同,可满足性问题是由“是”和“否”来回答的。然而,可满足性问题的这个特征并不妨碍它成为一种通用方法。就像“20个问题”这种游戏所展示的,任何信息都可以通过一系列“是—否”问题表达出来。任意一个逻辑问题(无论它提出的问题是什么)都可以表达成一个或多个“是—否”问题。
1701741386
1701741387
比方说,我们想检验这一结论:一个吃猪排的人是有活力的。解题的第一步是把原来的15个前提转换为可满足性问题的形式。这些前提是相互一致的吗?应当是,否则题就出错了。第二步,我们把待检验的结论作为第16个命题添加进去。现在这个更新之后的命题集合中的各命题依然是相互一致的吗?(这是第二个可满足性问题。)如果是一致的,那么这个新命题至少是被最初的前提允许的。
1701741388
1701741389
但这并不意味着,根据前提就可以有效地推出这个结论。你可以检验一下“月球是由绿奶酪构成的”这个命题,把它作为第16个命题,你会发现,整体也是可满足的——当然是这样。由于它对于逻辑学家、赌徒以及其他猪排问题中的胡言乱语只字未提,所以它不可能导致任何一个矛盾。
1701741390
1701741391
为了确定一个假说是原来的前提所要求的,我们需要引入第三个可满足性问题。把这个假说替换成它的否定形式,即它的负命题:“并非所有吃猪排的人都是有活力的。”把这个负命题作为第16个前提加进去,看看命题集合是否一致。
1701741392
1701741393
如果一个假说和它的负命题加进去之后都会不引起矛盾,那么很明显,这个假说与命题集无关的。“月球是由绿奶酪构成的”和“月球不是由绿奶酪构成的”这两个命题都与猪排问题一致,所以二者都不能有效地推论出来。
1701741394
1701741395
如果一个假说与前提一致,但是它的负命题与前提不一致,那么这个假说就是从前提出发可以推出的正确结论。(如果一个假说与前提不一致,但是它的负命题与前提一致,那么这个负命题就是可以有效推出的。)[4]
1701741396
1701741397
可满足性问题,就像所有的一般性问题一样,有时很简单。即使布尔变量和语句的数量极其巨大,问题也可能是简单的。因为我们并不总是需要检验所有的可能性,有时甚至不需要检验大多数的可能性。许多命题经常可以通过连锁推理连接起来。如果如此,那么这般,并且如果这般,那么如此……这种推理在梳理数量巨大的命题时极具威力。
1701741398
1701741399
连锁推理中的每一个连接都可以表达为“如果……那么……的形式,其中包含两个未知的布尔值。如果一个可满足性问题的每一个命题都恰好包含两个布尔变量,此时问题是简单的。解决这类问题有高效率的方法,比检验每一个可能的假说以发现符合要求者要快得多。
1701741400
1701741401
并不是所有的逻辑问题都如此简单。当命题包含3个或更多未知的布尔值时,不存在明显比排除法迅捷的通用解法。卡罗尔的猪排问题显然很困难,因为该问题的前提涉及三到四个布尔变量(逻辑学家、吃猪排的人、丢钱的人等)。
1701741402
1701741404
电梯问题
1701741405
1701741406
一旦命题涉及三个未知量,问题难度便会上升——这种情况在“电梯问题”中表现得很明显。
1701741407
1701741408
假设电梯中有6个人,则或者其中至少有三个人互相认识,或者至少有三个人互相都不认识。你能证明这总是正确的吗?
1701741409
1701741410
这是正确的,但是难以用“逻辑方法”证明。关于“认识”和“不认识”的常识推理没有任何用处。我们不能从“B认识C”推出“A认识B”,这道题没说两个人之间是否认识,它说的是三个人之间的关系。
1701741411
1701741412
此类电梯问题有很多版本。例如,在一次聚会上,有6个客人被错误地安排在一张桌上,其中有些人因为宿怨而互相不说话。已知任何三个客人都不构成两两互相说话的关系,证明存在三个客人,这三个人中谁与谁都不说话。另一个比较淫秽的版本这样说:在大学宿舍里任选6名住户,则或者至少有三个人,其中任两个人都在一起睡过,或者至少有三个人,其中任两个人都没在一起睡过。
1701741413
1701741414
电梯问题展示了一个被称为“图论”的数学分支。图论(经常是隐蔽地)出现于许多问题中,娱乐性的问题和实际问题都有。最著名的问题之一就是“气、水、电”问题,此题因亨利·欧内斯特·杜登尼的介绍而普及,杜登尼在19世纪与20世纪之交为报纸和杂志写谜题和谜语。这个问题的最初版本的答案是,答案不存在。把三个点和另外三个点连接起来,任意两条线都不相交——这是不可能的。在一个此类的谜题正风靡时,没有人太在意一个心地单纯的读者是否会在一个无解的问题上耗费几个小时甚至几天时间。当然,在上一章中华生和福尔摩斯给出的巧妙的解答不在此列!
1701741415
[
上一页 ]
[ :1.701741366e+09 ]
[
下一页 ]