文章目录

  • 一、算法介绍
    • 1.算法介绍
    • 2.模型介绍
  • 二、适用问题
  • 三、算法总结
    • 1.M/M/1排队系统
    • 2.M/M/S排队系统
  • 四、应用场景举例
    • 1.M/M/1排队系统
    • 2.M/M/S排队系统1
    • 2.M/M/S排队系统2
  • 五、MATLAB代码
    • 1.M/M/1
    • 2.M/M/S
  • 六、实际案例
  • 七、论文案例片段(待完善)

排队论主要针对数学建模问题中的一些小的子问题进行求解,如果想直接使用请跳转至——
视频回顾

一、算法介绍

1.算法介绍

 排队论发源于上世纪初。当时美国贝尔电话公司发明了自动电话,以适应日益繁忙的工商业电话通讯需要。这个新发明带来了一个新问题,即通话线路与电话用户呼叫的数量关系应如何妥善解决,这个问题久久未能解决。
 1909年,丹麦的哥本哈根电话公司A. K.埃尔浪(Er lang)在热力学统计平衡概念的启发下解决了这个问题。
 (1)由于顾客到达和服务时间的随机性,现实中的排队现象几乎不可避免;
 (2)排队过程,通常是一个随机过程,排队论又称“随机服务系统理论”

2.模型介绍

  • 排队系统的要素

 (1)顾客输入过程;

 (2)排队结构与排队规则;

 (3)服务机构与服务规则;

  • 服务台(员)为顾客服务的顺序:
    a)先到先服务(FCFS);
    b)后到先服务(LCFS);
    c)随机服务;
    d)优先服务;
  • 到达间隔和服务时间典型分布
    (1)泊松分布M ;
    (2)负指数分布M ;
    (3)k阶爱尔朗分布Ek;
    (4)确定型分布D;
    (5)一般服务时间分布G;
  • 排队模型示例
    ——M/M/1,M/D/1,M/ Ek /1;
    ——M/M/c,M/M/c/∞/m,
    ——M/M/c/N/∞,。。。


  • 评价参数⭐⭐⭐
    ⭐1、队长与排队长
     (1)队长: 系统中的顾客数(n)期望值记为Ls ;
     (2)排队长: 系统中排队等待服务的顾客数;期望值记为Lq
    ⭐2、逗留时间与等待时间
     (1)逗留时间:指一个顾客在系统中的全部停留时间;期望值,记为Ws
     (2)等待时间:指一个顾客在系统中的排队等待时间;期望值,记为Wq
    Ws = Wq + E[服务时间]
    3、其他相关指标
     (1)忙期: 指从顾客到达空闲服务机构起到服务
    机构再次空闲的时间长度;
     (2)忙期服务量:指一个忙期内系统平均完成
    服务的顾客数;
     (3)损失率: 指顾客到达排队系统,未接受服务
    而离去的概率;
    ⭐ (4)服务强度:ρ= λ/sμ;


二、适用问题

  • 排队问题
  • 例如:

三、算法总结

1.M/M/1排队系统


2.M/M/S排队系统



四、应用场景举例

1.M/M/1排队系统



2.M/M/S排队系统1


2.M/M/S排队系统2


五、MATLAB代码

1.M/M/1

