php和html混合写 先执行哪个_2020五一建模:C题 饲料混合加工问题

2023-12-16 13:59

本文主要是介绍php和html混合写 先执行哪个_2020五一建模:C题 饲料混合加工问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1142b51277c17163b790337a448b1f8f.png

题干很长,要善于抽象出约束条件,毕竟C是优化问题,先建立目标模型,而后用Lindo/Lingo解答

退而求其次,暴力求解,蚁群算法、退火算法做也是可以做的。

第一步:分析

题中写道“加工动物饲料的原料有16种,其中不同原料有不一样的效能率,总量也不一样,不同原料之间还有相似度的要求。可供加工的装置有9台,分3种规格,成本计算也不同。”

“品种代码10的原料不能单独成为一个加工包,必须与其他原料混合。”这一点容易遗忘。

分析数据可以获得“需要加工的原料有16种,共6000kg,所有9台加工装置的加工能力在5400~8100kg之间。”“16种原料中有六种饲料的能耗率<0.8,分别是2、6、7、11、12、14,这六种的总重量是2300kg。”

问题一,研究16种原料两两之间的亲缘度,并进行统计性分析。即依据亲缘值N的计算方法得出一个16*16方阵,并做简要统计学分析。这一问题只是做个小热身,给大家加个油。建议先编写个可以求任意多个原料混合后亲缘度的函数,之后调用就可以。

问题二,将16种原料进行混合“全部”放入9个加工装置中,求出饲料质量最高的混合方案并给出每个加工包的亲缘度。即要求一次性全部加工完毕,且要求饲料质量最高。此问题的目标函数是饲料质量,饲料质量完全可以由“亲缘度”替代,所以优化目标就是“亲缘度”,约束条件仅限于原料混合方式、加工装置的重量范围以及全部加工不考虑加工成本和能耗率!!

相比需要考虑的约束条件而言,不需考虑的因素更为重要,因为这些不需要考虑的因素是我们可以放弃的,换来优化目标最大化。

问题三,也要求“全部”加工,题中的“能耗率”即为“效能率”,应为出题不严谨,不需在这个点过多纠结。求出平均能耗率超过80%的加工包数量最多的混合方案并给出每个加工包的能耗率。即要求一次性全部加工完毕,且要求能耗率最高。有没有发现和问题二很相像,只是优化目标变为“能耗率>0.8的加工包数”,约束条件与问题二相同,不考虑加工成本和饲料质量!!

解题要点:对16种原料的能耗率稍作分析,发现2、6、7、11、12、14,这六种饲料的能耗率<0.8,所以一定要与其它种类原料进行混合,这一点可以作为挖掘出的约束条件。

问题四,问题是层层递进的,部分加工装置可以不生产,用尽量低的加工成本完成整个加工任务,同时要求平均能耗率超过80%的加工包尽量的多。即取消的一次性加工的限制,可以多次加工,优化目标变为“加工成本最低”“能耗率>0.8的加工包数”,约束条件变为原料混合方式、加工装置的重量范围以及加工成本的构成,不考虑饲料质量!!

建议编写一个加工成本的计算函数,参数包括加工装置类型、加工重量。

解题要点:对加工成本稍作分析就可发现,使用的加工装置容量越大,加工重量越重,加工成本就越低。所以考虑极端情况,不需考虑饲料质量——“亲缘度”,尽量使所有加工包能耗率>0.8,且尽量用第三类加工装置进行加工。

问题五,问题更进一步,在问题四的基础上增加了问题二中“亲缘度”的优化目标。

注:问题五中“必须完成整个加工任务”是废话,没有那个问题说可以不加工完的。

