数学建模--蒙特卡洛算法之电子管更换刀片寿命问题

news2024/9/20 10:40:46

目录

1.电子管问题重述

2.电子管问题分析

3.电子管问题求解

4.刀片问题重述

5.刀片问题分析

6.刀片问题求解


1.电子管问题重述

某设备上安装有4只型号规格完全相同的电子管,已知电子管寿命服从100~200h之间的均匀分布.

只要有一个电子管损坏,设备就不能工作。

电子管损坏时有两种维修方案:

一、是每次更换损坏的那只;

二、是当其中1只损坏时4只同时更换.

已知更换时间为换1只时需1h,4只同时更换为2h.

更换时机器因停止运转每小时的损失为20元,又每只电子管价格10元,试用模拟方法确定哪一个方案经济合理?

这个里面是出现了两个方案,方案一就是每一次只用去更换掉损坏的那一个;

第二个方案就是当一个损坏的时候,全部更换掉;

这个里面无论是方案一还是方案二,都会产生一个停止运转(更换时间以内)的损失问题,我们要综合考虑这个更换成本和更换损失,计算出这个最经济的方案(就是两个的和最小,即损失加成本的和最小);

2.电子管问题分析

我们在分析问题的时候就去建立这个对应的数学模型,对于这个出现在模型里面的变量代表的含义,我们一定要搞清楚,这个对于我们的后续代码的编写很重要;

我们的这个思路就是去使用成本加上这个换电子管的损失费用之和相比较,费用低的就是经济的选择,c表示的就是一个电子管的更换成本,f表示每次更换的时候的损失成本,肯呢个有些同学会好奇这个里面的n代表的实际意义是什么,实际上这个n表示的是一个次数,下面我们细讲一下;

我们标题就说了,这个里面的两个问题就是蒙特卡洛算法的问题,而我们的蒙特卡洛算法的实质就是多次模拟,实际上这个关系是这样的:仿真模拟问题里面有很多的案例,这个蒙特卡洛算法就是这个里面的一种仿真模拟的方法,两个的实质很相似,都是多次模拟;

而我们写的这个四个人相互追逐的问题也属于方仿真问题,只不过这个属于过程仿真,需要我们在坐标系里面去解决,他们两个的关系就是下面的图里面的展示结果;

理清了关系,我们介绍思路,这个电子管问题涉及到了时间,我们却要进行多次仿真模拟,这个时候,我们就可以设置一个较长的时间,在这个实际上里面会进行多次的仿真模拟,但是也是会有一些不在这个范围里面,比如一个小写的数据,就1000小时,我们在这个时间里面进行模拟多次,可能有些电子管在这个时间的最后没有完全完成更换,就是这个时间可能不会完全使用完毕,我们只需要计算这个时间里面的完整电子管的相关费用即可,具体到matlab代码里面就是使用length函数求解一个向量的长度,这个长度就是我们这个图片里面的n的数值;

3.电子管问题求解

clc
clear
c=10;  %单个电子管的价格
f=20;  %单位时间的更换损失
ct1=1; %方案1的更换时间
ct2=2; %方案2的更换时间


T=10000;%仿真观测时间

tic %开始计时

for i=1:1000  %仿真次数
    R=100+100*rand(4,100); %模拟产生4乘100只电子管的寿命
    t=cumsum(R,2);          %转换为时间轴的时刻

    %按照方案1计算成本
    tt1=sort(reshape(t,1,[])); %将所有的故障时刻转换到同一时间轴 并排序
    t1=tt1(find(tt1<=T));      %筛选出截止时间T以内的数据
    C1(i)=length(t1)*(c+f*ct1);  %方案1的总成本

    %%按照方案2计算成本
    tt2=cumsum(min(R));     %每次找到寿命最短的电子管更换
    t2=tt2(find(tt2<=T));  %筛选出截止时间T以内的数据
    C2(i)=length(t2)*(4*c+f*ct2); %方案2的成本
end

MC1=mean(C1)
MC2=mean(C2)
toc  %结束计时

这个代码里面有很清楚的注释,下面简单的说明几点:

***length(t1)这些就是我们的分析里面说到的,选出来这个有效时间里面的数据的个数,作为我们的n的具体的数值;

***这个里面实际上是绘制的这个模拟过程的时间轴,就是把每一个灯管做成一个时间轴,每一次进行模拟的时候都会进行累积的,我们最后的mean函数再去求解这个平均值;

***rand函数就是生成的随机数,只不过这个里面是有4灯管,每一个模拟次数是100次,总共的模拟时间就是10000小时;

***R是电子管的寿命的具体的数值,这个我们如何去进行时间轴的转换呢,就是使用的cumsum函数,这个函数的第一个参数R就是寿命的时间长短,2表示行方向上进行求和;

***就是每一个电子管在模拟时间里面多次进行更换,我们cumsum参数2就是行方向求和(默认的话就是列方向求和),这样的话每一个电子管的使用寿命时长就会累加,产生一个类似于时间轴的效果;

4.刀片问题重述

5.刀片问题分析

