回 帖 发 新 帖 刷新版面

主题:求助:这样的矩阵如何产生???(急啊!!!高手请帮忙,谢谢了!)

有一个配送中心和n个客户点,第i个客户需要运输的货物质量为gi(i=1,2,…,n),由配送中心派出载重量为q的货车来承运,假设gi<q,求满足货运需求的最低成本车辆运输行程路线
1、首先产生一个随机排列的矩阵:
   m=5;
   c=8;
   popm=zeros(m,c);   
   for i=1:m
    popm(i,:)=randperm(c);
   end
2、如何将0插入刚产生的矩阵popm中,成为这样的矩阵
  [0,1,2,3,4,5,6,7,8,0
   0,........................,0
   0,........................,0
   0,........................,0
   0,........................,0]
3、将客户点按自然码编码方式表示为1-n的序列,随机产生c个1-n的全排列,将第一位和最后一位设置为0,随后计算货物总量,若客户点s-1的货物总量<=q 且客户点s处的货物总量>q ,则将s至n的基因依次向后移动一位,将s位空出,并设置为0,如此重复,直到将m-1个0全部插入染色体为止。然后再将各子回路按时间先后进行排序(要求:与不做子回路排序的程序进行比较)。这样就构成一条初始染色体。依次反复,直到满足群体数。(假设9个城市:[0352017089460
 05601240....0
 0...0....0..0
 .............]

回复列表 (共1个回复)

沙发

问题没看懂,尤其第三问,m是什么,如此重复,又是怎样重复。初看像TSP问题,但又没有各元素之间转变的权值,有点像背包,却好像是有顺序。
但你要的生成的矩阵还是比较简单的。
 m=5;
 c=10;    %加上两列放0
 popm=zeros(m,c);   
 for i=1:m
 popm(i,2:end-1)=randperm(c);    %从第二列开始,到倒数第二列随机排列
 end

我来回复

您尚未登录,请登录后再回复。点此登录或注册