1
一.问题描述:
在某一区域内有 n 个客户,拟建一个物流中心,已知客户 j 地址坐标为
),(
ii
yx
。
确定物流中心的地址坐标
),( yx
,使得该物流中心到几个客户之间的距离最短。
假设:简单的用两点之间的距离代替运输距离。
目标函数:
22
)()(min
ii
yYxXz ����
约束条件:
}8,7,6,5,4,3,2,1,0{
}8,7,6,5,4,3,2,1,0{X
�
�
Y
假设某一区域内有 5 个客户,其位置坐标如下表所示,
客户坐标及相关需求量
客户
X(km)
Y(km)
1
1
5
2
2
8
3
5
1
4
7
6
5
8
3
(1)变量:
C:是一个 1*6 数组,每个数组里面是一个 6 位二进制数,它是遗传算法中的染色体。
new_c:每一轮的新变量 c。
first_c:初始群体矩阵。
sur_value:个体适应值的概率值,为 0-1 之间的数,所有概率值和为 1。
survived:经过选择运算后产生的个体基因型组合。
intersect_c :经过交叉运算后产生的个体基因型组合。
mutation_c:经过变异运算后产生的个体基因型组合。
f:最后计算得到的最大值
(2)程序里面的方程
function out = value_function( ci ):价值函数(自适应度函数)。
function [ sur_value ] = calc_value( c ):计算群体中每一个个体的适应度的值
function survived = surviver( sur_value ):利用概率选择函数
function [ intersect_c ] = intersect( new_c ):交叉运算
function [ mutation_c ,mutation_value] = mutation( intersect_c ):变异运算
(1)遗传算法主程序
%遗传算法的主程序
评论11