QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 16124|回复: 9
打印 上一主题 下一主题

【转载】GAMS中文使用手册连载01

[复制链接]
字体大小: 正常 放大

1253

主题

442

听众

-586

积分

复兴中华数学头子

  • TA的每日心情
    开心
    2011-9-26 17:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    自我介绍
    数学中国网站(www.madio.cn)是目前中国最大的数学建模交流社区

    邮箱绑定达人 优秀斑竹奖 发帖功臣 元老勋章 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组越狱吧

    群组湖南工业大学数学建模同盟会

    群组四川农业大学数学建模协会

    群组重庆交通大学数学建模协会

    群组中国矿业大学数学建模协会

    跳转到指定楼层
    1#
    发表于 2009-11-14 05:10 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    写在前面的话
    / ~: T% U; d0 |0 n  l
    ' M! ?0 k" q$ A( s6 Z在学习和工作之余写点东西,这种想法由来已久了。只是总是觉得很忙,抽不出时间做一点点自己喜欢做的事情。突然有一天发现,你必须牺牲某些东西才能得到某些东西。所以,就索性写上几句话聊以**吧。
    6 H5 |* z3 m* a( S1 X最开始,只想翻译一下GAMS的用户手册。但是又觉得这样写很枯燥,不光读者不喜欢看,连自己也要打瞌睡了。如果想催眠的话,还不如去听评书。但是本书还是以解释GAMS的用法为主。中间夹杂着一些自己做modelling 的体验,还可能还有一些毫不相关的东西。可能有很多错误,请读者们原谅。想学习GAMS的同学,想必一定是数学,运筹学或计算机相关专业的了。让大家失望了,其实我的专业是chemical engineering, 本科时候做的是量子化学。阴差阳错上了贼船。但是觉得自己用了这么多年了,总该有点体会,能过帮帮大家。/ k% T. F; o4 q

    ; ]* G  }9 M$ B9 Y2 r2 e进入正题之前,还想啰嗦几句题外的话。8 C- ]/ o. a- B% F" `
    能看到这篇文字的同学,恐怕大多数是在灯下苦读的学子。实际上学习某种工具并不重要。真正要学习的是知识,是思维的方法。就像很多计算机系的学生一样,把数据结构和算法精通了,任何工具都是一样的。所以,你用GAMS或者不用GAMS,都没有关系,要把握事物的本质,最关键的东西抓住了,任何语言就是一种输入法。另外,学习一定要有兴趣,要认识到他的beauty,不要把什么都换算**民币,那样你会觉得很累。除了,coding 以外,还要博览群书,文史哲,拿来翻翻,就当休息了。
    % r- \' a( [# `, _最后,男子汉们,别忘了,谈一场轰轰烈烈的恋爱!!  g; y3 G8 ^' I% P+ ]1 v

    ) r) F, d  F7 O1 b7 s' W1 M' ^% N. x- r/ v, F6 C: }( h, |' k+ o2 p
    1 l/ y+ \% h- M; O: J
    2 O1 U0 I- a: @4 B  |* l- k4 f' b

    1 {0 G, P. q2 v! K& ?
    ! W' k9 o: h4 l1 P5 W" I第一章,基本概况
    & J5 j4 b% Y2 O/ X6 r0 S' R2 A. `7 D7 g5 L
    GAMS是一种非常简单易学的运筹学建模语言 (www.gams.com),是由WORLD BANK 开发的。由于近几十年计算机软硬件的的高速发展,世界银行决定投资开发GAMS, 来提供:% K6 d$ g$ l& O9 `# H
    1. 建立复杂模型的高级语言8 h- L8 E( Z$ E* q, m" V1 j8 }8 f
    2. 简单易学& ?- {/ k: Y4 z) G! g8 f
    3. 强大的描述代数及逻辑关系
    ; j9 |3 @  k1 A% m+ ^4. 模型可以独立于算法系统
    7 O& x- Y% L) {3 p1 lGAMS 可以让使用者专心致力于模型的建立而省略了解法方面的考虑因为GAMS包含了解决通用的LP,NLP,MILP,MINLP等各类模型所需要的solver. 另外,GAMS提供了和外界进行交互的输入输出借口。使得用户很方便的导入导出data。5 r: N7 i0 f7 b; n6 e
    下面当然是tutorial了,就想学习任何一种编程语言一样,最开始都要学习输出 hello world. 我们这里当然要复杂一点了,举一个最简单的例子,运输问题.
    - Y: Z9 D/ Y) ^0 S这是一个经典的LP问题(不用解释什么是LP吧,呵呵)9 g; K+ k2 @% I' h' H+ N/ l3 b
    用点英语,呵呵,: O) p& E: C: F' M# a' t# R5 J
    In the familiar transportation problem, we are given the supplies at several plants and the demands at several markets for a single 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 between each plant and each market so as to minimize total transport cost?
    & ~4 |! R5 h) k# ^就是说,我们已知有一些工厂,生产出的产品要运往一些市场来满足他们的需求,每一个工厂的生产能力(每个工厂能提供产品的数量)以及每个市场的需求(每个市场需要产品的数量)是已知的。另外,我们还知道从特定的工厂到特定的市场,运输一件产品的运费。那么我们怎么样设计从每个工厂到每个市场运送货物的数量,使得总运费最小?9 i6 z5 {3 q6 J1 U, Q7 H' }
    Indices:
    0 R+ Y8 L1 z! M6 B, W% hi = plants. U" F: Y- O- O  v, J0 z, o
    j = markets2 |/ ^. T  O1 R& w
    Given Data:
    ' f9 Q: p' f/ b+ `ai = supply of commodity of plant i (in cases)
    6 |% R1 B! ]/ P4 o6 D+ [$ Gbj = demand for commodity at market j (cases)
    ; m% j" G* v2 w# v5 e9 ^6 ucij = cost per unit shipment between plant i and market j ($/case)
    ; G& N* W, d) LDecision Variables:. l4 Y3 v  q" ?. u) f
    Xij = amount of commodity to ship from plant i to market j
    6 D8 l2 n8 T1 q8 p在这里唯一的连续变量是Xi,j,
    - S$ G* [8 w5 m! i) @模型就不用我说了吧。。。。
    ; w% r. `" g8 P: ~9 {) T) d) B+ ~5 V4 r% h; _
    这是一个典型的线性规划问题,他的GAMS code is2 n) ~: y- I# M. t! J4 r) ^. {
    # x2 [' k. V/ f9 x- N- |
    Sets
    0 V, q, |) B2 ?* S! k, o2 J1 W! Ji canning plants / seattle, san-diego /
    ) L6 M# I1 [9 ^- ]; A  dj markets / new-york, chicago, topeka / ;: |) _( T- \: k
    Parameters
    & A( w9 i% K8 p4 m# q8 P( e" Ra(i) capacity of plant i in cases
    + }1 a9 y1 ]' A. N* |/ seattle 350
    0 Q& L0 n; f4 dsan-diego 600 /
    - i4 H8 O& U/ Y' b0 L# g+ r2 T% fb(j) demand at market j in cases
    & G" ?5 H( t# s5 p0 b' b+ h  X/ new-york 325
    ( q2 J2 s1 E+ h2 B! {: p; dchicago 300* v3 I( {' @0 k3 C5 x
    topeka 275 / ;9 Y  t/ N( a3 |
    Table d(i,j) distance in thousands of miles
    ; ~4 \: P+ a1 Q, x8 u; q3 Lnew-york chicago topeka
    , r) I; t6 Y( _5 g: X" o! gseattle 2.5 1.7 1.8
    5 H( j- U1 g" F! w* E: v! asan-diego 2.5 1.8 1.4 ;; Z0 r# ~5 {* Q( k2 x4 `0 M
    Scalar f freight in dollars per case per thousand miles /90/ ;
      j7 x) t1 }! O  y4 _Parameter c(i,j) transport cost in thousands of dollars per case ;6 @- P# G: q; h7 `! t
    c(i,j) = f * d(i,j) / 1000 ;2 b/ U; t4 I3 i" m" m. \
    Variables
    4 B+ w& _' K( `2 e1 Ax(i,j) shipment quantities in cases
    4 w: `8 K1 ?' \% l/ E) Uz total transportation costs in thousands of dollars ;
    * n# W- w1 z7 h7 E) s  t+ U; VPositive Variable x ;1 Z& a- u1 r  j) F
    Equations
    + V2 s) K3 a7 \4 |% i9 Ucost define objective function
      x8 r% X, @7 e9 U. osupply(i) observe supply limit at plant i. t+ n/ R- t) u! d7 @
    demand(j) satisfy demand at market j ;6 c8 B$ h. u+ I5 z0 I  w" {) y
    cost .. z =e= sum((i,j), c(i,j)*x(i,j)) ;% n9 c  ?' M' _- m" _+ J# t
    supply(i) .. sum(j, x(i,j)) =l= a(i) ;: |4 M) a8 ^) F" F) y7 u
    demand(j) .. sum(i, x(i,j)) =g= b(j) ;. {0 B. J0 m4 u1 A- V1 h) g
    Model transport /all/ ;
    + w% f& N% N" u& j/ iSolve transport using lp minimizing z ;0 F- y2 @0 N9 r* {5 _3 ~
    Display x.l, x.m ;, f9 L5 P8 ?) ~& a& [( v% L
    这是一个非常典型的LP(linear programming)问题,所有的变量和约束都是线性相关的。
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持1 反对反对0 微信微信
    fanghzou 实名认证       

    717

    主题

    4

    听众

    100

    积分

    升级  0%

  • TA的每日心情
    擦汗
    2012-12-2 12:45
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    200 字节以内

    不支持自定义 Discuz! 代码

    新人进步奖

    无人回复呀,版主,我也是化学工程,我觉得一般看这个的还是都是做石油化工的比较多吧。希望和版主交流一下,不知可否。
    回复

    使用道具 举报

    3

    主题

    3

    听众

    72

    积分

    升级  70.53%

  • TA的每日心情
    无聊
    2014-2-24 08:56
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    自我介绍
    我是个好孩子
    谢谢群主,我经常在这个数学中国上看到你,我是学习软件工程的,但是很喜欢数学,2010年参加数学建模竞赛,现在搞密码学,还是天天跟数学打交道,以前用matlab,不知道gams跟matlab有什么区别?群主能说一下嘛?
    回复

    使用道具 举报

    peterjiao        

    6

    主题

    4

    听众

    94

    积分

    升级  93.68%

  • TA的每日心情
    开心
    2012-5-14 00:27
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    新人进步奖

    回复

    使用道具 举报

    0

    主题

    4

    听众

    30

    积分

    升级  26.32%

  • TA的每日心情
    难过
    2012-4-24 16:16
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    自我介绍
    数学建模
    回复

    使用道具 举报

    0

    主题

    8

    听众

    5

    积分

    升级  0%

    该用户从未签到

    回复

    使用道具 举报

    3

    主题

    3

    听众

    26

    积分

    升级  22.11%

  • TA的每日心情
    奋斗
    2014-9-20 16:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    群组2013全国研究生数学建

    回复

    使用道具 举报

    8#
    无效楼层,该帖已经被删除
    LYJA        

    20

    主题

    3

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    开心
    2017-8-27 23:29
  • 签到天数: 61 天

    [LV.6]常住居民II

    社区QQ达人

    回复

    使用道具 举报

    0

    主题

    9

    听众

    1

    积分

    升级  20%

    该用户从未签到

    社区QQ达人

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-10 10:18 , Processed in 0.923781 second(s), 107 queries .

    回顶部