《互联网的世界》第二讲-最短路径优先

昨天讲 dns 时讲过,“你问一个当地人最近的厕所在哪,路人给你一个地址…”,可是只有地址还不够,如何到达那里呢?这是本节的内容。
在这里插入图片描述

自然的方式是,一边走一边问,根据路人的指示继续一边走一边问,这就是逐跳转发。问题的核心在于,当地为你指路的人如何知道到达目的地最短的路径。
这里面并没有什么高科技,我尝试从蜜蜂找花蜜来解释:
在这里插入图片描述

蜜蜂不停找距离蜂巢最近的花蜜,一旦找到就占作根据地,从而可嗅到其它距离更远的花蜜,这过程基本保证了蜜蜂每占领一块花丛,都是从最短距离逐步过来的,如果不是最短,蜜蜂肯定在更早时通过其它被占领的花蜜丛嗅到了。
不光蜜蜂采蜜,蚂蚁找食物,树根的生长,甚至包括侵略战争的以战养战策略,都遵循最短路径优先。特别是树根生长最具代表性,树根从近处吸取营养,为了从更远处吸取,它需要不断延伸生长,每延伸所到处,这就是根的一部分,作为继续感知更远处营养的前沿,最终的树根就是一棵最短路径树。
包括河流泛滥渗透在内,大自然中无论生物还是非生物,都遵循最小作用量原则,生物更是将其装备在了嗅觉,触觉等感知器官上,不停地自动计划着最短路径优先的生命调度。
这确实没什么大不了的,只是为了将其在更狭窄的工业领域运用,人们将其抽象成固定步骤的算法以便实际操作,狄杰斯特拉算法就算其一。
互联网的连通性便构建在这个最短路径优先算法之上,dns 指路,spf(即:最短路径优先) 寻址,因此我觉得这个也比较核心,就安排在第二讲。
我问孩子们,这个算法有问题吗?

将所有过境流量引入同一条最短路径,势必会造成拥堵,度量为 11 和度量为 12 相差不几的两条路径在数值上显然并不等价,但在自然的情况下,两者显然可以分担流量。
女儿提出不停递增一条路径的度量,直到它过大时,流量就会自动被调度走,好像是这么一回事,但我反问,这样的话流量岂不是会在不同路径乒乓颠簸吗,此外,路由器需要不停重新计算最短路径,仅这些流量就非常可观了
为什么不能在两条不等价但差不多的路径上做加权负载均衡呢?比如总流量 11/(11+12) 的流量走路径 1,12/(11+12) 走路径 2?
如果一列婚车车队在一个十字路口被拆散驶入两条道路,这合适吗?当然,这对交通状况的改善肯定没问题,信号灯看不懂车队,但对婚礼当事人却并不友好,如何做才能让各方满意?这是明天第三课的内容。
总之,最短路径优先依然是高效连通性的根本,作为一个贪心策略可以获得全局最优解,背后还是最小作用量在起作用,如果仅从数学归纳法来看其正确性,可能并不高雅,但考虑到它的物理意义,就非常精美了。
回到最初的蜜蜂找花蜜丛,不是蜜蜂的聪明才智起了作用,而是花蜜散发的信息素被距离越近的蜜蜂感知越强烈,同时蜜蜂之间会进行信息传递,此二者就是最短路径优先的保证,关键就是信息的传递,这得益于蜜蜂和花都在这个最小作用量的世界进化了千万年,一切完美适应最小作用量。考虑网络中的最短路径优先实例的狄杰斯特拉算法,“信息素被距离越近的蜜蜂感知越强烈” 表现为路径度量的松弛操作,这就是算法的全部。
浙江温州皮鞋湿,下雨进水不会胖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/415191.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Cap0:TensorRT环境搭建

文章目录 1、安装TensorRT1.1、下载TensorRT压缩包1.2、配置环境变量 2、测试2.1、测试源码2.2、编译源码 1、安装TensorRT TensorRT是针对NVIDIA显卡设备的加速方案,你要使用TensorRT则证明你有一定的深度学习基础,那么在你的Ubuntu上配置好显卡驱动、…

Vue.js实战:构建一个简单的学生管理系统

摘要: 本文将引导你使用Vue.js框架来构建一个完整的学生管理系统。我们将从环境搭建开始,逐步介绍Vue的核心概念、组件创建、数据管理、事件处理、路由配置以及项目构建等关键步骤。通过实际操作,你将能够掌握Vue.js的基础知识,并…

基础!!!吴恩达deeplearning.ai:多标签分类与高级优化方法

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 智能驾驶高级优化方法梯度下降算法回顾 Adam算法(Adaptive Moment estimation)模型部分编译部分拟合部分 之前我们已经学习了多分类问题的神经网络的搭建。而有一种特殊的分类问题…

【亚马逊云新春特辑③】构生成式 AI 文生图工具之借助ControlNet进行AI绘画创作【使用OpenPose优化人物二维码】

