首页 > 其他分享 >决策单调性

决策单调性

时间:2025-01-19 13:42:40浏览次数:1  
标签:le 不等式 lt 决策 ge forall 四边形 单调

决策单调性


四边形不等式

定义

若对于 \(\forall i\le j\le k \le l\),有 \(W_{i,k}+W_{j,l}\le W_{i,l}+W_{j,k}\),则称 \(W\) 满足四边形不等式。

性质 & 判定

对于 \(\forall i\lt j\),有 \(i\lt i+1\le j\lt j+1\),于是 \(W_{i,j}+W_{i+1,j+1}\le W_{i,j+1}+W_{i+1,j}\),这是显然的。

那么通过这个,能否逆推出 \(W\) 满足四边形不等式呢?答案是可以的。

考虑使用数学归纳法:

现假设对于 \(k\in\mathbb{Z_+},i\le i+k\lt j\le j+1\),满足

\[W_{i,j}+W_{i+k,j+1}\le W_{i,j+1}+W_{i+k,j} \tag{1} \]

只需证明

\[W_{i,j}+W_{i+k+1,j+1}\le W_{i,j+1}+W_{i+k+1,j} \tag{∗} \]

由假设知 \(i+k\le i+k+1\le j\le j+1\),于是

\[W_{i+k,j}+W_{i+k+1,j+1}\le W_{i+k,j+1}+W_{i+k+1,j} \tag{2} \]

\((1)+(2)\) 得到 \(W_{i,j}+W_{i+k,j+1}+W_{i+k,j}+W_{i+k+1,j+1}\le W_{i,j+1}+W_{i+k,j}+W_{i+k,j+1}+W_{i+k+1,j}\)

化简得 \(W_{i,j}+W_{i+k+1,j+1}\le W_{i,j+1}+W_{i+k+1,j}\)

又因为 \(k=1\) 时成立,故 \(\forall k,i+k\le j\) 有 \(W_{i,j}+W_{i+k+1,j+1}\le W_{i,j+1}+W_{i+k+1,j}\)

根据对称性,第二维上也满足这一性质,所以四边形不等式成立。

因此,四边形不等式的性质与定义互为充要条件,因为只涉及两个未知量且形式简单,所以在证明时通常就使用性质来证明。


决策单调性

一维 \(dp\)

对于有一类 \(dp\) 问题,其状态转移方程会满足这样的形式:\(f_i=\min\limits_{1\le j \lt i}\{f_j+V_{j,i}\}\),在不作任何优化的情况下,复杂度为 \(\Omicron(n^2)\)。

其中,若 \(V\) 满足四边形不等式,则 \(f\) 的最优决策点具有单调性(单调不降)。

假设有 \(i\lt i'\),下证 \(p_i\le p_{i'}\)

若 \(i\) 的最优决策点为 \(p_i\) 则一定有 \(\forall j\le p_i,f_j+V_{j,i}\ge f_i=f_{p_i}+V_{p_i,i}\)

因为 \(j\le p_i\lt i\lt i'\),由四边形不等式得 \(V_{j,i'}-V_{j,i}\ge V_{p_i,i'}-V_{p_i,i}\)

两式相加得 \(f_j+V_{j,i'}\ge f_{p_i}+V_{p_i,i'}\)

这说明,对于 \(\forall i'\lt i\),若 \(j\lt p_i\),则 \(j\) 一定不优,即 \(p_{i'}\ge p_i\),那么决策就具有单调不降性。

证毕。

那么我们就可以通过二分,将这个 \(dp\) 优化到 \(\Omicron(n\log n)\) 的复杂度。

二维 \(dp\)

有另一类 \(dp\) 问题,如果满足以下四个条件:

  • \(f_{i,j}=\min\limits_{i\le k\lt j}\{f_{i,k}+f_{k+1,j}+W_{i,j}\}\)
  • \(\forall i,f_{i,i}=W_{i,i}=0\)
  • \(W\) 满足四边形不等式
  • \(\forall a\le b\le c\le d,W_{a,d}\ge W_{b,c}\)

那么可以证明 \(f\) 也满足四边形不等式。

先从简单的情况开始证明,若 \(j=i+1\),则有 \(i\lt i+1\le j\lt j+1\),下证 \(f_{i,j+1}+f_{i+1,j}\ge f_{i,j}+f_{i+1,j+1}\)

将左式展开得到 \(f_{i,j+1}+f_{i+1,j}=f_{i,i+2}+f_{i+1,i+1}=f_{i,i+2}\)

对于 \(f_{i,i+2}\),决策 \(k\) 的取值只有 \(i/i+1\) 两种情况,分类讨论之。

\(k=i\) 时:\(LHS=f_{i,i+2}=f_{i,i}+f_{i+1,i+2}+W_{i,i+2}\ge f_{i+1,i+2}+W_{i,i+1}=f_{i+1,i+2}+f_{i,i+1}=f_{i+1,j+1}+f_{i,j}=RHS\)

