inflight 守恒拥塞控制的稳定性

news2024/11/23 9:23:11

只要系统形成 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 守恒算法中引入携带两个负反馈余量的原因,以确保系统:

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP/IP(网络编程)

一、网络每一层的作用 &#xff0a;网络接口层和物理层的作用&#xff1a;屏蔽硬件的差异&#xff0c;通过底层的驱动&#xff0c;会提供统一的接口&#xff0c;供网络层使用 &#xff0a;网络层的作用&#xff1a;实现端到端的传输 &#xff0a;传输层:数据应该交给哪一个任…

区块链(Blockchain)调查研究

文章目录 1. 区块链是什么&#xff1f;2. 区块链分类和特点3. 区块链核心关键技术3.1 共识机制3.2 密码学技术3.4 分布式存储3.5 智能合约 4. 区块链未来发展趋势5. 区块链 Java 实现小案例 1. 区块链是什么&#xff1f; 区块链是分布式数据存储、点对点传输、共识机制、加密算…

TPC-H建表语句(MySQL语法)

TPC-H测试集介绍 TPC-H&#xff08;Transaction Processing Performance Council, Standard Specification, Decision Support Benchmark, 简称TPC-H&#xff09;是一个非常权威数据库基准测试程序&#xff0c;由TPC组织制定。 TPC-H定义了一个包含8个表的模式&#xff08;Sc…

Github上一款开源、简洁、强大的任务管理工具:Condution

Condution 是一款开源任务管理工具&#xff0c;它以简洁易用、功能强大著称。它旨在为用户提供一个简单高效的平台&#xff0c;帮助他们管理日常任务、提高工作效率。 1. Condution 的诞生背景 现如今&#xff0c;市面上存在着许多任务管理软件&#xff0c;但它们往往价格昂贵…

芒果YOLOv8改进169:即插即用 | 秩引导的块设计核心CIB结构,设计一种秩引导的块设计方案,旨在通过紧凑型架构设计减少被显示为冗余的阶段的复杂性

💡🚀🚀🚀本博客 秩引导的块设计,设计了一种秩引导的块设计方案,旨在通过紧凑型架构设计减少被显示为冗余的阶段的复杂性 :内含源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 文章目录 即插即用|秩引导的块设计|最新改进 YOLOv8 代码改进论文理论YOLO…

山洪灾害监测预警系统守护生命安全的新利器

一、概述 我国地域辽阔&#xff0c;地形地貌条件复杂且气候类型多样&#xff0c;每年5—9月为山洪灾害多发期&#xff0c;6—8月主汛期山洪及次生地质灾害更为集中。由于地理位置、气候条件、地貌特征、社会经济发展水平等成灾环境的不同&#xff0c;山洪灾害在发生时间、空间和…

Mixly UDP局域网收发数据

一、开发环境 软件&#xff1a;Mixly 2.0在线版 硬件&#xff1a;ESP32-C3&#xff08;立创实战派&#xff09; 固件&#xff1a;ESP32C3 Generic(UART) 测试工具&#xff1a;NetAssist V5.0.1 二、实现功能 ESP32作为wifi sta连接到路由器&#xff0c;连接成功之后将路由器…

仅49天!中科院2区SCI,发文量超2W,征稿范围广!

【欧亚科睿学术】 &#xff08;一&#xff09;期刊简介概况 【出版社】SPRINGER出版社 【期刊概况】IF&#xff1a;4.0-5.0&#xff0c;JCR2区&#xff0c;中科院2区 【版面类型】正刊&#xff0c;仅10篇版面 【预警情况】2020-2024年无预警记录 【收录年份】2008年被WOS…

【git】TortoiseGitPlink Fatal Error 解决方法

背景 使用 TortoiseGit报错&#xff1a; TortoiseGitPlink Fatal Error No supported authentication methods available (server sent: publickey) 解决方法 1、有很多是重置git的秘钥解决的 2、重置ssh工具

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第8章——可微性

第2 部分&#xff1a;数学分析中的基本概念 (Concepts in Analysis) 8. 可微性(Differentiability) 本章讨论梯度(gradients)/斜率(slopes)和切线(tangent)&#xff0c;指出常见的误解并解释如何避免这些误解。将可微性的定义与图形表示联系起来&#xff0c;展示如何将其应用…

[leetcode hot 150]第一百三十七题,只出现一次的数字Ⅱ

题目&#xff1a; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 由于需要常数级空间和线性时间复杂度…

论文Compiler Technologies in Deep Learning Co-Design: A Survey分享

目录 标题摘要引言背景深度学习软件和硬件的发展不同时期的协同设计深度学习协同设计系统神经网络架构设计和优化协同设计技术 用于协同设计的深度学习系统中的编译技术深度学习编译器TVM 生态系统和MLIR生态系统IR转换和优化代码生成运行时和执行模式 Buddy-Compiler: 一个针对…

[C++]基于C++opencv结合vibe和sort tracker实现高空抛物实时检测

【vibe算法介绍】 ViBe算法是一种高效的像素级视频背景建模和前景检测算法。以下是对该算法的详细介绍&#xff1a; 一、算法原理 ViBe算法的核心思想是通过为每个像素点存储一个样本集&#xff0c;利用该样本集与当前像素值进行比较&#xff0c;从而判断该像素是否属于背景…

问题:合规电动自行车国家标准是() #学习方法#媒体#经验分享

问题&#xff1a;合规电动自行车国家标准是&#xff08;&#xff09; A&#xff0e;必须有脚踏能实现人力骑行 B&#xff0e;最高设计车速不大于25km/h C&#xff0e;整车质量不大于55kg D&#xff0e;电机输出功率不大于240w 参考答案如图所示

【Python报错】已解决ModuleNotFoundError: No module named ‘timm’

成功解决“ModuleNotFoundError: No module named ‘timm’”错误的全面指南 一、引言 在Python编程中&#xff0c;经常会遇到各种导入模块的错误&#xff0c;其中“ModuleNotFoundError: No module named ‘timm’”就是一个典型的例子。这个错误意味着你的Python环境中没有安…

Windows系统中不同Java版本共存

Windows系统中不同Java版本共存的方法 在Windows系统中&#xff0c;有时我们需要同时运行多个Java应用&#xff0c;而这些应用可能依赖于不同版本的Java Development Kit (JDK) 或 Java Runtime Environment (JRE)。为了实现这种需求&#xff0c;我们需要在Windows中配置多个J…

『 Linux 』内存管理与文件系统

文章目录 交换分区页与页框(页帧)交换分区与内存之间的交换操作系统如何管理内存物理地址转换页号与页内偏移量 内存管理,文件系统与文件管理之间的联系 交换分区 在Linux的安装过程中,用户将会被提示创建一个交换分区; 这是一个特殊的分区,其大小可以由用户根据系统内存需求和…

Apache POI对Excel进行读写操作

1、什么是Apache POI ​ Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下&#xff0c;POI 都是用于操作 Excel 文件。 Apache POI 的应用场景&…

动手学深度学习4.6 暂退法-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;丢弃法_哔哩哔哩_bilibili 本节教材地址&#xff1a;4.6. 暂退法&#xff08;Dropout&#xff09;…

使用python把gif转为图片

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