拍给程序员看的电影

2009-07-04 23:42:27   来自: AlbertLee
Next / 预见未来的评论   5 star rating5 star rating5 star rating5 star rating5 star rating
提示: 有关键情节透露


  这个片子一点都不文艺。因此我很喜欢。因此本评论写给程序员看。
  这是我见过的关于“未来”“时 间旅行“一类电影中剧情最严密,逻辑最自圆其说的一部片子。
  我怀疑编剧是个程序员。
  
  首先简单回顾下剧情:主角起初可以预见到两分钟内的未来情况,因此可以提前趋利避祸。后来他为了遇到了一个命中注定的女人,去尾行(tail)跟随她来到了大峡谷。他发现和这个女人在一起时,他可以预见到更远的未来。后面的剧情,就是被一些没看懂的人大骂被耍了的情节:主角预见到比较远的未来,在未来,他又不断产生各个分支去搜索各种结局,最后这条路径还是无法找到最优解(其实是获得了一个最差的结果,全都死掉了),因此在电影的最后,整条搜索分支都回溯回远点。
  
  显然,他运用了递归的能力。这一点在电影的高潮,码头仓库一段体现的最淋漓尽致:他在每条岔路口都递归的去搜索。这个情节简直可以拿来放到计算机算法课上当课件用了。
  
  其实在电影的最后,主角选择了和政府合作共同打击黑恶势力,还很狗血的说了几句挺哲理的话。但这就是结局么? 醒醒吧,这是编剧照顾文艺小资们的情绪故意卖的破绽。谁家用递归写个深度优先的搜索会只搜索一条分支呢?!
  
  而那句很狗血的话:关于未来的一个特性就是每次你看着他时他会改变,因为你看着他了。
  这分明是对side effect 的批判嘛,在另一部伟大的电影butterfly effect 中也有对 side effect 的深刻批判。因为有了副作用,程序的行为将变得不可预知,程序的正确性验证也就无从谈起。这是主角对纯粹函数式开发的深切呼唤。
  
  通过FP还有另一个好处:并行
  关于这段搜索的情节,有几点值得主义的:他同时并行执行了多个搜索任务。但是在电影里,又似乎不是纯粹的并行,因为其他的搜索分支会知道之前的搜索结果,进行剪枝。这算是搜索优化。
  
  
  关于递归,大家基本上都认同吧。那么为什么起初主角只能预见两分钟,而后来尾随了一个mm后就人品大爆发了呢?真相就是他开始”尾递归”了。
  
  关于电影名 “next” 。 这是表示迭代中止,跳转的语句。
  
  另外,关于未来的计算,未来的过程,大家想起点什么来没??continuation。
  
  think about it. 为了宣传FP的思想,老美居然拍了部电影,真是寓教于乐阿。
  

2009-07-04 23:57:54 飞天德

  似乎还不能叫做递归,只是一个广度优先回溯吧。如果硬要往FP上扯得话,那么他搜索时扩展结点的方式是并行的,和map+filter差不多。

2009-07-05 00:07:21 AlbertLee

  应当是混合了广度和深度。 你是说 map filter 还是 map reduce ?
  FP 的一个好处就是方便并行,因为没有副作用,不会修改全局变量因此各个搜索人如可以方便的分配到不同的cpu上并行的执行。但是在电影里,又似乎不是纯粹的并行,因为其他的搜索分支会知道之前的搜索结果,进行剪枝。这算是搜索优化。

2009-07-05 00:15:56 飞天德

  呃是这样,并行仅指某一状态结点扩展其子节点的时候。你说的那个会知道之前的搜索结果是躲子弹那块儿吧,那个搜索已经包含了好几次结点扩展的过程啦。

2009-07-05 00:17:04 AlbertLee

  我想的是路径搜索那段。不过本文纯粹戏说,呵呵

