M07 · 第 6 章 · 第三编 离散结构与综合复习
组合、图论与离散证明综合复习
以二进制串、有限图和依赖工作流为可复算主线,统一双射、容斥、递推、连通分量、匹配、着色、可达偏序与下闭集,并严格区分无向连通等价关系和有向无环图可达偏序。
报告页面错误本章目标
- 在同一组合类的双射描述、分类递推和生成函数系数之间建立可核对的对应。
- 用路径、连通分量、度数和树结构分析无向图,并用 Hall 条件与染色约束回答不同问题。
- 证明有向无环图的可达关系构成偏序,同时说明无向连通关系构成等价关系。
- 把有限偏序的线性扩张、反链、下闭集和布尔运算用于依赖工作流。
- 在综合案例中分清计数对象、关系方向、算法不变量和结论适用边界。
本页目录
综合题先确定对象、关系和保持量
离散数学中的同一组符号可能代表完全不同的问题。集合的元素数用于计数,图的边用于表达局部关联,递推式记录按第一步分类后的剩余规模,偏序则记录可传递的先后约束。解题前应写清四项:样本对象是什么,两个对象何时视为相同,允许的操作是什么,计算过程中哪一个数量或性质保持不变。
对有限问题,把待研究对象记为集合 ,把结构约束记为关系或谓词 ,把目标量记为 。一份闭合的离散论证应当给出:
- 对象的无歧义编码与相等标准;
- 分类、映射或算法步骤不会遗漏或重复对象的理由;
- 基例、终止性或有限性条件;
- 能从输入直接复算的计数、边集、邻集或序关系;
- 反例所破坏的确切假设。
例如,“从五点中选三点”与“依次选三个不同点”分别对应子集和有序三元组,数量是 与 。两者都可以作为合法模型,却不能把前者的对象与后者的分母混合。
双射与递推应当计算同一个组合类
双射把两个集合逐一配对,因此直接证明它们等势。递推则把大小为 的对象按互斥且穷尽的第一步分成若干类,再把各类化为更小规模。若分类重叠,递推会重复计数;若某类没有覆盖,递推会漏项。初值是递推定义的一部分,缺少初值无法唯一确定数列。
令 表示长度为 且没有相邻两个 的二进制串数。首位为 时,删去首位后有 种;首位为 时,第二位必须为 ,删去前两位后有 种。因此
长度四的八个串为
所以 ,也与递推 一致。
再取路径图 ,顶点依次为 ,相邻整数之间连边。把二进制串映射为所有取值为 的位置集合。没有相邻两个 ,恰好等价于该顶点集合中没有边,即它是独立集。反向映射用独立集的指示串恢复原串,所以这是双射,而不只是两个数列偶然相等。
普通生成函数 还可把递推编码为
形式幂级数推导只比较系数,不需要先讨论数值收敛;若把 当实数代入,再需要说明收敛范围。双射、递推和生成函数分别提供结构解释、逐步计算和代数封装,三者的对象定义必须保持一致。
容斥修正重叠而不是猜测重叠量
对有限集合 ,三集合容斥为
奇数层交集相加、偶数层交集相减,是因为一个落入恰好 个集合的对象在右侧获得总权重 。
从四元素集合到三元素集合共有 个函数。令 表示第 个值没有被取到。固定漏掉一个值时有 个函数;固定漏掉两个值时只剩一个可用值,有 个函数。三个值全漏掉不可能。因此满射数为
也可按三个非空原像块的大小分类。大小只能是 :先选哪个盒子接收两个对象,有三种;再选其中两个对象,有 种;余下两个对象分给两个不同盒子有 种。总数 ,与容斥结果相同。
无向连通是等价关系,有向无环可达才是偏序
这两种关系都使用“存在路径”,逻辑性质却不同。对无向图 ,定义 当且仅当 之间存在无向路径,并允许长度为零的路径。关系 自反、对称、传递,所以是等价关系;其等价类正是连通分量。若分量含两个不同顶点 ,则 与 同时成立,反对称性失败,因此一般不是偏序。
对有向无环图 ,定义 当且仅当 或存在从 到 的有向路径。零长度路径给出自反性,路径拼接给出传递性。若 且 而 ,两条有向路径会组成有向环,与无环条件冲突,所以必有 。因此 DAG 的可达关系是偏序。
无向图顶点为 ,边集为
连通等价类是 与 。例如 ,同时 ,但 ;这直接否定反对称性。
再看有向图
它没有有向环。可达偏序中 、 ,而 不可比。其哈斯图就是一个菱形,传递关系 不画成覆盖边。该偏序有两种线性扩张:
把有向边全部忽略方向后所得无向图只有一个连通分量;“一个等价类”和“两种线性扩张”回答的是不同问题。
若有向图含环,可达关系仍自反、传递,却可能不反对称,只是预序。例如 使三个不同顶点两两互相可达。把互相可达的顶点归入同一个强连通分量,再把分量缩成顶点,所得凝聚图必为 DAG;其分量间可达关系才构成偏序。
度数、树和搜索算法各有可核对的不变量
无向有限图满足握手定理
因为每条边恰好贡献两个端点计数。因此奇度顶点数必为偶数。树是连通且无环的无向图;含 个顶点的树恰有 条边。可从树中删除叶子归纳证明,也可从连通图的生成树和无环性两侧夹定边数。
广度优先搜索从源点按距离层扩展。每个顶点首次被发现时记录父边,得到一棵搜索树;层号等于从源点出发的最短无权路径长度。深度优先搜索适合发现回边、完成时间和连通结构,但其树深度一般不是最短距离。算法名称不能替代所保持的不变量。
匹配与着色处理两类不同冲突
匹配是一组互不共享端点的边;在二部图 中,覆盖 的匹配存在,当且仅当每个 都满足 Hall 条件
它比较一群左侧对象可用的右侧选择总数。图着色则给相邻顶点不同颜色,最少颜色数记为 。匹配问“一对一分配是否冲突”,着色问“冲突对象至少分几批”;二者都用图,却没有可直接互换的答案。
三项任务 与三个执行者 的可行边为
匹配
覆盖全部任务。逐项检查可见任意单任务至少有一个邻点;包含 的两任务子集至少拥有两个邻点;全部三任务的邻集为 ,故 Hall 条件也核对通过。
另有五项活动按环 冲突。沿环交替使用两色,到第五个顶点时会同时邻接第一色与第二色,所以两色不够;给第五点第三色即可,故
这个染色结论没有说明谁能执行哪项任务,前面的完美匹配也没有给出冲突活动的最少批次数。
依赖工作流把本册结构汇合起来
设四项任务 的直接依赖为
有向图是 DAG,其可达偏序满足 与 ,而 不可比。按“每次删除一个极小元”的递推,线性扩张数 满足
本例先选 ,再在 中二选一,最后选 ,所以恰有两种合法全序,与前文枚举一致。若允许并行,三个阶段是 、、;中间层是一条二元素反链。
一组已完成任务必须向下封闭:完成某任务就已经完成它的全部前驱。六个可行状态为
它们在包含关系下对交、并封闭,构成分配格。该格却不是布尔代数,因为 在全集中的补集 不是下闭集。
现在让执行者 可执行 ,执行者 只能执行 。中间并行层的二部图边为
匹配 、 使两项任务可以同时执行。这里依次用了 DAG 可达偏序、线性扩张计数、反链、下闭集格和二部匹配;每一步都保留了原问题中不同的约束。
四类常见误读
同一个关系 对不同的 给出不同数列。组合解释还要证明分类互斥且穷尽,不能只因形式像 Fibonacci 递推就采用某组初值。
无向路径可以反向行走,所以同一连通分量中的不同顶点互相可达,违反反对称性。无向连通给出等价类;DAG 中按方向的可达关系才因无环而成为偏序。
完美匹配约束边不共享端点,染色约束相邻顶点颜色不同。奇环可以拥有较大匹配却需要三色;人员资格图有完美匹配也不决定活动冲突图的染色数。
三环 中, 可达 且 可达 ,但两点不同。删除无环假设后,可达关系只能保证预序。把强连通分量缩点后,才恢复分量之间的偏序。
练习:组合、图与序的交叉核对
求长度五且没有相邻两个 的二进制串数,并说明它等于哪个图的独立集数。
查看提示
查看解答
由递推
把取值为 的位置映射为路径图 的顶点子集,禁止相邻两个 恰好表示子集中没有边,所以该数也是 的独立集数。
求从五元素集合到二元素集合的满射数,并用“非空二分”解释结果。
查看提示
查看解答
全部函数有 个。非满射只能把五个元素全部映到第一个值或全部映到第二个值,共两个,所以满射数为
等价地,每个非空真子集可以作为第一个值的原像,其补集是第二个值的原像;五元素集合有 个非空真子集。
无向图顶点为 ,边为 。写出连通等价类,并判断可达关系是否为偏序。
查看提示
查看解答
连通分量是
连通关系自反、对称、传递,故为等价关系。因为 可达 且 可达 ,但 ,反对称性失败,所以它不是偏序。
对有向边 ,求线性扩张数并列出全部下闭集。
查看提示
查看解答
唯一极小元是 ;删除后 可按任意顺序出现,而 必须最后,因此有两种线性扩张:
全部下闭集为
二部图左侧为 、右侧为 ,邻集为 、。是否存在覆盖左侧的匹配?
查看提示
查看解答
取 ,则
Hall 条件失败,所以不存在覆盖左侧的匹配。直观上, 都只能选择同一个右侧顶点,至少有一个无法匹配。
证明五环 的染色数为三,并指出删除一条边后的染色数。
查看提示
查看解答
若用两色沿环交替,走过五条边回到起点时,最后一个顶点会与起点同色且相邻,产生矛盾,所以 。给前四点交替两色、第五点第三色可得合法三染色,故
删除一条边后得到含五个顶点的路径。路径按奇偶位置使用两色即可,且它仍有边,不能只用一色,所以染色数为二。
关系索引、阅读资源与后续路线
- 证明策略 支持双射的互逆证明、容斥的元素权重证明和图性质反例。
- 关系与数学归纳法 支持递推正确性、树边数和有限偏序递归的基例与归纳步。
- 集合、映射与关系 提供函数、等价类、二元关系和下闭集所需的形式语言。
- 概率公理 把有限组合计数用于等可能样本空间与事件规模。
MIT 6.042J Mathematics for Computer Science
Albert R. Meyer, Adam Chlipala
用于核对集合与函数语言、有限集合上的证明方法,以及组合计数、条件概率和离散概率的推导。
打开官方来源MIT 6.042J 将证明、计数、递推、图、偏序和离散概率放在同一课程中,适合按本章对象账本逐项核对定义与定理条件。
Discrete Mathematics: An Open Introduction, Fourth Edition
Oscar Levin
用于核对图论、计数、递推与生成函数章节中的定义顺序、证明边界和可复算练习。
打开官方来源Oscar Levin 的《Discrete Mathematics: An Open Introduction》第四版覆盖证明、计数、序列、图论和生成函数,可用于检查双射是否有逆映射、递推分类是否穷尽以及图论结论是否保留条件。
Applied Discrete Structures
Al Doerr, Ken Levasseur
用于交叉核对递推、图连通性、树、着色、偏序、格与布尔代数的定义、算法条件和练习结构。
打开官方来源Doerr 与 Levasseur 的《Applied Discrete Structures》系统讨论组合、递推、图、树、偏序、格和布尔代数,有助于交叉核对本章在不同离散对象之间切换时使用的定义边界。正文中的字符串、满射、图、匹配、染色与工作流案例均给出了有限输入和独立复算路径。
完成综合复习后,面对新问题应依次确认计数对象、关系方向和有限性,再选择双射、分类递推、容斥、图搜索、匹配、染色或偏序工具。无向连通用于形成等价类,DAG 可达用于形成先后偏序,强连通分量则连接两者。后续学习可以沿算法设计与复杂度、概率方法或抽象代数三条路线推进,但每条路线都继续依赖本章的对象编码、反例定位和不变量检查。