Changkun's Blog欧长坤的博客

Science and art, life in between.科学与艺术,生活在其间。

  • Home首页
  • Ideas想法
  • Posts文章
  • Tags标签
  • Bio关于
Changkun Ou

Changkun Ou

Human-AI interaction researcher, engineer, and writer.人机交互研究者、工程师、写作者。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。

Science and art, life in between.科学与艺术,生活在其间。

282 Blogs博客
171 Tags标签
Changkun's Blog欧长坤的博客

谈谈 CV

Published at发布于:: 2014-11-04   |   Reading阅读:: 1 min
谈CV,其实只需要从著名的Image Net Challenge说起就已经足够了。 多年前, CV的data set都非常非常小,几百个category几万张image已经顶天了,使得无法设计complex vision model。否则由于模型复杂度太高,data set太小,最终只能Overfitting。 2012年的时候,有个叫Feifei Li的女士人发起了巨型数据库ImageNet。如今ImageNet上已经有了接近1500W张图片了。每张图都是人工记录图片中物体的名字,并向全世界宣布:同学们,你们谁开发出了新的Object recognition算法,就在这个数据库跑跑看吧。 所以,2012年的时候,就有了 Large Scale Visual Recognition Challenge,而比赛的结果会放在每年年底的NIPS公布。 当时大多数“科研工作者"还在用传统的computer vision算法时,DL大牛Hinton放出大招——DeepNet。 差距是这样的: 第一名DeepNet的error rate是0.16422 第二名是日本东京大学,error rate是0.2617 第三名是牛津大学,error rate是0.2679 其实仔细对比第二三名的具体实现,他们使用的技术框架都非常接近,基本上就是传统的local descriptor+feature compression这一套。而在这套实现上,两者的差距几乎是可以忽略的——看看DeepNet的error rate就知道了。 当时Hinton大神就放话了:“你要是没有参加前十几年的NIPS,没有关系,因为DeepNet今年才开始真正的work了”。虽然DeepNet如此牛逼的效果,但是很多的“业内人士”就觉得很不爽了,觉得这玩意儿简直就是扯淡。我觉得可能有下面几个原因: DeepNet很可能只是Overfitting,因为参数实在是太多了…6KW+ DeepNet实际上是一个黑箱,还不能从理论上详细分析里面到底在干嘛,对CV的贡献可能很有限。 DeepNet只能解决Object recognition这一个问题,而想要做到Object detection、segmentation这些基本问题,基本上也就残废了。 其实,在0.5个百分点的performance提升都可以被顶级会议收录为“major contribution”这样的一个时代,被一个和最近十年computer vision尤其是object recognition领域的进展几乎没有任何交集的方法超过了十个左右的百分点,难免出现大众不接受的情况。但是,一场“革命”却已经开始了。 一年后,2013年,新一轮的large scale visual recognition challenge又开始了,这时候,DeepNet却已经统一江湖了:排名第一的算法,在没有额外的traning data的情况下,跑到了error rate 0.1174这样的成绩。 这个成绩是这样的:随机挑选一张图片,扔给算法去跑,算法返回五个结果。如果有一个结果猜对了,那么就算作正确。也就是说,如果允许瞎猜五次,第一名已经能够拿到90%的准确率。注意,这里的object category有两万多种,几乎覆盖了所有类别。 那么,DeepNet的瓶颈在什么地方呢?看看CVPR14paper的title and abstract,CV圈子里在两个方面做improvement,但是却没有push。最终搞得DeepNet越来越像一门具有浓烈性质的实验学科,大概就是这个样子: 如果对2012年Hinton大神的架构修改太多,将会出现各种惨不忍睹,各种毁于一旦。 很少人有强劲的数学功底能够从理论上分析DeepLearning到底在干嘛,而即便是有强劲数学功底的那些人估计也看不上这套理论。 可惜,图片数量实在是太过庞大,从工程上来看,在几周或者几天时间内完成百万级甚至千万级的Image data,真的是太难太难了。 这样的话我更有理由去相信:只要愿意花时间,一个本科学生train出来的DeepNet和那些在Google百度工作了积累了十几年经验的工程师、教授train出来的,没有太大区别。 不知今年的结果不知道怎么样,得等到12月份的NIPS14了。也不知学术界什么时候能够找对方向,结束这个目前以实验报告为成果展示的探索阶段,从理论上,从根本上解释这个被“炒”得“伟大”的理论究竟为什么如此奏效。 参考与进一步阅读 ImageNet Large Scale Visual Recognition Competition 2012 ImageNet Large Scale Visual Recognition Competition 2013 Conference on Computer Vision and Pattern Recognition 2014 https://code.
Read More阅读更多 »

