P和NP那些事

在计算机科学里,有时间复杂度的概念,然后就有P,NP,NPC,NP-hard的概念,平常大家说的这个题是np的,只能搜了,其实是理解错了np的概念,首先要明确np并不是“不是p”的意思,p大家都清楚是指有多项式时间的算法,而np看全称是“nondeterministic polynomial time”,是说非确定多项式时间,进一步说,正如图片上说的p是属于np的,所有p问题都是np问题。

ok,下面仔细说一下,按照官方的解释呢

p是指在多项式时间能由确定型图灵机解决的问题

np是指在多项式时间能由非确定型图灵机解决的问题

确定型图灵机可以理解为就是按照某种固定的算法,一步步求出解的程序,而非确定型图灵机其实是概念上的,他的理论价值更大一些,他是指某个程序rp非常好,能猜出答案。怎么叫猜出答案呢,举个例子比如说哈密顿问题(是说经过图上的所有点一次且仅一次的路径),程序猜出了个路径ACDEFB啥的,然后程序要自己看看这个路径是不是哈密顿路,验证了一下,我勒个去,还真是,于是答案就出现了。所以这里的猜是指给出一个正确的答案,就是不仅猜出了个答案,还要自己验证一下是不是正确的,所以在有些地方解释np就是说能在多项式时间验证的问题就是np的,也不能说不对吧。

我们看到p是属于np的,那么是不是有是np但不是p的问题呢,也就是p是否等于np呢,这是个亘古难题,但是大家普遍倾向于不等于。

这里有点跳跃啊,我们先要介绍一个规约的概念,规约就是说一个问题A可以在多项式时间转化为问题B,然后问题A有解当前仅当转化后的问题B有解,也就是说只要解决了B那么就可以解决A,注意这个转化是单向的,比如你可以用解二次方程的方法解一次方程,但是反过来却不行。

然后有个叫Cook的人发现所有的np问题都可以规约到一种叫做SAT的问题,也就是说只要SAT能有效的解决,所有问题都能利这种方法经过相应转化而有效解决,后来人们发现所有的问题能规约到的问题不止一种,而是一大类,有很多个,这类问题就被称作NP-complete问题,俗称np完全问题,就是说这类问题是np里最难的,所有的np问题都可以规约到他们。到这里我们注意到npc问题是有两个条件的:

(1)他是np问题

(2)所有的np问题都可以规约到他。

如果只满足条件(2)那么被称作NP-hard,俗称np难问题,也就是说NP-hard和np问题的交集就是npc,那么以后要证明某个问题是npc问题只要先证明他是np问题,再证明某个npc问题可以规约到他(注意这个顺序是某npc规约到你要求的问题,很多人都犯顺序的错误)就可以了,如果你证明了某个问题是npc的,那么你就不用费劲心思的去想优雅的多项式算法了。

好了,让我们看看传奇的第一个npc问题SAT到底是什么,SAT全称是satisfiability,他是问对于一个合取范式,是否有一种输入使得他的输出是1,具体点就是类似这样的布尔表达式(x1 or x2 or x3)and(x3 or x4)and(x1 or x5)对于所有的x是否有一种01取值,使得最后的结果是1,据说证明这个是npc非常复杂,大体思想就是说给定输入的图灵机操作都可以表示成这种形式的布尔表达式。而对于acmer比较熟悉的2-SAT问题就是SAT的特例,并且他是有多项式算法的,就是2-SAT是p的,而3-SAT就是npc问题了。

npc问题有很多的,比较有名的有团问题,顶点覆盖集问题,支配集问题,独立集问题,哈密顿路问题,旅行商问题等,同样有很多是NP-hard而不是npc的问题,比如围棋,停机问题等。

前一段时间比较火的就是一位HP的研究员Vinay Deolalikar声称证明了P≠NP,但是后来被证明是错误的╮( ̄▽ ̄”)╭ ,不过我感觉这个可能和哥德巴赫猜想一样,按照哥德尔不完备定理来说,在现有理论的体系下,可能无法证明,需要利用到理论体系之外的东西,当然我也只是猜测,至于到底怎么样我们还是静观其变吧。

reddit 估值4亿

新浪科技讯 北京时间1月7日上午消息,据科技博客TechCrunch报道,美国社交新闻网站Reddit正在进行融资,估值达4亿美元。作为美国最火的社交新闻网站,Reddit 2012年的独立访客为4000万人,页面浏览量达到370亿次。

著名计算机黑客Aaron Swartz 为reddit联合创始人,同时Swartz还是web.py的创始人,web.py是一个Python的web框架。

Reddit 的 CEO Yishan 可能对硅谷精英投资者的入伙更有兴趣。愿意投资买入 Reddit 的投资者可能更关注的也不是财务回报,因为以 Reddit 现在的态势,一旦找到可规模化的商业模式,价值远不止 4 亿美元了。

子游评论:一个全是超链接的网站能有啥价值?别忘了谷歌百度也是只有超链接。

相关内容  reddit 源代码https://github.com/reddit/reddit

国内同类产品  http://milnk.com/

milnk源代码 https://github.com/QLeelulu/ohlala  milnk是go语言写的哦。加油。

Prismatic:用机器学习分析用户兴趣只需10秒钟

关于Prismatic,首先有几个事情要说明下。他们的创业队伍很小,仅仅由4个计算机科学家构成,其中的三个都是年轻有为的斯坦福以及伯克利博士。他们是在用智慧解决信息超载这个问题,然而这些博士也同时担任着程序员的角色:开发网站、iOS程序、大数据以及机器学习需要的后台程序。Prismatic系统架构的亮点是如和使用机器学习实时地解决社交媒体流的处理问题。由于商业机密的原因,他没有透露他们的机器学习技术,但是我们可以通过架构看个大概。Prismatic创始人之一Bradford Cross把Prismatic的系统简洁地描述为:“它是一个提供大规模、实时以及动态的个性化信息排名、分类以及分组功能的综合系统。”接下来就把这个系统的架构展现给大家。