clear
clc
%*****************************************
%初始化顾客源
%*****************************************
%总仿真时间
Total_time = 10;
%队列最大长度
N = 10000000000;
%到达率与服务率
lambda = 10;
mu = 6;
%平均到达时间与平均服务时间
arr_mean = 1/lambda;
ser_mean = 1/mu;
arr_num = round(Total_time*lambda*2);
events = [];
%按负指数分布产生各顾客达到时间间隔
events(1,:) = exprnd(arr_mean,1,arr_num);
%各顾客的到达时刻等于时间间隔的累积和
events(1,:) = cumsum(events(1,:));
%按负指数分布产生各顾客服务时间
events(2,:) = exprnd(ser_mean,1,arr_num);
%计算仿真顾客个数,即到达时刻在仿真时间内的顾客数
len_sim = sum(events(1,:)<= Total_time);
%*****************************************
%计算第 1个顾客的信息
%*****************************************
%第 1个顾客进入系统后直接接受服务,无需等待
events(3,1) = 0;
%其离开时刻等于其到达时刻与服务时间之和
events(4,1) = events(1,1)+events(2,1);
%其肯定被系统接纳,此时系统内共有
%1个顾客,故标志位置1
events(5,1) = 1;
%其进入系统后,系统内已有成员序号为 1
member = [1];
for i = 2:arr_num
%如果第 i个顾客的到达时间超过了仿真时间,则跳出循环 if events(1,i)>Total_time break; else
number = sum(events(4,member) > events(1,i));
%如果系统已满,则系统拒绝第 i个顾客,其标志位置 0
if number >= N+1
events(5,i) = 0;
%如果系统为空,则第 i个顾客直接接受服务
else
if number == 0
%其等待时间为 02009.1516%PROGRAMLANGUAGEPROGRAMLANGUAGE
events(3,i) = 0;
%其离开时刻等于到达时刻与服务时间之和
events(4,i) = events(1,i)+events(2,i);
%其标志位置 1
events(5,i) = 1;
member = [member,i];
%如果系统有顾客正在接受服务,且系统等待队列未满,则 第 i个顾客进入系统 else len_mem = length(member);
%其等待时间等于队列中前一个顾客的离开时刻减去其到 达时刻
events(3,i)=events(4,member(len_mem))-events(1,i);
%其离开时刻等于队列中前一个顾客的离开时刻加上其服
%务时间
events(4,i)=events(4,member(len_mem))+events(2,i);
%标识位表示其进入系统后,系统内共有的顾客数
events(5,i) = number+1;
member = [member,i];
end
end end
end
%仿真结束时,进入系统的总顾客数
len_mem = length(member);
%*****************************************
%输出结果
%*****************************************
%绘制在仿真时间内,进入系统的所有顾客的到达时刻和离
%开时刻曲线图(stairs:绘制二维阶梯图)
stairs([0 events(1,member)],0:len_mem);
hold on;
stairs([0 events(4,member)],0:len_mem,'.-r');
legend('到达时间 ','离开时间 ');
hold off;
grid on;
%绘制在仿真时间内,进入系统的所有顾客的停留时间和等
%待时间曲线图(plot:绘制二维线性图)
figure;
plot(1:len_mem,events(3,member),'r-*',1: len_mem,events(2,member)+events(3,member),'k-');
legend('等待时间 ','停留时间 ');
grid on;

2.M/M/S


s=2;
mu=4;
lambda=3;
ro=lambda/mu;
ros=ro/s;
sum1=0;for i=0:(s-1)sum1=sum1+ro.^i/factorial(i);
endsum2=ro.^s/factorial(s)/(1-ros);p0=1/(sum1+sum2);
p=ro.^s.*p0/factorial(s)/(1-ros);
Lq=p.*ros/(1-ros);
L=Lq+ro;
W=L/lambda;
Wq=Lq/lambda;
fprintf('排队等待的平均人数为%5.2f人\n',Lq)
fprintf('系统内的平均人数为%5.2f人\n',L)
fprintf('平均逗留时间为%5.2f分钟\n',W*60)
fprintf('平均等待时间为%5.2f分种\n',Wq*60)

六、实际案例


七、论文案例片段(待完善)

