算法 旧 .com 迁移

图论与组合:讨论班 / 算法证明

从旧 .com 全量搬运的历史内容,来源路径:/math/课程/图论与组合/chapters/讨论班/算法证明/

迁移来源

正确性证明

本章在边权互异的前提下,严格证明第~\ref{sec:base-tree}节与第\ref{sec:types}~节所述算法在 degT(1)=k\deg_T(1)=k 的可行域内输出*“最大边优先”的词典序最小*生成树,且最优解唯一。

词典序与基本交换性质 #

\newcommand{\maxlex}{\text{maxlex}} {{< admonition definition “定义 最大边优先的词典序” true >}} 对生成树 TT,记其边权从小到大排序为 w(T)=(w[1](T)w[n1](T))\mathbf{w}(T)=(w_{[1]}(T)\le\cdots\le w_{[n-1]}(T))。 给定两棵树 T,TT,T',定义 w(T)\maxlexw(T)\mathbf{w}(T)\prec_{\maxlex}\mathbf{w}(T') 当且仅当存在最小的 t{1,,n1}t\in\{1,\dots,n-1\} 使得 w[nt](T)w[nt](T)w_{[n-t]}(T)\neq w_{[n-t]}(T')w[nt](T)<w[nt](T)w_{[n-t]}(T)<w_{[n-t]}(T')

tip

TT 为生成树,eTe\notin T。将 ee 加入 TT 形成唯一环 C\mathcal{C}。 若存在 fCf\in\mathcal{C} 使 w(e)<w(f)w(e)<w(f),则令 T:=Tf+eT':=T-f+e,有 w(T)\maxlexw(T)\mathbf{w}(T')\prec_{\maxlex}\mathbf{w}(T)

note

TTTT' 的边权多重集仅在 {f}\{f\}{e}\{e\} 替换处不同。 因权互异,排序后两向量自大到小比较时,最早出现差异的坐标由 w(f)w(f) 变为更小的 w(e)w(e), 故得结论。

tip

(S,Sˉ)(S,\bar S) 为任意割,其最小跨割边为 ee^\star。 若某可行树 TT 在该割上使用了边 eee\neq e^\star(必有 w(e)>w(e)w(e)>w(e^\star)), 则存在 TT' 在度约束不变的前提下满足 w(T)\maxlexw(T)\mathbf{w}(T')\prec_{\maxlex}\mathbf{w}(T)

note

ee^\star 加入 TT 得环 C\mathcal{C},且 C\mathcal{C}ee。 由引理~\ref{lem:cycle}ee^\star 替换 ee 得严格改进;若 ee 与 1 不相邻, 则度数不变;若 ee 与 1 相邻,则 ee^\star 亦跨同一割且与 1 相邻(否则不连通), 因此 deg(1)\deg(1) 亦不变。

基树阶段的必要性与最优性 #

回顾第~\ref{sec:base-tree}~节:在 V{1}V\setminus\{1\} 上仅用 E0E_0 升序 Kruskal 得到最小生成森林 F0minF_0^{\min},连通块为 C1,,CrC_1,\dots,C_r; 对每个块取与 1 相连的最小边 bmin(Ci)=argmin{w(1,v)vCi}b_{\min}(C_i)=\arg\min\{w(1,v)\mid v\in C_i\},并令 Trmin=F0min{bmin(Ci):i=1,,r}T_r^{\min}=F_0^{\min}\cup\{b_{\min}(C_i):i=1,\dots,r\}

tip

若存在可行树 TT 满足 degT(1)=k\deg_T(1)=k,则: (i) 对任意 ii,块 CiC_i 与 1 至少有一条边相连; (ii) rkdegG(1)r\le k\le \deg_G(1)

note

若某 CiC_i 无与 1 相连之边,则任何生成树都无法连接 1 与该块,矛盾。 因为每个 CiC_i 至少需一条 11-边与整体相连,故 krk\ge r; 同时 kk 不得超过顶点 1 的度上界 degG(1)\deg_G(1)

{{< admonition tip “命题 块内最小 11-边的必选性” true >}} 设 TT 为任一可行树且 degT(1)r\deg_T(1)\ge r。 对任意 ii,若 TT 在割 (Ci,Cˉi)(C_i,\bar C_i) 上使用的与 1 相连的边不是 bmin(Ci)b_{\min}(C_i),则存在可行树 T~\tilde T 满足 w(T~)\maxlexw(T)\mathbf{w}(\tilde T)\prec_{\maxlex}\mathbf{w}(T)

note

