2023 年全国大学生数学建模竞赛题D 题 圈养湖羊的空间利用率思路详解+Python源码(二)

昨天已经将E题第一二问的详解和思路源码都写了出来,大家如果想从E题下手的话推荐参考本人文章,个人认为E题在建模上是优于D题的,毕竟有给出数据而且有明确的建模思路,E题我直接提供了Python源码直接可以运行即可:

2023全国大学生数学建模竞赛-E 题思路详解+Python代码源码解析icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/6549416152023全国大学生数学建模竞赛E题详解+Python代码源码(二)icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/654977217有需要的抓紧时间细读。简单介绍一下我自己:博主专注建模四年,参与过大大小小数十来次数学建模,理解各类模型原理以及每种模型的建模流程和各类题目分析方法。参与过十余次数学建模大赛,三次美赛获得过二次M奖一次H奖,国赛二等奖。希望各位以后遇到建模比赛可以艾特一下我,我可以提供免费的思路和部分源码,以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路。博主紧跟各类数模比赛,另外再向大家推荐一下笔者精心打造的专栏。此专栏的目的就是为了让零基础快速使用各类数学模型以及代码,每一篇文章都包含实战项目以及可运行代码。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全可运行代码:

一文速学-数学建模常用模型icon-default.png?t=N7T8https://blog.csdn.net/master_hunter/category_10967944.html昨天把D题第一问解决了很多人找我要源码,说实话源码真的不好给,很多队伍直接管都不管直接CP,风险很大,我已经给出大体框架和自定义函数了还是不会组合,实在没办法这里仅仅给大家作为参考,复盘第一问给大家看看代码如何实现:

2023 年全国大学生数学建模竞赛题D 题 圈养湖羊的空间利用率思路详解+Python源码icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/655008846

问题一题解:

def simulate_annual_slaughter(basic_ewes, ram, pen_capacity):slaughtered_lambs = 0for _ in range(365):pregnant_ewes = min(basic_ewes, pen_capacity["natural_mating"]["ewes"]) * pen_capacity["natural_mating"]["ram"]# 怀孕lambs_born = min(pregnant_ewes * 2, pen_capacity["pregnancy"]["ewes"])# 分娩和哺乳lactating_ewes = min(lambs_born, pen_capacity["lactation"]["ewes"])lactating_lambs = min(lambs_born * 2, pen_capacity["lactation"]["lambs"])# 羊只成长fattening_lambs = min(lactating_lambs, pen_capacity["fattening"]["lambs"])# 更新羊只数量basic_ewes = basic_ewes + lambs_born - lactating_ewes# 累积出栏羊只数量slaughtered_lambs += fattening_lambsreturn slaughtered_lambs# 初始条件
basic_ewes = 200  # 基础母羊数量
ram = 2  # 种公羊数量# 羊栏规格
pen_capacity = {"natural_mating": {"ram": 1, "ewes": 14},"pregnancy": {"ewes": 8},"lactation": {"ewes": 6, "lambs": 6},"fattening": {"lambs": 14}
}slaughtered_lambs = simulate_annual_slaughter(basic_ewes, ram, pen_capacity)print(f"每年预计出栏羊只数量:{slaughtered_lambs:.2f} 只")# 初始条件
basic_ewes = 200  # 基础母羊数量
ram = 4  # 种公羊数量# 阶段参数
natural_mating_period = 20
gestation_period = 149
lactation_period = 40
fattening_period = 210
rest_period = 20# 羊栏规格
pen_capacity = {"natural_mating": {"ram": 1, "ewes": 14},"pregnancy": {"ewes": 8},"lactation": {"ewes": 6, "lambs": 6},"fattening": {"lambs": 14}
}
# 模拟中使用的羊栏数量
used_pens = {"natural_mating": 0,"pregnancy": 0,"lactation": 0,"fattening": 0
}
# 记录出栏羊只数量
slaughtered_lambs = 0# 模拟一年的时间
for _ in range(365):# 自然交配pregnant_ewes = min(basic_ewes, pen_capacity["natural_mating"]["ewes"]) * ram# 怀孕lambs_born = min(pregnant_ewes * 2, pen_capacity["pregnancy"]["ewes"])# 分娩和哺乳lactating_ewes = min(lambs_born, pen_capacity["lactation"]["ewes"])lactating_lambs = min(lambs_born * 2, pen_capacity["lactation"]["lambs"])# 羊只成长fattening_lambs = min(lactating_lambs, pen_capacity["fattening"]["lambs"])# 更新羊只数量basic_ewes = basic_ewes + lambs_born - lactating_ewesram = ram# 累积出栏羊只数量slaughtered_lambs += fattening_lambs# 记录使用的羊栏数量used_pens["natural_mating"] += 1used_pens["pregnancy"] += 1used_pens["lactation"] += 1used_pens["fattening"] += 1# 所需羊栏数量
required_pens = max(used_pens.values())# 现有羊栏数量
existing_pens = 112# 计算羊栏缺口
pen_shortage = required_pens - existing_pens# 输出结果
print(f"现有羊栏数量:{existing_pens} 栏")
print(f"所需羊栏数量:{required_pens} 栏")
print(f"羊栏缺口:{pen_shortage} 栏")

 

