约束优化方法_2_——Frank-Wolfe方法

6 篇文章 11 订阅
订阅专栏

  Frank-Wolfe方法属于约束优化可行方向法的一种。上一篇博文对同类型的Zoutendijk可行性方法进行了介绍,这一部分着重关注Frank-Wolfe方法。Frank-Wolfe方法的基本思想是:每次迭代中使用一阶泰勒展开式将目标函数线性化,通过解线性规划得到可行方向,进而沿此方向在可行域内作一维搜索。

一、Frank-Wolfe所针对的优化问题

  首先要明确这个算法的提出是针对哪一种问题。之前的Zoutendijk可行性方法可以解 等式线性约束+不等式线性约束,而Frank-Wolfe方法只能解等式线性约束下的非线性规化问题,形式如下 m i n f ( x )     s . t .     A x = b     &     x ⩾ 0 min f(x) \ \ \ \\ s.t. \ \ \ Ax=b \ \ \ \& \ \ \ x\geqslant 0 minf(x)   s.t.   Ax=b   &   x0

二、确定可行方向

  首先在初始可行点 x ( k ) x^{(k)} x(k)处进行考察,将 f ( x ) f(x) f(x) x ( k ) x^{(k)} x(k)处进行一阶Taylor多项式进行展开: f ( x ) = f ( x ( k ) ) + ▽ f ( x ( k ) ) T ( x − x ( k ) ) = ▽ f ( x ( k ) ) T x + [ f ( x ( k ) ) − f ( x ( k ) ) T x ( k ) ] f(x)=f(x^{(k)})+\triangledown f(x^{(k)})^T(x-x^{(k)})=\triangledown f(x^{(k)})^T x+[f(x^{(k)})-f(x^{(k)})^Tx^{(k)}] f(x)=f(x(k))+f(x(k))T(xx(k))=f(x(k))Tx+[f(x(k))f(x(k))Tx(k)]  问题转化为在可行域 S S S内最小化这个一阶展开式: m i n     ▽ f ( x ( k ) ) T x + [ f ( x ( k ) ) − f ( x ( k ) ) T x ( k ) ] s . t .     x ∈ S min \ \ \ \triangledown f(x^{(k)})^T x+[f(x^{(k)})-f(x^{(k)})^Tx^{(k)}] \\ s.t. \ \ \ x\in S min   f(x(k))Tx+[f(x(k))f(x(k))Tx(k)]s.t.   xS  考虑到方括号内为常数,去掉之后变为: m i n     ▽ f ( x ( k ) ) T x s . t .     x ∈ S min \ \ \ \triangledown f(x^{(k)})^T x \\ s.t. \ \ \ x\in S min   f(x(k))Txs.t.   xS  求解这个线性规划可以得到最优解 y ( k ) y^{(k)} y(k),由线性规划知识可以知道一定在 S S S的极点达到。
  现在研究变动后的 y ( k ) y^{(k)} y(k)对函数值的影响,也就是运动方向 d d d和函数梯度的乘积 ▽ f ( x ( k ) ) T ( y ( k ) − x ( k ) ) \triangledown f(x^{(k)})^T(y^{(k)}-x^{(k)}) f(x(k))T(y(k)x(k))。此时共有两种情况:

**1.**若乘积为0,则方向无法和梯度构成钝角,x^{(k)}是原问题KT点。
**2.**若乘积小于0,则方向可以和梯度构成钝角,使得函数值继续下降。
(注: y ( k ) y^{(k)} y(k)是用于确定方向,而不是下一步迭代点,更像一个“导航点”)

三、确定移动步长

  连接初始点 x ( k ) x^{(k)} x(k)和导航点 y ( k ) y^{(k)} y(k),在此直线上进行一维搜索,则步长区[0,1]: m i n     f ( x ( k ) + λ ( y ( k ) − x ( k ) ) ) s . t .     λ ∈ [ 0 , 1 ] min \ \ \ f(x^{(k)}+\lambda (y^{(k)}-x^{(k)})) \\ s.t. \ \ \ \lambda \in[0,1] min   f(x(k)+λ(y(k)x(k)))s.t.   λ[0,1]  得到 λ \lambda λ之后即可得到下一个可行点: x ( k + 1 ) = x ( k ) + λ ( y ( k ) − x ( k ) ) x^{(k+1)}=x^{(k)}+\lambda (y^{(k)}-x^{(k)}) x(k+1)=x(k)+λ(y(k)x(k))

