作者 陈怀临 | 2009-06-26 16:43

文章来源:弯曲评论


最近,复旦大三本科学生破解“最小曼哈顿网络问题”猜想的消息轰动了全国。笔者认为那些记者们估计对什么是曼哈顿网络都是第一次听说。但这好像不妨碍记者们的妙笔生花。 这倒是首先证明了目前中国记者这个行业的低劣。

这个新闻源自第25界计算几何年会(Proceedings of the 25th annual symposium on Computational geometry)的一篇来自中国的学术论文。这篇题目为“Minimum Manhattan Network is NP-Complete”的文章获得了最佳论文奖。论文的作者是三位,其中第二和第三作者分别为来自复旦大学计算机系的郭泽宇与孙贺。这篇论文题目的中文翻译是:最小曼哈顿网络问题是一个NP完全问题。第一作者为香港大学计算机系的教授Francis Y. L. Chin。Francis于1996年就被评为IEEE的院士(Fellow)。

本文试图从科普的角度简单介绍一下曼哈顿网络问题和孙贺与郭泽宇的工作。 为什么说简单介绍?因为,笔者花了2天的时间,基本上没有看懂其数学证明。自古英雄出少年呀!中国最不缺的就是人才。不知道缺的是什么。

最小曼哈顿网络问题,是1999年提出的一个计算几何重要猜想。由J. Gudmundsson, C. Levcopoulos和G. Narasimhan最早提出。其大概意思是:在一个二维的平面中,有n个离散的点。你现在要构造一个网络,从而任意的两点之间要能够存在一条路。这条路我们叫做曼哈顿路径。这个网络叫做曼哈顿网络。关于这个路有一个限制条件,其要么是水平的(线段),要么是垂直的(线段)。用北京的路来说,就是,要么是南北向的,要么是东西向的。你不能是南方小城中的那种斜路,更不要是周庄的那种小歪路了。在定义了这些条件之后,最小曼哈顿网络(Minimum Manhattan Network)问题是:你如何找出一个算法,从而对于任何的n个点,你能构造出一个总长度最小的曼哈顿网络。下图是曼哈顿网络的一个图解示例:

图一所示的就是一个10个节点的曼哈顿网络图。

请注意,连接任何节点的道路(曼哈顿路径)要么是水平的线段要么就是垂直的线段。图二解释的是在曼哈顿网络中,两个节点之间的曼哈顿路径长度的计算是 |x1-x2| + |y1-y2|(笔者注:对于这个没有明白的读者,请报考补习初二的平面几何。)。其中节点1的坐标是(x1,y1);节点2的坐标是(x2,y2)。图2的左边的图不是曼哈顿网络或路径,为什么?路都是斜的连接。

读者立刻可以联想到,这个很有用。例如城市道路规划,芯片布线设计等等。。。其实笔者认为基本上没有用,其实就是数学家和计算几何学者们冬天在家YY时的题目。反正歇着也是歇着:-)在工程实践中,次优解往往是最好的方案。

那么郭泽宇同学和孙贺同学等的工作贡献是什么?

是证明了,最小曼哈顿网络算法是一个NP完全问题。

NP什么意思?简单的讲,指的是,这个算法是可解的,但是,算法复杂性不是一个多项式时间,而是一个指数级别的复杂性问题。例如,流行的人肉搜索就应该是一个NP问题。

在该论文中,严格证明了这个问题不仅仅是NP Hard问题,而且是NP完全问题。NP完全的意思是:如果这个问题有多项式复杂度的求解方案,天下所有的NP问题都可以通过多项式时间复杂度的映射得出其多项式求解方案。用通俗的化讲,就是最难的问题。如果这个问题可以被多项式时间的算法来求解,天下所有的可解的问题都没有问题。那么NP就等于P了。NP等于P又是什么意思?基本上不能往下讲了。基本上就超出弯曲评论的范畴了。

那么是如何证明最小曼哈顿网络问题是NP完全问题的呢?

是通过非常漂亮的数学技巧,利用经典的NP完全问题3-SAT,通过构造一个多项式复杂度的映射(归纳),产生MMN(最小曼哈顿网络)算法,从而可以得出,MMN是NP-Complete,即NP完全问题。笔者自己基本上看不懂其证明。当然,笔者并不惭愧,确实很难:-)

从复旦大学透露的相关资料,两位同学应该是在香港大学计算机系Francis教授的指导下开展的最后攻关工作,并完成的论文。笔者感觉郭同学是做出了突破的那个人。Francis不用说,是指导老师,而且应该是论文的主要起草者。郭同学当然是聪慧过人,但以一个大三学生能把一个高水平的英文论文写好,除非他是复旦大学外语学院的,而非计算机系的。孙贺同学是郭泽宇的直接指导老师和合作者,也是一个主要贡献者。其在复旦大学计算机系有主页,看了一下 ,相当的优秀。孙贺,1984年1月出生,2002年世界数学家大会十五分钟报告人,当时,其年仅18岁(!!!)。2002年进入复旦。目前复旦大学计算机系的博士生。这里是年仅25岁的孙贺同学的主页。

最小曼哈顿问题本身不算是计算理论,或者计算复杂性领域的重大问题,但是计算几何方面的一个突出问题。

这次对MMN是NP完全的证明,确实是一个突破,是一个很漂亮的证明。

