模拟建模分析(2015)_第1页
模拟建模分析(2015)_第2页
模拟建模分析(2015)_第3页
模拟建模分析(2015)_第4页
模拟建模分析(2015)_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模拟建模模拟建模模拟的概念及作用 现实系统的数学或逻辑模型可能十分复杂,现实系统的数学或逻辑模型可能十分复杂,例如大多数例如大多数具有随机因素具有随机因素的复杂系统,其中的复杂系统,其中的一些随机性因素很难用准确的数学公式表的一些随机性因素很难用准确的数学公式表述,从而也无法对整个系统采用解析法求解。述,从而也无法对整个系统采用解析法求解。模拟是处理这类实际问题的有力工具。模拟是处理这类实际问题的有力工具。应用领域:应用领域:运输系统模拟运输系统模拟摩天大楼安全疏散系统模拟摩天大楼安全疏散系统模拟国民经济发展模拟国民经济发展模拟人口增长系统模拟人口增长系统模拟供水系统模拟供水系统模拟蒙特卡洛(

2、MonteCarlo)法,或称统计试验法、计算机随机模拟方法 蒙特卡洛法蒙特卡洛法是一种基于“随机数”,采用统计抽样方法,近似求解数学问题或物理问题的过程。 当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验的方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。这就是蒙特卡罗方法的基本思想。 计算机模拟试验过程,就是将试验过程(如投针,射击)化为数学问题,在计算机上实现。蒙特卡罗方法常以一个“概率模型”为基础,按照它所描述的过程,使用由已知分布抽样的方法,得到部分试验结果的观察值,求得问题的近似解

3、。 从这个意义上讲,蒙特卡罗方法可以部分代替物理实验,甚至可以得到物理实验难以得到的结果。用蒙特卡罗方法解决实际问题,可以直接从实际问题本直接从实际问题本身出发,而不从方程或数学表达式出发。身出发,而不从方程或数学表达式出发。它有直观、形象的特点。 对于那些需要计算多个方案的问题,使用蒙特卡罗方法有时不需要像常规方法那样逐个计算,而可以同时计算所有的方案,其全部计算量几乎与计算一个方案的计算量相当。 另外,使用蒙特卡罗方法还可以同时得到若干个所求量,而不像常规方法那样,需要逐一计算所求量。 计算机模拟计算机模拟:在已经建立的数学、逻辑模型的基础之上,通过:在已经建立的数学、逻辑模型的基础之上,

4、通过计算机试验,对一个系统按照一定的决策原则或作业规则,由计算机试验,对一个系统按照一定的决策原则或作业规则,由一个状态变换为另一个状态的行为进行描述和分析。一个状态变换为另一个状态的行为进行描述和分析。系统状态随时间而变化的动态写照系统状态随时间而变化的动态写照模拟的作用 对于很难用解析方法加以处理的问题,对于很难用解析方法加以处理的问题,模拟是一种有效的技术;模拟是一种有效的技术; 对建模过程中的假设进行鉴定,对理论对建模过程中的假设进行鉴定,对理论研究的结论加以检验;研究的结论加以检验; 对不同的实现方案进行多次模拟,按照对不同的实现方案进行多次模拟,按照既定的目标函数对不同方案进行比较

5、,既定的目标函数对不同方案进行比较,从中选择最优方案。从中选择最优方案。模拟的分类 通常,通常,模拟时间是模拟的主要自变量模拟时间是模拟的主要自变量。其他变。其他变量作为因变量来看待。量作为因变量来看待。 推进模拟时间的基本方法:推进模拟时间的基本方法: 下次事件法下次事件法:将模拟时间由一个事件发生的时:将模拟时间由一个事件发生的时间点推进到紧接着的下一次事件发生的时间点。间点推进到紧接着的下一次事件发生的时间点。-系统的状态仅在系统的状态仅在 固定时间步长法固定时间步长法:模拟时间每次均以相等的固:模拟时间每次均以相等的固定步长向前推进,每到达一个新的模拟时间点定步长向前推进,每到达一个新