简单的日志分析

Published at发布于:: 2014-10-29   |   Reading阅读:: 1 min
今天听P哥说写了个爬虫抓我网站玩,所以就比较好奇分析了一下P哥来抓我网站的一个行为。 其实听着分析很高端的样子,本来我打算用python写个脚本的,后来一想干脆就用awk算了,也就简单分析一下,等以后有时间部署个分析平台。 这是日志格式: 1 2 3 4 5 6 218.5.46.14 - - [26/Jun/2013:19:21:28 +0800] "GET / HTTP/1.1" 200 1115 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" - 218.5.46.14 - - [26/Jun/2013:19:21:29 +0800] "GET /favicon.ico HTTP/1.1" 404 564 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" - 218.5.46.14 - - [26/Jun/2013:19:21:45 +0800] "-" 400 0 "-" "-" - 220.181.126.47 - - [26/Jun/2013:19:29:02 +0800] "GET / HTTP/1.
Read More阅读更多 »

图书馆真是越来越无趣了

Published at发布于:: 2014-10-28   |   Reading阅读:: 1 min
第一次有图书馆概念的时候是初中,还是从数学老师那儿听来的,当时为了能够进去借书,好像还费了点儿功夫,记得初中的图书馆是不能在书架(虽然只有不到二十个架子的书)上直接查阅的,管图书馆的老师会给你一盒卡片,卡片上只写了图书的名字,看上了,就把卡片取出来,让老师进去取,而且只能借一周,否则就得罚钱,作为一个连零花钱都得申请的小朋友当时真是深感忧伤。不过想想当时在这种规模的图书馆能够借到北大文革时期的高等代数的教材,也是觉得很幸运,也不知道现在图书馆拆了没有。 高中就没有图书馆了,所以那段时间我一再怀疑是不是高中还没有初中牛逼。没有图书馆,就让我养成了一个比较“坏”的习惯:买书。 我似乎是那座县城里面比较早使用淘宝的人,初三的时候为了买魔方,才好不容易从我妈成功申请允许我办网银。然后才发现淘宝是一个逆天的玩意,所以从那以后我的所有数学书都是从淘宝上获取的。记得高二那会儿听网友说陈天权编了一本逆天的数学分析,果断就淘了一本回来,确实碾压以前读过的欧阳光中编的数学分析。作为一个爱买书胜过爱看书小朋友,如果本本书都自己买,实在是没有那个经济能力。所以后来准备高考,也就收敛了许多。 到了大学里,对图书馆的激情一下子又被调动了起来,大二以前,几乎一有时间就会往图书馆跑,尤其是大一,那会儿就如同乡巴佬进城,对大学图书馆的向往简直是无法言喻——太特么大了,看到满架子都是自己感兴趣的书,真是一件超级爽的事情。尤其是高二那会儿去长沙比赛的时候,到中南的图书馆仅仅短暂走了两圈,简直感觉就像进了天堂。而今天经过图书馆的时候,我实在是提不起进去的兴趣了,我觉得可能有几个原因: 图书馆资源相对陈旧,我感兴趣的图书多半早就已经读过至少一遍,或者已经自己买过了。 自己有了电脑并且拥有了能随时接入互联网的能力,还并具备轻量级的经济能力,图书馆资源的更新速度之缓慢实在是无法满足自身的需求了。借书?太慢了,还不如我上午下单,下午收货来得愉快。甚至,图书馆还不一定有。 毕竟是借的书,不能在书上“乱写乱画”,我有个癖好就是会把自己的一些想法附注在书的旁边(从费马那偷来的),所以这样的书也只能读读,不能把东西真正变成自己的,即便是摘抄下来。 图书馆对我而言现如今更像是一个能安静的看书的地方,但是,这样的话图书馆不就失去了它坐拥海量资源的优势了吗?说到底,还是信息化又在逐步干掉另一个“百年老树”了。

