Scalers:谈成长中的NP完全问题

Scalers:谈成长中的NP完全问题_第1张图片
铆足一口劲,做好了一件事情,然后意外地发现,其他的许多事情,也可以迎刃而解。

Scalers点评:本文借助了一些理论计算机的知识,但是希望对你的思考有所帮助。

成长是一件耗费脑力的问题,相当于要消耗我们的智力资源,我们要思考,要想事情,要分析,要逻辑推理,然后我们会得出一些结论。这些结论你拿出手以后,也许在前人看来早就得出过,或者其他人看来是很明显的。但是尽管如此,如果你要明白并且可以自如地用这些结论,你需要做的事情,一个都少不了。

当然除了智力资源,体力资源也是发挥了重要的作用。但是为了讨论方便,我把这些统称为资源。所以如果你要实现自己的成长,那你就要投入资源,而且你要确保资源的持续供给,不然你的成长就会没电……

我的观点是,我们消耗一些资源,突破自己,达成进步,这里面会有一个很有意思的现象。我先引一条我以前发的微博:

@Scalers:这个世界是公平的。如果你长得好看那你通常还会很有钱。。。有重度拖延的人往往阅读障碍,而且往往又很穷,然后心气也很高。。。没有行动力的人通常很犹豫,然后还特别肤浅,喜欢投机取巧。。。不喜欢动脑的人往往心浮气躁,喜欢抬杠反驳破口骂人然后工作上也不会有太大成绩。。贫穷和美德有点远。。

我的大概的意思就是,如果你是一个靠谱的人,那往往你可能很多方面,都会比较靠谱。如果你有了一个好的品质,那你可能横向发展出其他的品质。如果你有了一个优势,那你可以基于这个优势,变通出其他的优势……

于是我有这么一种理解。成长就像解我们内心的难题,一旦我解出了一个,好像就可以顺理成章地,把剩下的许多问题触类旁通地都解了。但是我要解出一个,其实要消耗我很多的资源,比如我的心力、比如我的投入、比如我的时间……

但是一旦我全力解出了一个,或者解的比较好,那么我可以基于这个优势,顺便转化成其他的优势。

有点抽象。我举一个自己的例子。

从2014年开始,我持续写作。每天都做这一件事情,不断地持续中,我发现我开始收获写作之外的一些东西。比如我比以前更加有行动力,比以前思考问题更加清晰,比以前做事速度更快了,不会有那些乱七八糟的纠结和迷茫了,更加坚定了……

就像我铆足一口劲,做好了一件事情,然后我意外地发现,其他的许多事情,也可以迎刃而解。

这其实给我很深刻的启示,我们内心可能有很多欲望,很多想法,但是我们如果沉下心、踏实干好一个事情,往往就足以打开许多局面了。但是问题就是,我们往往这也想要,那也想要,于是我们相当于想同时解出多个难题。但是我们的资源又不够,于是精力分散开来,火力不够猛,自然也就出不来好的结果了。

于是我们就迷茫、纠结、痛苦、忧愁……于是各种慰藉人心的鸡汤故事,告诉你这样也是生活的正常状态,这样也可以闭着眼睛感觉自己很幸福。但是事实上就是,我们搞不定,我们没得选,我们没办法。

所以回到成长的概念上,我们要做好心理准备,其实我们在解一类很难的问题,而这是要消耗资源的。

理论计算机里面有一个概念叫“NP完全问题”,这是指一类很难的问题。为了便于大家理解,我不打算用特别专业的术语介绍,用一些简单的概念来介绍。当然会牺牲一些准确性,所以专业人士就先容忍一下,因为我也是计算机专业人士。从专业角度,下面的话可能漏洞百出,但是我还是尽量写完。

生活中我们会有一些很明确简单的问题,比如我要去买瓶水,那出门找个商店,就可以搞定。这些是可以用明确步骤明确时间内完成的问题。计算机里叫P问题。

我们还有一些问题,就是一旦你解开以后,回头看感觉很容易,一目了然的问题。这类问题的求解困难,但是验证却很容易。求解困难的意思是,我们在往前走的时候,往往不知道哪条路径可行,于是在不停地尝试。而验证容易的意思,可以理解为,一旦有人拿出一个解,你很容易验证这个解是不是靠谱的。就像我们现在如果做的好做的成功,于是我们会说,当时的选择很对一样。或者科学家有了重大发现,我们一看也感觉顺理成章一样。这一类问题在计算机里叫NP问题。打一个不恰当的比方,比如中学的时候你可能会觉得解方程比验证一个方程的解更难,可以看成是这种风格。

然后还有一类难度很高的问题,叫NP完全问题。这一类问题有一个特点,就是问题之间是可以相互转换的。相互转换的意思就是,如果你能解出其中一个问题,那你就能解出其中的所有问题。注意这里的解出是指“有效率”地解出,不是一个一个地去尝试枚举。

比如,旅行商问题(TSP问题,Travelling Salesman Problem)就是一个NP完全问题。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。

当然你说如果我只要去三个城市,那你口算都能得到结果。但是当假设有上亿个城市,那计算机就没有一个“有效的”解法。当然一条一条试,可能可以试出来,但是这个代价太大,计算量爆炸。

科学家已经证明了,如果你能解这个TSP问题,那你还能同时解背包问题,3SAT问题等等……(名词不解释了)。

针对NP完全问题,目前尚无有效的最优解法。也就是你无法有效地找到那个最佳的答案,但是有一些手段,在尝试逼近最佳答案。比如有一种启发式算法,就是在寻找答案的时候,每一步都尽量选择一个相对较优的答案。

这个对应到我们个人的成长中,其实就是我们的成长问题,往往未必就能知道那个最优解,因为我们的时间是不可逆的,选择是不可回溯的,但是我们却可以根据一定的原则,尽量选择一个靠优的解法。

而假使我们能解一个这样的难题,其实我相信,成长中的其他难题,也可以迎刃而解。

那成长中会有什么样的NP完全问题呢?我这里列举几个,我相信如果你能解其中的一个,其他的也会相应地破解。

三阶以上(1000天以上)持续行动的问题

提前行动重要事情不拖延的问题

理性对待金钱和时间的态度问题

遇到事情主动承担责任的问题

不管是否喜欢把自己手头的事情做好的问题

……

以我个人持续行动的经验的总结,如果你能在解决以上任意一个问题的过程中,下了足够的工夫,做的足够好,那你很容易在其他问题上,获得重大的进展。

当然如果你对理论计算机感兴趣的话,你可以读一下以下链接。用姚期智先生的话来说,这才是真正的计算机科学。

https://en.wikipedia.org/wiki/NP-completeness

https://en.wikipedia.org/wiki/Theoretical_computer_science

相关阅读:

ScalersCast第09期:正循环与负循环:两种生活状态

ScalersCast第37期:好状态,坏状态

ScalersCast第34期:如何走出循环:从对时间与金钱的态度说起

Scalers:一句话教你如何搞定拖延症

你可能感兴趣的:(Scalers:谈成长中的NP完全问题)