6、的模拟时间点需检查相应时间段内是否发生了事件。需根据需检查相应时间段内是否发生了事件。需根据实际问题合理设置模拟时间发生改变的步长。实际问题合理设置模拟时间发生改变的步长。系统状态随时间而变化的动态写照系统状态随时间而变化的动态写照模拟的分类 根据模拟过程中因变量的变化情况进行分类:根据模拟过程中因变量的变化情况进行分类: 第一类:离散型模拟第一类:离散型模拟:因变量在与事件时间有:因变量在与事件时间有关的具体模拟时间点呈离散性变化。大多数系关的具体模拟时间点呈离散性变化。大多数系统(如排队服务系统)可采用离散型模拟。统(如排队服务系统)可采用离散型模拟。 排队系统通常采用离散型模拟模型。排队

7、系统通常采用离散型模拟模型。tQQ0ENDt只有新顾客到来或有顾客完成服务后离去,函数值才发生变化任意时刻的排队的顾客数其中,发生系统状态变化的事件有两个:其中,发生系统状态变化的事件有两个:一是有顾客到达;二是服务员完成服务。一是有顾客到达;二是服务员完成服务。将最近发生上述两种事件之一的时刻设置为下次事件发将最近发生上述两种事件之一的时刻设置为下次事件发生点,就可将服务过程描述为下图所示的模拟模型。生点,就可将服务过程描述为下图所示的模拟模型。这个问题中有两类状态变量:在等待的顾客的人数(离散的非负整数);服务员Ai是否正在工作(是或否);对任意一个模拟,首先要作的是: 找出能完全描述任意

8、时刻的系统的状态变量的集合: 从而得到平均队伍的长度,最长的队伍,顾客等待的平均时间以及两个理发员的忙闲程度等,给出能从时刻 t 的状态变量算出时刻 t+1 的新的状态变量的程序。模拟的分类 第二类:连续型模拟第二类:连续型模拟。因变量随时间的改变呈连续性。因变量随时间的改变呈连续性变化。在大多数计算机模拟过程中,按固定的步长推变化。在大多数计算机模拟过程中,按固定的步长推进模拟时间。进模拟时间。 通常需建立一系列的由系统状态变量组成的状态方程通常需建立一系列的由系统状态变量组成的状态方程组,以描述状态变量与模拟时间的关系。组,以描述状态变量与模拟时间的关系。 第三类:混合型模拟第三类:混合型

9、模拟。因变量随时间的推移而作连续。因变量随时间的推移而作连续性的变化并具有离散性的突变,如库存控制系统。性的变化并具有离散性的突变,如库存控制系统。模拟的方式 终态模拟终态模拟:在规定的时间:在规定的时间T内进行模拟运行,内进行模拟运行,时间达到时间达到T时,模拟终止。其性能指标明显取时,模拟终止。其性能指标明显取决于系统的初始状态。决于系统的初始状态。 稳态模拟稳态模拟:随着模拟时间的推移,系统的性能:随着模拟时间的推移,系统的性能逐渐趋于平稳。其目的是研究非终态系统长期逐渐趋于平稳。其目的是研究非终态系统长期运行条件下的稳态性能,模拟时间的长短取决运行条件下的稳态性能,模拟时间的长短取决于

