【管理运筹学】第 8 章 | 动态规划(5,设备更新问题)

系列文章

【管理运筹学】第 8 章 | 动态规划(1,多阶段决策过程与动态规划基本概念)
【管理运筹学】第 8 章 | 动态规划(2,动态规划的基本思想与模型求解)
【管理运筹学】第 8 章 | 动态规划(3,资源分配问题)
【管理运筹学】第 8 章 | 动态规划(4,生产与储存问题)
【管理运筹学】第 8 章 | 动态规划(5,设备更新问题)

文章目录

  • 系列文章
  • 引言
  • 五、设备更新问题
    • 5.1 问题分析
    • 5.2 算例
  • 写在最后


引言

在工业和交通运输企业中,经常碰到设备陈旧或部分损坏需要更新的问题。从经济上来分析,一种设备应该用多少年后进行更新较为恰当,即更新的最佳策略如何,从而使在某一时间内的总收入达到最大(或总费用达到最小)。


五、设备更新问题

现以一台机器为例,随着使用年限的增加,机器的使用效率降低,收入减少,维修费用增加。而且机器使用年限越长,它本身的价值就越小,因而更新时所需的净支出费用就愈多。

I j ( t ) I_j(t) Ij(t) —— 在第 j j j 年机器役龄为 t t t 年的一台机器运行所得收入; O j ( t ) O_j(t) Oj(t) —— 在第 j j j 年机器役龄为 t t t 年的一台机器运行所需费用; C j ( t ) C_j(t) Cj(t) —— 在第 j j j 年机器役龄为 t t t 年的一台机器更新时所需净费用;

α \alpha α —— 折扣因子( 0 ≤ α ≤ 1 0\leq \alpha \leq 1 0α1),表示 1 年以后的单位收入价值视为现年的 α \alpha α 单位; T T T —— 在第 1 年开始时,正在使用的机器的役龄; n n n —— 计划的年限总数;

g j ( t ) g_j(t) gj(t) —— 在第 j j j 年开始使用一个机器役龄为 t t t 年的机器时,从第 j j j 年至第 n n n 年内的最佳收入; x j ( t ) x_j(t) xj(t) —— 决策变量,表示在第 j j j 年开始时的决策。

5.1 问题分析

可以从两个方面对问题进行分析。若在第 j j j 年开始时购买了新机器,则从第 j j j 年至第 n n n 年得到的总收入应等于:在第 j j j 年中新机器获得的收入 — 在第 j j j 年的运行费用 — 在第 j j j 年开始时役龄为 t t t 年的机器的更新费用 + 第 j + 1 j+1 j+1 年开始使用役龄为 1 年的机器从第 j + 1 j+1 j+1 年至第 n n n 年的最佳收入。

若在第 j j j 年开始时继续使用役龄为 t t t 年的机器,则从第 j j j 年至第 n n n 年得到的总收入应等于:在第 j j j 年由役龄为 t t t 年的机器得到的收入 — 在第 j j j 年役龄为 t t t 年的机器的运行费用 + 在第 j + 1 j+1 j+1 年开始使用役龄为 t + 1 t+1 t+1 年的机器从第 j + 1 j+1 j+1 年至第 n n n 年的最佳收入。

通过比较两者大小来进行决策,则递推关系的数学表达如下: g j ( t ) = max ⁡ { R : I j ( 0 ) − O j ( 0 ) − C j ( t ) + α g j + 1 ( 1 ) K : I j ( t ) − O j ( t ) + α g j + 1 ( t + 1 ) } g_j(t)=\max \begin{Bmatrix} R:&I_j(0)-O_j(0)-C_j(t)+\alpha g_{j+1}(1) \\ K:& I_j(t)-O_j(t)+\alpha g_{j+1}(t+1)\end{Bmatrix} gj(t)=max{R:K:Ij(0)Oj(0)Cj(t)+αgj+1(1)Ij(t)Oj(t)+αgj+1(t+1)} 其中, j = 1 , 2 , ⋯ , n ; t = 1 , 2 , ⋯ , j − 1 , j + T − 1 j=1,2,\cdots,n;t=1,2,\cdots,j-1,j+T-1 j=1,2,,n;t=1,2,,j1,j+T1 ;字母 K K K 表示 keep ,保留;字母 R R R 表示 replacement ,更新机器。更新机器需要支付更新费用。