上面这个刀片问题,很多人无法理解(最开始的时候我自己想了很长时间都想不明白),为了帮助大家理解这个问题,下面通过一个简单的图形帮助大家去理解问题:

就是我们有很多的刀片,我们可能在一个时间去更换他,但是这个刀片的寿命是不一样的,有的长,有的短,我们如果过早地更换,可能这个刀片产生的利润就不是很多,但是时间过长的话,我们的利润多,可能会使得一些刀片损坏而产生损失的费用,比如,我们把这个更换周期设置为T1,这个时候只有刀片11会产生损失,其他的都是产生的利润,更换周期变长之后,这个利润会变多,例如T2,但是损坏的刀片的数量也会变多,这个损失费用也会变大,这个也有优化问题的成分,让我们去求解利润最大的时候的更换时间,相当于是一个最优解;

6.刀片问题求解

我们在这个过程里面有很多的中间变量,为了帮助大家理解,我把这个相关的中间结果也展示在了实时脚本里面;

下面是代码:

clc
clear
N=10000;  %%刀具数目为N
RC=10:10:1000; %%设定状态变化量离散点 刀具使用时间

for j=1:100     %%设定仿真次数

   for i=1:length(RC)  %%不同的更换周期

      R=normrnd(500,100,1,N);  %%产生正态分布随机数
      RR=R;                 %%用于记录R的原始值
      Rc=RC(i);             %%读取第i个刀具更换周期
      r=find(R>Rc);         %%查询寿命大于设定更换周期的刀具序号

      RR(r)=Rc;      %%替换为每把刀具的实际加工时间,RR代表了所有刀具的实际加工时间
      n1=length(r);  %%寿命大于设定时间的刀具
      n2=N-n1;       %%寿命小于设定时间的刀具
      get=sum(RR)*10;   %%计算毛收益
      lost=n2*3000;     %%计算危害损失
      get2(i,j)=get-lost;  %%计算净收益
    end
end