(Ci,Cˉi)(C_i,\bar C_i) 的最小跨割边为 bmin(Ci)b_{\min}(C_i)。 若 TT 用了其他较大的跨割边 ee,由引理~\ref{lem:cut} 将其替换为 bmin(Ci)b_{\min}(C_i) 得严格改进;替换前后均为 11-边,deg(1)\deg(1) 不变。

{{< admonition tip “推论 基树的词典序最优性(在 degr\deg\ge r 的可行域内)” true >}} 在所有满足 deg(1)r\deg(1)\ge r 的可行树中,TrminT_r^{\min}\maxlex\prec_{\maxlex} 下最优,且在互异权下唯一。

note

若某可行树在某块上未使用 bmin(Ci)b_{\min}(C_i),按命题~\ref{prop:block-min} 可严格改进。 当所有块均使用 bmin(Ci)b_{\min}(C_i) 时,非 11-边部分因 F0minF_0^{\min} 的最优性而最小; 唯一性由互异权给出。

一类/二类 11-边与单步最优选择 #

设当前树为 TT(初始取 TrminT_r^{\min})。对任一未选 11-边 e=(1,x)e=(1,x),记

MT(1,x):=max{w(f)fPT(1,x)}, M_T(1,x):=\max\{\,w(f)\mid f\in P_T(1,x)\,\},

其中 PT(1,x)P_T(1,x)TT 中从 1 到 xx 的唯一路径。 加入 ee 后按环性质删除路径最大边(记为 argmaxT(1,x)\mathrm{argmax}_T(1,x))。

{{< admonition definition “定义 一类/二类 11-边” true >}} 若 w(e)<MT(1,x)w(e) < M_T(1,x),称 ee一类边(改进步); 若 w(e)>MT(1,x)w(e) > M_T(1,x),称 ee二类边(劣化步)。

tip

ee 为一类边,则令 T:=TargmaxT(1,x)+eT':=T-\mathrm{argmax}_T(1,x)+e,有 w(T)\maxlexw(T)\mathbf{w}(T')\prec_{\maxlex}\mathbf{w}(T)

note

C=PT(1,x){e}\mathcal{C}=P_T(1,x)\cup\{e\} 上最大边权为 MT(1,x)M_T(1,x); 由 w(e)<MT(1,x)w(e)<M_T(1,x) 与引理~\ref{lem:cycle} 立即得到。

tip

若对所有未选 11-边 ee 均有 w(e)MT(1,x)w(e)\ge M_T(1,x), 则任意加入一条 11-边并删除环上最大边后的树 TT' 都满足 w(T)\maxlexw(T)\mathbf{w}(T)\preceq_{\maxlex}\mathbf{w}(T'), 且当存在严格不等式时为劣化。

note

由定义所有候选都为二类边或 w(e)=MTw(e)=M_T 的平权边; 替换将某处较小的值提升为 w(e)MTw(e)\ge M_T,因此不可能改进。

tip

设当前存在至少一条一类边。令

eargmaxe=(1,x) 一类MT(1,x). e^\star \in \arg\max_{e=(1,x)\ \text{一类}} M_T(1,x).

则在所有“加入一条 11-边并删除环上最大边”的可行单步中, 选择 ee^\star 得到的树 TT^\star\maxlex\prec_{\maxlex} 意义下最优。

note

任取另一一类边 ee 得到 TeT_e。 两种结果均以将某一条路径最大边 MT(1,)M_T(1,\cdot) 替换为更小的 w(e)w(e) 的方式改进。 比较两者的最靠后的不同坐标,必对应于较大的那条 MT(1,)M_T(1,\cdot)。选择 MTM_T 最大的 ee^\star 使该坐标降幅最大, 从而在词典序上不劣且严格更优(互异权)。

tip

若已不存在一类边且必须继续增加 deg(1)\deg(1) 才能达到 kk, 则在所有单步中,选择 w(e)w(e) 最小的二类边得到的树在 \maxlex\prec_{\maxlex} 上最优(损失最小)。

note

由引理~\ref{lem:no-type1},任何选择都会在某一坐标造成非负向的变化; 为了使首个差异坐标的增幅尽可能小,应取 w(e)w(e) 最小的二类边。

全局最优性:归纳与交换论证 #

记算法从 T0:=TrminT_0:=T_r^{\min} 出发, 按“先一类后二类;一类内按 MT(1,x)M_T(1,x) 降序,二类内按 w(e)w(e) 升序”的规则, 依次得到 T1,T2,T_1,T_2,\dots,直至 degTs(1)=k\deg_{T_s}(1)=k。 记输出为 Talg:=TsT_{\mathrm{alg}}:=T_s

tip