研究今后 n n n 年的计划,故添加边界条件 g n + 1 ( t ) = 0 g_{n+1}(t)=0 gn+1(t)=0 ;对于 g 1 ( t ) g_1(t) g1(t) 来说,允许的 t t t 值只能为 T T T ,因此此时未购入新机器,只有已经使用了 T T T 年的旧机器。

上述设备更新问题,是以机龄为状态变量,决策时保留或更新两种。如还考虑对机器进行大修作为一种决策,那时所需的费用和收入,不仅取决于机龄和购置的年限,也取决于上次大修后的时间。因此,必须使用两个状态变量对系统进行描述。

5.2 算例

】假设 n = 5 , α = 1 , T = 1 n=5,\alpha=1,T=1 n=5,α=1,T=1 ,有关数据如下表所示。试制定 5 年内中的设备更新策略,使得 5 年内的总收入达到最大。

在这里插入图片描述

解释一下表中数据的意思。第 j j j 年机龄为 t t t 年的机器,那么它的年序应该为 j − t j-t jt 。因为第 j j j 年的时候,这台机器就已经使用了 t t t 年,说明它是第 j − t j-t jt 年首次开始工作的。那么 I 5 ( 0 ) I_5(0) I5(0) 表示第 5 年的新机器运行的收入,查表,年序为 5-0=5 ,是 32 。 I 3 ( 2 ) I_3(2) I3(2) 表示第 3 年机龄为 2 年的机器运行所得收入,那么查表,3-2=1,第一年中机龄为 2 年的收入 20 。同理,有 C 5 ( 2 ) = 33 , C 3 ( 1 ) = 31 C_5(2)=33,C_3(1)=31 C5(2)=33,C3(1)=31 ,其余以此类推。