以上大家仅供参考,根据自己团队做题情况修改相应的参数即可。

问题 2

在问题 1 的基础上,对 112 个标准羊栏给出具体的生产计划(包括种公羊与基础 母羊的配种时机和数量、羊栏的使用方案、年化出栏羊只数量等),使得年化出栏羊只数量最大。

题解

从题目关联性题目一和题目二其实可以算是计算反推优化策略上,得到最优解。那么第二题的思路不能从计算结果考虑,应该计算出标准羊栏数量满足的基础母羊数量,从基础条件逐步分析,那么我们来重定义问题:

假设种公羊和基础母羊的数量分别为 xy

在每个生育周期内,基础母羊的繁殖能力是 y,所以每个周期内能产生的羊只数量是 2×2×y

一个生育周期的总长度是20+149+20+210=419天

因此,在一年内可以进行0.87个剩余周期,所以每年产出羊的数量为0.87×2×y

为了保证每年出栏不少于1500只羊,我们需要解方程:

0.87×2×y≥1500

解得 y≥861

在实现连续生产的条件下,假设每个羊栏的利用率是 p,则需要满足以下条件:

  • 羊栏用于自然交配的时间:p×20 天
  • 羊栏用于孕期:p×149 天
  • 羊栏用于哺乳期:p×40 天
  • 羊栏用于羊羔育肥期:p×210 天
  • 羊栏空闲期:(1−p)×20 天

结合前面的结果,我们可以确定种公羊和基础母羊的合理数量。然后,使用这个数量模拟出栏的羊只数量,以估算年化出栏羊只数量的范围。

# 计算一个繁育周期的总长度
breeding_cycle_length = natural_mating_period + gestation_period + lactation_period + fattening_period# 计算一年内可以进行的繁育周期数
num_cycles_per_year = days_in_year / breeding_cycle_length# 问题 1: 确定养殖场种公羊与基础母羊的合理数量
# 基础母羊数量 (y) 至少需要满足每年出栏不少于1500只羊的条件
required_ewes = 1500 / (2 * num_cycles_per_year)# 问题 2: 估算现有标准羊栏数量的缺口
# 确定每个羊栏的利用率
pen_capacity = num_pens * pen_utilization# 一个羊栏在一个繁育周期内的总利用天数
pen_total_days = pen_utilization * breeding_cycle_length# 一个羊栏的平均利用天数,考虑到空闲期
pen_average_days = pen_total_days + (1 - pen_utilization) * rest_period# 可以养殖的基础母羊数量
feasible_ewes = pen_capacity * pen_average_days / breeding_cycle_length# 问题 3: 估算年化出栏羊只数量的范围
# 计算实际每年产羊的数量
actual_annual_lambs = 2 * num_cycles_per_year * required_ewes# 输出结果
print(f"问题 1: 养殖场需要至少 {int(required_ewes)} 只基础母羊。")
print(f"问题 2: 现有标准羊栏数量满足的基础母羊数量为 {int(feasible_ewes)} 只。")
print(f"问题 3: 年化出栏羊只数量的范围为 {int(actual_annual_lambs)} 只.")

