本帖最后由 豆花0817 于 2020-12-13 21:35 编辑
比如下面这样,有6个变量a1到a6总和为N=65,希望找到使求得的总成本TC最小时候,这6个变量取值为多少?
这里我采取最笨的遍历方法,但是要很久很久的时间,有什么方法可以加快计算速度,或者取代for循环?
新人请教,不吝赐教!!
s=4;
N=65;
for a1=1:N
a2=1:N-a1
a3=1:N-a1-a2
a4=1:N-a1-a2-a3
a5=1:N-a1-a2-a3-a4
a6=N-a1-a2-a3-a4-a5;
if a6>=1 % 每个变量至少为1
d1=max(a1-s,0);
t1 = d1 / s * unit;
TTC1 = t1 * alpha / unit;
SEC1 = max((60 - 0 - t1) * beta / unit,0);
SLC1 = max((0 + t1 - 60) * gama / unit,0);
TC1= TTC1 + SEC1 + SLC1; %前面这些公式是计算TC的值
d2 = max(a2 + d1 - s,0);
t2 = d2 / s * un