重心法选址问题
- 格式:ppt
- 大小:486.50 KB
- 文档页数:12
重心法选址什么叫重心法?重心法是一种设置单个厂房或仓库的方法,这种方法主要考虑的因素是现有设施之间的距离和要运输的货物量,经常用于中间仓库或分销仓库的选择。
商品运输量是影响商品运输费用的主要因素,仓库尽可能接近运量较大的网点,从而使较大的商品运量走相对较短的路程,就是求出本地区实际商品运量的重心所在的位置。
重心法计算公式重心法首先要在坐标系中标出各个地点的位置,目的在于确定各点的相对距离。
坐标系可以随便建立。
在国际选址中,经常采用经度和纬度建立坐标。
然后,根据各点在坐标系中的横纵坐标值求出成本运输最低的位置坐标X和Y,重心法使用的公式是:公式中Cx-- 重心的x坐标;Cy-- 重心的y坐标;Dix--第i个地点的x坐标;Diy--第i个地点的y坐标;Vi--运到第i个地点或从第i个地点运出的货物量。
最后,选择求出的重心点坐标值对应的地点作为要布置设施的地点。
重心法计算的假设条件重心法是在理想条件下求出的仓库位置,但模型中的假设条件在实际会受到一定的限制。
重心法计算中简化的假设条件包括以下几方面:⑴模型常常假设需求量集中于某一点,而实际上需求来自分散于广阔区域内的多重心法选址计算:x0 = ( 30×2200+70×1800+30×1500+60×2500 ) / ( 2200+1800+1500+2500) = 48.38y0 = ( 80×2200+70×1800+30×1500+30×2500 ) / (2200+1800+1500+2500) = 52.75所以,分厂厂址的坐标为(48.38 , 52.75)。
重心法选址公式
重心法选址公式是一种常用的选址方法,可用于确定最佳商业或居住区的位置。
该公式基于人口和设施的分布情况,通过计算重心来确定最理想的位置。
重心法选址的公式如下:
重心横坐标= Σ(各点横坐标 * 对应人口数)/ 总人口数
重心纵坐标= Σ(各点纵坐标 * 对应人口数)/ 总人口数其中,横坐标和纵坐标分别表示选址区域内各点的位置,人口数表示该点的人口数量。
通过对所有点的横坐标和纵坐标乘以对应的人口数后求和,再除以总人口数,可以得到选址区域的重心坐标。
利用该公式,可以确定最佳选址区域的重心位置。
重心位置越接近人口分布的中心,表示选址越优。
精确重心法选址的python实现一、背景介绍在商业决策和城市规划中,选址是一个非常重要的问题。
选址的正确与否直接关系到企业的生存与发展,以及城市的繁荣与发展。
在选址的过程中,精确重心法是一种常用的方法。
二、精确重心法的原理精确重心法是一种以经纬度作为坐标的选址方法。
其原理是通过计算一组经纬度点的重心坐标,将其作为最佳选址的依据。
重心坐标的计算公式如下:经度的重心= Σ(经度 * 对应点的权重) / Σ(对应点的权重)纬度的重心= Σ(纬度 * 对应点的权重) / Σ(对应点的权重)三、精确重心法选址的步骤精确重心法选址的步骤如下:1. 收集数据首先需要收集一组经纬度点的数据。
这些数据可以来自于已有的地理信息系统、公开可获取的数据集,或者通过调查和采集获得。
2. 计算权重对于每个经纬度点,需要为其计算一个权重。
权重可以根据实际需求来确定,例如可以根据人口密度、交通便利程度、竞争对手数量等因素来计算。
3. 计算重心坐标利用上述给出的重心坐标计算公式,计算所有经纬度点的重心坐标。
4. 输出最佳选址将计算得到的重心坐标作为最佳选址的依据,选择离重心坐标最近的地点作为最佳选址。
四、基于Python的精确重心法选址实现下面是一个基于Python的精确重心法选址实现的示例代码:import numpy as npdef calculate_centroid(coordinates, weights):total_weight = np.sum(weights)centroid_latitude = np.sum(coordinates[:, 0] * weights) / total_weightcentroid_longitude = np.sum(coordinates[:, 1] * weights) / total_weight return (centroid_latitude, centroid_longitude)def find_best_location(coordinates, weights):centroid = calculate_centroid(coordinates, weights)best_location = Nonemin_distance = float('inf')for coordinate in coordinates:distance = np.sqrt((coordinate[0] - centroid[0])**2 + (coordinate[1] - centroid[1])**2)if distance < min_distance:min_distance = distancebest_location = coordinatereturn best_location# 示例数据coordinates = np.array([[40.7128, -74.0060], [34.0522, -118.2437], [37.7749, -122.4194]])weights = np.array([1000, 2000, 1500])best_location = find_best_location(coordinates, weights)print("最佳选址坐标:", best_location)这段代码使用了numpy库来进行矩阵运算,通过传入经纬度坐标和权重,计算得到重心坐标,并选择最近的地点作为最佳选址。
一、简单重心法(运输量重心法)单一物流中心选址---重心法公式:x0 = ( ∑ xiwi ) / ( ∑ wi)y0 = ( ∑ yiwi ) / ( ∑ wi)( x0 , y0 ) ----新设施的地址( xi , yi ) ----现有设施的位置wi ----第i个供应点的运量例题:某物流园区,每年需要从P1地运来铸铁,从P2地运来钢材,从P3地运来煤炭,从P4地运来日用百货,各地与某城市中心的距离和每年的材料运量如表所示。
请用重心法确定分厂厂址。
解:x0 = ( 20×2000+60×1200+20×1000+50×2500 ) / ( 2000+1200+1000+2500) = 35.4y0 = ( 70×2000+60×1200+20×1000+20×2500 ) / ( 2000+1200+1000+2500) = 42.1所以,分厂厂址的坐标为(35.4 , 42.1)二、迭代重心法(“运输量—运输距离—运输费率”重心法)单一物流中心选址---迭代重心法单一物流中心选址---迭代重公式:X = ( ∑Q i R i X i/D i) / ( ∑Q i R i/D i ) Y= ( ∑Q i R i Y i/D i) / ( ∑Q i R i/D i )D i= ( ( X i-X)2+(Y i-Y)2 )1/2F = ∑Q i R i D i(Xi , Yi)----现有目标的坐标位置Qi----运输量Ri----运输费率F----总运费(X , Y)----新仓库的位置坐标Di----现有目标到新仓库的距离解题方法:(1)令Di=1A、求出仓库的初始位置;B、将求出的仓库位置(X,Y)代入Di公式中,求出客户到仓库初始位置的距离;C、计算出仓库初始位置的总运费ΣQiRiDi;( 2 ) 迭代计算:A、将Di代入原公式,求出仓库的新位置坐标(X ,Y);B、将求出的(X ,Y)代入Di公式中求出Di;C、计算出仓库新位置的总运费ΣiQiRiDi…不断迭代,直到求出的仓库位置和总运费越来越接近于不变,即为所得;注意:牵涉到运输费率要用重心法做;但如无费率,又要求用迭代重心法计算,则令费率为1。
关于配送中心重心法选址的研究一、本文概述随着电子商务和物流行业的快速发展,配送中心作为物流网络中的关键节点,其选址问题日益受到业界的关注。
合理的配送中心选址不仅能够降低物流成本,提高物流效率,还能有效地优化供应链的整体性能。
重心法作为一种经典的设施选址方法,在配送中心选址中具有广泛的应用。
本文旨在对重心法在配送中心选址中的应用进行深入的研究和探讨。
本文首先介绍了配送中心选址的重要性,以及重心法的基本原理和计算方法。
在此基础上,通过文献综述的方式,对国内外关于重心法在配送中心选址中的研究进行了梳理和评价。
随后,结合具体案例,详细阐述了重心法在配送中心选址中的实际应用过程,包括数据收集、处理、模型构建和求解等步骤。
本文总结了重心法在配送中心选址中的优势与不足,并提出了相应的改进策略和建议。
本文的研究对于提高配送中心选址的科学性和合理性具有重要的理论意义和实践价值。
通过深入研究重心法在配送中心选址中的应用,不仅可以为企业提供更加科学和有效的选址决策支持,还能为物流行业的健康发展提供有力的理论支撑和实践指导。
二、文献综述配送中心选址问题是物流管理和供应链优化中的核心问题之一。
重心法作为一种经典的选址方法,在理论和实践层面均得到了广泛的研究和应用。
本文旨在对重心法在配送中心选址中的应用进行深入研究,通过对现有文献的梳理和评价,为后续的实证研究提供理论基础。
在文献综述部分,首先回顾了重心法的发展历程和基本原理。
重心法起源于物理学中的重心概念,后被引入到运筹学和物流管理中,用于解决多目标、多约束的选址问题。
该方法通过构建数学模型,将配送中心的选址问题转化为求解成本最小化或效率最大化的问题。
本文梳理了国内外学者在重心法选址研究方面的主要成果。
国内外学者在重心法的基础上进行了大量的改进和创新,如引入不同的成本函数、考虑多层次的约束条件、结合其他优化算法等。
这些研究不仅丰富了重心法的理论体系,也提高了其在实际应用中的效果。
重心法在油库选址问题中的应用文章标题:重心法在油库选址问题中的应用一、引言在油库选址问题中,重心法是一种常用的方法,它能够帮助我们寻找最佳的位置来建设油库。
在本文中,我将从简单到复杂,由浅入深地探讨重心法在油库选址中的应用。
我将首先介绍重心法的基本原理和计算方法,然后详细分析它在油库选址中的具体应用,最后总结和回顾本文内容,共享个人观点和理解。
二、重心法的基本原理和计算方法重心法是一种通过计算各个要素的重心位置来确定最佳位置的方法。
在油库选址中,我们需要考虑诸多因素,比如土地的稳定性、交通便利程度、环境保护等等。
通过重心法,我们可以将这些因素量化,然后计算它们的重心位置,从而找到最佳的建设位置。
重心的计算方法一般有几种,比如代数法、几何法和矢量法。
在油库选址中,我们可以根据具体情况选择合适的计算方法,并结合地理信息系统(GIS)等技术,来精确计算各项因素的重心位置,从而得到最佳的建设位置。
三、重心法在油库选址中的应用1. 土地的稳定性在选择油库的位置时,土地的稳定性是一个非常重要的因素。
通过重心法,我们可以将土地的稳定性量化,并计算出它的重心位置。
通过比较不同地点的稳定性重心位置,可以找到最佳的建设位置,从而确保油库的安全。
2. 交通便利程度油库的选址还需要考虑交通便利程度。
通过重心法,我们可以计算各个交通节点的位置重心,从而找到最佳的建设位置。
这可以确保油库的运输效率和便利程度,节省运输成本。
3. 环境保护在油库选址中,环境保护也是一个必须考虑的因素。
通过重心法,我们可以计算各个环境指标的重心位置,从而找到最佳的建设位置。
这可以最大程度地减少对环境的影响,保护生态环境。
四、总结和回顾通过本文的讨论,我们可以看到重心法在油库选址中的重要性和应用。
通过重心法,我们可以将各个因素量化,精确计算它们的重心位置,从而找到最佳的建设位置。
重心法不仅可以帮助我们解决油库选址问题,也可以在其他领域得到应用。
个人观点和理解从我个人的角度来看,重心法是一种非常实用的方法,在油库选址中有着广泛的应用价值。
基于重心法的物流场所中心选址优化问题的实验总结基于重心法的物流场所中心选址优化问题的实验总结一、引言物流场所中心选址是物流管理中的重要问题之一,合理的选址能够有效降低物流成本、提高物流效率。
本实验采用基于重心法的物流场所中心选址优化方法,通过实验研究其在不同情况下的性能表现。
二、实验设计1. 实验目标:通过选择合适的位置建立物流场所,使得整个物流网络的运输距离最小。
2. 实验环境:使用Python编程语言进行实验设计和模拟。
3. 实验数据:根据真实的物流需求和地理信息,构建了一个包含多个候选地点和需求点的数据集。
4. 实验步骤:a) 初始化候选地点和需求点的坐标信息。
b) 计算每个需求点到所有候选地点的距离,并按照距离从近到远进行排序。
c) 选择一个需求点作为初始中心点,并计算该中心点到其他需求点的距离之和。
d) 依次将其他需求点加入已选择中心点集合,并计算更新后的总距离。
e) 选择总距离最小的中心点集合作为最优解。
三、实验结果1. 实验一:不同候选地点数量下的性能比较a) 设定需求点数量为固定值,分别设置不同数量的候选地点。
b) 运行实验,记录每种情况下的运行时间和最优解。
c) 分析结果发现,随着候选地点数量的增加,运行时间呈线性增长,而最优解的改善效果逐渐减弱。
2. 实验二:不同需求点数量下的性能比较a) 设定候选地点数量为固定值,分别设置不同数量的需求点。
b) 运行实验,记录每种情况下的运行时间和最优解。
c) 分析结果发现,随着需求点数量的增加,运行时间呈指数增长,并且最优解的改善效果也逐渐减弱。
3. 实验三:不同距离权重下的性能比较a) 在计算需求点到候选地点距离时引入权重因素。
b) 设置不同权重值,并运行实验,记录每种情况下的运行时间和最优解。
c) 分析结果发现,在一定范围内增加距离权重可以提高最优解质量,但过大或过小的权重值都会导致最优解的质量下降。
四、实验总结1. 基于重心法的物流场所中心选址优化方法在不同情况下都能够得到较好的结果。
基于重心法的仓库选址方法分析摘要:在物流管理实践中,仓库选址是个很普遍的问题,如果盲目地进行仓储的选址与规划就会造成巨大的浪费。
而在解决这一问题的方法多样,有因素评分法、线性规划法和重心法。
其中,精确重心法是常用且有效的一种,通过控制总运输成本最低,从而在多个生产地和需求地区域内找到重心,设为仓库点。
但此方法并不适用于考虑实际地形、以及仓库建设成本的实际仓库选址问题,本文将对以上两种问题分析比较,并针对考虑建设成本的仓库选址问题进行实例分析。
一仓库选址问题概述在物流网络中,仓库连接着供应点和需求点,是两者之间的桥梁,在物流系统中起着重要作用。
选址在整个物流系统中占有重要的地位,是属于物流管理战略层的研究问题,仓储系统选址对企业商品流转速度和流通费用产生直接影响,并关于到企业对顾客的服务水平和服务质量。
如果不好好利用,反之盲目地进行仓储的选址与规划就会造成巨大的资源浪费,同时给企业经营带来很多不良后果。
二基于重心法原理的仓库选址问题1.重心法原理物流网络中仓库选址的实践中常用的方法是精确重心法(又称重心法)。
重心法是一种模拟方法,它将物流系统中的需求点和资源点看成是分布在某一平面范围内的物流系统,各点的需求量和资源量分别看成是物体的重量,物体系统的重心作为物流网点的最佳设置点,利用求物体系统重心的方法来确定物流网点的位置。
这种方法主要考虑的因素是现有设施之间的距离和要运输的货物量,将商品运输量作为影响商品运输费用的主要因素,仓库尽可能接近运量较大的网点,从而使较大的商品运量走相对较短的路程,就是求出本地区实际商品运输费用的重心所在的位置。
2.单个仓库选址理论模型重心法作为单一设施选址问题中最基本的方法之一,使用较为频繁,为了便于探讨问题,理想的重心法理论模型作出以下假设:只考虑现有设施之间的距离和要运输的货物量,1)模型常常假设需求量集中于某一点,各个需求点的位置和需求量已知而且不变,且运入和运出成本是相等的,不考虑在不满载的情况下增加的特殊运输费用;2)模型没有区分在不同地点建设仓库所需的资本成本,以及与在不同地点经营有关的其他成本的差别,而只是计算运输成本;3)模型中仓库与其他网络节点之间的路线通常是假定为直线,且运输费用只与配送中心和需求点的直线距离有关,不考虑城市交通状况;4)模型只考虑现有设施之间的距离和要运输的货物量,不考虑未来收入和成本及其他变化。
选址重心法模型文章来源:宝库企业管理网更新时间:2007-11-13 16:28:50重心法是一种布置单个设施的方法,这种方法要考虑现有设施之间的距离和要运输的货物量。
它经常用于中间仓库的选择。
在最简单的情况下,这种方法假设运入和运出成本是相等的,它并未考虑在不满载的情况下增加的特殊运输费用。
重心法首先要在坐标系中标出各个地点的位置,目的在于确定各点的相对距离。
坐标系可以随便建立。
在国际选址中,经常采用经度和纬度建立坐标。
然后,根据各点在坐标系中的横纵坐标值求出成本运输最低的位置坐标X和Y,重心法使用的公式是:式中CX--重心的x坐标;Cy--重心的y坐标;Dix--第i个地点的x坐标;Diy--第i个地点的y坐标;Vi--运到第i个地点或从第I个地点运出的货物量。
最后,选择求出的重心点坐标值对应的地点作为我们要布置设施的地点。
重心法:1、现假设有五个工厂,坐标分别为P1(1,2),P2(7,4),P3(3,1),P4(5,5),P5(2,6)。
现要建立一个中心仓库为五个工厂服务。
工厂到中心仓库的运输由载货汽车来完成,运量按车次计算,分别为3,5,2,1,6次每天。
求这个中心仓库的位置。
解:设物流费用与车次数量成正比,则相应的物流费用系数为:3,5,2,1,6。
在坐标轴上标出各个点的相应位置,设总运输费用最低的位置坐标为X和Y,根据重心法的计算方法,可求得中心仓库的坐标。
计算过程如下:(31)(57)(23)(15)(62)613.5883521617(32)(54)(21)(15)(66)69 4.0593521617X Y ⨯+⨯+⨯+⨯+⨯===++++⨯+⨯+⨯+⨯+⨯===++++故所求中心仓库的理论位置在原坐标系里的位置为(3.588,4.059)。
2、 易出莲花超市要在江西省南昌市建立一所地区级中央配送中心,要求该配送中心能够覆盖该地区五个连锁店,连锁店的坐标及每月的销售量数据如表所示,要求求出一个理论上的配送中心的位置。
工厂选址重心法实际案例老张打算开一家新工厂,生产那种超酷的智能小玩意儿。
这工厂选址可把老张愁坏了,不过呢,他听说了一个很厉害的方法叫重心法,就决定试试。
老张先把他的原料供应地和产品销售市场都列了出来。
比如说,他有三个主要的原料供应地,A地、B地和C地。
A地呢,是个大矿场,能提供生产小玩意儿的关键稀有金属,每个月能供应大概100吨原料;B地是个塑料大厂,提供的那种特殊塑料每个月能有80吨;C地则有一些电子元件,每个月供应量是50吨。
然后再看销售市场,有X城、Y城和Z城。
X城可是个大城市,对他的智能小玩意儿需求量特别大,每个月估计能卖掉200件;Y城稍微小一点,但也不错,每个月能消化150件;Z城是个新兴城市,每个月大概能卖100件。
老张就开始用重心法计算了。
他先在地图上把这些地方的坐标标出来,就像玩寻宝游戏找宝藏的位置一样。
他把A地的坐标设为(x1,y1),B地是(x2,y2),C地是(x3,y3),X城是(x4,y4),Y城是(x5,y5),Z城是(x6,y6)。
接着按照重心法的公式,先算原料供应的重心。
就好比是这些原料供应地在拔河,看最后这个平衡点在哪。
计算过程有点像在做一道复杂的数学题,不过老张也不害怕。
算出来原料供应的重心大概在一个叫M的地方。
然后再算销售市场的重心,这个又像是另一场拔河比赛,是各个销售市场在“拉扯”这个理想的工厂位置。
算出来销售市场的重心在N地。
但是呢,老张也不能只看这两个重心就决定工厂位置呀。
他还得考虑一些其他的因素,就像在做蛋糕的时候,除了面粉和糖,还得看看有没有鸡蛋和牛奶这些其他重要的东西。
比如说,M地虽然是原料供应的重心,但是那地方交通不太方便,运输成本还是很高;N地虽然靠近销售市场重心,但是当地的劳动力成本特别高,这可不行,老张还想多赚点钱呢。
于是老张就在M地和N地之间找了一个折中的地方,叫P地。
P地交通还不错,离高速公路和铁路都比较近,这样原料运输方便;而且当地劳动力资源丰富,工资也比较合理。
2单设施重心法选址2.1实验目的掌握单设施重心法选址的原理,能够计算简单选址题目中待选设施的位置; 掌握单设施重心选址的算法流程,能够设计类似题目的算法流程,并编写程序。
2.2实验过程(1)单设施重心法选址的原理重心法选址模型示意图如图2-1所示。
图2-1 单设施重心法选址选址示意图求解目标:C-总成本最低其中:f i -序号为i 的点的运输费率;V i -序号为i 的点的产量或者销量;d i -序号为i 的点到待选设施点的相对距离。
待选设施位置的计算公式:其中:X c -重心的X 坐标;Y c -重心的Y 坐标;X i -第i 个地点X 坐标;Y i -第i 个地点Y 坐标;i i ni i d V f MinC ∑==1∑∑===n i i i i n i i i i i c d V f dx V f X 11)/()/(∑∑===n i i i i n i i i i i c d V f d y V f Y 11)/()/()()(22y i c ix c d d Y d X i --+=XY(2)算法流程图,如图2-2所示。
图2-2 算法流程图2.3实验结果(1)单设施重心法选址程序参数设定及其求解界面如图2-3所示。
图2-3 单设施重心法选址程序参数设定及其求解界面(2)参数设定及其求解界面变量声明部分(代码)Private Sub Command1_Click()If Text1.Text = "" ThenMsgBox "X-横坐标不允许为空"Text1.SetFocusExit SubElseIf IsNumeric(Text1.Text) = False ThenMsgBox "X-横坐标必须为数值型数据!"Text1.Text = ""Text1.SetFocusExit SubEnd IfIf Text2.Text = "" ThenMsgBox "Y-纵坐标不允许为空"Text2.SetFocusExit SubElseIf IsNumeric(Text2.Text) = False ThenMsgBox "Y-纵坐标必须为数值型数据!"Text2.Text = ""Text2.SetFocusExit SubEnd IfIf Text3.Text = "" ThenMsgBox "产量或销量不允许为空"Text3.SetFocusExit SubElseIf IsNumeric(Text3.Text) = False ThenMsgBox "产量或销量应为数值型数据!"Text3.Text = ""Text3.SetFocusExit SubElseIf Val(Text3.Text) < 0 ThenMsgBox "产量或销量应为正数,否则无实际意义!" Text3.Text = ""Text3.SetFocusExit SubEnd IfIf Text4.Text = "" ThenMsgBox "运输费率不允许为空"Text4.SetFocusExit SubElseIf IsNumeric(Text4.Text) = False ThenMsgBox "运输费率应为数值型数据!"Text4.Text = ""Text4.SetFocusExit SubElseIf Val(Text4.Text) < 0 ThenMsgBox "运输费率应为正数,否则无实际意义!" Text4.Text = ""Text4.SetFocusExit SubEnd IfIf Text5.Text = "" ThenMsgBox "X0-横坐标不允许为空"Text5.SetFocusExit SubElseIf IsNumeric(Text5.Text) = False ThenMsgBox "X0-横坐标必须为数值型数据!"Text5.Text = ""Text5.SetFocusExit SubEnd IfIf Text6.Text = "" ThenMsgBox "Y0-纵坐标不允许为空"Text6.SetFocusExit SubElseIf IsNumeric(Text6.Text) = False ThenMsgBox "Y0-纵坐标必须为数值型数据!"Text6.Text = ""Text6.SetFocusExit SubEnd IfIf Text7.Text = "" ThenMsgBox "精度不允许为空"Text7.SetFocusExit SubElseIf IsNumeric(Text7.Text) = False ThenMsgBox "精度应为数值型数据!"Text7.Text = ""Text7.SetFocusExit SubElseIf Val(Text7.Text) < 0 ThenMsgBox "精度应为正数,否则无实际意义!"Text7.Text = ""Text7.SetFocusExit SubEnd IfFor i = 1 To List1.ListCountIf Text1.Text = Val(List1.List(i - 1)) And Text2.Text = Val(List2.List(i - 1)) ThenMsgBox "与第" & i & "输入坐标值相同,请重新输入"Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text1.SetFocusExit SubEnd IfNext iList1.AddItem Text1.TextList2.AddItem Text2.TextList3.AddItem Text3.TextList4.AddItem Text4.TextText1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text1.SetFocusIf List1.ListCount >= 2 ThenCommand2.Enabled = TrueEnd IfEnd SubPrivate Sub Command2_Click()Xc = Val(Text5.Text)Yc = Val(Text6.Text)JD = Val(Text7.Text)Dim SumCO As DoubleDim SumCN As DoubleDim Sum1 As DoubleDim Sum2 As DoubleDim Sum3 As DoubleFor j = 1 To 10000SumCO = 0SumCN = 0Sum1 = 0Sum2 = 0Sum3 = 0For i = 1 To List1.ListCountdi = Sqr((Xc - Val(List1.List(i - 1))) ^ 2 + (Yc - Val(List2.List(i - 1))) ^ 2) '距离公式SumCO = SumCO + Val(List3.List(i - 1)) * Val(List4.List(i - 1)) * diSum1 = Sum1 + (Val(List1.List(i - 1)) * Val(List3.List(i - 1)) * Val(List4.List(i - 1))) / diSum2 = Sum2 + (Val(List2.List(i - 1)) * Val(List3.List(i - 1)) * Val(List4.List(i - 1))) / diSum3 = Sum3 + (Val(List3.List(i - 1)) * Val(List4.List(i - 1))) / diNext iXc = Sum1 / Sum3Yc = Sum2 / Sum3For i = 1 To List1.ListCountdi = Sqr((Xc - Val(List1.List(i - 1))) ^ 2 + (Yc - Val(List2.List(i - 1))) ^ 2)SumCN = SumCN + Val(List3.List(i - 1)) * Val(List4.List(i - 1)) * diNext iIf (SumCO - SumCN) <= JD ThenText8.Text = XcText9.Text = YcText10.Text = SumCNText11.Text = jExit ForEnd IfNext jEnd SubPrivate Sub List1_Click()For i = 1 To List1.ListCountIf List1.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True ThenList1.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd SubPrivate Sub List2_Click()For i = 1 To List2.ListCountIf List2.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True ThenList2.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd SubPrivate Sub List3_Click()For i = 1 To List3.ListCountIf List3.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True And Val(h) > 0 Then List3.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd SubPrivate Sub List4_Click()For i = 1 To List4.ListCountIf List4.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True And Val(h) > 0 Then List4.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd Sub(3) 单设施重心法选址程序求解结果如图2-4所示。
重心法选址项目分析实例答:重心法包括基于需求量的重心法和基于吨距离的重心法等两种方法。
基于需求量的重心解法:把需求量作为考察因素,它的主要步骤是首先将一个经济区域内的各需求点在坐标系中表示,并将各需求点看成一个物理系统,然后将各需求点的需求量视为物体的质量,最后通过求该物理系统的重心来确定物流中心的最佳坐落点。
基于吨距离的重心法解法:因是单一设施选址,物流中心的建设以及运营成本均可以视为固定不变的,而运输费用随距离和货运量而变化,所以可以考虑在不同地点设置的物流中心因距各用户距离变化和需求量而引起运输费用的变化,找出使运输总费用最小的点,并将其作为最佳选址点。
(4)重心法选址计算:x0 = ( 30×2200+70×1800+30×1500+60×2500 ) / ( 2200+1800+1500+2500) = 48.38 y0 = ( 80×2200+70×1800+30×1500+30×2500 ) / (2200+1800+1500+2500) = 52.75所以,分厂厂址的坐标为(48.38 , 52.75)例题二:某汽车公司,每年需要从A ,地运来橡胶,从AZ 地运来玻璃,从A :地运来发动机,从A 、地运来零配件,各地与某城市中心的距离和每年的材料运量如表。
假设城市的中心为原点,各种材料运输费率相同,用重心法确定该公司合理位置。
解:设重心坐标为(X O ,Y O ),则根据重心法公式计算如下:0x =∑∑==4141j j jj jj j W C x W C =29001300150030002900*501300*401500*1003000*45++++++=55.4km; 0y =∑∑==4141j j jj jj j W C y W C =29001300150030002900*801300*101500*703000*60++++++=60.92km 即该公司的合理位置的坐标为(55.4 , 60.92 )。
重心法选址项目分析实例选址时,还必须考虑劳动力资源的来源、技术水平、工作习惯、工资水平等因素。
(e)货品供应和需求等市场因素。
原材料与货品的来源、数量、用户对象的分布、需求层次和需求量等因素,也会影响物流中心的选址。
企业的内部因素往往是物流中心选址决策考虑的主要因素。
物流中心的选址决策首先要与企业的发展战略相适应为。
其次,物流中心的选址和数量受到企业的产品特点、销售区域、营销策略等因素的影响。
(3)重心法的计算原理答:重心法包括基于需求量的重心法和基于吨距离的重心法等两种方法。
基于需求量的重心解法:把需求量作为考察因素,它的主要步骤是首先将一个经济区域内的各需求点在坐标系中表示,并将各需求点看成一个物理系统,然后将各需求点的需求量视为物体的质量,最后通过求该物理系统的重心来确定物流中心的最佳坐落点。
基于吨距离的重心法解法:因是单一设施选址,物流中心的建设以及运营成本均可以视为固定不变的,而运输费用随距离和货运量而变化,所以可以考虑在不同地点设置的物流中心因距各用户距离变化和需求量而引起运输费用的变化,找出使运输总费用最小的点,并将其作为最佳选址点。
(4)重心法选址计算:x0 = ( 30×2200+70×1800+30×1500+60×2500 ) / ( 2200+1800+1500+2500) = 48.38y0 = ( 80×2200+70×1800+30×1500+30×2500 ) / (2200+1800+1500+2500) = 52.75所以,分厂厂址的坐标为(48.38 , 52.75)例题二:某汽车公司,每年需要从A ,地运来橡胶,从AZ 地运来玻璃,从A :地运来发动机,从 A 、地运来零配件,各地与某城市中心的距离和每年的材料运量如表。
假设城市的中心为原点,各种材料运输费率相同,用重心法确定该公司合理位置。
重心法选址流程今天咱们来聊聊一个特别有趣的事儿——重心法选址。
这就像是我们玩游戏找宝藏一样,要找到一个最合适的地方呢。
想象一下,我们要开一个小商店,这个商店要开在哪里才好呢?这时候就可以用到重心法啦。
比如说,有好几个小区,每个小区都有好多小朋友和叔叔阿姨。
1号小区有100个家庭,2号小区有80个家庭,3号小区有120个家庭。
这些家庭就是可能来我们小商店买东西的人哦。
那我们先在纸上画个简单的图,把这些小区的位置大概标出来。
1号小区在左边一点,2号小区在中间靠下一点,3号小区在右边。
这就像我们画一幅简单的小地图一样。
然后呢,我们要考虑每个小区的人数啦。
人数多的小区就像一块大磁铁,对我们的小商店吸引力更大呢。
就像如果有一大群小蚂蚁,蚁窝附近有很多小糖果,那蚁窝就像人多的小区,糖果就像我们的小商店,蚁窝周围蚂蚁多,糖果放在离蚁窝近的地方就更容易被蚂蚁发现。
我们开始找重心的位置。
就好像把这几个小区放在一个大跷跷板上,要找到那个能让跷跷板平衡的点。
这个点就是我们小商店比较合适的位置啦。
比如说,1号小区因为家庭少一点,它对这个平衡位置的影响就相对小一点。
3号小区家庭多,它就像一个重重的大石头,对这个平衡位置的影响就大很多。
我们要一点点调整这个点,让它感觉就像是每个小区的力量都能平均分配到这个点上。
如果我们开的是一个卖冰淇淋的小商店。
那更要好好选位置啦。
要是选得离小朋友们都很远,那冰淇淋都化了也卖不出去呀。
要是靠近那些家庭多的小区,小朋友们一放学就可以很快跑到我们的小商店来买美味的冰淇淋。
再我们要是开一个小书店。
选在离学校近,而且周围小区人又多的地方就特别好。
小朋友们可以在上学或者放学的时候去小书店看看书,叔叔阿姨们也可以在散步的时候去逛逛。
所以呀,重心法选址就是这样一个像做游戏一样的过程。
我们通过考虑不同地方的人有多少,然后找到一个平衡的点,这个点就是我们开店或者做其他事情最好的位置啦。
这样就能让更多的人方便地找到我们的地方,就像我们在人群中间放了一个超级有吸引力的宝贝一样,大家都能很容易就发现它呢。
2单设施重心法选址2.1实验目的掌握单设施重心法选址的原理,能够计算简单选址题目中待选设施的位置; 掌握单设施重心选址的算法流程,能够设计类似题目的算法流程,并编写程序。
2.2实验过程(1)单设施重心法选址的原理重心法选址模型示意图如图2-1所示。
图2-1 单设施重心法选址选址示意图求解目标:C-总成本最低其中:f i -序号为i 的点的运输费率;V i -序号为i 的点的产量或者销量;d i -序号为i 的点到待选设施点的相对距离。
待选设施位置的计算公式:其中:X c -重心的X 坐标;Y c -重心的Y 坐标;X i -第i 个地点X 坐标;Y i -第i 个地点Y 坐标;i i ni i d V f MinC ∑==1∑∑===n i i i i n i i i i i c d V f dx V f X 11)/()/(∑∑===n i i i i n i i i i i c d V f d y V f Y 11)/()/()()(22y i c ix c d d Y d X i --+=XY(2)算法流程图,如图2-2所示。
图2-2 算法流程图2.3实验结果(1)单设施重心法选址程序参数设定及其求解界面如图2-3所示。
图2-3 单设施重心法选址程序参数设定及其求解界面 初始化Xc=0,Yc=0JD=0.001赋值SumCOld = 0SumCNew = 0Sum1 = 0Sum2 = 0Sum3 = 0计算di SumCOld Xc,Yc DiSumCNew 判断(SumCOld-SumCNew )<=JD 输出Xc,YcSumCNew j(跌代次数)停止j=j+1是否(2)参数设定及其求解界面变量声明部分(代码)Private Sub Command1_Click()If Text1.Text = "" ThenMsgBox "X-横坐标不允许为空"Text1.SetFocusExit SubElseIf IsNumeric(Text1.Text) = False ThenMsgBox "X-横坐标必须为数值型数据!"Text1.Text = ""Text1.SetFocusExit SubEnd IfIf Text2.Text = "" ThenMsgBox "Y-纵坐标不允许为空"Text2.SetFocusExit SubElseIf IsNumeric(Text2.Text) = False ThenMsgBox "Y-纵坐标必须为数值型数据!"Text2.Text = ""Text2.SetFocusExit SubEnd IfIf Text3.Text = "" ThenMsgBox "产量或销量不允许为空"Text3.SetFocusExit SubElseIf IsNumeric(Text3.Text) = False ThenMsgBox "产量或销量应为数值型数据!"Text3.Text = ""Text3.SetFocusExit SubElseIf Val(Text3.Text) < 0 ThenMsgBox "产量或销量应为正数,否则无实际意义!" Text3.Text = ""Text3.SetFocusExit SubEnd IfIf Text4.Text = "" ThenMsgBox "运输费率不允许为空"Text4.SetFocusExit SubElseIf IsNumeric(Text4.Text) = False ThenMsgBox "运输费率应为数值型数据!"Text4.Text = ""Text4.SetFocusExit SubElseIf Val(Text4.Text) < 0 ThenMsgBox "运输费率应为正数,否则无实际意义!" Text4.Text = ""Text4.SetFocusExit SubEnd IfIf Text5.Text = "" ThenMsgBox "X0-横坐标不允许为空"Text5.SetFocusExit SubElseIf IsNumeric(Text5.Text) = False ThenMsgBox "X0-横坐标必须为数值型数据!"Text5.Text = ""Text5.SetFocusExit SubEnd IfIf Text6.Text = "" ThenMsgBox "Y0-纵坐标不允许为空"Text6.SetFocusExit SubElseIf IsNumeric(Text6.Text) = False ThenMsgBox "Y0-纵坐标必须为数值型数据!"Text6.Text = ""Text6.SetFocusExit SubEnd IfIf Text7.Text = "" ThenMsgBox "精度不允许为空"Text7.SetFocusExit SubElseIf IsNumeric(Text7.Text) = False ThenMsgBox "精度应为数值型数据!"Text7.Text = ""Text7.SetFocusExit SubElseIf Val(Text7.Text) < 0 ThenMsgBox "精度应为正数,否则无实际意义!"Text7.Text = ""Text7.SetFocusExit SubEnd IfFor i = 1 To List1.ListCountIf Text1.Text = Val(List1.List(i - 1)) And Text2.Text = Val(List2.List(i - 1)) ThenMsgBox "与第" & i & "输入坐标值相同,请重新输入"Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text1.SetFocusExit SubEnd IfNext iList1.AddItem Text1.TextList2.AddItem Text2.TextList3.AddItem Text3.TextList4.AddItem Text4.TextText1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text1.SetFocusIf List1.ListCount >= 2 ThenCommand2.Enabled = TrueEnd IfEnd SubPrivate Sub Command2_Click()Xc = Val(Text5.Text)Yc = Val(Text6.Text)JD = Val(Text7.Text)Dim SumCO As DoubleDim SumCN As DoubleDim Sum1 As DoubleDim Sum2 As DoubleDim Sum3 As DoubleFor j = 1 To 10000SumCO = 0SumCN = 0Sum1 = 0Sum2 = 0Sum3 = 0For i = 1 To List1.ListCountdi = Sqr((Xc - Val(List1.List(i - 1))) ^ 2 + (Yc - Val(List2.List(i - 1))) ^ 2) '距离公式SumCO = SumCO + Val(List3.List(i - 1)) * Val(List4.List(i - 1)) * diSum1 = Sum1 + (Val(List1.List(i - 1)) * Val(List3.List(i - 1)) * Val(List4.List(i - 1))) / diSum2 = Sum2 + (Val(List2.List(i - 1)) * Val(List3.List(i - 1)) * Val(List4.List(i - 1))) / diSum3 = Sum3 + (Val(List3.List(i - 1)) * Val(List4.List(i - 1))) / diNext iXc = Sum1 / Sum3Yc = Sum2 / Sum3For i = 1 To List1.ListCountdi = Sqr((Xc - Val(List1.List(i - 1))) ^ 2 + (Yc - Val(List2.List(i - 1))) ^ 2)SumCN = SumCN + Val(List3.List(i - 1)) * Val(List4.List(i - 1)) * diNext iIf (SumCO - SumCN) <= JD ThenText8.Text = XcText9.Text = YcText10.Text = SumCNText11.Text = jExit ForEnd IfNext jEnd SubPrivate Sub List1_Click()For i = 1 To List1.ListCountIf List1.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True ThenList1.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd SubPrivate Sub List2_Click()For i = 1 To List2.ListCountIf List2.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True ThenList2.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd SubPrivate Sub List3_Click()For i = 1 To List3.ListCountIf List3.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True And Val(h) > 0 Then List3.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd SubPrivate Sub List4_Click()For i = 1 To List4.ListCountIf List4.Selected(i - 1) = True Thenh = InputBox("请输入要改的参数:", "参数修正")If h <> "" And IsNumeric(h) = True And Val(h) > 0 Then List4.List(i - 1) = hElse: MsgBox "输入的数据必须为数值型数据"End IfEnd IfNext iEnd Sub(3) 单设施重心法选址程序求解结果如图2-4所示。