论文部分内容阅读
[摘 要] 针对目前银行排队难的问题,本文将蒙特卡罗模拟的方法运用到银行排队业务中。在仿真模型的建立过程中大量使用了Excel的函数、公式编辑、加载宏Crystal Ball等工具;运用蒙特卡罗法处理系统运行指标随输入过程参数变化的不确定性;最后,得到模型的运行结果——顾客等待时间的频数图,并通过灵敏性分析确定到达率和服务率对顾客等待时间的影响程度。
[关键词] Excel;银行排队;蒙特卡罗模拟;Crystal Ball
[中图分类号]F270.7;TP391.9[文献标识码]A[文章编号]1673-0194(2008)06-0081-04
1 引 言
随着国内银行业全面市场化转型,不断增长的中间业务,如水费、电费、煤气费、工资、社保资金通过银行代收代发,加大了银行柜面的压力;而近期由于加息导致转存和提前还贷骤增;同时,随着股市和基金的升温,银行推出的基金和理财产品,也派生出了大量的柜面业务,而且这些业务相对复杂,耗时很长;多种因素促使银行排队矛盾集中爆发。银行网点排队问题成为社会舆论和新闻媒体关注的焦点。
本文结合运筹学排队论问题的基本特点,利用蒙特卡罗模拟在刻画排队系统动态性方面的优势,重点介绍了利用Excel强大的函数、公式编辑功能以及加载宏Crystal Ball软件建立模型,实现蒙特卡罗模拟的方法在处理实际排队问题中的应用。本文第3部分重点介绍应用Excel实现对某银行排队系统各运行指标的动态模拟,并对结果进行了敏感性分析,取得了良好的效果。本文最后介绍了该方法在实际应用中的意义,并给出全文的总结。
2 排队问题的分析方法
2. 1传统的分析方法
解决排队问题的目的,是研究排队系统的运行效率,估计服务质量,确定系统参数的最优值,以确定系统结构是否合理、研究设计改进措施等。所以必须确定用以判断系统运行优劣的数量指标,求出这些数量指标的概率分布。
这些数量指标通常是,队长L:系统中顾客数的期望值;排队长Lq:等待排队的顾客数期望值;逗留时间W:顾客在系统中的停留时间期望值;等待时间Wq:排队等待的期望值;空闲率I:服务台空闲的概率。这些参数反映的都是稳定状态下的期望值,没有体现系统的动态特性。在一个实际的等待系统中,这些值会围绕着期望值有较大的波动。当系统开始为空值时,可能需要很长的时间才能达到这种期望水平。
这些数量指标反映了系统长期运行下的静态参数,而仿真则可以模拟排队的动态行为信息等一系列优于一般静态指标分析的特点。相比其他使用设计复杂的程序和烦琐的计算机编程语言,如Matlab 6.5、CISMAN、Visual Basic,用Excel建模具有直观简便、操作性更强、适用性更广等优点。
2. 2蒙特卡罗方法及Crystal Ball软件简介
蒙特卡罗方法又名随机模拟法或统计试验法,属于试验数学的一个分支。它利用随机数进行统计试验,以求得的统计特征值(如均值、概率等)作为待解问题的数值解,所作的统计试验称为蒙特卡罗模拟。蒙特卡罗模拟的本质是从概率分布中重复抽样以建立输出变量的分布。其原理是:在所研究的系统中,采用某种特定方法产生随机数和随机变量,仿真随机事件,对结果进行统计处理,从而得到问题的解。在解决风险分析、项目管理等不易处理的不确定性问题时,该方法特别有用。
在应用蒙特卡罗方法解决实际问题的时候主要有两部分工作:(1)用蒙特卡罗方法模拟某一过程时,确定需要产生各种概率分布的随机变量。(2)用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。
Crystal Ball软件是由美国Decisioneering公司开发的,为Excel电子表格提供的功能强大的加载宏。在Crystal Ball中,将随机的输入变量规定为假设单元(assumptioncell),将感兴趣的随机输出变量规定为预测单元(forecastcell)。Crystal Ball的Distribution Gallery为随机输入变量提供了多种可供选择的分布类型,能够适应常见的分布需要。
以上这些功能使得在Excel中运用Crystal Ball进行蒙特卡罗仿真可以非常方便地实现。排队系统涉及的多是关于时间先后关系的变量,只需用公式表示出各顾客到达时间变量的逻辑关系,将顾客的到达率和业务员的服务率所在单元格设置为假设单元,为其设定一个适当的分布,将需要重点考量的顾客平均等待时间、平均排队长、平均空闲率等所在的单元格设置为预测单元,最后设定重复抽样次数即可实现模拟。要得到一个未知总体参数的一个优良估计,必须模拟仿真很多次。
3 应用Excel进行蒙特卡罗模拟的实例
例如,某银行营业网点现只开放一个窗口,在其正常的营业时间内,顾客的到达率λ服从U(8,10)的均匀分布,业务员的服务率μ服从U(10,12)的均匀分布。求顾客等待时间大于1小时的概率。
现对该系统做如下假设:
(1)顾客到达时间间隔服从指数分布,且各顾客到达间隔时间相互独立;
(2)服务时间服从指数分布,且各顾客的服务时间相互独立;
(3)顾客按照FCFS规则排队接受服务;如果系统忙,顾客愿意等待;队伍长短无限制。
这样该问题正好满足M/M/1型的排队系统的条件。解决这种复杂的动态问题,模拟方法体现出较大的优越性。
第二步,使用Cell菜单下的DefineAssumption功能分别将顾客平均到达率、业务员平均服务率所在单元格B3、B4设置为假设变量,并设置其服从的分布。因为M1003、O1003、Q1003分别表示第1 000名顾客到达时队列平均顾客数、平均等待时间、平均空闲率的值,可以将其作为预测变量显示在B12:B14所在的结果中,并使用Cell菜单下的DefineForecasts将其定义为预测变量。
第三步,使用Run菜单下的Run功能,就可以实现对模型的仿真模拟。
关于建模公式图(图2)的两点说明:
(1)D列是由Crystal Ball 随机数生成功能产生的顾客到达间隔TBA(i),如产生以模型中顾客到达率λ为参数的指数分布的随机数,只需在D4中输入公式=CB.Exponential($B$3)”。同样H列需要产生服务率为μ的指数分布的随机顾客服务时间ST(i),同样也可在H4中输入公式“=CB.Exponential($B$4)”。
(2)在编辑完第2位顾客到达的各变量的公式后,选中“$D$5:$Q$5”单元格所在区域,单击鼠标拖动区域右下方的黑点(拖动柄)并一直拖动到第1 003行,即可实现对1 000名到达的顾客的所有变量的模拟。
3. 2仿真结果分析
研究结果表明:客户排队等候超过10分钟,情绪开始急躁;超过20分钟,情绪表现为厌烦;超过40分钟,常因恼火而拂袖离去。顾客对于服务质量的感知与等待时间等因素有关,顾客普遍不喜欢等待。本文用顾客的平均等待时间来衡量服务质量和客户满意度。
用Crystal Ball对模型进行10 000次模拟的结果如图4所示。可知顾客的平均等待时间为0.317 1小时,等待时间超过0.666 7小时(40分钟)的概率为8.58%,超过1小时的概率为3.52%。随着银行业竞争的日益加剧,处于长期等待状态的这部分顾客会对银行的服务质量增加不满和抱怨,银行将面临损失这部分顾客的可能。
3. 3灵敏度分析
灵敏度分析是分析一个系统或模型的状态或输出变化对系统参数或周围条件变化的敏感程度的方法。通过灵敏度分析可以确定哪些参数对系统或模型有较大的影响。Crystal Ball对顾客平均等待时间的灵敏度分析,见图5。图5显示的灵敏度分析是由秩相关系数度量的,秩相关系数提供了各种假设和预测变量共同变化程度的度量。图5显示,顾客平均到达率λ、业务员平均服务率μ和平均等待时间的相关度为0.84、-0.36。表明顾客平均到达率λ和增加平均等待时间之间存在显著正相关,业务员平均服务率μ和减少平均等待时间存在一定负相关。可知,业务员平均服务率μ的提升在一定程度上可以缩短顾客等待时间。
4 结 论
本文利用Excel的加载宏软件Crystal Ball 对一个简化的银行排队问题进行模拟和分析。对于目前的银行排队难这一问题,希望银行短期内通过快速开设新的网点加以改善的做法难切实际,而通过增加现有网点服务窗口的个数则是可能被银行接受的方案。增加窗口的投入和提高的顾客满意度之间存在什么关系,很难做出定量的回答。而本文提供的方法,避开了设计复杂的程序和烦琐的计算机编程语言的的障碍,利用一般管理人员熟悉的Excel实现蒙特卡罗模拟,为银行的设计者和管理者方便地做出切合实际的解决方案提供科学的根据和启示。
但由于搜集的实际数据的限制,本文只对部分输入变量的分布进行了假设,因此得出的结论有一定局限性。但本文的主要目的是探讨一种运用系统模拟的思想对实际问题进行建模并揭示其内在规律的方法。例如,在实际运用中,可以根据顾客的到达率的统计数据拟合出具体的分布规律;再者,对于多服务台的情形,运用Excel的IF函数实现到达顾客的选择,可以更加真实地刻画实际情况。这些方面都可以作为进一步改善排队模型的出发点。
主要参考文献
[1] 本书编写组. 运筹学[M]. 北京:清华大学出版社,1990:310-315.
[2] James R Evans,David L Olson.数据模型与决策[M]. 北京:中国人民大学出版社,2006.
[3] 方再根. 计算机模拟和蒙特卡罗方法[M]. 北京:北京工业学院出版社,1988:1-15,45-48.
[4] Averill M Law,W David Ke1Lon. Simulation Modeling and Analysis(third edition)[M]. NewYork:Mcgraw-Hill,2000: 1-6,90-93,655.
[5] Kaboudan,M A. A Dynamic-server Queuing Simulation[J].Computers Operations Research,1998,25(6):431-439.
[关键词] Excel;银行排队;蒙特卡罗模拟;Crystal Ball
[中图分类号]F270.7;TP391.9[文献标识码]A[文章编号]1673-0194(2008)06-0081-04
1 引 言
随着国内银行业全面市场化转型,不断增长的中间业务,如水费、电费、煤气费、工资、社保资金通过银行代收代发,加大了银行柜面的压力;而近期由于加息导致转存和提前还贷骤增;同时,随着股市和基金的升温,银行推出的基金和理财产品,也派生出了大量的柜面业务,而且这些业务相对复杂,耗时很长;多种因素促使银行排队矛盾集中爆发。银行网点排队问题成为社会舆论和新闻媒体关注的焦点。
本文结合运筹学排队论问题的基本特点,利用蒙特卡罗模拟在刻画排队系统动态性方面的优势,重点介绍了利用Excel强大的函数、公式编辑功能以及加载宏Crystal Ball软件建立模型,实现蒙特卡罗模拟的方法在处理实际排队问题中的应用。本文第3部分重点介绍应用Excel实现对某银行排队系统各运行指标的动态模拟,并对结果进行了敏感性分析,取得了良好的效果。本文最后介绍了该方法在实际应用中的意义,并给出全文的总结。
2 排队问题的分析方法
2. 1传统的分析方法
解决排队问题的目的,是研究排队系统的运行效率,估计服务质量,确定系统参数的最优值,以确定系统结构是否合理、研究设计改进措施等。所以必须确定用以判断系统运行优劣的数量指标,求出这些数量指标的概率分布。
这些数量指标通常是,队长L:系统中顾客数的期望值;排队长Lq:等待排队的顾客数期望值;逗留时间W:顾客在系统中的停留时间期望值;等待时间Wq:排队等待的期望值;空闲率I:服务台空闲的概率。这些参数反映的都是稳定状态下的期望值,没有体现系统的动态特性。在一个实际的等待系统中,这些值会围绕着期望值有较大的波动。当系统开始为空值时,可能需要很长的时间才能达到这种期望水平。
这些数量指标反映了系统长期运行下的静态参数,而仿真则可以模拟排队的动态行为信息等一系列优于一般静态指标分析的特点。相比其他使用设计复杂的程序和烦琐的计算机编程语言,如Matlab 6.5、CISMAN、Visual Basic,用Excel建模具有直观简便、操作性更强、适用性更广等优点。
2. 2蒙特卡罗方法及Crystal Ball软件简介
蒙特卡罗方法又名随机模拟法或统计试验法,属于试验数学的一个分支。它利用随机数进行统计试验,以求得的统计特征值(如均值、概率等)作为待解问题的数值解,所作的统计试验称为蒙特卡罗模拟。蒙特卡罗模拟的本质是从概率分布中重复抽样以建立输出变量的分布。其原理是:在所研究的系统中,采用某种特定方法产生随机数和随机变量,仿真随机事件,对结果进行统计处理,从而得到问题的解。在解决风险分析、项目管理等不易处理的不确定性问题时,该方法特别有用。
在应用蒙特卡罗方法解决实际问题的时候主要有两部分工作:(1)用蒙特卡罗方法模拟某一过程时,确定需要产生各种概率分布的随机变量。(2)用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。
Crystal Ball软件是由美国Decisioneering公司开发的,为Excel电子表格提供的功能强大的加载宏。在Crystal Ball中,将随机的输入变量规定为假设单元(assumptioncell),将感兴趣的随机输出变量规定为预测单元(forecastcell)。Crystal Ball的Distribution Gallery为随机输入变量提供了多种可供选择的分布类型,能够适应常见的分布需要。
以上这些功能使得在Excel中运用Crystal Ball进行蒙特卡罗仿真可以非常方便地实现。排队系统涉及的多是关于时间先后关系的变量,只需用公式表示出各顾客到达时间变量的逻辑关系,将顾客的到达率和业务员的服务率所在单元格设置为假设单元,为其设定一个适当的分布,将需要重点考量的顾客平均等待时间、平均排队长、平均空闲率等所在的单元格设置为预测单元,最后设定重复抽样次数即可实现模拟。要得到一个未知总体参数的一个优良估计,必须模拟仿真很多次。
3 应用Excel进行蒙特卡罗模拟的实例
例如,某银行营业网点现只开放一个窗口,在其正常的营业时间内,顾客的到达率λ服从U(8,10)的均匀分布,业务员的服务率μ服从U(10,12)的均匀分布。求顾客等待时间大于1小时的概率。
现对该系统做如下假设:
(1)顾客到达时间间隔服从指数分布,且各顾客到达间隔时间相互独立;
(2)服务时间服从指数分布,且各顾客的服务时间相互独立;
(3)顾客按照FCFS规则排队接受服务;如果系统忙,顾客愿意等待;队伍长短无限制。
这样该问题正好满足M/M/1型的排队系统的条件。解决这种复杂的动态问题,模拟方法体现出较大的优越性。
第二步,使用Cell菜单下的DefineAssumption功能分别将顾客平均到达率、业务员平均服务率所在单元格B3、B4设置为假设变量,并设置其服从的分布。因为M1003、O1003、Q1003分别表示第1 000名顾客到达时队列平均顾客数、平均等待时间、平均空闲率的值,可以将其作为预测变量显示在B12:B14所在的结果中,并使用Cell菜单下的DefineForecasts将其定义为预测变量。
第三步,使用Run菜单下的Run功能,就可以实现对模型的仿真模拟。
关于建模公式图(图2)的两点说明:
(1)D列是由Crystal Ball 随机数生成功能产生的顾客到达间隔TBA(i),如产生以模型中顾客到达率λ为参数的指数分布的随机数,只需在D4中输入公式=CB.Exponential($B$3)”。同样H列需要产生服务率为μ的指数分布的随机顾客服务时间ST(i),同样也可在H4中输入公式“=CB.Exponential($B$4)”。
(2)在编辑完第2位顾客到达的各变量的公式后,选中“$D$5:$Q$5”单元格所在区域,单击鼠标拖动区域右下方的黑点(拖动柄)并一直拖动到第1 003行,即可实现对1 000名到达的顾客的所有变量的模拟。
3. 2仿真结果分析
研究结果表明:客户排队等候超过10分钟,情绪开始急躁;超过20分钟,情绪表现为厌烦;超过40分钟,常因恼火而拂袖离去。顾客对于服务质量的感知与等待时间等因素有关,顾客普遍不喜欢等待。本文用顾客的平均等待时间来衡量服务质量和客户满意度。
用Crystal Ball对模型进行10 000次模拟的结果如图4所示。可知顾客的平均等待时间为0.317 1小时,等待时间超过0.666 7小时(40分钟)的概率为8.58%,超过1小时的概率为3.52%。随着银行业竞争的日益加剧,处于长期等待状态的这部分顾客会对银行的服务质量增加不满和抱怨,银行将面临损失这部分顾客的可能。
3. 3灵敏度分析
灵敏度分析是分析一个系统或模型的状态或输出变化对系统参数或周围条件变化的敏感程度的方法。通过灵敏度分析可以确定哪些参数对系统或模型有较大的影响。Crystal Ball对顾客平均等待时间的灵敏度分析,见图5。图5显示的灵敏度分析是由秩相关系数度量的,秩相关系数提供了各种假设和预测变量共同变化程度的度量。图5显示,顾客平均到达率λ、业务员平均服务率μ和平均等待时间的相关度为0.84、-0.36。表明顾客平均到达率λ和增加平均等待时间之间存在显著正相关,业务员平均服务率μ和减少平均等待时间存在一定负相关。可知,业务员平均服务率μ的提升在一定程度上可以缩短顾客等待时间。
4 结 论
本文利用Excel的加载宏软件Crystal Ball 对一个简化的银行排队问题进行模拟和分析。对于目前的银行排队难这一问题,希望银行短期内通过快速开设新的网点加以改善的做法难切实际,而通过增加现有网点服务窗口的个数则是可能被银行接受的方案。增加窗口的投入和提高的顾客满意度之间存在什么关系,很难做出定量的回答。而本文提供的方法,避开了设计复杂的程序和烦琐的计算机编程语言的的障碍,利用一般管理人员熟悉的Excel实现蒙特卡罗模拟,为银行的设计者和管理者方便地做出切合实际的解决方案提供科学的根据和启示。
但由于搜集的实际数据的限制,本文只对部分输入变量的分布进行了假设,因此得出的结论有一定局限性。但本文的主要目的是探讨一种运用系统模拟的思想对实际问题进行建模并揭示其内在规律的方法。例如,在实际运用中,可以根据顾客的到达率的统计数据拟合出具体的分布规律;再者,对于多服务台的情形,运用Excel的IF函数实现到达顾客的选择,可以更加真实地刻画实际情况。这些方面都可以作为进一步改善排队模型的出发点。
主要参考文献
[1] 本书编写组. 运筹学[M]. 北京:清华大学出版社,1990:310-315.
[2] James R Evans,David L Olson.数据模型与决策[M]. 北京:中国人民大学出版社,2006.
[3] 方再根. 计算机模拟和蒙特卡罗方法[M]. 北京:北京工业学院出版社,1988:1-15,45-48.
[4] Averill M Law,W David Ke1Lon. Simulation Modeling and Analysis(third edition)[M]. NewYork:Mcgraw-Hill,2000: 1-6,90-93,655.
[5] Kaboudan,M A. A Dynamic-server Queuing Simulation[J].Computers Operations Research,1998,25(6):431-439.