【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】

举报
海神之光 发表于 2022/05/29 02:19:52 2022/05/29
【摘要】 一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证...

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【数学建模】基于matlab银行多机排队论模型【含Matlab源码 1096期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、案例简介

1 问题重述
排队叫号机已经融入到了银行服务中,但是最近在广州出现的银行不使用排队机进行叫号却让人感觉非常奇怪,以至于有时排队长达10米。到底是排队的效率高还是叫号的效率高呢?这是一个值得众多商家和用户思考的一个问题,不要我们使用了排队系统,反而降低了效率,那就适得其反了。
银行方面对此回应是排队比叫号效率高可避免“飞号”现象,但来办业务的众多老人都表示长久站立有些吃不消。某银行支行人士告诉记者,银行采用“叫号”服务是想减少储户排队之苦,还可避免储户信息外泄等。但是,在实际操作中他们发现,不少市民在拿到号后去买菜、逛商场,造成“飞号”现象频繁发生,甚至引起其他客户不满和不必要的纠纷。对此我们有必要采集有效数据,从顾客满意率、银行成本、服务内容等出发,建立模型分析此网点应该如何设置服务窗口开放情况(可另行收集或合理假设需要的数据)。分析两种系统的服务效率(叫号服务系统、排队服务系统),你是否有更加合理的服务系统可以建议。
题目提供的数据:某银行大型网点约4个月(18个完整周)全部工作日各时段顾客的到达总人数和周内各天到达总人数分布(见表1、2所示):
注:该银行的营业时间为8:00am-6:00pm
表1 全部工作日各时间段顾客的到达人数分布
时间 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00
人数 1608 5876 7202 5592 4313 3828 7321 7134 4128 2354
表2 全部工作日到达总人数周内分布
日期 周一 周二 周三 周四 周五 周六 周日
人数 9183 8327 8232 7067 8886 3866 3795

2 问题的分析
基于在银行服务系统中涉及到的客户满意率、银行成本、服务内容等直接联系到整个服务系统良好的运营。因此通过采集、查阅银行服务系统中的有关数据(如:客户单位时间内的平均到达率、客户单位时间内的平均服务率,客户等待极限时间等)进行分析研究,拟合出数据呈现的规律或概率;再根据银行采用的不同运营方式(如:单对排队多个窗口、多对排队多个窗口、叫号服务等)。可以拟合出在银行服务系统中的客户等待时间、客户队列长、客服业务办理时间等随机事件的规律或概率,而这些拟合出来的规律或概率对在考虑银行成本情况下,应该采用何种服务系统来提高客户满意率,服务效率提供了可行的参考。

2.1 有用数据[1]的收集
(1)对银行的客户到达情况进行统计,统计了某银行大型网点月4个月全部工作日个时段顾客到达总人数和周内各天到达总人数分布(试题材料提供的数据);
(2)客户办理不同业务所需时间的统计并整合出客户办理业务所需时间的最大概率的时间范围,算出每个窗口的平均服务率;
(3)对当地银行进行观察,并采样数据,可得出该营业厅的平均服务率,实际平均到达率的得出以便后面模型的实际检验。
2.2 数据规律的研究及排队理论
(1) 运用数学软件MATLAB编程对收集到的数据进行分析,得出数据布规律(如:在排队系统中顾客的人流量一般服从泊松分布或爱尔朗分布;客户服务时间一般服从定长分布或负指数分布等);
(2)查阅相关文献,学习并掌握排队理论[1]知识。
2.3 拟合各分块的数学模型实现优化
(1)先对不同银行服务系统(排队或叫号)建立不同的数学模型得出影响系统服务好坏因素的数学表达式;
(2)比较影响系统服务好坏因素的数学表达式在相同量纲和同等条件下的同种因素的数据;
(3)对两种服务系统下的数学模型进行拟合,实现优化。
2.4 模型实际运用
(1)根据实际数据代入数学模型计算得出相应数值,这些数值则反映出服务系统的服务效率;
(2)对相应数值分析比较,比较出在何种服务系统中的服务效率高;
2.5 模型的进一步分析
(1)根据已建立的模型和检验数据,并结合实际情况,假设更多的实际因素代入到模型中去,实现模型的进一步优化。