The worst Presentation

Published at发布于:: 2014-10-14   |   Reading阅读:: 1 min
这是最糟糕的一次pre。想想之前我还饶有兴致的做着可能是这辈子最认真的keynote,各种神奇的特效,而实际收获的效果为零。 首先答辩的整个scene就很随意,在整个pre还没有正式开始之前我,我大致说明了一下,内容是:“这次pre的内容可能有点多,所以我可能语速有点快,如果有没听清楚的内容,及时打断我,这次pre的内容主要包括一下几个方面:……”…“我说一下,你注意主要围绕xxx说一下就行”…………无情的被插话,而且是完全无视我之前说了什么的插话,明明我正在说的就是你插话的内容。瞬间我想到了罗永浩的嘴脸。 所以我决定保持风度,像自如老大一样。但是内心仍然是非常的不爽,于是我果断决定切换到准备的第二套pre方案。 开始讲近场定位,本来这里有很多关于hci的idea,但是没有说出口,我知道说了和没说其实是一样的,所以干脆也就咽了下去。讲完后:”关于这里有疑问吗?“,我好像听到了有小声说了一句:”这家伙说的到底是什么东西?“………………what are you doing before? 开始讲machine learning和deep learning了,这是我最自豪和得意的part,但是我猜想除了周老师其他几个老师可能根本不懂我在说什么。 还真的是这样,开口就说我不知道convergence还怎么做这个algorithm。 我甚至怀疑ta到底不知道basic statistics model,开口就喷,也是醉了,我在keynote里提到convergence还不明确,这是诚实,看看那些诡异的才push 0.5个百分点的conference paper,他们什么都不说,研究paper的时候我也只有一路呵呵。 刚开始我还抱有幻想,尝试去解释清楚让ta理解为什么这个算法的convergence在theoretic analysis还做不到,说了一半我放弃了,whatever。 我想,关于cloud computing的idea全完没有传达,这部分的关键性idea才是这个project真正有趣的地方。可是得到的是不断提醒我注意时间,我想我也是醉了…明明才讲了五分钟不到…………………………说好的十分钟呢…能听我讲完吗?能听我说一句吗?明明时间花在了你们提问上,我的语速已经够快了……… 最后强调了一下所有的result都会用GPL到我的homepage上,但我知道我的homepage不会有任何额外增加的UV,就像之前我描述他们现场行为表现的那样。 我猜想我可能get到了真相,其实nobody cares what are you create, what is the most creativity idea for the project, they just wanna finish this early. 又或许是我自作多情了,有点过分看重pre了,but I did all this seriously, at least. 好吧,我这个吐槽的习惯不好,对不起。

关于 Riemann