j = 5 j=5 j=5 ,即第 5 年时,由于 T = 1 T=1 T=1 ,说明第一年时的机器机龄就有 1 年了,那么第 5 年状态变量机龄 t t t 可取 { 1 , 2 , 3 , 4 , 5 } \{1,2,3,4,5\} {1,2,3,4,5} 。根据递推关系有 g 5 ( t ) = max ⁡ { R : I 5 ( 0 ) − O 5 ( 0 ) − C 5 ( t ) + g 6 ( 1 ) K : I 5 ( t ) − O 5 ( t ) + g 6 ( t + 1 ) } g_5(t)=\max \begin{Bmatrix} R:&I_5(0)-O_5(0)-C_5(t)+g_{6}(1) \\ K:& I_5(t)-O_5(t)+g_{6}(t+1)\end{Bmatrix} g5(t)=max{R:K:I5(0)O5(0)C5(t)+g6(1)I5(t)O5(t)+g6(t+1)} 可得到 g 5 ( 1 ) = max ⁡ { R : 32 − 4 − 33 + 0 = − 5 K : 28 − 5 + 0 = 23 } = 23 , x 5 ( 1 ) = K g_5(1)=\max \begin{Bmatrix} R:&32-4-33+0=-5 \\ K:& 28-5+0=23\end{Bmatrix}=23,x_5(1)=K g5(1)=max{R:K:32433+0=5285+0=23}=23,x5(1)=K g 5 ( 2 ) = max ⁡ { R : 32 − 4 − 33 + 0 = − 5 K : 24 − 6 + 0 = 18 } = 18 , x 5 ( 2 ) = K g_5(2)=\max \begin{Bmatrix} R:&32-4-33+0=-5 \\ K:& 24-6+0=18\end{Bmatrix}=18,x_5(2)=K g5(2)=max{R:K:32433+0=5246+0=18}=18,x5(2)=K g 5 ( 3 ) = max ⁡ { R : 32 − 4 − 36 + 0 = − 8 K : 22 − 9 + 0 = 13 } = 13 , x 5 ( 3 ) = K g_5(3)=\max \begin{Bmatrix} R:&32-4-36+0=-8 \\ K:& 22-9+0=13\end{Bmatrix}=13,x_5(3)=K g5(3)=max{R:K:32436+0=8229+0=13}=13,x5(3)=K g 5 ( 4 ) = max ⁡ { R : 32 − 4 − 37 + 0 = − 9 K : 16 − 10 + 0 = 6 } = 6 , x 5 ( 4 ) = K g_5(4)=\max \begin{Bmatrix} R:&32-4-37+0=-9 \\ K:& 16-10+0=6\end{Bmatrix}=6,x_5(4)=K g5(4)=max{R:K:32437+0=91610+0=6}=6,x5(4)=K g 5 ( 5 ) = max ⁡ { R : 32 − 4 − 38 + 0 = − 10 K : 14 − 10 + 0 = 4 } = 4 , x 5 ( 5 ) = K g_5(5)=\max \begin{Bmatrix} R:&32-4-38+0=-10 \\ K:& 14-10+0=4\end{Bmatrix}=4,x_5(5)=K g5(5)=max{R:K:32438+0=101410+0=4}=4,x5(5)=K j = 4 j=4 j=4 ,第 4 年时,状态变量可取 { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4} ,有 g 4 ( 1 ) = max ⁡ { R : 30 − 4 − 32 + 23 = 17 K : 26 − 5 + 18 = 39 } = 39 , x 5 ( 1 ) = K g_4(1)=\max \begin{Bmatrix} R:&30-4-32+23=17 \\ K:& 26-5+18=39\end{Bmatrix}=39,x_5(1)=K g4(1)=max{R:K:30432+23=17265+18=39}=39,x5(1)=K 同理,有 g 4 ( 2 ) = 29 , x 4 ( 2 ) = K ; g 4 ( 3 ) = 16 , x 4 ( 3 ) = K ; g 4 ( 4 ) = 13 , x 4 ( 4 ) = R . g_4(2)=29,x_4(2)=K;g_4(3)=16,x_4(3)=K;g_4(4)=13,x_4(4)=R. g4(2)=29,x4(2)=K;g4(3)=16,x4(3)=K;g4(4)=13,x4(4)=R.

j = 3 j=3 j=3 时,状态变量可取 { 1 , 2 , 3 } \{1,2,3\} {1,2,3} ,有 g 3 ( 1 ) = 48 , x 3 ( 1 ) = K ; g 3 ( 2 ) = 31 , x 3 ( 2 ) = R ; g 3 ( 3 ) = 27 , x 3 ( 3 ) = R ; g_3(1)=48,x_3(1)=K;g_3(2)=31,x_3(2)=R;g_3(3)=27,x_3(3)=R; g3(1)=48,x3(1)=K;g3(2)=31,x3(2)=R;g3(3)=27,x3(3)=R;

j = 2 j=2 j=2 时,状态变量可取 { 1 , 2 } \{1,2\} {1,2} ,有 g 2 ( 1 ) = 46 , x 2 ( 1 ) = K ; g 2 ( 2 ) = 36 , x 2 ( 2 ) = R . g_2(1)=46,x_2(1)=K;g_2(2)=36,x_2(2)=R. g2(1)=46,x2(1)=K;g2(2)=36,x2(2)=R.