Prismatic主要功能是发现我们的兴趣,为我们推荐阅读

http://www.csdn.net/article/2013-01-03/2813185-Prismatic/1

自学java语言和javaee过程

1.c语言

2.c++语言语法

3.java1.4,1.5,1.6,1.7各种特性

4.多线程,nio等

5.学习框架使用 ssh,ssi之类的

6.jvm

7.学习模式,spring原理等

8.学习其他语言,python erlang golang啥的

9.hadoop看看

10.mahout看看

11.忘记语言

其中穿插其他的使用性技术,比如做个搜索引擎啥的。

以上是学习java的技术路线。管理路线不必参考。

我的性格测试

INFJ 博爱型——基于博爱的理想,设身处地的关怀他人

 

报告接收人: 才储成员1503851 日期: 2013-03-10
一、你的MBTI图形
MBTI倾向示意图(类型:INFJ 总倾向:70.2)
外向(E)

(I)内向
实感(S)

(N)直觉
思考(T)

(F)情感
判断(J)

(P)知觉

倾向示意图表示四个维度分别的倾向程度。从中间往两侧看,绿色指示条对应下面坐标的哪个区间。
本报告地址不会长期有效,请复制报告内容到本地或自己的博客。

阅读全文 ……

让我推荐sae需要回答的问题

我用蜘蛛,爬网络上的新闻,博客,rss等。但是新闻,博客文章等大部分都是转来转去的。(天下文章一大抄)。
我想做阅读器,过滤掉各种重复的,根据用户爱好,推荐给用户更好的,更优质的文章。
推荐引擎已经在电子商务 (E-commerce,例如 Amazon,当当网 ) 和一些基于 social 的社会化站点 ( 包括音乐,电影和图书分享,例如豆瓣,Mtime 等 ) 都取得很大的成功。
我想讲这种技术运用到文章推荐上来。实现我的阅读器。

阅读全文 ……

不写一行代码,做自己的聊天系统

简介,该系统支持 桌面(包含Windows,Linux,和mac系统),嘿嘿,Java的。也支持web聊天。类似webqq。但是我没有测试。

该系统全部采用Java语言实现,而且还是开源的。是基于jabber的xmpp协议的,支持gtalk,msn,新浪微博(新浪微博的android推送也是xmpp的哦,博主观察到的,ps:sina微博架构师 timyang 对xmpp深有研究,读他的博客学了不少东西。)

各种需要的软件。下载地址。主要是openfire(服务器端)和spark(桌面端),还有web端

http://www.igniterealtime.org/downloads/index.jsp

下载安装好,就可以实现桌面直接的聊天了。

android端可以自己开发。可以使用官方的Smack 自己开发,也好像有asmack是移植好的。

偶然间让哦我发现了一个开源项目。

https://github.com/pfleidi/yaxim

这个,也只xmpp协议的。可以直接拿来当客户端用。也可以直接到play下载。https://play.google.com/store/apps/details?id=org.yaxim.androidclient

yaxim,在填写jabber id的时候有一个缺点,xxx@xxx.000 不写 .ooo会不认。

博主意淫:

1.可以基于这一套,做一个推送系统。ps,千万别用androidpn。bug太多了。在用户量并发不大的情况下,可以使用。如果用户多,可以openfire集群。再多,就自己开发吧。

2.可以山寨个微信。也可以做个微信公开号一样的功能。看用户了。开放api,也很容易的。

 

开发一套把妹系统

乙:听说你们根据程序员们的需要,开发一套把妹系统?
甲:是啊,我们在开发之前进行了大量的需求分析,并且根据我们的分析,发现程序员找妹子确实是难事,我们设计了一个十分先进的”把妹系统“。我们的架构师是这样说的:
给程序员自己用的东西一定要最先进的架构,怎么也要是云计算的。做就做的规范,把设计模式拿来,什么builder,factory,adapter呀,bridge呀,能用的全都用上,弄几百台深蓝做集群,支持十亿用户同时在线。一定要请最好的,最牛的程序员,把Google,百度的程序员请来,写爬虫,从全网络抓取数据。一定要全网络,一个妹子也任何痕迹都不要落下。数据量上来,用户上来,一定要做好数据挖掘,做到实时推荐。推荐模块一定要亚马逊的人来做,而且一定要由twitter团队的人用Twitter Storm要做到实时的,不然妹子就被别人抢了。不要以为推荐就完了,还要专业的程序,用最牛的机器学习来模拟追妹子的测试,一点要分析妹子的社交网络,一点要用graphlab,不我们要自己开发一套平台,生成最好的,最有效的把妹策略。而且还要上移动端,什么android,ios,米狗都要开发,有必要也要做个自己的系统,要兼容android,google glass和ios。这样还能采集妹子的地理位置,这样能充分的,实时的把握妹子动向。妹子到哪了,吃什么了,跟什么人来往了,发什么twitter了,尽在眼下。同行用的都是hadoop,openstack。你要是用普通的分布式,你都不好意思和人家打招呼。
打开我们的网站,浏览器里还要做一帮小精灵,爆可爱那种,一口一个”may i help you sir“,一口地道的西雅图腔,倍(儿)有面子。
你说这样的系统,怎么也要花个十万八万的吧?
十万八万?那是电费!!
注册会员都要八万起!
你还别嫌贵,还不打折。
你得研究宅男心理,拿投资人的钱拉力搞研究,根本不在乎多花那么点钱。什么叫研究你知道吗?
就是技术只要最牛的,不要最好的。