[今天我们思考15]抽象在类比联想中的作用一例

45 views
Skip to first unread message

pongba

unread,
May 7, 2008, 1:13:32 AM5/7/08
to TopLanguage

《Psychology of Problem Solving》里面举了一个例子,说明了对问题本质的抽象能够增加后来遇到本质类似(但表面不类似)的题目的时候联想到前一道题目的可能性。我在这里提到了这个例子,摘录如下:

《Psychology of Problem Solving》的第11章举了这样一个例子:先让被试(皆为大学生)阅读一段军事材料,这个材料是说一小撮军队如何通过同时从几个不同方向小规模攻击来 击溃一个防守严实的军事堡垒的。事实上这个例子的本质是对一个点的同时的弱攻击能够集聚成强大的力量。然后被试被要求解决一个问题:一个医生想要用X射线 杀死一个恶性肿瘤,这个肿瘤只可以通过高强度的X射线杀死,然而那样的话就会伤及周围的良好组织。医生应该怎么办呢?在没有给出先前的军队的例子的被试中 只有10%想到答案,这是控制基线。然后,在先前学习了军队例子的被试中,这个比例也仅仅只增加到30%,也就是说只有额外20%的人"自动"地将知识进 行了转移。最后一组是在提醒之下做的,达到了75%,即比"自动"转移组增加了45%之多。这个例子说明,知识的表象细节会迷惑我们的眼睛,阻碍我们对知 识的运用,在这个例子中是阻碍问题之间的类比。

不过这个例子稍微有点人为的味道。下面则是一个更为真实的例子:

问题:求N个数中最大的K个数。

分析:首先很多人都能够联想到一个类似的问题:求N个数中的最大数。不过,关于后者的表面知识(譬如算法的详细过程和细节)是不能直接借用的。这很大程度上会阻止利用既有问题的解来解决新的问题。对算法细节了解的越多越细,就越是妨碍类比联想。

然而,如果在当时吸收第一道题目的知识的时候就进行了抽象,提取出了其中的本质:只要有一个数小于任何另一个数,它就肯定不是最大的了,从而可以淘汰。就不难将其运用到就求最大K数上:只要有一个数小于任何K个数,它就肯定不属于最大K个数之列了,从而可以淘汰。这里的抽象元素有两个,分别是:"淘汰法",以及"一个淘汰的准则"。(抽象越是含糊越好(只要不过于含糊),因为基本上,越含糊的抽象,越是接近本质,联想空间也越大。也许这里可以套用爱因斯坦的一句话:抽象应该尽量含糊,只要不过于含糊。)

(当然,这个题目还有其它解法。)

这样的例子还有很多,这里只举一个简单且第一时间浮现在脑子里的。

你遇到过这样的情况吗?

--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba

hack...@sina.com

unread,
May 7, 2008, 10:39:52 PM5/7/08
to TopLanguage
照这样说,我这个只要明白了原理就不看代码的毛病,似乎还是好事了。
呵呵。

