计算思维技能的算法思维

如题所述

在计算思维技能中,算法思维具有非常鲜明的计算机科学特征。
有些问题是一次性的,但解决这些问题的方案,则可以不断发展。在同类问题一再出现时,算法思维就可以介入。没有必要重新每次从头思考,而是采用每次都行之有效的解决方案。
算法思维在许多“策略性“棋盘游戏中非常重要。理想情况下需要有保证胜利,或者至少不会输的策略。所有这种策略都是一套规则,告诉你无需思索即怎么做每一步:也就是计算机科学家称之为算法的东西。如果你能建立这样的一套规则,这不仅可以成为完好游戏的基础,也成为一个设计优秀的计算机程序的基础。无论老幼,只要准遵循这套规则,就可以玩好这场游戏!
算法思维是在思考使用算法来解决问题的方法。这是学习自己编写计算机程序时需要开发的核心技术。
囚徒困境(prisoner's dilemma)是博弈论的非零和博弈中具代表性的例子,反映个人最佳选择并非团体最佳选择。虽然困境本身只属模型性质,但现实中的价格竞争、环境保护等方面,也会频繁出现类似情况。
这个1950年代提出的囚徒困境的典型案例是:两个罪犯准备抢劫银行,但作案前失手被擒。警方怀疑他们意图抢劫,苦于证据只够起诉非法持有枪械,于是将其分开审讯。为离间双方,警方分别对两人说:若你们都保持沉默(“合作”),则一同入狱1年。若是互相检举(互相“背叛”),则一同入狱5年。若你认罪并检举对方(“背叛”对方),他保持沉默,他入狱10年,你可以获释(反之亦然)。结果两人都选择了招供。孤立地看,这是最符合个体利益的“理性”选择(以A为例:若B招供,自己招供获刑5年,不招供获刑10年;若B不招供,自己招供可以免刑,不招供获刑1年。两种情况下,选择招供都更有利),事实上却比两人都拒不招供的结果糟。由囚徒困境可知,公共生活中,如果每个人都从眼前利益、个人利益出发,结果会对整体的利益(间接对个人的利益)造成伤害。
为解决“囚徒困境”难题,美国曾组织竞赛,要求参赛者根据“重复囚徒困境”(双方不止一次相遇,“背叛”可能在以后遭到报复)来设计程序,将程序输入计算机反复互相博弈,以最终得分评估优劣(双方合作各得3分;双方背叛各得1分;一方合作一方背叛,合作方得0分,背叛方得5分)。有些程序采用“随机”对策;有些采用“永远背叛”;有些采用“永远合作”……结果,加拿大多伦多大学的阿纳托尔·拉帕波特教授的“一报还一报”策略夺得了最高分。
“一报还一报”策略是这样的:我方在第一次相遇时选择合作,之后就采取对方上一次的选择。这意味着在对方每一次背叛后,我方就“以牙还牙”,也背叛一次;对方每一次合作后,我方就“以德报德”一次。
该策略有别于“善良”的“永远合作”或“邪恶”的“永远背叛”对策,及对方一旦“不忠”,我方就不再给机会,长久对抗的策略。
如果你选择“永远背叛”策略,你或许会在第一局拿到最高分,但之后的各局可能都只能拿到低分,最后虽然可能“战胜”不少对手,但由于总分很低,最终难逃被淘汰出局的命运。所以除非很难与对方再次相遇,不用担心其日后的反应,才可选择对抗与背叛;否则,在长期互动、博弈的关系中,“一报还一报”是最佳策略:它是善意的,从不首先背叛;它不迂腐,不管过去相处多好,仍然对背叛有反应;它是宽容的,不因一次背叛而选择玉石俱焚。

温馨提示:答案为网友推荐,仅供参考
相似回答