2009-07-05 00:28:08 飞天德

  嗯,这么说也对。
  
  不过关于时空悖论的,推荐你看Futurama,挺好玩的

2009-07-05 00:31:33 AlbertLee

  我觉得这个不完全是个关于 时空悖论的,更像是计算机弈棋问题,player与命运进行博弈,假设他能知道各种结果,进行搜索剪枝。开始的时候用基于stack的naive算法,只能搜索几步。后来换了种算法,棋力大涨了。

2009-07-05 07:51:24 est

  Lee 太牛了~~~

2009-07-05 08:41:57 jt.rocky

  大牛Lee。

2009-07-05 09:56:21 hacker47

  我服了。
  

2009-07-05 10:28:39 鼠标炸弹

  妙谈

2009-07-05 12:14:50 悟怡

  太牛了

2009-07-05 12:15:33 symbol:X

  不错 哦,程序思维!

2009-07-05 14:43:45 fnsoxt

  看了你这个影评才看电影的,非常好看。同样热爱python

2009-07-06 01:41:12 FLY

  自从看了王小波,我觉得学理的更适合从文,呵呵

2009-07-06 11:23:10 小路

  我必须得说..数学也有这种概念,且一般人到了大学都可以接触到数学....愿意接触深的就接触到了..纯属巧合....
  
  偶当年用计算机的思维完全套用黑客帝国,竟然也能套同,比如计算机史上出过病毒杀病毒的理论来解释XX的存在..主角显然是一个病毒或者蠕虫一样的存在....
  
  能不能解释为.黑客帝国用来宣传计算机安全知识呢?

2009-07-06 11:58:38 AlbertLee

  是的。当时在金山毒霸时组里曾经组织过观摩《Matrix》,探讨计算机安全与杀毒软件。写过读后感。

2009-07-07 04:01:07 tutu

  大牛 鉴定完毕

2009-07-08 22:02:00 雪影幽兰

  很不错的角度~~
  的确不是女主角的神力,而是爱让他想方设法的想去知道更久以后的事,而灵光一闪的聪明:
  在二分钟末尾预测下一个二分钟,and so on~~完全可程序化~~

2009-07-14 10:27:14 Smile

  我决定再看一遍~~

2009-07-14 12:18:37 非子临

  以前有机会在影院看这部电影,我没去好好珍惜,现在想起来后悔莫及,如果再给我一次机会,我一定把这程序电影看完!

2009-08-03 15:50:42 书影|真.不宅

  哈哈~影评比片子有意思~
  

2009-08-05 23:52:48 晓岩

  有想法 很有想法!

2009-08-21 09:17:30 念兹在兹

  所有的时间系统都没有预见性,因为那样不稳定。

2009-08-24 16:32:23 Scaube

  烂片一部,有什么好说的

2009-08-27 00:44:39 景天

  这评论NB

2009-09-12 23:52:47 harry

  评论貌似很不同,,见过新颖的有深度的,没见过这么新的

2009-09-23 23:37:28 果仔

  影评有创意,但是LZ是否想太多。。。。。。

2009-10-03 15:03:54 Nahash

  wow程序员?!你的构思非常新颖!!!!!!!

2009-10-03 17:58:37 zyf

  well,好有爱的程序员。


>Next

预见未来 Next
制片国家/地区: 美国
官方网站: http://www.nextmovie.com/
编剧: Gary Goldman, Jonathan Hensleigh, Paul Bernbaum, Gary Goldman, Philip K. Dick
影名: Next
导演: Lee Tamahori
简体中文名: 预见未来
上映日期: 2007-04-27
imdb编号: tt0435705
语言: 英语, 法语, 德语
主演: Nicolas Cage, Julianne Moore, Jessica Biel, Thomas Kretschmann, Tory Kittles, José Zúñiga
又名: 惊魂下一秒, 关键下一秒, 天眼救未来, 先知先觉, 预见未来

AlbertLee的其他评论   · · · · · ·