问题 1: 养殖场需要至少 860 只基础母羊。

问题 2: 现有标准羊栏数量满足的基础母羊数量为 85 只。

问题 3: 年化出栏羊只数量的范围为 1500 只.

为了给出具体的生产计划,我们需要考虑以下几个因素:

  1. 基础母羊和种公羊的配对数量和时机。
  2. 羊栏的使用方案,确保各阶段的羊只都能得到适当的安置。
  3. 最大化年化出栏羊只数量。

将尽量利用羊栏的空间,以实现最大化的产出。

生产计划:

种公羊配对基础母羊:

    • 配对时间:自然交配期的前10天
    • 种公羊数量:2只
    • 基础母羊数量:100只

怀孕期:

  • 使用羊栏数量:8个(112个羊栏 / 0.87)
  • 每个羊栏容纳:8只待产母羊
  • 怀孕周期:149天

分娩和哺乳期:

  • 使用羊栏数量:9个(112个羊栏 / 0.87)
  • 每个羊栏容纳:6只母羊及它们的羔羊
  • 总羊只数量:54只母羊 + 54只羔羊
  • 分娩周期:40天

羔羊育肥期:

  • 使用羊栏数量:8个(112个羊栏 / 0.87)
  • 每个羊栏容纳:14只羔羊
  • 羔羊育肥周期:210天

循环:

在羔羊育肥期结束后,将成年羊返还至待产区,羊羔移至育肥区,循环进行下一轮。

只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路,你们的关注和点赞就是我写作的动力!!!想要了解更多的欢迎联系博主~~~~另外再向大家推荐一下笔者精心打造的专栏。此专栏的目的就是为了让零基础快速使用各类数学模型以及代码,每一篇文章都包含实战项目以及可运行代码。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码:

一文速学-数学建模常用模型icon-default.png?t=N7T8https://blog.csdn.net/master_hunter/category_10967944.html

下一章更新E题第二问源代码和第四问

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

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

相关文章

STC15单片机特有的PWM寄存器和普通定时器实现PWM输出