对任意 t{0,1,,s}t\in\{0,1,\dots,s\},在所有满足 deg(1)=r+t\deg(1)=r+t 的可行生成树中, TtT_t\maxlex\prec_{\maxlex} 下最优。

note

tt 作归纳。t=0t=0 由推论~\ref{cor:base-opt} 成立。 设结论对 t1t-1 成立。考虑任意可行树 SS 满足 degS(1)=r+t\deg_S(1)=r+t。 从 SS 中删去一条与 1 相连的边,得到某 SS' 使 degS(1)=r+t1\deg_{S'}(1)=r+t-1。 由归纳假设,w(Tt1)\maxlexw(S)\mathbf{w}(T_{t-1})\preceq_{\maxlex}\mathbf{w}(S')

deg=r+t1\deg=r+t-1 提升到 r+tr+t 的单步中,算法按引理~\ref{lem:greedy-step}\ref{lem:type2-order} 取到该步的词典序最优选择, 因此 w(Tt)\maxlexw(S)\mathbf{w}(T_t)\preceq_{\maxlex}\mathbf{w}(S)。 (形式化地,可将 SS 的该一步改写为从 SS' 的某一单步; 若 SS' 不等于 Tt1T_{t-1},用交换论证在不劣化的情况下把 SS' 的选择调整为 Tt1T_{t-1} 的选择,再应用单步最优性。)

tip

若可行性成立,则算法输出 TalgT_{\mathrm{alg}} 在所有满足 deg(1)=k\deg(1)=k 的生成树中 \maxlex\prec_{\maxlex} 最优;且在互异权下唯一。

note

t=s=krt=s=k-r,由定理~\ref{thm:prefix} 直接得最优性; 唯一性由互异权与每一步的严格改进/最小损失给出。

度约束与连通性的保持 #

tip

在增添阶段的每一步,加入一条 11-边并删除环上最大边,所得始终为生成树; 且若删除的不是 11-边,则 deg(1)\deg(1) 增 1;若删除的是已加入的 11-边则不发生(算法不作此删除)。

note

加入一边成环,删去环上一边仍为生成树是图论基本事实。 算法实现上每步都删除路径最大边,而路径最大边必为非 11-边(见第~\ref{sec:offline-key} 节的指派或在线求解的路径最大性——若为 11-边则与一类/二类的定义矛盾),故度数按预期单调增加直至 kk

实现细节的正确性(指派与排序键) #

本节说明第~\ref{sec:offline-key} 的“指派”仅用于实现效率,与正确性一致。

tip

在 Kruskal(升序)构造 F0minF_0^{\min} 的并查集中,合并两个块 A,BA,BE0E_0-边 e0e_0 被指派给 max{m(A),m(B)}\max\{m(A),m(B)\} 所对应的那条最小 11-边; 该 11-边一旦被选入树,其所替换(删除)的正是 e0e_0 或权值不小于 w(e0)w(e_0) 的路径最大边。

note

在合并前,A,BA,B 各自的“最小 11-边”分别为 m(A),m(B)m(A),m(B)。 两块并成后,先选入较小者不会使当前块内部出现比 e0e_0 更大的非 11-边成为路径最大值; 当随后选入较大的那条最小 11-边时,跨越的路径上最重的非 11-边即为 e0e_0(或其不小者),因此与在线定义 MT(1,x)M_T(1,x) 一致。形式化证明可用对 Kruskal 合并序列的归纳与“最小生成森林的瓶颈唯一性”完成。

{{< admonition tip “推论 离线排序键与在线 MTM_T 的一致” true >}} 用 w(kill(e))w(\mathrm{kill}(e)) 作为一类边的排序键,等价于在线以 MT(1,x)M_T(1,x) 的降序排序;因此不影响第~\ref{lem:greedy-step} 的最优性结论。

小结 #

综上:可行时,基树阶段(命题~\ref{prop:block-min}、推论~\ref{cor:base-opt})给出在 degr\deg\ge r 的词典序最优前缀;增添阶段每一步的选择分别由 引理~\ref{lem:greedy-step} 与引理~\ref{lem:type2-order} 保证单步最优, 并由定理~\ref{thm:prefix} 的归纳交换论证提升为全局最优;度与连通性由 引理~\ref{lem:maintain} 保证;实现上的“指派”与排序键(命题~\ref{prop:assign})与在线瓶颈一致(推论~\ref{cor:offline-online})。 最终结论见定理~\ref{thm:global}:算法确为“最大边优先”的词典序最小、且 deg(1)=k\deg(1)=k 的唯一最优解。

讨论

评论

正在加载评论...