j = 1 j=1 j=1 时,状态变量可取 { 1 } \{1\} {1} ,有 g 1 ( 1 ) = max ⁡ { R : 22 − 6 − 32 + 46 = 30 K : 18 − 8 + 36 = 46 } = 46 , x 1 ( 1 ) = K . g_1(1)=\max \begin{Bmatrix} R:&22-6-32+46=30 \\ K:& 18-8+36=46\end{Bmatrix}=46,x_1(1)=K. g1(1)=max{R:K:22632+46=30188+36=46}=46,x1(1)=K. 最后,根据上面的计算结果回溯。第一年,机龄为 1 年,最佳策略为保留;第二年,机龄为 2 年,最佳策略为更新;第三年,机龄变为 1 年,最佳策略为保留;第四年,机龄为 2 年,最佳策略为保留;第五年,机龄为 3 年,最佳策略为保留。


写在最后

设备更新问题确实不简单,很有实际意义,不过,只要正确建好了模型,剩下的就是代数字进去算。回忆一下之前的生产与储存问题和资源分配问题,顿时感觉小巫见大巫了。

那到此,大纲要求的三个问题,到此就完结了,后面我们就来看看剩下的两章节内容。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL进阶 —— 超详细操作演示!!!(下)

MySQL进阶 —— 超详细操作演示!!!(下) 五、锁5.1 概述5.2 全局锁5.3 表级锁5.4 行级锁 六、InnoDB 引擎6.1 逻辑存储结构6.2 架构6.3 事务原理6.4 MVCC 七、MySQL 管理7.1 系统数据库7.2 常用工具 MySQL— 基础语法大…

基于蜉蝣优化的BP神经网络(分类应用) - 附代码

基于蜉蝣优化的BP神经网络(分类应用) - 附代码 文章目录 基于蜉蝣优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蜉蝣优化BP神经网络3.1 BP神经网络参数设置3.2 蜉蝣算法应用 4.测试结果:5.M…

【C++】设计模式之——建造者

建造者模式概念模拟实现建造者模式代码实现 建造者模式 首先先大体了解一下,建造者模式是什么意思,它是怎么实现的? 首先,建造者模式是一种创建型设计模式再一个它是使用多个简单的对象一步一步的搭建出一个复杂的对象它可以将一个…

基于蚁狮优化的BP神经网络(分类应用) - 附代码

基于蚁狮优化的BP神经网络(分类应用) - 附代码 文章目录 基于蚁狮优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蚁狮优化BP神经网络3.1 BP神经网络参数设置3.2 蚁狮算法应用 4.测试结果:5.M…

第81步 时间序列建模实战:Adaboost回归建模

基于WIN10的64位系统演示 一、写在前面 这一期,我们介绍AdaBoost回归。 同样,这里使用这个数据: 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndr…

react create-react-app 配置less

环境信息: create-react-app:v5 react:18.2.0 node:18.16.0 如果你不必须使用 less 建议直接使用scss。 因为less配置会遇到很多问题。 配置less过程: 如果你只需要 sass的话,就可以直接使用sass。因为默认配置了scss。 npm、yarn、cnpm、…

【算法训练-二分查找 一】二分查找、在排序数组中查找元素的第一个和最后一个位置

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是螺旋矩阵,使用【二维数组】这个基本的数据结构来实现 二分查找【EASY】 从最简单的二分查找入手,进而开始解决一系列其变体…

【C语言】【动态内存管理】malloc,free,calloc,realloc

1.malloc函数 void* malloc(size_t size)功能&#xff1a;向内存申请字节为 size大小的空间 使用时要包含头文件&#xff1a;<stdlib.h> 开辟成功&#xff1a;返回开辟好的空间初始地址的指针 开辟失败&#xff1a;返回空指针 NULL 使用举例&#xff1a; (malloc和free…

你写过的最蠢的代码是?——后端篇

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

k8s全栈-笔记6-Prometheus+Alertmanager构建监控系统

k8s全栈-笔记6-PrometheusAlertmanager构建监控系统 实验环境: Pormetheusgrafanaalertmanager安装在k8s集群,k8s环境如下 K8S集群角色IP主机名安装的组件控制节点(master)172.20.252.181k8s-master01apiserver,controller-manager,schedule,kubelet,etcd,kube-proxy,容器运…

