【数学建模】排队论(最优化)
文章目录
- 一、算法介绍
- 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) 顾客总体(顾客源)数量 有限/无限 (2) 顾客到来的方式 单个/成批 (3) 顾客到达间隔时间 一般是服从某一概率分布(如指数分布) ...
- python建模仿真报告_Python|数学建模|排队论仿真
数模准备过程中,写了这种运筹学仿真的代码,虽然自己选了C题没有用到,但考虑到市面上存在的仿真代码较少,聊以为分享. 文档介绍 本文档使用了Python的离散事件仿真库对于排队论模型进行了仿真 仿真的主 ...
- 【数学建模】排队论-层次分析
排队论 这篇博客写的太好了,我就偷懒一点: 数学建模之排队论 排队论的一般模型: 这里要注意,分析清除排队论种的排队顾客具体是谁.19年国赛C的顾客就是汽车司机,不是乘客. 排队系统的组成和特征 一般 ...
- 【数学建模】线性规划模型MATLAB求解(最优化)
文章目录 一.算法介绍 二.适用问题 三.算法总结 1.可以转化为线性规划的问题 四.应用场景举例 1. 例1.1: 2. 解: 2. 例1.2: 2. 解: 五.MATLAB操作 六.实际案例(投资 ...
- 【数学建模】非线性规划模型与01规划模型(最优化)
文章目录 一.算法介绍 1. 01规划模型 二.适用问题 三.算法总结 四.应用场景举例 1.非线性规划模型 2.01规划模型 五.LINGO代码 1.非线性规划模型 2.01规划模型 六.实际案例 ...
- 【数学建模】种群竞争模型(最优化)
文章目录 一.算法介绍 二.适用问题 三.算法总结 1.竞争模型 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) 种群竞争模型主要针对数学建模问题中的一些小的子问题进 ...
- 【数学建模】模拟退火算法(最优化)
文章目录 一.算法介绍 1. 退火 2.物理退火 3.模拟退火算法思想 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) 模拟退 ...
- 【数学建模】图论模型-Floyd算法(最优化)
文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) Floyd算法主要针对数学建模问题中的一些小的子问题进 ...
- 【数学建模】图论模型-dijkstra算法(最优化)
文章目录 一.算法介绍 1. 带权邻接矩阵 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例(待完善) 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) dijkstra算法主要 ...
- 【数学建模】线性规划模型LINGO求解(最优化)
文章目录 一.算法介绍 二.适用问题 三.算法总结 四.应用场景举例(lingo求解) 五.LINGO代码 六.实际案例 七.论文案例片段(待完善) 线性规划模型主要针对数学建模问题中的一些小的子问题 ...
最新文章
- 身边的隐形富豪,都有哪些特征?
- 数据库系统概论:第九章 关系查询和关系优化
- LaTex 版面设计
- jquery 操作字符串、数组、对象常用方法
- 4. MyBatis几个可以优化的地方
- Android strings.xml中定义字符串显示空格
- python新建文件夹口令_python编程快速上手—口令保管箱
- (09)VHDL例化VHDL
- 【POJ】2454.Jersey Politics
- ASP.NET DEMO Ⅳ : 使用数据源控件将数据绑定到 ListControl 上
- ES6+webpack实现Counter
- mysql bigint 转int_技术分享 | MySQL ?删库不跑路(建议收藏)
- 渗透测试工具Nmap从初级到高级
- 购买计算机键盘,键盘安装步骤是怎样的 怎样选购电脑键盘
- shell换行合并多个文件_shell两个文件去重的多种姿势
- Linux下oracle数据库备份方案
- React项目实现导出PDF的功能
- 【拉灯君第三弹】母函数-HDU1085-泰山下的AC
- 《30天自制操作系统》-day2(MAC)
- 程序员如何提升自己的代码质量?