On 5月7日, 下午1时13分, pongba <pon...@gmail.com> wrote:
> 《Psychology of Problem
> Solving》里面举了一个例子,说明了对问题本质的抽象能够增加后来遇到本质类似(但表面不类似)的题目的时候联想到前一道题目的可能性。我在这里<http://blog.csdn.net/pongba/archive/2008/04/18/2302905.aspx>
> 提到了这个例子,摘录如下:
>
> > 《Psychology of Problem
> > Solving》的第11章举了这样一个例子:先让被试(皆为大学生)阅读一段军事材料,这个材料是说一小撮军队如何通过同时从几个不同方向小规模攻击来
> > 击溃一个防守严实的军事堡垒的。事实上这个例子的本质是对一个点的同时的弱攻击能够集聚成强大的力量。然后被试被要求解决一个问题:一个医生想要用X射线
> > 杀死一个恶性肿瘤,这个肿瘤只可以通过高强度的X射线杀死,然而那样的话就会伤及周围的良好组织。医生应该怎么办呢?在没有给出先前的军队的例子的被试中
> > 只有10%想到答案,这是控制基线。然后,在先前学习了军队例子的被试中,这个比例也仅仅只增加到30%,也就是说只有额外20%的人"自动"地将知识进
> > 行了转移。最后一组是在提醒之下做的,达到了75%,即比"自动"转移组增加了45%之多。这个例子说明,知识的表象细节会迷惑我们的眼睛,阻碍我们对知
> > 识的运用,在这个例子中是阻碍问题之间的类比。
>
> 不过这个例子稍微有点人为的味道。下面则是一个更为真实的例子:
>
> 问题:求N个数中最大的K个数。
>
> 分析:首先很多人都能够联想到一个类似的问题:求N个数中的最大数。不过,关于后者的表面知识(譬如算法的详细过程和细节)是不能直接借用的。这很大程度上会阻-止利用既有问题的解来解决新的问题。对算法细节了解的越多越细,就越是妨碍类比联想。
>
> 然而,如果在当时吸收第一道题目的知识的时候就进行了抽象,提取出了其中的本质:只要有一个数小于任何另一个数,它就肯定不是最大的了,从而可以淘汰。就不难将-其运用到就求最大K数上:只要有一个数小于任何K个数,它就肯定不属于最大K个数之列了,从而可以淘汰。这里的抽象元素有两个,分别是:"淘汰法",以及"一个-淘汰的准则"。(抽象越是含糊越好(只要不过于含糊),因为基本上,越含糊的抽象,越是接近本质,联想空间也越大。也许这里可以套用爱因斯坦的一句话:抽象应该-尽量含糊,只要不过于含糊。)

张鹏程

unread,
May 7, 2008, 11:10:44 PM5/7/08
to pon...@googlegroups.com
我到不觉得那是什么好事,我就总不看代码,结果要写的时候,总得去查,脑子里的东西太少了。
 
不过,刚才年的时候,我应该是那20%里的,但这只是来自于中国的考试制度的本能想法。
pongba的这个题我当时也想了,不过,首先就想到用排序,我觉得比你那样比来比去的要高效,不过没有实际算过。
 
我道觉得,这是个总结的问题。知道总结的人才不会因为知道细节而找不到方向。而不是因为了解了太多的细节,才阻碍了思考吧。

 
在08-5-8,hack...@sina.com <hack...@sina.com> 写道:

pongba

unread,
May 8, 2008, 1:12:26 AM5/8/08
to pon...@googlegroups.com


2008/5/8 张鹏程 <holme...@gmail.com>:

我到不觉得那是什么好事,我就总不看代码,结果要写的时候,总得去查,脑子里的东西太少了。
 

当然是要写一点的,但对于算法来说,伪码(当然,除非是写产品代码)写一写就足以确认没有什么细节遗漏,及其正确性了。

不过,刚才年的时候,我应该是那20%里的,但这只是来自于中国的考试制度的本能想法。
pongba的这个题我当时也想了,不过,首先就想到用排序,我觉得比你那样比来比去的要高效,不过没有实际算过。
 

这个题目的各种答案参考附件。《编程之美》的一节。
此外,"一下就想到关键"并不总是好事,我的感受是,如果把以前一下就想到答案的问题再拿出来回顾,往往会发现新的思路,而更多的一般性方法往往就蕴含在那些其他思路中。人在解题的时候思维往往是很被动的,首先理解问题,然后循着头脑中第一个冒出来的线索往下走,走了一步之后再循着看似最可能的步骤往下走,如果这条路走到头还是没有头绪,很多人就没办法了。如果走出了结果,对很多人,包括我以前,解题的整个过程也就认为是大功告成了。
 
我道觉得,这是个总结的问题。知道总结的人才不会因为知道细节而找不到方向。而不是因为了解了太多的细节,才阻碍了思考吧。

如何总结,在什么层面上总结。是个问题。不是光说一句总结就可以的。不同的方法总结,得到的效果不一样。
细节也有不同,有的细节是重要的,更具一般性的,有些细节则是技术性的,irrelevant的。如何提取出本质的东西,是重要的。
细节的了解未必阻碍思考,我并没有这么说。细节并不是只有一种。对表面(非本质)细节的关注,是的确会阻碍思考的。参考《Psychology of Problem Solving》
寻找最大的K个数.pdf

