数学 旧 .com 迁移

图论与组合:作业 / 1.4

从旧 .com 全量搬运的历史内容,来源路径:/math/课程/图论与组合/exams/作业/1-4/

迁移来源

1.4 #

1.4.6 #

画出 de Bruijin 图 D2D_2D4D_4.

note
\begin{tikzpicture}[ >={Stealth[length=3mm, width=2mm]}, % 設定預設箭頭樣式 node_dist/.style={auto, font=\small, midway}, % 設定邊權重標籤的樣式 v/.style={ circle, % 圓形節點 draw=blue!50, % 邊框顏色 fill=blue!10, % 填充顏色 thick, % 邊框粗細 minimum size=0.7cm % 最小尺寸 }] \node[v] (v0) at (7, 2.5) {0}; \node[v] (v1) at (7, -2.5) {1}; \path[->] (v0) edge [loop left] node[node_dist] {0} (v0) % 邊 00 (自環) (v0) edge [bend left=30] node[node_dist] {1} (v1) % 邊 01 (曲線) (v1) edge [bend left=30] node[node_dist] {0} (v0) % 邊 10 (曲線) (v1) edge [loop right] node[node_dist] {1} (v1); % 邊 11 (自環) \node[v] (v000) at ( 0:4cm) {000}; \node[v] (v001) at ( 45:4cm) {001}; \node[v] (v011) at ( 90:4cm) {011}; \node[v] (v010) at (135:4cm) {010}; \node[v] (v100) at (225:4cm) {100}; \node[v] (v101) at (270:4cm) {101}; \node[v] (v111) at (315:4cm) {111}; \node[v] (v110) at (180:4cm) {110}; % 為了讓線條交叉較少,調整了位置 \path[->] (v000) edge [loop above] node[node_dist] {0} (v000); \path[->] (v000) edge [bend left=10] node[node_dist] {1} (v001); \path[->] (v001) edge [bend left=10] node[node_dist, swap] {0} (v010); \path[->] (v001) edge [bend left=10] node[node_dist] {1} (v011); \path[->] (v010) edge [bend left=10] node[node_dist] {0} (v100); \path[->] (v010) edge [bend left=10] node[node_dist] {1} (v101); \path[->] (v011) edge [bend left=10] node[node_dist, swap] {0} (v110); \path[->] (v011) edge [bend left=10] node[node_dist] {1} (v111); \path[->] (v100) edge [bend left=10] node[node_dist] {0} (v000); \path[->] (v100) edge [bend left=10] node[node_dist, swap] {1} (v001); \path[->] (v101) edge [bend left=10] node[node_dist] {0} (v010); \path[->] (v101) edge [bend left=10] node[node_dist, swap] {1} (v011); \path[->] (v110) edge [bend left=10] node[node_dist, swap] {0} (v100); \path[->] (v110) edge [bend left=10] node[node_dist] {1} (v101); \path[->] (v111) edge [loop above] node[node_dist] {1} (v111); \path[->] (v111) edge [bend left=10] node[node_dist, swap] {0} (v110); \end{tikzpicture}

1.4.8 #

证明: 存在一个 nn-顶点的竞赛图使得其中每个顶点的入度等于出度当且仅当 nn 是奇数.

note

"\Rightarrow": 对于竞赛图, 有 d(v)+d+(v)=n1d^-(v)+d^+(v)=n-1, 又 d(v)=d+(v)d^-(v)=d^+(v), 所以 nn 是奇数.

"\Leftarrow": 用 0,,n10,\ldots,n-1 表示节点编号, 以如下方式定向

i(i+n2)modni\to (i+\lfloor \frac n 2\rfloor)\bmod n

如此, 每个点出边指向比其大的一半点, 入边由比其小的一半点指来.

1.4.10 #

证明: 一个有向图强连通当且仅当将顶点集任意划分成非空集合 SSTT 后, 均存在一条从 SSTT 的边.

note

"\Rightarrow": 根据强连通性质, 任取 uS,vTu\in S,v\in T, 存在一条 u,vu,v-path. 可以找到路径中属于 SS 的最后一个点, 和属于 TT 的第一个点, 从而这两个点之间的边就是一条从 SSTT 的边.

"\Leftarrow": 对任意两个点 u,vV(G)u,v\in V(G), 考虑初始划分 S={u},T=V(G){u}S=\{u\}, T=V(G)-\{u\}, 存在一条 SSTT 的边.

  • (1) 这条边的另一个端点不是 vv, 记作 u1u_1, 那么将 u1u_1 加入 SS 中, 并从 TT 删去.
  • (2) 这条边的另一个端点是 vv, 那么我们就找到了一条 u,vu,v-walk, 从而有 u,vu,v-path, 即 uu 可达 vv.

我们只需反复进行 (1) 操作直到 (2) 成立, 并且 (2) 一定会成立, 因为每次 (1) 都会使得 TT 中顶点数量减一, 至多 n2n-2 次操作就会得到 vv.

1.4.14 #

GG 是一个无环的 nn-顶点有向图. 证明: GG 的顶点可以被排序为 v1,,vnv_1,\ldots,v_n 使得如果 vivjE(G)v_iv_j\in E(G) 则必有 i<ji<j.

note

因为是有向无环图, 那么一定存在入度为 00 的点, 否则所有点入度都不为零一定存在环.

那么我们就将这个入度为 00 的点加入最终序列里, 并删除这个点及其出边.

注意到, 删除这样的点和边后, 剩余的图仍是有向无环图, 所以可以重复上述操作直到所有点被取出.

下证上述操作得到的序列满足条件.

对于边 vivjE(G)v_iv_j\in E(G), 考虑这条边什么时候被删除, 当且仅当删除点 viv_i 的时候删除这条边, 而将点 viv_i 加入序列后 vjv_j 仍在图中, 所以 viv_i 的位置一定在 vjv_j 前面, 故满足 i<ji<j.

1.4.19 #

用引理对边数归纳来证明 一个有向图是欧拉图当且仅当 d+(v)=d(v)d^+(v)=d^-(v) 对每个顶点 vv 成立, 并且其底图最多有一个非平凡的连通分量.

note

"\Rightarrow": 如果是欧拉图, 那么存在一个闭合的迹遍历边集. 所以显然底图除了孤立点是连通的. 又点 vv 在迹中每次出线都会有一条入边, 一条出边即入度和出度分别加 1, 故总数上有 d(v)=d+(v)d^-(v)=d^+(v).

"\Leftarrow": 考虑数学归纳法, 对边数 ll 归纳.

l=0l=0 时, 显然成立.

lkl\leqslant k 时成立.

l=k+1l=k+1 时, 考虑底图非平凡的连通分支, 由 d+(v)=d(v)d^+(v)=d^-(v), 可推出 d+(v)1d^+(v)\geqslant 1, 从而根据引理可以找到一个环. 如果这个环就是欧拉回路那么成立, 否则将这个环上的边删去, 剩下的图的每个连通分支根据归纳假设存在欧拉回路, 再用这个环将若干欧拉回路有向拼接就可得到整体的欧拉回路.

讨论

评论

正在加载评论...