📄 s173.m
字号:
function [u,I]=s173(a,b,m,N,d,T)
% N为阶段数
% a为初始库存量,非负整数
% b为终止库存量, 非负整数
% m为最大生产能力向量,非负整数向量
% d为社会需求向量,非负整数向量
% T为最大库存向量,非负整数向量
x(1)=a;
x(N+1)=b;
if d(N)+x(N+1)<T(N)
s=d(N)+x(N+1);
else
s=T(N);
end
for i=1:s+1
V(i,N)=cost(x(N+1)+d(N)-i+1,N,m)+stochar(i-1,N);
W(i,N)=x(N+1)+d(N)-i+1;
end
for k=N-1:-1:2
z=x(N+1);
for i=k:N;
z=z+d(i);
end
if z>T(k)
s(k)=T(k);
else
s(k)=z;
end
for j=1:s(k)+1
if z-j+1>m(k)
L(j)=m(k);
else
L(j)=z-j+1;
end
V(j,k)=inf;
W(j,k)=0;
for i=d(k)-j+1:L(j)
y=cost(i,k,m)+stochar(j-1,k)+V(j+i-d(k),k+1);
if y<V(j,k)
V(j,k)=y;
W(j,k)=i;
end
end
end
end
z=x(N+1);
for i=1:N
z=z+d(i);
end
if z-x(1)>m(1)
q=m(1);
else
q=z-x(1);
end
V(x(1)+1,1)=inf;
W(x(1)+1,1)=0;
for i=d(1)-x(1):q
y=cost(i,1,m)+stochar(x(1),N)+V(x(1)+1+i-d(1),2);
if y<V(x(1)+1,1)
V(x(1)+1,1)=y;
W(x(1)+1,1)=i;
end
end
I=V(x(1)+1,1);
u(1)=W(x(1)+1,1);
for k=2:N
x(k)=x(k-1)+u(k-1)-d(k-1);
u(k)=W(x(k)+1,k);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -