- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《GAMS 使用心得+经验+技巧+实例(中文版)》.pdf
GAMS 使用经验和技巧
能看到这篇文字的同学,恐怕大多数是在灯下苦读的学子。实际上学习某种
工具并不重要。真正要学习的是知识,是思维的方法。就像很多计算机系的学生
一样,把数据结构和算法精通了,任何工具都是一样的。所以,你用 GAMS或者
不用GAMS,都没有关系,要把握事物的本质,最关键的东西抓住了,任何语言
就是一种输入法。另外,学习一定要有兴趣,要认识到他的beauty,不要把什
么都换算**民币,那样你会觉得很累。
GAMS编程简单的说就是不很多相关的约束和目标函数组合到一起,然后调用不
同类型的solver来解决。
说到这里,大家对GAMS只能有一个大概的了解。我觉得写GAMS code 并不难,
难的只有两点:
1.定义你的模型。要选取最efficient的方法
2.定义好你的set。模型里面所有的东西都和它有关,正所谓牵一发动全身。;v)
Q s7 k8 d* v( F7 `
其他都是水到渠成。
0 d* Z, U9 c v3 8 F$ U D* R0 `/ N) F8 S0 G
第一章,基本概况
GAMS是一种非常简单易学的运筹学建模语言 (),是由WORLDBANK
开发的。由于近几十年计算机软硬件的的高速发展,世界银行决定投资开发GAMS,
来提供:, c, d w% H7 T B
1. 建立复杂模型的高级语言- h( {. y+ X, e$ z2 D
2. 简单易学6 u# P% T: X* U2 J% z
3. 强大的描述代数及逻辑关系/ X# @ K9 [3 [# z! z. w7 {$ n
4. 模型可以独立于算法系统9 T! t6 z A) V! {
GAMS 可以让使用者专心致力于模型的建立而省略了解法方面的考虑因为 GAMS
包含了解决通用的LP,NLP,MILP,MINLP等各类模型所需要的solver. 另外,
GAMS提供了和外界进行交互的输入输出借口。使得用户很方便的导入导出data。
% ^$ X% j% E1 Z( a+ J
下面当然是tutorial了,就想学习任何一种编程语言一样,最开始都要学习输
出 helloworld. 我们这里当然要复杂一点了,举一个最简单的例子,运输问题.
这是一个经典的LP问题(不用解释什么是LP吧,呵呵):t5T7`p2O;h2b+
X+ e7 i
用点英语,呵呵,) x8 P( N# }/ r+ a
In the familiar transportation problem, we are given the supplies at
severalplants and thedemands atseveral marketsfor asingle commodity,
and we are given the unit costs of shipping the commodity from plants to
markets. The economic question is: how much shipment should there be
betweeneachplantandeachmarketsoastominimizetotaltransportcost?
W- a4 h! A. M) t
就是说,我们已知有一些工厂,生产出的产品要运往一些市场来满足他们的需求,
每一个工厂的生产能力(每个工厂能提供产品的数量)以及每个市场的需求(每
个市场需要产品的数量)是已知的。另外,我们还知道从特定的工厂到特定的市
场,运输一件产品的运费。那么我们怎么样设计从每个工厂到每个市场运送货物
的数量,使得总运费最小?
Indices:( |! R; Q Z( Y- V J) Q$ a
i = plants
j = markets
Given Data:
ai = supply of commodity of plant i (in cases) ~: g8 s: _. H U1 z
bj = demand for commodity at market j (cases)
cij = cost per unit shipment between plant i and market j ($/case)
Decision Variables:/ M9 v A+ J Y8 b. j
Xij = amount of commodity to ship from plant i to market j
在这里唯一的连续变量是Xi,j,
模型就不用我说了吧。。。。# ?. [$ X# f, W( D(
文档评论(0)