数学建模动态规划的小案例之R代码实现——生产计划问题
目录
- 1、问题描述
- 2、解题思路
- 3、R程序实现
- 4、输出结果
1、问题描述
工厂生产某种产品,每单位(千件)的成本为 1(千元),每次开工的固定成本为 3 (千元),工厂每季度的最大生产能力为 6(千件)。经调查,市场对该产品的需求量第一、二、三、四季度分别为 2,3,2,4(千件)。如果工厂在第一、二季度将全年的需求都生产出来,自然可以降低成本(少付固定成本费),但是对于第三、四季度才能上市的产品需付存储费,每季每千件的存储费为 0.5(千元)。还规定年初和年末这种产品均无库存。试制定一个生产计划,即安排每个季度的产量,使一年的总费用(生产成本和存储费)最少。
2、解题思路
这一类生产计划问题(Production planning problem),阶段按计划时间自然划分,状态定义为每阶段开始时的储存量x(k),决策为每个阶段的产量u(k),记每个阶段的需求量(已知量)为d(k),则状态转移方程为:
x(k+1) = x(k) + u(k) − d(k) ( x(k)≥0, k=1,2,...,n )
设每阶段开工的固定成本费为a,生产单位数量产品的成本费为b,每阶段单位数量产品的储存费为c,阶段指标为阶段的生产成本和储存费之和,即
if u(k)>0v(x(k), u(k)) = cx(k) + (a + bu(k)) if u(k)=0v(x(k), u(k)) = cx(k) + 0
最优值函数f(x(k))为从第k段的状态x(k)出发到过程终结的最小费用,满足 :
f(x(k)) = min(v(x(k), u(k)) + f(x(k+1)))
3、R程序实现
# 每阶段单位数量产品的储存费为c
C = 0.5;# 每阶段开工的固定成本费为a
A = 3;# 生产单位数量产品的成本费为b
B = 1;# 市场对该产品的需求量数组
ds <- c(2, 3, 2, 4);# 市场对该产品的需求量函数
d <- function(k) {return (ds[k])
};# 生产目标,所有初始化为NA,在每次遍历的时候,需要更新这个值
us <- rep(NA, times=length(ds));
u <- function(k) {return (us[k]);
}# 每阶段开始时的储存量x(x)
x <- function(k) {if(k <= 1) {result <- 0;} else {result <- x(k-1) + u(k-1) - d(k-1);}return (result);
}# 阶段的生产成本和储存费之和
vs <- c();
v <- function(k) {if(u(k) == 0) {vs[k] <- C*x(k);}if(u(k)>0) {vs[k] <- C*x(k) + (A + B*u(k));}return (vs[k]);
}f <- function(k) {# 设置终止条件,如果为第k+1季度,则返回#f(x(k))=min(v(x(k), u(k)) + f(x(k+1)))if(k == (length(ds)+1)) {result <- 0;} else {result <- v(k) + f(k+1);}return (result);
}uss <- expand.grid(s1=c(0:sum(ds)), s2=c(0:sum(ds)), s3=c(0:sum(ds)), s4=c(0:sum(ds)));
uss <- data.matrix(uss[which(rowSums(uss)==sum(ds)),]);#i<- 2
#uss[which(rowSums(matrix(uss[,1:i], ncol=i))>=sum(ds[1:i])),];for(i in 1:length(ds)) {uss <- uss[which(rowSums(matrix(uss[,1:i], ncol=i)) >= sum(ds[1:i])),];
}rs = c();
for(i in 1:nrow(uss)) {# 重新设置us值us <- uss[i,];rs[i] <- f(1);
}min(rs)
uss[which(rs == min(rs)),]
4、输出结果
> min(rs)
[1] 20.5> uss[which(rs == min(rs)), ]s1 s2 s3 s4
870 5 0 6 0
6920 7 0 0 4
数学建模动态规划的小案例之R代码实现——生产计划问题相关推荐
- 数学建模论文写作小技巧分享
学习网址 :哔哩哔哩网站[数学建模论文写作小技巧分享] 数学建模论文写作小技巧分享 数学建模-论文-各部分-写作-指导 数学建模[建模竞赛与论文写作] 目 录 P1 [必看]代码.论文查重问题怎么 ...
- 2023美国大学生数学建模竞赛(美赛)思路代码
2023美国大学生数学建模竞赛(美赛)思路&代码 报名 时间节点 比赛说明 问题A(数据分析题):收干旱影响的植物群落(MCM) 第一问 第二问 问题B(仿真建模题):重塑马赛马拉(MCM) ...
- 2020全国大学生数学建模A题思路讲解与核心代码
2020全国大学生数学建模A题思路讲解与核心代码 题目 核心方法: 问题一 问题二 问题三和问题四 答案如下: 题目 核心方法: 热传导 有限差分法 遍历法 问题一 建立焊接区域中心温度变化规律模型, ...
- 2021美国大学生数学建模竞赛(美赛)思路代码
2021美国大学生数学建模竞赛(美赛)思路&代码 比赛说明 一.A题(真菌对木制分解效率的影响)--赛题解读&解题思路 二.B 题(discrete) 三.C题(大黄蜂传播规律和目击准 ...
- 2021年华为杯数学建模B题,四题全部代码和思路
2021年华为杯数学建模B题,四题全部代码和思路 需要的请联系我,企鹅1514168893.先看视频,满意再来找我,谢谢哈 四题均已做完
- 数学建模的理论及案例
目录 数学建模的理论基础 数学模型的定义 数学模型的分类 数学建模的步骤 数学建模的应用领域 结论 电力行业的数模 1. 概述 2. 电力系统的稳定性分析 3. 电力市场的建模与优化 4. 电力负荷预 ...
- 写5个数学建模的经典模型案例和代码
1.线性规划模型案例:生产计划 假设一家工厂生产两种产品A和B,每个月有100个工作日,每个工作日可以生产200个A产品或150个B产品.A产品售价为200元/个,B产品售价为300元/个,每个月至少 ...
- 2022年中国研究生数学建模竞赛E题思路及参考代码-草原放牧策略研究
一.背景介绍 草原作为世界上分布最广的重要的陆地植被类型之一,分布面积广泛.中国的草原面积为3.55亿公顷,是世界草原总面积的6%~8%,居世界第二.此外,草原在维护生物多样性.涵养水土.净化空气.固 ...
- 【数学建模】常用模型算法及MATLAB代码汇总
大家好,我是程序员史迪仔. 这篇文章是在大学准备数学建模比赛时,整理的学习笔记,没想到阅读量.点赞量和收藏量还是可以的,很高兴我的文章能给大家带来帮助! 一.蒙特卡洛算法 二.数据拟合 三.数据插值 ...
最新文章
- 不再重复造轮子,AI 给你推荐更好的代码,还没bug
- silverlight RadGridView总结二(转载)
- button按钮onclick触发不了_手把手教你深入CSS实现一个粒子动效的按钮
- Unity3dShader_边缘发光效果
- hadoop中map和reduce的数量设置问题
- (86)FPGA读文件激励(readmemh)
- Redis的主从复制和 哨兵模式
- 深度学习代码实战——基于RNN的时间序列拟合(回归)
- linux下建立无线wifi------简单实用!
- highcharts 时间少8小时问题
- django mysql secure_auth_MySQL8.0的用户密码加密方式Django2.1兼容。
- 安装python3-dev_linux安装python3
- 觅风易语言[11-20]
- 方位角的表示及示意图
- 5. 工业大数据典型应用
- 智能控制和计算机控制的区别,智能灯光控制系统与传统灯光系统有哪些区别?...
- Java集合这样子学习
- Android长度单位详解
- 设计模式学习--观察者模式(Observer Pattern)
- hdu1814 Peaceful Commission,2-sat
热门文章
- 仿站小工具下载目标网站
- c语言中的sfr16,Keil C51对C语言的关键词扩展之十六:sfr16
- 贝叶斯函数编程,测试男女性别数据
- rust超低配置补丁_Rust新增存在类型支持
- “有些委屈如果要一辈子背在身上,那我宁愿犯法。任何事情,你要给我一个说法,你不给我一个说法,我就给你一个说法。”
- P44:Math类型、函数
- 小学生数学测试软件编写分析,小学数学测试的质量分析
- odoo中的inherit模型属性继承及模型关系
- 《最强大脑第九季》C#手撸傅立叶残影题目
- 彩票模拟程序 [福利彩票-双色球] [体育彩票 - 大乐透]