Published at发布于:: 2014-10-10   |   Reading阅读:: 1 min
从数学的角度看,超越时代的人不在少数,就我最喜欢的,是黎曼。 我相信,任何对黎曼有一点了解的人都必定会承认他是一个天才,而任何看过他手稿的数学家必定会惊叹不已。 黎曼只活了39岁就病死了,是高斯的关门弟子。他这一生的成就就不在赘述,度娘和谷歌可以帮你了解。我只讲他的一点,也是最为人所知的,就是那个到现在都没有解决的黎曼猜想。 黎曼猜想提出到现在大约150年,简单的看来,这只是一个普通的对一个特殊的亚纯函数——黎曼zeta 函数——零点分布的性质的研究,经由欧拉的一个公式和素数的分布联系在了一起。大多数人觉得这只是一个数论里的问题,但重点是 黎曼和他的老师,高斯一样,论文如此简介,有说服力,但却令人完全看不透他是怎么产生的这样卓越的想法,其实,这背后是大量的实际推演,这就体现在他的手稿里。20世纪,计算机出现了,关于黎曼猜想,这时候数学家想用计算机来算出一部分非平凡零点的值,就像物理学家做实验一样。数学家数十年的研究里,总结出来了一套算法,但当要算的零点数目多到一定的时候,发现这个算法的效率实在是太低下。非平凡零点,即使是前几个,都是很难用手算的,尤其是还要达到一定精确程度,但是黎曼的论文中却给出了精确到小数点后五六位的几个零点值,后面有数学家对黎曼残存的手稿进行研究,发现其实黎曼不止算了这几个,而是算了十数个,最终,人们从他的手稿当中找回了黎曼的算法,简直就是天才的想法,其算法比起现有的简洁了不止一点点。凭这一点,超越时代足够了。 如果觉得以上理由不足,那么从黎曼的手稿中,我们几乎可以想象,当时黎曼可能给出了这个猜想的证明,可惜手稿在其去世时大部分被焚毁。但在残存的手稿中,现代数学家看到了那些黎曼尚未发表的定理,这些定理有大部分都是现代数学家没见过的,而部分经过验证,定理都是正确的,而且任意一条放在现代,都会是重要,乃至举世瞩目的数学发现。凭这一点,他足够超越时代了。 如果觉得黎曼不过对于数学来说是超越时代的,那么必须再提到黎曼猜想,当年希尔伯特和波利亚提出了一个猜想,几乎被默认是对的(因为尚未证明),就是:黎曼函数的非平凡零点与某个厄密算符的本征值相对应。这句话意思可能看着迷糊,但粗略的说,厄密算符可以用与表示量子力学的哈密顿量,在简单一点,就是他对应了一个新的量子力学体系,而经典的混沌体系是这个黎曼体系的一个近似。更深入的内容我也不能理解了,但就是这么个亚纯函数,和复杂量子体系,神经网络,等现实的物理图景紧密相连。无疑是自然的奇迹! 综上所述黎曼所创造的工作的一小部分,如果他不算超越时代的人,我想,这世界上就没有几个人算了,即使是乔布斯,也比不上他闪出的一点光辉。 相关参考:《黎曼猜想漫谈》卢海昌著

删除Mac MySQL

Published at发布于:: 2014-09-12   |   Reading阅读:: 1 min
首先要停止MySQL的服务,可在偏好设置中停止其服务,然后执行下列命令 1 2 3 4 5 6 7 $ sudo rm /usr/local/mysql $ sudo rm -rf /usr/local/mysql* $ sudo rm -rf /Library/StartupItems/MySQLCOM $ sudo rm -rf /Library/PreferencePanes/My* $ sudo rm -rf /Library/Receipts/mysql* $ sudo rm -rf /Library/Receipts/MySQL* $ sudo rm -rf /var/db/receipts/com.mysql.* 编辑/etc/hostconfig,删除其中的MYSQLCOM=-YES-这行

大坑,难以置信的大坑!

Published at发布于:: 2014-08-24   |   Reading阅读:: 1 min
上学期构思的项目,到这学期开学,随着逐步的深入,难以置信的不觉触碰到了如此之多的计算机科学的深坑: 项目定位是包含:人工智能、机器学习、计算机视觉、模式识别等高性能统计“智能”算法的集成框架编写等等。 架构的高并行分布式自动集群化部署方案的刚需,于是涉及到了:并行计算架构、集群自动化部署、分布式存储系统、高速缓存引擎架构(海量数据搜索引擎架构)等等。 开发上的各种问题:开发语言的选择(C/C++、Python、Objective-C、Swift)、架构变迁的考虑、开发成本的舍取、项目高质量管理等等。 待续……

从坐公交车想到的和看到的

