我是在元旦之时意识到发生在我身上的这个严峻的问题的。
那时跟我家橙子及她朋友们一赶快到佛山玩几天,最后一天是回到广州去了一个地方摘草莓。当时我和小橙子一组,他们一对一组,摘了一会儿我就停下来了。
我望着面前一排排田垄,不禁停下来思考一个问题:我站在一条沟槽中,可以摘两边也就是两排的草莓;把这个草莓园视为一个二维数组,每个元素上都可能会有我们想摘的草莓,那么摘完所有的草莓其实就是把这个二维数组遍历一遍。而实际上,我们不是果农,我们也不会摘下所有成熟的草莓,我们可能只是摘个两三斤就满足了,所以问题是如何以最短的路径遍历尽可能多的元素。说到这里,那么答案也很简单,“之”字形走一遍就好了。但其实条件不仅仅是这样,我们要考虑最优解,也就是尽可能地优化这个结果,那么就得考虑到我们目标完成之后所处的位置应离出口尽可能的近。
而实际上,这里的条件是有着不确定性的,那么应该怎样尽量地优化路径达到期望值呢?想到这里,不谙算法的我不由得陷入了深深的困惑与沉思之中。于是当那一对朋友摘了快半篮子之后,我才从发愣中醒悟过来看着自己手上提的近乎空空如也的篮子。
这让我又不由得陷入了另一番沉思,思考一个本如娱乐的活动我为什么会不由自主地代入到想出一个算法去解决面临的问题。
那天晚上我还去参加了一个朋友的婚礼。在宴席之上,另一个朋友问我《经济学原理》看得怎么样了。我答曰才刚开始,未看多少,但是看问题的角度让我很受启发。朋友大表同意。朋友是做电子商务的,正是他向我推荐的这本书。他问我,是不是像打开了新世界的大门?我不得不深为同意。
长期的代码劳作,长期地浸淫在编程之中,让我早已形成了一种程序员的思维,并习惯于把它带入到生活之中。不得不说,这种思维让我在工作的完成上效率不断地提高,这种熟悉也让我在写代码上越来越自信。把它应用到生活上来之后,许多时候也确实地提高了做事效率,带来了不少的益处。但同时,它也在慢慢地固化我的思维,让我在遇到问题时自然而然地以这种思维去思考解决的方案。固化之后,我也感觉思考也在钝化和僵化。
用程序的思维去找到最优的方案来解决一个问题,但这个方案真的就是针对于问题本身而言的最优解决方案吗?不见得。也许从另一个角度出发去思考,又有一种完全不同的方式去解决呢?就如那个时候我在车上听到的一个关于经济学上的小故事:
有一条高速公路和一条普通公路。很多人开车到了这两条公路前面,都会选择走高速公路。当高速公路上的车越来越多后,就渐渐地慢了下来,最终高速公路上的车的速度比普通公路的还慢。
怎么解决呢?
那时候我立马想到的是,在入口挂两个屏幕,提示两条公路当前的行驶速度及拥堵路况,以帮助人们正确地选择就可以了嘛。数据可以从一个车进出公路的时间来计算,也可以从导航软件上采集。这是种追求优化的方案。
但我在车上听到的答案似乎更简单。设个收费口,适当收费高速费,让一些需求不强烈的人自己选择走普通公路,这样便筛掉了一部分要进高速的车了。
哪种方案更好?从短期和长期的效益成本实施成本等多个角度上来看,答案各有不同。但再把思维发散下,也许其他专业上还有更多的解决方法呢?
当思维慢慢地被固化,犹如温水煮青蛙般,很难惊觉。只是思维在慢慢在被局限,它带来的危险时,当我无法找到一种较好的算法来解决问题时,我会把自己陷入一个需要求助的困境之中。