三分法——求凸性函数极值

极化码理论及算法研究6-SCL、CA-SCL及matlab仿真 极化码译码算法5——SCL/CA-SCL译码算法系列目录1、引言2、串行抵消列表(SCL)译码算法2.1、路径度量PM 系列目录 (如要找其他内容,欢迎访问我的主页寻找) #前言 #极化码概述 #极化码定义 #极化码编码 #极化码译码 #5G标准中极化码的编译码概述 #5G标准中极化码的编码 #5G标准中极化码的译码 #总结 1、引言 在上一节中,介绍了经典的SC译码算法的理论原理以及其matlab仿真代码,SC译码算法具有较低的译码复杂度,但是由于每个译码的比特信息都依赖于前面所有的比特信息的译码结果,得 阅读详情

转自:点击打开链接


三分法——求解凸性函数的极值问题——czyuan原创  

2010-04-03 10:10:44|  分类: ACM|举报|字号 订阅

 

       二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~

三分法——求解凸性函数的极值问题——czyuan原创 - 东月之神 - 东月之神


       如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;

程序模版如下:

double Calc(Type a)
{
    /* 根据题目的意思计算 */
}

void Solve(void)
{
    double Left, Right;
    double mid, midmid;
    double mid_value, midmid_value;
    Left = MIN; Right = MAX;
    while (Left + EPS < Right)
    {
        mid = (Left + Right) / 2;
        midmid = (mid + Right) / 2;
        mid_area = Calc(mid);
        midmid_area = Calc(midmid);
        // 假设求解最大极值.
        if (mid_area >= midmid_area) Right = midmid;
        else Left = mid;
    }
}

现根据几道的OJ题目来分析三分法的具体实现。

buaa 1033 Easy Problem 
http://acm.buaa.edu.cn/oj/problem_show.php?c=0&p=1033

题意为在一条线段上找到一点,与给定的P点距离最小。很明显的凸性函数,用三分法来解决。
Calc函数即为求某点到P点的距离。

ZOJ 3203 Light Bulb
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3203

三分法——求解凸性函数的极值问题——czyuan原创 - 东月之神 - 东月之神


如图,人左右走动,求影子L的最长长度。
根据图,很容易发现当灯,人的头部和墙角成一条直线时(假设此时人站在A点),此时的长度是影子全在地上的最长长度。当人再向右走时,影子开始投影到墙上,当人贴着墙,影子长度即为人的高度。所以当人从A点走到墙,函数是先递增再递减,为凸性函数,所以我们可以用三分法来求解。

下面只给出Calc函数,其他直接套模版即可。
double Calc(double x)
{
    return (h * D - H * x) / (D - x) + x;
}

heru 5081 Turn the corner 08年哈尔滨regional网络赛
http://acm.hrbeu.edu.cn/index.php?act=problem&proid=5081

三分法——求解凸性函数的极值问题——czyuan原创 - 东月之神 - 东月之神


汽车拐弯问题,给定X, Y, l, d判断是否能够拐弯。首先当X或者Y小于d,那么一定不能。
其次我们发现随着角度θ的增大,最大高度h先增长后减小,即为凸性函数,可以用三分法来求解。

这里的Calc函数需要比较繁琐的推倒公式:
s = l * cos(θ) + w * sin(θ) - x;
h = s * tan(θ) + w * cos(θ);
其中s为汽车最右边的点离拐角的水平距离, h为里拐点最高的距离, θ范围从0到90。

POJ 3301 Texas Trip
http://acm.pku.edu.cn/JudgeOnline/problem?id=3301

题意为给定n(n <= 30)个点,求出饱含这些点的面积最小的正方形。

有两种解法,一种为逼近法,就是每次m分角度,求出最符合的角度,再继续m分,如此进行times次,即可求出较为精确的解。(m 大概取10, times取30即可)

第二种解法即为三分法,首先旋转的角度只要在0到180度即可,超过180度跟前面的相同的。坐标轴旋转后,坐标变换为:
X’ = x * cosa - y * sina;
y’ = y * cosa + x * sina;


