GAMS系列分享3-GAMS基础知识-集合
? ? ? 重點是集合的概念,順便提一下gams的基本數據類型(注意parameter),一兩分鐘讀一讀相信對你會有點好處。里面有對電力系統對集合概念應用的例子,及本人對集合概念的理解。
目錄
0 基本的數據類型(注意一下(parameter).)
1,單維集合
2,多維集合
3,動態集合(至今我也用過)
?
0 ,GAMS基本的數據類型(注意一下(parameter).)
1 set
2 parameter? 又包含了table 和scalar **(重點呀),原來以為table,也是數據類型,原來只是parameter的子類,方便程序書寫的。
3variable
4 equation
5 model
6 acronyms(這個我也沒用過)? ,(這個是縮寫數據類型,允許字符串作為值)
?
集合在?GAMS程序編寫中很重要,其實在建立模型的時候,已經把集合給定義好了。針對集合的概念,主要掌握兩點 就行了。
1,單維集合
? ? ? ?按我自己的理解,就是集合就是一類東西。具有相同屬性的東西。
? ? ? 不如說學生,都具有身高,體重,學習成績,年級等屬性。所以說學生可以是集合。另外,學生成績包含,語文成績,數學成績,英語成績,這類成績又可以定義集合。
? ? ? 要明白為啥定義集合:集合就是為了編程方便,給這類事物只要寫一個方程就可以了。
? ? ?其實不定義集合,來編程也是可以的,只是麻煩罷了。
? ? 針對電力系統:集合主要包含母線集合,線路集合,發電機集合,時間集合(多時段優化時用到)。
2,多維集合
? ? 為啥要定義多維集合,當然是單維集合不夠用了唄。
? ?多維集合就是提供原來已經定義集合之間的映射關系的。
? ? 比如某模型,已經定義了國家集合,和港口集合。國家集合和港口集合都具有各自的屬性。
? ? 為了建立國家和港口之間的聯系,就需要將兩個集合聯系起來,因此建立了二維集合。
?
電力系統中也有多維集合的例子。比如已經建立了母線集合和發電機集合,還可以建立這兩個集合的連接關系。
天然氣系統中,管道和節點的關系,也是多維集合來描述的。
在我實際的編程中,為了對天然氣管道集合進行描述建立了四維集合。這個對初學者可能不太容易理解,在以后的學習中加強理解。多維結合非常有用!!!!
Pnm(a,gn,gm,gnn) ?arc description; ?
3,動態集合(至今我也用過)
? ? ?動態集合,還沒具體使用過,以后用到了對此部分再進行更新。
4 集合的多重命
? ? ? 電力系統中的應用,alias(bus,node);將母線集合有兩個名稱,也很重要了!!!!我的感覺就是對一個集合有多重索引的能力。
5 子集合范圍檢測
?一個大的集合,可能包含小的集合。在對子集進行定義的時候為了避免出錯,gams可以自動的進行范圍檢查。
? ?bus? ? ?/1*4/
? slack(bus)? ?/1/
?上述定義是正確的,
如果? slack(bus)? ?/5/就是錯誤的,
?
因為slack是bus的子集,但是slack包含了'5',而bus不包含‘5’
?
?
?
歡迎查看GAMS在電力系統應用系列分享文章。(手動碼的有錯誤的大家多多包含)
歡迎查看GAMS在電力系統應用系列分享文章。(手動碼的有錯誤的大家多多包含)
歡迎查看GAMS在電力系統應用系列分享文章。(手動碼的有錯誤的大家多多包含)
?
? ?
總結
以上是生活随笔為你收集整理的GAMS系列分享3-GAMS基础知识-集合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3对接mysql数据库
- 下一篇: Sping和MyBatis的整合