无线传感器网络:排队论(Queueing Theory)模型

news2024/11/16 11:24:57

文章目录

  • The arrival Process
  • Queueing System
    • The M/M/1 queue
    • The M/M/1/N queue
  • References


排队理论已被用于评估通信网络的性能很多年了。早在1917年,丹麦数学家 Erlang 就将该理论用于电话交换机的设计,并开创了现在著名的 Erlang-B 和 Erlang-C 公式,从那时起,这些公式就被用于许多应用中。自从引入分组交换后,排队论在通信网络的设计和分析中的重要性更加不言而喻。

The arrival Process

任何分组交换通信网络模型的第一个要求是对进入系统的数据包进行建模。最常见的方法是使用泊松过程。泊松过程对进入到网络的数据包的时间分布有很好的建模。

我们考虑一个时间间隔 Δ t \Delta t Δt Δ t → 0 \Delta t \to 0 Δt0。那么可以用以下三点来定义一个泊松到达过程:

  • Δ t \Delta t Δt 中有包到达的可能性: P ( o n e   a r r i v a l ) ≜ λ Δ t + O ( Δ t ) P({\rm one\ arrival}) \triangleq \lambda \Delta t+O(\Delta t) P(one arrival)λΔt+O(Δt)
    • 其中, λ Δ t ≪ 1 \lambda \Delta t \ll 1 λΔt1 λ \lambda λ 是一个比例常数, O ( Δ t ) O(\Delta t) O(Δt) 表示 Δ t \Delta t Δt 中可忽略的高阶项。例如,如果 Δ t = 1 0 − 6 \Delta t=10^{-6} Δt=106 s,那么 ( Δ t ) 2 = 1 0 − 12 (\Delta t)^2=10^{-12} (Δt)2=1012 s 就是一个高阶项,和 Δ t \Delta t Δt 比起来完全可以忽略。

  • Δ t \Delta t Δt 中无包到达的可能性: P ( n o   a r r i v a l ) = 1 − λ Δ t + O ( Δ t ) P({\rm no\ arrival}) = 1- \lambda \Delta t+O(\Delta t) P(no arrival)=1λΔt+O(Δt)

  • 包的到达是无记忆性的(memoryless)。也就是说,在每个 Δ t \Delta t Δt 包的到达与否都是互相独立的。

如果我们不考虑高阶项,那么公式就简化为

P ( o n e   a r r i v a l ) = λ Δ t P ( n o   a r r i v a l ) = 1 − λ Δ t P({\rm one\ arrival}) = \lambda \Delta t \\ P({\rm no\ arrival}) = 1- \lambda \Delta t P(one arrival)=λΔtP(no arrival)=1λΔt

现在我们有一个大的时间区间 T T T,将它再分成 n n n 个小区间,每个小区间为 Δ t = T / n \Delta t =T/n Δt=T/n。然后我们可以用伯努利分布算出 T T T 时间内有 k k k 个到达的概率:
P ( k   a r r i v a l s   i n   T ) = P ( k ) = ( n k ) ( λ Δ t ) k ( 1 − λ Δ t ) n − k P({\rm k\ arrivals\ in\ T})=P(k)=\binom{n}{k}( \lambda \Delta t)^k(1- \lambda \Delta t)^{n-k} P(k arrivals in T)=P(k)=(kn)(λΔt)k(1λΔt)nk

我们将 ( n k ) \binom{n}{k} (kn) 写开成 n ! ( n − k ) ! k ! \frac{n!}{(n-k)!k!} (nk)!k!n!,且将 Δ t = T / n \Delta t =T/n Δt=T/n 代入得到

P ( k ) = ( λ T ) k k ! ( 1 − λ T n ) n n ( n − 1 ) . . . ( n − k + 1 ) n k ( 1 − λ T n ) − k P(k) = \frac{(\lambda T)^k}{k!}\left(1-\frac{\lambda T}{n}\right)^n \frac{n(n-1)...(n-k+1)}{n^k}\left(1-\frac{\lambda T}{n}\right)^{-k} P(k)=k!(λT)k(1nλT)nnkn(n1)...(nk+1)(1nλT)k

n → ∞ n\to \infty n,那么

( 1 − λ T n ) n → e − λ T \left(1-\frac{\lambda T}{n}\right)^n \to e^{-\lambda T} (1nλT)neλT

n ( n − 1 ) . . . ( n − k + 1 ) n k → 1 \frac{n(n-1)...(n-k+1)}{n^k} \to 1 nkn(n1)...(nk+1)1

( 1 − λ T n ) − k → 1 \left(1-\frac{\lambda T}{n}\right)^{-k} \to 1 (1nλT)k1

因此公式简化为

