ExtendSim仿真实例.ppt_第1页
ExtendSim仿真实例.ppt_第2页
ExtendSim仿真实例.ppt_第3页
ExtendSim仿真实例.ppt_第4页
ExtendSim仿真实例.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

ExtendSim7 优化案例,一.优化概述,仿真优化即最优化(Optimization),是指寻找最佳的参数值,以使得目标性能最优。ExtendSim 使用的是Optimization模块(Value库)进行优化操作,该模块嵌套的是遗传算法。 对于ExtendSim来说搜寻最优解需要重复运行模型多次,运行的时间越长,找到最优解的概率越大。,ExtendSim7 优化案例,二.背景介绍,我们今天探讨的案例是一种果汁在某一区域的配送、运输、销售的例子。我们给定模型这样一个背景条件:在公园的某个报亭销售桶装的果汁,订单必须在前一天晚上下达,公司将按订单要求的时间每次一桶进行配送。如果报亭老板下单间隔过小、每次订量大公司在第二次配送时将取回第一次送过来的桶,未售完的果汁将浪费掉,如果下单间隔太大、每次订量小,将会出现缺货情况,造成缺货损失。试分析,最佳的订货时间间隔和订货量是多少?,ExtendSim7 优化案例,离散建模,连续建模,该选什么建模类型呢?,ExtendSim7 优化案例,两种主要的建模方法是连续的和离散事件建模。连续建模(过程建模)被用于描述一组数值。离散事件模型描述的是一组离散的数据。 在连续模型中,时间间隔从仿真开始时确定,并且以等长增加,值随着时间的改变而改变。在此类模型中值反应了各个时间点系统的状态。 在离散事件模型中,当且仅当有事件发生时,系统的状态才会改变。时间的改变不一定会使模型发生变化。它与连续模型不同的是仿真时间是随着事件的变化而变化,而不是相同的时间间隔。,ExtendSim7 优化案例,离散和连续建模的简单对比:,ExtendSim7 优化案例,四、模型构建,要通过仿真模拟哪些过程呢?,1.顾客到达购买果汁 2.送货车按时间表进行配货 3.缺货发生的损失 4.记录总销量,便于计算利润,先有模型, 再想问题 仿真之大忌,ExtendSim7 优化案例,三、约束条件概述:, 饮料使用饮料桶进行分配,其容量范围是1000-8000 (在案例模型中,1000是饮 料桶的最初容量设置) 一辆卡车在一天开始时运送饮料桶并在一天中按照一定周期交换(模型最初设 置为在240分钟后运送第二个饮料桶) 卡车用相同容量的饮料桶交换。饮料运送的成本为1000 $ ,饮料的成本是 1 $/ drink 假定饮料公司知道一天中何时运送饮料桶以及运送的容量,饮料桶的容量和运 送周期在一天中开始就要安排好,ExtendSim7 优化案例, 顾客购买饮料服从一个随机分布;饮料单位售价为$2.50 如果饮料桶在交换之前空的话,由于已经在排队等待的顾客会去其他地方购买以及新来的顾客也会流失导致每分钟大约损失$ 100 如果你交换饮料桶过于频繁的话,由于旧桶中的饮料会和桶一起运回而损失。 模型省略了其他开支成本,例如人力成本 模型大约运行仿真时间480分钟 (8小时),ExtendSim7 优化案例,案例模型:,ExtendSim7 优化案例,1.建立原始模型,简单模拟顾客到达和购买的过程,ExtendSim7 优化案例,模型说明: 1.设定Create模块按时间表产生实体,模拟货车按时间的送货过程。 2.用Batch模块捆绑顾客和饮料模拟顾客的购买过程。,运行模型,观察发现有以下问题: 饮料售完,缺货时顾客仍不停的到达 等待队列过长,不符合实际情况,ExtendSim7 优化案例,完成以上改善后的模型,ExtendSim7 优化案例,模型优化,使用ExtendSim进行优化,需要为我们所要求解的决策变量提供一个初始参数:运送周期为240分钟,容量为1000 drinks。,优化步骤 确定目标函数:报亭老板追求的是利润最大化。 利润=总收入总成本 收入=2.5*sold 成本:运输成本、果汁成本、时间损失成本 运输成本=1000 果汁成本=1*Size 时间成本=100*EmptyTime 利润=2.5*sold运送次数*(1000+1*Size)100*EmptyTime Num,ExtendSim7 优化案例,模型优化,MaxProfit = $2.50*#sold - #deliveries*($1000 + #drinks*$1.00) - time empty * $100-Num,两种方法: 手动试参数 利用ExtendSim的Optimizer模块实现自动寻优 在Optimizer中添加参数: 目标函数的构成是输入Optimizer模块对话框中成本方程的基础。 为Optimizer模块添加参数的一个便捷途径是使用Clone Layer工具将对话框参数 拖到该模块的图标上。这个操作又被称作clonedropping,将有关参数的信息添加 到参数表格。这个操作也可以使Optimizer模块远程阅读并改变模型中参数的数 值,这样就可以研究可行解。,ExtendSim7 优化案例,模型优化,一天中总的销售收入是通过模型计算出来的一个输出参数;它可以通过一个模块 对话框直接得到。 打开标签为“Total sales”的Exit模块 使用Clone Layer工具,拖动Total exited参数数值(不是其标签)到关闭的 Optimizer模块 当Optimizer模块的图标突出显示时,松开鼠标这将参数放置在Optimizer的参数表格中的第一行 关闭Exit模块的对话框 其他参数采取同样的方法拖取,ExtendSim7 优化案例,模型优化,特别说明: #deliveries与本例中其他决策变量不同, 运送的数目不是作为一个对话框选项直接可以得到。然而,该数值可以使用运送的频率计算出来。,设置参数的范围 现在Optimizer中已经有了必须的参数,你需要为这些参数中的一些输入范围,这样Optimizer模块才知道需要进行改变的对象(没有范围的参数将被认为是仿真的输出结果,Optimizer将不会改变它们)。对于数据表,你需要定义方程中所使用的单元。,MaxProfit = 2.50*numSold - #deliveries*(1000.0+delTankSize*1.00) -emptyTime*100-Num;,ExtendSim7 优化案例,模型优化,这个方程中唯一没有定义的参数是#deliveries,它可以通过deliveryTimes参数计算出来。 将deliveryTimes参数转化为#deliveries的方程是: #deliveries = int(endTime-1)/deliveryTimes + 1),完成后将注释方程和转换后的目标方程输入Optimizer模块。,ExtendSim7 优化案例,模型优化,运行最优化 打开Optimizer模块的对话框 选择Run Parameters 分页。由于模型中有随机因素,点击Random model部分的Quicker Defaults 按钮。这将快速设置一个随机模型中所有参数所需的多重样本,但是在默认情况下约束了样本的数量,所以可以快速得到结果。 通过点击Optimizer模块对话框中的New Run,或者点击工具栏中的Run Optimization工具,或者通过Run Run Optimization命令来运行最优化过程。当最优化过程在运行时,可以看到在Results分页表格的第一行的MaxProfit数值的变化。同时也可以看到MaxProfit和收敛数值的增加 当运行结束的时候,Optimizer模

温馨提示

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

评论

0/150

提交评论