文档介绍:2单设施重心法选址
掌握单设施重心法选址的原理,能够计算简单选址题目中待选设施的位置; 掌握单设施重心选址的算法流程,能够设计类似题目的算法流程,并编写程序。
(1)单设施重心法选址的原理
重心法选址模型示意图如图2-1所示。
Y
X
图2-1单设施重心法选址选址示意图
求解目标:C-总成本最低
其中:fi-序号为i的点的运输费率;
V i-序号为i的点的产量或者销量;
d i-序号为i的点到待选设施点的相对距离
待选设施位置的计算公式:
r fMXi/di)
i K
C fMyi/di)
Y"』n
(' fVi / di)
i
n n
仁 fiVi /di) i =1
其中:Xc-重心的X坐标;
c-重心的Y坐标;
X i-第i个地点X坐标;
i-第i个地点Y坐标;
di =.«(Xc-dix)2 (Yc Wy)2
(2)算法流程图,如图2-2所示
初始化
Xc=0 , Yc=0
JD=
W1
SumCOld =
0
SumCNew
=0
Sum1 =
0
Sum2 =
0
Sum3 =
0
―
j=j+1
di SumCOld
Xc,Yc
Di SumCNew
. 判断
(SumCOld-SumCNew ) <=JD
是
输出
Xc,Yc
SumCNew
j( 跌代次数 )
停止
图2-2算法流程图
单设施重心法选址程序参数设定及其求解界面如图 2-3所示
图2-3单设施重心法选址程序参数设定及其求解界面
参数设定及其求解界面变量声明部分(代码)
Private Sub Command1_Click()
If = "" Then
MsgBox "X- 横坐标不允许为空"
Exit Sub
ElseIf IsNumeric() = False Then
MsgBox "X-横坐标必须为数值型数据!"
=""
Exit Sub
End If
If = "" Then
MsgBox "Y- 纵坐标不允许为空"
Exit Sub
ElseIf IsNumeric() = False Then
MsgBox "Y-纵坐标必须为数值型数据!"
=""
Exit Sub
End If
If = "" Then
MsgBox " 产量或销量不允许为空"
Exit Sub
ElseIf IsNumeric() = False Then
MsgBox "产量或销量应为数值型数据!"
=""
Exit Sub
ElseIf Val() <