张鹏程

unread,
May 8, 2008, 1:41:50 AM5/8/08
to pon...@googlegroups.com
我觉得写代码还有个好处,就是在实现的过程中,会发现你理解原理时的一些没有被理解的地方。
也许和我学物理有关系,我总觉得理解是一回事,做出来又是另一回事了。因为理论总是在某种程度是简单化(或复杂化)。
 
直觉这东西总是会害人的,它虽然让你在最短的时候里做出最多的通常是正确的事,但也有可能让你做出完全错误而自己却没有意识到的事。
所以,时常的反省是很有用的,呵呵。(难道这就是重构?^_^)
 
细节是一般性的基础,所以我觉得细节还是要注重的。问题是这个度的把握----中国传统中最难以把握的地方----是一个仁者见仁的问题。
 
在08-5-8,pongba <pon...@gmail.com> 写道:

pongba

unread,
May 8, 2008, 3:13:16 AM5/8/08
to pon...@googlegroups.com


2008/5/8 张鹏程 <holme...@gmail.com>:

我觉得写代码还有个好处,就是在实现的过程中,会发现你理解原理时的一些没有被理解的地方。
也许和我学物理有关系,我总觉得理解是一回事,做出来又是另一回事了。因为理论总是在某种程度是简单化(或复杂化)。
 

我完全同意^_^ 事实上,我非常仔细的想过为什么会出现这种现象,即所谓的"说说容易,做起来难"。
本质上,说的时候(在脑子里面构想的时候)我们是在试图用大脑去计算世界,但这个计算永远都受到我们大脑中掌握的知识的限度限制,我们几乎不可能拥有关于某件事情的完整的所有的约束。这个计算必然是模糊的,很多时候是捷径的。而一旦真正落实,就会发现新的constraints冒出来。举一个最日常的例子,如果你有两把钥匙,一把在房间里,一把在工作场所,某天早上你房门时想,反正工作地方也有钥匙,就不必带钥匙出门了。于是你除了卧室顺手带上房门(上了保险),结果出大门的时候却发现被房东反锁了,要钥匙才能打开... (这是我的真实事件改编)。
事前在脑袋里计算,几乎肯定是要忽略某些现实约束的。当我们想"好,现在有A,而且有B,所以我们有R"的时候,实际上我们是在想"好,现在有A,有B,而且没有任何对A和B的不利其他因素C,所以我们有R"。即A&B未必在现实中就真能=>R,要成立,还必须没有任何其他反对A或B的因素才行。而后者,几乎是绝对难以想到的。
这样的例子还有很多,基本结构都是一样的。
 
直觉这东西总是会害人的,它虽然让你在最短的时候里做出最多的通常是正确的事,但也有可能让你做出完全错误而自己却没有意识到的事。
所以,时常的反省是很有用的,呵呵。(难道这就是重构?^_^)

这个,相反,我认为所谓的直觉是创造力的源泉之一(不过也要看什么样的直觉,如果是思维定势那就不行了)。有句老话叫大胆假设,小心求证。实际上,在conceive一个方案的时候随便怎么联想,发散,都没有问题,而且是好的。只要求证的时候细心,批判,就行了。
有一阵子我对critical thinking非常着迷,在看东西的时候非常注意逻辑上的漏洞,这当然有很大作用。但这种思维缺乏创造性,建设性,它只能对既有的事情进行细查和检验。所以现在我又在学如何有效进行联想。

张鹏程

unread,
May 9, 2008, 1:48:19 AM5/9/08
to pon...@googlegroups.com
显然pongba和我所说的直觉不是一个东西。我说的直觉是让我们直接做出判断而省去思考的那种东西。呵呵。
我也非常同学你说的"大胆假设,小心求证"。不过,小心是不是意味着要付出更多的时间呢?

 
在08-5-8,pongba <pon...@gmail.com> 写道:
Reply all
Reply to author
Forward
0 new messages