【Lingo软件求解案例一:MCM1988:B题两辆平板车的装货问题】

news2024/10/6 10:39:08

题目描述

有 七种规格的包装箱 要装到 两辆平板车 上
包装箱的宽和高是一样的
但是厚度(t 厘米)和重量(w 公斤)是不一样的
表格中给出每种包装箱的厚度、重量和数量
每辆平板车有10.2米长的地方可以用来装包装箱 像面包片一样
载重为40吨
注意:对于C5、C6、C7这三类的包装箱的总数有限制
这类的箱子所占的空间厚度不可以超过302.7厘米
要求:设计一种装车方案,使得浪费空间最少。(最大程度的利用空间)

在这里插入图片描述
符号说明

Xij 表示第i种规格的包装箱在第j辆平板车上的数量
然后就是:
ti 表示第i种包装箱的厚度
wi 表示第i种包装箱的重量
ni 表示第i种包装箱的数量

模型建立

目标函数:

浪费空间最少也就是最大程度使用空间

max z = 数量乘以厚度 = (求和i从1到7)ti(xi1+xi2)= (求和j从1到2)(求和i从1到7)ti*xij

约束条件:

1、件数:每种货物在装载的两辆平板车上的数量不可以超过自身的总数量

xi1 + xi2 <=ni (i从1到7)

2、厚度:每辆平板车有10.2米长的地方可以用来装包装箱,所以说总的厚度不可以超过10.2米

将米转换为厘米
10.2m = 1020cm
(求和i从1到7)ti*xij<=1020(j从1到2)

3、重量:载重为40吨

40吨 = 40000kg
(求和i从1到7)wi*xij<=40000(j从1到2)

4、注意:C5、C6、C7这三类的包装箱的总数所占的空间厚度不可以超过302.7厘米

(求和i从5到7)ti(xi1+xi2)<=302.7

5、取整:所有的货物的个数为整数

xij>=0 xij取整(i从1到7 j从1到2)

在这里插入图片描述
使用Lingo求解

1、将求和公式展开直接将所有项写出来
model:
max = 48.7*x11+52.0*x21+61.3*x31+72.0*x41+48.7*x51+52.0*x61+64.0*x71
+48.7*x12+52.0*x22+61.3*x32+72.0*x42+48.7*x52+52.0*x62+64.0*x72;

x11+x12<=8;
x21+x22<=7;
x31+x32<=9;
x41+x42<=6;
x51+x52<=6;
x61+x62<=4;
x71+x72<=8;

48.7*x11+52.0*x21+61.3*x31+72.0*x41+48.7*x51+52.0*x61+64.0*x71<=1020;
48.7*x12+52.0*x22+61.3*x32+72.0*x42+48.7*x52+52.0*x62+64.0*x72<=1020;

2000*x11+3000*x21+1000*x31+500*x41+4000*x51+2000*x61+1000*x71<=40000;
2000*x12+3000*x22+1000*x32+500*x42+4000*x52+2000*x62+1000*x72<=40000;

48.7*x51+52.0*x61+64.0*x71+48.7*x52+52.0*x62+64.0*x72<=302.7;

@gin(x11);@gin(x21);@gin(x31);@gin(x41);@gin(x51);@gin(x61);@gin(x71);
@gin(x12);@gin(x22);@gin(x32);@gin(x42);@gin(x52);@gin(x62);@gin(x72);

end

2、使用sum和for求解
model:
sets:
row/1..7/:t,w,n;
col/1..2/:;
matrix(row,col):x;
endsets
max=@sum(row(i):t(i)*(x(i,1)+x(i,2)));

@for(row(i):(x(i,1)+x(i,2))<=n(i));

@for(col(j):@sum(row(i):t(i)*x(i,j))<=1020);

@for(col(j):@sum(row(i):w(i)*x(i,j))<=40000);

