求matlab关于VRP问题的遗传算法程序?

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:05:15
在产生初始群体时就感到比较麻烦,37个站点加一个起始站点,希望染色体是37个站点的随机排列,然后记起始站点为0,将0随机插入37个数之中但要满足一定的约束条件,我是新手,在约束条件的编程感到有些棘手,希望有matlab的前辈可以帮我。
暂时把约束条件列出来:
1、将0插入37个站点的随机排列,首先要求排列的首尾必须是0;
2、运输车有一定的载重量,每一个数字代表的站点都有一个需求量,运输车不能超载,满载后要重回起始站,所以染色体排列中两个0之间的数字长度有限。
3、时间限制,不同站点间路程不同,因此随机的数字排列会影响工作时间,随机生成的初始群体的每条染色体排列要满足工作时间的限制。
(具体数据就不给了,希望能给出具体的matlab程序,只给出初始群体的生成程序也行,但希望说明一下在约束条件下交叉变异的matlab程序)

如果还不清楚问题,就邮件联系吧(819404563@qq.com)

不知你的matlab是否是7.0以上版本?
用ga工具箱应该是很方便的 你没给出具体数据我示范不出来

关于限制条件
ga函数里直接有的,功能很全
要自己设计交叉算法很困难,范围够大的话直接加个条件判断-不行重来就可以了

初始种群:
for i=1:种群大小
while 条件不合格
p=randperm(n);
end
pop{i}=p;
end