中国开发网: 论坛: 程序员情感CBD: 贴子 207511
Apache: 【胡扯贴】
首先声明: 喝了三瓶啤酒

从卫生间引起的联想。
坐在马桶上,看见卫生间的地板上积了一滩水,我脚下一动,水面引起波澜,不过很快又恢复平静。我再一动,还会波动,不过很快又会恢复平静。这让我思考。
假如,水面平静比作我们程序正确输出的结果,而波澜是错误的输出结果。
你就会发现,始终有一个因素,促使水面趋于平静。不管过程中有什么干扰,总会趋于平静,只是时间长短的问题。
就水面的问题而言,这个因素很容易想到-地心引力。
就程序而言,这个因素是什么呢?
长期以来,我们写程序是在不断避免错误的发生,从而引入各种检查机制,就像一队看守看着一箱金子,第一个人看着金子,第二个人看着第一个人,如此反复。
就看金子这件事而言,事件趋于稳定的因素是金子被偷。而不稳定的因素是金子保存完好,所以说,无论我们如何建立保存金子的机制,事情一样会向趋于稳定因素的方向前进。也就是金子一定会被偷,只是个时间问题,这个时间取决于各个看守放弃自己任务的时间,放在程序里,也就是所谓的错误检查机制失效的时间。
再看看我们和机器之间的区别,我们是靠什么来决定我们自身的行为的?而机器又是靠什么呢?
不难回答,我们是靠经验来决定我们下一步的行动(当然,这里还有一些其他决定因素,即使不是主要的决定因素,比如:情感),而机器呢?是靠所谓的逻辑。
就人类而言,排除行为部件衰老的问题,人在做某件事的正确率和完成速度上会随着经验的积累不断增长,比如说:投篮,如果排除人类各方面机能衰退的因素话,无疑一个人投篮会随着不断练习而更加准确。
而机器呢?所谓的逻辑,由人设计出来的行为 准测,本身逻辑的诞生也是由人的经验而得。
环顾生活当中,是不是有些事。你并不知道为什么是对的,但凭经验,会向所谓对的方向去行动。
比如说,量变和质变之间的关系。
你走在路上,遇见一块石头,现在有两种选择,迈过去 or 被绊一下 ,按照经验方式的判断,如果我被绊一下,会有可能摔倒,摔倒会引起对我的伤害,无论大小。对我的伤害是不正确的,所以应该避免,虽然迈过去会也有可能引起伤害,但通过经验值的比较,我们很快会得出结论,并且将这个结论作为一条经验保存起来,作为下一次指导行动的依据。
按照机器的决策方式。首先会估计迈过去和被绊一下 各有多少几率获得伤害,另外对伤害的定义还是一个问题,流血量超过50cc算伤害?
这中间就有很多的未知因素,是机器无法获得的,比如如何推测被绊一下后获得伤害的几率。这要考虑很多问题,比如:你的反映速度,前方地面的坚硬程度,你鞋子的摩擦力,以及你身体于地面接触的面积及角度等等问题。

总而言之,决定程序运行的指导因素(注意:我说的是指导因素)是什么? 应该是程序运行累积下的经验,而不是逻辑。当然,逻辑在程序的控制和以及为决策因素提供依据的方面上还是十分有用处的。











相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录