国庆中秋特辑(六)大学生常见30道宝藏编程面试题

以下是 30 道大学生 Java 面试常见编程面试题和答案&#xff0c;包含完整代码&#xff1a; 什么是 Java 中的 main 方法&#xff1f; 答&#xff1a;main 方法是 Java 程序的入口点。它是一个特殊的方法&#xff0c;不需要被声明。当 Java 运行时系统执行一个 Java 程序时&…

安全基础 --- MySQL数据库的《锁》解析

MySQL的ACID &#xff08;1&#xff09;ACID是衡量事务的四个特性 原子性&#xff08;Atomicity&#xff0c;或称不可分割性&#xff09;一致性&#xff08;Consistency&#xff09;隔离性&#xff08;Isolation&#xff09;持久性&#xff08;Durability&#xff09; &…

Python学习笔记之运算符的使用

Python学习笔记之运算符的使用 整型&#xff1a;二进制0b100十进制4、八进制0o100十进制64、十进制100、十六进制0x100十进制256浮点型&#xff1a;123.456&#xff0c;1.23456e2字符串型&#xff1a;‘Hello’&#xff0c;“Hello”布尔型&#xff1a;True、False复数型&…

Postgresql源码(114)视图权限授予逻辑

0 速查 被授权的对象在系统表中记录授权信息&#xff0c;例如pg_namespace中的nspacl列&#xff1a; {mingjieUC/mingjie,UC/mingjie,pusr1UC/mingjie}pusr1UC/mingjie的含义&#xff1a; mingjie是赋予者pusr1是被赋予者UC是权限&#xff0c;表示USAGE和CREATE 1 视图权限…

PHP 反序列化漏洞:身份标识

文章目录 参考环境访问修饰符访问修饰符PHP 与访问修饰符 手写身份标识身份标识定义身份标识控制字符 NUL在 PHP 中如何表示空字符&#xff1f; 通过空字符尝试构建包含非公共属性对象的序列化文本 空字符的传输控制字符的不可打印性结论另辟蹊径URL 字符编码将非 ASCII 字符文…

SpringBoot整合RocketMQ笔记

SpringBoot版本为2.3.12.Release RocketMQ对比kafka 学习链接 https://zhuanlan.zhihu.com/p/335216381 代码实战 https://www.cnblogs.com/RedOrange/p/17401238.html Centos安装rocketmq https://blog.csdn.net/chuige2013/article/details/123783612 RocketMQ详细配置与…

C++——继承

继承的概念 在C&#xff0c;继承是一种可以代码复用的重要手段&#xff0c;它允许一个类继承另一个类的属性和方法。继承可以实现类之间的层次关系&#xff0c;提供代码重用和多态性有关的功能。同时&#xff0c;C支持多重继承&#xff0c;即一个类可以继承多个基类的特性 继…

123. 买卖股票的最佳时机 III

给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前出售掉之前的股票&#xff09;。 Ans:思路&#x…

OpenCV 实现 SIFT→SURF 算法关键点检测实现

目录 1&#xff0c;SIFT算法原理 1.1&#xff0c;基本流程 1.1.1 尺度空间极值检测 1.1.2 关键点定位 1.1.3 关键点方向确定 1.1.4 关键点描述 1.1.5 总结 1.2 SURF原理 2 代码实现 3 结果展示 4&#xff0c;你肯定会遇到报错 cv2.error: OpenCV(3.4.8) C…

网络摄像头(IPC)介绍:类型、供电、镜头、夜视等

IPC&#xff08;Internet Protocol Camera&#xff0c;网络摄像头&#xff09;&#xff0c;它是一种由传统摄像机与网络技术结合所产生的新一代摄像机。它可以将视频、音频、报警及控制信号通过网络传输&#xff0c;接受网络监控主机&#xff08;NVR或监控管理平台&#xff09;…