【数学建模】天然肠衣搭配问题衍生问题/线性规划限制条件建立问题

news2024/11/29 8:45:05

线性规划限制条件建立问题

  • 前景回顾/提出问题
    • 回顾1
    • 回顾2/问题提出
    • 解决前提
  • 解决方法
    • 坐标轴(区间)法
      • 总结

前景回顾/提出问题

回顾1

首先回顾一下DVD在线租赁问题
在 question2中,需要保证每个人都不会收到自己不喜欢的DVD,即客户在线订单数为0时候,不可以租给他。我直接给出答案了:
x i j ≤ o r d e r i j , i = 1 , 2 , 3 , . . n , j = 1 , 2 , 3 , . . m x_{ij} \le order_{ij} ,i=1,2,3,..n , j= 1,2,3,..m xijorderij,i=1,2,3,..n,j=1,2,3,..m

实际思路其实是
如果 o r d e r i j = 0 order_{ij} = 0 orderij=0,那么 x i j = 0 x_{ij} = 0 xij=0, 也就是说客户不喜欢我决定不租
反之 o r d e r i j > 0 order_{ij} \gt 0 orderij>0,那么 x i j = 0 / 1 x_{ij} = 0/1 xij=0/1,也就是说客户喜欢我自己决定租还是不租。

列表找规律还是尝试不同的不等式都可以在比较短的时间内想出正确答案。

回顾2/问题提出

接下来回顾一下天然肠衣搭配问题
其中手动进行局部最优解的时候,还有一个附带问题:
已知原料能捆137个成品三,那么用到最少种配方数是多少?
例如我用到了73种配方我就可以完成137个成品三,那么同样是做137个成品三,就比用到100种配方少。

当时求最多能捆多少个成品三的模型为:
设使用方案 i i i的次数为 y i y_i yi,原料按长度由小到大的总个数依次为 d 1 d 2 , . . . , d n d_1 d_2 ,...,d_n d1d2,...,dn
方案总数为 a a a;方案 i i i使用第 j j j种原料数量为 z i j z_{ij} zij
对于每一个原料我们都得
d i ≥ ∑ 1 ≤ j ≤ a y j ∗ z j i , 1 ≤ i ≤ n d_i \ge \sum_{1 \le j \le a} y_j*z_{ji} , 1\le i \le n di1jayjzji,1in
max ⁡ ∑ 1 ≤ i ≤ a y i \max \sum_{1\le i \le a}y_i max1iayi

现在 max ⁡ ∑ i = 1 a y i \max \displaystyle\sum_{i=1}^{a}y_i maxi=1ayi变成了 ∑ i = 1 a y i = 137 \displaystyle\sum_{i=1}^{a}y_i = 137 i=1ayi=137
求解问题也变成了求 max ⁡ ∑ i = 1 a y i > 0 \max \displaystyle\sum_{i=1}^{a}y_i\gt 0 maxi=1ayi>0
如果借鉴DVD在线租赁问题的思路就是, f i f_i fi为0/1变量
如果 y i > 0 y_i \gt 0 yi>0,那么 f i = 1 f_i = 1 fi=1 ,用了这种配方就
反之 y i = 0 y_i = 0 yi=0,那么 f i = 0 / 1 f_i = 0/1 fi=0/1 , 没用这种配方
min ⁡ ∑ i = 1 a f i \min \displaystyle\sum_{i=1}^{a} f_i mini=1afi
因为是求最小值( f i f_i fi自动取最小的那一个),所以实际上如果 y i = 0 y_i = 0 yi=0,那么 f i = 0 f_i = 0 fi=0是绝对成立的

但这一次就没那么简单了,不是简单的 y i ≤ f i y_i\le f_i yifi 或者 y i ≥ f i y_i\ge f_i yifi,所以不能轻易的得出答案
所以问题就是这个限制条件怎么写?

解决前提