@sum(col(j):@sum(row(i)|i#GE#5:t(i)*x(i,j)))<=302.7;
!或者写为@sum(row(i)|i#GE#5:t(i)*(x(i,1)+x(i,2))<=302.7;

@for(col(j):@for(row(i):@gin(x(i,j))));

data:
t = 48.7 52.0 61.3 72.0 48.7 52.0 64.0;

w = 2000 3000 1000 500 4000 2000 1000;

n = 8 7 9 6 6 4 8;
enddata

end

最优值为:2039.4cm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/783151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PostgreSQL内核学习(七)—— 查询规划(生成路径)】

查询规划——预处理 生成路径 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们尊重他人的知识产权和学术成果&#xff0c;力求遵循合理使用原则&#xff0c;并在适用的情况下注明引用来源。 本文主要参考了《PostgresSQL数据库内核分析》一书 生…

进阶C语言——动态内存管理

好久不见&#xff0c;今天我们学习一下C语言的动态内存管理&#xff0c;这是一个和指针一样重要的章节&#xff0c;所以大家一定要好好学这章。 1. 为什么存在动态内存分配 我们已经掌握的内存开辟方式有&#xff1a; int val 20;//在栈空间上开辟四个字节 char arr[10] {0};…

Obsidian同步到Notion

插件介绍 将Obsidian的内容同步到Notion需要使用一个第三方插件"Obsidian shared to Notion"EasyChris/obsidian-to-notion: Share obsidian markdown file to notion and generate notion share link 同步obsdian文件到notion&#xff0c;并生成notion分享链接&am…

数据仓库表设计理论

数据仓库表设计理论 数仓顾名思义是数据仓库&#xff0c;其数据来源大多来自于业务数据(例如:关系型数据库)&#xff0c;当设计数仓中表类型时(拉链表、增量表、全量表、流水表、切片表)时&#xff0c;应先观察业务数据的特点再设计数仓表结构 首先业务数据是会不断增长的-即…

flask介绍、快速使用、配置文件、路由系统

前言: Flask框架和Django框架的区别&#xff1a; Django框架&#xff1a; 大而全&#xff0c;内置的app的很多&#xff0c;第三方app也很多Flask框架&#xff1a; 小而精&#xff0c;没有过多的内置app&#xff0c;只能完成web框架的基本功能&#xff0c;很多功能都需要借助第三…

护城河理论

护城河理论 护城河理论|来自股神巴菲特&#xff0c;是指投资的企业在某一方面的核心竞争力。 模型介绍 在2000年的伯克希尔哈撒韦的年会上&#xff0c;巴菲特说&#xff1a;让我们来把护城河作为一个伟大企业的首要标准&#xff0c;保持它的宽度&#xff0c;保持它不被跨越。我…

【字符流】案例:集合到文件

案例&#xff1a;集合到文件 1.需求&#xff1a; 把ArrayList集合中的字符串数据写入到文本文件。要求&#xff1a;每一个字符串元素作为文件中的一行数据 2.思路 创建ArrayList集合往集合中存储字符串元素创建字符缓冲输出流对象遍历集合&#xff0c;得到每一个字符串数据调…

『Dubbo SPI源码分析』依赖注入机制分析

Dubbo Wrapper 依赖注入机制分析 基于 2.7.0 版本上一章&#xff1a;『Dubbo SPI源码分析』Wrapper 机制分析 创建测试 demo 首先创建一个接口&#xff0c;举例为 Car package com.luban.dubbo_spi.api;SPI public interface Car {public void getColor();public void getC…

数据结构(王道)——数据结构之 由遍历序列构造二叉树

结论&#xff1a;给出遍历序列当中的一种&#xff0c;不能唯一确定一颗二叉树。

[回馈]ASP.NET Core MVC开发实战之商城系统(一)

经过一段时间的准备&#xff0c;新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始&#xff0c;今天着重讲解布局设计&#xff0c;环境搭建&#xff0c;系统配置&#xff0c;及首页商品类型&#xff0c;banner条&#xff0c;友情链接等功能的开发。 首页布局设计 首页是…

Android使用Shape画格子图和圆形

觉得画来玩玩&#xff0c;比较有趣&#xff0c;记录一下。 1格子。 <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"><item ><shape><solid andro…

性能测试-Jmeter之Linux下压力测试

我们在做测试的时候&#xff0c;有时候要运行很久&#xff0c;公司用的测试服务器一般都是linux&#xff0c;就可以运行在linux下面&#xff0c;linux下面不能像windows一样有图形化界面&#xff0c;那怎么运行脚本呢&#xff0c;就先在windows上把脚本做好&#xff0c;然后在l…

解决ORACLE PLSQL查询速度慢问题

在表内已建有索引情况下&#xff0c;查询速度有时快&#xff0c;有时慢的问题。 数据库&#xff1a;Oracle&#xff0c; 工具&#xff1a;PlsqlDev 不走索引的原因通常有以下几种&#xff1a; 1.索引失效或丢失&#xff1a;当数据库中的索引被减少、删除或者失效时&#xff0…

浅析JAVA虚拟机结构与机制

本文旨在给所有希望了解 可以看出&#xff0c;JVM主要由类加载器子系统、运行时数据区&#xff08;内存空间&#xff09;、执行引擎以及与本地方法接口等组成。其中运行时数据区又由方法区、堆、Java栈、PC寄存器、本地方法栈组成。 从上图中还可以看出&#xff0c;在内存空间…

Flask 创建文件目录,删除文件目录

项目结构 app.py from flask import Flask, render_template, request, redirect, url_for import osapp Flask(__name__) BASE_DIR os.path.abspath(os.path.dirname(__file__)) FILE_DIR os.path.join(BASE_DIR, testfile)app.route(/, methods[GET, POST]) def index():…

心海舟楫、三一重工面试(部分)

心海舟楫 一道算法题&#xff1a; 我开始给出的是暴力解法&#xff0c;时间复杂度O(n^2)。 在面试官的提示下&#xff0c;实现了时间复杂度为O(n)的解法。 三一重工 没啥特别的

【VTK】VTK 让小球动起来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 文章目录 版本环境A.uiA.hA.cppRef. 本文主要目的是在 Qt 界面中&#xff0c;显示出来使用 VTK 构建的小球&#xff0c;并让小球能够动起来。同时为了方便对比…

第2章 SparkSQL 核心编程

第2章 SparkSQL 核心编程 2.1 新的起点2.2 DataFrame2.2.1 创建 DataFrame2.2.2 SQL 语法2.2.3 DSL 语法2.2.4 RDD 转换为 DataFrame2.2.5 DataFrame 转换为 RDD 2.3 DataSet2.3.1 创建 DataSet2.3.2 RDD 转换为 DataSet2.3.3 DataSet 转换为 RDD 2.4 DataFrame 和 DataSet 转…

学习记录681@Gitlab升级实战

前言 我的Linux目前是centos8&#xff0c;目前使用的gitlab是从https://mirrors.tuna.tsinghua.edu.cn/ 下载下来的gitlab-ce-12.10.1-ce.0.el8.x86_64.rpm&#xff0c;然后安装的。 这里需要注意如果是centos8需要下载el8的gitlab&#xff0c;如果是centos7需要下载el7的git…

golang - 下载大文件,实时返回前端下载进度,实现下载进度条

示例&#xff1a; package mainimport ("fmt""io""net/http""os""path"//"github.com/kataras/iris""github.com/kataras/iris/v12""time" )func doSomething() {time.Sleep(time.Second * …