2023 年高教社杯全国大学生数学建模竞赛题D 题 圈养湖羊的空间利用率

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

昨天已经将E题第一二问的详解和思路源码都写了出来,大家如果想从E题下手的话推荐参考本人文章,个人认为E题在建模上是优于D题的,毕竟有给出数据而且有明确的建模思路,E题我直接提供了Python源码直接可以运行即可:
2023全国大学生数学建模竞赛-E 题思路详解+Python代码源码解析
D题明显是运筹规划类题目,此类题目回答多样竞争还是比较大的,E题更好完善建模和问题细节处理方面。
简单介绍一下我自己:博主专注建模四年,参与过大大小小数十来次数学建模,理解各类模型原理以及每种模型的建模流程和各类题目分析方法。参与过十余次数学建模大赛,三次美赛获得过二次M奖一次H奖,国赛二等奖。希望各位以后遇到建模比赛可以艾特一下我,我可以提供免费的思路和部分源码,以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码且完全免费。
一文速学-数学建模常用模型
希望有需求的小伙伴不要错过笔者精心打造的文章。这里重述一遍:本人不出售任何建模资料和资源,建模仅为个人爱好!
那么废话不多说开始进行D题的思路详解。

题目背景

养殖场的经营管理者为保障效益,需要通过制定生产计划来优化养殖场的空间利用率。这 里的生产计划,主要是决定什么时间开始对多少可配种的基础母羊进行配种,控制羊只的繁育 期,进而调节对羊栏的需求量,以确保有足够多的羊栏,同时尽量减少羊栏闲置。当羊栏不够 时,可以租用其他场地。

湖羊养殖的生产过程主要包括繁殖和育肥两大环节。人工授精技术要求高,因此湖羊繁殖 大多采用种公羊和基础母羊自然交配的方式。怀孕母羊分娩后给羔羊哺乳,羔羊断奶后独立喂 饲,育肥长成后出栏。自然交配时将若干基础母羊与一只种公羊关在一个羊栏中,自然交配期 约为 3 周,然后将种公羊移出。受孕母羊的孕期约为 5 个月,每胎通常产羔 2 只。母羊分娩后 哺乳期通常控制在 6 周左右,断奶后将羔羊移至育肥羊栏喂饲。一般情况下,羔羊断奶后经过 7 个月左右育肥就可以出栏。母羊停止哺乳后,经过约 3 周的空怀休整期,一般会很快发情, 可以再次配种。按上述周期,正常情况下,每只基础母羊每 2 年可生产 3 胎。在不考虑种公羊 配种能力差异的情况下,种公羊与基础母羊一般按不低于 1:50 的比例配置。种公羊和母羊在非 交配期原则上不关在同一栏中。 某湖羊养殖场设置标准羊栏,规格是:空怀休整期每栏基础母羊不超过 14 只;非交配期的 种公羊每栏不超过 4 只;自然交配期每栏 1 只种公羊及不超过 14 只基础母羊;怀孕期每栏不超 过 8 只待产母羊;分娩后的哺乳期,每栏不超过 6 只母羊及它们的羔羊;育肥期每栏不超过 14 只羔羊。原则上不同阶段的羊只不能同栏。

我们需要梳理题目给的关键信息:

  1. 湖羊的生长周期和不同阶段所需的空间要求。
  2. 不同阶段的羊只的数量和比例,例如基础母羊、种公羊等。
  3. 每个阶段的羊只栏的规格和容量。

我们可以建立一个数学模型,通过对不同阶段的羊只数量和状态进行动态调整,来达到最优的空间利用率。

问题一

不考虑不确定因素和种羊的淘汰更新,假定自然交配期 20 天,母羊都能受孕,孕 期 149 天,每胎产羔 2 只,哺乳期 40 天,羔羊育肥期 210 天,母羊空怀休整期 20 天。该湖羊 养殖场现有 112 个标准羊栏,在实现连续生产的条件下,试确定养殖场种公羊与基础母羊的合 理数量,并估算年化出栏羊只数量的范围。若该养殖场希望每年出栏不少于 1500 只羊,试估算 现有标准羊栏数量的缺口。

题解

首先我们要明确一只年出栏羊的流程:
在这里插入图片描述

整理一下给定的信息:

  • 自然交配期:20天
  • 孕期:149天
  • 每胎产羔:2只
  • 哺乳期:40天
  • 羔羊育肥期:210天
  • 母羊空怀休整期:20天
  • 现有标准羊栏数量:112个
  • 希望每年出栏不少于1500只羊

限定条件:

  • 种公羊与基础母羊一般按不低于 1:50 的比例配置
  • 空怀休整期每栏基础母羊不超过 14 只
  • 非交配期的 种公羊每栏不超过 4 只
  • 自然交配期每栏 1 只种公羊及不超过 14 只基础母羊
  • 怀孕期每栏不超 过 8 只待产母羊
  • 分娩后的哺乳期,每栏不超过 6 只母羊及它们的羔羊
  • 育肥期每栏不超过 14 只羔羊
  • 不同阶段的羊只不能同栏

接下来我们来进行程序模拟,最终我们的期望的结果希望出栏羊达到1500只。Python的模拟应该包括:

  1. 定义初始的羊只数量和羊栏容量。
  2. 使用循环模拟多个时间步骤(比如模拟一年的时间)。
  3. 在每个时间步骤中,计算每个阶段的羊只数量和羊栏利用情况。
  4. 根据规则移动羊只到适当的羊栏,确保不超过容量限制。
  5. 考虑季节性因素,如生育季节、交配、分娩等。
  6. 更新羊只的状态,包括怀孕、产羔、哺乳、育肥等状态。
  7. 记录每个时间步骤的羊只数量、羊栏利用情况以及出栏的羊只数量。
  8. 继续模拟直到满足出栏数量的要求或者达到一定的时间步骤。

