楼主: brpeng
2705 3

[程序分享] 用GAMS编写了一个小程序,运行错误说目标函数不是自由变量,怎么也检查不出来。咋办啊 [推广有奖]

  • 0关注
  • 0粉丝

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
29955 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
89 点
帖子
2
精华
0
在线时间
5 小时
注册时间
2008-4-2
最后登录
2022-3-28

楼主
brpeng 发表于 2013-5-14 20:13:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用GAMS编写了一个小程序,运行错误说目标函数不是自由变量,怎么也检查不出来。咋办啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:gams 自由变量 目标函数 运行错误 小程序 程序 函数

沙发
brpeng 发表于 2013-5-14 20:15:23
Variables
*Cost-------------------
AC(i,j)  abatement cost of measure j
ACT(i) total abatement cost of sub-watershed i
ACTAD(ad)   abatement cost of each administrition
AC_T total abatement cost of watershed

*Abatement-------------------
X(i, j) abatement quantity

Positive Variables X, ACT, AC_T, ACTAD;


Equations
ACFET(i) fertilize cost function
ACPIG(i) pig cost function
ACCA(i) CA cost function
ACWET_R(i) wetland cost function_R
ACWET_U(i)  wetland cost fuchtion_U
ACSEWAGE_L(i) large scale sewage plant
ACSEWAGE_S(i) Small scale sewage plant
TAC_i(i) cost of i
TAC total cost

ACTAD_C(ad)

RESTOTALA(i)   restriction of total abatement  ;

*cost function
ACFET(i)..  t(i)*s(i)*AC(i, "FET")=e=a(i,"FVS")*X(i, "FET")* X(i, "FET")
              + t(i)*s(i)*a(i, "FVF")*X(i, "FET") ;



*ACPIG(i)..     AC(i, "PIG") =e=f(i)* X(i, "PIG")/c ;
ACPIG(i)..     AC(i, "PIG") =e=p_c(i)* X(i, "PIG") ;

*ACCA(i)..      AC(i, "CA") =e= r(i)* X(i, "CA")/(d*t(i)) ;

ACCA(i)..      AC(i, "CA") =e= cat_c(i)* X(i, "CA");

*ACWET_R(i)..   AC(i, "WET_R") =e=r(i)* X(i, "WET_R") /(w*e(i)) ;

ACWET_R(i)..   AC(i, "WET_R") =e=wet(i,"wet_1")*X(i, "WET_R") *X(i, "WET_R")+wet(i,"wet_2")*X(i, "WET_R") ;

*ACWET_U(i)..   AC(i, "WET_U") =e=r(i)* X(i, "WET_U")/ (w*e(i)) ;

ACWET_U(i)..      AC(i, "WET_U") =e=wet(i,"wet_1")*X(i, "WET_U") *X(i, "WET_U")+wet(i,"wet_2")* X(i, "WET_U") ;
ACSEWAGE_L(i)..  AC(i, "SEWAGE_L")=e=X(i, "SEWAGE_L")*cl   ;



ACSEWAGE_S(i)..  AC(i, "SEWAGE_S")=e=X(i, "SEWAGE_S")*cs  ;
RESTOTALA(i).. sum(j,X(i,j))=l=sum(j,abt(i,j));



TAC_i(i).. ACT(i) =e=sum(j, AC(i, j)) ;
TAC.. AC_T=e=sum(i, ACT(i)) ;


ACTAD_C(ad).. ACTAD(ad)=e=sum(i,ACT(i)*ADP(ad,i));


Model optimal_scheme /all/;
solve optimal_scheme using nlp minimizing AC_T;

*optional decimals=0 ;

display ACT.l,AC_T.l;

藤椅
king64 发表于 2014-2-21 12:03:55
这不是完整的程序!
i,j等没定义和赋值
变量也没有赋值
没法帮你查!

板凳
xmmxmm 在职认证  发表于 2014-4-2 04:05:47
把AC_T从positive variable declaration中剔出去。 你的目标变量不能被定义成positive or negative variable.  It has to be a free variable.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 17:55