案例说明市场和供应链模型_第1页
案例说明市场和供应链模型_第2页
案例说明市场和供应链模型_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、AB Market and SD Supply Chain一模型简介问题定义:假设我们使这个市场类似于经典的创新扩散模型。例如带有淘汰和替换的模型。然而我们考虑两种竞争的,而不是一种。l有两种可以替代的由不同公司制造的A 和B,它们是相当的,可以互相替代。的价格相同。l消费者(总量有 1000)最初的时候不适用任何,但是都比较有(这些是潜在的用户)。l消费者对和口头宣传比较敏感。l激发了潜在用户的需求效应=0.011 表示的是潜在的用户一天之中变成准备好买某种特殊(A 或者 B)的百分比。两个公司都做。l消费者互相接触,平均一天要与 5 个人接触。l在接触期间,正在使用某种的用户可能会影响潜在

2、的用户。比如一个 A的使用者,接触一个潜在用户,这个潜在用户有 0.015 的可能性买 A,对B 也一样。l任何在 uniform(17,23)天后都会被丢弃,并立即产生一个对于相同品牌代替品的需求。l如果一个人想要买 A,但是 A 在最长等待时间 2 天内不能得到,那么他将愿意买任何能获得的。每个公司(A 和 B)有各自的供应链来运送他们的到终端用户。这个供应链非常简单,并按照下面规则工作:l这个只能从零售商库存被用户,在开始阶段零售商库存有一定的库存(零售商初始库存=100)l由生产商制造。生产商每天按照生产率来生产,并且这个生产率可能变化,而且可以根据需求(生产商知道需求)来调节。l完成

3、的在 2 天内运送到零售商。这个消费者市场用基于方法来建模的:每个消费者是一个。A 和B的供应链是用系统动态的方法来建模的。要注意的是这个问题的定义许多其他选择-当前只是其中之一。模型的输出包括A 和B 的市场份额和需求(比如当缺货的时候想要买的人数)。二 建模步骤第一步:建立模型(同 Billing Department)。该模型利用了 Agent-based 和 system Dynamic 两种建模方法。1 点击模型,Time units 选择 days。第二步:创建两个公司的供应链。1. 点击 System Dynamics,向 main 中拖入四个 Stock 和四个 Flow,分别

4、命名为FactoryStockA、RetailerStockA、FactoryStockB 和 RetailerStockB,ProductionA、DeliveryA、ProductionB 和 DevileryB。具体的位置图如图 1:图 12. 点击ProductionA,ProductionA=填入 0,并Constant。点击 FactoryStockA,Equationmode 选择 Classic。点击 DeliveryA,在 DeliveryA=里填写 FactoryStockA / 2。点击RetailerStockA,在 initial value 中填写 100,Equa

5、tion mode 选择 Classic。点击ProductionB, ProductionB=填入 0,并Constant。点击 FactoryStockB ,Equationmode 选择 Classic。点击 DeliveryB,在 DeliveryB=里填写 FactoryStockB / 2。点击RetailerStockB,在 initial value 中填写 100,Equation mode 选择 Classic。第三步:创建、设定参数。1. 右键点击左侧模型,选择 New,再选择 Active Object Class,如图 2图 2然后命名为 Consumer,在下方的编

6、辑区域Agent,如图 3图 32. 利用 Presentation 里面的 Polyline,在 Consumer 中创建如图 4 的人形图案,命名为curve,Closed curve 选项:图 4状态。点击 Statechart,从中拖入到 Consumer 中六个 State,分别代表用设置3.户的六个状态,然后利用 Statechart 里的 Transition 将不同的状态连接起来,并用Statechart Entry point 表明状态的起点,如图 5:图 5设置状态参数。点击 AdA 箭头,Trigger by 选择 Rate,Rate 为 0.011。点击 WomA,4.

7、Trigger by 选择 Message,Message type 选择 String,Fire transition 选择 if messageequals “Buy A!”。在 WantA 状态下,Entry Action 填写 curve.setFillColor( pink );。向下BuyA 中,Triggered by 选择 Condition,Condition 为 get_Main().RetailerStockA >= 1,Action 处填入get_Main().RetailerStockA-;,返回箭头DiscardA 的Triggered by为 Timeout

