请问这个该怎么做?好像也没有什么约束条件啊

 

此题没有约束条件,目标函数为: 最小化 总里程 = 到每个地点的里程 * 每个地点的送货次数。

代码:

A = [10 30
     30 50
     16.667 29
     0.555 29.888
     22.221 49.988];
b = [10 18 20 14 25]';
fun = @(x) sum( sqrt((x(1)-A(:,1)).^2  + (x(2)-A(:,2)).^2) .* b )
x = lsqnonlin(fun,[0 0] )
y = fun(x)

figure
plot(A(:,1),A(:,2),'bo')
hold on
plot(x(1),x(2),'r*')
legend('工厂','仓库')

结果

x =

   19.2955   41.5369


y =

   1.1825e+03