\(k=i+1\) 时:\(LHS=f_{i,i+2}=f_{i,i+1}+f_{i+2,i+2}+W_{i,i+2}\ge f_{i,i+1}+W_{i+1,i+2}=f_{i,i+1}+f_{i+1,i+2}=f_{i,j}+f_{i+1,j+1}=RHS\)

综上所述,当 \(j=i+1\) 时,\(f\) 满足判定式,即满足四边形不等式。

接下来考虑运用串值归纳法进行推广,若 \(j-i\lt k\) 时均满足,下证 \(j-i=k\) 时仍然满足。

假设 \(f_{i,j+1}/f_{i+1,j}\) 的最优决策点分别为 \(x/y\),下面分两种情况讨论。

\(i\le x \le y \lt j\) 时,\(x+1\le y+1\le j\lt j+1 \rightarrow j-(x+1)\lt k\),于是有:

\[\begin{align} LHS &= f_{i,x}+f_{x+1,j+1}+W_{i,j+1}+f_{i+1,y}+f_{y+1,j}+W_{i+1,j} \\ RHS &\le f_{i,x}+f_{x+1,j}+W_{i,j}+f_{i+1,y}+f_{y+1,j+1}+W_{i+1,j+1} \\ i\lt i+&1\le j\lt j+1\rightarrow W_{i,j}+W_{i+1,j+1}\le W_{i,j+1}+W_{i+1,j} \tag{1}\\ j-(&x+1)\lt k \rightarrow f_{x+1,j}+f_{y+1,j+1}\le f_{x+1,j+1}+f_{y+1,j}\tag{2}\\ \end{align} \]

\((1)+(2)\) 即得证。

\(i+1\le y\le x\le j\) 时,\(i\lt i+1\le y\lt j\rightarrow y-i\lt k\),接下来与上面同理就可以证明。

于是对于 \(\forall i\lt j\),都有 \(f_{i,j+1}+f_{i+1,j}\ge f_{i,j}+f_{i+1,j+1}\),所以四边形不等式成立,证毕。

拥有了四边形不等式,下面来证明这样的 \(dp\) 转移时具有决策单调性,形式上:\(\forall i,j\),有 \(p_{i,j-1}\le p_{i,j}\le p_{i+1,j}\)

为方便表示,下令 \(p=p_{i,j}\)

对于 \(\forall k,i\lt i+1 \le k \le p\),有四边形不等式变形得 \(f_{i+1,k}-f_{i+1,p}\ge f_{i,k}-f_{i,p}\)

决策作差得到:

\[\begin{align} &\ \ \ \ \ (f_{i+1,k}+f_{k+1,j}+W_{i+1,j})-(f_{i+1,p}+f_{p+1,j}+W_{i+1,j}) \\ &=(f_{i+1,k}-f_{i+1,p})+f_{k+1,j}-f_{p+1,j} \\ &\ge (f_{i,k}+f_{k+1,j})-(f_{i,p}+f_{p+1,j}) \\ &\ge 0 \end{align} \]

