Loading

【笔记】保序回归问题

保序指保持原来的偏序,在保持给定偏序前提下求一组变量 \(\{y_i\}\) 最拟合给定变量 \(\{x_i\}\)

用数学术语表示,给定偏序集合 \(S = \{(x,y)\}\),大小为 \(n\) 的集合 \(X=\{x_i\},W=\{w_i\}\),求一组大小为 \(n\) 变量集合 \(Y=\{y_{i}\}\),使得对于任意 \((i,j)\in S,y_{i}\le y_j\),使得 \(\sum\limits_{i = 1}^{n}w_i(x_i - y_i)^p\) 最小。

更具体的,我们称之为 \(L_p\) 问题。

定义 \(L_p\) 均值为使 \(\sum\limits_{i = 1}^{n}w_i(x_i - k)^p\) 最小的 \(k\)

对于偏序集合为一条单链的情况,可以在较优复杂度内完美解决。

P4331 [BalticOI 2004]Sequence 数字序列

\(L_1\) 问题模板,偏序集为单链。

显然如果 \(x_i \ge x_{i + 1}\),就有 \(y_{i} = y_{i + 1}\),不难理解,假设 \(y_i \neq y_{i + 1}\),将两个数修改至 \(L_1\) 均值一定不会更劣。

所以我们用栈维护,满足条件就合并栈顶,求出新的 \(L_1\) 均值。

不难发现 \(L_1\) 均值就是加权中位数。

[USACO21JAN] Minimum Cost Paths P

\(L_2\) 问题模板,偏序集为单链。

这里的 \(y_i\) 表示第 \(i\) 列移动到第 \(i + 1\) 列时的行号,因为行号和列号不减,所以 \(y_i\) 不减,即偏序集为单链。

\(L_2\) 均值是加权平均数(比 \(L_1\) 均值维护起来还方便的多

套用上面的栈维护即可。


对于一般偏序集,可以整体二分求出近似解。

挖坑待填。。。

posted @ 2022-02-10 20:30  7KByte  阅读(218)  评论(0编辑  收藏  举报