MCM1988 问题B_lingo_装货问题
两辆平板车的装货问题有七种规格的包装箱要装到两辆铁路平板车上去包装箱的宽和高是一样的但厚度(t,以厘米计)及重量(
,以公斤计)是不同的.下表给出了每种包装箱的厚度重量以及数量每辆平板车有10.2 米长的地方可用来装包装箱像面包片那样载重为40吨由于当地货运的限制对C5
,C6
,C7
类的包装箱的总数有一个特别的限制这类箱子所占的空间厚度不能超过302.7厘米试反包装箱见下表装到平板车上去使得浪费的空间最小.







t (厘米) 48.7 52.0 61.3 72.0 48.7 52.0 64.0
W(公斤) 2000 3000 1000 500 4000 2000 1000
件数 8 7 9 6 6 4 8

解:
假设
表示在第j辆车上所装的i类货物的个数(i=1,2,…,7;j=1,2);
表示第i类货物的厚度(i=1,2,…,7);
表示第i类货物的质量(i=1,2,…,7);
表示第i类货物的数量(i=1,2,…,7);
则建立模型如下:

Lingo运行代码及结果:
model:
sets:
row/1..7/:t,w,n;
col/1..2/:cl;
matrix(row,col):x;
endsets
data:
t=48.7,52,61.3,72,48.7,52,64;
w=2000,3000,1000,500,4000,2000,1000;
n=8,7,9,6,6,4,8;
cl=1020,1020;
enddata
max=@sum(row(i):t(i)*(x(i,1)+x(i,2)));
@for(row(i):@sum(col(j):x(i,j))<=n(i));
@for(col(j):@sum(row(i):t(i)*x(i,j))<=cl(j));
@for(col(j):@sum(row(i):w(i)*x(i,j))<=40000);
@sum(row(i)|i#GE#5:t(i)*(x(i,1)+x(i,2)))<=302.7;
@for(row(i):@for(col(j):@gin(x(i,j))));
End
运行结果:
Global optimal solution found.
Objective value: 2039.400
Objective bound: 2039.400
Infeasibilities: 0.000000
Extended solver steps: 44712
Total solver iterations: 114375
Variable Value Reduced Cost
T( 1) 48.70000 0.000000
T( 2) 52.00000 0.000000
T( 3) 61.30000 0.000000
T( 4) 72.00000 0.000000
T( 5) 48.70000 0.000000
T( 6) 52.00000 0.000000
T( 7) 64.00000 0.000000
W( 1) 2000.000 0.000000
W( 2) 3000.000 0.000000
W( 3) 1000.000 0.000000
W( 4) 500.0000 0.000000
W( 5) 4000.000 0.000000
W( 6) 2000.000 0.000000
W( 7) 1000.000 0.000000
N( 1) 8.000000 0.000000
N( 2) 7.000000 0.000000
N( 3) 9.000000 0.000000
N( 4) 6.000000 0.000000
N( 5) 6.000000 0.000000
N( 6) 4.000000 0.000000
N( 7) 8.000000 0.000000
CL( 1) 1020.000 0.000000
CL( 2) 1020.000 0.000000
X( 1, 1) 5.000000 -48.70000
X( 1, 2) 3.000000 -48.70000
X( 2, 1) 0.000000 -52.00000
X( 2, 2) 7.000000 -52.00000
X( 3, 1) 9.000000 -61.30000
X( 3, 2) 0.000000 -61.30000
X( 4, 1) 1.000000 -72.00000
X( 4, 2) 5.000000 -72.00000
X( 5, 1) 1.000000 -48.70000
X( 5, 2) 2.000000 -48.70000
X( 6, 1) 2.000000 -52.00000
X( 6, 2) 1.000000 -52.00000
X( 7, 1) 0.000000 -64.00000
X( 7, 2) 0.000000 -64.00000
Row Slack or Surplus Dual Price
1 2039.400 1.000000
2 0.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 0.000000
6 3.000000 0.000000
7 1.000000 0.000000
8 8.000000 0.000000
9 0.1000000 0.000000
10 0.5000000 0.000000
11 12500.00 0.000000
12 500.0000 0.000000
13 0.6000000 0.000000
MCM1988 问题B_lingo_装货问题的更多相关文章
- LinGo:装货问题——线性规划,整数规划,1988年美国数模B题
7种规格的包装箱要装有两辆铁路平板车上去,包装箱的宽和高相同,但厚度(t,以cm计)和重量(以kg计)不同, 表A-1给出了每包装箱的厚度.重量和数量,每辆车有10.2m长的地方用来装包装箱(像面包片 ...
- 【转】为什么我们都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- 从零开始学 Java - 数据库连接池的选择 Druid
我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...
- 99%的人都理解错了HTTP中GET与POST的区别(转载
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- (转)完全用GNU/Linux工作 by 王珢
完全用GNU/Linux工作 王珢 (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...
- 99%的人都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- 货运APP产品魔力=卓越功能×情感诉求
货运APP产品魔力=卓越功能×情感诉求 [导语]在滴滴打车.快的打车软件风靡全国之际,很多企业也在探索如何将其应用到公路货运领域用以整合社会运力资源.但一方面大多数人聚焦的是干线运输中的长途货车运 ...
- Dynamics AX 2012 R2 业务系列-销售业务流程
在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 1.销售的主要职责 其实这里说的职责主要是针对销售文员,并非整天外面满世界跑业 ...
- fenxi
线路:通过定义而来(固定线路可以定义,随机和临时线路怎么来) 订单:线路上点对点的关系 装车单:同意线路上的车辆可以有多个订单组成的装车单 车辆任务:给调度接口输入车辆和订单集合,根据订单产生多个车的 ...
随机推荐
- linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数(转载)
一,进程终止有5种方式: 正常退出: 从main函数返回 调用exit 调用_exit 异常退出: 调用abort 由信号终止 二,exit和_exit区别: 关于_exit(): #include ...
- JVM基础和调优(五)
垃圾回收算法中收集器 接着上面的说,了解了JVM收集垃圾的过程,然后我们看一看收集器. 串行收集器:用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高.但是,也无法使用多处理器的优势,所 ...
- 【剑指offer】面试题39扩展:平衡二叉树
题目: 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 思路: 直观的思路是,判断根结点的左子树.右子树高度差是否小于1. 为避免多次访问同一结点,应该用后序遍历的方式访问. 注意:加号优先级高于条件 ...
- FreeBsdb FAMP Lamp环境
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA1IAAAHlCAIAAABwFFq0AAAgAElEQVR4nO3d23WruhYA0JTmciiGTm
- Linux中open函数以及退出进程的函数
open函数的flag详解1 读写权限:O_RDONLY O_WRONLY O_RDWR (1)linux中文件有读写权限,我们在open打开文件时也可以附带一定的权限说明 (譬如O_RDONLY就表 ...
- NFinal学习笔记(一)
NFinal框架,最快的netWeb框架,其有三大特色,NFinalServer,NFinalBuild,NFinal代码生成器(生成web层) 首先学习了NFinalServer. NFinalSe ...
- js过滤
datagrid: loadFilter: function (data) { return loadFilter(data); ...
- OOM总结
本文主要信息是来自互联网,我只是自己做了一点总结和摘要. OOM发生的原因 简单的说通过不同的内存分配方式对不同的对象进行操作,会因为android系统版本的差异而产生不同的行为.主要是2.0和4.0 ...
- .net简单的aspx创建
在所在项目右键 --添加--新建项--web窗体 产生3个文件: hello.aspx :页面样式 hello.aspx.cs:后台方法(逻辑处理) hello.aspx.designer.cs(版 ...
- JS如何得到Repeater中TextBox控件的值
var subsidylCost = document.getElementById("txtSubsidylCost.ClientID").value; 这样获取不到,因为txt ...