Lingo编程基础
2019-08-06 08:40
190 查看
一.基本语法规则(参考博文:https://blog.csdn.net/qq_37158933/article/details/83002940)
1.语句必须以分号;结束,每行可以有多个语句,语句可以跨行。
2.!开头为注释,注释也需要;结尾。
3.若对变量取值范围没有特殊说明,则默认所有决策变量都是负。
4.Lingo模型以语句“model:”开头,以“end"结尾。对于简单模型,可以省略。
5.Lingo没有单独”<"或”>"关系,若出现”<"等价于"<="。如果需要严格要求大/小关系。可以写成:A+α<=B,α是一个小的正数,它的值依赖于模型小于B多少才算不等。
二.集合(参考博文:https://www.geek-share.com/detail/2711424170.html)
直接贴代码(注释很详细)
[code]!模型的开始; model: !集合定义的开始; sets: quarters/1,2,3,4/:dem, rp, op, inv; !集合quarters类似于数组,dem等表示该集合包含的元素,这里一共有四个元素。 /1,2,3,4/表示该集合的大小,对应着实际问题的每一个季度,/1,2,3,4/等价于 /1..4/,当集合大小比较大时,建议写后者; endsets !集合定义的结束; min = @sum(quarters:400*rp+450*op+20*inv); !@sum(),求和函数表示对该集合所有依次进行求和,由于这是是对所有,所以省去了循环变量,这里等价于 @sum(quarters(i):400*rp(i)+450*op(i)+20*inv(i)); @for(quarters(i):rp(i)<40); !@for类似于c/c++中的for循环,对其中操作循环进行; @for(quarters(i)|I#GT#1 !|表示对于循环的限制,#GT#表示大于; inv(i) = inv(i-1)+rp(i)+op(i)-dem(i);); :inv(1) = 10+rp(1)+op(1)-dem(1); data: !初始数据段开始; dem = 40, 60, 75, 25; enddata end
三.Lingo中的常见函数
相关文章推荐
- 50道Java编程基础题
- WatchKit编程指南:Glance--Glance开发基础
- 【图形学与游戏编程】开发笔记-入门篇2:一些需要的基础知识
- 安卓基础4:网络编程1_消息机制和图片处理
- Shell编程基础
- linux 网络编程基础
- PL/SQL编程基础(章节摘要)
- Java编程基础--关键字【知识体系构建系列】
- 网络编程基础(转)
- 并发编程基础07-使用wait和notify模拟LinkedBlockingQueue
- Socket原理与编程基础
- shell编程基础···初学者必用
- LinuxC/C++编程基础(21) 使用boost::asio搭建服务器简单实例(续)
- Python3 基础:面向对象高级编程(上)
- java基础学习总结——GUI编程(二)
- socket编程基础3
- 编程重要基础
- C++基础---基本编程语句
- [转]win32基础编程知识