运筹学上的lingo小练习——秒懂
运筹学课上的小练习
笔者也是菜鸟一枚,这篇博客记录了我们课上的练习,如有错误请不吝赐教。
文章目录
- 运筹学课上的小练习
- 一、求和
- 二、实际问题
- 总结
一、求和
题1:
求1+2+3+…100;
!lingo代码:;
sets:set/1..100/:x;
endsets@for(set(i):x(i) = i);
sum = @sum(set(i):x(i));
输出结果:
题2:
求1+2+3+…+98+100;
!lingo代码:;
sets:set/1..98/:x;
endsetsdata:a = 100;
enddata@for(set(i):x(i) = i);
sum = @sum(set(i):x(i));
final_sum = sum + a;
输出结果:
题2:
求1+2+3+…+97+100;
同题2
二、实际问题
题1:
垃圾站问题
在十二个小区里建中转站,以成本最小为原则,看最少需要建几个中转站,以及各个中转站所辐射的小区。各个小区的回收量、投建中转站的固定成本和能提供的最大容量如下表所示。建立模型用lingo进行求解。
分析:
笔者初看此题,一头雾水(太菜了(×_×)),读了几遍题才知道题的意思。
题的意思是:
1.总共有12个小区,每个小区都可以建立垃圾中转站,将一个小区的垃圾运送到有中转站的小区是有运费(表中上部)的。
2.每个小区自身是要产生垃圾的,产生垃圾的量就是表中的“回收量”。
3.建立每个垃圾中转站是是要花钱的,费用就是表中的“固定成本”。
4.每个中转站垃圾的最大容纳量为18。
于是可以建立模型如下:
xi_j 表示 小区i 运送到有中转站的 小区j 的垃圾数量;
cij表示 小区i 运送每单位垃圾到有中转站的 小区j 的运费;
di表示 小区i 建立垃圾中转站的费用;
小区1 | 小区2 | ... | 小区12 | 最大容量 | |
---|---|---|---|---|---|
小区1 | x1_1 | x1_2 | ... | x1_12 | 18 |
小区2 | x2_1 | x2_2 | ... | x2_12 | 18 |
: | ... | ... | ... | ... | ... |
小区12 | x12_1 | x12_2 | ... | x12_12 | 18 |
回收量 | 4 | 6 | ... | 2 | |
可建立以下约束:
x1_1 + x2_1 + ...+ x12_1 = 4——方程1 |
---|
: |
x1_12 + x2_12 + ... + x12_12 = 2——方程12 |
x1_1 + x1_2 + ... + x1_12 <= 18——不等式1 |
: |
x12_1 + x12_2 + ...+ x12_12 <= 18——不等式12 |
yi = 1(表示建立中转站)/0(表示不建立中转站)——方程13 |
xij >= 0, yi = 0或1 |
上述的数据较大,建议保存到excel文件里。
笔者保存的excel如下图:
(需要该excel表的请私信)
总共费用 = 总运费 + 固定费用;
min = ΣΣcijxij + Σyidi;
更多内容请关注GongZhongHao:“讲不完故事的故事君”
!lingo代码:;
!a为容量,b为回收量,c为运费,gdcb为固定成本;
model:sets:hb/1..12/:a,y,gdcb;lb/1..12/:b;hlb(hb, lb):c,x;endsetsdata:a = @OLE( 'laji.xls','rongliang');b = @OLE( 'laji.xls', 'huishouliang');c = @OLE( 'laji.xls', 'yunjia');gdcb = @OLE( 'laji.xls', 'gudingchengben');@OLE('laji.xls', 'jie') = x;enddata@for(hb(i):@sum(lb(j):x(i,j)) <= a(i)*y(i)); !方程1~~方程12;@for(lb(j):@sum(hb(i):x(i,j)) = b(j)); !不等式1~~不等式12;@for(hb:@bin(y)); !方程13;min = @sum(hlb:c*x) + @sum(hb:y*gdcb);
end
!注意:笔者lingo的版本是17.0,无法读取后缀名为.xlsx文件,可以读取.xls文件;
运行结果如下:
总结
1.定义集:
sets:set/1..n/:x;
endsets
2.定义数据:
data:a = n;
enddata
3.分别赋值:
即x1 = 1, x2 = 2, ...,xn = n;
@for(set(i):x(i) = i);
4.求和Σ
即sum = x1 + x2 + ...+ xn;
sum = @sum(set(i):x(i));
5.数据相加
a = b + c;
后续内容请关注CSDN本专栏
运筹学上的lingo小练习——秒懂相关推荐
- SAP MM 采购发票上的金额小差异
SAP MM 采购发票上的金额小差异 对于标准价作为价格控制的商品,如果发票的价格与采购订单价格不同,则SAP系统会将差异计入OBYC-DIF配置的总账科目里. 1, 公司代码0001发票金额小差异的 ...
- Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?
如何在抖音上找到漂亮小姐姐----抖音机器人 最近沉迷于抖音无法自拔,常常花好几个小时在抖音漂亮小姐姐身上. 为了高效.直接地找到漂亮小姐姐,我用 Python + ADB 做了一个 Python 抖 ...
- python抖音github_GitHub - eternal-flame-AD/Douyin-Bot: Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?...
如何在抖音上找到漂亮小姐姐----抖音机器人 最近沉迷于抖音无法自拔,常常花好几个小时在抖音漂亮小姐姐身上. 为了高效.直接地找到漂亮小姐姐,我用 Python + ADB 做了一个 Python 抖 ...
- 在markdown (csdn)博客上输出 右下小标,右上小标。
在markdown (csdn)博客上输出 右下小标,右上小标. 输入: x<sup>2</sup> 输出: x2 输入: x<sub>2</sub> ...
- 【QA】数学符号 word输入问题 在word里面怎么输入字母头顶上的那个小尖儿
Question 在word里面怎么输入字母头顶上的那个小尖儿,如: p ^ j \hat{p}_{j} p^j1 Answer WPS中word: possibility answer 1 点击 ...
- Python爬虫利用18行代码爬取虎牙上百张小姐姐图片
Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...
- 程序员宅男干货福利!手把手教你获取上千张cosplay小姐姐的美照
最近的一段时间里,小编喜欢上了CosPlay的展出,小姐姐们的CosPlay展真的是让我很是欣赏,于是,我回到家里就从网上来看展出,但是一个个网页查看太过繁琐-- 既然是玩Python,不如写个代码搞 ...
- android上调试H5小工具
由于android上,部分网页报错,网页直接调试是看不到的或者显示不够具体,此app方便H5开发人员,查看具体错误打印.并未做到分步调试. 而部分类似格式错误,IOS上,由于本身的严谨性可能会反而不报 ...
- 德语键盘在标准ASCII键盘上使用的小窍门/ 德语键盘英语输入法输出波浪线~
德语键盘在标准ASCII键盘上使用的小窍门 @的输入:看到上图德语键盘里的Alt Gr键了吧,这个键叫做AltGraphic-Taste,是专门用来输入德语键盘里某些键的第三个字符的,在标准ASCII ...
最新文章
- 2018 react 大会_React Conf 2018的经验教训
- 最新的20多个JMS面试问答(2020)
- matlab的词云,Word Cloud (词云) - JavaScript
- Hbase问题汇总与解答
- mysql profile使用(转)
- 判断一个整数是否是回文数
- linux 7 %3e命令,Linux操作系统常用基础命令
- 还在为生产环境中用什么样的 Kubernetes 架构困惑吗,或许看完这篇你的问题就迎刃而解了!...
- 你可能不知道的CSS3属性: object-fit,object-position的妙用
- windows7 纯净版各个版本下载
- 修改pip默认安装位置
- 随机生成姓名,姓名生成器
- 利用openFrameWork、ofxFaceTrack制作的虚拟眼镜加载系统
- 计算机主机内有哪些硬件,电脑主机内部有哪些硬件
- 海量数据预处理实战----CSS网页样式
- VS2015:libcurl静态编译
- Adobe产品adobe ID登录卡死问题的解决
- 索尼在线商城的产品会不会更便宜?
- CSS实现a标签去掉下划线以及点击不再有颜色变化
- 有限体积法(10)——格式精度与待定系数法