GAMS系列分享9-GAMS基础知识--带参数的数据处理

大力丸,对索引不熟,本节就是你的波力海苔。

 

再次读本章内容,还是收获满满呀。文中标红的地方重点理解,掌握。

 

再也不担心不会用索引了。

 

目录

数据处理

1,赋值语句

1.1 scalar赋值

1.2 带索引赋值

1.3 控制索引问题

2,表达式

2.1  标准的算术操作符

2.2  带索引操作

2.3 函数

3,重点总结


 

数据处理

1,赋值语句

       赋值语句是GAMS中最基本的数据处理语句,用于定义或修改任何集合,参数,变量或方程的值。GAMS使用加减乘除。

1.1 scalar赋值

         scalar x  /1.5/

         x = 1;

         x =x+2;

1.2 带索引赋值

        所有学生的体重都和身高成一定的比例:加入student为学生集合

        weight(student) = 1.5 *height(student);       

        c(i,j) = f * d(i,j) / 1000 ;

         这种赋值方式在技术上称为带索引赋值 ,集合student 称为控制索引或者控制集合。

  **赋值表达式左边的索引集合统称为赋值的控制域

1.3 控制索引问题

      等号左边的控制索引至少应该等于右边的索引数,赋值语句左边没有出现的索引,右边也应该没有,除非通过一个带索引的操作符实现。

GAMS系列分享9-GAMS基础知识--带参数的数据处理

GAMS系列分享9-GAMS基础知识--带参数的数据处理

GAMS系列分享9-GAMS基础知识--带参数的数据处理

2,表达式

2.1  标准的算术操作符

     加减乘除,求幂  (要考虑优先级)

      x =  5+4*3**2  ;  可以得到x =41;

2.2  带索引操作

 除了前面介绍的简单操作外,GAMS化提供了下面四种带索引操作。下面四个操作都是基于一个或多个索引。

         1)sum:控制索引求和

         2 )prod:控制索引求积

         3)smin:控制索引取最小值

          4)smax:控制索引求最大值

      举个最简单的例子,还是那个商品传输的例子。(基础知识是以后读懂程序会写程序的基础)

    supply(i) ..   sum(j, x(i,j))  =l=  a(i) ;                  ------------sum(j, x(i,j))                单控制索引

    cost ..        z  =e=  sum((i,j), c(i,j)*x(i,j)) ;          ------------sum((i,j), c(i,j)*x(i,j))  多控制索引

2.3 函数

       GAMS中提供了一些有用的函数,如幂函数,三角函数,分布函数,取整函数,等。具体参考第六章GAMS用户手册。

3,重点总结

**赋值表达式左边的索引集合统称为赋值的控制域      

**等号左边的控制索引至少应该等于右边的索引数,赋值语句左边没有出现的索引,右边也应该没有,除非通过一个带索引的操作符实现。

本文截图部分很重要,主要是探讨,为啥要对一个集合多重命名的问题。

 

搜索GAMS系列分享,查看系列文章哟!!!

搜索GAMS系列分享,查看系列文章哟!!!

搜索GAMS系列分享,查看系列文章哟!!!