figure
plot(RC,mean(get2'))
xlabel('刀具更换周期/h')
ylabel('净收益')
g=mean(get2');
k=find(g==max(g))
RC(k)

***这个里面的normrnd函数,第一个参数是均值,第二个是方差,1,N表示的就是1行N列的矩阵

***find函数查找的就是寿命长,没有损坏的刀片,把这个更换的时间作为其实际工作时间去更新数据矩阵;

***mean函数求解平均值,默认的话就是对于列求解平均值,其他的注释都很清楚,这里不再赘述,有问题欢迎评论区或者私信留言~~

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

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

相关文章

P5677 [GZOI2017] 配对统计(线段树爆改莫队)

[GZOI2017] 配对统计 - 洛谷 贵州的省选&#xff0c;线段树代码太长了&#xff0c;直接莫队启动。 时间复杂度O&#xff08;n sqrt(n)&#xff09; 加了个奇偶优化。 先按块排左指针。 同一块内右指针按照块的编号奇偶性决定升序或者降序。 核心思路 拓展左右指针 或者…

【Linux】(32)详解命名管道 | 日志管理 | 进程池2.0

目录 1. 介绍 2. 理解 3.运用 3.1 简易通信 makefile comm.hpp server.cc &#xff08;服务端&#xff0c;读取显示&#xff09; client.cc (客户端&#xff0c;写入&#xff09; 3.2 日志 log.hpp 1. 定义日志级别 2. 实现日志函数 可变参数 3. 日志输出管理 3…

【经验分享】快速制图 AI + Mermaid

文章目录 【经验分享】快速制图 AI Mermaid使用教程选图改Prompt出图 【经验分享】快速制图 AI Mermaid 使用教程 选图 在Mermaid的Diagram Syntax中&#xff0c;选择需要转换的样式图&#xff0c;复制对应的示例代码&#xff1a; 改Prompt 请根据这份文档帮我制作一份…

镜舟科技与西南证券合作,构建极速、高效数据平台

《金融科技发展规划&#xff08;2022-2025年&#xff09;》明确了高质量推进金融数字化转型的总体思路&#xff0c;云计算、人工智能等新兴技术开始被广泛应用&#xff0c;提升金融服务的便捷性&#xff0c;但随着日益增长的数据体量&#xff0c;数据的存储和处理能力日渐。 数…

【前 K 个高频元素】python刷题记录

R4-排序篇 class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:#使用哈希表记录值&#xff0c;再sortdictdefaultdict(int)ret[]for num in nums:dict[num]1thesorted(dict.keys(),keylambda x:dict[x], reverseTrue)for i in range(k):ret.appe…

python-docx-template实现docx模板编程

1、python-docx-template简介 python-docx库来创建word文档&#xff0c;但是对于文档的修改功能并不灵活。python-docx-template 模块主要依赖两个库&#xff0c; python-docx用于读取&#xff0c;编写和创建子文档 &#xff0c; jinja2用于管理插入到模板docx中的标签 。 其基…

90天SSL证书时代来临的应对策略-SSL证书自动化运维

SSL证书有效期长期以来都是网络安全专业人士关注的重点&#xff0c;尤其是去年3月Google在CA/B论坛投票提案中提议将SSL证书的有效期限制在90天之后&#xff0c;毕竟这对高度依赖手动管理证书的企业影响巨大。本文将概述对证书有效期缩短的理解以及应对策略。 90天是最终的有效…

Opencv-绘制几何图形

1. 绘制圆形 1.1 circle()函数原型 void cv::circle(InputOutputArray img, Point center, int radius, const Scalar & color, int thickness 1, int lineType LINE_8, int shift 0 ) img&#xff1a;需要绘制圆形的图像。 center&#xff1a;圆形的圆心位置坐标。 …

Python中的 `continue` 语句:掌握循环控制的艺术

Python中的 continue 语句&#xff1a;掌握循环控制的艺术 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通…

国产数据库备份恢复实现

数据库备份恢复是数据库高可用的基本能力&#xff0c;如何通过备份数据快速高效的恢复业务并且满足不同场景下的恢复需求&#xff0c;是各数据库厂商需要关注的要点。本文将介绍几种国产数据库的备份恢复功能&#xff0c;以加深了解。 1、数据库备份恢复方案 数据库备份是生产…

为什么选择在Facebook投放广告?

2024年了你还没对 Facebook 广告产生兴趣&#xff1f;那你可就亏大了&#xff01; 今天这篇文章&#xff0c;我们会分享它对你扩大业务的好处。要知道&#xff0c;Facebook 广告凭借它庞大的用户群和先进的定位选项&#xff0c;已经是企业主们有效接触目标受众的必备神器。接下…

<数据集>固定视角监控牧场绵羊识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3615张 标注数量(xml文件个数)&#xff1a;3615 标注数量(txt文件个数)&#xff1a;3615 标注类别数&#xff1a;1 标注类别名称&#xff1a;[Sheep] 序号类别名称图片数框数1Sheep361529632 使用标注工具&#…

leetcode26_删除有序数组中的重复项

思路 双指针 func removeDuplicates(nums []int) int {if len(nums) < 2 {return len(nums)}// 双指针//区间 [0, slow] 代表已遍历且不重复元素//区间 [fast,len(nums)) 代表还未遍历的元素slow, fast : 0,1for ;fast < len(nums);{if nums[slow] ! nums[fast] {slown…

DICT运维服务目录

1、CT类项目或交付物的运维工作由网络条线负责,相关工作的SLA、流程、职责划分等按网络条线的相关制度执行 2、本服务目录主要面向IT部分的运维工作IT模式分类一级服务名称二级服务名称服务内容服务目标服务指标服务指标目标值建议工作结果呈现基础运维包增值服务指标参考费用…

【Qt】多种控件实现“hello world“

使用编辑框的方式实现"hello wordl" 使用编辑框实现"hello world"的方式有俩种&#xff1a; 单行编辑框&#xff1a;LineEdit多行编辑框&#xff1a;TextEdit 图形化界面 纯代码方式 代码展示&#xff1a; #include "widget.h" #include &qu…

Domcomp:省心好用的国外域名比价网站

先简单播报下今日奥运热点&#xff1a;1、金牌榜&#xff1a;中国29枚暂列第二&#xff1b;2、赛事预告&#xff1a;21&#xff1a;00央视5套乒乓男团决赛。言归正传&#xff0c;话说域名注册商Dynadot和NameSilo虽性价比较高&#xff0c;但也不能说域名价格每时每刻都是最低的…

RT-Thread 操作系统 之 线程间同步 IO设备模型

RT-Thread 操作系统 之 线程间同步 IO设备模型 一、线程间同步1.1、信号量1.1.1、信号量结构体1.1.2、信号量的使用和管理1.1.3、信号量同步例程 1.2、互斥量1.2.1、互斥量的使用和管理 1.3、事件集1.3.1、事件集使用和管理方法1.3.2、事件集三个线程同步实例 二、IO设备模型2.…

云手机在海外社交媒体运营中的作用

随着社交媒体的全球普及&#xff0c;海外社交媒体运营成为众多企业与个人提升品牌影响力和扩大市场份额的重要策略。在这一进程中&#xff0c;海外云手机以其独特的功能&#xff0c;为海外社交媒体运营提供了强大的支持。 那么&#xff0c;海外云手机在海外社交媒体运营中究竟扮…

UCOSIII的任务管理详解

前言 对于操作系统而言&#xff0c;最重要的就是任务的创建、挂起、删除和调度等&#xff0c;简单的创建任务可能大家都会&#xff0c;但是做大型项目的话&#xff0c;任务多了就可能需要对UCOSIII的任务管理做更深层次的一些理解。 一、任务状态 UCOSIII是单核系统&#xff…

【网络】协议,OSI参考模型,局域网通信,跨网络通信

1.协议 1.1.什么是协议/协议的由来&#xff1f; 这个就要回到我们说的阿帕网了&#xff01;&#xff01; 在阿帕网&#xff08;ARPA&#xff09;产生运作之初&#xff0c;通过接口信号处理机实现互联的电脑并不多&#xff0c;大部分电脑相互之间不兼容。 在一台电脑上完成的工…