基于simulink的智能驾驶领域--智能车道保持辅助系统仿真 LKAS通过摄像头等传感器检测车辆相对于车道线的位置,并自动调整转向,以帮助驾驶员保持在车道内行驶。将摄像头传感器模块的输出连接到车道线检测模块的输入端口,再将车道线检测模块的输出连接到转向控制器模块的输入端口,最后将转向控制器模块的输出连接到车辆动力学模型的转向输入端口,形成闭环控制系统。上升时间是指系统从初始转向角上升到目标转向角所需的时间,调节时间是指系统进入并保持在目标转向角一定范围内的所需时间。该控制器将根据摄像头传感器的数据调整车辆的转向角,以保持车辆在车道内行驶。 阅读详情

相关推荐

deepin启动异常处理

修复的命令在执行时会输出大量的修复信息,正常情况下修复完之后输入exit命令回车后,即可正常启动系统。

whxxiang的博客 4370

[转]三分法——求解凸性函数的极值问题——czyuan原创

2009年05月26日 星期二 23:40       二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~       如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;程序模版如下:double Calc(Type

552

《湖科大教书匠计算机网络》学习笔记总目录+思维导图

本篇文章是对《湖科大教书匠计算机网络》所有知识点的笔记总结归档和计算机网络的思维导图

weixin_73077810的博客 8251

UVALive 4986 Dome of Circus(三分、凸包、凸性函数)

题目链接; UVALive 4986 Dome of Circus 题意: 在空间中给nn个点的坐标,并且每个点都是在zz轴的正半平面内,以原点(0,0,0)(0,0,0)为底面圆圆心,画一个圆锥,要求圆锥要包含所有的点,点可以在圆锥面上,求最小的圆锥体积的底面圆半径和高。 数据范围:1≤n≤10000,并且所有点的坐标的绝对值都不超过100001 ≤ n ≤ 10000,并且所有点的坐

ramay7 2240

iOS马甲包过审实战:如何用5天时间搞定4.3审核(附完整代码混淆方案)

本文提供了一套为期五天的高效实战方案,专门解决iOS应用因重复或抄袭问题而被App Store的4.3条款拒绝的难题。方案涵盖深度分析、代码混淆、资源翻新及环境隔离等系统性步骤,并附有完整的代码混淆示例,旨在帮助开发者在合规框架内重塑应用,显著提升过审成功率。

weixin_29234239的博客 147

第2章: MMU Notifier 全局通知器的核心原理⭐

摘要 MMU Notifier机制是Linux内核中用于处理内存地址空间变化通知的关键框架。其设计遵循解耦与标准化、最小侵入性、高性能和安全性四大原则,采用三层架构实现上层应用、核心层与内存管理层的协作。框架提供两种通知模型:全局订阅的mmu_notifier和区间订阅的mmu_interval_notifier,分别适用于KVM虚拟化和GPU共享虚拟内存等不同场景。核心数据结构mmu_notifier_ops定义了设备驱动需要实现的回调函数集合,包括进程退出处理、页面老化管理、地址范围失效通知等功能。

图形/计算GPU的驱动与虚拟化技术分享园地 4564

Codeforces #514 D. Nature Reserve(几何 最小圆覆盖,三分)

D. Nature Reserve time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There is a forest that we model as a plane and live nn rare ani...

雪的期许 1099

CRC_16---ModBus 计算方法及代码实现

1、 CRC寄存器初始值为 0xFFFF;即16个字节全为1; 2、 CRC-16 / ModBus的多项式0xA001H (1010 0000 0000 0001B) ; ‘H’表示16进制数,‘B’表示二进制数。 计算步骤为: (1).预置 16 位寄存器为十六进制 0xFFFF(即全为 1) ,称此寄存器为 CRC 寄存器; (2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄存器; (3).检测相异或后的CRC寄存器的最低位,若最低位为1,CRC寄存器

1万+

三分法求函数极值

三分法求函数极值   类似于二分法思想,三分算法主要应用于求解非线性函数的极值问题,是一种通过不断迭代,求得函数极值点近似解的算法。   如图所示,已知函数f(x)在点left和点right中间存在一个极值点,现在我们的任务就是找到这个极值点或者计算函数在这个区间上的极值。在这里,与二分法图片不同的是,mid点有左右两个(都是三等分点) 分别记为midl和midr,则易得: midlx=leftx+rightx−leftx3=2∗leftx+rightx3 midl_{x} = left_{x}+ \fra

A91A981E的博客 3934

【深度学习新浪潮】李飞飞团队VAGEN框架深度解析:让VLM智能体学会“三思而后行“

VAGEN框架的真正价值,不仅在于性能指标的突破,更在于重新定义了VLM智能体的发展方向——人工智能的进步不应只追求"做得对",更要实现"想得清"。李飞飞团队通过强制显式思考、动态表示适配和精细化奖励三大创新,让智能体第一次具备了可解释的世界建模能力。正如人类通过"观察-预测-行动"认识世界,VAGEN为AI注入的这种思考范式,或许正是通往通用人工智能的关键一步。对于开发者而言,开源的VAGEN框架不仅提供了强大的工具,更揭示了一个重要理念:让AI学会思考,比让它学会执行更重要。

专注:太空算力、AI infra、异构调度、大模型成本工程 280

遥感影像建筑物变化检测

遥感影像建筑物变化检测

yilvyangguang520的博客 423

OI退役笔记-012:基础算法(五)二分与三分

二分,即折半查找。首先,二分三分必须满足顺序结构、有序储存。 抽象一点,就是 F(x) 且 对 x 满足单调性,用 F(x) 接近 target 来二分。 先看一道简单的例题: 这是道明显的二分题:求最小值中的最大值。解决此类问题需要用二分答案。但首先要明白,二分答案不是用那邪恶的 l 和 r 来算出答案,而是在一定区间内试出答案: 在本题样例中中,4 是答案,则有: 也就是说,每次确定一个值,再配合贪心、DP 等算法验证答案是否正确。若正确,则可能还有更正确的;若错误,则调整去找正确的。 本题程序

Rotch的博客 556

27、VXLAN BGP EVPN网络的自动化部署与运维管理

本文深入探讨了VXLAN BGP EVPN网络从初始配置到运维管理的全生命周期自动化流程,涵盖Day-0设备自动上线、Day-0.5增量变更与连接验证、Day-1覆盖服务配置与计算集成,以及Day-2监控与故障排查。详细介绍了推送与拉取两种配置模型、主流工具如Cisco VTS、NFM、DCNM的功能特点,以及开源自动化工具的应用。通过流程图和命令示例,系统展示了MAC/IP学习、BGP通告和VXLAN封装的验证方法,为构建高效、可扩展的数据中心网络提供了全面的技术指导。

banana的博客 81

三分法——求解凸性函数的极值问题——czyuan原创

二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~ 如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Ri...

chouchijiao8952的博客 662

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【模板】三分法

对比于二分法,三分法的适用范围要略窄一些,但是并不是代表它没有用,在一些题目中还是有很大用处的。。。 三分法是用来求一个凸性函数的方法,所谓凸性函数就是一个函数在某一区间内有最大值,最大值两侧各具有单调性,并且单调性相反。 题目大意: 给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减。试求出x的值 输入格式: 第一行一次包含一个正整数N和两个...

weixin_30757793的博客 514

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【信息学奥赛一本通 提高组】第二章 二分与三分

一、二分   二分法,在一个单调有序的集合或函数中查找一个解,每次分为左右两部分,判断解在那个部分并调整上下界,直到找到目标元素,每次二分都将舍弃一般的查找空间,因此效率很高。 二分常见模型   1、二分答案   最小值最大(或是最大值最小)问题,这类双最值问题常常选用二分法求解,也就是确定答案后,配合贪心,DP等其他算法检验这个答案是否合理,将最优化问题转化为判定性问题。例如,...

weixin_30609287的博客 868

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

二分算法进阶之三分法

二分算法进阶之三分法二分法三分法题目描述输入描述:输出描述:题目思路:代码欢迎关注微信公众号:Java后台开发 二分法 二分算法一般用于在具有单调性的数组中寻点,它利用了数组中元素的单调性每次使查找范围缩小一半。一般遍历数组寻点的时间复杂度是O(n),而用二分法可以降到O(logn) 例如在下图中存在一些满足单调性的离散点,后一个点一定不小于前一个点 假设A、B、C、D、E、F的值分别为-1、3、...

Logan的博客 957

Acm学习总结16

Acm学习总结16 这次学习总结是关于三分法的这个三分法跟二分法有相似之处的。三分法的基本原理: 一个函数具有极值点,在给定的区间left到right之间存在极值点,mid=(left+right)/2; midmid=(mid+right)/2;如果mid靠近极值点,则right=midmid(就是极值点右侧靠近右端点的点);如果midmid更靠近极值点那么left=mid;比如说例题: 如图...

ProgreamA的博客 290

三分搜索

二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手” 如图,类似二分的定义Left和Right,mid=(Left+Right)/2,midmid=(mid+Right)/2;如果mid靠近极值点,则Right=midmid;否则(即midmid靠近极值点),则Left=mi...

weixin_30950237的博客 93

acm第十七次被遗忘的三分

最近的做的题都是二分,以为自己看懂了PPT就会了,结果a题给了一个下马威,没办法的我,求助了百度,研究半天也算一知半解,有了思路,后续又做了几个题。又到写博客的时候了,写写三分法吧。 一、三分法定义 当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。 二、三分法思想 与二分法类似的是,三分法也先取下界(记作l)和上界(记作r)的中间值(记作midl)...

qq_43550247的博客 251

二分查找及例题讲解

二分查找&&三分法 二分查找的优点显而易见,这个太节省时间了;因为很多其他类型的题目,题目的复杂会比较高,不管是时间复杂度也好,还是空间复杂度也好,有了二分查找的帮助,至少不会让已经很复杂的程序更雪上加霜,为我们ac题目提供了一点帮助。 在学习二分查找这段时间,很明显的感觉到,这个确实是一个比较直接比较简单的一部分,不像前面的背包,背包问题真的是花样太多了。 下面,简单总结一下二分查找。 二分查找 在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,

m0_54954379的博客 728

技巧和思想

文章目录1.打表法 1.打表法 打表法就是将题目中需要的答案集合提前算出来,存到代码里,根据题目所需取答案,这种方法通常只需要将程序挂着,在表打完后进行加工,最终取答案程序时间复杂度为O(1),空间复杂度为O(n)(n为答案规模); ——沃兹·基朔德 例题:洛谷P1217 此题的数据范围是一亿,找出其中的回文质数,很容易就TLE,于是采用了打表的方法,现把满足条件的数算出来,然后提交的程序就非常简单。 打表代码: #include<stdio.h> #include<iostream&

wwww190的博客 574

三分法求极值模板

以后大概就这么写吧 program tri; //三分法求凸性函数极值 Const SMAX=true; SMIN=false; NOW=SMAX; LMIN=1e-10; RMAX=100000000; Res=1e-10;//这个精度不能再小了,否则浮点数误差会大于此精度 Function F(x:extended):extended;inl...

weixin_30244889的博客 131

三分法 讲解

二分法适用于求单调的时候用的,就比如说排序好的数组,那是递增的或者递减的。如果像出现了下图二次函数那样的怎么求他的最值呢? 二分法早就失去了他的意义了。不过还是可以用三分法来实现的,就是二分中再来二分。比如我们定义了L和R,m = (L + R) / 2,mm = (mid + R) / 2; 如果mid靠近极值点,则R = mm;否则就是mm靠近极值点,则L = m;这样的...

weixin_30364325的博客 150

浅谈三分法的原理及应用

最近简要地学习了三分法这一玄学操作,其实还是比较好理解的。只要多画画图就可以参透。 我们这里以一道经典的模板题来进行讲解:P3382 【模板】三分法 我们对于这种凸性函数求最值的问题,一般还是选择采用三分。 我们先来观察这种凸性函数(这里以上凸函数为例) 然后我们对于要求最大值的要求,发现如果使用传统的二分,那么很可能会直接经过最高点,所以我们使用三分。 我们取区间的三等分点,从左到右...

weixin_30287169的博客 626

三分法——求解凸性函数的极值问题

转载自 czyuan_acm 最终编辑 czyuan_acm  二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~        如图,类似

深秋的落叶 1126
上一篇: hdu 4452 Running Rabbit(模拟)
下一篇: hdu 4438 Hunters(数学期望)
Baoli1008
博客等级 码龄12年 70粉丝 293原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值