介绍模型及求解的相关问题

目录

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 的内容可以分为如下

  • 最常见的,   /all/

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基础知识——模型和求解相关推荐

  1. GAMS系列分享8--电力系统最优潮流—24母线最优潮流

    本节重点:   24母线电力系统 基于直流潮流 最优潮流计算 编程参考:GAMS系列分享6--电力系统最优潮流-3母线最优潮流. 物理模型,数学模型都一模一样,编程只是数据量大一点,一模一样 重点:一 ...

  2. GAMS系列分享14——综合能源系统——CHP机组运行区域

    包含CHP 的优化运行, CHP机组的运行优化,考虑其运行区域 目录 1,物理模型 1.1系统整体模型 1.2 CHP机组的运行域 2,数学模型                  ​ 3,代码 4,难 ...

  3. 考试备战系列--软考--02基础知识复习

    这部分主要是计算机基础知识的概念介绍,相关系列文章如下所示. 考试备战系列--软考--01基础架构概念 考试备战系列--软考--02基础知识复习 考试备战系列--软考--03综合知识复习 考试备战系列 ...

  4. Python系列 之 matplotlib库 基础知识

    Python系列 之 matplotlib库 基础知识学习 Pyplot 简单示例 中文显示问题 注册全局字体 font_manager.FontProperties注册字体 Figure Figur ...

  5. 《例说51单片机(C语言版)(第3版)》——1-2 8051基础知识

    本节书摘来自异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1-2节,作者 张义和,王敏男,许宏昌,余春长,更多章节内容可以访问云栖社区"异步社区"公 ...

  6. python编程中常用的12种基础知识总结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  7. Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  8. python编程基础知识点总结_【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  9. Python 编程中常用的12种基础知识总结

    Python 编程中常用的12 种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出 ...

最新文章

  1. fastText中的子词嵌入和高效文本分类:简单高效性能好
  2. uniapp原生子窗体(弹出层为例子)
  3. mysql server windows_Windows下mysql community server 8.0.16安装配置方法图文教程
  4. mysql mycont,MySQL与DevC++的连接问题
  5. 利用导航网格限制玩家移动范围
  6. 做人好难,做好人更难,还是做猪吧!
  7. 小说我成了机器人桑尼_我在月球当皇帝
  8. win7电脑怎样修改环境变量
  9. 最炫黑科技还得谷歌!一副眼镜告别学外语,一个地图App在家沉浸式环球游
  10. vscode ctrl + s自动保存代码 插件安装
  11. 机器视觉编码靶标自动提取和解码Coded Target/  Marker Detector
  12. python处理can协议文件_用Python处理CAN数据库
  13. 新型旅游网站热地带SEO优化建议
  14. 教师资格证信息技术教案
  15. 马斯克:需要300T电池
  16. 如何用java实现发邮件功能
  17. 调整时间,当日期遇到星期六|星期日,则需要跳过
  18. 盘点智能养猪场常用设备,养殖智能监控系统作用大
  19. 谷歌浏览器调试移动端h5页面
  20. 全球十大外汇黄金交易平台排名2020版

热门文章

  1. Tiled有java版本吗_【Cocos2d-X开发学习笔记】开发工具之Tiled地图编辑器的使用
  2. 自学C语言入门教程(上)
  3. CM1-确定字符互异-【字符串】
  4. 机器取代人的智造年代,你靠什么掌舵?
  5. 盲盒源码开发附搭建教程
  6. COA-2019-第十四章 Instruction Sets
  7. 金蝶K3即时库存查询,所有物料供应商都是同一个问题处理
  8. 信息安全技术——(五)信息隐藏技术
  9. 判断三角形 java_java中判断是否三角形的方法
  10. 阳性,阴性,假阳性,假阴性,敏感度,特异性