GAMS系列分享12—GAMS基础知识——模型和求解
介绍模型及求解的相关问题
目录
1,模型的分类
2,模型声明和定义语法
3,solve语句
4 有多个solve语句的程序
4.1一个简单的形式:文件中建立3个模型,并用3个solve语句进行求解。
4.2 灵敏度分析
4.3 帕累托最优
4.4 非标准算法的迭代求解
1,模型的分类
GAMS可以建立三种类型的模型;分别为
- 优化模型(LP,NLP,DNLP,QCP等) ;
- 约束性非线性系统(CNS)
- 混合互补问题(MCP)
2,模型声明和定义语法
语法: Model Modelname optional explanatory text / model contents /; 其中:model contets 的内容可以分为如下
|
Model warehousel Warehouse location model /all/; |
Model warehousel2 Warehouse location model /tcosteq,supplyeq,demandeq,balance,capacity,configure/; |
Model one first model / e1,e2,e3 / two second model that nests first / one, e4 / three third model that nests first and second / two, e5 /; |
3,solve语句
**GAMS并不直接求解你的问题,而是把问题的定义传给一些独立的求解器。
语法:
Solve model name maximizing var name using model type ; Solve model name minimizing var name using model type ; Solve model name using model type maximizing var name ; Solve model name using model type minimizing var name ; |
4 有多个solve语句的程序
一个gams文件,可以包含多个solve语句,用于对大型复杂的问题进行求解或者对某个参数进行灵敏度分析。
4.1一个简单的形式:文件中建立3个模型,并用3个solve语句进行求解。
4.2 灵敏度分析
为分析,负荷大小对机组出力的灵敏度分析
loop(counter,
load = sum(gen,data(gen,'Pmin'))+
((ord(counter)-1)/(card(counter)-1))*sum(gen,data(gen,'Pmax')-data(gen,'Pmin')) ;
solve ECD us qcp min of;
repGen(counter,gen) = P.l(gen);
report(counter,'OF') = of.l;
report(counter,'load') = load;
);
4.3 帕累托最优
Loop(loadcounter,
load = 350+ord(loadcounter)*50;
solve END us qcp min TC;
report(loadcounter ,'MAXTE') = TE.l;
report(loadcounter,'MINTC')= TC.l;
solve END us qcp min TE;
report(loadcounter,'MINTE') = TE.l;
report(loadcounter,'MAXTC')= TC.l;
*内层循环
loop ( counter ,
Elim = (report(loadcounter,'MAXTE')-report(loadcounter,'MINTE'))*((ord(counter)-1)/(card(counter)-1))+report(loadcounter,'MINTE');
TE.up = Elim;
solve END us qcp min TC;
rep(loadcounter,counter,'TC') = TC.l;
rep(loadcounter,counter,'TE') = TE.l;
rep2(loadcounter,counter,gen) = P.l(gen);
);
*****************重点关注,内层循环结束后,在返回外层循环的时候,需要计算TE,而内层循环将TE.up 固定,
TE.up = inf;
);
display rep,rep2;
4.4 非标准算法的迭代求解
将一个大问题,分解成小问题。
小问题的求解结果,之间相互通信
最终解决大问题
至此,GAMS编程的基本数据结构,集合,参数,变量,方程,模型都已经介绍完毕,后边将介绍,一些常用的逻辑表达,美元操作符等内容。
搜索“GAMS系列分享”,查看GAMS在电力系统(综合能源)中的应用!!!
搜索“GAMS系列分享”,查看GAMS在电力系统(综合能源)中的应用!!!
搜索“GAMS系列分享”,查看GAMS在电力系统(综合能源)中的应用!!!
纯手打,有错误的话,请留言交流(*..*)。
GAMS系列分享12—GAMS基础知识——模型和求解相关推荐
- GAMS系列分享8--电力系统最优潮流—24母线最优潮流
本节重点: 24母线电力系统 基于直流潮流 最优潮流计算 编程参考:GAMS系列分享6--电力系统最优潮流-3母线最优潮流. 物理模型,数学模型都一模一样,编程只是数据量大一点,一模一样 重点:一 ...
- GAMS系列分享14——综合能源系统——CHP机组运行区域
包含CHP 的优化运行, CHP机组的运行优化,考虑其运行区域 目录 1,物理模型 1.1系统整体模型 1.2 CHP机组的运行域 2,数学模型 3,代码 4,难 ...
- 考试备战系列--软考--02基础知识复习
这部分主要是计算机基础知识的概念介绍,相关系列文章如下所示. 考试备战系列--软考--01基础架构概念 考试备战系列--软考--02基础知识复习 考试备战系列--软考--03综合知识复习 考试备战系列 ...
- Python系列 之 matplotlib库 基础知识
Python系列 之 matplotlib库 基础知识学习 Pyplot 简单示例 中文显示问题 注册全局字体 font_manager.FontProperties注册字体 Figure Figur ...
- 《例说51单片机(C语言版)(第3版)》——1-2 8051基础知识
本节书摘来自异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1-2节,作者 张义和,王敏男,许宏昌,余春长,更多章节内容可以访问云栖社区"异步社区"公 ...
- python编程中常用的12种基础知识总结
python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
- python编程基础知识点总结_【转载】Python编程中常用的12种基础知识总结
Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- Python 编程中常用的12种基础知识总结
Python 编程中常用的12 种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出 ...
最新文章
- fastText中的子词嵌入和高效文本分类:简单高效性能好
- uniapp原生子窗体(弹出层为例子)
- mysql server windows_Windows下mysql community server 8.0.16安装配置方法图文教程
- mysql mycont,MySQL与DevC++的连接问题
- 利用导航网格限制玩家移动范围
- 做人好难,做好人更难,还是做猪吧!
- 小说我成了机器人桑尼_我在月球当皇帝
- win7电脑怎样修改环境变量
- 最炫黑科技还得谷歌!一副眼镜告别学外语,一个地图App在家沉浸式环球游
- vscode ctrl + s自动保存代码 插件安装
- 机器视觉编码靶标自动提取和解码Coded Target/ Marker Detector
- python处理can协议文件_用Python处理CAN数据库
- 新型旅游网站热地带SEO优化建议
- 教师资格证信息技术教案
- 马斯克:需要300T电池
- 如何用java实现发邮件功能
- 调整时间,当日期遇到星期六|星期日,则需要跳过
- 盘点智能养猪场常用设备,养殖智能监控系统作用大
- 谷歌浏览器调试移动端h5页面
- 全球十大外汇黄金交易平台排名2020版