第六章 学习目标
★ 理解问题解决的过程与方法;
★ 掌握算法、程序的基本概念;
★ 理解结构化程序设计的三种基本结构的流程图表示;
★ 了解算法设计的基本方法、程序设计的一般过程;
★ 简单了解数据结构。
§6.1问题解决与过程

1.什么是问题解决
人类社会实践领域中,存在各种各样的矛盾和问题。不断解决问题是人类社会发展的需要。问题求解的技术以及思维过程与任何领域、任何人都有关。人们在日常生活中发现问题、提出问题、分析问题,并运用一些知识加以解决
A.什么是问题
问题意味着个体处于这样一种情境:对于面对的问题,试图解决它,但应用已有的知识或现成的方法又不能解决。这种情境称为问题情境。
纽厄尔和西蒙认为:问题虽然有简单或复杂、具体或抽象之分,但每个问题都包含三个要素:
(1)起始状态:一组关于问题已知条件的描述;
(2)目标状态:即问题要求的答案;
(3)障碍:在起始状态与目标状态之间存在一系列需要加以克服的因素。
由此可以将“问题” 定义如下:
问题是在起始状态与目标状态之间存在某些障碍需要加以克服的情境。

B、问题的类型
问题分为两类 :结构良好问题和结构不良问题
(1)结构良好问题:这类问题有两个基本特征 :
a.问题的明确性。问题界定清晰,条件清楚,目标明确 。
b.解法的确定性。是指问题解决过程中每一个步骤都有明确的定义,不允许模棱两可的解释。在各学科中,结构良好问题一般都是与一定的知识领域相联系。
(2)结构不良问题:这类问题在结构上具有不明确性。例如问题界定模糊,条件不清楚,目标不明确,在解法规则和答案上具有模糊性和开放性。
实际情境中的真实问题,许多都是结构不良问题。为了解决这种问题,学习者要自己明确问题的目标,并确定解决问题所需要的信息和技能。
C、问题解决的特征
问题解决是指利用某些方法和策略,使问题研究者从初始状态的情境达到目标状态的情境的过程。
问题解决具有三个基本特征:
(1)目的性:问题解决具有明确的目标,它总是要达到某种特定目标。
(2)认知性:问题解决是通过一系列认知操作实现的。有些自动化的操作或活动,如做操等,虽然也有目的及一系列操作,但没有认知成分,不能称为问题解决。
(3)序列性:问题解决包含一系列认知操作,如分析、联想、比较、推论等。简单的记忆提取等单一的认知活动不能称为问题解决。

2. 问题解决的过程
解决问题的活动十分复杂,它不但包括整个认知活动,而且也渗透了许多非智力因素的作用。思维活动是解决问题的核心成分,存在着许多不同的观点。我们认为问题解决的大致过程可以划分为如下几个阶段:

⑴发现问题:认识到问题存在,并产生解决问题的动机。发现问题是问题解决的初始阶段和前提。
⑵分析问题:明确问题的条件和要求以及它们之间的关系。通过分析问题,可以明确问题的关键,确定问题的范围及解决的方向。
⑶提出假设:在分析问题的基础上提出问题解决的方案,包括方法和途径。
⑷检验假设:用检验假设的方法确定所提出的假设是否可以有效地解决问题:一种是实践检验。即按照假设具体进行实验解决问题,再依据实验结果直接判断假设的真伪。如果问题得到解决就证明假设是正确的,否则,假设就是无效的。另一种是通过创造性思维活动来进行检验,即根据公认的科学原理、原则,利用思维进行推理论证,从而在思想上考虑问题对象可能发生什么变化,将要发生什么变化。在不能用实践检验的情况下,在头脑中用思维活动来检验假设具有特别重要的作用。
⑸监控和评估:从问题解决一开始问题解决者就应进行监控,即检查自己正在做的事是否一步步地接近目标,以及时发现错误。
问题的解决一般是一个循环迭代的过程!!
3. 问题解决的艺术
A.导致问题求解困难的一些原因
(1)搜索空间中可能解的数目太多以至于无法采用穷举法找到最优解。
(2)问题很复杂以至于为了得到解答,不得不采用问题的简化模型,而实质上所得的结果可能是无用的。
(3)有些问题的可能解被严格约束以至于哪怕构造一个可行解都是困难的,更不用说找最优解了。
(4)世界上一切事物都在变化之中,复杂问题求解的条件也是随时间而变化的。
(5)复杂问题通常可能有多个解决方案,即存在着一个解的集合(解集)。
(6)求解问题的人没有做好充分准备或存在某种心理障碍,因而难以找到解答。
B、正确理解问题解决的步骤
从人们对事物的认知过程来看,对一个问题理解需要反复多次的认识才能逐渐地接近事物的本质。解决问题时不一定完全按步骤依次完成。这些步骤不是刻板的,各个步骤之间可以交叉,有时可以改变顺序,甚至可以跳过或增加某些步骤。
C、给问题建模
无论何时求解一个实际问题,都要首先抽象出问题的模型,然后用这个模型来找到解,即
问题 → 模型 → 解
通常处理的模型与实际问题有一些出入,因此找到两者之间的区别很重要。每个模型只是实际问题的简化,所以都会与实际问题有一些出入,否则模型就会像现实问题本身一样复杂和令人困惑。
D、选择正确的搜索空间
选择正确的搜索空间非常关键。如果一开始就没有选择正确的搜索空间而开始搜索,可能会增加很多不变的重复的解,或者根本就找不到正确的答案。
例:桌上有6根火柴棒,要求以它们为边搭建4个等边三角形

若从二维空间(桌子平面上)考虑,永远不可能找到正确答案. 只能在三维空间中考虑问题(图6-3)

