打字猴:1.701741212e+09
1701741212 推理的迷宫:悖论、谜题及知识的脆弱性 [:1701739686]
1701741213 复杂性
1701741214
1701741215 上一章介绍了“UND”谜题,这道题无法用“合乎逻辑”的方法解决。福尔摩斯对这道题的抱怨显示了一个相反的问题类型,与那些可以用逻辑程序处理的问题相对。连锁推理式的按部就班的程序,在这里无法应用。
1701741216
1701741217 “UND”谜题涉及一个被称为“复杂性理论”的数理逻辑分支。复杂性理论在客观、抽象的程度上研究“一个问题会困难到什么程度”。计算机程序员根据经验发现,用计算机处理某些类型的问题要比处理其他类型的问题困难得多,这一发现催生了复杂性理论。
1701741218
1701741219 如果复杂性理论只应用于计算机,那它的用处就小多了。实际上,这个理论同样可以应用于人类解决问题的过程。一个人解决问题必须依赖方法,方法(而非硬件)正是复杂性理论关注的焦点。
1701741220
1701741221 寻找一个客观标准来衡量一个问题的困难程度,达到这个目标看起来也许是徒劳的。大多数在真实世界中出现的问题都是这样:一些人觉得容易,另一些人觉得困难。许多问题的解决依赖于在问题和其他的特定事实之间建立的各种各样的思想联系。你或者能建立起联系,或者不能建立起联系。
1701741222
1701741223 某些谜题需要建立特定的思想联系(例如华生提出的分割土地问题),从某种角度说,这类问题是最困难的一类逻辑谜题,因为如何去解一点儿道理也讲不出来。换一个角度来说,这类问题又是最容易的——一旦联系建立好就一点儿难度也没有了。
1701741224
1701741225 复杂性理论最关心这样一类问题:即使存在程序化的解法,问题也是难解的。有些问题在本质上是困难的,不仅人类无法解决,科学幻想中遥远的未来计算机也解决不了,但这些问题是可解的,它们不是悖论,也不是没有解的骗人的问题。
1701741226
1701741227 复杂性理论的一个核心概念是“算法”。算法是处理某问题的一个确定的、机械的程序。它是一套完备的指令,在执行过程中,洞察力、直觉和想象力都是不需要的。所有计算机程序都是算法。做蔬菜汤的菜谱、装配自行车的操作指南、许多简单游戏的规则等,这些都是算法的例子。在小学里教的算术规则也是算法。我们知道,当我们把两个数相加时,无论数有多大,应用这些规则总会得出正确的答案。如果我们的答案错了,原因一定是误用了规则。没有人会怀疑算法本身。
1701741228
1701741229 算法必须是确切的。“如果你在树林里迷路了,保持冷静,调动常识,走一步看一步。”这是建议而非算法。童子军的条例则不同:如果你在树林里迷路了,一直往低处走,直到溪流旁,然后顺流而下,最后你会到达一个城镇。这则是一个算法。
1701741230
1701741231 给出一个有效的算法是很难的。未预料到的情况将会发生,童子军的算法可能失效,这种情形不难想象。你有可能身处于沙漠盆地,一直往低处走会到达一个干涸的湖底,却找不到溪流。在地球上的某些偏远地区,有的溪流通向一个内陆湖或者海洋,附近历来没有人类的住所。更糟的情况是,如果你发现自己处于一个非常平坦的平原上,不存在明显的“低处”,此时,算法对你一点儿用也没有。一个理想的算法应当在任何环境下都有效。
1701741232
1701741233 我们并非总是依赖算法。有些厨师按菜谱炒菜,还有些厨师愿意自由地即兴操作,以至于他们声称无法描述一道菜是怎么炒的。两种方法无所谓谁对谁错,但是只有算法化的方法值得我们分析。
1701741234
1701741235 推理的迷宫:悖论、谜题及知识的脆弱性 [:1701739687]
1701741236 说假话的和说真话的
1701741237
1701741238 逻辑谜题是我们用以理解世界的演绎推理的缩影。我们来看一下,如何用程序化的方法解决一个逻辑问题。逻辑谜题中最古老的类型之一建立于如下背景:在一个遥远的海岛上有一些居民,其中有些人总说真话,还有些人总说假话。他们分别属于两个部落:说真话者的部落,其成员总说真话;说谎者的部落,其成员总说谎话。必须强调的是,说谎者并不狡诈,他们不会采用时而说真话的办法来掩盖一个谎言,他们说出的每一句话都与真话完全相反。两个部落的服饰是一样的,对于外地人,也没有其他线索能够区分某个人属于哪个部落。也许最常被重复的“说真话—说假话”的问题是纳尔逊·古德曼(此人因提出绿蓝—蓝绿问题而著名)设计的一个问题。这个问题于1931年发表于《波士顿邮报》的谜题专栏,但是没有指明其发明者。我们把这个问题稍加变动,表述如下:
1701741239
1701741240 在一个“说真话–说假话”的海岛上,你遇到三个人,分别是艾丽斯、本和查理。
1701741241
1701741242 你问艾丽斯,她是说谎话的还是说真话的。她用方言作答,你没听懂。
1701741243
1701741244 然后你问本,艾丽斯说的是什么。本会说英语,他说:“艾丽斯称自己在说谎。”你又问本关于查理的情况,本回答道:“查理也是说假话的。”
1701741245
1701741246 最后,查理补充说:“艾丽斯是说真话的。”
1701741247
1701741248 你能推出这三个人各自属于哪个部落吗?
1701741249
1701741250 推理的迷宫:悖论、谜题及知识的脆弱性 [:1701739688]
1701741251 谁在说谎?
1701741252
1701741253 在演绎推理中,基本原则与主观性的因素无关;在“说真话—说假话”的问题中,也是如此。假如这个问题这么开头:我们的主人公从飞机上跳伞,落到一个海岛上——这不会产生任何影响。然后给这三个人换上不同的名字,也不会有什么不同,只不过答案中出现的名字变了。这个问题的最关键之处在于发现了一种逻辑联系,这是唯一重要的。
1701741254
1701741255 我们只关心一件事:确定这三个人所属的部落。在解决算术问题时,我们经常利用“x=12+5y”之类的公式。其中x和y是变量,表示未知的量,在一个可能的变化范围内取值。解决这类问题的关键,在于确定x和y必须取什么特定的值。逻辑问题也可以用同样的方法处理。在这个逻辑谜题中,有三个未知量:艾丽斯是否说真话,本是否说真话以及查理是否说真话。
1701741256
1701741257 当然你也可以说,未知量是艾丽斯、本、和查理是否说谎话。这不会带来什么差别。不过我们对这个思路不加评判,我们仅仅以艾丽斯、本和查理是否说真话为未知量。这样,我们就得到了三个简单的命题,其真假未定:
1701741258
1701741259 艾丽斯是说真话的。
1701741260
1701741261 本是说真话的。
[ 上一页 ]  [ :1.701741212e+09 ]  [ 下一页 ]