问题描述
我对编码有疑问。我想优化炼油的混合7天。 一个时隙是1天。如果没有库存条款,则优化不会有问题。但是,当我添加组件术语的术语清单时,没有什么是混合的和不可行的“质量约束不可行-未缩放(缩放):”这样的内容。我怎么解决这个问题。请帮助我。...
源代码如下
// Model Parameters
{string} Products = ...;
{string} Components = ...;
int NbPeriods = ...;
range Periods = 1..NbPeriods;
//Product information
int Demand[Products][Periods] =...;
float ProdPrice[Products][Periods] =...;
float SulMax[Products][Periods] =...;
float DenMin[Products][Periods] =...;
float DenMax[Products][Periods] =...;
float distilMax[Products][Periods] =...;
float FPMin[Products][Periods] =...;
//Component information
float CompPrice[Components][Periods] =...;
float Sul[Components][Periods] =...;
float Den[Components][Periods] =...;
float distil[Components][Periods] =...;
float FP[Components][Periods] =...;
float IniInv[Components] =...;
float IniBlend[Components][Products]=...;
float FlowRate[Components][Periods] =...;
//decision variable deFinition
dvar float+ Blend[Components][Products][0..NbPeriods];
dvar float+ Comp[Components][0..NbPeriods];
dexpr float Profit =
sum(p in Products,c in Components,t in Periods) ProdPrice[p][t] * Blend[c][p][t];
dexpr float Cost =
sum(p in Products,t in Periods) CompPrice[c][t] * Blend[c][p][t];
//Model Objective Function
maximize Profit - Cost ;
//Constraints
subject to {
forall(p in Products,t in Periods) // Demand Constraint
contDemand:
sum(c in Components) Blend[c][p][t] == Demand[p][t];
forall(c in Components,t in Periods)
ctCapacity:
sum(p in Products) Blend[c][p][t] <= Comp[c][t];
forall(c in Components) // Initial Inventory Constraint
contInventory:
Comp[c][0] == IniInv[c];
forall(c in Components,p in Products) // Initial Blend Constraint
continiBlendin:
Blend[c][p][0] == IniBlend[c][p];
forall(t in Periods,p in Products) // Material Balance
contInvMaterial:
Comp[c][t-1] + FlowRate[c][t] - sum(c in Components) Blend[c][p][t-1] == Comp[c][t];
forall(p in Products,t in Periods) // Product Property Constraint : Max Sulfur
contSulfur:
sum(c in Components)
(Sul[c][t] - SulMax[p][t]) * Blend[c][p][t] <= 0;
forall(p in Products,t in Periods) // Product Property Constraint : Min < Density < Max
contDensity:
sum(c in Components)
(Den[c][t] - DenMax[p][t]) * Blend[c][p][t] <= 0
&&sum(c in Components)
(Den[c][t] - DenMin[p][t]) * Blend[c][p][t] >= 0;
forall(p in Products,t in Periods) // Product Property Constraint : Max distil 90%
contdistillation:
sum(c in Components)
(distil[c][t] - distilMax[p][t]) * Blend[c][p][t] <= 0;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)