1、本资源针对SiouxFalls交通网络,基于Frank Wolfe算法,求解交通分配用户均衡模型。 2、UE.py为代码;Link.csv为边信息;Node.csv为节点信息(未用到,其中包括节点坐标);OD.csv表示OD流量需求;此外包括网络均衡结果.csv。 3、用户均衡,表示没有用户可以通过单方面改变出行路径,从而降低出行费用。 4、本资源代码逻辑较为明确,便于阅读、学习。
2024-04-08 21:22:40 6KB 交通物流 交通工程 Python
1
一般情况下,求解大规模无约束优化问题的有效算法是共轭梯度法。共轭梯度法的关键是选取αk和βk,不同的αk和βk决定了不同的共轭梯度算法。在HS方法和DY方法的基础上,给出了一种求解无约束问题的混合共轭梯度算法,并在Wolfe性搜索下证明了算法的全局收敛性。
2023-03-05 11:26:38 1.09MB 自然科学 论文
1
求解交通流量分配模型的有效方法 #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, SDVolume ); UpdateFWstatus(MainVolume, SDVolume, &fw_status); UpdateVolume ( MainVolume, SDVolume, Lambda ); UpdateLinkCost (MainVolume); } CloseFWstatus(MainVolume); free(MainVolume); free(SubVolume); Free_2D((void**)MinPathPredLink,no_zones,no_nodes); Close(tuiFileName); StatusMessage("General","The end"); } static void Init(char *tuiFileName){ tuiInit(tuiFileName); InitLinks(); InitODflow(); InitLineSearch(); } static void Close(char *tuiFileName){ StatusMessage("General", "Closing all modules"); tuiClose(tuiFileName); CloseLinks(); CloseODflow(); CloseLineSearch(); } static void InitODflow(void){ char *ODflowFileName; int input_no_zones; double Factor=1.0; struct meta_struct meta_data; tuiGetInputFileName( "OD flow file name", TRUE, &ODflowFileName); StatusMessage("General", "Reading OD flow file '%s'", ODflowFileName); ODflow = Read_ODflow (ODflowFileName, &TotalODflow, &input_no_zones, &meta_data); if(input_no_zones != no_zones) ExitMessage("OD flow file '%s' is for %d zones, and not for %d zones.", ODflowFileName , input_no_zones, no_zones); tuiGetDouble( "OD flow factor", FALSE, &Factor); if(Factor <= 0.0) ExitMessage( "OD flow factor %lf is invalid, if must be positive.", Factor); if(Factor != 1.0) Factor_ODtable (ODflow, (my_float) Factor, no_zones) ; } static void CloseODflow(void){ Free_2D((void **)ODflow, no_zones, no_zones); }
2023-02-22 15:32:50 32KB frank wolfe
1
本资源中利用Frank-Wolfe算法求解了SiouxFalls网络的交通分配结果(UE用户均衡结果,即没有用户可以通过单方面改变出行路径从而降低出行费用)。网络基本信息如txt文件所示,路阻函数采用了经典美国联邦公路局BPR函数,出行需求如ODPairs.txt所以。最终输出结果为输出每条路段上的流量。
2022-10-22 14:10:11 7KB UE Frank-Wolfe 交通工程 交通分配
1
一汽套索 用于快速且可扩展的套索回归的随机Frank-Wolfe算法(C ++代码) 免责声明: 仅在GNU通用公共许可证下,该软件可用于非商业研究目的。 然而,尽管GNU通用公共许可证的任何规定,该软件可能无法接触后用于商业用途的明确书面许可和 。 主要开发商: 埃马努埃莱Frandi( ),里卡多Nanculef( ) 参考: Frandi E.,Nanculef R.,Lodi S.,Sartori C.,Seykens JAK,“通过具有随机性保证的随机Frank-Wolfe方法进行快速可扩展的套索”,内部报告15-93,ESAT-STADIUS,库鲁汶,2015 。
2022-06-23 10:27:46 25KB C++
1
文件包含Frank-wolfe算法的交通分配,通过基本的例子调试成功
2022-06-13 10:00:03 4KB matlab 交通分配 Frank-Wolfe
1
Deep Frank-Wolfe用于神经网络优化 该存储库包含pytorch中的论文的实现》。 如果您将这项工作用于研究,请引用以下文章: @Article{berrada2019deep, author = {Berrada, Leonard and Zisserman, Andrew and Kumar, M Pawan}, title = {Deep Frank-Wolfe For Neural Network Optimization}, journal = {International Conference on Learning Representations}, year = {2019}, } 注意:您可能对我们的后续算法感兴趣,该算法具有明显的收敛保证,并且在我们的实验中优于DFW。 要求 此代码适用于
2022-02-27 10:09:07 80KB deep-learning optimization pytorch Python
1
附录里的matlab代码#LinearFW 这是重现我们所有实验的代码: On the Global Linear Convergence of Frank-Wolfe Optimization Variants Simon Lacoste-Julien and Martin Jaggi NIPS 2015 它涵盖了针对方程式中描述的问题的Frank-Wolfe优化变量的全局线性收敛速度。 (1)在论文中。 它包含Frank-Wolfe的实现,在两个应用程序上分别执行Frank-Wolfe和成对的Frank-Wolfe: l1约束最小二乘回归(lasso); 来自视频共定位应用程序的流多面体上的QP。 该代码在Matlab中运行(已在Linux,Windows和Mac上的Matlab 2014中进行了测试)。 但是对于下面的前两个文件夹,通过删除初始化随机种子的行,它也可以轻松地在Octave中运行。 有三个文件夹: FW_lasso包含用于生成图2顶部图形的套索实验。在文件夹中启动run_FW.m以生成图(花费几秒钟)。 triangle_FW_experiment包含线性速率常数实
2022-02-21 11:22:16 3.27MB 系统开源
1
smbj-wolfe.zip
2021-10-25 18:06:07 1.33MB smb smb2 smbj
1
wolfe函数MATLAB代码高维相似性学习 HDSL 是我们介绍的相似性学习方法的 Matlab/MEX 实现(另请参见较长的 )。 HDSL 允许在高维数据上对稀疏双线性相似函数进行可扩展的学习。 HDSL 在 GNU/GPL 3 许可下分发。 入门 要安装和运行演示,请在 Matlab 控制台内使用 install demo_HDSL 参考 如果您在科学工作中使用此代码,请引用: K. Liu、A. Bellet 和 F. Sha。 高维稀疏数据的相似性学习。 人工智能与统计国际会议 (AISTATS),2015 年。 K. Liu 和 A. Bellet。 逃避相似性学习中的维度诅咒:高效的 Frank-Wolfe 算法和泛化边界。 神经计算 333:185-199, 2019。
2021-10-03 21:11:41 1.39MB 系统开源
1