体检排队问题1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

体检排队问题

摘要

本文讨论的是如何安排顾客的体检顺序,以提高设备利用率、降低顾客等待时间的问题。

本文的创新之处在于利用计算机编程模拟排队模型,结合调查得到的资料,直接利用编程模拟产生了每个人的体检顺序及其相应的时间,使得解答更加周密、全面,而且模拟时只需要输入原始数据即可得到相应的结果,操作简便易行,故而具备较强的实用性。

本文依据顾客的到达人数的随机性,建立了以体检时间最小为目标函数的微分模型,即排队模型,又巧妙地将对原目标函数的求解转化为求每个项目当前排队人数问题,从而运用微分、利用MATLAB 软件编程对个人的体检顺序做出定性的分析,并代入数据予以检验。

问题一,根据建立的模型,利用MATLAB 软件插值拟合体检人员到达率与时间的关系)(t ϕ,再根据到达率,计算出t ∆时间内的到达人数)(t P ∆。最后,计算出当前每个项目的等待时间()

i j i A t S ⨯,通过比较得出等待时间较少的体检顺序。

问题二,利用问题一的模型,本文设计出一组较为合理的数据来验证上述结论。

问题三,我们将团体体检分为将团体视为一个整体,将团体的各队员全部分开情况予以讨论。经过模型计算,得到团队体检顺序的较优值,其结果见正文。

关键词:插值拟合、MATLAB 、体检项目、贪心算法

一、问题重述

某城市的体检中心每天有许多人前去体检,全部体检项目包括:抽血、内科、外科、B超、五官科、胸透、身高、体重、…等等。每个人的体检项目可能各不相同,假设每个体检项目的服务时间是确定的,并且只有1个医生值班,每次只能为1个客户服务。为提高设备利用率、降低客人的等待时间,中心请你帮助完成如下任务:

1.请你为某个新来的客人安排他的体检顺序,使其完成需要的全部检查

的时间尽量少(在各个体检项目处都可能有人排队等待);

2.设计1组数据来验证上述结论。

3.接待团体客人时,如何安排每个人的体检顺序,使得体检中心能尽快

完成任务,设计1组数据来验证该结论。

二、问题分析

问题一,要使完成需要的全部检查的时间尽量少,就必须考虑一下几个因素:(1)当前体检人员及待检人员的统计情况;(2)该体检人员所需检查的项目以及每个项目所需要的时间;(3)单位时间内到达和离开检查中心的人数;(4)体检医疗设施和医务人员的限制;因此,不同时间每个因素所处的状态不同,这些状态都将影响检查所需要的总时间。

问题二,要求设计一组数据来验证第一问的结论,因此我们除了要考虑第一题中提到的因素以外,还要考虑设计数据的合理性以及有效的说服力。

问题三,对于团体客人时,由于团队客人所需要检查的项目是相同的,而且团队客人是同时到达的。所以在安排时,要考虑到在同一时间内对团队客人的初次体检项目进行分配。然后再根据每个项目的实际待检人数以及每个项目的服务时间再次对客人进行安排,直到最后一名团队客人在较短的时间内完成所需体检的项目。

三、基本假设与符号说明

3.1基本假设

(1)假设每个体检项目的服务时间是确定的,并且只有1个医生值班,每次只能为1个体检人员服务。

(2)假设将体检人员的路途时间计入服务时间内。

(3)假设需要体检的人员没有来源限制, 即其相互约束可忽略不计, 来自无限群体。

(4)假设团队客人同时到达体检中心。

(5)假设每天每个体检项目同一时刻的体检人员到达率基本相当。

(6)假设体检中心工作时间从8:00开始

3

四、模型准备

1、贪心算法(Greedy algorithm)是一种对某些求最优解问题的更简单、更迅速的设计技术。用贪婪法设计算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,它省去了为找最优解要穷尽所有可能而必须耗费的大量时间,它采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题,通过每一步贪心选择,可得到问题的一个最优解,虽然每一步上都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的,所以贪婪法不要回溯。

贪婪算法是一种改进了的分级处理方法。其核心是根据题意选取一种量度标准。然后将这多个输入排成这种量度标准所要求的顺序,按这种顺序一次输入一个量。如果这个输入和当前已构成在这种量度意义下的部分最佳解加在一起不能产生一个可行解,则不把此输入加到这部分解中。这种能够得到某种量度意义下最优解的分级处理方法称为贪婪算法。

对于一个给定的问题,往往可能有好几种量度标准。初看起来,这些量度标准似乎都是可取的,但实际上,用其中的大多数量度标准作贪婪处理所得到该量度意义下的最优解并不是问题的最优解,而是次优解。因此,选择能产生问题最优解的最优量度标准是使用贪婪算法的核心。

一般情况下,要选出最优量度标准并不是一件容易的事,但对某问题能选择出最优量度标准后,用贪婪算法求解则特别有效。最优解可以通过一系列局部最优的选择即贪婪选择来达到,根据当前状态做出在当前看来是最好的选择,即局部最优解选择,然后再去解做出这个选择后产生的相应的子问题。每做一次贪婪选择就将所求问题简化为一个规模更小的子问题,最终可得到问题的一个整体最优解。

贪婪算法可解决的问题通常大部分都有如下的特性:

(1)有一个以最优方式来解决的问题。为了构造问题的解决方案,有一个候选的对象的集合:比如不同面值的硬币。

(2)随着算法的进行,将积累起其它两个集合:一个包含已经被考虑过并被选出的候选对象,另一个包含已经被考虑过但被丢弃的候选对象。

(3)有一个函数来检查一个候选对象的集合是否提供了问题的解答。该函数不考虑此时的解决方法是否最优。

(4)还有一个函数检查是否一个候选对象的集合是可行的,也即是否可能往该集合上添加更多的候选对象以获得一个解。和上一个函数一样,此时不考虑解决方法的最优性。

(5)选择函数可以指出哪一个剩余的候选对象最有希望构成问题的解。

(6)最后,目标函数给出解的值。

为了解决问题,需要寻找一个构成解的候选对象集合,它可以优化目标函数,贪婪算法一步一步的进行。起初,算法选出的候选对象的集合为空。接下来的每一步中,根据选择函数,算法从剩余候选对象中选出最有希望构成解的对象。如果集合中加上该对象后不可行,那么该对象就被丢弃并不再考虑;否则就加到集合里。每一次都扩充集合,并检查该集合是否构成解。如果贪婪算法正确工作,那么找到的第一个解通常是最优的。贪心解的确不错,可惜不一定是最优解。

2、数值微分(numerical differentiation):根据函数在一些离散点的函数值,推算它在某点的导数或高阶导数的近似值的方法。通常用差商代替微商,或者用一个能够近似代替该函数的较简单的可微函数(如多项式或样条函数等)的相应导数作为能求导数的近似值。例如一些常用的数值微分公式(如两点公式、三点公式等)就是在等距步长情形下用插值多项式的导数作为近似值的。此外,还可以采用待定系数法建立各阶导数的数值微分公式,并且用外推技术来提高所求近似值的精确度。当函数可微性不太好时,利用样条插值进行数值微分要比多项式插值更适宜。如果离散点上的数据有不容忽视的随机误差,应该用曲线拟合代替函数插值,然后用拟合曲线的导数作为所求导数的近似值,这种做法可以起到减少随机误差的作用。数值微分公式还是微分方程数值解法的重要依据。

当函数是以离散点列给出时,当函数的表达式过于复杂时,常用数值微分近似计算的导数。在微积分中,导数表示函数在某点上的瞬时变

相关文档
最新文档