10、能否获得系统性能的优良估计(可由模拟输于能否获得系统性能的优良估计(可由模拟输出的精度确定)。出的精度确定)。模拟的一般步骤模拟的一般步骤 明确问题,建立模型。明确问题,建立模型。明确模拟目的,确定模拟输出结果的目标函数分析各状态变量之间关系,建立系统模型 收集和整理数据资料。特别是随机性资料。收集和整理数据资料。特别是随机性资料。分析收集的随机数据,确定系统中随机性因素的概率分布特征,以此为依据产生抽样数据 编制程序,模拟运行。编制程序,模拟运行。编程、设定初始状态,模拟运行时间、随机样本量、模拟运行次数 分析模拟输出结果:分析模拟输出结果:模拟结果的统计特性(模拟结果的统计特性(样本均值、

11、方差、置信区间等)灵敏性分析(灵敏性分析(输入参数做微小变化是否导致输出结果巨大改变)选择最优方案。选择最优方案。系统用其他方法是是否用仿真否构造模型数据准备编程程序运行分析仿真结果结果是否充分是停止否模型是否有效修改模型策略或重复运行是否修改模型系统模拟注意事项:系统模拟注意事项:l一次模拟结果毫无意义!一次模拟结果毫无意义!l模拟是试验性的模拟是试验性的, ,是思维结果的验证。是思维结果的验证。l必须进行足够多次的模拟,并对结果进行统计分必须进行足够多次的模拟,并对结果进行统计分析。析。 随机数的产生随机数的产生 数学方法常见产生均匀分布随机数的几种方法的有平数学方法常见产生均匀分布随机数

12、的几种方法的有平方取中法、倍积取中法、乘同余法、二阶与三阶线性方取中法、倍积取中法、乘同余法、二阶与三阶线性同余法同余法 由均匀分布产生各种分布的随机数、反函数法、取舍由均匀分布产生各种分布的随机数、反函数法、取舍法、法、Box-Muller方法和极方法方法和极方法。 。 随机数的产生随机数的产生 :二项分布随机数据二项分布随机数据 正态分布的随机数据的产生正态分布的随机数据的产生 randperm(n):产生一个1到n的随机顺序。randint(m,n,1 N):生成mn的在1到N之间的随机整数矩阵,rand(m,n):生成0到1之间的mn的随机数矩阵 randn是均值为0方差为1的正态分布

13、 常见分布的随机数产生常见分布的随机数产生 例例在我方某前沿防守地域,敌人以一个炮排(含两在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏为躲避我方门火炮)为单位对我方进行干扰和破坏为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地打击,敌方对其阵地进行了伪装并经常变换射击地点点 经过长期观察发现,我方指挥所对敌方目标的指经过长期观察发现,我方指挥所对敌方目标的指示有示有5050是准确的,而我方火力单位,在指示正确是准确的,而我方火力单位,在指示正确时,有时,有1/31/3的射击效果能毁伤敌人一门火炮,有的射击效果能毁伤敌人一门火炮,有1/61/6的射击效果能全

14、部消灭敌人的射击效果能全部消灭敌人 现在希望能用某种方式把我方将要对敌人实施现在希望能用某种方式把我方将要对敌人实施的的2020次打击结果显现出来,确定有效射击的比率及次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。毁伤敌方火炮的平均值。分析:分析:这是一个概率问题,可以通过理论计算得到这是一个概率问题,可以通过理论计算得到相应的概率和期望值相应的概率和期望值. .但这样只能给出作战行动的但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程最终静态结果,而显示不出作战行动的动态过程. . 为了能显示我方为了能显示我方2020次射击的过程,现采用模拟的方式。次射击的过

15、程,现采用模拟的方式。 需要模拟出以下两件事:需要模拟出以下两件事: 1. 1. 问题分析问题分析2 2 当指示正确时,我方火力单位的射击结果情况当指示正确时,我方火力单位的射击结果情况1 1 观察所对目标的指示正确与否观察所对目标的指示正确与否模拟试验有两种结果,每一种结果出现的概率都是模拟试验有两种结果,每一种结果出现的概率都是1/21/2 因此,因此,可用投掷一枚硬币的方式予以确定可用投掷一枚硬币的方式予以确定,当硬币出现正面时为,当硬币出现正面时为指示正确,反之为不正确指示正确,反之为不正确 模拟试验有三种结果:毁伤一门火炮的可能性为模拟试验有三种结果:毁伤一门火炮的可能性为1/3(1

16、/3(即即2/6)2/6),毁伤两门的可能性为毁伤两门的可能性为1/61/6,没能毁伤敌火炮的可能性为,没能毁伤敌火炮的可能性为1/2(1/2(即即3/6)3/6) 这时这时可用投掷骰子的方法来确定可用投掷骰子的方法来确定:如果出现的是、三个点:则认为没能击中敌人;如果出现的是、三个点:则认为没能击中敌人;如果出现的是、点:则认为毁伤敌人一门火炮;如果出现的是、点:则认为毁伤敌人一门火炮;若出现的是点:则认为毁伤敌人两门火炮若出现的是点:则认为毁伤敌人两门火炮2. 2. 符号假设符号假设i i:要模拟的打击次数;要模拟的打击次数; k k1 1:没击中敌人火炮的射击总数;没击中敌人火炮的射击总

17、数; k k2 2:击中敌人一门火炮的射击总数;击中敌人一门火炮的射击总数;k k3 3:击中敌人两门火炮的射击总数击中敌人两门火炮的射击总数E E:有效射击比率;有效射击比率; E E1 1:2020次射击平均每次毁伤敌人的火炮数次射击平均每次毁伤敌人的火炮数3. 3. 模拟框图模拟框图初始化:i=0,k1=0,k2=0,k3=0i=i+1骰子点数?k1=k1+1k2=k2+1k3=k3+1k1=k1+1i20?E=(k2+k3)/20 E1=0*k1/20+1*k2/20+2*k3/20停止硬币正面?YNNY1,2,34,56 理论计算和模拟结果的比较 分类 项目 无效射击 有效射击 平均

18、值 模 拟 74 26 34 理 论 R2=unidrnd(6) 企业生产的库存系统企业生产的库存系统 在销售部门、工厂等领域中都存在库存问题,库存太多造成在销售部门、工厂等领域中都存在库存问题,库存太多造成浪费以及资金积压,库存少了不能满足需求也造成损失,部门的浪费以及资金积压,库存少了不能满足需求也造成损失,部门的工作人员需要决定何时进货,进多少,使得所花费的平均费用最工作人员需要决定何时进货,进多少,使得所花费的平均费用最少,而收益最大,这就是库存问题少,而收益最大,这就是库存问题 某企业生产易变质的产品当天生产的产品必须当天售出,某企业生产易变质的产品当天生产的产品必须当天售出,否则就

19、会变质该产品单位成本为否则就会变质该产品单位成本为25 元,单位产品售价为元,单位产品售价为5 元企业为避免存货过多而造成损失,拟从以下两种库存方案中元企业为避免存货过多而造成损失,拟从以下两种库存方案中选出一个较优的方案选出一个较优的方案 方案甲:按前一天的销售量作为当天的货存量;方案甲:按前一天的销售量作为当天的货存量; 方案乙:按前二天的平均销售量作为当天的货存量;方案乙:按前二天的平均销售量作为当天的货存量; 假定市场对该产品的每天需求量是一个随机变量,但从以往假定市场对该产品的每天需求量是一个随机变量,但从以往的统计分析得知它服从正态分布的统计分析得知它服从正态分布 2(135,22

20、.4 )N用蒙特卡洛法解非线性规划问题用蒙特卡洛法解非线性规划问题对于非非线线性性规规划划问问题题: min f(X) XnE s.t. 0)(Xgi i=1,2, m jjjbxa j=1,2, n基本假设基本假设 试验点的第试验点的第j j个分量个分量x xj j服从服从 a aj j ,b ,bj j 内的均匀分布内的均匀分布符号假设 P: 试验点总数;MAXP:最大试验点总数;K: 可行点总数; MAXK:最大可行点数;X*:迭代产生的最优点; Q:迭代产生的最小值 f(X*),其初始值为计算机所能表示的最大数求解过程求解过程 先产生一个随机数作为初始试验点先产生一个随机数作为初始试验

21、点, ,以后则将上一个试验以后则将上一个试验点的第点的第j j个分量随机产生,其它分量不变而产生一新的试验个分量随机产生,其它分量不变而产生一新的试验点这样,每产生一个新试验点只需一个新的随机数分点这样,每产生一个新试验点只需一个新的随机数分量当量当KMAXKKMAXK或或PMAXPPMAXP时停止迭代时停止迭代框框 图图初始化:给定MAXK,MAXP;k=0,p=0,Q:大整数xj=aj+R(bj-aj) j=1,2,nj=0j=j+1,p=p+1PMAXP?YNxj=aj+R(bj-aj)gi(X)0?i=1,2nYNjMAXK?YN输出X,Q,停止YN 例例 max 2121222138

22、2xxxxxxz s.t 10321 xx 01x 02x 在在MatlabMatlab软件包中编程,共需三个文件软件包中编程,共需三个文件: :randlp.mrandlp.m, , mylp.m,mylp.m, lpconst.m.lpconst.m.主程序为主程序为randlp.m.randlp.m.% mylp.mfunction z=mylp(x) %目标函数目标函数z=2*x(1)2+x(2)2-x(1)*x(2)-8*x(1)-3*x(2); %转化为求最小值问题转化为求最小值问题% lpconst.m% lpconst.m function lpc=lpconst(x) %约束

23、条件 if 3*x(1)+x(2) -10= -0.5 %约束条件的误差为5 .0 lpc=1; else lpc=0; end % randlp.m function sol,r1,r2=randlp(a,b,n) %随机模拟解非线性规划随机模拟解非线性规划debug=1;a=0; %试验点下界试验点下界b=10; %试验点上界试验点上界n=1000; %试验点个数试验点个数r1=unifrnd(a,b,n,1);%n1阶的阶的a,b均匀分布随机数矩阵均匀分布随机数矩阵r2=unifrnd(a,b,n,1);sol=r1(1) r2(1);z0=inf;for i=1:n x1=r1(i);

24、 x2=r2(i); lpc=lpconst(x1 x2); if lpc=1 z=mylp(x1 x2); if zz0 z0=z; sol=x1 x2; end endend 在计算机上产生随机数最实用、最常见的方法是数学方法,即用如下递推公式: 产生随机数序列。对于给定的初始值1,2,k,确定n+k,=1,2,。, 2 , 1),(11nTknnnkn 用数学方法产生的随机数,存在两个问题:递推公式和初始值递推公式和初始值1,2,k确定后,整个随机数序确定后,整个随机数序列便被唯一确定。列便被唯一确定。不满足随机数相互独立的要求。由于随机数序列是由递推公式确定的,而在计算机上所能表示的0

25、,1上的数又是有限的,因此,这种方法产生的随机数序列就不可能不出现无限重复。a) 随机数序列便出现了周期性的循环现象出现了周期性的循环现象。 由于这两个问题的存在,常称用数学方法产生的随机数为伪随机数。对于以上存在的两个问题,作如下具体分析。 关于第一个问题,不能从本质上加以改变,但只要递推公式选得比较好,随机数间的相互独立性是可相互独立性是可以近似满足以近似满足的。至于第二个问题,则不是本质的。因为用蒙特卡罗方法解任何具体问题时,所使用的随机数的个数总是有限的,只要所用随机数的个数不超过随机数的个数不超过伪随机数序列出现循环现象时的长度伪随机数序列出现循环现象时的长度就可以了。 用数学方法产

26、生的伪随机数容易在计算机上得到,可以进行复算,而且不受计算机型号的限制。因此,这种方法虽然存在着一些问题,但仍然被广泛地在计算机上使用,是在计算机上产生伪随机数的主要方法。 一道工序用自动化车床连续加工某种零件,由于刀具损坏等原因该工序会出现故障,其中刀具损坏故障占95%,其它故障仅占5%。工序出现故障是完全随机的,假定在生产任一零件时出现故障的机会均相同。工作人员通过检查零件来确定工序是否出现故障。 现积累有100次刀具故障记录,故障出现时该刀具完成的零件数如附表。现计划在刀具加工一定件数后定期更换新刀具。 已知生产工序的费用参数如下: 故障时产出的零件损失费用 f = 200元/件; 进行

27、检查的费用 x = 10元/次; 发现故障进行调节使恢复正常的平均费用 d = 3000元/次 未发现故障时更换一把新刀具的费用 k = 1000元/次。1)假定工序故障时产出的零件均为不合格品,正常时产出的零件均为合格品,试对该工序设计效益最好的检查间隔和刀具更换策略。2)如果该工序正常时产出的零件不全是合格品,有2%为不合格品:而工序故障时产出的零件有40%为合格品,60%为不合格品。工序正常而误认为有故障停机产生的损失费用为1500元/次。对该工序设计效益最好的检查间隔和刀具更换策略。1999年年A题题 自动化车床管理自动化车床管理 较复杂的非线性优化问题1、验证模型的正确性,采用计算机