四、算法分析

  Frank-Wolfe方法每次迭代时,搜索方向总时指向某个极点,当接近最优解时,搜索方向和函数梯度趋于正交,并不是最好的搜索方向。但是由于它将非线性规化问题转化为了一系列线性规划问题,有时可以达到好的计算效果。
在这里插入图片描述

优化中的frank-wolfe方法详细讲解及matlab实现
11-13
优化中的frank-wolfe方法详细讲解及matlab实现,适于初学者学习,内容比较基础详细,非常容易掌握。
Frank-Wolfe方法
热门推荐
gnefniu的专栏
12-24 2万+
1956年,FrankWolfe提出了一种求解线性约束问题的算法,其基本思想是将目标函数作线性近似,通过求解线性规划求得可行下降方向,并沿该方向在可行域内作一维搜索.这种方法又称作近似线性化方法. 问题 原理 近似线性化和可行下降方向 假设此问题存在有限最优解yk,则由线性规划的基本知识可知,这个最优解可在某极点上达到. 结论: 确定一维搜索步长
实现二叉树的各种基本运算的算法_FrankWolfe算法基本原理及编程实现
weixin_39703982的博客
11-27 850
点击蓝字 关注我们珍惜当下,把握现在。——王婷引言:从本科的课程《交通规划》开始,我们就学习了UE平衡和交通分配(Traffic Assignment)的概念。而Frank-wolfe算法作为求解用户平衡交通分配问题的基本算法,是学习交通分配的重中之重,也是学习交通类优化算法的重点内容。本文介绍了用户平衡和Frank-wolfe算法的基本原理,并给出了非常详细的编程实现过程。文中的程序既...
最优化算法---可行方向之Frank-wolfe 方法(求解非线性规划问题)
王尚权 qq:2515162716
04-17 5383
问题定义 主要思想 具体方法 去掉常数项 极点:函数值取极值对应的变量取值 具体步骤: 举例: 每上步转化为:
Frank_Wolfe算法求解交通分配问题_比较不同流量更新策略和线搜索技术
03-10
F r a nk - Wo lfe ( F W) 算法是一类广泛应用于求解交通分配问题的算法. 它具有容 易编程实现, 所需内存少的特点. 但是该算法收敛速度较慢, 不能得到路径信息. 为了 提高算法的效率, 本文研究三种流量更新策略( al - l a - t o n c e , one -or ig in - a - t a - ti me , one -OD a - t a - ti me) 以及不同的步长搜索策略下的 F W 算法, 其中步长搜索策略包括精确线性搜 索方法( 包括二分法、 黄金分割法、 成功失败法) 和不精确的 线性搜索方法( 包括基于 Wo lfe - P o wel l 收敛准则的搜索方法和 Ga o 等提出的非单调线性搜索方法) . 最后, 本文将 上述策略应用于四种不同规模的交通网络中, 并给出较适合求解的组合.
笔记:常见的无约束求解算法——最速下降法和拟牛顿法
littleboy__的博客
07-22 2695
本文介绍了无约束问题中常用的两种算法,最速下降法和BFGS算法, 并通过matlab编程实现了以上两种算法,并对实际问题进行求解。
Nonlinear-Fractional-Programming_.pdf
08-05
2. 应用的算法:为了解决这类非线性分数规划问题,文章介绍了一种通过求解一系列线性规划问题来逼近原始问题解的方法,这种方法基于Frank-Wolfe算法。这种算法通常用于求解带约束条件的优化问题,特别是当目标函数是...
附录里的matlab代码-Implementation-of-some-optimization-algorithms:4个最优化算法的实现
05-28
本文针对要求解的优化问题(具体问题可见report中的附录1,2),实现了四个常用的最优化算法,包括两个无约束极小值算法——最速下降法(gradient descent method)和BFGS算法(BFGS algorithm),两个约束极小值算法——...
匹配市场推荐的优化排名
3280优化匹配市场推荐的排名0YiSu康奈尔大学美国纽约州伊萨卡市ys756@cornell.edu0MagdBayoumi康奈尔大学美国纽约州伊萨卡市mb2363@cornell.edu0ThorstenJoachims康奈尔大学美国纽约州伊萨卡市tj@cs.cornell.edu0...
Frank wolfe
06-01
求解交通流量分配模型的有效方法 #include "stdafx.h" #include #include #include "os.h" #include "my_types.h" #include "md_alloc.h" #include "my_util.h" #include "message.h" #include "tui.h" #include "meta.h" #include "link_functions.h" #include "od_table.h" #include "od_flow.h" #include "mincostroutes.h" #include "ls_bisect.h" #include "fw_status.h" extern int no_zones, no_nodes, no_links; /* Gloabal variables */ my_float **ODflow, TotalODflow; /* Local Declarations */ /* void FW(void); Should there be a function for fw, or should it be included in main? */ static void Init(char *tuiFileName); static void Close(char *tuiFileName); static void InitODflow(void); static void CloseODflow(void); /* End of local declarations. */ void main(int argc, char **argv ) { my_float *MainVolume, *SubVolume, *SDVolume, Lambda; int **MinPathPredLink; struct fw_status_struct fw_status; char *tuiFileName; StatusMessage("General", "Ready, set, go..."); switch(argc){ case 2: tuiFileName=argv[1]; break; case 1: tuiFileName="control.tui"; break; default: ExitMessage("Wrong number of command line arguments (%d). \n" "Syntax: fw .", argc-1); } Init(tuiFileName); MainVolume = (my_float*)Alloc_1D(no_links, sizeof(my_float) ); SDVolume = SubVolume = (my_float*)Alloc_1D(no_links, sizeof(my_float) ); /* Compute search direction and sub-volume in the same place. */ MinPathPredLink = (int**)Alloc_2D(no_zones,no_nodes, sizeof(int)); InitFWstatus(&fw_status); FindMinCostRoutes (MinPathPredLink, NULL); Assign (ODflow,MinPathPredLink,MainVolume); FirstFWstatus(MainVolume, &fw_status); UpdateLinkCost(MainVolume); for ( fw_status.Iteration = 1; ContinueFW(fw_status); fw_status.Iteration++) { FindMinCostRoutes (MinPathPredLink, NULL); Assign (ODflow,MinPathPredLink,SubVolume); VolumeDifference( SubVolume, MainVolume, SDVolume); /* Which yields the search direction. */ Lambda = LinksSDLineSearch ( MainVolume, SDVolum
论文研究-用于求解路径交通流量的改进Frank-Wolfe算法.pdf
09-16
Frank-Wolfe算法是用于求解交通流量分配问题的经典算法,但该算法是基于路段(Link-Based)的交通流量分配算法,无法用于求解路径交通流量。针对此问题,提出一种用于求解路径交通量的改进Frank-Wolfe算法。通过在Frank-Wolfe原算法中增加求解路径交通流量的计算步骤,根据原算法中“全有全无”加载方法获得的步长,更新源-目的(OD)间所有已配流的路径的交通流量,在原算法迭代计算路段流量的同时,同步计算路径流量。通过算例表明,改进算法是一个有效的算法,在Frank-Wolfe原算法的基础上增加少量的时间和空间成本即可求解路径交通流量,避免穷举交通网络中的所有路径,可以很好地用于用户均衡交通流量分配中。
Frank-Wolfe算法 matlab程序.zip
03-30
Frank-Wolfe算法 matlab程序(Frank-Wolfe (matlab))
【人工智能】实现非局部加速器算法的奥秘
程序员光剑
07-30 1755
随着计算机技术的飞速发展,深度学习和神经网络的火热,人工智能领域的研究也呈现出爆炸性的增长。近几年,“非局部加速器(NLA)”的概念越来越火热,其关键在于如何提升计算效率。然而,对于NLA的实际应用效果如何,目前还没有形成统一的定论,因而需要进一步的探索。本文将从理论、实践和前沿方向三个方面对这一重要问题进行系统的阐述。NLA是指在目标函数中增加惩罚项来限制模型的复杂度或减少计算量,以提高计算性能。最初的非局部加速器方法包括SDP方法、SGA方法、Frank-Wolfe方法、序列最小最大化方法等。
基于Frank Wolfe算法,求解交通分配UE模型(Python & NetWorkX)
最新发布
m0_61584121的博客
03-10 5300
本文针对SiouxFalls交通网络,基于Frank Wolfe算法,求解交通分配用户均衡模型。代码逻辑较为明确,便于阅读、学习。
Frank-wolfe算法多OD对matlab实现
m0_37407587的博客
08-25 1万+
Frank-wolfe算法多OD对matlab实现 Frank-wolfe算法多OD对matlab实现 Frank-wolfe算法原理 Frank-wolfe算法流程 算例 将道路网络抽象为图 给定OD对 关键函数及完整流程 1. 搜索每个OD对在网络上的可行径 2. Frank-worlfe算法构造 3. 主函数 存在的问题 Frank-wolfe...
Frank-Wolfe和梯度投影方法MATLAB实现
weixin_42710615的博客
05-01 4268
Frank-Wolfe算法和梯度投影算法解决带线性约束问题MATLAB实现
配流07—基于BPR函数的Frank Wolfe算法
交通分配与复杂网络分析
12-21 1万+
在道路网中,已知OD需求,路段走行时间,路段能力和路径路段关系,求流量的均衡分配结果。
线性约束最优化问题的Frank-Wolfe方法
tomheaven的专栏
08-30 1万+
在无约束最优化问题的基础上,我们可以进一步来求解约束最优化问题。约束最优化问题的一般形式为: minf(x)s.t.gi(x)≥0,i=1,...,m \begin{aligned} &\min f(x) \\ &s.t. \quad g_i(x)\ge0, i=1,...,m \end{aligned} 先考虑gi(x)g_i(x)均为线性函数的情况,此时问题与线性规划的约束条件相同,仅仅
写文章