STC15单片机特有的PWM寄存器和普通定时器实现PWM输出 🌿主要针对STC15W4型号特有的6通道15位专门的高精度PWM。 ✨STC15W4K32S4系列单片机具有6通道15位专门的高精度PWM(带死区控制)和2通道CCP(利用它的高速脉冲输出功能可实现11~16位PWM);(STC15F/L2K60S2系列单片机具有3通…

Android逆向学习(番外一)smali2java部分文件无法反编译的bug与修复方法

Android逆向学习(番外一)smali2java部分文件无法反编译的bug与修复方法 一、前言 昨天我和往常一样准备着android逆向(四)的博客,结果发现smali2java对某些文件无法进行逆向,我不知道windows会不会产生这…

视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…

windows10使用wheel安装tensorflow2.13.0/2.10.0 (保姆级教程)

安装过程 安装虚拟环境安装virtualenv安装满足要求的python版本使用virtualenv创建指定python版本的虚拟环境 安装tensorflow安装tensorflow-docs直接下载使用wheel下载 在VSCode编辑器中使用虚拟环境下的python解释器,并使用tensorflow常见错误 注意: t…

反序列化中_wakeup的绕过

文章目录 前言绕过方法变量引用属性个数不匹配(cve-2016-7124)C绕过fast-destruct其余GC回收机制 前言 反序列化中_wakeup扮演着非常重要的角色,ctf碰到很多的题目都有涉及到_wakeup绕过,写下这篇博客来总结下大部分绕过方法,其中会有例题具…

大数据导论 笔记

一、大数据方向 1、技术发展 计算机网络云计算大数据时代人工智能(本科:使用,研究生:推导,博士:创新) 2023年 大数据模型 人工智能元年 2、基础课程 hadoop 大数据基础 三大件:HDF…

java实现调用百度地图

这里使用的springbootthymeleaf实现,所以需要有springboot技术使用起来更方便 当然,只使用html加js也可以实现,下面直接开始 首先我们需要去百度地图注册一个AK(百度地图开放平台 | 百度地图API SDK | 地图开发) 找到左…

学会用命令行创建uni-app项目并用vscode开放项目

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 创建 uni-app 项目 命令行创建 uni-app 项目 编译和运行 uni-app 项目: 用 VS Code 开发 uni…

教你如何快速阅读葡萄酒标签

我们经常被问及葡萄酒标签上写了什么,总体而言这些信息可以分为四个关键部分,第一品牌或生产商;第二国家或地区;第三葡萄品种;第四年份。 第一品牌或生产商,在寻找葡萄酒的制造商时,著名的品牌名…

一篇文章教会你什么是高度平衡二叉搜索(AVL)树

高度平衡二叉搜索树 AVL树的概念1.操作2.删除3.搜索4.实现描述 AVL树的实现1.AVL树节点的定义2.AVL树的插入3.AVL树的旋转3.1 新节点插入较高右子树的右侧---右右:左单旋3.2 新节点插入较高左子树的左侧---左左:右单旋3.3 新节点插入较高左子树的右侧---左右:先左单…

尖端AR技术如何在美国革新外科手术实践?

AR智能眼镜已成为一种革新性的工具,在外科领域具有无穷的优势和无限的机遇。Vuzix与众多医疗创新企业建立了长期合作关系,如Pixee Medical、Medacta、Ohana One、Rods & Cones、Proximie等。这些公司一致认为Vuzix智能眼镜可有效提升手术实践&#x…

计算机网络的故事——了解Web及网络基础

了解Web及网络基础 文章目录 了解Web及网络基础一、使用 HTTP 协议访问 Web二、HTTP 的诞生三、网络基础 TCP/IP四、与 HTTP 关系密切的协议 : IP、TCP 和 DNS 一、使用 HTTP 协议访问 Web 根据Web浏览器指定的URL,从对应的服务器中获取文件资源,从而显…

深度学习-4-二维目标检测-YOLOv5理论模型详解

YOLOv5理论模型详解 1.Yolov5四种网络模型 Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。 YOLOv5系列的四个模型(YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x)在参数量和性…

手写Ribbon基本原理

本文已收录于专栏 《中间件合集》 目录 概念说明什么是RibbonRibbon和Nginx负载均衡的区别 工作流程代码实现RibbonSDK发送请求端引入RibbonSDK和Nacos的依赖配置文件中填写负载均衡策略调用代码 接收请求端执行效果发送请求端接收请求端 总结提升 概念说明 什么是Ribbon Ribb…

序列号读取

1.序列号读取 1.1 应用示例目的与思路 获取光盘的外接圆;然后进行极坐标变换,获取字符所在的区域;最后进行字符分割、识别及其在原图上显示。 1.2 应用示例相关算子介绍 (1) mean_image(Image : ImageMean : MaskWidth, MaskHeight : ) …

uniapp 手机 真机测试 ​ 云打包 要是没申请 可以使用云打包 然后采用 测试权限即可​

uniapp 手机 真机测试 打开手机 找到手机的 版本号 点击 知道提示 (启动开发者模式) 然后 在进行usb的连接打开 运行uniapp 到手机基台 手机确认 即可 四, 云打包 要是没申请 可以使用云打包 然后采用 测试权限即可

每日刷题|回溯法解决全排列问题第二弹之解决字符串、字母大小排列问题

食用指南:本文为作者刷题中认为有必要记录的题目 前置知识:回溯法经典问题之全排列 ♈️今日夜电波:带我去找夜生活—告五人 0:49 ━━━━━━️💟──────── 4:59 …

2023国赛数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

QUIC协议科普导入(一)

一:QUIC协议导入 QUIC是一个通用的传输层网络协议,最初由Google的Jim Roskind设计,2012年实现并部署,2013年随着实验范围的扩大而公开发布,并向IETF描述。虽然长期处于互联网草案阶段,但在从Chrome浏览器到…

vue3中通过ref获取子组件实例,取值为undefined

也就是Vue3如何通过 ref 获取子组件实例(子组件中的DOM结构、数据、及方法),今天写index.vue(父组件)时想获取子组件的数据和方法,通过给子组件绑定ref,打印子组件的数据为undefined;百度搜索常用方法为: …