货舱容量分配问题

2023-11-02

4、(选做)一架货机有三个货舱:前舱、中舱和后舱。三个货舱所能装载的

货物的最大重量和体积有限制(如表 3 所示)。现有四类货物用该货机进行装运,

货物的规格以及装运后获得的利润如表 4 所示。并且为了飞机的平衡,三个货

舱装载的货物重量必须与其最大的容许量成比例。问应如何装运,使货机飞行利

润最大?

假设:

每种货物可以无限细分;

每种货物可以分布在一个或者多个货舱内;

不同的货物可以放在同一个货舱内,并且可以保证不留空隙。

 

 

要求:

1)查阅资料,解释什么是组合优化问题?现实生活中哪些问题属于组合

优化问题?通常采用什么方法求解组合优化问题?

2)分析问题,建立合理的数学模型。要求给出数学建模的主要步骤,给

出所有变量的定义、目标函数和约束条件。

3)线性规划问题通常采用什么方法求解?给出主要思路。

提示

① 本题涉及组合优化问题、线性规划模型、线性规划方法等知识。

② 本题中,各变量可取值的范围为连续值,不同于前面三题中变量取值均

为离散整数量或者 01 量的情况,本题属于线性规划问题,模型为线性规划模

型。

线性规划问题参考书籍:实用线性规划方法及其支持系统. 清华大学出版社,

江道琪、何建坤、陈松华编著

③ 本题需要解决的问题是在安排飞机装载的货物时,找到三个货舱装载的

各种货物的重量,使飞机获得的利润最大。在装载货物时需要考虑每个货舱的重

量限制,同时还要考虑货舱的体积限制,以及保证飞机平衡的限制。即在若干线

性约束条件下,求得目标函数的最大值。

答:(1)组合优化问题:通过百度百科,组合(最)优化问题是最优化问题的一类。最优化问题似乎自然地分成两类:一类是连续变量的问题,另一类是离散变量的问题。具有离散变量的问题,我们称它为组合的。在连续变量的问题里,一般地是求一组实数,或者一个函数;在组合问题里,是从一个无限集或者可数无限集里寻找一个对象——典型地是一个整数,一个集合,一个排列,或者一个图。一般地,这两类问题有相当不同的特色,并且求解它们的方法也是很不同的。

在调度、资源分配、物流、城市规划、电路设计、制药等领域应用广泛。

现实中的组合优化问题:

旅行商问题,生产调度问题,0-1背包问题,装箱问题,图着色问题,聚类问题,最大团问题 ,我通过查找相关资料可知,图论中的最短路径问题就可以用组合优化来解决。

求解组合优化问题通常采用分支限界法(精确方法,但大规模实例上往往不可行)、贪心算法(近似算法,求解可被严格证明为与最优解差A倍)、启发式算法(需要特殊领域知识)、元启发算法(如蚁群算法、遗传算法、智能算法、进化算法等)、神经网络、RL方法等。

  1. 问题分析:

分配不同货物在前中后,三个仓怎么发配,而且要求满足题意条件,我通过一些简单的运算,发现存在的货物重量远远大于飞机所能出承受的重量,又因为我们前中后三个舱都得成比例,又追求利润的最大化。我们观察飞机舱中的体积和重量限制,发现前,后两舱的体积限制非常大,所以我们不妨将前,后三个舱全部装满。(以具体问题来优化)

下面我们开始模型的建立:

Xij表示货物i在前中后三个货舱运输的重量。

货物1

货物2

货物3

货物4

前舱

X11

X21

X31

X41

中舱

X12

X22

X32

X42

后舱

X13

X23

X33

X43

目标函数,设M为总利润

M = (X11 + X12 + X13)*3100+ (X21 + X22 + X23)*3800+ (X31 + X32 + X33)*3500+ (X41 + X42 + X43)*2850

约束函数

480*X11 + 650*X21 + 580*X31 + 390*X41 <= 6800

480*X12 + 650*X22 + 580*X32 + 390*X42 <= 8700

480*X13 + 650*X23 + 580*X33 + 390*X43 <= 5300

X11 + X12 + X13 <= 18

X21 + X22 + X23 <= 15

X31 + X32 + X33 <= 23

X41 + X42 + X43 <= 12

X11 + X21 + X31 + X41 =10

X12 + X22 + X32 + X42=16

X13 + X23 + X33 + X43=8

Xij >= 0,1 <= i, j <= 4

  1. 问题求解:

将题目中的约束条件转化为矩阵,然后利用Python或者matlab中求线性最优化的函数来求解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

货舱容量分配问题 的相关文章