我个人认为,这篇重量级文章的面试,基本上是复旦大学计算机系在理论研究方面的里程碑。可以说北有清华,南有复旦。

有兴趣的读者可以参阅发表的英文论文: Minimum Manhattan Network is NP-Complete

【转载】NP完全问题——最小曼哈顿网络相关推荐

  1. 算法中的P问题、NP问题、NP完全问题和NP难问题梳理

    结论(可以简单这么初步认识):NPH>NPC>NP>或=P 在讲P类问题之前先介绍两个个概念:多项式,时间复杂度.(知道这两概念的可以自动跳过这部分) 1.多项式: axn−bxn− ...

  2. np完全问题的例子_MIT开发光子算法,试图解决世界7大数学难题的“NP完全问题”...

    2000年5月,美国克雷数学研究所(Clay Mathematics Institute,CMI)提出7个数学难题,称为"千禧年大奖难题",挑战者每解出1道题目,若通过两年验证期和 ...

  3. 证明:hitting set是NP完全问题

    <算法概论>P266 8.9 首先证明hitting set(我暂且翻译为击中集)是一个NP问题.给定该问题的一个实例,包括一组集合{S1,S2,...,Sn},大小限制b,再给定问题的一 ...

  4. 证明碰撞集(HITTING SET)问题是NP完全问题

    问题描述: 给定一组集合{S1,S2,S3,-,Sn}和预算b,求一个集合H,其中H和所有Si相交且H的规模不超过b.求证该问题是NP完全问题 证明: (1)先证该问题是一个NP问题. 假设给出集合H ...

  5. 【算法】NP完全问题以及世界数学七大难题

    NP完全问题(NP-C问题),是世界七大数学难题之一. 1.NP完全问题 P (确定性多项式算法)对NP (非确定性多项式算法) 人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题 ...

  6. 算法中的P问题、NP问题、NP难问题和NP完全问题

    P问题:该问题存在一个可以在多项式时间内解决该问题的算法.(P:polynominal,多项式) 为什么我们要研究这个?因为计算机处理的输入常常不是那么几十个几千个那么一点点,想象一下,当计算机处理的 ...

  7. NP完全问题与近似算法:贪婪策略|Python实现

    1. 集合覆盖问题 假设我们创建了一个自己的电台,希望让整个市区的人都可以听到我们的节目.然而,这个城市有许多不同的广播公司,购买它们服务的电台可以让自己的节目覆盖某一块区域,并且这些区域常常是重叠的 ...

  8. 《算法图解》学习笔记(八):贪婪算法和NP完全问题(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  9. 算法4类问题:P问题、NP问题、NP完全问题、NP难问题

    在讲P类问题之前先介绍两个个概念:多项式,时间复杂度. 1.多项式:axn-bxn-1+c 称为x最高次为n的多项式 2.时间复杂度 时间复杂度表示所需的计算工作量,当输入值接近无穷时,算法所需工作量 ...

  10. 判断NP完全问题的一些蛛丝马迹

    一般来说我们没有简单的办法判断问题是不是NP完全问题,但还是有一些蛛丝马迹可寻(来自<算法图解>) 元素较少时算法的运行速度非常快,但是随着元素数量的增加,速度会变得非常慢: 涉及所有组合 ...

最新文章

  1. vue连线 插件_vue 插件集合
  2. 一卡通变“一脸通” 人脸识别更新校园考勤方式
  3. android studio中error,ERROR在Android Studio中
  4. 机器学习第六篇:详解支持向量机算法
  5. 有一个包含主函数的java类_重新认识Java中的程序入口即主函数各组成部分
  6. jQuery 打气球小游戏 点击气球爆炸效果
  7. 在cisco switch上配置MSTP
  8. 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(10)---各种线程同步的集合类...
  9. 华为入局 VR 眼镜能让 VR 早普及几年?|CSDN博文精选
  10. Metasploit是一款开源的安全漏洞检测工具,
  11. 【Luogu1996】约瑟夫问题(模拟,解法汇总)
  12. dos中进入其他盘中的方法
  13. LeetCode刷题——62. 不同路径
  14. 【Android系统源码修改】去掉开机时显示的正在优化应用对话框
  15. Java位运算符:Java移位运算符、复合位赋值运算符及位逻辑运算符
  16. 阿里云ACA、ACP、ACE认证考试常见问题
  17. excel函数--if函数计算销售提成
  18. 个别照片查看器无法显示此图片因为计算机上,在Windows7中打开照片,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足。....”...
  19. linux syn_recv过多ip,SYN_RECV处理方案
  20. Tomcat做成系统服务

热门文章

  1. 带图傻瓜式自己动手修改新浪微博各种尾巴
  2. 几行烂代码,用错 Transactional,我赔了16万。
  3. FPGA基础知识(FPGA芯片结构)
  4. python数字的表示
  5. java fifo lifo_栈方法 LIFO - 队方法 FIFO
  6. win10系统无法连接xp工作组计算机,Win10系统访问XP共享打印机连接不了的解决方法...
  7. 关于UDS诊断会话管理功能相关服务的学习笔记
  8. Typora怎么插入图片链接,并设置图片居中
  9. 论文阅读 | Tackling Adversarial Examples in QA via Answer Sentence Selection
  10. php网站403 forbidden,403 forbidden怎么解决