【2023年数学建模国赛】D题解题思路

2023年数学建模国赛D题解题思路

为了解决问题1、问题2和问题3,我们可以采用动态规划方法来制定生产计划,考虑了不确定性因素和多种可能情况的预案集。首先,我们需要定义一些变量和符号:

  • T T T:总的养殖周期(年数)。
  • S S S:每个养殖周期的季节数(假设一年有4个季节)。
  • B B B:每个季节的基础母羊数量。
  • R R R:每个季节的种公羊数量。
  • P P P:每个季节的怀孕期母羊数量。
  • D D D:每个季节的分娩期母羊数量。
  • L L L:每个季节的哺乳期母羊数量。
  • C C C:每个季节的育肥期羔羊数量。
  • A A A:每个季节的空怀休整期母羊数量。

接下来,我们需要建立一个决策变量,即每个季节的配种数量,用 X X X表示。

为了解决问题1和问题2,我们可以制定如下的数学模型:

问题1模型:

目标函数:
最大化年化出栏羊只数量,即最大化 ∑ t = 1 T ∑ s = 1 S ( 2 D t , s + C t , s ) \sum_{t=1}^{T} \sum_{s=1}^{S} (2D_{t,s} + C_{t,s}) t=1Ts=1S(2Dt,s+Ct,s)

约束条件:

  1. 每个季节的基础母羊数量不能超过14只: B t , s ≤ 14 B_{t,s} \leq 14 Bt,s14
  2. 每个季节的种公羊数量不能超过4只: R t , s ≤ 4 R_{t,s} \leq 4 Rt,s4
  3. 怀孕期母羊数量为分娩期母羊的85%: P t , s = 0.85 D t , s P_{t,s} = 0.85D_{t,s} Pt,s=0.85Dt,s
  4. 空怀休整期母羊数量为分娩期母羊的15%: A t , s = 0.15 D t , s A_{t,s} = 0.15D_{t,s} At,s=0.15Dt,s
  5. 哺乳期母羊数量等于分娩期母羊数量加上前一季节哺乳期母羊数量: L t , s = D t , s + L t − 1 , s L_{t,s} = D_{t,s} + L_{t-1,s} Lt,s=Dt,s+Lt1,s
  6. 羔羊数量等于前一季节哺乳期母羊数量: C t , s = L t − 1 , s C_{t,s} = L_{t-1,s} Ct,s=Lt1,s

问题2模型:

目标函数:
最大化年化出栏羊只数量,即最大化 ∑ t = 1 T ∑ s = 1 S ( 2 D t , s + C t , s ) \sum_{t=1}^{T} \sum_{s=1}^{S} (2D_{t,s} + C_{t,s}) t=1Ts=1S(2Dt,s+Ct,s)

约束条件:
与问题1相同,不同的是我们不再限制 B t , s B_{t,s} Bt,s R t , s R_{t,s} Rt,s的数量,而是将它们作为决策变量,可以在每个季节自由调整。

问题3模型:

问题3考虑了不确定性因素和多种可能情况的预案集。为了解决问题3,我们可以使用动态规划方法,从第一个季节开始逐季节制定决策,以最小化整体方案的期望损失。具体步骤如下:

  1. 初始化:从第一个季节开始,将 B 1 , 1 B_{1,1} B1,1 R 1 , 1 R_{1,1} R1,1作为决策变量,计算所有可能情况下的 D 1 , 1 D_{1,1} D1,1 P 1 , 1 P_{1,1} P1,1 L 1 , 1 L_{1,1} L1,1 C 1 , 1 C_{1,1} C1,1

  2. 逐季节迭代:对于每个季节 s s s,根据上一季节的结果和不确定性因素计算 B t , s B_{t,s} Bt,s R t , s R_{t,s} Rt,s,然后计算 D t , s D_{t,s} Dt,s P t , s P_{t,s} Pt,s L t , s L_{t,s} Lt,s C t , s C_{t,s} Ct,s。在每个季节中,选择使得期望损失最小的决策。

  3. 计算期望损失:在每个季节中,根据不同情况下的羊栏使用情况,计算期望损失。

  4. 终止条件:重复步骤2和步骤3,直到养殖周期结束。

最终,得到的生产计划将考虑了不确定性因素,并在每个季节根据实际情况作出最佳决策,以最小化期望损失。这个模型可以通过计算机程序进行求解,以得到最优的生产计划。

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

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

相关文章

使用命令行创建仓库

如果你还没有任何代码,可以通过命令行工具创建一个全新的Git仓库并初始化到本项目仓库中。 git clone https://e.coding.net/***/neurosens.git cd neurosens echo "# neurosens" >> README.md git add README.md git commit -m "first commi…

2023年09月编程语言流行度排名

点击查看最新编程语言流行度排名(每月更新) 2023年09月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多,大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

解决windows下git操作提示用户名密码错误的问题

当代码从一个平台切换到另一个平台的时候,需要做两步操作,第一步就是更新git的仓库地址,在项目的.git/config文件里面修改,这一步做完之后,就可以推送代码到新的仓库了,这里就是重点来了。 一般第一次推动代…

27.方向标

题目 描述 一位木匠收到了一个木制指示牌的订单。每块木板必须与前一块垂直对齐,要么与前一个箭头的基部对齐,要么与相反的一侧对齐,在那里用特制的螺钉固定。两块木板必须重叠。木匠将设计师发送的草图编码成了一个整数序列,但…

lv3 嵌入式开发-7 linux shell脚本编程(分支语句、循环语句)