于是得到了 \(\forall i' \gt i\),若 \(p_{i',j}\lt p_{i,j}\) 则一定不优, 所以 \(p_{i',j}\ge p_{i,j}\)。同理可证 \(\forall j' \gt j\),有 \(p_{i,j'}\ge p_{i,j}\),所以 \(p_{i',j'}\ge p_{i,j}\),证毕。

复杂度分析

转移到 \((i,j)\) 时,只枚举 \([p_{i,j-1},p_{i+1,j}]\) 这一区间即可,复杂度为 \(\Omicron(n^2)\)

考虑如下这样一个网格图

二维dp决策单调性

只有红线之上的格子会被转移到,对每个格子计算贡献,若右边有格子,则被减一次;若上边有格子,则被加一次。于是 \(n\) 条对角线,每条对角线贡献的最大复杂度为 \(\Omicron(n)\),总复杂度为 \(\Omicron(n^2)\),且状态数也为 \(O(n^2)\),于是最后复杂度即为 \(\Omicron(n^2)\)。


如上所示,证明超级繁琐,赛时完全不可证明,于是其实如果发现 \(dp\) 非常简单,而且已经没有向其他方向优化的空间了,那么就猜一猜有决策单调性,把决策打表出来看看有没有单调性就好了,至于上面的证明和结论其实没啥用喵

分治决策单调性

在通常一维 \(dp\) 的情况下,一段区间的贡献是好算的。但是如果不好算呢?例如:数字种类数,顺序对个数。这些问题如果能够莫队的话会感觉简单很多。那么我们其实可以采取类似的方案,类似于整体二分地分治地去做,递归区间 \([l,r]\) 的最优决策点在区间 \([L,R]\) 中,每次找到 \([l,r]\) 的中点,找到中点的最优决策点 \(p\),然后将 \([L,R]\) 分为 \([L,p]\) 和 \([p,R]\) 去做,这样我们会有 \(\Omicron(\log n)\) 层,每一层递归是 \(\Omicron(n)\) 的,维护区间与莫队同理,不难发现这个复杂度大概也是 \(\Omicron(n\log n)\) 级别的。

void solve(int l, int r, int L, int R, int k){
	int mid = (l + r) >> 1, p = 0;
	for(int i = min(R, mid - 1); i >= L; --i){
		split(i + 1, mid); // 移动到当前区间
		if(f[i][k - 1] + now <= f[mid][k]) f[mid][k] = f[i][k - 1] + now, p = i; // 记录最优决策点
	}
	if(l < mid) solve(l, mid - 1, L, p, k);
	if(r > mid) solve(mid + 1, r, p, R, k);
	return;
}

标签:le,不等式,lt,决策,ge,forall,四边形,单调
From: https://www.cnblogs.com/Hthntd/p/18679527

相关文章

  • Powersim系统整体决策模拟工具-系统动力学
    Powersim系统整体决策模拟工具-系统动力学Powersim软件是由挪威PowersimSoftwareAS研发的一款高性能系统决策和分析软件,旨在通过构建复杂业务系统的系统动力学模型进行问题挖掘和获得基于数据和分析技术的商业洞见。Powersim和Vensim,Stella并列成为系统动力学仿真软件行业的......
  • 单调队列优化dp
    一本通题解T2:再也不想碰这道题了。。。写了一下午。我们先设状态\(dp[i][j]\)表示前i个刷匠,考虑了前\(j\)个木板后所获得的最大价值(\(j\)个木板可以有空余)。然后枚举前\(i\)个刷匠,枚举每一条木板。对于一条木板可以此刷匠根本不刷,或不刷当前木板,状转方程:\[dp[i][j]......
  • 多变量决策树原理与实验分析
    多变量决策树原理与实验分析1.引言决策树是机器学习中最基础也最重要的算法之一。你可以把它想象成一个不断做选择题的机器。比如,我们要判断一个水果是苹果还是橙子,传统决策树会问:“它的颜色是红色吗?”如果是,就判断为苹果;如果不是,再问:“它的形状是圆形吗?”通过一系列这样......
  • 企业项目管理工具选择:多维度评估,精准决策
    企业在选择适合自己的项目管理工具时,需要考虑多个因素以确保所选工具能够满足企业的具体需求和目标。以下是一些建议的步骤和考虑因素:一、明确需求●梳理业务:企业需要梳理自己的业务,明确项目类型、规模、复杂度以及参与人员等。●需求分析:基于业务梳理,进行需求分析,确定项目......
  • 用于决策的世界模型 -- 论文 World Models (2018) & PlaNet (2019) 讲解
    参考资料:[2411.14499]UnderstandingWorldorPredictingFuture?AComprehensiveSurveyofWorldModels[1803.10122]WorldModelsLearningLatentDynamicsforPlanningfromPixelsKaixhin/PlaNet:DeepPlanningNetwork:Controlfrompixelsbylatentplanning......
  • Python AI教程之十九:监督学习之决策树(10)超参调整
    如何在超参数调整中调整决策树决策树是机器学习中广泛用于分类和回归任务的强大模型。决策树的结构类似于决策流程图,有助于我们轻松解释和说明。然而,决策树的性能高度依赖于超参数,选择最佳超参数会显著影响模型的准确性、泛化能力和鲁棒性。在本文中,我们将探讨借助决策树调......
  • Java-数据结构-栈与队列(常考面试题与单调栈)
    在上一篇的学习中,我们学习了栈和队列的基本知识,以及它们对应都有哪些方法,在什么应用场景下如何使用,并且还对它们进行了模拟实现,而其实对于栈和队列的相关知识还远不止于此,而今天我们就对栈与队列进行复盘,认识更多使用它们的场景,夯实代码功底吧~一、常考面试题-思维以下习题在......
  • leetcode周赛432 T4(单调栈 + 单调队列)
    一道练习单调栈+单调队列的好题题目链接:problem对于求合法子数组数量的题目,可以先考虑传统的枚举右端点,二分左端点的套路。此题用这种方法恰好可行,因为对于一个序列,左端增加一个数不会让操作数更少。因此对于固定右端点,合法的左端点一定是一段区间。所以现在问题转化为:用双指......
  • Python AI教程之十八:监督学习之决策树(9) 决策树模型中的过度拟合
    决策树模型中的过度拟合在机器学习中,决策树是一种常用的预测工具。然而,使用这些模型时遇到的一个常见问题是过度拟合。在这里,我们探讨决策树中的过度拟合以及应对这一挑战的方法。决策树为什么会出现过度拟合?决策树模型中的过度拟合是指决策树变得过于复杂,并捕获训练数......
  • 小目标检测难点分析和解决策略
    目录一、背景二、检测难点三、主流改进方法3.1基于改进数据增强的小目标检测算法3.1.1监督数据增强方法3.1.2无监督数据增强方法3.2.基于改进特征提取的小目标检测算法3.2.1.扩张卷积3.2.2.特征增强3.2.3.多尺度特征提取3.2.4.注意力机制3.3基于改进特征......