精华内容
下载资源
问答
  • 排队系统

    千次阅读 2012-01-16 19:22:56
    大家都说 MMO 里的排队系统是魔兽世界的首创。可是只要是有社会经验的人,一拍脑袋就能想出这个点子来。谁都知道,在大量人拥挤在一起想完成同一件事情时,排队遵守次序是提高整体效率的最佳方案。那么,为什么 MMO ...

    原文:http://blog.codingnow.com/mt/mt-tb.cgi/341

    说回排队系统。大家都说 MMO 里的排队系统是魔兽世界的首创。可是只要是有社会经验的人,一拍脑袋就能想出这个点子来。谁都知道,在大量人拥挤在一起想完成同一件事情时,排队遵守次序是提高整体效率的最佳方案。那么,为什么 MMO 发展了那么多年,只到 wow 才被用于玩家登陆?

    理由只有两个:1. 问题(太多玩家同时登陆)不存在,不需要去做。 2. 做这样一个排队系统,有一定的技术难度,不容易做好。

    29 号那天下午,天下的排队系统是启动了的。可是似乎不解决任何问题。反而大量不能进入游戏的玩家在排队系统中拥挤着,甚至导致了系统不稳定,进入游戏的玩家纷纷掉线。

    到了 1 号,开发组似乎把排队系统关闭了。游戏服务器达到承载上限的时候,干脆拒绝任何新的连接。这个时候玩家看到的只是服务器没有回应。讽刺的是,这个时候,游戏服务器反而稳定下来,至少已进入游戏的玩家可以正常游戏了。

    任何能弄清楚到底需要什么的项目,在工程上都是容易实现的。无非克服技术点而已。(反之,需求模糊的东西,就很难顺利完成。这也是 MMO 游戏业抄袭成风的根源。毕竟抄袭让我们知道该做些什么。)我相信排队系统终究可以完美实现。下面分析一下排队系统的需求,和技术难点。

    让服务器组可以在短时间接纳大量的连接,并将暂时不能处理的连接分流。分流的连接必须保持住,而不能随意丢掉,避免这些断开的连接重新(人为)回来,再次造成冲击。

    这里的难点其实在于,系统如何做这样的分流,让处理排队业务的部分不成为游戏逻辑处理业务的桎梏。btw, bigworld engine 还有一个难点,由于它设计之初的决定,通讯协议采取了 UDP 而没有使用 TCP ,所以保持连接更加困难。我并没有说使用 UDP 协议通讯有任何不好(对于 big world 的整体设计来说,采用 UDP 是正确的),只是这里的确造成了一定的技术困难。

    以我有限的技术眼光,能开的药方还是从最近两年在忙的这摊子事中得到的。那就是:

    1. 身份认证系统分离。参考我以前写的 多服务器的用户身份认证方案,身份认证系统可以单独想办法做成集群,处理大量并发请求。但由于每通过一次身份认证只能拿到一次性令牌,这样就在身份认证系统和游戏系统之间做了一个缓冲层。

    2. 采用连接服务器和逻辑分离的设计。并且为一组服务器增加多个连接入口点。可参考:游戏服务器处理多个连接入口的方案。这样,即使游戏服务器组同时只能处理千级别的玩家,连接服务器组一样可以承受万级别的同时连接数。同时可能方便的留出特殊通道供内部人员使用。据说前两天,天下服务器拥挤的时候,我们自己的 QC 人员都没能登陆进游戏系统。更别说老板想进去看看游戏了 :) (我不赞同内部人员就能比外部玩家有更多的特权,实际上网易的游戏一直也是这么坚持的。但是维护和测试人员在测试期也挤不上游戏服务器就有点搞笑了)

    3. 游戏系统尽量使用多进程流水线设计。参考:多进程的游戏服务器设计。把排队系统独立到一个进程里,放在连接服务器之后。在负载过高的时候,单独分配到一台物理机器上工作。游戏排队系统逻辑简单,并可以维持较低的通讯/心跳频率,所以单台机器处理几万逻辑连接(真正的海量 TCP 连接是在连接服务器上做的)是没有什么问题的。

    这里,处理排队的进程,实际也担负了监控游戏服务器组的负载的任务。所以它可以在正确的时候放行排在前列的玩家。独立的进程使它不至于影响正常游戏的逻辑处理。这样一个子系统,我们的 engine 中被称为 watchdog ,代码不过几百行。这块设计在 去年底的那次演讲中也讲过了。不知道当时在场的朋友中有没有人关注。 :)

    以上提到的诸点,并非在 big world 中全无。只是 engine 开发受制于人,又有些许沟通上的障碍。最终制约了我们自己的技术人员解决问题的粒度和速度。我想,若是欧美厂商购买了 big world ,能够用的更好吧。

    现实是复杂的。没做到,没做好,并非我们的程序员不能也。

    3 月 3 日补充:

    这两天好几个天下组的同事找到我,给我讲这件事情的经过 :) 原来并不是排队系统没有做好。而是别的原因。(包括一些其它 bug ,服务器初期玩家过于拥挤在同一地点等)现在游戏服务器已经很流畅了。


    展开全文
  • 叫号系统排队系统挂号系统实现

    热门讨论 2014-11-17 15:20:13
    叫号系统排队系统实现 简单明了,注释清晰!
  • 医院排队系统排队叫号系统

    千次阅读 2018-10-29 14:10:16
    医院排队系统S2000 概述 智慧S2000医院排队管理系统主要是针对医院门诊各科室候诊、检查所遇到的混乱、无序、拥挤等现象所提出的解决方案。医生和护士通过系统有秩序地呼叫病员逐个进行,不仅规范了病员医疗秩序,...

    医院排队系统S2000

    1. 概述
      智慧S2000医院排队管理系统主要是针对医院门诊各科室候诊、检查所遇到的混乱、无序、拥挤等现象所提出的解决方案。医生和护士通过系统有秩序地呼叫病员逐个进行,不仅规范了病员医疗秩序,改善了环境,使门诊管理现代化,同时也能对病人医疗情况及医生的工作状况做出多种统计,有利于提高工作效率和服务质量。
      该系统完全兼容医保卡、医院就诊卡的使用,方便病人挂号、就诊、检查、取药等工作;该系统还具有与医院管理数据系统的接口,可以与HIS系统的连接,同时系统也留有将来的扩展和更新余地。
    2. 系统主要功能与介绍
      1、分诊或挂号
      采用智慧S2000排队系统与医院HIS挂号系统对接,也可以通过自助报到分诊的方式。
      预约挂号的病人,到达医院后进行预约确认。确认后,预约病人根据各预约的时间段或预约就诊号码,进入排队系统数据库。
      2、医生呼叫
      智慧S2000医生呼叫软件是安装于医护工作站的虚拟化呼叫终端,可方便地安装在WINDOWS10、7、XP、WINDOWS NT等常用工作站操作系统上,具有登录管理,即时查询还有多少病人在等待,以及当前叫号的病人功能。
      具有顺呼、复呼、选呼、消息功能,可直观的显示当前呼叫队列、呼叫病人、当前等候的就诊人员数量等信息。
      4、显示发布系统
      智慧S2000显示发布系统支持等候区LED电子屏、液晶/等离子电视、诊室小条屏、液晶一体机等多种混合显示模式。支持多媒体信息显示管理,支持文字,图片,视频文件等信息播放,通过画中画实现排队叫号信息与宣传信息有机结合。
      5、语音系统
      任何的语音内容“科室名/医生姓名、排队编号(就诊号)、以及就诊诊室等”可以自由组合,用户在使用中可以灵活的通过设置来完成。
      6、护士站管理软件
      S2000排队系统独特的护士站管理软件功能强大,其基本功能如下:回诊、复诊处理、 病人选医生、 优先就诊设置、 科室间转换、退弃号处理、限量报警等。
      7、系统软件
      智慧S2000系统采用模块化结构,能够满足全院系统联网,方便系统参数的维护和修改,支持常用的数据库如ORACLE,SQL等。
      系统同时根据不同科室的要求,支持一级候诊与二级候诊等模式,支持直接分诊与二次分诊模式。支持刷卡签到,分诊叫号等。
      系统软件对各科室S2000排队系统进行统一的调度和管理、管理病人动态、医生效率管理。
      权限:可以设定不同级别的管理员在本系统中的使用权限;
      数据共享:S2000排队数据可设置成共享方式。
      8、报表模块
      本S2000排队管理软件可以自动产生多种有价值的报表,如:工作量分析报表、工作状况日报等等。
      9、 HIS接口软件
      用于智慧S2000排队系统与医院管理系统(HIS)的数据传输。
    展开全文
  • 排队论及排队系统优化

    万次阅读 多人点赞 2017-08-14 23:29:25
    排队现象与排队系统; 排队模型与系统参数; 排队系统时间参数分布规律; 排队系统的生灭过程与状态转移方程; 排队系统分析; 单服务台负指数分布模型 多服务台负指数分布模型 排队系统优化分析;排队论发源于上世纪初。...

    纲要

    • 排队现象与排队系统;
    • 排队模型与系统参数;
    • 排队系统时间参数分布规律;
    • 排队系统的生灭过程与状态转移方程;
    • 排队系统分析;
      • 单服务台负指数分布模型
      • 多服务台负指数分布模型
    • 排队系统优化分析;

      排队论发源于上世纪初。
      当时美国贝尔电话公司发明了自动电话,以适应日益繁忙的工商业电话通讯需要。这个新发明带来了一个新问题,即通话线路与电话用户呼叫的数量关系应如何妥善解决,这个问题久久未能解决。
      1909年,丹麦的哥本哈根电话公司A.K.埃尔浪(Erlang)在热力学统计平衡概念的启发下予以解决了。

    1.1排队现象与排队系统

    一、排队现象

    这里写图片描述

    (1) 由于顾客到达和服务时间的随机性,
     现实中的排队现象几乎不可避免;
    (2) 排队过程,通常是一个随机过程,
     排队论又称“随机服务系统理论”;
    

    二、排队系统

    (一)排队服务过程

    这里写图片描述
    (二)排队系统的要素及其特征

    1. 排队系统的要素:
      (1) 顾客输入过程;
      (2) 排队结构与排队规则;
      (3) 服务机构与服务规则;

    2. 排队系统不同要素的主要特征:
      (1)顾客输入过程
      这里写图片描述
      (2)排队结构与排队规则
      这里写图片描述
      (3)服务机构与服务规则
      这里写图片描述

      服务台(员)为顾客服务的顺序:

      • a) 先到先服务(FCFS);
      • b) 后到先服务(LCFS);
      • c) 随机服务;
      • d) 优先服务;

    1.2排队模型与系统参数

    一、排队模型

    (一)排队模型表示方法
    这里写图片描述
    这里写图片描述

    ——略去后三项,即指 “**X/Y/Z///FCFS**”;
    ——这里仅研究FCFS的情形;
    

    (二)到达间隔和服务时间典型分布

    (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/ ,。。。
    

    2.1、系统参数

    (一)系统运行状态参数

    1、系统状态 N(t)

    ——指排队系统在时刻t时的全部顾客数 N(t),
    包括“排队顾客数”和“正被服务顾客数”;
    ——系统状态的可能值如下:
      (1)系统容量无限制, N(t) =0,1,2,…;
       (2) 系统容量为N时, N(t) =0,1,2,…,N;
       (3) 服务台个数为c/损失制, N(t) =0,1,2,…,c;
       **一般,系统状态N(t)是随机的。**
    

    2、系统状态概率:

    这里写图片描述

        ——一般,排队系统运行了一定长的时间后,系统状态的概率分布不再随时间t变化,即初始时刻(t=0)系统状态的概率分布(Pn(0) ,n>>0)的影响将消失。
    

    (二)系统运行指标参数

    ——评价排队系统的优劣。
    

    1、队长与排队长

    这里写图片描述

    2、逗留时间与等待时间

      (1)逗留时间:
          ——指一个顾客在系统中的全部停留时间; 期望值,记为 Ws
      (2)等待时间:
          ——指一个顾客在系统中的排队等待时间;期望值,记为 Wq
    
          **Ws = Wq + E[服务时间]**
    

    3、其他相关指标

       (1)忙  期: 指从顾客到达空闲服务机构起到服务
              机构再次空闲的时间长度;
       (2)忙期服务量:指一个忙期内系统平均完成
                  服务的顾客数;
       (3)损失率: 指顾客到达排队系统,未接受服务
               而离去的概率;
       (4)服务强度: = /c  ;
    

    3 排队系统时间参数分布规律

    一、顾客到达时间间隔分布

    (一)泊松流与泊松分布

    如果顾客到达满足如下条件,则称为泊松流:
      (1) 在不相互重叠的时间区间内,到达顾客数相互独立(无后效性).
      (2) 对于充分小的时间间隔内,到达1个顾客的概率与t无关,仅与时间间隔成正比  (平稳性):
      (3) 对于充分小的时间间隔,2个及以上顾客到达的概率可忽略不计 (普通性)。
    

    这里写图片描述

    (二)泊松流到达间隔服从负指数分布

    这里写图片描述

    二、顾客服务时间分布

    (一)负指数分布

    这里写图片描述

    (二)爱尔朗(Erlang)分布

    这里写图片描述

    3.1 排队系统的生灭过程

    一、排队系统的生灭过程

    (一)生灭过程的背景与定义

    这里写图片描述

    (二)生灭过程状态变化的性质

    这里写图片描述

    (三) 排队系统的生灭过程

    (1)生灭过程示意
    

    这里写图片描述

    (2)生灭过程定义
    

    这里写图片描述

    4 典型排队系统分析

    排队系统性能参数的一般关系 ——Little 公式
    

    这里写图片描述

    4 .1 单服务台负指数分布M/M/1排队系统

    . 模型的条件是:
    
        1、输入过程――顾客源是无限的,顾客到达完全是随机的,单个到来,到达过程服从普阿松分布,且是平稳的;
        2、排队规则――单队,且队长没有限制,先到先服务;
        3、服务机构――单服务台,服务时间的长短是随机的,服从相同的指数分布 。
    
    对于M/M/1模型有如下公式:
    

    这里写图片描述

    例1

       某医院急诊室同时只能诊治一个病人,诊治时间服从指数分布,每个病人平均需要15分钟。病人按泊松分布到达,平均每小时到达3人。试对此排队系统进行分析。
    

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    4 .2 多服务台负指数分布M/M/S排队系统

    这里写图片描述

    1、状态概率

    这里写图片描述

    2、主要运行指标

    这里写图片描述

    3、系统状态N ≥S的概率

    这里写图片描述

    例2

    承接例1,假设医院增强急诊室的服务能力,使其同时能诊治两个病人,且平均服务率相同,试分析该系统工作情况。
    

    这里写图片描述
    这里写图片描述

    例3

       某医院挂号室有三个窗口,就诊者的到达服从泊松分布,平均到达率为每分钟0.9人,挂号员服务时间服从指数分布,平均服务率每分钟0.4人,现假设就诊者到达后排成一队,依次向空闲的窗口挂号,显然系统的容量和顾客源是不限的,属于M/M/S型的排队服务模型。求:该系统的运行指标 ?
    

    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • 排队模型和排队系统仿真 Gary哥哥 2021.1.31 排队论又称随机服务系统,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,是运筹学的一个分支。排队论的基本思想是 1909 年丹麦数学家 A.K. 埃尔朗在...

    排队模型和排队系统仿真

    Gary哥哥 2021.1.31

    排队论又称随机服务系统,是研究系统随机聚散现象和随机服务系统工作过程的数学理论和方法,是运筹学的一个分支。排队论的基本思想是 1909 年丹麦数学家 A.K. 埃尔朗在解决自动电话设计问题时开始形成的,当时称为话务理论。现实生活中如排队买票、病人排队就诊、轮船进港、高速路上汽车排队通过收费站、机器等待修理等都属于排队论问题。

    定义

    • 通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度、忙期长短等)的统计规律
    • 然后根据这些规律来改进服务系统的结构或重新组织被服务对象,使得服务系统既能满足服务对象的需要,又能使机构的费用最经济或某些指标最优。

    数模应用:

    • CUMCM 2009B 的眼科病床的合理安排问题
    • MCM 2005B 收费站最佳配置问题
    • ICM 2017D 机场安检问题

    基本构成和指标

    基本构成

    • 输入过程:描述顾客按照怎样的规律到达排队系统。顾客总体(有限/无限)、到达的类型(单个/成批)、到达时间间隔。

    • 排队规则:指顾客按怎样的规定次序接受服务。常见的有等待制、损失制、混合制、闭合制。

    • 服务机构:服务台的数量; 服务时间服从的分布。

    数量指标

    • 队长:系统中的平均顾客数(包括正在接受服务的顾客)。
    • 等待队长:系统中处于等待的顾客的数量。
    • 等待时间:等待时间包括顾客的平均逗留时间。
    • 忙期:连续保持服务的时长。

    等待机制模型

    A/B/C/n

    A 输入过程,B 服务时间,C 服务台数,n 系统容量。

    example:

    • M/M/S/
      • 输入过程是 Poisson 流
      • 服务时间服从负指数分布
      • 系统有 S 个服务台平行服务(并行)
      • 系统容量为无穷大的等待制排队系统(容量无穷大)

    在这里插入图片描述

    案例

    在这里插入图片描述

    服务台不再是一个之后

    在这里插入图片描述

    S==1时:

    来访人员按照 Poisson 流到达,到达速率为 µ = 20 人/小时。接待人员的服务速率间服 λ = 9 人/小时的负指数分布。为使来访问者等待不超过半小时,最少应配置几名接待员?

    lambda = 20; mu = 9; s = 3;
    rho = lambda/(s*mu);
    k=0:s-1
    p0 = 1./( sum((s*rho).^k./factorial(k)) + ... 
    (s*rho)^s/(factorial(s)*(1-rho)) );
    Ls = s*rho + (s*rho)^s*rho/(factorial(s)*(1-rho)^2)*p0;
    Ws = Ls/lambda;
    Wq = Ws - 1/mu
    
    • 应用,收费站

    其他模型

    系统容量K

    • 损失制模型 M/M/S/S

      • 顾客到达服从泊松分布,服务台服务时间服从负指数分布,当 S 个服务台被占用后,顾客自动离开,不再等待。
    • 混合制模型 M/M/S/K

      • 顾客到达服从泊松分布,服务台服务时间服从负指数分布,系统容量为 K,当 K 个位置被占用时,顾客自动离开。
    • 闭合制模型 M/M/S/K/K

      • 顾客到达服从泊松分布,服务台服务时间服从负指数分布,系统容量和潜在的顾客数都为 K

    模拟

    单服务台

    • 服务时刻(i) = max { 到达时刻(i), 离开时刻(i -1)}

    • 离开时刻(i) = 服务时刻(i) -服务时长(i)

    • 等待时长(i) = 离开时刻(i) -到达时刻(i)

    多服务台

    尽快完成服务的目的

    • 服务时刻(i) = max { 到达时刻(i), min*{服务台空闲时刻}*}

    • 所使用服务台(i) = k,其中 k 使 服务台空闲时刻(k) = min (第k个服务台空闲)

      • 离开时刻(i) = 服务时刻(i) + 服务时长(i)
      • 服务台空闲时刻(k) = 离开时刻(i)
      • 等待时长(i) = 离开时刻(i) -到达时刻(i)

    自动取款问题

    • 银行计划安置取款机, A 机价格和平均服务率都是 B 机的 2 倍. 应购置 1 台 A 机还是 2 台 B 机?

    MM1无穷的问题:

    单服务台

    n = 100000;  %模拟顾客数量
    mu = 1; muA = 0.9; %到达率和服务率
    tarr = cumsum(exprnd(mu,1,n));% 到达时刻(指数分布)
    tsrv = exprnd(muA,1,n);%服务时间长度
    tsta = zeros(1,n);%初始化服务时刻
    tlea = zeros(1,n);%初始化离开的时刻
    twat = zeros(1,n);%初始化等待时长
    tsta(1) = tarr(1);%首位顾客服务时刻=到达时刻
    tlea(1) = tsta(1) + tsrv(1);%首位顾客离开时刻
    twtime(1) = tlea(1) - tarr(1);%首位顾客等待时长
    for i = 2:n
        %服务时刻=max{到达时刻,上一个顾客离开时刻}
        tsta(i) = max(tarr(i),tlea(i-1));
        tlea(i) = tsta(i) + tsrv(i);% 离开时刻=服务时刻+服务时长
        twat(i) = tlea(i) - tarr(i);% 等待时长=离开时刻-到达时刻
    end
    hist(twat)
    sum(twat)/n
    

    多服务台

    • 顾客平均每分钟到达 1 位,A 型机的平均服务时间为 0.9, B型机为 1.8 分钟, 顾客到达间隔和服务时间都服从指数分布.
    n = 100000; 
    mu = 1; 
    muB = 1.8;
    tarr = cumsum(exprnd(mu,1,n));
    tsrv = exprnd(muB,1,n);
    tsta = zeros(1,n);%服务时刻
    tlea = zeros(1,n);%离开时刻
    twat = zeros(1,n);%等待时刻
    last = [0 0];%服务台结束服务时刻
    for i = 2:n
        [minemp, k] = min(last); %找出最快结束服务的服务台时刻
        tsta(i) = max(tarr(i),minemp);
        tlea(i) = tsta(i) + tsrv(i);
        last(k) = tlea(i);
        twat(i) = tlea(i) - tarr(i);
    end
    hist(twat)
    sum(twat)/n
    

    多服务台就在last中加就好了

    数学建模真题

    银行服务问题

    银行经理正试图通过提供更好的服务来提高顾客满意度. 管理层期待顾客平均等待时间小于 2 分钟, 平均队列长度 (等待队列的长度) 是 2 人或者更少. 银行估算, 每天大约为 150 名顾客提供服务. 现有的到达和服务时间如下表所示:

    在这里插入图片描述

    根据经理的指引, 确定当前顾客是否对服务满意. 如果不满意, 通过模型对服务进行微小的改变, 以达到经理的目标.

    除了比赛格式的论文以外, 给经理写一封简短的, 非技术性的, 大约 1-2页的信, 给出你的最终建议.

    取时间间隔的方式比较巧妙

    在这里插入图片描述

    n = 150;
    ta = [5 4 3 2 1 0]; pa = [0.05 0.25 0.35 0.10 0.15 0.10];
    ts = [ 4 3 2 1 ]; ps = [ 0.15 0.40 0.20 0.25 ];
    pacum = cumsum(pa);
    pscum = cumsum(ps);
    Tarrival = rand(1,n);
    for i = 1:length(pa)
    	Tarrival(Tarrival<pacum(i)) = ta(i);%一次判断,上面的处理
    end
    %服务的时间长度
    Tarrival = cumsum(Tarrival);
    Tservice = rand(1,n);
    for i = 1:length(ps)
    	Tservice(Tservice<pscum(i)) = ts(i);
    end
    
    Tstart = zeros(1,n); Tleave = zeros(1,n);
    Twait = zeros(1,n); line = zeros(1,n);%队长
    
    %第一个人
    Tstart(1) = Tarrival(1);
    Tleave(1) = Tstart(1) + Tservice(1);
    Twait(1) = Tleave(1) - Tarrival(1) - Tservice(1);
    line(1) = 0;
    
    for i = 2:n
    	Tstart(i) = max(Tleave(i-1), Tarrival(i));
    	Tleave(i) = Tstart(i) + Tservice(i);
    	Twait(i) = Tleave(i) - Tarrival(i) - Tservice(i);
    	%计算队长
    	k = i-1;
    	%找到前面为离开的那个人,直到不在队列的人
    	while ( k>0 )&&( Tarrival(i)<Tleave(k) )
    		line(i) = line(i) + 1;
    		k = k - 1;
    	end
    end
    

    优化机场安检

    ICM2017-D

    • 串并联问题

    在这里插入图片描述

    • 建立一个或多个模型,研究旅客通过安检口的流量,确定瓶颈,明确判断当前流程问题区域位置。

    • 设计两个或更多对现有系统德潜在改进,提高旅客通信,减少等待时间。模拟这些变化展示改进如何影响流程。

    排队系统

    在这里插入图片描述

    并联后串联部分
    function [tlea, twat, qlen] = mms(tarr, type, mus)
    % MMS Stochastic simulation for M/M/c queue
    %
    % [tlea, twat, qlen] = mms(tarr, type, mus)
    %     tarr = arrival time of customers
    %     type = customer type parameters
    %     mus  = serere rate of servers
    %     tlea = leaving time of servers
    %     twat = waiting time of servers
    %     qlen = length of the queue (length of the waiting line) for customers
    % 
    % Zhou Lvwen: zhou.lv.wen@gmail.com
    % January 21, 2017
    
    narr = length(tarr);        % number of customers
    nsvr = length(mus);         % number of servers
    
    % last time at which a customer left a particular server,标志服务台
    last = zeros(nsvr,1);
    
    [tsta, tlea, twat, qlen] = deal(zeros(narr,1));%deal全部赋值为0
    
    rndm = zeros(nsvr,narr);    % rndm(k,i) = service time for i-th customer,生成每个人你的服务长度
    for k = 1:nsvr; rndm(k,:) = exprnd(mus(k)*type); end
    %套路操作
    for i = 1:narr
        % find booth service was/will be emptied soonest and record
        [minemp, ksvr(i)] = min(last); 
        
        % start time = max{arrival time, minemp}
        tsta(i) = max(tarr(i), minemp); 
        
        % severe time = exponential random number with mean parameter mu
        tsvr(i) = rndm(ksvr(i),i);
        
        % leaving time = start time + service time
        tlea(i) = tsta(i) + tsvr(i);
        
        % last time of k-th server = leaving time of i-th customer 
        last(ksvr(i)) = tlea(i);
        
        % waiting time = leaving time - arrival time
        twat(i) = tlea(i) - tarr(i);
        
        % queue length for i customer
        j = i - 1;
        while j>0 && tarr(i)<tlea(j)
            if ksvr(j)==ksvr(i); qlen(i) = qlen(i) + 1; end
            j = j - 1;
        end
    end
    
    

    main.m

    n1 = 2;  n2 = 3; n3 = 3;
    mu1 = 12; mu2 = 9; mu3 = 16;
    muR = 10; muB = 13;
    
    nR = ceil(24*3600/muR); nB = ceil(24*3600/muB);
    tArrR = cumsum(exprnd(muR,nR,1));
    tArrB = cumsum(exprnd(muB,nB,1)); 
    tArr = [tArrR; tArrB];
    type = [0.8*ones(nR,1); 1.2*ones(nB,1)];
    
    [tLeaR, tWatR, qLenR] = mms(tArrR, ones(nR,1), mu1*ones(n1,1));
    [tLeaB, tWatB, qLenB] = mms(tArrB, ones(nB,1), mu2*ones(n2,1));
    
    [tArrG, order] = sort([tLeaR; tLeaB]);
    [tLeaG, tWatG, qLenG] = mms(tArrG, type(order), mu3*ones(n3,1));
    tLeaG(order) = tLeaG;
    tWatG(order) = tWatG;
    qLenG(order) = qLenG;
    
    
    figure('position',[50,50,1200,600])
    subplot(2,3,1); hist(qLenR); ylabel('Frequency'); 
    xlabel('length of the waiting line'); title('Red')
    subplot(2,3,4); hist(tWatR); ylabel('Frequency'); 
    xlabel('waiting time'); title('Red')
    
    
    subplot(2,3,2); hist(qLenB); ylabel('Frequency');
    xlabel('length of the waiting line'); title('Blue')
    subplot(2,3,5); hist(tWatB); ylabel('Frequency'); 
    xlabel('waiting time'); title('Blue')
    
    subplot(2,3,3); hist(qLenG); ylabel('Frequency');
    xlabel('length of the waiting line'); title('Green')
    subplot(2,3,6); hist(tWatG); ylabel('Frequency'); 
    xlabel('waiting time'); title('Green')
    

    完结散花

    展开全文
  • 排队系统仿真

    千次阅读 2019-06-13 00:59:40
    2.请使用C/C++、MATLAB等高级语言编写程序,对1中描述的M/M/1系统进行仿真,获得该排队系统的排队时间、逗留时间、平均排队长度等指标。并将实验结果与理论计算结果进行比较。 大佬们,这个怎么编呀 ...
  • matlab排队模型和排队系统仿真

    千次阅读 2020-10-12 20:50:58
    输入过程:描述顾客按照怎样的规律到达排队系统。顾客总体(有限/无限)、到达的类型(单个/成批)、到达时间间隔。 排队规则:指顾客按怎样的规定次序接受服务。常见的有等待制、损失制、混合制、闭合制。 服务机构...
  • matlab-排队模型和排队系统仿真

    千次阅读 2020-02-05 20:07:01
    输入过程:描述顾客按照怎样的规律到达排队系统 排队规则:顾客按照怎样的规定次序接受服务 服务机构:服务台的数量;服务时间服从的分布 2.数量指标 队长,等待队长,等待时间,逗留时间,忙期(连续保持服务的时长...
  • 登陆排队系统

    2014-10-16 10:13:10
    排队系统,主要是处理大量玩家涌入游戏世界,导致游戏服务器卡顿,不流畅等问题。在开发期间,我们对服务器做压力测试的时候,会确定一个服务器承载峰值。当我们的游戏世界里玩家达到峰值时,后面的玩家就需要进行...
  • 利用JS模拟排队系统

    2019-03-29 14:58:25
    今天给大家分享的是js模拟排队系统,刚开始有排队序列,序列里有vip用户和普通用户,vip用户永远位于普通用户的前面,只有当当前vip用户都办理好手续,才会叫号普通用户,每5秒产生一个随机客户。 效果如图: 代码...
  • 模拟银行排队系统

    千次阅读 2018-04-09 21:18:07
    文章学习自:小项目分析之C++ 实现模拟银行排队使用C++实现银行排队系统一、问题定义与分析问题定义•要解决的问题——银行一天之内的: 1.总客户数 2.客户总逗留时间 3.客户平均逗留时间问题分析•新来的人找个短的...
  • 设计一个安全的排队系统的思考

    千次阅读 2021-01-24 09:35:18
    排队系统来防炸服,听上去很怂。但是对大热的游戏,或者宕机重启,几万人一起涌上线登录时,一套可靠的排队系统确实可以救命。 不过设计一个优秀的排队系统可并不容易: 首先要高可用(HA)。千万不能把排队系统...
  • 数据结构简单模拟银行排队系统

    千次阅读 多人点赞 2020-06-12 02:06:17
    银行排队系统实现 功能要求: (1) 客户进入排队系统; (2) 客户离开; (3) 查询当前客户前面还有几人; (4) 查询截至目前总共办理多少客户。 输出要求:每进行一次操作后,输出当前排队成员情况。 算法实现 ...
  • 1 排队系统(50分) 题目内容: 实作一个排队系统, 指令有以下三种: 指令0 x: 代表insert,将编号x加入排队队伍的最尾端。 指令1: 代表serve,为队伍中最前面的人提供服务,服务完后自动将他从队伍中剔除,如果...
  • 银行排队系统
  • 银行排队系统(c语言源代码) 仅供粗学者们学习。
  • 排队系统利用分布式设计的思考

    千次阅读 2021-01-19 11:20:19
    从分布式系统设计来进行设计排队系统。它有以下特点: 1、它具有一致性(Consistency)和事务完整性(Tansactions)要求不高。目的只是控制流量,所以如果一定程度的数据不一致的最糟结果只是进入顺序不一致,或者多...
  • 排队系统的需求分析

    千次阅读 2015-09-07 20:03:28
    排队系统的需求分析排队功能应用广泛,为描述的更易于理解,我们将其类比到现实中的银行客户在银行窗口排队,要申请的每个资源比作银行的每个业务窗口,将Job比作需要办理业务的银行客户基础功能 所有job申请资源,...
  • 叫号系统排队系统挂号系统实现(JAVA队列)

    万次阅读 多人点赞 2014-11-17 15:38:33
    比如医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等。市场上又这样的排队取号的设备。他们的功能基本如下: 1、系统可联网联机统一发号; 2、系统可无线对接,也可有线连接; 3、系统支持100种业务以上; 4...
  • 数据结构之看病排队系统

    千次阅读 2019-10-20 01:16:59
    数据结构之看病排队系统 #include <iostream> #include<stdio.h> #include <malloc.h> #define MaxSize 100 using namespace std; typedef int ElemType; typedef struct { ElemType data...
  • c++模拟银行排队系统

    千次阅读 2018-04-01 21:00:53
    银行排队系统的实现,利用了一个STL库中的向量,使得问题变得简单,因老师不要求实现vip用户,因此没有该功能,但实现也并不困难,利用向量可以在任意位置插入的性质,若有vip用户到达,可以直接插队到前一个vip用户...
  • 由于登陆需要读数据库,创建用户等一系列操作,非常耗时,为了保证登陆接口正常工作,在一些高并发场景下,登陆削峰非常重要,本文在基于redis这个高性能内存数据库的基础上,提供了一种登陆排队系统的设计思路。...
  • 银行排队系统模拟—数据结构

    万次阅读 多人点赞 2017-05-23 15:12:19
    银行排队系统模拟—数据结构 假设某银行有n个窗口对外接待客户,从早晨银行9点开门起到5点关门,不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于...
  • 数据结构大作业——银行排队系统

    千次阅读 2020-07-08 20:36:36
    数据结构大作业——银行排队系统离散事件模拟——银行业务处理题目分析声明部分辅助函数初始化窗口节点创建顾客节点比较四个窗口的排队人数输出离开顾客的信息主要函数完整的头文件代码 离散事件模拟——银行业务...
  • Erlang排队系统

    千次阅读 2009-12-13 20:29:00
    因而,可以利用负指数分布的无后效性来分析Erlang排队系统。(M/Ek/1/∞和Ek/M/1/∞)在M/Ek/1/∞系统中,把服务时间假想分为K个独立同分布的位相,一个顾客必须通过k个位相服务完成后才允许别的顾客进入服务。 令N...
  • 设计一个排队系统

    千次阅读 2014-06-23 12:46:33
    请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。 我的解答 这类题属于简答题,...
  • 哈林电子会员卡软件,升级会员微信预约排号功能,商家会员无需等待,远程预约排号,微排号系统源码 2015年1月4日,哈林科技旗下的电子会员卡管理软件,如期完成会员微信预约排队功能的升级,以下简称【微排队】 本...
  • PBS 排队系统一直不能运行

    千次阅读 2018-07-23 10:14:00
    PBS 排队系统一直不能运行 tips 看到木虫社区有人发帖,为了帮助到更多的人,所以把问题和解决都贴过来。 问题 老板在集群上开了一个账户给我,但是提交PBS脚本后,qstat状态一直显示为C,cpu运行时间也全部为...
  • 银行排队系统的设计与实现

    万次阅读 2013-06-16 22:49:21
     银行排队系统的设计与实现          学生姓名:*** 学 号:*** 年级专业及班级:**级计算机科学与技术(2)班 指导老师及职称:** 讲师 专 业:计算机科学与技术       *** 提交日期:2013年06月   ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 152,575
精华内容 61,030
关键字:

排队系统