热门文章

  • 相机畸变矫正原理及代码实现 27942
  • 相机几何学——相机投影矩阵( Camera Projection Matrix) 22386
  • KG-知识图谱入门-王昊奋课程详细笔记(附课件、课程链接与详细笔记) 19901
  • 约束优化方法_1_——Zoutendijk可行方向法 14541
  • 瞎折腾篇:联想笔记本外扩GTX1060——刷BIOS 14347

分类专栏

  • Linux基础 7篇
  • Pytorch 2篇
  • Tensorflow 9篇
  • 概率论 1篇
  • 推导 1篇
  • 多目标追踪 2篇
  • Vulkan 2篇
  • 最优化理论与算法 6篇
  • 相机几何学 3篇
  • Reinforcement Learning 1篇
  • Pattern R. & Maching L. 3篇
  • Detect And Track 7篇
  • 神经网络 9篇
  • 知识图谱 2篇
  • 环境搭建 10篇

最新评论

  • 相机畸变矫正原理及代码实现

    打灰人不认输: 去畸变部分怎么说的是标定?

  • 相机几何学——相机投影矩阵( Camera Projection Matrix)

    liongω: RT的展开

  • KG-知识图谱入门-王昊奋课程详细笔记(附课件、课程链接与详细笔记)

    深度学习并不难: 大佬能分享一下学习资料吗?十分感谢!1120173942@qq.com

  • 深度学习基础——彻底掌握卷积层的计算

    Chang_ShengTian: 标准卷积计算那里,后面的高和宽写错了,227*227,然后下面的计算步骤那里也写错了

  • frp内网穿刺/反向代理教程

    2401_82665034: 能不能加个好友。向你请教一下。具体怎么搞表情包

