为了获得可扩展的,可重用的优化问题,以与模型结构分隔问题数据的方式创建问题。
假设您对多个产品有多个调度问题。s manbetx 845时间段在向量中,一段时间
,产品处于串向量,s manbetx 845s manbetx 845
。
期间= 1:10;s manbetx 845产品= [“草莓”那“樱桃”那“红葡萄”那......“绿色葡萄”那“油桃”那“杏”];
要创建表示每个句点中使用的产品数量的变量,请使用从数据中占用大小的语句。s manbetx 845例如:
用法= Optimvar('用法',长度(周期),产品,s manbetx 845......'类型'那'整数'那'indowbound',0);
稍后更改时间段或产品,您只需要更改数据s manbetx 845一段时间
和s manbetx 845
。然后,您可以运行相同的代码来创建用法
。
换句话说,为了保持灵活性并允许重用,请勿使用具有硬编码数据大小的语句。例如:
用法= Optimvar('用法',10,6,......% 不要这样做'类型'那'整数'那'indowbound',0);
同样的考虑对于表达式和变量保持。假设产品的成本处于数据矩阵中,s manbetx 845成本
,大小长度(周期)
-经过-长度(产品)s manbetx 845
。要模拟有效数据,请创建适当大小的随机整数矩阵。
RNG.默认重复性的%成本= randi(8,长度(周期),长度(产品));s manbetx 845
最佳做法是创建从数据中占用大小的成本表达式。
Costperyear = Sum(成本。*使用,2);totalcost = sum(costperyear);
通过这种方式,如果您更改了数据大小,则创建的语句肋糖
和总花费
不要换。换句话说,为了保持灵活性并允许重用,请勿使用具有硬编码数据大小的语句。例如:
Costperyear = Optimexpr(10,1);% 不要这样做totalcost = 0;为了Yr = 1:10% 不要这样做Costperyear(i)=总和(成本(即:)。*用法(我,:));totalcost = totalcost + costperyear(i);结尾