互联网IP路由的逐跳全局最优化原则-Dijkstra算法证明

简介:

把周末写了一半的东西继续补齐了,实现了完美的一天。
我们知道的一个事实就是IP地址实在太多了,根本就不可能统一的管理起来,无论从数据平面还 是从控制/管理平面上说都是这样。所以,IP协议被设计出来就是可扩展的。对于IP路由来讲,路由计算是逐跳进行的,当然也支持“源路由”选项,源路由就 是说数据在出发前就已经把路线规划好了,逐跳路由是IP路由的标准形式,也就是说,IP数据包是在路上即时规划路线的。
       我比较喜欢IP路由是因为这也是我旅行的方式,我喜欢旅行,但是我不喜欢事先订酒店,事先规划路线,导航等,我的方式是在路上看路牌前行,到了临时停下的 地方之后背着行囊找住处,然后走到哪算哪,这是一种说走就走且没有目的地的游荡...当然,IP数据包是有目的地的。

逐跳全局最优化

IP路由是在每一台路由器上逐跳路由的,那么就产生了一个问题,偌大一个互联网,该怎么相信这么多逐跳路由拼接起来的一条完整的路径确实是最优化的呢?答案显然是确定的,问题是怎么证明它。

路由算法

书 上讲,路由算法基本分为距离矢量算法和链路状态算法,各自的协议代表作就是RIP和OSPF(我就是靠着这两个找到的第一份工作),确实是这样,但是从这 些算法的正确性的证明过程中,你就会发现,确实是“逐跳的最优化路由真的就是全局的最优化路由”。本文中我仅仅给出基于链路状态路由协议的 Dijkstra算法的证明,因为全网每台设备的链路状态数据库都是相同的,所以它是很好理解的。

Dijkstra算法正确性证明

首先要给出Dijkstra算法正确性的证明,才能进行后续的。毕竟,Dijkstra算法本身只是指导了step by step的操作步骤,并没没能证明这么折腾一圈得到的最短路径树中的每一条路径确实是最短的。而要想证明逐跳全局最优化原则,需要这个事实。
       下面的示意图给出了Dijkstra算法正确性的简单证明,详细完备的数学证明可以参照这个思路:

wKiom1UbwxbzEUlBAAM5Bu0wZkE077.jpg

逐跳全局最优化的问题

下面的示意图点名了逐跳全局最优化的问题所在:

wKioL1UbxGHCzLWxAAHYsHfukj8486.jpg

逐跳全局最优化的证明

下面的示意图给出了逐跳全局最优化的简单证明,证明方式多种多样,我这里给出的仅仅是其中一种:

wKioL1UbxG6xi68iAAK5teHjAZM433.jpg

附:Dijkstra算法的贪心模型

如 果我们在地上倒上一杯水,观察水摊开渗透的痕迹,就会理解Dijkstra算法,它确实是不证自明的。大自然是懒惰的,总是用最省力的方式行事,水分子在 落地那个点开始,在崎岖不平的地上由于重力(暂时不考虑其它分子力)沿着一定的路径到达一系列点,这些路径一定是最短路径。我们可以把地面的崎岖程度视为 路径的权值,这不就和Dijkstra算法模型一模一样吗?



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1627419

相关文章
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
337 5
|
3月前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
274 14
|
3月前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
146 1
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
165 0
|
3月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
243 1
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的XGBoost序列预测算法matlab仿真
基于WOA优化XGBoost的序列预测算法,利用鲸鱼优化算法自动寻优超参数,提升预测精度。结合MATLAB实现,适用于金融、气象等领域,具有较强非线性拟合能力,实验结果表明该方法显著优于传统模型。(238字)
|
3月前
|
机器学习/深度学习 算法 Java
基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
272 1
|
3月前
|
算法 机器人 Serverless
【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究(Matlab代码实现)
【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究(Matlab代码实现)
495 2