大家在看

  • MySQL —— 索引 1379
  • Unity组件大全之 Effects特效 |(46)Trail Renderer:绘制动态轨迹的艺术 580
  • jsp大学新生入学管理系统的设计与实现w8s63
  • Springboot基于springboot高校毕业生信息管理系统y775m程序+源码+数据库+调试部署+开发环境
  • 【JavaWeb从入门到精通系列】 - JavaSE基础篇(1) - 常用类

最新文章

  • zsh安装与配置
  • 逻辑卷管理器-LVM-Logical Volume Manager 基本操作
  • Linux磁盘分区基本操作
2021年4篇
2020年30篇
2019年31篇
2018年5篇
2017年1篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

天下网标王网站优化的三个原则优化网站软件询问y火27星网站推广与优化培训网络营销网站优化汕头seo网站排名优化荔湾企业网站推广优化费用企业网站如何优化页面收录诸城网站优化培训通化网站建设及优化网站排名优化腾谷-大将军1优化网站设计gf丷云速捷优化技术增加网站收录量马鞍山360网站优化高端网站优化公司电话思域车机优化的网站没用成都网站关键词排名优化临沂哪里有网站优化价格云浮公司网站关键词优化多少钱seo网站关键优化源码黄江seo网站优化公司网站的优化珍宝云速捷网站优化新手教程嘉兴网站排名优化马鞍山靠谱的网站优化怀宁网站优化联系电话php网站适合优化孝感广东网站优化网站导航 锚文本的优化舟山快速优化网站庆阳如何优化网站香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化