If statement GAMS中的If函数

If statement GAMS中的If函数,if-statement,gams-math,If Statement,Gams Math,我一直在忙于一个模型,但我对结果感到不安,因为我认为GAMS违反了约束。我想告诉GAMS的是: “先检查需求->然后检查现有库存->如果现有库存中有足够的库存出售->如果现有库存中没有足够的库存,则先购买(生产)然后出售。” 我认为,在模型中,GAMS不遵守任何需求(销售),任何最低价值,销售任何东西而不购买任何东西 模型如下所示: Sets i items /s,p,b/ t time in quarters /1,2,3/ Parameters price(i) selli

我一直在忙于一个模型,但我对结果感到不安,因为我认为GAMS违反了约束。我想告诉GAMS的是:

“先检查需求->然后检查现有库存->如果现有库存中有足够的库存出售->如果现有库存中没有足够的库存,则先购买(生产)然后出售。”

我认为,在模型中,GAMS不遵守任何需求(销售),任何最低价值,销售任何东西而不购买任何东西

模型如下所示:

Sets
i  items /s,p,b/
t  time in quarters /1,2,3/

Parameters
price(i)       selling price per unit i per quarter in euros /s 6.34, p 6.46, b 5.93/
inistock(i)    initial stock in units /s 320000, p 296199, b 104208/
cap(i)         capacity limit for each unit /s 400000, p 350000, b 150000/
c              cost of holding 1 unit of i /s 10, p 15, b 12/

Scalars
tcap           total capacity of warehouse /650000/

Variables
stock(i,t)     stock stored at time t
sell(i,t)      stock sold at time t
buy(i,t)       stock bought at time t
cost           total cost

Positive Variables stock,sell,buy

Equations
cst            total cost occurs
stck(i,t)      stock balance of unit i at time t;

cst..         cost=e=sum((i,t),price(i)*(buy(i,t)-sell(i,t))+c(i)*stock(i,t));
stck(i,t)..   stock(i,t)=e=inistock(i)+stock(i,t-1)+buy(i,t)-sell(i,t);
stck.up(i,t)=tcap;

Option LP=Cplex ;

Option optcr=0;

Model TWH The Warehouse Problem / all /;

Solve TWH minimizing cost using lp;

提前感谢您的支持

您没有设置任何需求约束,唯一的最小值是将变量定义为正的零界限

您希望GAMS遵守什么其他约束

出售所有东西是解决您定义的问题的正确方法

我也认为这部分是一个错误:

stck.up(i,t)=tcap;
你可能想写“股票”而不是“股票”。
如果这是一个下限(写“lo”而不是“up”),您将遇到一个非常重要的解决方案问题,因为您正在添加仓库应填充到最大容量的约束。

您没有设置任何需求约束,唯一的最小值是将变量定义为正的零边界

您希望GAMS遵守什么其他约束

出售所有东西是解决您定义的问题的正确方法

我也认为这部分是一个错误:

stck.up(i,t)=tcap;
你可能想写“股票”而不是“股票”。 如果这是一个下限(写“lo”而不是“up”),您将遇到一个非常重要的解决方案问题,因为您正在添加一个仓库应填充到最大容量的约束