物流中心选址重心法c++程序设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ii i i i i 单一物流中心选址重心法 c++程序设计 (选址)某企业有五个供应商,他们的位置分别是(4+i,4+i),(12+i,4+i ),(2+i,7+i), (11+i,11+i),(7+i,14+i),该企业从这五个供应商处的采购量每年为 4+i、3+i、2+i、4+i、1+i,假设运输费率相同,i 为序号的末位数。请用计算机编写一个通用程 序,完成下面的题目。 用城市距离为该企业推荐一个地址,使该企业的费用最省。 将第 1 问中的结果作为一个初始解,用欧氏距离进行重新优化,推荐一个最优的位置。 要求: 前后两次结果之差小于 0.001; 程序的通用性高,可以满足任何多个供应商; 程序的可读性强; 操作界面友好; 在手册中要记录所有的程序、运行结果及相关界面图形。 解: 图 供应地和需求地分布情况 重心法是一种模拟方法。这种方法将物流系统中的需求点和资源点看成是分布 在某一平面范围内的物流系统,各点的需求量和资源量分别看成是物体的重量,物体 系统的重心作为物流网点的最佳设置点,利用求物体系统重心的方法来确定物流网点 的位置。 运输总费用 minTC ? 式中:Vi—i 点运输量; 1 m? n ? V R d i ? 1  (1) 220 ??X 2 2 0 ? ?X R  i  —待定物流中心到 i 点的运输费率; di—待定物流中心到 i 点的距离。 求解算法—数值分析法(重心法) 1) 设供应点和需求点所在地的坐标为(Xi,Yi),待定物流中心的位置坐标为 (X  0 ,Y  0 ) 则  d i ?  ?Xi?X 0 ???Yi?Y0?  (2) 2) 将(2)式代入(1)式,然后求运输总费用 TC 对 X0 和 Y0 的偏导数,并令其等 于零。 TC ? ?Vi Ri ( X i ?X 0 )  2 ?(Yi ?Y0 )  2 ?TC ?X0  ??  ?  Vi  Ri ( X  i ?X d i  0 )  ?0 ?  Vi Ri X i Vi Ri d i d i  ?0 X 0 ? ?(Vi Ri X i d i ) ?(Vi Ri d i )  (3) Y0 ? ?(Vi Ri Yi d i ) ?(Vi Ri d i )  (4) 上述两式中仍含有未知数 di,因此一次不能求得 X0 和 Y0(解析解),需要通过迭代收敛 法得到数值解。 迭代收敛法具体步骤: 1、先用重心公式估算初始选址点(大致位置): X  0  ? ?(Vi Ri X i ) ?(Vi Ri )  (5) Y0 ? ?(Vi Ri Yi ) ?(Vi Ri )  (6) 2、将 X  0 和 Y  0 代入公式 2,计算 d i(i=1,2,…,m+n); 3、将 di 代入公式 3 和 4,解出修正值 X0 和 Y0; 4、根据修正值 X 0 和 Y 0 ,再重新计算 d i; 5、重复步骤 3 和 4,直至 X0 和 Y0 的值在连续迭代过程中不再变化,即△ 2 X  0  ≈0,△Y  0  ≈0,即得到精确仓库选址位置,继续计算无意义。 程序设计具体步骤: Step1: 利用几何重心公式(5)和(6)估算初始点 X0,Y0 X 0 ? ?(Vi Ri X i ) ?(Vi Ri ) Y0 Step2:  ? ?(Vi Ri Yi ) ?(Vi Ri ) 将 X  0 ,Y  0 代入距离公式(2),计算 d i(i=1,2,…,5) d 1 ? ( X 1 ?X 0 ) 2 ?(Y1 ?Y0 ) 2 d 2 ?  ( X 2 ?X 0 )  2  ?(Y2 ?Y0 )  2 d 3 ?  ( X 3 ?X 0 )  2  ?(Y3 ?Y0 )  2 d 4 ?  ( X 4 ?X 0 )  2  ?(Y4 ?Y0 )  2 d  5  ?  ( X  5  ?X  0  )  2  ?(Y5  ?Y0  )  2 Step3: 将 d  i  (i=1,2,…,5)代入公式 3 和公式 4,修正值 X  0  和 Y  0 X  0  ? ?(Vi Ri X i d i ) ?(Vi Ri d i ) Y0 ? ?(Vi Ri Yi d i ) ?(Vi Ri d i ) Step4: 重复步骤 2 和 3,直至修正值 X0 和 Y0 的值在连续迭代过程中不再变化。(用 C++程序进 行编译),程序如下所示: #include iostream.h #include math.h #include stdlib.h

文档评论(0)

lihuamei118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档