科比在上海接受了一次采访, 发布于TEDx上海(http://www.tedxshanghai.com/power-of-the-mind-.-kobe-bryant.html), 名为心智的力量(Power of the Mind).
这段视频看上去像励志故事, 在讲述他的曼巴精神. 事实上, 要是换个视角看, 科比完全可以称得上算法飞侠, 请听我慢慢道来.
“凌晨四点”只是调度算法
大家都知道“凌晨四点的洛杉矶”这个梗, 但实际上人不是机器, 超负荷运转会有很大的伤害. 科比在演讲里说了为什么要四点钟训练, 而真相在于能够调度自己的时间从而最大化训练时长. 因为训练不能持续很长时间, 其间必须伴随休息调整, 那么科比怎么去调度呢?
- 3:00, 起床.
- 4:00-6:00, 训练.
- 早餐, 休息.
- 9:00-11:00, 训练.
- 午餐, 休息.
- 14:00-16:00, 训练.
- 晚餐, 休息.
- 19:00-21:00, 训练.
- 休息.
每天都坚持这样最大化的训练时长, 多年之后能和竞争对手拉开很大的距离. 所以, 这样的调度算法是对每个人都有用的.
但是, 不是每个人都能这样把休息时间散布在一天之内. 那么我们应该怎么办呢? 在保证充足睡眠的情况下尽可能地让“工作/学习”和“休息/放松”尽量排好, 从而最大化时间利用率, 而这个是你要根据自身情况不断摸索才能找到最优解.
科比在高中的时候找到了最优调度方案, 那么你呢?
分而治之才能完成目标
科比在谈自己完成跟腱恢复这个极度困难的目标的时候, 采用的正是分治算法.
- 休整调整.
- 恢复脚趾.
- 正常行走.
- ......
- 正常比赛.
实际上, Bill Hogan有本《如何吃掉一头大象》:
How Do You Eat An Elephant?
One Bite at a Time.
不过, 如果不能把一个大目标划分成小目标, 恐怕是难以完成的. 所以“分”是关键, 而“治”则是保障.
我们以看完《算法设计指南》(本科教学版)这本书为例, 看看如何“分”和“治”.
- 这本书共有10章, 第10章很短, 应该很快可以看完. 接下来我们分解9章, 心理任务量好像小了一些.
- 先用一个星期看完第1章(算法设计导引)和第2章(算法分析). 数学基础不好的可以再用一个星期复习第2章的背景知识.
- 再用一个星期看完第3章(数据结构), 顺便复习一下相关知识.
- 认真学完第4章(排序与查找), 也许一个星期.
- 再花一个星期学完第5章(图的遍历).
- 也许用两个星期看完第6章(加权图算法), 顺便复习第5章.
- 认真学习第7章(组合搜索与启发式算法), 大概两个星期.
- 反复研读第8章(动态规划), 也许需要两个星期.
- 有兴趣可以翻阅一下第9章(难解问题和近似算法), 花一点时间就可以了.
- 以第10章作为纲要全面复习这本书, 看完了!
每周都能有新的收获, 这样看书效果会好很多. 如果有必要, 可以把书拆成活页, 每次就主攻这一点, 这也是我一直倡导的“活页读书法”. 另外, 也可以在分治中引入贪心策略, 挑选最难/最简单的去啃掉那一章, 至于选难还是易则看个人具体情况了.
当然, 分治算法真正的精髓在于分的过程之后去芜存菁, 从而提升算法效率. 也许你在多门功课的学习中划分得比较好, 学习了某个模块之后让很多课程都能受益, 从而减少了重复学习.
优化自己变成better version
为了让自己不断变好, 而不是为了别人改变自己. 这是一个寻求全局最优解的问题. 可以在局部搜索不断改变自己的行为模式来调整, 也可以改变思维模式进行大的调整. 总之, 今天的自我必须要比以往更好. 关于这点我们就不多说了, 励志的鸡汤到处都是.
如果说算法都是策略, 而成就最好的自我则是人生的目标函数.
Just do it
光有算法不去运行程序也是白搭, 所以, 认真看完这段励志的视频之后, 行动起来吧!