第六十七章 :两秒!(2 / 3)

层、支线层、接驳层在求解自己的线路优化问题时,都会用到换乘枢纽。但它们不能自己决定枢纽怎么用。”

“它们把自己的需求报给共享层,共享层再汇总所有层的需求,在枢纽容量的约束下,统一分配。分配完了之后,各层再根据分配结果调整自己的线路方案。”

“如果调整之后产生了新的需求变化,就再报给共享层,再来一轮分配。”

“反复迭代,直到所有层的线路方案和共享层的枢纽分配方案互相一致。”

听完韩川的解释,许志远诧异地看了过来,蹙眉问道:“这样计算量不同样还是很大吗?”

韩川摇摇头,道:“并不会。”

“因为共享层处理的不是原始的线路数据,而是各层提交上来的需求汇总。”

“需求汇总的数据量相对较小,因为一个换乘枢纽,不管连接多少条线路,在共享层里只对应一个变量:该枢纽的总换乘流量。”

“你原来用协调参数处理的时候,每一条经过西直门的线路都要和其他所有经过西直门的线路做配对协调。”

说着,他提起笔,在稿纸图层边重写了一个算式。

“假设西直门有n条线路经过,协调参数的数量是o(n²)。”

“那么在共享层里,这n条线路各自向西直门提交一个需求值,共享层只需要处理一个变量。”

“也就是说,西直门的枢纽容量分配,那么复杂度从o(n²)降到了o(n)。”

“更重要的是,这个o(n)的过程是有解析解的,即【l(x,λ)=i=1∑n(x−di)2+λ(x−c)】”

“其中d_i是第i条线路提交的需求值,x是共享层分配给该枢纽的总流量,c是枢纽容量上限,λ是拉格朗日乘子。对x求导,令导数为零”

许志远看着那个矩阵表达式,沉默了几秒。

然后他把韩川的稿纸拉过来,对照着上面的公式,开始修改自己的atb代码。

屏幕上的代码一行行流畅地刷过,不到半个小时左右的时间,许志远把代码粘进主程序里,然后打开题目附件里的站点数据文件,配好输入参数,按下了运行键。

屏幕上没有立刻跳出结果,atb的命令窗口里,光标一闪一闪地,正在跑迭代。

等了大概两秒的时间,结果出来了!

两秒!

看着屏幕上的结果,许志远下意识地以为是程序出bug了。

最新小说: 从融合基因熔炉开始进化 高塔之上! 要当总统了,你告诉我是纸牌屋? 大时代1994 在霍格沃兹的中国留学生 从魔禁开始跑团诸天无限 腹黑青梅根本藏不住对我的喜欢 召唤系?穆宁雪成了我的次元兽? 全职猎人:卡牌大师,世界最强 高武:从武科生到星空大帝