Published at发布于:: 2014-07-30   |   Reading阅读:: 1 min
序、起因 昨天做公交准备回学校的时候照常在车上掏出手机把玩,不过手机已经只剩下10%的电了,所以没耍几分钟手机就彻底牺牲了。 一路上人非常的挤,没有座位,所以开始猜测面前坐着这哥们儿啥时候下车。不料这哥们儿居然是做到倒数几站的位置,所以还是妥妥站了一路。感觉一路上没玩手机脑子想了很多收获还是挺大的,遂写篇日志记录一下好了。 一、想到的 一路上实在是发呆和蛋疼,脑子着实无聊,便顺带初步构思了一下如何给一个城市部署公交预测系统。 想法的起点源自上车时没抢到座位。公交车来的时候,看着车上空位非常多,可是还是没有抢到座位(丫的全挤在这上了)。一路上车上的人不但没有减少,反而越来越多越来越挤。这要是在前一站上车岂不是还能坐一路回来?所以有了下面的构思。 我们可以考虑“挖掘”一天中一条公交线路上的乘客数据啊,对一些重要的指标进行预测(当然,如果这套系统能够做到实时更新,那么就是最完美的状态了,这时候系统的预测将变得无比的精确,甚至给出一天中任意时刻任意站台的等车方案、最优乘车时间、最优乘车地点、最优……): 任意时刻某站的下一辆公交车到达的等车时间 任意时刻所等站台下一辆公交车的乘客数量 任意一辆公交车在某站的上车、下车人数预测 一天中任意时刻,在某站上车,有空闲座位的概率(这才是重点啊) 等等…… 那么,哪些特征能作为数据挖掘的样本呢?也就是说我们可以记录哪些数据呢?首先,如果我们的人力、物力、财力实在是有限,可以一步一步的来,先做好一步,再考虑进一步挖掘下一步的数据: 一条路线上,每个站点$A_i(i=1,2,…,m)$,在一天中,公交车到达时间的时间序列,$A_i=(t_i1, t_i2, t_i3, …, t_in)$,这样呢,我们就把一天中的整个公交车的时间分布变成了一个$mn$的“时间矩阵”。 我们来进一步细化$t_{ij}$的特征,我们可以视$t_{ij}$为一个四维向量,这个四维向量$t_{ij} = ( arriveTime, getOnNum, getOffNum, emptySeatNum )$,第一个维度是公交车在站台i的第j个到达时间,第二个维度是上车的人数,第三个维度是下车人数,第四个维度是空位的数量(其实可以考虑减掉这个维度来优化数据集,这样的话海量数据挖掘起来更快,另一个原因是由于每辆车的座位数是定值,那么空闲座位数就可以被算出)。当我们把第一步的“时间矩阵”扩张为以向量为元素的矩阵时,我们的数据集一下子就扩大了4mn倍,在数据逐渐猛涨的系统下,挖掘出的结果将会更加刺激。 前两个步骤的数据挖掘我们只考虑了一条公交路线,如果我们要把整个城市的公交路线都考虑进来,我们可以继续给$t_{ij}$增加维度,比如说当前站还未上车时的等车人数(这样的话便可以预测出大概有多少人在等哪一路的车,大幅增加了预测的准确度),又比如说,增加当前站台在城市中的地理坐标,引入城市小区的地理位置,这样的话可以预测出上车的人从哪儿来(小区直接等车?转车导致的等车?)、上车的人要去哪里(回家?还是换乘?)、这条路线上大部分上车的人喜欢在哪儿上车、大部分的人都在哪里下车、等等等等…… 当然我们还可以在人力物力财力允许的情况下进一步优化我们的数据集,这只是最初步初步的想法,限于篇幅这里就不继续展开我的思路了… 那么,我们有了这些数据又怎么样呢?一方面,我们可以更加精确的预测整个城市的人口流动情况,另一方面,我们可以这些数据为蓝本,给城市公交建设提出一些可靠的意见和建议,再有,把这个数据集成到一个app中,给人们提供参考,也是很棒的。 二、看到的 在构思上面系统的同时,还观察了旁边一个妹子在刷空间的互动行为。这个妹子确实勤快,我看了她一路,居然每条说说都回复了,确实强大…不过,根据对妹子表情的观察,我更好奇这个妹子的每条回复究竟是什么心态。 假设我们发了一条说说,如何判别一条别人的回复对这条说说的态度是持“点赞”多一点?还是反面多一点? 解决这个问题其实很简单,一个非常非常平凡的思路就是:我们可以先收集一堆已经被标记为正负面的评价的回复作为数据挖掘的数据库。 那么,第一个问题就是,怎样量化回复的正负面? 所以我们可以尝试准备一个词汇向量(这个向量的维度可以很大很大,甚至囊括所有的词汇),比如假设我们构造一个非常基本的向量:a = (“好”,“差”,“喜”,“讨”,“欢”,“厌”),然后对一个回复,比如回复了一句“好喜欢”对应01向量就是:(1,0,1,0,1,0),把一条回复转化成的向量记为a=(a1,a2,…,an),怎么表达正反面呢?既然只有两个层次,问题就变得非常简单了:找一个函数f能够使得f(a)>0,那么我们就认为是正面的回复,如果f(a)<=0,就认为是负面回复了。 怎么找这样的函数?最简单的办法自然是利用向量的点乘了,用点成来界定向量,我们可以尝试寻找一个标准向量X = (x1, x2, …, xn),如果我们将回复转化成的向量a∙X^T>0,那么这条回复就更倾向于点赞,相反,a∙X^T≤0的回复就更负面一些。 至于具体如何求出x1,x2,…,xn这些参数,那就是另一个话题了