【数学建模】排队论(最优化)相关推荐

  1. 数学建模——排队论笔记

    一.排队论的基本概念 排队的过程 基本组成--输入过程 (1) 顾客总体(顾客源)数量 有限/无限 (2) 顾客到来的方式 单个/成批 (3) 顾客到达间隔时间 一般是服从某一概率分布(如指数分布) ...

  2. python建模仿真报告_Python|数学建模|排队论仿真

    数模准备过程中,写了这种运筹学仿真的代码,虽然自己选了C题没有用到,但考虑到市面上存在的仿真代码较少,聊以为分享. 文档介绍 本文档使用了Python的离散事件仿真库对于排队论模型进行了仿真 仿真的主 ...

  3. 【数学建模】排队论-层次分析

    排队论 这篇博客写的太好了,我就偷懒一点: 数学建模之排队论 排队论的一般模型: 这里要注意,分析清除排队论种的排队顾客具体是谁.19年国赛C的顾客就是汽车司机,不是乘客. 排队系统的组成和特征 一般 ...

  4. 【数学建模】线性规划模型MATLAB求解(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1.可以转化为线性规划的问题 四.应用场景举例 1. 例1.1: 2. 解: 2. 例1.2: 2. 解: 五.MATLAB操作 六.实际案例(投资 ...

  5. 【数学建模】非线性规划模型与01规划模型(最优化)

    文章目录 一.算法介绍 1. 01规划模型 二.适用问题 三.算法总结 四.应用场景举例 1.非线性规划模型 2.01规划模型 五.LINGO代码 1.非线性规划模型 2.01规划模型 六.实际案例 ...

  6. 【数学建模】种群竞争模型(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1.竞争模型 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) 种群竞争模型主要针对数学建模问题中的一些小的子问题进 ...

  7. 【数学建模】模拟退火算法(最优化)

    文章目录 一.算法介绍 1. 退火 2.物理退火 3.模拟退火算法思想 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) 模拟退 ...

  8. 【数学建模】图论模型-Floyd算法(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) Floyd算法主要针对数学建模问题中的一些小的子问题进 ...

  9. 【数学建模】图论模型-dijkstra算法(最优化)

    文章目录 一.算法介绍 1. 带权邻接矩阵 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例(待完善) 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) dijkstra算法主要 ...

  10. 【数学建模】线性规划模型LINGO求解(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 四.应用场景举例(lingo求解) 五.LINGO代码 六.实际案例 七.论文案例片段(待完善) 线性规划模型主要针对数学建模问题中的一些小的子问题 ...

最新文章

  1. 身边的隐形富豪,都有哪些特征?
  2. 数据库系统概论:第九章 关系查询和关系优化
  3. LaTex 版面设计
  4. jquery 操作字符串、数组、对象常用方法
  5. 4. MyBatis几个可以优化的地方
  6. Android strings.xml中定义字符串显示空格
  7. python新建文件夹口令_python编程快速上手—口令保管箱
  8. (09)VHDL例化VHDL
  9. 【POJ】2454.Jersey Politics
  10. ASP.NET DEMO Ⅳ : 使用数据源控件将数据绑定到 ListControl 上
  11. ES6+webpack实现Counter
  12. mysql bigint 转int_技术分享 | MySQL ?删库不跑路(建议收藏)
  13. 渗透测试工具Nmap从初级到高级
  14. 购买计算机键盘,键盘安装步骤是怎样的 怎样选购电脑键盘
  15. shell换行合并多个文件_shell两个文件去重的多种姿势
  16. Linux下oracle数据库备份方案
  17. React项目实现导出PDF的功能
  18. 【拉灯君第三弹】母函数-HDU1085-泰山下的AC
  19. 《30天自制操作系统》-day2(MAC)
  20. 程序员如何提升自己的代码质量?

热门文章

  1. 德赛西威280b升级_车载导航刷机:德赛西威NAV280H固件升级
  2. oracle可视化操作界面——plsql dev安装配置与使用
  3. 机器学习(Machine Learning)深度学习(Deep Learning)较全面的资料
  4. binary 和 varbinary 用法全解
  5. Axure9学习笔记1:介绍及安装
  6. PaddleOCR实现车牌识别系统
  7. R语言软件版本自动更新
  8. cad转dxf格式文件太大_如何将DWG DXF互转,一招教你解决难题
  9. tkinter 界面设计工具
  10. 1024 科学计数法(C语言详解)