P ( k ) = ( λ T ) k k ! e − λ T , k = 0 , 1 , 2 , … , ∞ P(k)=\frac{(\lambda T)^k}{k!}e^{-\lambda T},\quad k=0, 1, 2,\dots, \infty P(k)=k!(λT)keλT,k=0,1,2,,

这不就是泊松分布嘛!

泊松分布的均值大家应该也知道,所以 T T T 时间内包平均到达的数量即为 λ T \lambda T λT


Queueing System

一个排队系统通常可以用肯德尔记号(Kendall’s notation)来描述。肯德尔记号的形式形如 a/b/c/d/e 共五个字段,它们分别代表
a: arrival process
b: service process
c: number of servers
d: system capacity
e: maximum number of potential customers

a 的描述符有:
  • M:代表 memoryless,每个到达的间隔时间是指数分布的,例如我们上面讨论的泊松过程
  • D:代表 deterministic,每个到达的间隔时间是常数
  • G:代表 general,包含所有的 arrival process
  • Geo:代表 geometric,离散的指数间隔时间分布

第二个字段,b,可以用第一个字段中使用的任何描述符来代替,只是这些描述符现在描述的是 service process 而不是 arrival process。

第三个字段,显而易见,用正整数来表示。第四个和第五个字段也是使用正整数。如果这些字段中的某个忽略不写,那么会默认为无穷。

例如 M/M/1 表示:泊松过程、指数服务时间、单个服务器、无穷客户数量、潜在的无穷客户数量。

Geo/D/1//N 表示:geometric 分布的到达时间、确定的服务时间(固定大小的包)、单个服务器、无穷客户数量、最大的潜在客户数量 N


The M/M/1 queue

对于 M/M/1 队列,我们假设到达速率为 λ \lambda λ,服务速率为 μ \mu μ,队列的状态为队列中等候服务的“客户”(包)数量。我们可以画出描述这个队列的状态转移图:

在这里插入图片描述

当处于状态 0 时,队列是空的,一个到达可能以 λ Δ t \lambda \Delta t λΔt 的概率发生。

在状态 1 中,队列中有一个客户,这个客户可以以 μ Δ t \mu \Delta t μΔt 的概率得到服务,在这种情况下,队列返回状态 0。或者这时有一个到达,队列会进入状态 2。

根据上面的分析,状态 k 和状态 k+1 之间的关系为

λ P ( k ) = μ P ( k + 1 ) , k ≥ 0 \lambda P(k) = \mu P(k+1),\quad k \ge 0 λP(k)=μP(k+1),k0

我们将 λ / μ \lambda/\mu λ/μ 写为 ρ \rho ρ,所以有

P ( k + 1 ) = ρ P ( k ) , k ≥ 0 P(k+1) = \rho P(k),\quad k \ge 0 P(k+1)=ρP(k),k0

我们从 k = 0 k=0 k=0 开始代入,会发现如下规律:

P ( k ) = ρ k P ( 0 ) , k ≥ 0 P(k) = \rho^kP(0),\quad k \ge 0 P(k)=ρkP(0),k0

将此式代入 ∑ k = 0 ∞ P ( k ) = 1 \sum_{k=0}^\infty P(k)=1 k=0P(k)=1 中,有

P ( 0 ) ∑ k = 0 ∞ ρ k = 1 P(0)\sum_{k=0}^\infty \rho^k=1 P(0)k=0ρk=1

式中的无穷等比数列由公式很容易算出,因此我们可以计算出 P ( 0 ) = 1 − ρ P(0)=1-\rho P(0)=1ρ.

所以最终得出

P ( k ) = ρ k ( 1 − ρ ) , k ≥ 0 P(k) = \rho^k(1-\rho),\quad k \ge 0 P(k)=ρk(1ρ),k0

平均吞吐量(Mean Throughput):平均吞吐量被定义为单位时间内通过系统的平均客户数量。

因为我们的服务速率为 μ \mu μ,所以平均吞吐量为
S = μ ∑ k = 1 ∞ P ( k ) = λ S = \mu \sum_{k=1}^\infty P(k) = \lambda S=μk=1P(k)=λ

平均系统延迟(mean system delay):平均系统延迟被定义为一个客户从进入系统到服务完毕离开系统的时间。我们通常通过 Little’s result 间接计算平均系统延迟。

Little’s result 表明,系统的平均客户数量等于到达速率和平均系统延迟的乘积:
L = λ W L=\lambda W L=λW

而平均客户数量的计算如下:
L = ∑ k = 0 ∞ k P ( k ) = ρ ( 1 − ρ ) ∑ k = 1 ∞ k ρ k − 1 L = \sum_{k=0}^\infty kP(k)=\rho(1-\rho)\sum_{k=1}^\infty k\rho^{k-1} L=k=0kP(k)=ρ(1ρ)k=1kρk1

