本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
Coursera 离散数学概论笔记:第一周
数学的出现是基于计量的需要;但随着人类社会的发展,对数学的要求也越来越严格。从某种角度来说,数学是由危机来推动其发展的:
上述历史告诉我们,数学发展到今天,已经形成了一种严谨的、基于已知公理体系的、推理和演绎的过程。在形成数理逻辑这一套体系之前,人类采用自然语言(逻辑学)来探索、阐述、和确定有效推理规则。但由于自然语言描述逻辑会因为其本身的模糊性损害其准确性和权威性,因此,我们需要一种更加规范的推理过程来代替自然语言。这就是数理逻辑,一种利用计算代替逻辑推理的方法。
数理逻辑产生于 1847 年,英国数学家乔治·布尔(George Boole)的著作《逻辑的数学分析》。该著作建立了布尔代数系统,而这套系统使用了符号来表示逻辑中的各种元素,从而实现了利用代数的方法研究逻辑的问题。而在之后的德国数学家戈特洛布·弗雷格(Gottlob Frege)(谓词) 和 查理斯·皮尔斯 (Charles Peirce)分别对这套系统进行了改进。他们的贡献使得数理逻辑逐渐的形成了自身的理论系统,称为了一门独立的学科。
数理逻辑主要分为四大分支:
命题是数理逻辑中最基本的概念,是对确定对象作出判断的陈述句。其具有以下三个特点:
三个对象只要缺少了一种,就不能构成命题。比如:
每一个命题都有一个属性:真值(Truth value),即代表了该命题为真的情况。因此,悖论是无法称之为命题的,因为它不具有真值。
因为真值是唯一的,因此命题只有两种情况:真或者假,即任何命题在同一时间内都只能具有独一的属性。该定律下有一种著名的应用:反证法:即证明一个命题为真,并不直接证明,而是假设该命题为假,通过排中律来判断该命题非假,从而得出命题是真的手段。著名的例子有:欧几里得证明素数有无穷多个。
直观主义者认为:数学的基础和出发点是基于人类的直觉而构造的, 数学理论可靠性依赖于心智上的可构造性。因此,对命题真假的确定必须给出构造性证明。而反证法虽然对命题的反面推出矛盾, 但不意味着命题本身具有构造性证明。也就是说,在直观主义者眼里,排中律并没有普遍有效性;排中律只能应用于在已知事物的范围,而不能贸然的推广到对无穷事物的应用。已知事物是有穷的,可以通过穷举来验证;但无穷的事物并不能通过穷举来验证(哥德巴赫猜想)。
命题是通过基本的元素加上联结词来形成的。基本的元素也被称为命题,我们称之为原子命题(Atom proposition)。因此,由此我们可以得到一些概念:
我们可以通过不同的联结词来指定不同的新复合命题,从而达到对逻辑和思维进行形式化的目的。那么要如何形式化呢?
形式化大致可以分为以下几步:
p、q、w、s
表示。T / F
表示。逻辑联结词是由真值表来定义的。真值表代表了所有原子命题的真值组合的结果,以及通过联结词作用有的命题的真值结果。
联结词主要分为 5
种:
形式化语言通过了抽象过程省略了很多自然语言中原有的内容,只保留了真值。因此,形式化中的内容很可能没有逻辑的关联性。
否定词的逻辑关系表示为:$¬p$,即 p
不成立。用自然语言举例说明则是:
p:雪是白的
¬p:雪不是白的
如果包含了多个对象的命题否定,需要注意意义的变化,比如:
p:天鹅是白的
¬p:天鹅不都是白的(而不是天鹅都不是白的)
合取词的逻辑关系表示为 $p∧q$,即 p
与 q
都成立。自然语言中有一些固定的结构都可以符号化为合取词,比如:
即...又...
不但...而且...
虽然...但是...
合取词也可以与否定词连用,比如:
p:张三聪明
q:张三用功
p∧q:张三既聪明又用功
¬p∧q:张三虽然不太聪明
p∧¬q:张三不是不聪明,而是不用功
析取词的逻辑关系表示为 $p∨q$,即 p
和 q
中至少一个成立。
需要注意的是,析取词分为两种情况:相容或 $⊙$(同或)、排斥或 $⊕$(异或):
相容或代表了两个条件可以选择,但也有同时具备两个条件的情况,比如:
李四学过德语或者法语
李四学过德语 \ 李四学过法语 \ 李四学过德语和法语
而排斥或则代表了两个条件必须二选一 $(p∧¬q)∨(¬p∧q)$,没有同时存在的可能性,比如:
人固有一死,或重于泰山,或轻于鸿毛
人死要么重于泰山 / 要么轻于鸿毛
根据这两种情况的不同,对应的真值表也不同:
<img src=“/_media/math/math_note/gen_discrete_math/or2.svg” width=“500”>
</html>
蕴涵词的逻辑关系表示为 $p→q$,即 p
是 q
的充分条件,或者说 q
是 p
的必要条件。如果事件 p
发生必导致事件 q
发生,则称 p
蕴含了 q
。在 $p→q$ 中, p
称为蕴含前件,q
称为蕴涵后件。
一些可以作为蕴含关系的连词如下:
只要…就…
如果…那么…
只有…才… //“只有”是“才”的必要条件,因此只有后面的条件是 q,才后面的条件是 p。
蕴含关系中,只有当 p
为真,q
为假的时候,整个命题的真值才为假,比如:
如果天气好,那么我去接你
p: 天气好
q: 我去接你
天气好,但我不去接你,那么就是食言了 // p→q: false
双向蕴含词的逻辑关系表示为 $p↔q$,即 p
、q
互为充分必要条件。当 p
、q
真值相同的情况下, $p↔q$ 为真,即真的只能推断出真的,假的只能推断出假的,比如:
圆1和圆2面积相等当且仅当它们的半径相等
两个圆的半径相等,因此可以推出两个圆面积相等
两个圆半径不相等,英雌可以推出两个圆面积不相等
上述的联结词加上原子命题,通过一定的顺序联结起来,可以组成复合命题。如果我们将这样的复合命题当做成一个算式,那么该复合命题就可以称作命题公式(Proposition formula)。
如果把复合命题作为公式,那么联结词就相当于是公式里的运算符了。那么公式里的原子命题,就可以当做是公式里的常量或者变量了。因此,一个命题公式的组成可以分为以下三个部分:
命题常元和命题变元被称为原子公式。而对于命题公式的定义有如下两个规则:
命题公式采用大写 $A,B,C$ 等表示。
严格意义上的命题公式还有一个条件:必须使用括号保证运算的优先级。因此,以下的式子都不是命题公式:
(qp) //没有联结词
(p1∧(p2∧…//括号不完整
p→r∧s//没有括号
当然,严格按照定义的命题公式在实际应用中写起来非常繁琐,因此在使用中有两个约定:
如果把逻辑联结词看作是运算符,那么包含命题变元 $p_1,p_2, ....p_n$ 的公式 $A$ 实际上就可以看做是一个函数,一个关于变量 $p_1,p_2, ....p_n$ 的真值函数。既然是真值函数,那么得到的结果一定是一个真值。因此,该函数的自变量和因变量的取值范围都是 $[0, 1]$。
既然 $p_1,p_2, ....p_n$ 表示真值函数的变量,那么对于每一种 $p_1,p_2, ....p_n$ 的取值组合,就被称为赋值 (Assignments)。赋值有需要注意的地方:
对应的赋值有对应的真值。当赋值 $\alpha$ 导致公式 $A$ 为真时,则称 $\alpha$ 是 $A$ 的成真赋值,记做 $\alpha(A) = 1$,反之,则称 $\alpha$ 是 $A$ 的成假赋值,记做 $\alpha(A) = 0$。
我们是这样将自然语言转变为命题公式的:
一些相关的例子如下:
我和他既是兄弟又是同学(p:我和他是兄弟,q:我和他是同学) //形式化命题:p∧q
//-------------------------//
狗急跳墙(p:狗急了,q:狗跳墙) //形式化命题:p→q
//------------------------//
无论是否下雨,我都去上学(p:天下雨,q:我去上学)
天下雨,我去上学 加上 天不下雨,我也去上学
//形式化命题 (p→q)∧(¬p→q) 或者 (p∧q)∨(¬p∧q)
一些注意事项:
充分条件 (Sufficient Condition)有两个重要的判断特点:
必要条件 (Necessary Condition)有两个重要的判断特点:
充要条件:双蕴含,$A$、$B$ 可以互推。