目录 1 分支语句 2 多路分支语句 3 for的用法 4 while的用法 5 循环控制语句 6 练习 1 分支语句 语法结构: if 表达式then 命令表fi 如果表达式为真, 则执行命令表中的命令; 否则退出if语句, 即执行fi后面的语句。 if和fi是条件语句的语句括号, 必须成对使用; …

C++,day0907

#include <iostream>using namespace std; struct stu { private:int num; private:double score[32];public:void setNum(){cout <<"请输入学生人数:";cin >>num;}void input(){cout<<"请输入学生的成绩:"<<endl;for(int i…

ARM DIY(九)陀螺仪调试

前言 今天调试六轴陀螺仪 MPU6050 硬件 硬件很简单&#xff0c;使用 I2C 接口&#xff0c;并且没有使用中断引脚。 焊接上 MPU6050 芯片和上拉电阻、滤波电容。 检测 MPU6050 是挂在 I2C-0 上的&#xff0c;I2C-0 控制器的驱动已 OK&#xff0c;所以直接使用 I2C-0 检测 …

Linux与shell命令行学习

文章目录 走进shell基本的bash shell命令2.1 遍历目录 cd2.2 查看文件和目录列表 ls2.3 创建文件 touch2.4 复制文件 cp2.5 自动补全 tab2.6 链接文件 ln2.7 文件重命名 mv2.8 删除文件 rm2.9 创建目录 mkdir2.10 删除目录 rmdir2.11 查看文件类型 file2.12 查看整个文件 cat、…

ElementUI浅尝辄止19:Badge 标记

出现在按钮、图标旁的数字或状态标记。 1.如何使用&#xff1f; 可展示新消息数量。 //定义value属性&#xff0c;它接受Number或者String。<el-badge :value"12" class"item"><el-button size"small">评论</el-button> <…

ABAP BAPI_ACC_DOCUMENT_POST 中 EXTENSION1的用法

BAPI_ACC_DOCUMENT_POST 在过账会计凭证时候&#xff0c;经常会发现一些标准字段在参数中并没有 可以通过CMOD/SMOD增强出口--》ACBAPI01--》EXIT_SAPLACC4_001--》ZXACCU15 示例代码&#xff1a; DATA: wa_extension TYPE bapiextc,it_extension TYPE STANDARD TABLE OF ba…

springboot整合Interceptor

1.定义两个拦截器 一. package com.boot.intercept.intercept;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.H…

软件工程概述

软件工程概述 软件工程指的是应用计算机科学、数学及管理科学等原理&#xff0c;以工程化的原则和方法来解决软件问题的工程&#xff0c;目的是提高软件生产效率、提高软件质量、降低软件成本。 1. 计算机软件 计算机软件指的是计算机系统中的程序及其文档。程序是计算任务的…

圆圈加数字的css

方式一 .circle { width: 50px; height: 50px; border-radius: 50%; background-color: #f00; color: #fff; text-align: center; line-height: 50px; } .circle::before { content: attr(data-number); display: block; } <div class"circle" data-number"…

C++学习笔记--函数重载(2)

文章目录 1.3、Function Templates Handling1.3.1、Template Argument Deduction1.3.2、Template Argument Substitution 1.4、Overload Resolution1.4.1、Candidate functions1.4.2、Viable functions1.4.3、Tiebreakers 1.5、走一遍完整的流程1.6、Name Mangling1.7、总结 1.…

咖啡喝完还能建房?掺入混凝土强度高30%

咖啡是全世界消耗量最高的饮料&#xff0c;这也导致咖啡渣的数量相当大很特别&#xff0c;据估计&#xff0c;全球每年会产生1800万吨废弃咖啡残渣&#xff0c;其中大多数最终被填埋处理。它们会在垃圾填埋场中分解&#xff0c;释放出甲烷&#xff0c;而甲烷引起的全球变暖效应…

深度ESP32 PWM教程如何在ESP32 中使用PWM

关于ESP32PWM的简要说明 ESP32 SoC 满载了非常有用的外设&#xff0c;PWM 就是其中之一。是的。ESP32 的芯片中有一个专用的 PWM 硬件模块。脉宽调制或简称PWM是一种成熟且广泛使用的供电技术。 您可以使用 ESP32 的 PWM 来驱动 LED、电机&#xff08;普通直流电机和无刷电机…

ROS多话题同步回调

文章目录 ExactTime PolicyApproximateTime Policy参考ExactTime Policy 这种方法要求输入的消息的时间戳必须完全相同才调用回调函数。 #include <message_filters/subscriber.h> #include <message_filters/synchronizer.h> #include <message_filters/sync…

qt文件操作

对话框练习 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//字体按钮 void Widget::on_ztbtn_clicked() {//调用QFontDia…

在Spring Boot中使用Redis 5的Stream

引言 Redis是一个开源的高性能键值对存储系统&#xff0c;而Redis 5引入了新的数据结构——Stream&#xff08;流&#xff09;。Stream可以用于高效地保存和处理事件流数据。在本文中&#xff0c;我们将学习如何在Spring Boot应用程序中使用Redis 5的Stream功能。 步骤 步骤…

01_Flutter之下拉刷新和上拉加载

一.创建页面 由于我们需要请求网络&#xff0c;并将返回的数据渲染到页面上&#xff0c;所以需要继承StatefulWidget&#xff0c;本文涉及的接口&#xff0c;取自鸿神的玩android开放API class ProjectListPage extends StatefulWidget {overrideState<StatefulWidget>…