随机推荐

  • openCV上图片显示中文c++

    准备材料 1 中文汉字库 2 中文显示扩展类 cvxFont h ifndef OPENCVUNICODE CVXFONT H define OPENCVUNICODE CVXFONT H include
  • FPN(Feature Pyramid Networks) 网络

    FPN 网络 1 前言 通常在神经网络中 浅层特征图 feature maps 的感受野比较小 包含语义信息比较少 但是其空间位置信息准确 而深层网络 感受野大 语义信息强 但是由于 pooling 等造成了像素位置信息丢失等 所以空间位置
  • Python - 字节byte数组与int之间的转换

    将byte数组转int 方式一 b b x00 x00 x03 xE8 或使用 0x0 0x0 0x3 0xE8 亦可 需将列表转为字节b bytes b i1 struct unpack gt i b 0 print i1 1000 方式
  • 【Qt学习】02:信号和槽机制

    信号和槽机制 OVERVIEW 信号和槽机制 一 系统自带信号与槽 二 自定义信号与槽 1 基本使用 student cpp teacher cpp widget cpp main cpp 2 信号与槽重载 student cpp teac
  • pprof 性能分析

    pprof 是一个强大的性能分析工具 可以捕捉到多维度的运行状态的数据 在程序运行过程中可以获取cpu heap block traces等执行信息 一般情况下使用下列三种pprof分析 runtime pprof 采集程序 非 Serve
  • 对于文件操作中写操作的误解

    由于对于文件从当中开始写操作一只有一个误解 就是用seek定位到文件内容的当中 然后写入缓冲区内的内容 之前一直以为文件的大小会发生增加 之前该位置之后的内容都会自动往后挪 然后看了 现代操作系统 中关于文件系统中的部分 才发现自己的理解是
  • 在Visual Studio上,使用OpenCV实现人脸识别

    1 环境与说明 本文介绍了如何在Visual Studio上 使用OpenCV来实现人脸识别的功能 环境说明 操作系统 windows 10 64位 Visual Studio版本 Visual Studio Community 2022
  • Helm使用

    Helm 基本概念 Helm 可以理解为 Kubernetes 的包管理工具 可以方便地发现 共享和使用为Kubernetes构建的应用 它包含几个基本概念 Chart 一个 Helm 包 其中包含了运行一个应用所需要的镜像 依赖和资源定义
  • java jhat_java查看工具jhat-windows

    stack false trueTurns off tracking object allocation call stack If allocation site information is not available in the h
  • 问题 E: 栈操作的正确性

    题目描述 对输入序列执行一组栈操作 判断操作是否正确 输入 每行是一个测试用例 表示一个操作序列 操作序列由P和Q两个符号组成 P表示入栈 Q表示出栈 操作序列长度不超过1000 输出 对每个操作序列 若操作序列正确 即操作结束时栈中刚好为
  • 发生交通事故交强险、残疾赔偿金怎么赔?法官列出明细

    2021年9月8日 甲驾驶A车与乙驾驶B车在某路口发生碰撞造成甲受伤及车辆受损的交通事故 经公安交警部门认定 乙负事故全部责任 甲无责 B车在C保险公司处投保交强险 甲治疗终结后 于2022年10月15日经鉴定构成九级伤残和十级伤残 因协商
  • 计算机机房一般在几楼,电梯机房一般在几楼 设备层属于公摊吗

    高楼层的电梯配置都会设有电梯设备层 电梯房设备层一般在几楼 这个要楼层的总高 一般在最顶层或者最底层 但是总楼层比较高 在二十层以上的 一般都有多个电梯房设备层 电梯房设备层设置要点 电梯房设备层主要管理整个楼层的电梯运行 还有一些其他安全
  • leetcode 1. 两数之和

    给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 target 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出现 你可以按任意顺
  • EventBus报错:its super classes have no public methods with the @Subscribe annotation

    看源码得知 其注解方法为空 则在当前类或者父类中 没有接收event发送的消息 所以在收到回调的方法中添加如下注解方法 Subscribe threadMode ThreadMode MAIN public void onCollectio
  • 递归模板

    Java public void recur int level int param terminator if level gt MAX LEVEL process result return process current logic
  • Java基础学习过程中出现的错误:

    1 java获得访问者ip 获得的值是ip 0 0 0 0 0 0 0 1 原因 本机地址获取为IPV6的IP 这现象只有在服务器和客户端都在同一台电脑内上才会出现 例如用localhost访问的容时候才会出现 其实作怪的是hosts文件
  • pandas中的Series对象

    Series和DataFrame是pandas中最常用的两个对象 1 可以用Numpy的数组处理函数直接对Series对象进行处理 2 支持使用位置存取元素 使用索引标签作为下标存取元素 每个Series对象实际上都是由两个数组组成 1 i
  • CPU指令集介绍

    1 什么是指令集 参考 http product pconline com cn itbk bjbzj notebook 1109 2522116 html 所谓指令集 就是CPU中用来计算和控制计算机系统的一套指令的集合 而每一种新型的C
  • Model/View开发小结

    老猿Python博文目录 专栏 使用PyQt开发图形界面Python应用 老猿Python博客地址 Model View开发是PyQt和Qt中重要的框架之一 老猿认为另外两个就是信号槽机制和事件机制 这三个是最能体现PyQt和Qt开发特色的
  • 货舱容量分配问题

    4 选做 一架货机有三个货舱 前舱 中舱和后舱 三个货舱所能装载的 货物的最大重量和体积有限制 如表 3 所示 现有四类货物用该货机进行装运 货物的规格以及装运后获得的利润如表 4 所示 并且为了飞机的平衡 三个货 舱装载的货物重量必须与其