管理信息系统课程设计报告书.docx

上传人:b****1 文档编号:1262941 上传时间:2022-10-19 格式:DOCX 页数:28 大小:153.34KB
下载 相关 举报
管理信息系统课程设计报告书.docx_第1页
第1页 / 共28页
管理信息系统课程设计报告书.docx_第2页
第2页 / 共28页
管理信息系统课程设计报告书.docx_第3页
第3页 / 共28页
管理信息系统课程设计报告书.docx_第4页
第4页 / 共28页
管理信息系统课程设计报告书.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

管理信息系统课程设计报告书.docx

《管理信息系统课程设计报告书.docx》由会员分享,可在线阅读,更多相关《管理信息系统课程设计报告书.docx(28页珍藏版)》请在冰豆网上搜索。

管理信息系统课程设计报告书.docx

管理信息系统课程设计报告书

XXX工学院

课程设计报告

作者:

XXX

学号:

XXX

学院:

XXXX

专业:

XXXX

课程:

管理信息系统模拟

指导教师:

XXXX

 

2016

12

1背景知识阐述

离散系统模拟是指系统状态仅在某些确定的时间点(由系统结构决定)才发生变化的模拟,其模拟时间呈现离散性变化,系统状态在时间点之间不变化。

2问题简介与分析

2.1离散系统模拟

(1)单服务台排队系统(M/M/1)模拟分析与设计

(2) 有顾客损失的多服务台排队系统(M/M/S)模拟分析与设计

2.2连续系统模拟

(1) 捕食者与被捕食者模型模拟分析与设计

(2)网民数量扩散模型(BASS模型)模拟分析与设计

2.3多智能体系统模拟

(1) 萤火虫优化系统模拟

(2) 蚁群优化系统模拟

3模拟系统与程序的分析与设计

3.1离散系统

3.1.1单服务台排队系统(M/M/1)模拟分析与设计

已知顾客到达时间和服务时间的统计规律(通常来自实际数据或一定的概率分布)的情况下,如何仿真该排队系统。

系统假设:

(1)顾客源是无穷的;

(2)排队长度没有限制;

(3)到达系统的顾客按先后顺序依次进入服务。

已知条件:

(1)顾客到达时间间隔ki服从均值为βi的指数分布,即:

(2)服务员服务时间ks服从均值为βs的指数分布,即:

试对该单服务台排队系统进行分析、设计、模拟,并给出

(1)βi=5min,βs=4min;

(2)βi=5min,βs=5min;

(3)βi=4min,βs=5min;

三种情况下的模拟结果(到达顾客数、服务顾客数、平均等待时间、平均服务

时间、平均队长)。

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%

一、系统分析

系统状态:

在任意时刻t

(1)排队等候的顾客数目L(t);

(2)服务员工作状态S(t)。

引起系统状态改变的行为称为事件,在排队系统中包含两类基本事件:

(1)顾客到达事件ak;

(2)顾客离去事件dk。

模拟时钟:

因为系统状态在ak、dk时刻发生改变,所以在模拟系统运行中,设

置时钟t,让t依事件发生的先后顺序,从一个事件的发生时刻推进到下一个事件的发生时刻。

变量设置:

(1)ik:

第k位顾客与第k-1位顾客到达时间间隔;

(2)sk:

第k位顾客服务时间;

(3)L(t):

排队等待的顾客数目;

(4)S(t):

服务员工作状态;

(5)ak:

第k位顾客到达时刻;ak=ak-1+ik(k=1,2,…)

(6)dk:

第k位顾客离去时刻;dk=max{ak,dk-1}+sk(k=1,2,…)

模拟过程分析:

(1)先根据时间间隔i和服务时间s的概率分布生成随机数ik、sk;

(2)再计算顾客到达时刻ak和离开时刻dk;ak=ak-1+ik

dk=max{ak,dk-1}+skk=1,2,…

(3)让时钟t按照到达时刻ak和离开时刻dk从小到大的顺序推进。

注意:

通常不是先生成i或s待用,而是时钟t推进到某一事件发生时,才生成

所需的i或s。

(4)设当前时钟为t,在每一个事件发生时,需要设置并记录4个数值:

L(t):

排队等待的顾客数目;

S(t):

服务员工作状态;

下一个顾客到达事件的发生时刻:

ARRIVETIEM

下一个顾客离开事件的发生时刻:

DEPARTTIME

二、单服务台排队系统模拟源程序:

functionout=MM1(mu1,mu2,T)%单服务台模拟系统

%mu1-顾客到达时间间隔服从指数分布;

%mu2-服务时间服从指数分布;

%T-模拟终止时刻

%----------------------初始化----------------------------------------------

t=0;%当前时间

tt=[t];%tt-时间序列

L=0;%L-队长

LL=[L];%LL-队长序列

S=0;%S-服务员状态

c=[];%c-顾客到达时间序列

b=[];%b-服务开始时间序列

e=[];%e-顾客离开时间序列