3 模型假设
1、顾客中没有插队现象的发生。
2、顾客一旦进入队伍中就不会中途离开。
3、窗口进行服务时,排除因为意外情况的发生而影响到的服务时间。
4、叫号系统中一旦顾客发生“飞号”现象,则不予给该顾客提前服务,得再
取号等候。
5、各窗口服务时间基本一致,不考虑各窗口工作人员自身原因引起的服的改变。
6、窗口数量为考虑银行成本的主要因素。
7、本模型只考虑工作日银行的人流数量,排除特别节假日时期的情况。
8、周一至周五每日的人流量可以看同等分布。
9、窗口服务时间服从均匀分布。

4 符号说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、部分源代码

arrivetime=[cumsum(ones(300,1)),sort(randi([0,479],300,1))+rand(300,1)];%到达时间
servetime=[cumsum(ones(300,1)),abs(random('norm',5,3,300,1))];%服务时间
iii=sum(servetime(:,2));
start=cell(1,3);%服务开始时间
finish=cell(1,3);
waittime=cell(1,3);
L=cell(1,3);%队长
T=cell(1,3);%'number','arrivetime','waittime','start','servetime','finish','line'
    
   %首先排三个任务

t=randperm(3);%随即进行机器选择
for j=1:3
    waittime{t(j)}(1,:)=[j,0];
    start{t(j)}(1,:)=arrivetime(j,:);
    finish{t(j)}(1,:)=[j,start{t(j)}(2)+servetime(j,2)];
    L{t(j)}(1,:)=[j,0];
    T{t(j)}=[T{t(j)};[j,arrivetime(j,2),waittime{t(j)}(end,2),start{t(j)}(end,2),servetime(j,2),finish{t(j)}(end,2), L{t(j)}(end,2)]];
end

for i=4:300
 


        for j=1:3%求出3台机器的等待时间,取等待时间最小的机器
            if arrivetime(T{j}(end,1),2)+servetime(T{j}(end,1),2)+waittime{j}(end,2)>arrivetime(i,2)
            time(j)=arrivetime(T{j}(end,1),2)+servetime(T{j}(end,1),2)+waittime{j}(end,2)-arrivetime(i,2);


            else
            time(j)=0;
%         start(i)=arrivetime(i);
%         finish(i)=start(i)+servetime(i);
            end
        end
        [a,b]=min(time);%a为最小等待时间,b为等待时间最小的机器
        waittime{b}(end+1,:)=[i,a];
        start{b}(end+1,:)=[i,arrivetime(i,2)+waittime{b}(end,2)];
        finish{b}(end+1,:)=[i,start{b}(end,2)+servetime(i,2)];
        
        for j=length(waittime{b}(:,1))-1:-1:1
                if j==1
                 L{b}(end+1,:)=[i,length(waittime{b}(:,1))-j]; break;
                elseif arrivetime(i,2)>finish{b}(j,2)
                 L{b}(end+1,:)=[i,length(waittime{b}(:,1))-j-1];break;
                end
                
        end
        T{b}=[T{b};[i,arrivetime(i,2),waittime{b}(end,2),start{b}(end,2),servetime(i,2),finish{b}(end,2), L{b}(end,2)]];
end
 for i=1:3
% T{i}=[]
workload(i)=sum(T{i}(:,5));
wastetime(i)=finish{i}(end,2)-start{i}(1,2)-workload(i);
meanwaittime(i)=mean(waittime{i}(:,2)); 
meanline(i)=mean(L{i}(:,2));

end

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李昕.MATLAB数学建模[M].清华大学出版社.2017
[2]王健,赵国生.MATLAB数学建模与仿真[M].清华大学出版社.2016
[3]余胜威.MATLAB数学建模经典案例实战[M].清华大学出版社.2015

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/118485010

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。