GAMS表示实体的类型名:
索引称为集合:sets
已知数据名称为参数:parameters
约束和目标函数称为方程:equations
GAMS模型的基本组成
在一个语句中,单个声明用set,几个声明用sets
当给成员赋集合值时,使用星号(*)很方便。
以下是赋值结果:
注意:集合元素是作为字符串保存的,所以t的元素不是数字哦。
另一个方便的语句是:Alias,用于毒死先前已声明的集合给出另一个名字。如:
Alias(t, tp),其中tp表示数学中的,这在模型里同一集合内涉及到的元素的相互作用时是很有用的。以上是关于静态集合中元素定义的例子。
数据的输入方法
方法1:列表数据输入
方法2:表格数据输入
方法3:直接赋值数据输入
直接赋值数据输入与列表和表格的方法不同,因为它用不同的语句声明参数和给参数赋值。
每个变量给定一个名字、一个域(如果可行,其中表量没有域)和(可选的)文本
一旦声明,每个变量必须赋予一个类型,允许的类型见下表
作为做优化的变量必须是一个标量,并且必须是任意(free)类型。
Positive variable x;
Free z
方程
关键字:Equations
求和符号:Sum
Sum(j, x(i,j))表示:
Sum((i, j), c(i, j)*x(i, j))表示:
求积:Prod,与Sum的格式类似;
方程定义的组成及其顺序:
被定义方程的名字;
范围(或域);
约束条件的范围(可选的);
符号‘..’;
左边的表达式;
关系操作符:=1= 小于或等于, =e= 等于, 或 =g=大于或等于
右边的表达式
模型和求解语句
model transport /all/;
在教材中的例子中,等价于: model transport /cost, supply, demand/;
求解语句格式:
关键字solve;
求解模型的名称;
关键字using;
求解程序名;
关键字‘minimizing’或‘maximizing’;
优化变量的名称。
其中第4步骤中可用的求解程序如下:
miqcp 混合整数二次约束规划 minlp 混合整数非线性规划
rmiqcp 松弛混合整数二次约束规划 rminlp 松弛混合整数非线性规划
mcp 混合互补问题 mpec 均衡约束数学规划
cns 约束性非线性系统
显示语句
display
display x.l, x.m