主要内容

从数据分开优化模型

为了获得可扩展的,可重用的优化问题,以与模型结构分隔问题数据的方式创建问题。

假设您对多个产品有多个调度问题。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);结尾

相关话题