本文脱胎于北理的大学计算机网课。是本人闲暇之余自学整理,中间夹杂着自己的想法,因此,若笔者有理解上的错误,还望阁下指出。
导读
本文题为"哲学",是因为笔者发现在对知识的阐述过程中,既有认识世界的部分,又有改造世界的部分。即既有世界观,又有方法论。它不是针对某一个具体问题,而是对诸多问题都能起到作用。具有"普适性"。
本文主要分三部分
- 具体问题的抽象和建模
- 基于计算机的问题求解方法
- 求解方法背后的理论基础
其中前两点组成对问题的解决全程,是本文的重点。而最后一点只是略微补充。
内容
以往我们学一些科学实验类科目。就会经历“发现问题---分析问题---解决问题” 的三步。此处也是如此,"具体问题的抽象和建模"涉及发现问题和分析问题,"基于计算机的问题求解方法"涉及解决问题。
先来了解什么是抽象和建模。
抽象
抽象:简单来说就是寻找主要矛盾,也就是重点论。抽象所面对的,是很多因素,抽象就是找到其中对解决当前问题最重要的。
打个比方吧。女朋友和你吵架了,说到“你是不是不喜欢我了。你以前天天给我发消息,最近我主动找你聊天你都没回我。还有,上次你说带我去...玩,拖了好多天也没有去。还有那次,她找你你就去了。我找你你怎么就没去呢?”
看起来她生气的原因有好多,这可怎么办?
找到最关键的。
就听她首先抱怨的,那个往往就是正确答案。很多时候,情侣的小摩擦多了去。二人也就没太在意。关系依然很好。可突然有一个大问题产生,你不去管,指望另一方对此别太在意。谁知这是个大问题。她一下子就爆发了,顺带着,就把以前的小问题也都带了出来。看到没,小问题只是连带的。没有大问题=什么都没有。有了大问题=大问题+小问题 x N 。
很多时候,解决了大问题,小问题也就随之消散了。
这里就是在抽象,是对一个对象的众因素的抽象。有好多的问题。我抽象出最重要的,解决了,也就完事大吉了。
还有一种抽象,是对多个对象的本质进行抽象。
体育老师让我找一些男生参加篮球比赛。但我怎么知道该选谁呢?如果眼下有一张表,上面罗列了他们的信息。
足球经验 | 篮球经验 | 排球经验 |
---|---|---|
~ | ~ | ~ |
你说我选什么,当然是篮球经验。抽象,就是这么个道理。
建模
建模:顾名思义,建立模型。光脑子里有还不行,必须要展现出来,做成模型。
刚才我们已经对问题进行了抽象处理。现在,我们要具象化处理。你可以借助一门语言展现你的模型。这门语言多为数学。
对于刚才的选篮球队问题,我们的抽象只是停留在大脑的思考。现在,我们要实际的行动。
实现人的筛选,借助数学的语言。我们这个模型,就是一个表格,里面收集的是学生篮球经验的数据。他曾经获得了什么奖,哪一年的,那年难度怎么样。这会决定模型最终结果的加权走向。
前期准备工作就到此了。
现在,我们只是需要实现自己抽象模型的手段。这就是接下来要说的"基于计算机的问题求解"。
基于计算机的问题求解
怎么用计算机实现刚才的想法呢?
这里也分三方面:软件,程序,系统的工程
你发现,excel就可以满足你的需求,问题解决了。这就是软件。
你没找到合适的软件。这是常态。软件只能解决已有的问题,面对新的问题,自然需要新的方法。既然没有,那就自己写一个。最难的路已经走过(问题的抽象建模),剩下的就是具体实施。这就是程序。
虽然你知道该怎么做,但只靠自己的计算机做不要。你需要大量计算机综合在一起为你的目标服务。这就是系统的工程。
求解方法背后的理论基础
关于这点,只是补充内容。说说我的感受。
以上的"基于计算机的问题求解",虽然已经到了解决问题的最后阶段。但这方面的实现也是需要知识的。
计算机科学:一门科学。凡是涉及计算和信息的都可以囊括在列。
计算机学科:一个学科,也叫"计算机科学与技术"。围绕计算机学习结构和应用。
如果你的问题觉得还行,就先在计算机学科中寻找出路。
如果你的问题很复杂,应该在计算机科学中寻找出路。
END