使用启发式方法的原则(解题计划)

解题计划

  1. 理解问题。你必须要理解问题。
    未知量是什么?现有的数据是什么?条件是什么?能够满足这些条件吗?这
    些条件足以决定出未知量吗?还是并不够?或者其中有冗余?甚至是矛盾的?
    画一幅图,引进一些合适的记号,把条件的不同部分分离开。你能把它们
    一一 写下吗?
  2. 设计一个计划。找出现有数据和未知量之间的联系。如果你找不出居中的联系,
    那么可能还得考虑些辅助性的问题。最终你应该能得出一份解决方案的计划来。
    在此之前你遇见过这一问题吗?或者曾经遇见过与此差别不大的问题?
    你知道某个相关的问题吗?你知道一个可能会有用的定理吗?
    盯住那个未知量!试着想出一个有着相同或者类似的未知量的问题来。一定
    有一个和你的问题相关的而且此前已被解决过的问题,你能用它吗?你能用它的
    结果吗?或者用它的方法?为了让它有用你需要再引入一些辅助的元素吗?
    你能再重述这个问题吗?你能再次用与以前都不同的方式重述这个问题
    吗?回过头去考虑一下定义吧。
    如果你还是解决不了提出的这个问题,那么试着先去解决一些相关的问题。
    你能设想出一个更容易解决的与此有关的问题吗?一个更一般的问题?一一个更特
    殊的问题?一一个类似的问题?你能解决这个问题的一部分吗?只留下一部分条件
    而去掉其他条件,未知量能够确定多少,它又能怎样变化?你能从这些数据中得
    出有用信息吗?你能找出其他适合用于确定未知量的数据吗?你能修改未知量或
    者已知数据,或者必要时修改两者,以便新的未知量和新的数据更加接近吗?
    你使用了全部的数据吗?你使用了所有的条件吗?你考虑了该问题所涉
    及的所有核心概念了吗?
  3. 执行这一计划。请执行你的计划。
    执行你的求解计划,检查每一步。你能清楚地看到每一步都是正确的吗?
    你能证明它是正确的吗?
  4. 回顾。检视整个的解。
    你能核对结果吗?你能核对论据吗?你能用不同的方法来得出这个结果
    吗?你能一眼就看出来吗?
    你能在其他问题上使用这一结果或方法吗?

最有效的原则之-就是不要卡在单一的方法上。 如果用UML画设计图不可
行,那么就直接用英语来写。写段简短的测试程序。尝试一-种截然不同的方法。
想出一种蛮力解决方案。用铅笔画出轮廓和草图来指导思维。如果这些方法都不
行,那么就先离开这个问题。可以去散散步,或者去想- -想其他的事情,然后再
回来重新面对这个问题。如果你尽了全力还没能取得突破,那么暂时不要去想它
反而会比穷思苦想的效果要好。

你无须马上解决整个设计难题。一旦被卡住了,那么请记住回过头来时有一
处地方需要做决策,但眼下你还没有足够的信息来解决这个问题。为什么要在最
后的20%设计环节冥思苦想,如果后来能轻易地找到答案呢?为什么在自己还缺
少经验时一定要去做出–些不好的设计、而不等到日后自己经验丰富时再做出更
好的决策呢?有些人如果在一个设计循环过后没有把所有的问题都解决,就会感
到很不舒服。实际上,如果你尝试了一些设计方案,但没有很好的解决问题的时
候,更自然的方式是让那些问题留在未解决的状态,等到你拥有更多信息之后再
去做(Zahniser 1992, Beck 2000)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值