刘炯(Sharpmark)的博客

v4.0 一个不怎么更新,又舍不得关掉的博客

人生算法

上学期因为免学日语,所以选了研究生阶段最难的课程算法分析与设计。总算是过了。回过头来翻翻,有了些奇怪的想法。
如果人生是一个问题,该用什么算法来做呢?首先,分析一下人生的一些特性。

  1. 人生是不能回头的,过去了就只能让他过去,懊悔也无济于事。没法快进、快退或者重放。

  2. 世界上不会有完美的人生,不会有确切的最优解。人生如一个由无穷变量组成的函数,每次选择都是其中的一个因子(自变量)。其中一些因子的改变会导致人生这个整体函数值的剧烈变化,嗯~~~,有点蝴蝶效应的感觉,或者说属于混沌数学。扯远了,简而言之,人生充满了不确定性。
    然后,来分析一下可行的算法,回溯是不可以了,穷举更是不现实的,穷举好像把人生可能的分支都走一次,看看那个最好,然后再选择。游戏可以,算法问题可以,人生不可以。
    翻来翻去,发现贪心算法比较合适。所谓的贪心算法可以理解为有一个最优目标,并分阶段实现每个阶段的局部最优,然后合起来,就会比较接近最终的最优解。从理论角度讲,局部最优解之和不一定是全局最优解,好比极大值不是最大值一般。但是,在大多数情况下,极大值还是比较接近最大值的。

当我们认为实现人生目标等于最优解的时候,我们在不能回溯的时候,只能以局部最优解为目标,如果每个局部都达到了最优解,那么人生也就会实现人生目标或者趋近于最优解。当然了,使用贪心算法来解决计算机问题时时要求证明的,人生无法证明,所以无法保证最终一定是最优的。
对于实现这个算法,首先建立自己的人生目标,不同目标代表不同的价值观和最优解的值,会直接决定前期的局部最优的评定标准。人生目标确立之后,将人生分成几个阶段,比如小学,中学,大学……;或者10~20岁,20~30岁,30~40岁……;以人生最优解为依据,确立每个阶段的最优解。如此反复,逐层分解,一个阶段可以继续分子阶段,阶段细到可以直接执行的时候,可以直接实现或者完成的时候为标准。然后,锲而不舍的执行之。这样就实现了人生的贪心算法。

人生没有那么多的后悔,也不可能订立一个完整的人生计划来实现目标,变数太多了,只能建立一个最终的目标,和为了目标现在该做的事情,并做它,就够了。
难的,不是怎么分解和制定计划,而是坚持去做,去实现。所谓志不达者智不达。关于智与志的关系找个机会再说吧。

Comments