????????第1章 1.2节,问题描述与抽象。
????????什么是抽象?为什么要抽象?什么是建模?建什么模?
????????看到上面一大堆问题,如果直接给出定义,很难记住,而且我们也不太愿意去记。我们可以拿生活中的例子来帮助我们理解,例如,早上去买菜,别人问你买了些什么?你会说买了一些蔬菜和水果。可能你买了很多的胡萝卜,白菜,玉米,茄子,还有草莓,西瓜等等。当别人问你买了些什么,你一般不会把你所有的都挨个讲出来,而是简要地回答买了一些蔬菜和水果。从这个例子中,我们关注的是菜篮子里的本质特征,即水果和蔬菜,而忽略了菜篮子里水果和蔬菜的种类、形状等,再比如水果是酸的还是甜的,这些我们都忽略。简单的说,抽象,抽:抽出;象:形象,特征。抽象,把象都抽掉了,剩下的就是质,就是本质性的东西。抽象是抽出事物共同的特征。
????????我们还以刚才的菜为例,如果我们的问题背景是吃什么,我们可以从菜篮子里抽象出水果和蔬菜;如果我们的问题背景是研究版面设计,用形状表达就可以了,蔬菜用矩形,水果用圆形表示;如果我们的问题背景是研究营养搭配,用不同的颜色,蔬菜用紫色,水果用红色表示。从这里我们可以看出,抽象是面向问题的简化描述方法,具体怎么描述,取决于我们研究的问题。
????????为什么要抽象?不抽象不能解决问题吗?抽象是人们求解问题时的认知过程和思维方法,从个别中把握一般,从现象把握本质。我们以人口普查这个问题为例,对一堆人群做人口普查工作。我们需要对人进行抽象,去掉人的爱好、性格、这个人的声音、这个人长得什么样等特征,而要抽象出:姓名、年龄、性别、地址等这些人共同具有的本质属性来表现不同的人。我们把这些共有的本质属性抽取出来形成一个框架,这个框架既可以适用于北京地区的人口普查,也适用于上海的人口普查,其它边远地区的人口普查也适用。在以人口普查为背景的问题下,我们对人抽象,形成一套适合所有地区人口普查的框架,减少重复工作。
????????建模,先来看看书本上是怎么定义建模这个名词的。建模是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。凡是用模型描述系统的因果关系或相互关系的过程都属于建模。建模是把现实中的系统进行模拟或者抽象,通俗来讲,就是把实际的事物用合适的形象表示出来。理解起来还是有点难,我们可以简单的概括一下,建模是一种过程,它可以将复杂的事物简化为可理解的有限图示。
????????从上面的描述中,我们可以提取出两个关键词:模型,建模。模型是指为了一定目的,对事物原型的一种抽象,例如航空3D模型是对现实中飞机的一个抽象表达,再比如城市交通模型是对城市交通系统的一个抽象表达。建模,即建立模型,我们对模型有一个输入,那么会得到一个输出,这样一个过程称为建模,用模型来描述相互关系的过程。例如,我们举一个例子,人口增长预测数学模型,这个模型是用来预测人口增长的,我输入第n年,会得到一个人口的增长数据表,这个过程就是建模。
????????模型有很多种,不仅仅是我们上面举例的数学模型,建模有很多种:
????????生活中,常常会遇到这样的问题,找不着手机了。这时候,用人的思维去找手机,你肯定会去熟悉的位置找,比如去房间里的书桌上找。你的印象中有一个大致的位置,然后根据这个位置去房间里找。但是,如果让计算机来找手机,情况就不一样了。它会不厌其烦地把整个房间遍历一遍,就是全部扫一遍,那可能会找不着吗?只要手机在房间里,那肯定能找着。
????????可以看到,计算机的思维和人不同。在面向计算机的问题分析时,我们关心的是,人需要怎么做,计算机才能做什么。计算机在解决一些问题的时候,人需要做的是问题描述、抽象、建模,计算机才能做求解结果。我们总结一下,面向计算机的问题求解,人需要首先完成问题描述、抽象、建模,并且做好精确的算法设计、正确的程序编制,计算机才能做好计算。
????????面向计算机的问题分析,是人和计算机完成各自的事情。计算机是实现人的思维的,但是因为人和计算机各自的能力与优势不同,使得求解问题的方法有很大的不同。
1.问题描述、抽象与建模
???主要内容:
????????????????(1).什么是抽象?抽象是对具体问题的简要表达。
????????????????(2).为什么要抽象?抽象可以把事物的共同特征提取出来,形成一套适合所有实例的框架。
????????????????(3).什么是建模?建模是一种问题求解的过程,用模型来描述相互关系的过程就是建模。
????????????????(4).建什么模?建模有很多种,如数学建模,数据建模,3D建模等。
2.面向计算机的问题分析
???主要内容:
????????????????(1).计算机的思维和人不同。
????????????????(2).面向计算机的问题求解,人需要完成问题描述、抽象、建模,并且做好算法、程序,计算机才能做好计算。