« 酒后的故事(2)——脱险〖生活算法系列4〗—生活算法案例 »

〖生活算法系列3〗—用图表符号呈现算法

算法可以说是寻找方法的方法。在程序设计算法中,“人们常常把算法看成是用某种精确的语言写成的程序。算法或程序的执行就是计算(《信息技术导论(第2版)》P31)”。在程序设计中的问题往往是生活问题的精练、抽象,基本上都是界定清晰的问题(well-defined problem)。而生活中面对的问题往往比编程问题受到更多方面的影响,很多都是界定含糊的问题(ill-defined problem)。因此,生活算法有可能用并不精确的语言来表述出能精确执行或分析的程序。
生活中面对着简单的与复杂的、经历过的与从没有的问题时会有着不同的生活算法。
真实生活中,面对简单一些的或者经历过的问题时,人们往往会从记忆中寻找方法。这时,找到方法的过程主要是回忆的过程。在这个过程中首先需要分析问题,然后回忆并搜寻以往的解决方法。每天早晨的起床就是这样的一个过程。早上醒后,需要起来、下地、穿衣服、叠被子……每天起床时都会遵守这个过程。时间久了就形成了一种习惯,以至于起床时就会下意识地完成这些活动。在这样的过程中,记忆占据了重要部分。时间距离越近、重复次数越多的事情会记忆越深刻,会在回忆中首先记起来。
利用已有的经验在类似问题的解决中,并不是完全依靠是记忆。诗人说过“人无法踏入同一条河流”。事情没有简单地重复,解决方法也不能简单地照搬。多年来每天起床的步骤可能是相同的,但细节会有或多或少的不同。今天的衣服与昨天的不同、今天下地时鞋的位置与以往的不同……。这些细节上的差异在具体工作步骤中是需要思考的。分析我们面临的问题、从记忆中搜索以往步骤,在实施过程中调控方法,这个过程也是一种算法。
生活中问题并不都是我们经历过的、简单的。人们感到最困难的问题是那些没有经历过的、相对复杂的。这些问题可能如何解决呢?会用到多种不同的算法来解决。例如可以将复杂的问题进行分解,形成相对简单的问题,甚至是一些细微的操作。而简单的问题甚至一些微操作就是我们曾经经历过的了。当然,在这其中也存在问题,因为分解问题本身就是一种问题。这些问题中都有着算法的身影。
为了更好掌握算法,利用算法来解决问题,就需要尽量地把它表现出来。明确表现出来的算法会对我们有更大的帮助。
在表达、分析、设计算法的过程中,可以使用图表、符号、文字等分成层级化、结构化、流程化三种不同的表现形式来表现出来。
解决问题是从理解问题开始。理解问题需要搞清楚三个方面的关系。首先是层级关系。即问题中各个部分/概念的上位与下位、抽象与具体等关系。象我们的总体目标是什么,子目标是什么……都是层级问题。明确层级了层次关系就明确了我们做事情的目标;另一个方面是结构关系,是核心部分/.概念与其他各个部分/概念的相互关系。例如,解决的这个问题中与其他问题有什么相互影响,哪个条件影响这个问题的解决……,都是结构关系。更清晰地明确了结构关系,就知道了影响我们解决问题的关键何在;有了前两种关系理解,才能更好地形成次序关系。次序关系是解决问题的过程。在解决问题时经常会按照时间或者其他某些线索按照一定次序去完成的。
对层级、结构、次序关系的表现是将生活算法呈现出来的的重要方面。
1.利用图表、符号表现不同的层级关系。
例如,对经典问题-“先有鸡还是先有蛋”进行分析时就可以使用图表、符号,表示为下图:
 
图 鸡与蛋的关系(图略)
  在图中蛋与蛋之间有着微小的差异,鸡与鸡之间也有着微小的差异。随着时间的变化、差异之间的积累,可以推算出在远古时代的“鸡”与“蛋”是否还是现在意义的“鸡”与“蛋”?
  在这里,利用了图的形式来表现不同主体之间的变化。利用图表与符号表现出的概念(不同的鸡、不同的蛋)之间的关系,事物间的关系自然体现出来。
  明确了事物间的关系,自然就更容易找到解决问题的步骤这类次序关系。象这样用图表明确出来的算法也会使我们的思路更清晰。
 2.用图表、符号表现问题解决的次序。
  如同前面“买菜与买书”中所举的例子中,用符号、图表的形式还可以表现出解决问题的不同次序。利用这些图示化的方法与步骤,进行研究,会更容易找到贴近于生活、更合适的一种解决方法。
  对方法与步骤的图表化有利于进行算法设计、进行算法分析和算法优化。
3.呈现算法中常用符号
  使用图表、符号来表现生活算法时,可以借用流程图的一些规则和画法。在流程图中常用的符号有:
图(略)
  在使用流程图表现算法时还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都可以不画箭头,流程线的走向总是从上向下或从左向右。
  生活中的问题有着更多的变量,对应着更多的算法,因此生活中除了图表、符号外,有些算法需要直接用语言文字来描述的。用图表、符号表现出来的算法能够将我们的头脑深处的思维一一展现出来。

【系列内容,随时更改,暂勿学术引用】

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们

日历

最新评论

最近发表

Powered By Z-Blog 1.7 Laputa Build 70216

Copyright 2003-2007 芸心芹意 bean.being.org.cn Some Rights Reserved.