β

思维的逻辑

人月神话的BLOG 12 阅读
 



在把思考的框架梳理清楚后再来谈下思考的逻辑,可以看到大脑对输入信息处理加工和进行模式匹配的过程即是思考的逻辑所在,而其中模式匹配和推理又是思考逻辑中的核心内容。

第一部分:基础逻辑概述

要讲思维的逻辑,首先来看下百度百科上对逻辑的一个定义:

逻辑狭义上逻辑既指思维的规律,也指研究思维规律的学科即逻辑学。广义上逻辑泛指规律,包括思维规律和客观规律。逻辑包括形式逻辑与辩证逻辑,形式逻辑包括归纳逻辑与演绎逻辑,辩证逻辑包括矛盾逻辑与对称逻辑。对称逻辑是人的整体思维(包括抽象思维与具象思维)的逻辑。


这里面有两个重点,其一是找到思维中规律化和规则化的东西并将其总结出来,其二是逻辑的基础仍然是以归纳和演绎为核心的形式逻辑

当谈逻辑的时候首先要把归纳法和演绎法谈清楚

归纳法和推理

观察01:
直角三角形内角和180度(S1)
钝角三角形内角和180度(S2)
锐角三角形内角和180(S3)

而三种类型三角形都是抽象三角形的表现形式
结论:所有三角形(S)的内角和为180度(P)

观察02:

张三有两只眼睛(S1),李四有两只眼睛(S2),王五有两只眼睛(S3)
而张三,李四,王五都是抽象人的概念的具体实例,因此得出归纳结论为
结论:所有人(S)都有两只眼睛(P)

如果S1,S2,…,Sn是S类的全部对象,则是完全归纳,如例子1;如果S1,S2,…,Sn是S类的部分对象,则是不完全归纳,如例子2.

对于大多数情况,如果要穷举所有的Si基本是不可能的事情,因此对于不完全归纳而言进一步诞生科学归纳法,即:

由于S1,S2,S3都是P,而它们都是S的子集
因此得出:S是P的结论和假设
进一步:需要我们去证明该假设是正确的

比如当我们通过观察发现直角三角形a2+b2=c2后,那我们就需要进一步通过公理去证明这个结论正确。

演绎法和推理

演绎的过程和归纳相反,则是从一般到特殊的推理,前提和结论是演绎推理的基础,即演绎推理就是前提与结论之间具有充分条件或充分必要条件联系的必然性推理。而演绎推理的模式匹配过程即是我们头脑里面有大量的归纳出来或前人已经总结和论证成立的公理或定理,当我们接收到输入信息后,就可以将输入信息和已有的定理结合,从而推理出新的结论。

演绎推理是严格的逻辑推理,一般表现为大前提、小前提、结论的三段论模式:即从两个反映客观世界对象的联系和关系的判断中得出新的判断的推理形式。演绎推理有三段论、假言推理、选言推理、关系推理等形式。下面重点只介绍下三段论和选言推理。

三段论推理

三段论是我们最常见的演绎推理逻辑,举例来说:

知识分子都是应该受到尊重的,人民教师都是知识分子,所以,人民教师都是应该受到尊重的。可以看到演绎过程恰好和归纳相反,归纳是从具体到抽象的过程,而演绎则是从抽象到具体的过程。
可以描述为抽象的S-》结论P,而如果某个具体的S1是属于S的,那么S1必然满足结论P。

假言推理


简单来说假言推理基于充分必要条件的推理,充分必要条件是逻辑学在研究假言命题及假言推理时引出的。

定义:如果有事物情况A,则必然有事物情况B;如果没有事物情况A,则必然没有事物情况B,A就是B的充分必要条件。

1. 如果一个图形是正方形,那么它的四边相等。(成立)
2. 但是如果一个图形不是正方形,那么它的四边一定不等。(这个不成立)

因此对于对于第1点,前面条件是结论是充分条件,而非必要条件。对于充分条件的推理则是,如果S导致P成立,那么如果是非P,则S一定不成立。对于上述则是如果一个四边形四边不等,则一定不是正方形。

对于非的假言推理实际应用的相当多,其原因就是很多时候我们需要通过该方式来论证某一个假设不成立。

经验:如果一个人中毒死亡,那么胃部应该留有残留毒液。(S->P)
现象:一个人口腔有毒药,那么我假设其是中毒死亡的,但是我们解剖发现胃部无毒液(非P)
结论:该人不是中毒身亡,我们假设不成立(非S)

再反过来看,如果一个四边形的四边相等,那么这个四边形可能是正方形。则如果S导致P可能成立,那么如果P成立,则S一定成立。这是基础的基于必要假设的推理。

归纳和演绎两者相互依赖,相互作用和相互补充。这两者构成了我们基础的思考逻辑,而且正式由于两者的相互作用,往往在解决复杂问题的时候会形成一个完整的长推理链。整个解决问题的过程就变成了由特殊到一般,再由一般到特殊相互不断迭代和演进的过程,而正也正是思维或者说明模式匹配的核心逻辑。

第二部分 解决问题的逻辑难点

