科学研究的方式



所有跟贴·加跟贴·新语丝读书论坛http://www.xys.org/cgi-bin/mainpage.pl

送交者: 松鼠 于 2005-9-30, 19:19:21:

科学研究的方式

这个星期网上最热的是王垠的退学说明。我看到他推广LaTeX不遗余力的时候,心中一动,找到书签中的关于LaTeX的网站,因为我记得那个网站也是清华的。果然把网址http://learn.tsinghua.edu.cn/homepage/2001315450/tex_frame.html的最后一截删掉,http://learn.tsinghua.edu.cn/homepage/2001315450/就是这个家伙的网站。

从他的“paper, paper, 还是paper”开始讨论。

我主要进行集成电路布线算法的研究。看起来高深,其实是很简单的问题,一个平面上有一些点是电路里的电极,现在需要用铜线把它们连起来,怎么样让连线的长度或者时延最短?


我不明白他为什么说这是个“简单的问题”。这是一个标准的旅行商问题(TSP),只有随指数曲线增长的算法可以真正解决。对于这种问题,我们只能用一些近似算法,在有限的时间内找到可以接受的结果,就是最大的胜利。另一种方法就是找到各种特殊情况下的优化结果。

然后他改进了一片论文,得到一个不错的结果,但是“我认为我只是在挑别人的毛病时意外想出了一个改进的算法,并不会对将来的研究有什么启发。虽然程序快了一些,但是很少有那么大的线网需要这么快的算法,而且几倍的提高在我眼里不算是一个理论上的改进,而且这个算法不能推广到其他距离空间,可扩展性很低。”,所以不想写论文。其实写论文是与科学界交流的方式。你做出了东西,如果你不写出论文发表,势必要有别人来重复你的步骤,科学才能进步。后面他总算写出了论文,得以发表,这也证明科学界认可他的研究的价值。


几投不中,究其原因,评委说是没有和现在“最先进”的算法程序实验比较。而我没有比较的程序,是一个我觉得发paper动机不纯的人的程序。没办法,求他给我代码。


做出一个算法来,或者改进了算法,当然要跟原来的算法比较一下,或者是速度有了改进,或者是计算结果比以前的算法好,新算法才有意义。没有比较,你怎么能说清楚你的算法的好处呢?
说到算法的比较,有两种比较方式:
1,数学上证明A算法比B算法优越,空间复杂度、时间复杂度大大减少。一般说来,这个方式很难实现,大多数算法都是在同一个数量级上的。(因为很多天才已经思考过同一个题目,很难想出更简单的解决方法了,为什么我不早生20年?)
2,把两种算法用计算机实现出来,是骡子是马,拉出来遛遛。然后比较运行所用的时间和运行结果。当然,我们会使用相同的电脑、相同的编译环境、相同的程序风格来实现两种算法,这样才不至于引入系统误差。奔腾4上运行一个算法、486上运行另一个算法,得到的运行速度当然无法比较;用汇编语言写出来的算法,跟用Visual Basic写出来的算法,执行起来速度没有意义;高手与新手写的程序效率自然也不一样。

所以,我(和我所知道的朋友)在比较别人的算法的时候,都是根据别人的论文,自己实现程序,从来没有问别人要代码的时候。如果根据论文还写不出程序,才会联系论文的作者。王垠没有要到源代码,拿到执行文件,就直接跑起来,只能说他也是在糊涂交差。


我决定换一个题目研究。我就开始考虑zero skew tree. 找了20多篇paper来看,发现他们没有什么本质的改进。


前面我说了,因为很多天才已经思考过同一个题目,很难想出更简单的解决方法了。王垠看来认为自己是爱因斯坦式的天才,总想找到一步登天的方法,不屑于改良式的进步。况且,看20篇论文,远没有得到熟悉一个研究方向的程度。

他们研究美好新颖的问题去了,而我就这样陷落在充满陈旧问题的垃圾paper的海洋中。


一个人的天堂,就是另一个人的地狱。

总的说来,王垠希望社会铺好路,然后研究30年,然后拿出一个爆炸性的研究成果。但是我觉得他还不懂得怎么做研究,还不懂得科学界的交流方式。我第一次看这篇“退学申请”的时候,他还提到说他感觉有一个方法能够提高质量,认为自己实现这个方法太浪费时间,于是问导师有没有人试过这种方法,导师没有回答,他也就不管了。(大意如此)其实你只要搜索一下论文,就知道有没有别人做类似的东西了,为什么非要导师来告诉你呢?导师一定要扶着你走路吗?如果别人做过的话,肯定会在论文里体现出来。现在我翻“退学申请”,找不到这段,也许他也觉得不好意思吧?




所有跟贴:


加跟贴

笔名: 密码(可选项): 注册笔名请按这里

标题:

内容(可选项):

URL(可选项):
URL标题(可选项):
图像(可选项):


所有跟贴·加跟贴·新语丝读书论坛http://www.xys.org/cgi-bin/mainpage.pl