28、模拟以零件的序列为模拟序列确定随机事件,如主要随机事件-刀具的损害作为,可分析证明刀具寿命服从正态分布编制程序模拟事件发生过程对不同的给定检查间隔和换刀间隔进行模拟,得到单位零件平均工作周期内的资金损耗比较模型结果和模拟结果2、检验假设如第二问中,加入了随机因子,问题更为复杂,建模过程中不免加入一些假设使问题更简单化。如由于非刀具故障占总故障的百分比较小,为5%,故假设其对结果影响不大,从而不考虑非刀具故障。可通过计算机模拟对此假设进行验证。3、对多个策略进行仿真比较如对问题二通过分析提出如下几个检查策略(h为检查间隔)策略1、检查第h个零件,如为正品,则继续生产;如为废品,停止生产,换刀。策略2、检查第h个零件,如为正品,则继续生产;如为废品,则检查第h+1个,若正品,继续生产,如废品,换刀。策略3、检查第h个零件,如为废品,则换刀;如为正品,则检查第h+1个,若正品,继续生产,如废品,换刀。策略4、检查第h和h+1个零件,如两件都为正品,则继续生产;如两件都为废品,换刀;如一正一费,则检查第h+2个,若正品,继续生产,如废品,换刀。至多到T个产品一定换刀

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论