归纳和演绎只是方法,而实际解决问题我们看到当我们脑子里面已有的经过前人证明的公理或定理越多,同时我们自己在实践中经过自身归纳证悟的逻辑越多,那么往往我们解决问题的能力越强。但是这些还不是最主要的,任何解决问题的逻辑难点不是由于你知道的定理少了,而是你不知道在什么场景下应该选择什么公式或定理来解决特定的问题,即还是我们思考框架里面谈到的如何进行模式匹配的问题。

对于解决问题的通用方法论,特别是基于非结构化的解决问题的方法,即从问题的定义,到假设的提出,到问题或结论的验证层层迭代再次就不再进行展开描述,而只是进一步总结解决问题逻辑思考的难点或关键点。这部分思考还不算特别成熟,但是有必要先进行点上的记录。

一种对问题解决逻辑的通用描述

问题即使期望值和实际值之间的差距,有差距就产生了问题。而期望值和实际值本身都是输出,任何问题的产生往往都是有多个条件或信息做为输入,然后经过机器或大脑多步骤加工处理后形成的一个实际结果和期望结果的比较。

如果遵从这个简单的描述,那么问题的产生只有两个原因:



01 - 输入的某个X发生了错误或误差
02 - 加工中的多个步骤或某个步骤出现的错误,导致最终输出没有得到我们期望的值。


还是拿考试来举例,如果我们某一道题目做错了,那么只可能是两个原因,一个是我们对于已知输入条件看漏了或理解错了,要么是我们在进行计算的时候某个分解的步骤出现了计算错误,最终导致了题目做错了。当我们的写的一个计算机程序出现故障或Bug也一样的道理,要么是我们的输入出现的错误或遗漏,要么是我们的算法中的某个步骤出现的错误导致了问题。

正是由于这个原因,我们对问题的解决思路应该包括两个方面的内容:

1. 对输入进行信息正确性,完整性的校验。类似我们在思考框架里面讲到信息去噪和清洗。
2. 对处理过程中的算法和逻辑安装步骤进行检查,确保每步的中间输出都是正确的。(当然可以二分查找)

而基于非结构化问题解决的核心逻辑则是将上述诸个或逐步检查转换为基于经验的假设式检查,如上面框架当出现问题的时候,如果我们已有经验是

a. 当最终输出有问题的时候,90%的可能都是x3输入缺失或x3输入数据有质量问题。
b. 当输入都没有问题的时候,最大可能出现问题的原因是S2这个步骤的逻辑处理。

那么我们解决问题的逻辑就变成了根据经验提出最优假设,再去验证假设本身的正确性,即优先检查x3,没问题再检查步骤s2。当我们头脑里面的这种经验越多,越准确,那么我们匹配和解决问题的速度就越快。

第三部分 模式匹配的两个关键




模式匹配可以说是解决问题逻辑中的核心,在前面已经谈到我们可以利用已有的经验进行模式匹配,而提出优先假设并验证。而实际上问题解决中过的模式匹配包括了如下关键内容:

01 问题的转化,未知问题到已知问题

对于面对的新问题能够将其转化为一个我们头脑里面已知的旧问题,而对旧问题的求解方法我们驾轻就熟。举例来说对于小学应用题,我们会考虑的是如何通过设置参数,将其转化为一个方程式的问题,而对于如何解一个方程式就简单了。类似的对于八皇后问题,我们首先要知道的是能将其转化为一个回溯算法去解决的问题,对于背包问题我们想到将其转化为一个运筹学里面的动态规划问题。

能够将未知问题映射到一个已知的方程式求解或算法问题,是解决问题的关键,如果不能转化或映射,那么你知道再多的算法和公式也没有用。这不得不让我回顾下中学乃至大学的教育,很多时候教会我们的是公式或算法,而并没有去教我们在看到一个新问题的时候如何快速的映射和匹配到算法或公式上。如果这个点上没有解决,那一定就只有陷入题海战术,比谁见过的题型多,练习的题库多,这显然已经脱离了我们学习和思维的本意。

02 问题的细粒度匹配,从分解到映射

我在很早的一篇解决问题的思路中谈到过的,要想进行匹配,对于复杂的问题首先需要对问题进行分解,分解为细粒度的问题点,然后再将细粒度的问题点和解决方法进行匹配,最后再进行整合。要知道粒度越粗越难以匹配,完全一模一样的问题出现的概念是相当小的,但是将新问题分解后我们发现子问题往往都是我们见过的和可以解决的。

要提升这块的能力,则包括了两个方法,其一是我们接收到的新问题要懂得如何去定义,如何去分解;其次是对于我们实践后吸收的知识或经验,我们应该懂得将经验细粒度话为可复用的经验点,这些经验点往往才是可复用的。

还是拿做一道数学四则运算题来说,任何四则运算题目都可以分解为加减乘除四种计算方法,而我们已有的经验或算法库也只需要知道这四种计算方法的知识点就可以了。那么再遇到任何运算问题都可以通过分解,分解后匹配完成计算和处理。而实际在现实生活中,我们面临的新问题,其分解过程和匹配过程都远远比一道计算题复杂的多。

 
作者:人月神话的BLOG
原文地址:思维的逻辑, 感谢原作者分享。

发表评论