目录
1.问题
2.建模
3.Matlab编程、求解
1.问题
物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小。
2.建模
3.Matlab编程、求解
编写目标函数min 遗传算法只能求最小值
function y = fun(x)site=[52 42 93 62 90 70;9 86 33 78 60 30]; %x和y的坐标 分别用x(1)和x(2)表示w=[300 100 200 150 100 250];len=size(site,2);for i=1:leny=y+w(i)*sqrt((x(1)-site(1,i))^2+(x(2)-site(2,i))^2);end
end
编写约束条件:
function [c,ceq]=constraint(x)site=[52 42 93 62 90 70;9 86 33 78 60 30]; %x和y的坐标 分别用x(1)和x(2)表示D=200;len=size(site,2);for i=1:lenc(i)=sqrt((x(1)-site(1,i))^2+(x(2)-site(2,i))^2)-D; %c(i)为不等式约束中的第i个约束<=0endceq=[]; %ceq为等式约束
end
其它约束: 42<x<93; 9<y<86;
Matlab遗传算法工具箱求解(GA)
按照余下8个步骤把函数和约束条件输入进去。
点击 Start运行——查看结果
所以目标函数的最小值为33107KM,选址地址为[67.084,42.746]
参考文献:基于MATLAB遗传算法的物流中心选址问题研究