离散数学的学习笔记,包含数理逻辑、集合论、图论

因为实际写作时间是很久之前了,有些图过期了,我也不知道补什么…

有些公式渲染有问题,日后无聊再来改了(

数理逻辑

命题逻辑

联结词

汇总

¬PPQPQPQPQ/PQPcQPQPQ

真值表

P Q ¬P PQ PQ PQ PcQ PQ PQ PQ PQ
T T F T T T F T F F F
T F F T F F T F T T F
F T T T F T F F T T F
F F T F F T F T F T T

定义联结词的优先次序为:¬,,,,

等价公式

定义

两个命题公式 A,B 真值表完全相同,则称二者 等价,记为 AB

常用的等价公式

¬(PQ)(¬P)(¬Q)¬(PQ)(¬P)(¬Q)P(QR)(PQ)(PR)P(QR)(PQ)(PR)PTPPFPP(PQ)PP(PQ)PPTTPFF:P(¬P)TP(¬P)F:PPPPPP:PQ¬PQPQ¬Q¬P

重言式和蕴含式

定义

  • 重言式:无论对分量作怎样的真值指派,真值均为 T 的命题公式
  • 矛盾式(永假式):……真值均为 F 的命题公式
  • 蕴含式:当且仅当 PQ 为重言式时,称 P 蕴含 Q,记作 PQ
    • 对于 PQ
      QP 称为其 逆换式
      ¬P¬Q 称为其 反换式
      ¬Q¬P 称为其 逆反式

定理

命题公式 A,B 等价的充要条件
AB 为重言式

PQQP

证明蕴含式

对于 PQ ,满足以下其一:

  1. 假定 P 真值为 T ,若由此能推出 Q 的真值为 T
  2. 假定 Q 真值为 F,若由此能推出 P 的真值为 F

PQ 成立

蕴含的性质

  • 对于 PQ ,若 P 为重言式,则 Q 必为重言式
  • 蕴含关系式可传递的
  • PQPRP(QR)
  • PQRQ(PR)Q

最小联结词组

{¬,}{¬,}{}{}

对偶与范式

定义

  • 对偶式:
    对于命题公式 A
    将其中所有的 互换, 互换,TF 互换,
    得到新的命题公式 A
    则称 AA 互为对偶式
  • 合取范式:
    一个命题公式具有形式:A1A2An 时称其为 合取范式
  • 析取范式
    一个命题公式具有形式:A1A2An 时称其为 析取范式
  • 小项:
    n 个命题变元的合取式,
    每个变元与其否定不能同时出现,且必须出现且仅出现一次
  • 大项:
    n 个命题变元的析取式,
    每个变元与其否定不能同时出现,且必须出现且仅出现一次
  • 主析取范式:
    仅由小项析取所组成的公式
  • 主合取范式:
    仅有大项合取所组成的公式
  • 编码:
    对于一个命题变元 PP,¬P 分别记为 0,1
    则对于每个小项/大项可以用二进制编码表示
    P¬QR 可以表示为 m010
  • 编码表示主析取/合取范式:
    主析取范式可以表示为 i1,i2,,im
    主合取范式可以表示为 j1,j2,,jn
    其中的 ik 为第 k 个小项的二进制编码的十进制数
    其中的 jk 为第 k 个大项的二进制编码的十进制数

求合取/析取范式步骤

  1. 将公式中的联结词化为 ¬,,
  2. 利用 德摩根律¬ 移到各个命题变元之前
  3. 利用 分配律、结合律 将公式归约为合取/析取范式

求主合取/主析取范式步骤

  1. 化归为合取/析取范式
  2. 除去合取/析取范式中所有为永真/假的合取/析取项
  3. 合并相同的合取/析取项和所有相同的变元
  4. 对合取/析取项补入没有出现的命题变元,然后用分配律展开公式

定理

  • ¬A(P1,P2,,Pn)A(¬P1,¬P2,,¬Pn)
  • ABAB
  • 任意两个不同的小项的合取式永假
  • 全体小项的析取式永真
  • 任意两个不同的大项的析取式永真
  • 全体大项的合取式永假

推理理论

定义

  • 前提、有效结论:
    对于命题公式 H1,H2,,Hn,C
    当且仅当 H1H2HnC
    C一组前提 H1,H2,,Hn有效结论
  • P 规则:
    前提在推导过程中的任何时候都可以引入使用
  • T 规则:
    在推导中,如果有一个或多个公式蕴含着公式 S ,则 S 可以引入推导中

真值表法

  1. 列出 H1,H2,,Hn,C 的所有对应真值
  2. 找出 H1,H2,,Hn 全为 T 的行,若这几行对应的 C 也有真值 T 则推理成立

或者

  1. 找出 CF 的行,
    若这几行对应的 H1,H2,,Hn 至少有一个真值为 F 则推理成立

直接证法

例题: 证明 (PQ)(PR)(QS)SR

解:

(1) PQPP(2) ¬PQT(1)ET(1)(2)(3) QSPP(4) ¬PST(2),(3)IT(2),(3)(4)(5) ¬SRT(4)ET(4)(5)(6) PRPP(7) ¬SRT(5),(6)IT(5),(6)(7)(8) SRT(7)ET(7)(8)

~注:括号内仅为注释,实际书写中无括号内的内容~

间接证法

归谬法

对于要证明 H1H2HnC 的情况,

只需要证明 H1H2Hn¬CF

其中 ¬C 称为 附加条件

例题: 证明:AB,¬(BC) 可逻辑推出 ¬A

解:

(1) ABP(2) AP()(3) ¬(BC)P(4) ¬B¬CT(3)E(5) BT(1),(2)I(6) ¬BT(4)I(7) B¬B()T(5),(6)I
CP 规则

对于要证明 H1H2HnRC 的情况,

只需要证明 H1H2HnRC

其中 R 称为 附加条件

例题: 证明:A(BC),¬DA,B 重言蕴含 DC

解:

(1) DP()(2) ¬DAP(3) AT(1),(2)I(4) A(BC)P(5) BCT(3),(4)I(6) BP(7) CT(5),(6)I(8) DCCP

谓词逻辑

谓词

A(a1,a2,,an) 中的 A 称为 n 元谓词

例如 A 表示“是大学生”,a 表示“张三”,

A(a) 表示“张三是大学生”,其中 A一元谓词

命题函数

由一个谓词和一些客体变元组成的表达式,称为 简单命题函数

例如 L(x,y,z)

量词

用于划定论域的标记称作量词,

x,x 分别表示 “所有的 x”、“存在一些 x

例如:

  1. M(x):xH(x):x
    (x)M(x)H(x) 表示 “所有人都是要呼吸的”
  2. P(x):x
    (x)(P(x)) 表示 “存在一个数是质数”
  3. M(x):xR(x):x
    (x)M(x)(R(x)) 表示 “一些人是聪明的”

谓词公式与翻译

例题: 数学分析中的极限定义为:仍给一个小正数 ϵ ,则存在一个正数 δ ,使得当 0<|xa|<δ 时,有 |f(x)b|<δ,此时称 limxaf(x)=b

解:

P(x,y):x  y,    Q(x,y):x  y

limxaf(x)=b 可以表示为:

(ϵ)(δ)(((P(ϵ,0)P(δ,0))Q(|xa|,δ))(Q(|f(x)b|,δ))

变元的约束

约束变元的换名

通过对谓词公式换名,使得每个变元在公式中仅以一种约束形式出现

例题:(x)(P(x)R(x,y))Q(x,y) 换名

解: 可换名为 (z)(P(z)R(z,y))Q(x,y)

自由变元的代入

例题:(x)(P(y)R(x,y)) 代入

解: 代入后公式为 (x)(P(z)R(x,z))

若论域的元素是有限的,如论域元素为 a1,a2,,an,则

(x)A(x)=A(a1)A(a2)A(an)(x)A(x)=A(a1)A(a2)A(an)

谓词演算的等价式和蕴含式

量词与联结词 ¬ 的关系

¬(x)A(x)(x)¬A(x)¬(x)A(x)(x)¬A(x)

有关量词的等价式

(x)A(x)B(x)(A(x)B)(x)A(x)B(x)(A(x)B)B(x)A(x)(x)(BA(x))B(x)A(x)(x)(BA(x))(x)(A(x)B(x))(x)A(x)(x)B(x)(x)(A(x)B(x))(x)A(x)(x)B(x)(x)(AB(x))A(x)B(x)(x)(AB(x))A(x)B(x))()(A(x)B(x))()A(x)(x)B(x)

有关量词的蕴含式

(x)A(x)(x)B(x)(x)(A(x)B(x))(x)(A(x)B(x))(x)A(x)(x)B(x)()(A(x)B(x))(x)A(x)(x)B(x)()(A(x)B(x))(x)A(x)(x)B(x)(x)A(x)(x)B(x)(x)(A(x)B(x))

多元谓词的等价/蕴含式

(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(y)(x)A(x,y)

前束范式

定义

  • 前束范式: (v1)(v2)(vn)A
  • 前束合取范式:
    (v1)(v2)(vn)[(A11A12A1l1)(A21A22A2l2)(Am1Am2Amlm)]
  • 前束析取范式:
    (v1)(v2)(vn)[(A11A12A1l1)(A21A22A2l2)(Am1Am2Amlm)]

例题:D:(x)[(y)P(x)(z)q(z,y)¬(y)R(x,y)] 化为前束合取范式

解:

1.     D(x)[P(x)(z)q(z,y)¬(y)R(x,y)]2.     D(x)[P(x)(z)q(z,y)¬(w)R(x,w)]3.     D(x)[¬(P(x)(z)q(z,y))¬(w)R(x,w)]4.  ¬     D(x)[(¬P(x)(z)¬q(z,y))(w)¬R(x,w)]5.     D(x)(z)(w)[(¬P(x)¬q(z,y))¬R(x,w)]6.     D(x)(z)(w)[(¬P(x)¬R(x,w))(¬q(z,y)¬R(x,w))]

谓词演算的推理理论

(US)(x)P(x)P(c)广(UG)P(x)(x)P(x)(ES)(x)P(x)P(c)广(EG)P(c)(x)P(x)

例题: 证明 (x)(H(x)M(x))H(s)M(s)

解:

(1) (x)(H(x)M(x))P(2) H(s)M(s)US(1)(3) H(s)P(4) M(s)T(2),(3)I

集合论

集合

集合的概念及表示

定义

  • 子集(包含):
    若有 (x)(xAxB) 则称 AB 的子集A 包含在 B
    记作 AB

    • 包含关系具有自反性、传递性
  • 真子集:
    若有 (x)(xAxB)(x)(xBxA) 则称 AB 的真子集
    记作 AB

  • 空集:
    不包含任何元素的集合,记作

    • {},{}
  • 全集:
    在一定范围内,若所有集合均为某一个集合的子集,
    则该集合称为 全集,记作 E

  • 幂集:
    给定集合 A ,由 A 的所有子集为元素组成的集合,
    称为集合 A幂集,记作 P(A)

  • 编码表示幂集:

    : S={a,b,c}, P(S)={Si|iJ},J={i|i000i111} S000=

定理

  • 集合 A,B 相等的充要条件为:二者互为子集
  • 对于任意一个集合 AA
  • 给定一个有 n 个元素的集合 A ,则 P(A)2n 个元素

集合的运算

定义

  • 交集

    S=AB=x|(xA)(xB)

    S 称为 AB交集

  • 并集

    S=AB=x|(xA)(xB)

    S 称为 AB并集

  • 补集

    S=AB={x|xAxB}=AB=A(AB)

    S 称为 B 对于 A 的补集

    • EA 称为 A绝对补,记作 A
  • 对称差

    S=AB={x|xA¯xB}=(AB)(BA)=(AB)(BA)=(AB)(AB)

    S 称为 AB对称差

定理

  • 公式

    A(BC)=(AB)(AC)A(BC)=(AB)(AC)A(AB)=AA(AB)=A(AB)=∼AB(AB)=∼ABA(BC)=(AB)(AC)
  • AB1. AB=A2. AB=B3. B⊆∼A4. (BA)A=B

集合的划分与覆盖

定义

  • 覆盖:
    给定一个集合 S={S1,S2,,Sm} 使得 i=1mSi=A 则称 SA覆盖
  • 划分:
    SA 的覆盖的同时,有 SiSj=(ij) 则称 SA划分
  • 交叉划分:
    对于一个集合的两种划分 {A1,A2,,Ar},{B1,B2,,Bs}
    所有 Ck=AiBj 组成的集合,称为是原来两种划分的 交叉划分
  • 加细:
    给定集合 X 的任意两个划分 {A1,A2,,Ar},{B1,B2,,Bs}
    若对于每一个 Aj 都有 Bk 使得 AjBk ,则称
    {A1,A2,,Ar}{B1,B2,,Bs}加细

定理

  • 对于同一个集合的两种划分,其交叉划分 仍是 原集合的一种划分
  • 两种划分的交叉划分,都是原来两种划分的加细

关系

序偶

定义

  • 序偶:
    序偶用于表示事物之间的关系,记作 a1,a2,,an,称为 n 元组

  • 笛卡尔乘积/直积:

    A×B={x,y|(xA)(yB)}

    这使得两个元素集合构造出一个序偶集合

    • 由于序偶内的元素顺序不可变,所以 A×BB×A
    • 由于 a,b,c 不是三元组,
      所以 (A×B)×CA×(B×C) ,且前者得到的才是三元组
  • A×A××An=An

定理

  • 对于任意三个集合 A,B,C ,有

    A×(BC)=(A×B)(A×C)A×(BC)=(A×B)(A×C)(BC)×A=(B×A)(C×A)(BC)×A=(B×A)(C×A)
  • C

    ABA×CB×CC×AC×B
  • A,B,C,D 为四个非空集合,则

    ACBDA×BC×D

关系及其表示

定义

  • 关系:
    将一个由序偶组成的集合称为一个 关系,记作 R
    R 中的任一序偶 a,b 可以记作 a,bRxRy
    不在 R 中的任一序偶可以记作 a,bRxy

  • 前域、值域、域:
    dom R 称为 R 的前域,ran R 称为 R 的值域,
    二者一起称作 R 的域,记作 FLD R

    dom R={x|(y)(x,yR)}ran R={y|(x)(x,yR)}FLD R=dom Rran R
  • 直积与关系:
    对于任一两个集合 X,Y ,二者的直积 X×Y 的子集 R 称为 XY 的关系
    对于其子集 X×Y, ,分别称为 XY全域关系空关系

  • 恒等关系:

    IX={x,x|xX}

    IX 称为 X 上的 恒等关系

  • 关系矩阵:
    对于矩阵 MR=[rij]m×n 其中

    ri,j={1,xi,yjR0,xi,yjR    , i=1,2,,m; j=1,2,,n.

    这样的矩阵称为 R关系矩阵

定理

  • 对于 XY 的两个关系 Z,S ,二者的交、并、补、差 仍是 XY 的关系

关系的性质

定义

  • 自反

    (x)(xXxRx)
  • 对称

    (x)(y)(xXyXxRyyRx)
  • 传递

    (x)(y)(z)(xXyXzXxRyyRzxRz)
  • 反自反、反对称
    反自反要求集合内 所有元素 不自反,反对称要求集合内 所有元素 不对称

    • 因此存在某种关系,即不自反,也不反自反
      也存在某种关系,既不对称也不反对称

从关系矩阵看性质

  1. 自反 对角线上所有元素均为 1
  2. 对称 关系矩阵是对称的
  3. 反自反 对角线元素全为 0
  4. 反对称 以主对角线对称的元素不同时为 1

复合关系和逆关系

定义

  • 合成运算:
    RXY 的关系,SYZ 的关系,则 RS 称为 R,S 的复合关系
    表示为

    RS={x,z|xXzZ(y)(yYx,yRy,zS}

    这称为关系的 合成运算

  • RRRn=Rn

  • 逆关系:

    Rc={y,x|x,yR}

利用矩阵运算求合成运算

MRS=MRMS=[wik]wik=j=1n(uijvjk)

有关逆关系的公式

  • R,R1,R2 都是 AB 的二元关系

    (R1R2)c=R1cR2c(R1R2)c=R1cR2c(A×B)c=B×A(R¯)c=Rc¯,R¯=A×BR(R1R2)c=R1cR2c
  • 对于任一两个关系 T,S(TS)c=ScTc

对称定理

  • R 是对称的,当且仅当 R=Rc
  • R 是反对称的,当且仅当 RRcIX

关系的闭包运算

定义

RX 上的二元关系,如果有另一个关系 R 满足:

  1. R 是自反的/对称的/可传递的
  2. RR
  3. 对于任何自反的/对称的/可传递的关系 R
    如果有 RR 就有 RR

则称 RR 的自反/对称/传递 闭包,记作

r(R)/s(R)/t(R)    (reflexive,symmetrical,transitive)

定理

  • R 是自反的,当且仅当 r(R)=R

    R 是对称的,当且仅当 s(R)=R

    R 是传递的,当且仅当 t(R)=R

  • 自反闭包的求解:

    r(R)=RIX
  • 对称闭包的求解:

    s(R)=RRc
  • 传递闭包的求解:

    t(R)=i=1kRk,    knn
  • 闭包之间的关系:

    rs(R)=sr(R)rt(R)=tr(R)st(R)ts(R)

Floyd 算法求解传递闭包

对于 R 的关系矩阵 M 依照以下步骤进行修改

1
2
3
4
5
for k from 1 to n:
for i from 1 to n:
for j from 1 to n:
if (M[i][j] == 0)
M[i][j] = M[i][k] * M[k][j]

等价关系与等价类

定义

  • 等价关系:
    一个关系若同时是自反的、对称的、传递的,则称该关系为 等价关系

  • 等价类:
    R 是集合 A 上的等价关系,对与 aA
    集合 [a]R={x|xA,aRx} 称为元素 a 形成的 R 等价类

  • 商集:
    对于集合 A 上的等价关系 R
    其等价类集合 {[a]R|aA} 称作 A 关于 R 的商集,记作 A/R

定理

  • 对于集合 A 上的等价关系 Ra,bA,则

    aRb[a]R=[b]R
  • 集合 A 上的一个等价关系可以确定 A 的一个划分,
    该划分就是 A/R

  • 集合 A 的一个划分能确定 A 上的一个等价关系

  • 对于集合上的两个等价关系 R1,R2

    A/R1=A/R2R1=R2

求划分确定的等价关系

例题: 设集合 A={a,b,c,d,e} ,划分 S={a,b,c,d,e}
求划分 S 所确定的 A 上的一个等价关系 R
解:

R1=a,b×a,bR2=c×cR3=d,e×d,e R=R1R2R3={a,a ,b,b ,c,c ,d,d ,e,e ,                                       a,b ,b,a ,d,e ,e,d}

相容关系与相容类

定义

  • 相容关系:
    一个关系若同时是自反的、对称的,则称该关系为 相容关系
    • 对于相容关系的关系图,不画自回路,使用单线来代替回弧线
  • 相容类:
    对于集合 A 上的相容关系 r ,若 CA
    如果 C 中的任意两个元素 a1,a2a1ra2 ,称 C 是由相容关系 r 产生的 相容类
  • 最大相容类:
    若一个相容类,不能真包含在其他相容类,则称其为 最大相容类,记作 Cr
  • 完全覆盖:
    对于一个集合 A 的所有最大相容类,
    这些最大相容类组成的集合,构成了 A 的一个覆盖,
    称为 完全覆盖,记作 Cr(A)

定理

  • 相容关系图中,最大完全多边形的顶点集合 就是最大相容类,
    此外,孤立节点不是完全多边形的边的两个节点 也是最大相容类
    (详见下面例题)


    其中 {a1,a2,a4,a6},{a3,a4,a6} 构成最大多边形,
    {a4,a5} 为非最大多边形边的两个节点,{a7} 为孤立节点
  • 给定集合 A 的覆盖 {A1,A2,,An}
    由它确定的关系 R=A1×A1A2×A2An×An 是相容关系
  • 相容关系 r 与完全覆盖 Cr(A) 一一对应

序关系

定义

  • 偏序:
    对于集合 A 上的一个关系 R ,同时满足自反性、反对称性、传递性,
    则称 RA 上的一个偏序关系,将这个关系记作 ,序偶 A, 称作偏序集

  • 盖住:
    在偏序集合 A, 中,如果 x,yA,xy,xy
    且没有其他元素 z 满足 xz,zy ,则称 y 盖住 x ,记

    COV A={x,y|x,yA;y  x}

    • 盖住关系是 唯一的,所以可以用盖住的性质画出偏序集合图,称为 哈斯图

      作图规则如下:

  • 链、反链:
    A, 是一个偏序结合,在 A 的一个子集中,
    如果每两个元素都是有关系的,则称这个子集为
    如果每两个元素都是无关的,则称这个子集为 反链

    • 规定,若 A 的子集只有一个元素,则这个子集既是链也是反链
  • 全序/线序集合:
    在偏序集 A, 中,如果 A 是一个链,则称 A,全序集合线序集合 ,在这种情况下,称二元关系 全序关系线序关系

    • x,yA 都有 xy 或者 yx 成立,不存在两个无关的元素
  • 极大元、极小元:
    A, 是一个偏序集,且 BA 的子集,对于 B 中的一个元素 b
    如果 B 中没有任何元素 x 满足 bxbx 则称 bB极大元
    如果 B 中没有任何元素 x 满足 bxxb 则称 bB极小元

    • 极大元和极小元 不是唯一的
  • 最大元、最小元:
    A, 是一个偏序集,且 BA 的子集,对于 B 中的一个元素 b
    如果 B 中每一个元素 x 满足 xb 则称 bB最大元
    如果 B 中每一个元素 x 满足 bx 则称 bB最小元

    • 如果存在最大/最小元,则一定是 唯一的
  • 上界、下界
    A, 是一个偏序集,且 BA 的子集,对于一个元素 aB
    B 的任意元素 x ,满足 xa ,则称 aB上界
    B 的任意元素 x ,满足 ax ,则称 aB下界

    • 上界和下界 不是唯一的
  • 最小上界/上确界、最大下界/下确界:
    A, 是一个偏序集,且 BA 的子集,对于 B 的任一上界 a
    B 的所有上界 y ,满足 ay
    则称 aB最小上界(上确界),记为 LUB B
    B 的所有上界 y ,满足 ya
    则称 aB最大下界(下确界),记为 GLB B

  • 良序集合:
    任一偏序集合,若它的每个非空子集存在最小元素,
    则称这种偏序集为 良序集合

定理

  • 每一个良序集合一定是全序集合,每一个 有限 的全序集合一定是良序集合

图论

路与回路

定义

路、回路

  • 路:连接各个节点
  • 回路:头尾节点相同的路
  • 通路:不存在重复节点的路
  • 圈:除头尾节点外不存在重复节点的回路
  • 迹:不存在重复边的路

连通性

  • 连通:两节点之间存在路
  • 连通分支:将一个图划分为若干子图,两个节点只有属于同一个集合时连通,连通分支数记为 W(G)
  • 点割集:如果将集合中所有点及其相连的边从图中移除,会导致图变得不连通(即图的连通分支数增加)
  • 割点:单独构成点割集的点
  • 点连通度:在保持图连通的前提下,至少需要移除多少个顶点(及其相连的边)才能使图不连通,记为 k(G)
  • 边割集:如果移除该边集中的所有边后,图会变得不连通的边集
  • 割边:单独构成边割集的边
  • 边连通度:在保持图连通的前提下,至少需要移除多少条边才能使图不连通,记为 λ(G)

最短路

  • 两节点之间的最短路记为两节点的距离(或短程线),用 d(u,v) 表示
  • D=maxd(u,v) 称为图的直径

强弱连通(在有向图中)

单侧连通:图中存在一对节点仅单侧可达(不要求图为连通图)
强连通:图中任意两节点相互可达
弱连通:单侧连通的有向图转为无向图后是连通的
强/弱/单侧分图:具有强/弱/单侧性质的最大子图

定理

  • 两节点间必然存在一条不多于 n1 条边的路
  • 两节点间必然存在一条小于 n 条边的通路
  • 连通图只有一个连通分支
  • k(Kp)=p1(完全图的点连通度为 1
  • k(G)λ(G)δ(G)(点连通度≤边连通度≤最小度数)
  • 两节点间每一条路都经过的节点为割点
  • 强连通 图中存在一个回路,该回路至少包含每个节点一次
  • 有向图中的每个节点只位于一个强分图中
  • 对于邻接矩阵 A(G)(A(G))k 中,aij 表示从 vivj 的长度为 k 的(回)路的数量
  • 对于有 n 个节点的连通图, rank M(G)=r1
  • 对于有 n 个节点,w 个最大连通子图的连通图,M(G) 是完全关联矩阵,rank M(G)=nw

欧拉图与哈密顿图

定义

欧拉图

  • 欧拉路径:一条经过所有边且不重复的路
  • 欧拉回路:一条经过所有边且不重复的回路
    • 有向图中为单向欧拉路径(回路)

哈密顿图

  • 哈密顿路径:经过所有节点恰好一次的路径
  • 哈密顿回路:经过所有节点恰好一次的回路

闭包

1
2
3
4
G, G' = <V, E>
节点总数 n
while G'中存在非邻接节点 and 两节点度数之和大于等于 n:
连接这两个节点

C(G)=G 称为 G 的闭包

定理

欧拉图

  • 对于无向图,当且仅当其连通且奇数度节点有 0 或 2 个时,有欧拉路径
  • 对于无向图,当且仅当所有节点全为偶数度节点时,有欧拉回路
  • 对于有向图,当且仅当其连通且{有两个节点,一个入度比出度大 1 另一个入度比出度小 1},其余节点入度等于出度时,有欧拉路径
  • 对于有向图,当且仅当其连通且所有节点入度等于出度时,有欧拉回路

哈密顿图

  • 若一个图有哈密顿回路,则对任意一个节点子集 S
    GS 的连通分支数 W(GS)|S|
  • 对于一个图,若其为简单图且每一对节点度数之和大于等于 n1  该图有哈密顿路径(这不是充要条件)
  • 对于一个图,若其为简单图且每一对节点度数之和大于等于 n  该图有哈密顿回路(这不是充要条件)
  • 一个简单图的闭包是哈密顿图 该简单图也为哈密顿图

平面图

定义

  • 平面图:边之间没有交点的图(可以通过改画图像得到)
  • 面:边所包围的区域
  • 边界:构成面的边所形成的回路
  • 面的次数:面的边界长度
  • k 度节点内同构:对两个图通过多次添加或删除度数为 k 的节点,后使得两图同构

定理

  • 对于有限平面图,面的次数和等于边数的两倍
  • 欧拉公式:VE+R=2
  • 判断非平面图的充分条件:对于一个连通的简单平面图,若 V3E3V6
  • 判断平面图的充要条件:一个图是平面图 该图不包含与 K3,3,K52 度节点内同构的子图

对偶图与着色

定义

对偶

  • 对偶图:GG  互为对偶图,对于 G 中的每一个面(包括外面),G  中均有一个对应的节点在其内部,反之亦然
  • 自对偶图:G 与其对偶图 G  同构

着色

  • 最少着色数:x(G)
  • WelchPowell 着色法:
1
2
3
4
5
6
for node in sorted_node (按度数降序排序后的节点):
if node 未着色:
对 node 及其的所有不邻接节点着相同颜色
换一种颜色
if 所有节点已着色:
break

定理

  • x(Kn)=n
  • 对于一个至少有三个节点的连通平面图,必存在度数小于 5 的节点
  • 任意平面图,最多为 5-色 (?)

树与生成树

定义

  • 树:无向图
    • 无回路的连通图
    • 每个节点之间仅有一条路
    • E=V1
    • λ(G)=1
  • 生成树:一个图的子图是树,该树称为生成树
  • 最小生成树:一个图的所有生成树中,边权和最小的那棵树

定理

  • 连通图至少有一颗生成树

  • 图中的一条回路/边割集和该图的任何一颗生成树的补至少有一条公共边

  • Kruskal 算法得到最小生成树:

    1
    2
    3
    4
    5
    6
    7
    8
    V = {}, E = {}
    G = <V, E>
    sum = 0
    for edge in sorted_edges(按边权升序排列的边):
    if 加入该边不会出现环:
    将该边加入图中
    if G 是生成树(边数等于 n-1):
    break

根树及其应用

定义

  • 有向树:不考虑边的方向时是一颗树的有向图
  • 根树:恰有一个节点入度为 0,其余节点入度为 1 的有向树,入度为 0 的为根,出度为 0 的为叶,出度不为 0 的为分支点或内点
  • (完全)m 叉树:每一个节点的出度均(恰好等于)小于等于 m 的根树
  • 内部/外部通路长度:根到分支节点/叶节点的通路的长度
  • 带权二叉树:有 t 个叶节点,每个叶节点带有权值 w1,w1,...,wt
  • 最优带权二叉树(哈夫曼树):
    • 对于带权为 wi 的叶节点,其通路长度为 L(wi)
    • w(T)=i=1twiL(wi) 称为该带权二叉树 T 的权
    • 最优树为 w(T) 最小的那棵树
  • 前缀码:一个 01 序列集合,没有一个序列是其他序列的前缀
    • 前缀码和二叉树一一对应

定理

  • 对于完全 m 叉树,树叶数为 t,分枝点数为 i,则有 i(m1)=t1
  • 对于有 n 个分枝点的完全二叉树,内部通路长度总和为 I,外部通路长度总和为 E,有 E=I+2n
  • 对于带权 w1w2 ... wt 的最优树 T
    • 带权 w1,w2 的叶节点 vw1,vw2 互为兄弟节点
    • vw1,vw2 的父节点的通路长度最长
    • 若将 vw1,vw2 的父节点改为带权 w1+w2 的叶节点,得到的新树 T  也是最优树

参考文献