最专业的工业工程技术网站-京华孤客的IE博客

原创与转载工业工程文章、实战经验,介绍最新工业工程软件,最新最好的工业工程资料下载。请记住我们的域名:www.ie-blog.com
An Industrial Engineering Blog

« [原创]《crystal ball 完美体验》ing...... 国外名校留学生谈工业工程(转自搜狐教育) »

[原创]《crystal ball 完美体验》(2)

“还有没有其他解法?”
“这个问题问得好!”京华把声音稍稍提高了,好像有些激动。“还有一种更好的方法,叫做模拟法,或者叫做仿真。”
“模拟?是什么?”
“模拟法实际上是通过建立某些决策问题的数学或者逻辑模型并进行试验来帮助解决决策问题。你知道,有些问题是不能用数学分析的方法解决的,比如上面所说的报童问题,是一种不确定性问题,如果扩展到很复杂的库存问题,那么数学分析方法就显得很吃力,这个时候模拟法就成了解决这类问题的最佳方法。”
“举几个例子,模拟主要用在什么方面?”何炎看起来不是很理解。
“ok!有一个领域你也可以想到,那就是军事模拟,神舟5号航天飞船发射之前,宇航员肯定经历一个在虚拟太空环境中生活的过程,这种模拟可以说是最高级的模拟了,是一种实体模拟。还有人在研究导弹、洲际导弹等武器的飞行轨迹,这也是模拟,但是这些多数是通过计算机建立数学模型来模拟的。”
“原来模拟的作用这么重要!”
“还不止,模拟更广泛地应用在制造业和服务业。当然制造业的应用更多,比如生产和装配模拟、生产计划模拟、设备可靠性模拟、库存管理模拟,哦,现在物流模拟很流行!”
“那服务业呢?”
“这个行业的应用相对少一点,但是依现在的形势看,也逐渐受到重视了。知道排队论吗?很多大型超市和机场已经应用排队论和模拟技术模拟和优化排队系统。想象一下你驾车在高速公路上面跑,下高速的时候需要经过收费站,很多时候你必须排队经过收费站,这时候就可以用模拟来确定需要设置几个收费窗口。最明显的就是你自己超市的收银台,可以用模拟技术来评价和优化一下。”
“上大学那会听过排队论,因为曾经学过一门选修课,好像叫运筹学。”
“对,排队论是运筹学的一部分内容。”
“那怎么用模拟技术来解决我这个问题呢?”
“当然用计算机来模拟,但小型问题可以手工模拟,可是现在计算机技术这么发达,谁还用手工的呢?”
“但是有一个问题,对于我们这些学管理的人来说,数学建模无疑比登天还难!”
“这个问题提得很好!其实我也最讨厌那些数学公式,我主张用最简明的方法解决问题,换个说法,如果解决问题能像看图识字一样简单就好了!”
“看图识字!很新鲜的概念!”
“这不是我的发明,这是我高中一位物理老师的口头禅,那时他老说学物理就是看图识字,可是我从来就没有把物理学明白过!”
“有意思!那么你能不能将用模拟技术解决问题的方法变得像看图识字一样简单?”何炎笑了。
“当然可以!”京华回答得很肯定,似乎早有准备。
“如何?”
“用crystal ball!”
“crystal ball?水晶球,是什么玩艺?”
“是一个软件,一个商业风险分析和评估软件,有了它,决策就相当于看图识字了!”
“真有那么厉害?”何炎有点怀疑。
“可能我说得夸张了点,但是说它简单易用、功能强大一点也不为过!crystal ball是美国Decisioneering公司开发的商业风险分析和评估软件,有些人叫它作决策工程公司,但是我觉得别扭我就不翻译过来了。有两个数据可以证明我说的话不假!<<财富>>评出的全球500强大企业中早已有400家使用Crystal Ball软件作为他们进行商务决策,项目投资风险分析的工具;美国前50名最佳MBA商学院,已有40所也用Crystal Ball作为教研和商业性课题的工具。”
“你说的应该都是真的,但是crystal ball到底可以用来干吗呢?除了刚才你说的可以用来解决我的问题。”
“我知道你早晚会问这个问题。商业风险分析和评估软件,顾名思义,就是用在风险分析中的。假如你是一个投资者,在投资前你必须做的是分析风险,比如回报率、收益率等指标的期望值是多少,crystal ball可以帮你模拟出你想要的结论。简单地说,crystal ball可以用于市场销售分析与预测 、实物期权分析和预测、成本估算科学化、项目管理、投资组合分析、工程技术等领域。最神奇的是,crystal ball还可以用来做Six Sigma!”
“六西格玛,我听说过,最近传出我们超市高层正在商议在超市实施六西格玛管理的方案。”
“哦,是吗?把我们公司推荐给你们领导吧,在六西格玛咨询方面我们在业界还是有一定影响力的。”
“这事以后再说吧,我也不确定这消息正不正确。接着说crystal ball。”
“ok!crystal ball其实是基于Excel运行的,可以说是一个Add-in。”
“Add-in?是什么?”
“你熟悉Excel吗?”
“当然,excel是我们这些管理层吃饭的家伙!”
“那怎么会不知道Add-in呢?Add-in是外国人的说法,翻译过来你可以说成嵌入宏。”
“宏我倒是听过,但是不熟。”
“外国开发的Add-in很多,国内开发的我还没有见过,大概大家都没有认识到excel的强大功能吧!”
“excel的功能不是只是做报表、画图、保存数据吗?难道还有更强大的功能?”
“是的,还有一些功能不常用,但是在某些时候特别有用!”京华特别强调了“特别”两个字。
“比如?”
“比如线性规划和它的数据分析,可以和一些专业统计软件媲美。再有它的VBA编辑器,可以辅助进行自动化办公、工程数据处理。crystal ball可能就是用VBA开发的。”
“长见识了,这些我以前都没有听说过。”
“没有听过很正常,毕竟这些功能不被广泛使用。”
“既然crystal ball是基于excel的,那么它是怎么模拟的呢?”
“crystal ball使用的是蒙特卡洛方法,蒙特卡洛也就是monte carlo,m-o-n-t-e-c-a-r-l-o,音译。”
“没有听过,是一种模拟方法吗?”
“可以说是。听过蒙特卡洛赌场吗?”
“没有,难道赌场和模拟有关系吗?”
“是的。蒙特卡洛方法其实是一种随机模拟。蒙特卡洛其实是摩纳哥最大的城市,以优美的景色和豪华赌场闻名于世。蒙特卡洛赌场里面有一种轮盘赌,它有很大的随机性,于是研究者们就依据这个相似性杜撰了蒙特卡洛这个术语。”
“轮盘赌?有点耳熟。”
“我知道你在想什么,你一定是在想那些娱乐节目中的转盘游戏,指针指向哪一块就可以拿多少奖金那种,嗯,有点类似。”
“那给我讲讲轮盘赌是怎么玩的?”
“美式轮盘上有38个位置:0、00和1-36,标记1-36的一半的位置为红色,另一半为黑色,0和00两个位置为绿色。有几种赌法:第一种赌红或黑,每次比如说赌1元,赔率1:1;第二种赌绿的,赔率17:1,要是你赢了,你可以拿17倍你的赌注,输了的话就损失1单位赌注。这就是所谓的轮盘赌。”
“有意思,但是这个和随机有什么联系?”
“当然有联系,你想一下,每次转的结果不是随机的吗?”
“那如果我去玩这个轮盘赌,赢的几率有多大?”
“不知道,不过我可以用计算机模拟一下就知道了。但是不是在今天。”
“我估计赢的几率也不大,要不庄家就不会设这个游戏了。”
“言归正传!其实蒙特卡洛模拟最先使用是在研制原子弹期间作为核裂变计算机模拟的代码名称,此后人们就一直沿用这个名称。”
“那么蒙特卡洛模拟是怎么进行的,也就是说它的原理是什么?”
“其实也很简单,不过先让我喝口可乐再说。”说完京华就猛喝了几口可乐,似乎口干舌燥得很。
“ok,继续。”京华咽下最后一口可乐,“你应该学过概率,概率研究的是随机性、不确定性和量化各种结果出现的可能性。从长期来看,概率近似等于平均值。比如...嗯...举个什么例子呢...假若你掷一个骰子,正六面体,那么每一面出现的概率是1/6,如果你掷1000次或者更多,那么每一面出现的次数会近似相等,都近似等于总次数的1/6。实验的次数越多那么这个值就越接近1/6。实际上蒙特卡洛方法是利用随机数进行模拟的。所以说,蒙特卡洛方法的基本思想是人为地构造出一个合适的概率模型,依照该模型产生随机数进行大量的统计实验,使它的某些统计参量正好是待求问题的解。不知道我这样说你明白多少。”
“说真的理解起来有点困难,能不能多举几个例子?”
“呵呵,这对我来说也有点难,一时间我也想不出有什么容易理解的例子,哦,这个例子可能比较容易理解。”
“什么例子?”
“利用蒙特卡洛模拟法求余弦曲线与坐标轴之间的面积。”
“哦,这个也可以?”
“嗯,可以的。我们来考虑在-pi/2和pi/2之间的余弦曲线,它是一个小山丘的形状,y轴穿过最高点,我们要求出这一段曲线和x轴之间的面积。也许有张图的话容易理解,嗯,你先想想你的答案,我进去找纸笔。”说完京华就起身进了房间。何炎托着下巴,显然正在思考这个问题。
“想好了没有?”京华从房间里出来,手里拿着一迭纸和一支圆珠笔。
“如果我没有记错的话,面积应该是2。”
“没错,用解析法求解的话的确是2。”
“那用蒙特卡洛法呢?”
“接近2,但是不等于2。”
“怎么求解?”
“我先画一张图,这样容易理解。”京华在一张纸上画下了一个大大的余弦函数曲线,几乎充满了整张纸。何炎虽然不知道京华缘何把图画这么大,但是他想京华这样做有他的道理。
“等等,还缺一样东西。”京华画完了曲线,站起身又进了房间。何炎越来越觉得奇怪,不知道京华葫芦里卖的是什么药。
京华进去之后,何炎就拿起那张纸看了起来,他发现京华不但画了一条曲线,而且还在曲线的外面画了一个四边形,四边形的宽度正好是余弦曲线的x轴长度,高度是曲线最高点的两倍。正当何炎百思不得其解的时候,传来了京华的声音。
“这东西很难找啊!”京华从房间里面出来。“我费了老大神才找到这个稍微合适的。”
“是什么东西?”
“也没什么,圆珠笔笔芯的笔尖,我刚刚从一支旧圆珠笔上拧下来的,擦干净了。”
“干什么用的?”
“一会你就知道了,”京华故作神秘。“我们来做一个试验。”京华重新坐下,将那张纸铺平。
“来看这条曲线和外面这个四边形,首先,这条曲线包围的面积和这个四边形的面积的比是固定的,是吧?”
“当然是。”
“如果我将这个笔尖抛到四边形区域内,那么这个笔尖落在四边形区域任意位置的概率是一样的。”
“让我想想,嗯...对,是一样的。”
“那么如果我抛很多次,落在曲线包围面积内的次数和落在曲线外面但在四边形区域内的次数的比例将会接近一个值,如果我知道这个值,我就可以求出曲线包围的面积。”
“为什么呢,如何求?”
“你想啊,既然笔尖落在四边形区域任意位置的概率是一样的,那么它落在曲线包围面积内的次数和落在曲线外面但在四边形区域内的次数是不是跟它们的面积有关呢?”
“这个...”何炎好像不是很理解。
“你看曲线下面的面积是不是比剩下的区域小呢?那么落在曲线下面的次数也一定比落在曲线外面的次数少。可以说近似成正比。”说着,京华将笔尖抛到四边形区域内,正好落在曲线包围下的面积之中。“如果我抛一万次或者更多,然后纪录落在曲线内外各自的次数,实际上只需纪录落在曲线内的次数就行了,然后...”
“然后曲线包围的面积就等于落在曲线内的次数与总次数之比再乘上四边形的面积!”何炎突然迸出这一句,恍然大悟!
“你终于领悟了!”京华笑着说,“落在曲线内的次数与总次数之比是近似等于曲线包围面积与四边形面积之比的,这样的话我们的目的就达到了!”
“但是要抛一万次或者更多次,好像不太现实。”
“是不容易,但是曾经有人做过这样的试验。1768年,一个法国数学家就曾经做过一个投针实验,目的是为了估计圆周率的值,可以说是蒙特卡洛方法的雏形。”
“说说这个实验。”
“ok!这个实验是数学史上很有名的实验。假定在水平面上画上许多距离为a的平行线,并且假定把一根长为l<a的同质均匀的针随意地掷在此平面上,和上面的例子一样,也需要投掷多次,纪录针与直线相交的次数,然后就可以用一个公式算出圆周率的值了。”
“什么公式?谁给出的?”
“布丰,就是那个数学家给出的,其实我们也可以证明,但是有点麻烦,总之布丰投针实验是利用概率和蒙特卡洛原理得到的结果。”
“我大概明白了蒙特卡洛方法的原理,但是用计算机怎么模拟蒙特卡洛呢?比如说crystal ball是怎么模拟的?”
“问得好!现在我们借助计算机来模拟比手工试验方便多了。蒙特卡洛模拟实际上是利用随机数来做试验的,拿余弦曲线那个例子来说,由计算机代替人来抛笔尖,当然计算机不会真正抛笔尖,而是产生随机数来模拟,最后统计落在曲线包围面积内的次数...”
“随机数怎么能够判断‘笔尖’落在哪个范围之内呢?”
“利用坐标值,计算机会随机产生一个x和一个y值,而将x代入y=cosx,又可以得到一个y值,很明显如果前者小于后者的话,那就可以知道这一对(x,y)值就是落在曲线下面的。”
“哦。我明白了,这一对(x,y)坐标就相当于笔尖的位置!”何炎有点兴奋,似乎豁然开朗。
“不错!”
“蒙特卡洛模拟的确是一个好方法,”何炎也好像口渴了,喝了一口可乐,“有crystal ball这个软件吗?你的电脑上?”

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206 Code detection by Codefense

Copyright(c)2008-2009 ie-blog Email:jhgk7#163.com.粤ICP备08116733号.