8、,Timeout 为 uniform(17,23)。在 UsersA 的 Entry Action 填写curve.setFillColor( red ); 其内部的transition ContactA 的Triggered type 选择Timeout,Timeout 为 1,Action 填写 send( "Buy A!", RANDOM );。向右 GiveUpWaitingA 的Triggered type 选择 Timeout,Timeout 为 2。在 WantAnything 中的 Entry Action 填写curve.setFillColor( gol

9、d ); BuyA1 的 Triggered by 选择 Condition,在 Condition 处填写get_Main().RetailerStockA >= 1,Action 处填写 get_Main().RetailerStockA-; BuyB1 的Triggered by 选择 Condition,Condition 处填写 get_Main().RetailerStockB >= 1,Action处填写 get_Main().RetailerStockB-; UsesB 处的 Entry action 填写curve.setFillColor( blue );,Co

10、ntactB 的 Triggered by 选择 Timeout,Timeout 为 1,Action处填写 send(“BuyB!”RANDOM);,DiscardB 的 Triggered by 选择Timeout,Timeout处填写 uniform(17,23),BuyB 的 Triggered by 选择 Condition,Condition 处填写get_Main().RetailerStockB >= 1,Action 填写get_Main().RetailerStockB-; WantB 的Entryaction 填写curve.setFillColor( lightB

11、lue ); GiveUpWaitingB 的Triggered by 选择Timeout,Timeout 为 2。WomB 的 Triggered by 选择 Message,Message type 选择 String,Firetransition 选择 if Message equals 处填写“Buy B!”, AdB 的 Triggered by 选择 Rate,Rate 为 0.011。设置属性。在 Agent 栏下Environment defines initial location,On message5.receive 中填入 statechart.receiveMessa

12、ge( msg );第四步:设置环境。按住左键将左侧模型下的 Consumer,拖入到 Main 的编辑区域,命名为 consumers,1.再从 General 拖入一个 Environment,命名为 environment,点击 environment,在左侧 Advanced 中的 Width 中填入 900,Height 中填入 300。点击 consumers,在下面的Environment 处填写environmentReplicated,Initial number of objects 填入 1000,Optimize 处选择 Access by index(ArrayLis

13、t)。在 consumers 的 Statistics 栏下,点击 Add statistics,加入五个统计量,Name 分别为2.NWantA、NUseA、NWantB、NUseB 和 NWantAny,Type 都 Count,Condition 分别item.statechart.isStateActive( Consumer.WantA )、item.statechart.isStateActive( Consumer.UsesA )、item.statechart.isStateActive( Consumer.WantB )、item.statechart.isStateActi

14、ve( Consumer.UsesB )和item.statechart.isStateActive( Consumer.WantAnything )在将 Consumer 拖入到Main 里面时会自动创建在Consumer 里面画好的图案(没有的3.话可以点击 Main 里面的 Consumer,然后点击 Create Presentation),将 Main 中的图案拖到合适的位置,如图 6:图 64. 点击General,拖入两个 Event,分别命名为 updateProductionA 和updateProductionB。点击 updateProductionA,在 Trigger

15、 type 处选择 Timeout,Mode 选择 Cyclic,Firstoccurrence time(absolute)填写 0,Recurrence time 填写 1,Action 处填写 ProductionA= consumers.NWantA() + consumers.NWantAny();,对于 updatePrductionB 来说设置与updateProductionA 一致,只是在 Action 处填写 ProductionB = consumers.NWantB() +consumers.NWantAny()。具体布局如图 7 所示:图 7第五步:创建界面。1. 点击Analysis,在 Main 中拖入一个Time Stack Chart,点击 Add data item,选择 Value,Title 填写Users A,Value 中填写consumers.NUseA(),再点击Add data item,选择Value,Title 填写 Demand for A,Value 中填写 consumers.NWantA(),点击 Add data item,选择 Value,Title 为 Users B,Value 处填写 consumers.NUseB(),再点击 Add data item,Tit

温馨提示

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

最新文档

评论

0/150

提交评论