错误使用 digraph/addedge>validateNodeIDs 数值节点 ID 必须为正整数。
时间: 2024-03-09 10:47:02 浏览: 19
这个错误提示是因为您的图的节点ID不是从1开始的连续正整数,这可能是因为有节点没有被添加到图中,或者节点的ID是浮点数等非正整数。您可以尝试修改代码,使节点ID从1开始连续递增的正整数,或者使用其他方法来处理节点ID。以下是修改后的代码示例:
```
function [strategy, min_loss] = production_strategy(a, b, C1, C2, C3)
% a: 初始需求量
% b: 需求量递增速度
% C1: 调整费用
% C2: 过剩保管费
% C3: 短缺损失费
n = 12; % 年末月份
m = a + (n-1)*b; % 最大生产量
% 构建有向无环图
G = digraph();
for i = 1:m+1
for j = max(1, i-b):i-1
cost1 = C1 + (i-j-1)*C2;
cost2 = C1 + (i-j-1)*C3;
G = addedge(G, j, i, cost1);
G = addedge(G, j, i, cost2);
end
end
% 计算最短路径
[dist, path] = shortestpath(G, m+1, 1:m+1);
% 计算最小总损失和对应的生产策略
min_loss = inf;
strategy = [];
for j = 1:m+1
loss = dist(j) + (j-1)*a*C3;
if loss < min_loss
min_loss = loss;
strategy = [strategy, j-1];
end
end
% 输出结果
fprintf('生产策略为:');
fprintf('%d ', strategy);
fprintf('\n总损失为:%f\n', min_loss);
end
```
这个修改后的代码中,我们将节点ID从1开始连续递增的正整数,同时修改了添加边的部分,使得边的起点和终点的ID也是从1开始连续递增的正整数。此外,在计算损失时,也对节点ID进行了相应的调整。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)