保序回归问题


巧克力吃多了睡不着起来看论文,看到哪里更到哪里。
注:本文中内容来源于2018年集训队论文

定义

偏序关系

\(R\) 是集合 \(S\) 上的一个二元关系,若 \(R\) 满足:

  • 自反性: \(\forall x\in S\), 有 \(x\ R\ x\)
  • 反对称性: \(\forall x,y\in S\),若有 \(x\ R\ y, y\ R\ x\),则有 \(x=y\)
  • 传递性: \(\forall x,y,z\in S\),若有 \(x\ R\ y, y\ R\ z\),则有 \(x\ R\ z\)

则称 \(R\)\(S\) 上的非严格偏序关系,记做 \(\le\)

问题描述

给定正整数 \(p\),一张点集为 \(V=\{v_1,v_2...v_n\}\),边集 \(E(|E|=m)\)的有向无环图 \(G\) ,及代价函数 \((y,w)(\forall i, w_i>0)\) 。如果在 \(G\) 中有 \(v_i\)\(v_j\) 的有向路径,那么就有 \(v_i\le v_j\) 的偏序关系。
求点值序列 \(f\),满足 \(\forall v_i\le v_j(i,j\in[1,n])\),均有 \(f_i\le f_j\),最小化回归代价:

\[\sum\limits_{i=1}^nw_i|f_i-y_i|^p,1\le p\le \infty \]

\[\max\limits_{i=1}^nw_i|f_i-y_i|,p=\infty \]

对于相同的 \(p\),这一类问题统称为 \(L_p\) 问题。

一些约定

Definition: 将序列 \(z\) 中不超过 \(a\) 的元素变为 \(a\),不小于 \(b\) 的元素变为 \(b\) 称为序列 \(z\) 向集合 \(S=\{a,b\}\) 取整。
Definition: 点集 \(U\)\(L_p\) 均值为满足 \(\sum_{v_i\in U}w_i|y_i-k|^p(1\le p<\infty)\)\(\max_{v_i\in U}w_i|y_i-k|(p=\infty)\) 最小的 \(k\)

特殊情形下的算法

一种贪心做法

给定正整数序列 \(y,w\),求单调不减的实数序列 \(f\),最小化 \(\sum_{i=1}^nw_i(f_i-y_i)^2,n\le2*10^5\)

Lemma: 点集 \(U\)\(L_2\) 均值为其加权平均数 \(\frac{\sum_{v_i\in U}w_iy_i}{\sum_{v_i\in U}w_i}\)
Lemma: \(\forall1\le i<n\),如果有 \(y_i>y_{i+1}\),那么最优解中一定满足 \(f_i=f_{i+1}\)
直接做单调栈即可。

维护折线算法

给一个 \(n\) 个点 \(n-1\) 条边的有向弱连通图 \(G=(V,E)\),每个点均有点权 \(d_i\) 和修改耗时 \(w_i\)。对于每个 \(i(1\le i\le n)\),每次修改可以花费 \(w_i\) 的时间把 \(d_i\)\(1\) 或减 \(1\),求最小消耗多少时间,使得 \(\forall(u,v)\in E,d_u\le d_v。n\le3*10^5,1\le d_i\le10^9,1\le w_i\le10^4\)

折线优化 dp 基础题

posted @ 2020-06-28 02:54  soroboruo  阅读(93)  评论(0编辑  收藏