解题要点:与问题四相同,没有要求一次性全部加工。在问题四“加工成本最低”“能耗率>0.8的加工包数”的基础上,对“亲缘度尽量高”这一目标进行优化。那么就涉及到一个问题,各优化目标的重要性,打个比方,加工成本与能耗率>0.8的加工包数在不考虑亲缘度的时候已经达到最优,那么现在要考虑亲缘度,我可以为了亲缘度牺牲多大程度的成本和能耗率?这就需要对三个目标排个先后顺序,定个目标比重。可以在论文中进行说明,对各指标进行标准化后,按照各占1/3的重要性进行优化。

标准化的方式可以借鉴B题中第四问写的方式。

第二步:第一问求解

研究16种原料两两之间的亲缘度,并进行统计性分析。即依据亲缘值N的计算方法得出一个16*16方阵,并做简要统计学分析。

7f14d0e55dd5d45fa490034b34dcb115.png
图1 将表格复制的excel中,标记出不能单独加工的10号和效能率低于0.8的品种

使用替换功能将a~z替换为1~26,或者直接导入Matlab,这里我采用后者(需要一些技巧)。

编写个简单的比较函数(稍晚一点我会把函数和相关表格放到公众号里,大家可以下载),结果如下:

c4b2e4eb9541e2eff65d894ecf9eeb01.png
图2 可以看出有不少都是亲缘值为0的,在第二问和第五问中需要考虑亲缘值

有了任意两样本的亲缘值数据,根据题中的公式,就可以计算任意多个样本之间亲缘值了。

题目还要求统计学分析,可以统计一下亲缘值0~10的占比,简单描述一下就可以了。

第三步:第二问求解

将16种原料进行混合放入9个加工装置中,求出饲料质量最高的混合方案并给出每个加工包的亲缘度。

此问题的优化目标是饲料质量,也就是“亲缘度”最高。那么什么是饲料质量最高呢?假果我们已经有最优的混合方案,那么饲料质量=九个加工装置的“混合后亲缘值×加工质量”之和。

16种一次性放入9个装置中,必有混合。而所有装置的加工下限是300kg,所以<300kg的原料必须与其他混合。

我们暂且只考虑可以两两混合的情况。

做题的过程中,发现一个之前没注意到的点:饲料质量,只有成品才能称之为饲料,没加工过的就是原料。

那么总的饲料质量如何计算呢?

毋庸置疑,饲料质量用亲缘值表示。在问题二中,九个加工装置要求一次性加工完全,那就是九种成品饲料,可以计算出九个亲缘值。九种饲料的重量不一,总的饲料质量需要使用饲料重量对九种饲料的亲缘值进行加权。

饲料重量等于各加工装置中不同原料的重量与能效率的乘积之和。

这也就是为什么我的程序里需要按照下图进行计算了。

e8fe3473a45dedd78e3a301ad670e315.png

很多人问我为什么要×质量,我举个例子。

比方说两个加工窖,1号窖里加工了300千克饲料,2号窖里加工了600千克饲料,1号窖的亲缘值是0.8,2号窖的亲缘值是0.6。 总体亲缘值是等于0.8+0.6么?,不是的,应该等于(0.8×300+0.6×600)÷900。这就是权重。

1974a91ee243801b7c08b620e75839b0.png
下划线为新增,完善了两两亲缘值为零不能混合的约束条件

加工窖的编码修改为m,因为到了第四问时加工包的个数可以比加工窖多。

8f325a77db4aa9cdf72e4eee3216255c.png
标黄的地方有改动

3ed0e847c098cd071012abccaaf840fe.png

第四步:第三问求解

bafa8f2327ca14d7cfa59c8056c4b446.png

第五步:第四问求解

对于多目标优化,下面采用了线性加权和法,除此之外还有理想点法。

0d1d8e635b64dd6134750a4c80af13ff.png

fb897ec31a815aa2259fd2f8786620fe.png

第六步:第五问求解

60d9e64e2bfa3f71955e132a840cdc8d.png

这篇关于php和html混合写 先执行哪个_2020五一建模:C题 饲料混合加工问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/500735

相关文章

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序