我想要对以下代码进行矢量化,但我不知道这是否可行(我在下面添加了代码和示例集)。我有一个[n,48]矩阵,其解决方案名为“pop'”。一个解决方案' x'是包含矩阵N的索引的1x48矩阵.N中的每一行定义产品的批次选择,其中N的列3:11包含有关批次生产的产品数量的信息(第3列=产品1,列4 =产品2等),如下所示:
N = [BatchID, na, Product 1, Product 2,..., Product 9,na,...;
1, na, 100, 0,..., 220,na,...;
2, na, 0, 340,..., 0,na,...;
...
30000, na, 80, 0,..., 120,na,...];
因此,命令N(x(:),3:11)'创建一个9x48矩阵,其中每列(n)对应一个批次选择,以及具有该选择产生的产品数量的行,如下所示:
Tt= [Batch index: 200,215,400,...,315;
Product 1 : 0 , 50, 80,..., 40;
Product 2 : 100, 0, 20,..., 0;
...
Product 9 : 80, 20, 0,..., 20];
每6列对应一周的产量,我需要知道每周的总产量,其中过量的产品被添加到下一周(f1和f2定义9x1向量,其中包含有关每个产品的信息一周百分比)。通过组合所有周(Nf = [f1,f2,f3,f4,f5,f6,f7,f8];),创建一个矩阵,其中包含每周产品的生产,如下所示:
Nf = [week nr. : 1, 2, ..., 8;
Product 1: 1, 0.5, ..., 0.7;
Product 2: 0.9, 1, ..., 1;
...
Product 9: 0.8, 0.7, ..., 0.9];
此矩阵用于以下列方式计算适合度:
V = exp(-Nf*5).*1000; % Penalty for % product order not completed
f = sum(sum(V)); %Nf转换为适合度值
使用这些步骤,对于pop中的每个x,计算适应度f,但是for循环用于循环pop,但这似乎是不必要的。
亲切的问候,
保
聚苯乙烯。这个附加文件的解决方案将非常糟糕,通常是字符串' x'是1x240,包含其他批次将介绍' pop.mat'
中缺少的产品类型链接示例: file