inflight 守恒拥塞控制的稳定性

只要系统形成 E_best = max(bw / delay) 共识,系统就是稳定的。

设两条流 f1,f2 共享瓶颈链路,用 cwnd 约束 inflight,其 cwnd 分别为 x,y,用简单的微分方程建模:

d x d t = c − b ∗ x − a ∗ y \dfrac{dx}{dt}=c-b*x-a*y dtdx=cbxay
d y d t = c − b ∗ y − a ∗ x \dfrac{dy}{dt}=c-b*y-a*x dtdy=cbyax

其中,c 是自我激励强度参数,b 是自我抑制强度参数,c 是相互抑制强度参数。b,c 共同决定了抑制行为,是 E_best 共识的决定性参数,是为 “适可而止”。

f1 自我约束,f2 增加了 f1 的约束,反之亦然。

试求上述系统的稳定点,然后分析其相空间的系统轨线,令:

d x d t = c − b ∗ x − a ∗ y = 0 \dfrac{dx}{dt}=c-b*x-a*y = 0 dtdx=cbxay=0
d y d t = c − b ∗ y − a ∗ x = 0 \dfrac{dy}{dt}=c-b*y-a*x=0 dtdy=cbyax=0

则获得两条直线,其交点即稳定点:

Lf1: y = f ( x ) = − b a x + c a y=f(x)=-\dfrac{b}{a}x+\dfrac{c}{a} y=f(x)=abx+ac

Lf2: y = g ( x ) = − a b x + c b y=g(x)=-\dfrac{a}{b}x+\dfrac{c}{b} y=g(x)=bax+bc

两条直线相交于相空间第一象限 P 点,将其分为了 4 个空间 A,B,C,D:
在这里插入图片描述

在区域 A, y > f ( x ) y>f(x) yf(x) y > g ( x ) y>g(x) yg(x),因此 d x d t < 0 \dfrac{dx}{dt}<0 dtdx0 d y d t < 0 \dfrac{dy}{dt}<0 dtdy0,轨迹向稳定点 P 收敛。同理,在区域 B,C,D,根据 y 的位置和 dx/dt,dy/dt 的符号亦可推出轨迹向 P 收敛,如上图剪头所示。

其实上述系统模型就是 Lotka-Volterra 系统的简化变体,这种简化的线性渐进假设比三次 logistic 渐进系统更符合 inflight 守恒拥塞控制算法。

inflight 守恒算法并不关注自我激励的细节,它可以是加性增 cwnd,也可以是乘性增 cwnd,甚至可以是指数增 cwnd,因此我将其简化为线性激励,即 d x d y = c \dfrac{dx}{dy}=c dydx=c,算法更关注的是自我抑制和互相抑制,这是一类负反馈,用 d x d y = c − d ∗ x \dfrac{dx}{dy}=c-d*x dydx=cdx 建模,不同的是,将 d 因子拆分成两部分,就形成了一个耦合系统。

获得这微分方程的解析解很麻烦且不必要,要观测系统行为,数值解就够。以下是模拟数值,分三组参数,a,b,c 分别为 (0.4, 0.5, 2), (0.6, 1.5, 3), (2, 3, 1.5), (1, 2, 3):

import numpy as np
import matplotlib.pyplot as plt

# 定义参数和初始条件:确保 a < b,要让自我抑制占主导
params_sets = [(0.4, 0.5, 2), (0.6, 1.5, 3), (2, 3, 1.5), (1, 2, 3)]
x0, y0 = 1, 0
T, dt = 30, 0.1
times = np.arange(0, T+dt, dt)

# 绘制图形
plt.figure(figsize=(12, 6))

for i, (a, b, c) in enumerate(params_sets, start=1):
    # 使用欧拉方法求解
    x = np.zeros_like(times)
    y = np.zeros_like(times)
    x[0], y[0] = x0, y0
    for n in range(1, len(times)):
        x[n] = x[n-1] + dt * (c - b*x[n-1] - a*y[n-1])
        y[n] = y[n-1] + dt * (c - b*y[n-1] - a*x[n-1])
    
    plt.subplot(1, 4, i)
    plt.plot(times, x, label='x(t)')
    plt.plot(times, y, label='y(t)', linestyle='--')
    plt.title(f'a={a}, b={b}, c={c}')
    plt.xlabel('Time (t)')
    plt.ylabel('Population')
    plt.legend()
    plt.grid(True)

