公式:x0 = ( ∑ xiwi ) / ( ∑ wi )
y0 = ( ∑ yiwi ) / ( ∑ wi )
单设施选址模型有不同的名称,如:精确重心法、网格法和重心法等,因为选址因素只包括运输费率和该点的货物运输量,所以此方法较为简单。
我们以预计仓库点位到达各个目的点位的成本最低为考察目标:
即:
Min TC=∑ViRidi i 遍历所有目的地 …(0)
其中: TC——总运输成本;
Vi——i 点运输量;
Ri——到 i 点的运输费率;
di——从待定仓库位置到i 点的距离。
在坐标平面中设待定仓库坐标为(X0,Y0)
∑ViRiXi/di
X0=...(1)
∑ViRi/di
∑ViRiYi/di
Y0= …(2)
∑ViRi/di
其中di可以坐标间公式
di =SQR((X0-Xi)2+(Y0-Yi)2) …(3)
该方法求解过程:
1、确定各目的地点的坐标,同时确定各点货物运输量和直线距离运费;
2、不考虑距离因素,用重心公式估算初始选址点:
∑ViRiXi
X0=…(4)
∑ViRi
∑ViRiYi
Y0…(5)
∑ViRi
3、根据公式(3),用步骤2得到的(X0,Y0)计算di;
4、将di代入公式(1),(2),得到修正的(X0,Y0)坐标;
5、根据修正的(X0,Y0)坐标,再重新计算di;
6、 重复步骤4和步骤5直至(X0,Y0)坐标在连续迭代过程中都不再变化或变化在误差范围内;
7、最后,如果需要,利用公式(0)计算最优选址的总成本。
#include <stdio.h>
#include <math.h>
struct xuanzhi
{
double x,y,v,r
}xz[5]={{3,8,2000,0.050},{8,2,3000,0.050},{2,5,2500,0.075},{6,4,1000,0.075},{8,8,1500,0.075}}
main()
{
struct xuanzhi
int i
double d[5]
double x0=0.0,y0=0.0,min=0.0,TC=0.0,t=0.0,m=0.0,w=0.0,x1=0.0,y1=0.0,m1=0.0,m2=0.0,w2=0.0,t1=0.0,m3=0.0,w3=0.0
for(i=0i<5i++)
{
m+=xz[i].v*xz[i].r*xz[i].x
w+=xz[i].v*xz[i].r
m1+=xz[i].v*xz[i].r*xz[i].y
}
x0=m/w
y0=m1/w
for(i=0i<5i++)
{
d[i]=sqrt((xz[i].x-x0)*(xz[i].x-x0)+(xz[i].y-y0)*(xz[i].y-y0))
m3+=xz[i].v*xz[i].r*xz[i].x/d[i]
t1+=xz[i].v*xz[i].r*xz[i].y/d[i]
w3+=xz[i].v*xz[i].r/d[i]
}
x1=m3/w3
y1=t1/w3
do
{
x0=x1
y0=y1
for(i=0i<5i++)
{
d[i]=sqrt((xz[i].x-x0)*(xz[i].x-x0)+(xz[i].y-y0)*(xz[i].y-y0))
m2+=xz[i].v*xz[i].r*xz[i].x/d[i]
t+=xz[i].v*xz[i].r*xz[i].y/d[i]
w2+=xz[i].v*xz[i].r/d[i]
}
x1=m2/w2
y1=t/w2
m2=0.0
t=0.0
w2=0.0
}while(fabs(x0-x1)-0.00000001>0&&fabs(y0-y1)-0.00000001>0)
printf("x0=%12lf,y0=%12lf\n",x0,y0)
for(i=0i<5i++)
{
d[i]=sqrt((xz[i].x-x0)*(xz[i].x-x0)+(xz[i].y-y0)*(xz[i].y-y0))
min=xz[i].v*xz[i].r*d[i]
TC+=min
}
printf("min TC=%12lf\n",TC)
getch()
}
我们实验做得,不知对你有用吗?分别利用Roberts、Prewitt和Sobel算子对lena.img进行边缘检测
clc
fid=fopen(' F:\数字图像处理\实验二 在 502-111 (603-003) 上\img\lena.bmp','r')
f=fread(fid,[256,256],'uchar')
GR=f
GP=f
GS=f
for x=2:255
for y=2:255
GRx(x,y)=f(x,y)-f(x+1,y+1)
GRy(x,y)=f(x,y+1)-f(x+1,y)
GR(x,y)=sqrt((GRx(x,y)).^2+(GRy(x,y)).^2)
GPx(x,y)=(f(x-1,y+1)+f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+f(x,y-1)+f(x+1,y-1))/3
GPy(x,y)=(f(x-1,y-1)+f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+f(x+1,y)+f(x+1,y+1))/3
GP(x,y)=sqrt((GPx(x,y)).^2+(GPy(x,y)).^2)
GSx(x,y)=(f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1))/3
GSy(x,y)=(f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1))/3
GS(x,y)=sqrt((GSx(x,y)).^2+(GSy(x,y)).^2)
end
end
subplot(2,2,1)
imshow(f,[0,255])title('原图像')
subplot(2,2,2)
imshow(GR,[0,255])title('Roberts')
subplot(2,2,3)
imshow(GP,[0,255])title('Prewitt')
subplot(2,2,4)
imshow(GS,[0,255])title('Sobel')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)