由于题目并没有给我们明确初始我们有多少母羊和种公羊的数量,我们可以先模拟假设有600只基础母羊数量,12只种公羊数量。

# 初始条件
basic_ewes = 300  # 基础母羊数量
ram = 6  # 种公羊数量

加入阶段参数:

# 阶段参数
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}
}

之后输入参数,设定为一年时间模拟湖羊出栏过程即可:

# 记录出栏羊只数量
slaughtered_lambs = 0
# 输出结果
print(f"出栏羊只数量:{slaughtered_lambs:.2f} 只")

在这里插入图片描述

结合养殖场的期望空值初始羊群公母羊配置即可,控制到1500只后计算标注羊栏的数量缺口,将所需羊栏数量与现有的112个标准羊栏进行比较,以计算出差额。

# 所需羊栏数量
required_pens = max(used_pens.values())# 现有羊栏数量
existing_pens = 112# 计算羊栏缺口
pen_shortage = required_pens - existing_pens

在这里插入图片描述

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

博主~~~~另外再向大家推荐一下笔者精心打造的专栏。此专栏的目的就是为了让零基础快速使用各类数学模型以及代码,每一篇文章都包含实战项目以及可运行代码。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码:

好了那么我们抓紧时间开始做问题二!!待会更新~~

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

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

相关文章

upload-labs 16/17关

16 将gif文件和包含一句话木马的php文件放在同一目录下,用cmd的copy命令将php文件整合进文件中。 可以看到最后一行包含了注入代码 将b1文件上传到服务器后,发现并未能正常执行代码,将上传后的文件下载到本地,打开后发现最后的代…

如何指定this

<script>/*如何指定this的值可以通过2类方法指定1.调用时指定1.1call方法1.2apply方法2.创建时指定2.1bind方法2.2箭头函数*/// ------1.调用时指定------//1.1call方法:挨个传入参数//1.2apply方法:数组形式传入参数function foo (numA, numB) {console.log(this)consol…

Python标识符命名规范

简单地理解&#xff0c;标识符就是一个名字&#xff0c;就好像我们每个人都有属于自己的名字&#xff0c;它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。 Python 中标识符的命名不是随意的&#xff0c;而是要遵守一定的命令规则&#xff0c;比如说&#xff1a;…

深入理解联邦学习——联邦学习的分类

分类目录&#xff1a;《深入理解联邦学习》总目录 在实际中&#xff0c;孤岛数据具有不同分布特点&#xff0c;根据这些特点&#xff0c;我们可以提出相对应的联邦学习方案。下面&#xff0c;我们将以孤岛数据的分布特点为依据对联邦学习进行分类。 考虑有多个数据拥有方&…

一道面试题:介绍一下 Fragment 间的通信方式?

Fragment 间的通信可以借助以下几种方式实现&#xff1a; EventBusActivity&#xff08;or Parent Fragment&#xff09;ViewModelResult API 1. 基于 EventBus 通信 EventBus 的优缺点都很突出。 优点是限制少可随意使用&#xff0c;缺点是限制太少使用太随意。 因为 Even…

软路由ip的优势与劣势:了解其适用场景和限制

在网络技术的快速发展中&#xff0c;软路由IP作为一种灵活且功能强大的网络设备&#xff0c;越来越受到人们的关注。然而&#xff0c;正如任何技术一样&#xff0c;软路由IP也有其优势和劣势。本文将深入探讨软路由IP的优势、劣势以及其适用场景和限制&#xff0c;帮助你更好地…

深入讲解内存分配函数 malloc 原理及实现

任何一个用过或学过C的人对 malloc 都不会陌生。大家都知道malloc可以分配一段连续的内存空间&#xff0c;并且在不再使用时可以通过free释放掉。但是&#xff0c;许多程序员对malloc背后的事情并不熟悉&#xff0c;许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字…

Streamlit 讲解专栏(十二):数据可视化-图表绘制详解(下)

文章目录 1 前言2 使用st.vega_lite_chart绘制Vega-Lite图表2.1 示例1&#xff1a;绘制散点图2.2 示例2&#xff1a;自定义主题样式 3 使用st.plotly_chart函数创建Plotly图表3.1 st.plotly_chart函数的基本用法3.2 st.plotly_chart 函数的更多用法 4 Streamlit 与 Bokeh 结合进…

运维Shell脚本小试牛刀(七):在函数文脚本件中调用另外一个脚本文件中函数|函数递归调用|函数后台执行

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0)&#xff1b; pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试…

React笔记(八)Redux

一、安装和配置 React 官方并没有提供对应的状态机插件&#xff0c;因此&#xff0c;我们需要下载第三方的状态机插件 —— Redux。 1、下载Redux 在终端中定位到项目根目录&#xff0c;然后执行以下命令下载 Redux npm i redux 2、创建配置文件 在 React 中&#xff0c;…

mysql创建用户

创建用户 创建 -- 创建用户 itcast , localhost只能够在当前主机localhost访问, 密码123456; create user test01localhost identified by 123456;使用命令show databases;命令&#xff0c;只显示一个数据库&#xff0c;因为没有权限 -- 创建用户 test02, 可以在任意主机访问…

Java基础(四)

151. LinkedList特征分析 增删快 可以打断连接&#xff0c;重新赋值引用&#xff0c;不 涉及数据移动操作,效率高 查询慢 双向链表结构数据存储非连 续&#xff0c;需要通过元素一一 跳转 152 ArrayList和LinkedList对比分析 ArrayList特征 查询快。增删慢 适用于数据产出之…