文章目录 2.1 使用OpenPose优化人物二维码1)数据及环境准备2)导入骨架数据并启用OpenPose控制单元3)导入二维码并生成美化后的二维码图片 2.1 使用OpenPose优化人物二维码 在上一节体验到了使用ControlNet并结合QR Code生成二维码&#xff0…

雾锁王国服务器官方配置要求说明

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

自动从金蝶取数,做BI报表的工具,快来长见识!

技术越进步,分析工具越智能,如今做数据分析、数据可视化,不仅能连接金蝶系统,更能直接从金蝶ERP中取数做分析,自动输出BI数据可视化分析报表。这就是奥威-金蝶BI方案。 是骡子是马,牵出来遛遛就知道&#…

STM32标准库开发—硬件SPI外设

SPI外设简介 SPI1与SPI2所挂载的总线位置不一样,所以时钟频率也不一样,SPI2挂载在APB1时钟频率为36MHZ是SPI1的一半 I2S是一种音频传输协议,适用于STM32大容量产品 一般来说串口发送数据时是低位先行,SPI通信是高位先行 SPI框图 发…

看完这篇爽文我终于学会了示波器(一)

大家好,我是砖一。 示波器是电子行业的工程师的“老熟人”了,有句老话说:电子工程师不能失去示波器,就像西方不能失去耶路撒冷,足以见得示波器的重要地位。今天讲解一下基础知识篇,话不多说,直…

Day 4.进程间的通信:管道和通信

进程间的通信 1.管道 2.信号 3.消息队列 4.共享内存 5.信号灯 6.套接字 1.管道(一次读4k,一共能读16次)64k 1.无名管道 无名管道只能用于具有亲缘关系的进程间的通信 pipe int pipe(int pipefd[2]); 功能:创建一个无名…

云原生高级第一次作业

目录 实验需求: 第一个实验步骤: openEuler 二进制方式安装MySQL 8.0.x 1.首先需要获取软件包 2.然后安装tar和xz格式可进行解压工具 3.接下来就是安装MySQL 4.配置环境变量 5.登入并修改密码 6.停止服务脚本 7.提供配置文件 8.进入/etc/my.cnf…

如何利用动态代理IP进行海外社媒推广?

动态代理IP,顾名思义,是一种可以动态变化的IP地址。与传统的静态IP地址不同,动态代理IP在每次网络请求时都能提供一个新的IP地址。在进行海外推广活动时,它的应用非常关键。 动态代理IP的工作原理基于一个庞大的IP地址池。当用户…

IPD(集成产品开发)—核心思想

企业发展到一定阶段就会遇到管理瓶颈,IPD流程是一种高度结构化的产品开发流程,它集成了业界很多优秀的产品开发方法论,像搭积木一样的组合成一种非常有效的流程。如果我们能根据企业的规模和行业特点,对全流程的IPD进行合适的裁剪…

代码随想录刷题笔记-Day25

1. 分割回文串 131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xf…

端智能:面向手机计算环境的端云协同AI技术创新

近年来,随着移动端设备软硬件能力的进步,移动端的算力有了很大提升,同时面向移动端的机器学习框架和模型轻量化技术越来越成熟,端上的AI能力逐渐进入大众视野,端智能在电商领域也开始逐步走向规模化应用。通过持续探索…

动态规划之解码方法【LeetCode】

动态规划之解码方法 91. 解码方法解法1解法2 91. 解码方法 91. 解码方法 解法1 状态表示(这是最重要的):dp[i]表示以第i个字符为结尾,解码方法的总数。 状态转移方程(最难的):根据最近的一步来…

故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab)

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab) 粒子群优化算法(Particle Swarm Optimization, PSO)是一种群体智能优化算法,用于求解优化问题。BP神经网络是一种用于模…

【机器学习】线性回归模型(Linear Regression)

🌸博主主页:釉色清风🌸文章专栏:机器学习🌸今日语录:温柔的一半是知识,没有知识的涵养撑不起你想要的风骨。 ☘️0文章预览 本系列文章主要是根据吴恩达老师的机器学习课程以及自己的理解整合而成&#xf…

【MySQL】基本查询(表的增删改查)-- 详解

CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)。 一、Create insert [into] table_name [(column [, column] ...)] v…

2月28日做题总结(C/C++真题)

今天是2月28日,做题第三天。道阻且长,行则将至;行而不辍,则未来可期! 第一题 static char a[2]{1,2,3};说法是否正确? A---正确 B---错误 正确答案:B 解析:数组定义时&#xf…

Linux系统——Nginx拓展

目录 一、重写功能——rewrite 1.if 1.1 if 2. return 2.1状态码301和302的区别 301 302 3. set 4. break 5. rewrite 5.1 rewrite flag使用 5.2 flag说明 5.3举例 5.3.1访问 bj 跳转 beijing 5.3.2举例——break 5.3.3 http 转 https 5.3.4 break 与 last …