plt.tight_layout()
plt.show()

结果如下:
在这里插入图片描述

确保 a < b,并且不相差太大是关键,这是流量共存收敛的关键,这也是为什么我在 inflight 守恒算法中引入携带两个负反馈余量的原因,以确保系统:

  • 稳定平衡,不会跑飞;
  • 对冲差异,快速收敛。

浙江温州皮鞋湿,下雨进水不会胖。

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

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

相关文章

使用python把gif转为图片

使用python把gif转为图片 程序思路效果代码 程序思路 打开 GIF 文件。确保输出文件夹存在&#xff0c;如果不存在则创建。获取 GIF 的帧数。遍历每一帧&#xff0c;将其保存为单独的 PNG 图像&#xff0c;并打印保存路径。 效果 把这张派大星gif转为一张张图片&#xff1a; …

黑马python-JavaScript

1.JavaScript的定义&#xff1a; JavaScript是运行在浏览器端的脚步语言&#xff0c;是由浏览器解释执行的、简称js。它能够让网页和用户有交互功能&#xff0c;增加良好的用户体验效果 2.使用方式&#xff1a; 1.行内式&#xff08;主要用于事件&#xff09; <input type&q…

国产开发板——香橙派Kunpeng Pro的上手初体验

开发板&#xff08;Development Board&#xff09;是一种特殊的电子产品&#xff0c;它的主要目的是为了帮助开发者快速地设计、测试和验证电子产品的硬件和软件设计。开发板通常提供了一个完整的硬件平台&#xff0c;包括微控制器、存储器、接口和其他外围设备&#xff0c;开发…

程序员职业素养:AI新时代下的机遇与挑战

目录 一、引言二、程序员职业素养的五大要点1. 技术能力2. 沟通能力3. 团队合作4. 责任心5. 敬业精神 三、实际案例解析四、程序员职业素养在实际工作中的应用五、AI新时代的程序员的职业发展建议六、总结七、结语 一、引言 在当今这个科技飞速发展的时代&#xff0c;程序员这…

解决在Windows11上新安装的Docker Desktop一直显示“starting the Docker Engine“登录不上去的问题

解决在Windows11上新安装的Docker Desktop一直显示“starting the Docker Engine“登录不上去的问题 管理员权限运行cmd 还需要安装wsl(适用于Linux的Windows子系统)。注意windows powershell也要以管理员权限打开 这个是小羊用错窗口了&#xff0c;but好像也没错吧&#xff…

excel拖拽怎么使单元格序号不递增

拖拽下来不仅不递增&#xff0c;而且右下角没有倒三角可以设置改变&#xff0c;&#xff08;即没有下图这个&#xff09; 则&#xff0c;可以采用以下方法 excel数值拖拽不递增还有一个更快更快捷的方法&#xff0c;这就运用到了excel快捷键&#xff0c;我们把鼠标放到单元格的…

集成学习笔记

集成学习 简介 决策树 GBDT 拟合残差 一般 GBDT XGBOOST 弓 1 能表达样本落入的子节点&#xff0c;但是不能把表示结构 2 3.正则项 – 惩罚 防止过拟合&#xff0c;比如一个值总共有10颗树都是由同一颗树决定的&#xff0c;过拟合 5 找到一种方式不依赖于损失函数 …

【数据集划分】oracle数据集划分(总结版)

【数据集划分】假如你有接近百万条oracle数据库数据&#xff08;成真版&#xff09; 写在最前面最终代码原理&#xff1a;生成随机索引并打乱顺序示例作用应用场景 遇到报错&#xff1a;ORA-01795&#xff0c;通过CTE&#xff08;Common Table Expressions&#xff09;和窗口函…

SQL性能优化 ——OceanBase SQL 性能调优实践分享(3)

相比较之前的两篇《连接调优》和《索引调优》&#xff0c;本篇文章主要是对先前两篇内容的整理与应用&#xff0c;这里不仅归纳了性能优化的策略&#xff0c;也通过具体的案例&#xff0c;详细展示了如何分析并定位性能瓶颈的步骤。 SQL 调优 先给出性能优化方法和分析性能瓶…