在 Mac 中安装 opencv-python

Published at发布于:: 2014-07-29   |   Reading阅读:: 1 min
前段时间手贱升级到了 Yosemite Developer Preview 版,实在是太费电,想降级,结果发现升级时没有备份,简直是残废= =,遂重装系统,隔了很久,今天才想起来还要装个OpenCV(惭愧…很久没写OpenCV了…),这学期一直在写Python,Python快速开发简直赞,所以想用Python来些OpenCV了…… 不觉发现OpenCV已经更新到2.4.9了,遂看了一上午的OpenCV的官方文档,对比了一下Python和C++的接口,感觉很不错。 不过安装教程也是奇葩,好像万年不更新了… 好吧进入正题,下面是傻瓜式的安装教程 如果你已经有了CMake环境,那么直接跳到第3步 1、安装Homebrew(类似于Ubuntu的apt-get) 1 ruby -e &quot;$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)&quot; 2、安装CMake 1 brew install cmake 3、安装OpenCV 在下载的OpenCV源码文件夹内,执行如下命令,如果CMake有错,那么请安装Xcode中的Command Line Tools(Xcode5以后的版本自带了,如果Xcode都没有你怎么会想到安装OpenCV..orz): 1 2 3 4 5 mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON .. make sudo make install 4、配置Python路径 在~目录下 1 vim .bash_profile 在.bash_profile中添加,其中python2.7视个人python版本而定。 1 export PYTHONPATH=/usr/local/lib/python2.
Read More阅读更多 »

计算机科学和数学的那点儿破事儿

