首页 > 其他分享 >浅谈斜率优化

浅谈斜率优化

时间:2023-07-05 20:58:04浏览次数:47  
标签:浅谈 min 相切 斜率 凸壳 优化 单调

如果一个 DP 的转移方程可以写成 \(f_i=\underset{j<i}{\min\!/\!\max}\>\{f_j+a_i\times b_j+c_i+d_j\}+C\) 的形式,那么可以运用斜率优化。

不妨设转移是 \(\min\),设 \(g_{i,j}=f_j+a_i\times b_j+c_i+d_j\),即 \(f_i=\min\limits_{j<i}g_{i,j}\),式子可以化为 \(f_j+d_j=-a_i\times b_j+g_{i,j}-c_i\),设 \(y_j=f_j+d_j\),\(k=-a_i\),\(x_j=b_j\),\(t_j=g_{i,j}-c_i\),原式化为 \(y_j=kx_j+t_j\quad(*)\),这是一个一次函数的形式。

假设 \(f_i\) 是由 \(p\) 转移来的,即 \(f_i=g_{i,p}=\min_{j<i}g_{i,j}\),因为 \(t_j=g_{i,j}-c_i\),所以 \(t_p=\min_{j<i}t_j\)。 注意到 \((*)\) 式中 \(k\) 是一个定值,这说明,如果过每个点 \((x_j,y_j)\) 画斜率为 \(k\) 的直线 \(l_j\),则 \(l_p\) 在 \(y\) 轴的截距是最小的,直观地说就是“在最下面”的。

(如图,假设有这些点,我们要画一条斜率为 \(-1\) 的直线(\(k=-1\)),则图中那条是最优的,其 \(y\) 轴截距是 \(5\),最小)

现在考虑如何快速找到这条最优直线:维护这些点的下凸壳,则与这个凸壳相切的直线是最优的。(这里“相切”的定义是,有且仅有一个交点 或 有无数个交点)

(如图,两种相切)

维护这个东西需要动态凸包,但是一般情况下并不需要:

  • 如果 \(x\) 单调,\(k\) 也单调,则决策点 \(p\) 只会单向移动,单调队列维护即可。
  • 如果 \(x\) 单调,用单调栈维护凸壳,然后二分即可。
  • 否则需要动态凸包 / 李超线段树。(我不会)

标签:浅谈,min,相切,斜率,凸壳,优化,单调
From: https://www.cnblogs.com/untitled0/p/slope-optimization.html

相关文章

  • DP优化
    优化DP笔记P6040「ACOI2020」课后期末考试滑溜滑溜补习班设\(f_i\)表示老师解决到第\(i\)个学生需要最少的精力,答案显然是\(f_n\)边界:对于\(i=1\),\(f_1=a_1\)对于其他的\(i\)号学生,我们假设老师是从第\(j\)位学生过来的,所以状态转移方程分为三项\(f_j\)......
  • 浅谈java8中map的新方法
    Map在java8中新增了两个replace的方法1.replace(k,v)在指定的键已经存在并且有与之相关的映射值时才会将指定的键映射到指定的值(新值)在指定的键不存在时,方法会return回来一个nulljavadoc的注释解释了该默认值方法的实现的等价Java代码:if(map.containsKey(key)){returnmap.put(ke......
  • 34最优化算法
    好的,以下是常见最优化算法的公式,使用Markdown格式进行展示:1.梯度下降法(GradientDescent):参数更新公式:\(\theta^{(t+1)}=\theta^{(t)}-\alpha\nablaJ(\theta^{(t)})\)2.随机梯度下降法(StochasticGradientDescent):参数更新公式:\(\theta^{(t+1)}=\theta^{(t)}-......
  • m基于细菌觅食优化的DSR网络路由协议优化算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要        移动自组网(MobileAdHocNetwork,简称MANET)是一种无需基础设施支持的网络,它由一组移动的节点组成,这些节点可以自组织形成一个网络,实现数据的传输和共享。由于MANET是一种去中心化......
  • SQL优化还凭经验?这个工具能帮你智能优化SQL
    前言SQL优化是程序开发中经常遇到的问题,尤其是在程序规模不断扩大的时候。SQL的好坏不仅制约着程序的规模,影响着用户的体验,甚至威胁着信息的安全。我们经常听到说哪家平台挂了,哪家网站被黑了,但我们不知道,其实这些平台挂了、被黑了的原因很多时候在于SQL不够健壮。SQL不够健壮......
  • 象群游牧优化算法(EHO)(Matlab完整代码实现)
    ......
  • centos8环境基本优化
    centos8环境基本优化目录centos8环境基本优化1.防火墙优化2.源优化:方案1.更换阿里源方案2.使用centos8.5源安装epel源3.ssh连接慢解决4.关闭公网,只开放内网(可选)5.配置定时任务,时间同步centos7ntpdcentos86.PS17.配置sudo1.防火墙优化参考链接https://www.cnblogs.com/ztton......
  • 数仓性能调优:大宽表关联MERGE性能优化
    摘要:本文主要为大家讲解在数仓性能调优过程中,关于大宽表关联MERGE性能优化过程。本文分享自华为云社区《GaussDB(DWS)性能调优:大宽表关联MERGE性能优化》,作者:譡里个檔。【业务背景】如下MERGE语句执行耗时长达2034sMERGEINTOsdifin.hah_ae_line_sr_t_02_8663Event_1u18ol......
  • Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、防盗链、SSL、性能优化
    Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、防盗链、SSL、性能优化...架构营 2023-07-0307:10 发表于上海收录于合集#nginx2个#架构172个#web2个引言一、性能怪兽-Nginx概念深入浅出二、Nginx环境搭建三、Nginx反向代理-负载均衡......
  • 模型部署_模型量化、优化、编译、仿真、部署
    两种思路探路--由目前技术看未来-能做什么?造路--由目标而开始构建-要做什么?板子新唐NuMicro™Nano系列为32位单片机地平线旭日X3派RDK系列(HorizonRoboticsDeveloperKits,简称RDK)基于RDKX3(旭日X3派TogetheROS.Bot机器人操作系统(简称TROS.B)—RDKX3Module,模......