a_count=0;%a_count-到达顾客数

b_count=0;%b_count-服务顾客数

ARRIVETIME=0;%顾客到达事件

DEPARTTIME=0;%顾客离开事件

%----------------------模拟过程--------------------------------------------

whilet<=T

if(ARRIVETIME

t=ARRIVETIME;

if(S==0)%服务台空闲,开始服务

S=1;

s=exprnd(mu2);%生成服务时间

b_count=b_count+1;%更新服务顾客数

DEPARTTIME=t+s;%顾客离开时间

b=[b,t];%记录顾客开始服务时间

e=[e,DEPARTTIME];%记录顾客离开时间

else%若服务台忙

L=L+1;%更新队长

end

i=exprnd(mu1);%生成下一顾客到达时间

ARRIVETIME=t+i;%下一顾客到达时间

c=[c,ARRIVETIME];%记录顾客到达时间

a_count=a_count+1;%更新到达顾客数

else%顾客离开子过程

t=DEPARTTIME;

if(L>0)%有排队的顾客

L=L-1;%更新队长

s=exprnd(mu2);%生成服务时间

b_count=b_count+1;%更新服务顾客数

b=[b,t];%记录顾客开始服务时间

DEPARTTIME=t+s;%顾客离开时间

e=[e,DEPARTTIME];%记录顾客离开时间

else%若没有排队的顾客,更新服务台为空闲状态

S=0;

DEPARTTIME=T;

end

end

tt=[tt,t];

LL=[LL,L];

end

%----------------------模拟结果--------------------------------------------

length(e);length(c);

Ws=sum(e-c(1:

length(e)))/length(e);%平均逗留时间

Wb=sum(e-b(1:

length(e)))/length(e);%平均服务时间

Ls=sum(diff([tt,T]).*LL)/T;%平均队长

fprintf('到达顾客数:

%d\n',a_count)%到达顾客数

fprintf('服务顾客数:

%d\n',b_count)%服务顾客数

out=[Ws,Wb,Ls];

end

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%

3.1.2有顾客损失的多服务台排队系统(M/M/S)模拟分析与设计

在该排队系统中,有多个服务台s。

顾客逐个到达系统,已知顾客到达时间

间隔是随机的,服从指数分布。

顾客在服务台的服务时间也是随机的,且服从

指数分布。

当有服务台空闲时,顾客接受服务;若排队顾客数超过k,则新到达

的顾客离去,问如何仿真该排队系统。

系统假设:

(1)顾客源是无穷的;

(2)到达系统的顾客按先后顺序依次进入服务。

已知条件:

(1)顾客到达时间间隔ki服从均值为βi的指数分布,即:

(2)服务员服务时间ks服从均值为βs的指数分布,即:

试对该多服务台排队系统进行分析、设计、模拟,并给出

(1)s=2,k=5,βi=5min,βs=4min;

(2)s=2,k=4,βi=3min,βs=5min;

(__________3)s=2,k=6,βi=2min,βs=5min;

三种情况下的模拟结果(到达顾客数、服务顾客数、平均等待时间、平均服务

时间、平均队长)。

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%

有顾客损失的多服务台单服务台排队系统模拟源程序:

functionout=MMS(s,k,mu1,mu2,T)

%多服务台排队系统模拟

%s-服务台个数

%k-最大顾客等待数

%mu1-顾客到达时间间隔服从指数分布;

%mu2-服务时间服从指数分布;

%T-模拟终止时刻

%----------------------初始化----------------------------------------------

arrive_time=exprnd(mu1);%arrive_time-顾客到达事件

leave_time=[];%leave_time-顾客离开事件

current_time=0;%current_time-当前时间

L=0;%L-队长

LL=[L];%LL-队长序列

tt=[current_time];%tt-时间序列

c=[];%c-顾客到达时间序列

b=[];%b-服务开始时间序列

e=[];%e-顾客离开时间序列

a_count=0;%a_count-到达顾客数

b_count=0;%b_count-服务顾客数

e_count=0;%e_count-损失顾客数

%----------------------模拟过程--------------------------------------------

whilemin([arrive_time,leave_time])

current_time=min([arrive_time,leave_time]);

tt=[tt,current_time];%记录时间序列

ifcurrent_time==arrive_time%顾客到达子过程

arrive_time=arrive_time+exprnd(mu1);%刷新顾客到达事件

a_count=a_count+1;%累加到达顾客数

ifL

L=L+1;%更新队长

b_count=b_count+1;%累加服务顾客数

c=[c,current_time];%记录顾客到达时间序列

b=[b,current_time];%记录服务开始时间序列

leave_time=[leave_time,current_time+exprnd(mu2)];%产生新的

顾客离开事件

leave_time=sort(leave_time);%离开事件表排序

elseifL

L=L+1;%更新队长

b_count=b_count+1;%累加服务顾客数

c=[c,current_time];%记录顾客到达时间序列

else%顾客损失

e_count=e_count+1;%累加损失顾客数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1