Published at发布于:: 2014-07-08   |   Reading阅读:: 1 min
1928年的国际数学家大会在波诺尼亚举行,会上希尔伯特又提粗了他的一个另一个著名问题——所谓的判定问题:找出一个算法来判定一个给定的命题是否为其他命题的逻辑推论。 该问题的趣味性在于以下施诗:数学的哥哥分支可以一律用公里体系呈现出来,其中的鼎力为前面公理的逻辑结果。像希尔伯特所寻求的这样的算法,能使数学家集中注意力于他们工作的令人高兴得部分,即明确表达公里并称述有趣的结果,而将从公理中退出的这些结果的费力的工作留给算法。 然而该问题远非是上面的如意算盘。1992年,波斯特取得了关于该问题的实质性的进步,他证明了命题逻辑——处理呗成为关联词的语言元素的逻辑部分有效地接纳了这种算法,即所谓的真值表方法。然后希尔伯特提出了将该结果扩展也处理量词的逻辑部分——即谓词逻辑。 该问题由美国的丘奇于英国的图灵于1936年分别独立地加以解决。结果是否定的(从中可以看出,对证明的寻求仍旧构成了做数学的中心部分):希尔伯特所寻求的这种算法是不存在的。但这一事实的证明以一种实质性的进展为先决条件:尽管算法存在性的证明能够仅仅通过展示为先决条件:尽管算法存在性的证明能够仅仅通过展示具有所期望的性质的算法而完成,但是不存在性的证明需要除去每一个可能的算法,因此需要给出算法这一概念的完整刻画。 这样一个模糊、直觉的概念竟然能容纳精确地、形式的刻画,这一事实是令人惊讶地发现。这一点是通过一系列的对算法加以定义的尝试实现的,最终所有的定义被证明是等价的。而确实是图灵的方法最终使数学家意识到,该定义已经被发现。当今他的定义可以被翻译成似乎是平凡的术语——算法是可以用任何一种所谓的通用语言翻译成计算机程序的方法。 的确,1936年计算机还不存在。然而,计算机的进展正是基于图灵引入了通用计算机——通过执行一个程序能够完成每一个可计算函数——这一概念,确切地说,是基于从仅能够完成固定计算的专门计算机,例如计算器,能够完成任何可执行计算——例如计算机——的转变。 图灵得到了判定问题的否定结果,通过将停机问题——即判定一个给定的程序是否将最终终止它的计算并停止于事先输入的数据——翻译成逻辑语言。这一问题可以很容易地被证明是不可判定的,从下面的意义上来说:没有程序能判定它,通过使用经典的对角线法——由康托在集合论中首次引入,后来罗素用于他的悖论,哥德尔用于他得不完全性定理的证明中,因此这一方法为图灵所熟知(也为丘奇所熟知,他用先死的方式解决了这一问题,只是使用他关于算法的等价定义——lambda演算)。 判定问题的解决方法给出了各个领域中关于不可判定性证明的一种方法,通过恰当地翻译成停机问题或其他相似性的问题。从数学的角度来看,该方法的最有趣的应用是希尔伯特第十问题的否定:能否找出一个有整数(正的和负的)系数的多项式(含有一个或多个变量)是否有整数的零点——即通过多项式等于零而得到的丢叛徒方程是否有整数根的算法。 在1900年国际数学家大会时,希尔伯特第十问题的特殊情形的肯定解答就为人所知了。例如,找出最大公因数的欧几里得算法能被用于处理一次丢番图方程,因为a1x1+…+anxn=b有整数解,当且仅当a1,…,an的最大公因子能整除b。此外搞死的二次互反律能使人们处理二次丢番图方程。 1968年,阿兰·贝克尔给出了一个结果——三次或更高次多项式方程解的有效上街,该结果能被用于处理椭圆方程的情形,为此他赢得了1970年度菲尔兹奖。这一事实显示出了希尔伯特第十问题,莫德尔猜想于费马达定理之间存在内在联系。贝克尔的结果后来被扩展到处理任意含有两个变量的丢番图方程。 解决这些特殊情形的困难按时了希尔伯特问题的答案是否定的,因此一般判定算法是不存在的。马丁·戴维斯、希拉里·普特兰、茱莉亚·鲁滨逊和尤里·马蒂亚瑟维奇给出了这一事实的证明。1960年,他们当中的前三位说明了如何将停机问题翻译成丢番图方程——由于加入了指数函数而变得丰富——语言(任一给定程序的行为由一个方程描绘,因而该程序停止当且仅当该方程有一个解),后来1970年马蒂亚瑟维奇从中去掉了指数函数。 一个改进的马蒂亚塞维奇的结果说明了:有九个变量的丢番图方程的情形已经是不可判定的,但是还不知道这是否是最佳可能结果。事实上,贝克尔猜想:有三个变量的丢番图方程就已经是不可判定的了。
16 17 18 19 20 21 22 23 24
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%