QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: Kevin5307

Posted at: 2025-12-12 19:46:49

Last updated: 2025-12-12 19:46:58

Back to Problem

题解

题意:给定一个网络,求流量为 $1$ 的最小费用,其中边 $e$ 上流量为 $f(e)$ 的费用是 $c(e)f^2(e)$,流量可以为负数,此时看做一个反向的流。


考虑这个问题和最基本的费用流有什么区别。我们可以将这个问题看做一个边费用随流量变化的网络,具体地,若边 $e$ 已经有 $f(e)$ 的流量,它的单位流量的费用应该是 $2c(e)f(e)$。

尽管这个流量是连续变化的,但是这不影响我们离散地理解它。考虑每次增广 $\epsilon$ 的流量,那我们会选择一条费用和最小的 $1\to n$ 路径,然后在其上增广 $\epsilon$ 的流量。感性理解增广过程,一开始,由于所有边费用都是 $0$,我们会任选一条路增广,然后它的费用非 $0$,于是我们又选择另一条路增广,以此类推,最终会得到这样的结果:任何一条从 $1$ 至 $n$ 的路径,其上所有边费用的和均相等。然后将这个流等比例放大,最终得到答案所求的流。

怎么解出这个相等条件呢?那显然,我们对每个点建立变量,表示从 $1$ 到当前点的路径费用和,与每条边的流量联立,能得到一个有 $|V|+|E|-1$ 个变量的方程组。那其中有多少方程呢?首先题目中给出的网络流最基本的方程有 $|V|-1$ 个,同时每条边和两端点对应的变量也能列出一个方程,那总共也是 $|V|+|E|-1$ 个,于是我们将其解出即可。


或者我们还可以换一个方向理解。

$c(e)f^2(e)$ 这个形式比较有趣,我们来回想一下什么和“流”有关的东西也有类似的形式。翻开初三物理书,你可以发现:$Q=I^2Rt$。

于是,我们将整个网络看做一个电路,注意电路中的电流天然满足网络流的流量限制条件,将每条边的边权 $c(e)$ 看做是电阻,那问题就变成了,找到一种分配电流的方式,使得电路功率 $P$ 最小。

由于这是电路向外放热,那感性的理解上,自然界的规律也会尽量让 $P$ 最小。那我们对实际问题列方程即可,具体地,根据基尔霍夫定律列方程,会得到和上面相同的方程组。


有没有更理论,看上去更严谨的做法?

实际上,整个问题是需要我们求出方程组 $Ax=b$ 的满足 $||x||$ 最小的解。虽然题目中的费用带权,但是我们将其换元可以轻松转化成这个形式。那这个最小解是什么?

我们给出结论:这个最小解 $x^{*}=A^{T}(AA^{T})^{-1}b$。首先,$x^{*}$ 显然是方程组的一个解,所以我们只需要证明 $x^{*}$ 是所有解中 $||x||$ 最小的。

考虑一个解 $x$。我们有 $||x||^2=||x^{*}||^2+||x-x^{*}||^2+2{x^{*}}^{T}(x-x^{*})$。注意到:

$$ \begin{aligned} {x^{*}}^{T}(x-x^{*})&=[A^{T}(AA^{T})^{-1}b]^{T}[x-A^{T}(AA^{T})^{-1}b]\\ &=b^{T}(AA^T)^{-1}A[x-A^{T}(AA^{T})^{-1}b]\\ &=b^{T}(AA^{T})^{-1}(Ax-b)\\ &=0 \end{aligned} $$

那么显然有 $||x||^2=||x^{*}||^2+||x-x^{*}||^2$,问题得以解决,且同时可以说明 $x^{*}$ 是唯一取到最小值的解。

这被称为线性方程组的最小范数解。

Comments

No comments yet.