假设 ρ < 1 \rho < 1 ρ<1,也就是说服务速率大于到达速率,那么以上公式可以简化为
L = ρ 1 − ρ L = \frac{\rho}{1-\rho} L=1ρρ

所以平均系统延迟可以相应被表示为
W = L λ = 1 μ − λ W=\frac{L}{\lambda}=\frac{1}{\mu-\lambda} W=λL=μλ1


补充:
∑ n = 0 ∞ x n = 1 1 − x \sum_{n=0}^\infty x^n=\frac{1}{1-x} n=0xn=1x1

∑ n = 1 ∞ n x n = x ( 1 − x ) 2 \sum_{n=1}^\infty nx^n=\frac{x}{(1-x)^2} n=1nxn=(1x)2x


The M/M/1/N queue

M/M/1/N 队列与 M/M/1 队列相同,只是它的客户容量为有限值 N,因此状态转移图必须被修改为只有 0 到 N 共 N+1 个状态。

在这里插入图片描述

M/M/1/N queue 的公式推导与 M/M/1 基本一致,我们直接给出如下结果:
P ( k ) = { ρ k 1 − ρ 1 − ρ N + 1 , ρ ≠ 1 ρ k N + 1 , ρ = 1 P(k)=\left\{ \begin{aligned} \rho^k\frac{1-\rho}{1-\rho^{N+1}},\quad \rho \neq 1 \\ \frac{\rho^k}{N+1}, \quad \rho=1 \end{aligned} \right. P(k)=ρk1ρN+11ρ,ρ=1N+1ρk,ρ=1

因缓存满而丢包的概率:
P L = P ( N ) = { ρ N ( 1 − ρ ) 1 − ρ N + 1 , ρ ≠ 1 1 N + 1 , ρ = 1 P_L=P(N)=\left\{ \begin{aligned} \frac{\rho^N(1-\rho)}{1-\rho^{N+1}},\quad \rho \neq 1 \\ \frac{1}{N+1}, \quad \rho=1 \end{aligned} \right. PL=P(N)=1ρN+1ρN(1ρ),ρ=1N+11,ρ=1

平均吞吐量:
S = λ ( 1 − P L ) S=\lambda(1-P_L) S=λ(1PL)

平均系统延迟:
W = L S = 1 S ∑ k = 0 N k P ( k ) W=\frac{L}{S}=\frac{1}{S}\sum_{k=0}^NkP(k) W=SL=S1k=0NkP(k)


References

Digital Communications, by Ian Glover, Dr Peter Grant. Chapter 19.

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

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

相关文章

DevData Talks | 知乎艾辉:从工具建设到运营,千人团队研发提效最佳实践

在千人级别的组织层级提升研发效能&#xff0c;是一种什么体验&#xff1f;可以确定的是&#xff0c;千人级组织的效能提升&#xff0c;并不是百人级团队的等比放大。 在数十人乃至小百人的团队&#xff0c;统一规范研发工具与流程的门槛相对较低&#xff0c;参与方也比较简单…

07 索引

1.索引 概述 1. 简介 索引是一种帮助数据库高效获取数据的数据结构&#xff1b;通过索引可以快速获取到符合条件的数据的内存地址&#xff0c;避免全表扫描 2. 索引的优缺点 优点&#xff1a; 可以快速地检索数据&#xff0c;降低数据IO成本通过索引可以对数据进行排序&…

jenkins 共用宿主机中的docker自动化部署

目录 第一节 jenkins 共用宿主机中的docker自动化部署 1.docker命令安装启动jenkins 2.查询jenkins内是否可以执行宿主机中的docker 第二节.jenkins 配置自动化部署 1.界面配置 1.配置mave 2.配置gitee 第三节 创建springboot多模块项目 1.相关配置 1.pom 2.编写docke…

【面试题】作用域和闭包

1. 作用域 作用域是指变量的合法使用范围。 例如下图中&#xff0c;函数fn3内定义的变量a3&#xff0c;无法在函数fn3以外的区域使用。 作用域分为全局作用域&#xff0c;函数作用域&#xff0c;块级作用域&#xff08;ES6新增&#xff09; 全局作用域&#xff1a;变量没有受…

HTML+CSS+JS个人网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

MYSQL索引数据结构----B+树

索引数据结构的考量 我们在考虑数据结构的时候&#xff0c;应该首先要知道数据存放在哪里&#xff1f; 而MYSQL的数据是持久化的&#xff0c;所以其数据&#xff08;数据记录索引&#xff09;应该是保存在磁盘里面的。因此当我们要查询某条数据记录时&#xff0c;就会先从磁盘…

[附源码]计算机毕业设计JAVA某城市参军和退役军人信息管理系统

[附源码]计算机毕业设计JAVA某城市参军和退役军人信息管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff…

一文理解Linux的基本指令(三分钟学会Linux基本指令)

前沿&#xff1a; 本文小马将把Linux一般比较常见的指令给大家一一列举出来&#xff0c;为了大家忘记某些指令后&#xff0c;可以方便查询记忆&#xff0c;再次小马建议&#xff0c;Linux指令并不需要去特别花时间专门记忆&#xff0c;只需要多进行操作实现就行&#xff01; &a…

算法图解学习3 选择排序

random recording 随心记录 What seems to us as bitter trials are often blessings in disguise. 看起来对我们痛苦的试炼&#xff0c;常常是伪装起来的好运。 选择排序 内存工作原理 背景引入 假设你去看演出&#xff0c;需要将东西寄存。寄存处有一个柜子&#xff0c;柜子…

Go | 函数注意事项

细节汇总 函数的形参列表可以是多个&#xff0c;返回值列表也可以是多个形参列表和返回值列表的数据类型&#xff0c;可以是值类型、也可以是引用类型函数的命名遵循标识符命名规范&#xff0c;首字母不能是数字&#xff0c;首字母大写表示该函数可以被本包文件和其它文件使用…

在线就能设计电商主图的智能平台工具

商品要上新要如何设计新品主图&#xff1f;想设计简约分的主图素材在哪&#xff1f;下面小编教你使用这个在线工具乔拓云&#xff0c;工具内包含了设计主图用到的所有工具&#xff0c;还有海量的电商模板以及免扣素材&#xff0c;都是可以直接使用到主图设计中&#xff0c;不需…

Linux中线程的介绍

目录 一.线程概念 1.什么是线程 二.Linux进程与线程 三.pthread库 3.1线程创建 3.2线程等待 3.2线程终止 3.4分离线程 四.线程ID及进程地址空间布局 一.线程概念 1.什么是线程 1.在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&…

2022亚太杯建模B题思路 : 高速列车的优化设计 小美赛数学建模 B题思路

1 B题&#xff1a;高速列车的优化设计 2022年4月12日&#xff0c;中国高铁复兴CR450多机组成功实现单列列车速度435 km/h&#xff0c;相对速度870 km/h&#xff0c;创造了高铁多机组列车穿越明线和隧道速度的世界纪录。新一代标准动车组“复兴”是中国自主研发的具有全知识产权…

外贸线上推广引流的技巧

外贸网站建成后&#xff0c;很多外贸企业通常会面临一个重要的问题。网站装修和产品布局都很漂亮&#xff0c;但是流量很小。由此可见&#xff0c;外贸网站的引流推广是非常重要的。接下来&#xff0c;米贸搜给大家分享一些外贸网站引流推广的技巧&#xff0c;让网站快速获得流…

浙里办微信小程序上架

一、概述 本指南旨在为“浙里办”单点登录组件提供接入指南&#xff0c;“浙里办”单点登陆组件&#xff0c;上架在IRS&#xff0c;为上架在IRS的应用&#xff0c;提供统一的单点登录解决方案&#xff0c;现阶段仅支持微信端的接入。 二、服务创建 IRS 应用管理员在 IRS 应用…

Kali系统MSF模块暴力破解MySQL弱口令漏洞

一、实验环境 1.攻击方&#xff1a; 攻击环境使用KALI系统&#xff08;使用虚拟机搭建&#xff09;的Metasploit模块&#xff0c;msfconsole是metasploit中的一个工具&#xff0c;它集成了很多漏洞的利用的脚本&#xff0c;并且使用起来很简单的网络安全工具。 这里要特别强…

代码随想录64——额外题目【哈希表、字符串】:205同构字符串、1002查找常用字符、925长键按入、844比较含退格的字符串

文章目录1.205同构字符串1.1.题目1.2.解答2.1002查找常用字符2.1.题目2.2.解答3.925长键按入3.1.题目3.2.解答4.844比较含退格的字符串4.1.题目4.2.解答4.2.1.使用栈4.2.2.从后往前双指针1.205同构字符串 参考&#xff1a;代码随想录&#xff0c;205同构字符串&#xff1b;力扣…

MySQL数据库的索引

文章目录一、索引是什么&#xff1f;索引的作用二、索引的使用查看索引创建索引删除索引三、索引的底层一、索引是什么&#xff1f; 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引&#xff0c;并指定索引的类型&#…

[附源码]java毕业设计医疗预约系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SQL注入原理、过程、防御方案、RASP概念

一、sql注入原理 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的语句上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息…