贪婪算法与黑箱测试——我们是如何选择的

首先简单介绍一下贪婪算法和黑箱测试的概念:

简单来说,贪婪算法就是通过局部最优达到整体最优的算法。当一个任务过于庞大,无法从整体上计算寻求最优解的时候,往往需要对任务进行拆解细分成许多小任务逐一完成再组合起来。贪婪算法就是希望通过将任务拆解细分到能够计算的程度,希望通过细分子任务最优的方式达到组合后整体任务最优。

一个典型的系统往往是这样的:输入——系统函数——输出。因此,要想知道什么样的输入能得到什么样的输出,了解中间的系统函数是至关重要的一环。但可惜的是,因为某些原因的限制,我们无法知道这个系统的具体情况,不了解它是如何处理输入数据的。这个时候,这一系统函数对我们来说就是一个黑箱子。针对这一黑箱的测试即为黑箱测试。一般是通过控制变量法,不断改变输入元素的组成,通过分析输出与输入的对应关系,反推出系统函数的具体形式。

贪婪算法有这样一个特点:先不去考虑不同的贪婪策略,如果贪婪的次数越少,那么越有可能达到整体最优。这一点是显而易见的,如果对整体取贪婪,即只取一次最优时,虽然不同的策略可能有不同的结果,但得到的必然是整体最优解。换句话说,如果我们能从更多角度,更大范围地对问题深入分析,那么得到好结果的可能性也会相应提高。

而黑箱测试在生活中其实是非常常见的:我们知道通过按开机键启动电脑、知道离火太近会被灼伤、知道某种药材可以用来治病。这些东西是可以通过经验总结出来的,但至于为什么,又有几个人能够彻底说的清楚呢?这也是科学界绕不开的一大问题:我们所有的研究成果,被实验验证的理论,都是基于观察得到的,实际并不清楚其根本原因。例如《三体》里的农场主理论,原型是英国哲学家伯特兰•罗素提出的火鸡问题:在火鸡饲养场里,一只火鸡发现,每天上午9点钟主人给它喂食。它并不马上做出结论,而是慢慢观察,一直收集了有关上午9点给它喂食这一事实的大量观察证据:雨天和晴天,热天和冷天,星期三和星期四,各种各样的情况。最后,它得出了下面的结论:“主人总是在上午9点钟给我喂食。”可是,事情并不像它所想象的那样简单和乐观:在圣诞节前一天的9点,主人没有给它喂食,而是把它宰杀。

如果我们将两者结合起来,就会发现这两者是如何构筑我们思考和选择的了:我们总结归纳前人走过的道路,得到了“什么因结什么果”的基本认知,从而指导自己,在有限的已知信息里选择自己决定最好的选项,如此往复循环。

说到这里也就能理解了:家长们总希望孩子学尽可能多的东西;老人们总希望子女别太折腾,找个稳定的工作就好……当然,也肯定会有人说“读书不一定有用”,“不拼搏岂不妄负人生”之类的。无无意去辩驳价值取向的问题。毕竟黑箱测试的结果各种各样,人们从未能精确分解导致某种结果的每一个影响因素,加上个体差异,最终如何选择还得看个人相信何种“黑箱测试”的结果。总结来说,人们非常依赖过往的经验,因此开先河永远是极其困难的事情,想做第一个吃螃蟹的人需要很大勇气。从某种角度上来说,即使是所谓开创性的第一次尝试,未必没有受到相近”黑箱测试“结果的影响。

由于我们都是从观测到的黑箱测试结果来进行选择,根据贪婪算法的特点,  显然年长有经验的人更加占据优势。因为他们有更多的“黑箱测试”结果可以依靠,即能从更大范围内寻求最优。什么是远见?不求全盘知晓,只需技高一筹,棋胜一招。因为有经验者潜在的可贪婪范围比较大,所以更可能做出更好的选择。

当然了,世事无绝对。 在什么情况下菜鸟能胜过老鸟呢?答案显然是:变革。人做选择的前提是根据自己的经验和常识,而越有经验的人,在遇到变革的时候往往也会为经验所累(如果你将某个结果验证了成千上万遍,那么也会将其当成是真理,就好像那只火鸡)。这也是为什么往往老人更容易 固执己见,想来用来一辈子的东西,若要推翻真的一件难以接受的事情。

写到这里,我们可以大致得到这样一个结论:人是通过观察归纳总结来认识世界的,然后在这一基础上使用某种贪婪策略去寻找最优解。至于这种策略是如何制定的,会受到哪些因素影响,这个有问题又需要通过大量的“黑箱测试”来归纳。于是乎,我们的认知和结论,就好像农场里的火鸡,等着被变革杀掉的那一天。

你可能感兴趣的:(贪婪算法与黑箱测试——我们是如何选择的)