1.不能破坏线性规划模型,即不能出现变量和变量相乘的情况
2.
如果 y i > 0 y_i \gt 0 yi>0,那么 f i = 1 f_i = 1 fi=1 ,用了这种配方就
反之 y i = 0 y_i = 0 yi=0,那么 f i = 0 / 1 f_i = 0/1 fi=0/1 , 没用这种配方
解决上面描述很容易想到用 i f if if语句,这里也不可以,也就是下面这种模型
f i = { 1 , y i > 0 1 , y i = 0 f_i = \begin{cases}1,y_i \gt 0\\1,y_i = 0\end{cases} fi={1,yi>01,yi=0

解决方法

坐标轴(区间)法

线性规划中 a ≤ b a\le b ab a ≥ b a\ge b ab是最常用的,也是能很好的约束
基本概念
≤ a \le a a ≥ a \ge a a分别是蓝色线和红色线表示的区间
在这里插入图片描述

解决天然肠衣搭配问题
那么变形一下上面的判断描述
如果 y i > 0 y_i \gt 0 yi>0,那么 f i = 1 f_i = 1 fi=1 ,用了这种配方就
反之 y i ≤ 0 y_i \le 0 yi0,那么 f i = 0 / 1 f_i = 0/1 fi=0/1 , 没用这种配方
如果定义 ≥ y \ge y y, y y y y 1 > 0 y_1\gt 0 y1>0 y 2 = 0 y_2 = 0 y2=0
就会出现以下两个区间,红色: ≥ y 2 \ge y_2 y2 , 蓝色: ≥ y 1 \ge y_1 y1
在这里插入图片描述

通过画图分析发现蓝色区间不包含0,也就是说只要我 y i > 0 y_i \gt 0 yi>0 时候,要求 f i > y i f_i \gt y_i fi>yi就能限制住 f i > 0 f_i \gt 0 fi>0,即 f i f_i fi不可能有0的取值了
而红色区间,带入同样的限制 f i > y i f_i \gt y_i fi>yi,得到 f i ≥ 0 f_i \ge 0 fi0,即 f i = 0 / 1 f_i = 0/1 fi=0/1和我们描述相符
现在问题就来了,虽然 y i > 0 y_i \gt 0 yi>0 时候 f i f_i fi不可能有0的取值了但也不能取1!
也就是说我 f i f_i fi还必须落在蓝色区域里,如果 y i ≤ + ∞ y_i\le +\infin yi+那就完蛋了,满足的式子只有 f i y i > y i f_iy_i \gt y_i fiyi>yi或者 y i ≤ + ∞ f i y_i \le +\infin f_i yi+fi,分别不满足解决前提2和不现实
但已知还有一个条件 ∑ i = 1 a y i = 137 \displaystyle\sum_{i=1}^{a}y_i = 137 i=1ayi=137,可以得出 y i ≤ 137 y_i \le 137 yi137
那么 137 f i > y i 137f_i \gt y_i 137fi>yi 这个限制条件就可以让, f i f_i fi取1。
综上所述, 137 f i 137f_i 137fi f i = 1 f_i=1 fi=1落在蓝色和红色区间,但当 f i = 0 f_i=0 fi=0只落在红色区间,也就完成了线性的限制约束条件。

这时候同样的方法重做DVD在线租赁问题
已知:
如果 o r d e r i j = 0 order_{ij} = 0 orderij=0,那么 x i j = 0 x_{ij} = 0 xij=0, 也就是说客户不喜欢我决定不租
反之 o r d e r i j > 0 order_{ij} \gt 0 orderij>0,那么 x i j = 0 / 1 x_{ij} = 0/1 xij=0/1,也就是说客户喜欢我自己决定租还是不租。
改变加简化为
如果 o r i ≤ 0 or_i \le 0 ori0,那么 x i = 0 x_i = 0 xi=0, 也就是说客户不喜欢我决定不租
反之 o r i > 0 or_i \gt 0 ori>0,那么 x i = 0 / 1 x_i = 0/1 xi=0/1,也就是说客户喜欢我自己决定租还是不租。

因为限制 o r i ≤ 0 or_i \le 0 ori0时候 x i x_i xi不能取1,所以在数轴上画出0坐标,考虑如果区间是往右延申是不会包括1的,所以定义 ≤ o r i \le or_i ori
在这里插入图片描述

注意:定义和最终限制往往是同号!

通过图分析可得 x i ≤ o r i x_i \le or_i xiori是满足条件的约束,并且也不存在说如果 o r i ≤ + ∞ or_i\le +\infin ori+那就完蛋了因为 x i ≤ o r i ≤ + ∞ x_i \le or_i \le +\infin xiori+

而上面的是需要 y i ≤ f i y_i \le f_i yifi ,只能 y i ≤ + ∞ f i ≤ + ∞ y_i \le +\infin f_i \le +\infin yi+fi+,明显是无法求解的

总结

线性规划的条件可以利用区间来表示范围,数轴则是更加清晰
0/1变量两个取值实际上就是数轴上的两个点
例如 a f i + b af_i+b afi+b,当 f i f_i fi取0/1实际上就是b和a+b两个点
≤ \le ≥ \ge 表示是区间
一般分析过后适当做线性变化即可得到想要的线性限制条件

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

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

相关文章

力扣每日一题-统计已测试设备-2024.5.10

力扣题目:统计已测试设备 题目链接: 2960.统计已测试设备 题目描述 代码思路 根据题目内容,第一感是根据题目模拟整个过程,在每一步中修改所有设备的电量百分比。但稍加思索,发现可以利用已测试设备的数量作为需要减少的设备电…

硬性清空缓存的方法

前端发布代码后,我们是需要刷新页面再验证的。有时候仅仅f5 或者ctrlshiftdelete快捷键仍然有历史缓存,这时可以通过下面的方法硬性清空缓存。 以谷歌浏览器为例,打开f12,右键点击刷新按钮,选择【清空缓存并硬性加载】…

STL算法移动范围:简单、高效的集合移动方法

STL算法移动范围 一、简介二、批量移动集合中的多个元素2.1、std::copy2.2、std::move2.3、std::swap_ranges 三、在一个范围内变换子范围3.1、std::copy_backward 向前复制3.2、元素倒退3.3、交换子范围 四、这一切太复杂了五、总结 一、简介 已经介绍过使用STL算法在范围&am…

微信小程序miniprogram_npm目录主包太大如何处理

在使用TDesign开发小程序,miniprogram_npm目录下很多组件,感觉很多组件我都没引用,为什么都在主包来,导致主包很大。如何优化? 在使用npm构建后生成的miniprogram_npm目录里,有所有TDesign组件。但是有很…

视频剪辑批量转码技巧:如何将MP4视频快速转换为MP3音频的方法

在视频剪辑和音频处理的领域中,经常需要将视频文件转换为音频文件,特别是将MP4视频转换为MP3音频。这样的转换不仅可以减少文件大小,方便传输和存储,还可以在不损失音频质量的情况下,方便在各种设备上播放。下面&#…

【AI基础】第一步:安装python开发环境-conda篇

上一篇讲解了朴素的开发环境安装 - 【AI基础】第一步:安装python开发环境-windows篇-CSDN博客,这里讲解通过conda来配置python环境,同时安装python开发工具pycharm,最终输出python版本的helloworld。 一、安装miniconda 1.1 下载…

计算机系列之结构化开发方法

23、结构化开发方法 1、系统分析与设计概述 ◆系统分析过程一般按如图所示的逻辑进行: (1)认识、理解当前的现实环境,获得当前系统的“物理模型“ (2)从当前系统的“物理模型“抽象出当前系统的“逻辑模型“ (3)对当前系统的“逻辑模型”进行分析和…

Pycharm2024版,更换安装源

1、选择Python Packages 2、点击图中的小齿轮 3、点击 号 4、添加源地址 常用源如下: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn…

测试docker GPU性能损失

NVIDIA 3090 利用HSOpticalFlow代码测试docker GPU性能损失 docker介绍图如下: 形象生动展示了他们之间的关系 今天要测试docker容器运行HSOpticalFlow算法的性能损失,包括CPU和GPU 上一篇博客 http://t.csdnimg.cn/YW5kE 我已经介绍了使用docker和nvid…

Visual Studio编译QT工程

1、安装QT 2、安装VS 3、选择扩展和更新 4、搜索Qt Visual Studio Tools,安装或卸载 5、安装成功后工具栏显示Qt VS Tools 6、配置Qt VS Tools:打开Qt VS Tools的下拉菜单,选择Qt Versions 7、选择qt qmake.exe 的路径

html--第一个网页

<!doctype html> <html> <head> <meta charset"utf-8"> <title>CSS霓虹灯动画</title><style> import url("https://fonts.googleapis.com/css?familyPoppins:900&displayswap"); body {background-color:…

Docker Desktop 修改容器的自启动设置

Docker Desktop 允许用户控制容器的自启动行为。如果你不希望某个容器在 Docker 启动时自动启动&#xff0c;你可以通过以下步骤来更改设置&#xff1a; 1. 打开 Docker Desktop 应用。 2. 点击右上角的设置&#xff08;Settings&#xff09;按钮&#xff0c;或者使用快捷键 Cm…

民航电子数据库:在console或服务器登录数据库

目录 前言登录切换数据库 前言 在不使用数据库管理工具的情况下&#xff0c;可以在console或服务器上操作数据库&#xff0c;这时就需要使用相关命令登录到数据库 登录 caeconsole nssl IP地址 端口 数据库名称 用户名 密码 切换数据库 use 数据库名称

【网络安全】一次sql注入问题的处理

目录 问题 10.60.100.194&#xff0c;修改之前 修改方案 问题解决 测试过程 问题思考与总结 问题 一次sql注入问题的筛查报告&#xff0c;主要是sql注入的问题资源-CSDN文库 doc-new\20-设计文档\34-Mesh设备管理\100-网络安全 10.60.100.194&#xff0c;修改之前 修改…

Redis-新数据类型-Geospatia

新数据类型-Geospatia 简介 GEO&#xff0c;Geographic,地理信息的缩写。 该类型就是元素的二维坐标&#xff0c;在地图上就是经纬度。Redis基于该类型&#xff0c;提供了经纬度设置、查询、范围 查询、距离查询、经纬度Hash等常见操作。 常用命令 geoadd key longitude lat…

全彩屏负氧离子监测站

TH-FZ5随着科技的飞速发展和人们对生活品质追求的日益提高&#xff0c;空气质量已经成为人们日常生活中不可忽视的重要话题。为了更直观地了解身边的空气质量&#xff0c;一款全新的全彩屏负氧离子监测站应运而生&#xff0c;它不仅能够实时监测负氧离子含量&#xff0c;还能同…

达到新高度:SpaceX 的北极星黎明任务为商业太空行走铺平道路

概述 在私人太空探索时代&#xff0c;SpaceX 凭借其最新任务“北极星黎明”正在突破载人航天的界限。该任务计划于今年夏天发射&#xff0c;标志着该公司雄心勃勃的计划中的一个重要里程碑&#xff0c;该计划旨在使人类成为多行星物种。在本文中&#xff0c;我们将深入探讨北极…

vue+element的表格(el-table)排班情况表(2024-05-09)

vueelement的表格&#xff08;el-table&#xff09;排班情况&#xff0c;增删查改等简单功能 代码&#xff1a; <template><!-- 表格 --><div class"sedules"><el-header><el-date-pickerv-model"monthValue2"type"month…

【复试分数线】C9历年分数线汇总(第二弹)

今天我将分析C9中主要考信号的5所院校&#xff1a;复旦大学、上海交通大学、南京大学、哈尔滨工业大学、西安交通大学。 这次会为大家整理四电四邮的整理了近三年各院校的复试分数线作为参考&#xff0c;大家可以参考&#xff01; 大多数院校采取的是1.2:1差额的形式复试。举…