除了诺贝尔奖的红利,Pasqal 还有哪些实力?

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;3700字丨13分钟阅读 摘要&#xff1a;与超导量子比特相比&#xff0c;中性原子量子技术的投资成本相对较低、中性原子量子比特无需布线、还能将单…

二叉树的顺序结构(堆的实现)

前言 普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结 构存储。 现实中我们通常把堆 ( 一种二叉树 ) 使用顺序结构的数组来存储&#xff0c;需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事&…

less学习笔记

一、什么是less&#xff1f; Less是CSS预处理语言&#xff0c;可以使用变量、嵌套、运算等&#xff0c;便于维护项目CSS样式代码。 二、less安装 使用npm包管理工具&#xff0c;全局安装less包 npm install -g lessless安装好的同时&#xff0c;lessc也安装好了 通过 lessc -…

[office] Excel数据透视表有什么用途?Excel数据透视表怎么做? #学习方法#职场发展

Excel数据透视表有什么用途&#xff1f;Excel数据透视表怎么做&#xff1f; Excel数据透视表是一种数据汇总手段&#xff0c;如果表格内的数据太多&#xff0c;单靠肉眼是很难准确分辨数据的&#xff0c;而使用数据透视表&#xff0c;就可以很方便的筛选各种数据。如果你不知道…

企业获客有哪些好的广告推广拓客渠道?

在这个数字化营销的时代&#xff0c;企业要想在激烈的市场竞争中脱颖而出&#xff0c;选择正确的广告宣传渠道至关重要。随着互联网技术的飞速发展&#xff0c;各类媒体平台如雨后春笋般涌现&#xff0c;为企业提供了广阔的宣传空间。云衔科技通过多元化的媒体渠道&#xff0c;…

C语言.数据结构.单链表

数据结构.单链表 1.链表的概念及结构2.单链表的实现2.1链表的打印2.2节点的申请2.3单链表的尾插2.4单链表的头插2.5单链表的尾删2.6单链表的头删2.7单链表节点的查找2.8在指定位置之前插入数据2.9在指定位置之后插入数据2.10删除pos节点2.11删除pos之后的节点2.12单链表的销毁2…

伽马校正技术在AI绘画中的作用

随着人工智能技术的飞速发展&#xff0c;AI绘画已经成为了艺术创作领域的一股新兴力量。在这个数字化时代&#xff0c;计算机图形学和机器学习的结合为我们带来了前所未有的创作工具。然而&#xff0c;为了实现更加真实和自然的色彩表现&#xff0c;伽马校正技术在其中扮演着至…

NSSCTF-Web题目5

目录 [SWPUCTF 2021 新生赛]error 1、题目 2、知识点 3、思路 [LitCTF 2023]作业管理系统 1、题目 2、知识点 3、思路 [HUBUCTF 2022 新生赛]checkin 1、题目 2、知识点 3、思路 [SWPUCTF 2021 新生赛]error 1、题目 2、知识点 数据库注入、报错注入 3、思路 首先…

极光公布2024年第一季度财报

2024年6月6日&#xff0c;中国深圳——中国领先的客户互动和营销科技服务商极光&#xff08;Aurora Mobile&#xff0c;纳斯达克股票代码&#xff1a;JG&#xff09;&#xff08;以下称“极光”或“公司”&#xff09;公布截至2024年3月31日第一季度未经审计的财报。 2024年第…

UDSonCAN刷写之StayInBOOT和FlashDiver

目录 0 前言 1 StayInBOOT 2 Flash Driver 0 前言 最近在做刷写相关的工作&#xff0c;顺便搞懂了StayInBOOT和FlashDiver&#xff0c;写出来作为分享&#xff0c;如果有哪里不对也请多多指正。 1 StayInBOOT StayInBOOT在整个流程中的位置如下图所示&#xff0c;从图中可…

VCAST创建单元测试工程

1. 设置工作路径 选择工作目录,后面创建的 UT工程 将会生成到这个目录。 2. 新建工程 然后填写 工程名称,选择 编译器,以及设置 基础路径。注意 Base Directory 必须要为代码工程的根目录,否则后面配置环境会失败。 这样工程就创建好了。 把基础路径设置为相对路径。 …