强化学习三大基本方法-DP、MC、TD
强化学习进阶
- 本文主要讲解
- 动态规划法(Dynamic Programming DP)
- 蒙特卡洛法(Monte Carlo MC)
- 时序差分法(Temporal Difference TD)
1. 动态规划法
1.1 动态规划概念
-
动态规划核心思想:
- 其核心思想在于复杂问题的最优解划分为多个小问题的最优解的求解问题,就像递归一样,且子问题的最优解会被储存起来重复利用。
-
动态规划方法在强化学习中使用:
- 在已知状态转移概率和奖励函数的前提下,通过反复更新值函数,找到最优策略的方法
1.2 动态规划法的使用
-
动态规划的前提:
-
环境是一个已知的马尔可夫决策过程(MDP),必须知道:
-
状态集合 S \mathcal{S} S
-
动作集合 A \mathcal{A} A
-
状态转移概率: P ( s ′ ∣ s , a ) P(s'|s,a) P(s′∣s,a)
-
奖励函数: R ( s , a , s ′ ) R(s,a,s') R(s,a,s′)
-
-
在强化学习中,我们的目标是最大化累计奖励。
- 相当于当知道奖励函数和状态转换函数时,便可以根据下一个状态的价值来更新当前状态的价值
- 即可以把计算下一个可能状态的价值当成一个子问题,而把计算当前状态的价值看做当前问题
-
DP 的核心思想是:
- 把求解整个最优策略的问题,分解为求解每个状态最优值的子问题。
-
这就符合动态规划的精髓:最优子结构 + 重叠子问题。
-
1.2.1 方法一:策略迭代
1.2.1.1 策略评估(Policy Evaluation)
-
给定一个策略 π \pi π,估计每个状态 s s s 的值函数 V π ( s ) V^\pi(s) Vπ(s)
-
公式如下(贝尔曼期望方程):
V π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ V π ( s ′ ) ] V^\pi(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V^\pi(s')] Vπ(s)=a∑π(a∣s)s′∑P(s′∣s,a)[R(s,a,s′)+γVπ(s′)]- 用这个公式反复更新所有状态的 V π ( s ) V^\pi(s) Vπ(s),直到收敛。
1.2.2.2 策略改进(Policy Improvement)
-
有了 V π ( s ) V^\pi(s) Vπ(s) 之后,我们可以生成一个“更贪心”的策略。
-
做法:对每个状态 s s s,选择能使 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a) 最大的动作:
KaTeX parse error: Can't use function '$' in math mode at position 2: $̲\pi'(s) = \arg\…- 也就是:让策略尽可能选“更高价值”的动作。
1.2.2.3 策略迭代(Policy Iteration)
-
将上面两个步骤交替执行:
-
初始化一个策略 π \pi π
-
重复直到收敛:
-
策略评估:根据当前策略估算 V π ( s ) V^\pi(s) Vπ(s)
-
策略改进:更新策略 π ← π ′ \pi \leftarrow \pi' π←π′
-
-
-
最终会收敛到一个最优策略 π ∗ \pi^* π∗。
1.2.2.4 算法流程图
初始化 π
重复:1. 用 DP 做策略评估(多个循环直到 V 收敛)2. 用贪心策略改进 π ← π'
直到 π 不再变化
1.2.2 方法二:值迭代
-
不显式做策略评估,而是直接用 Bellman 最优方程迭代值函数
-
核心公式:
V ( s ) ← max a ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ V ( s ′ ) ] V(s) \leftarrow \max_a \sum_{s'} P(s'|s,a) [R(s,a,s') + \gamma V(s')] V(s)←amaxs′∑P(s′∣s,a)[R(s,a,s′)+γV(s′)]- 每一步就朝着最优值推进,不需要再等策略完全评估完成。
-
算法流程图
初始化 V(s) 随便设 重复直到收敛:对每个 s:V(s) ← max_a Σ_s' P(s'|s,a) [R + γ V(s')] 最终通过 V 生成最优策略 π*(s) = argmax_a ...
1.3 方法的优缺点
-
优点
-
收敛快、稳定性强
- 利用完整的模型计算,可以精确推导价值函数的收敛。
-
可得最优策略
- 理论上保证找到最优值函数和策略。
-
结构清晰
- 策略评估+策略改进,逻辑明确,适合 理论推导和分析。
-
-
缺点
-
必须知道模型
- 很多实际问题中,环境状态转移和奖励函数是未知的,无法使用 DP。
-
计算量大,不适合大规模状态空间
- 每次更新都需要对所有状态和动作进行遍历计算。
-
不能从真实交互中学习
- 只能在离线已知模型上操作,不适合实际交互式学习。
-
-
以下是从参考文章中补充的数学推导
2. 蒙特卡洛法
2.1 蒙特卡洛方法概述
-
概念
- 蒙特卡洛(monte carlo,简称MC)方法,也称为统计模拟方法,就是通过大量的随机样本来估算或近似真实值,比如近似估算圆的面经、近似定积分、近似期望、近似随机梯度
-
强化学习中的应用
-
类似上面的例子,用蒙特卡洛方法来估计一个策略在一个马尔可夫决策过程中的状态价值。
-
考虑到一个状态的价值是它的期望回报,我们用策略在MDP上采样很多条序列,然后计算从这个状态出发的回报,再求其期望: V π ( s ) = E π [ G t ∣ S t = s ] = 1 N ∑ i = 1 N G t ( i ) V_\pi (s) = E_\pi [G_t|S_t = s] = \frac{1}{N} \sum_{i=1}^{N}G_{t}^{(i)} Vπ(s)=Eπ[Gt∣St=s]=N1∑i=1NGt(i)
-
通俗定义
- 蒙特卡洛方法是通过多次试验采样完整轨迹,然后用这些轨迹中的实际回报来估计状态或动作的价值,从而改进策略。
-
2.2 蒙特卡洛方法使用
2.2.1 策略评估阶段
-
在这一步,我们只是评估当前策略 π \pi π 的效果,不改变它。
-
流程如下:
-
固定策略 π \pi π,用它与环境交互,采样多次轨迹。
-
从每条轨迹中收集回报 G t G_t Gt,估计每个状态 s s s 或状态-动作对 ( s , a ) (s, a) (s,a) 的价值(即 V ( s ) V(s) V(s) 或 Q ( s , a ) Q(s, a) Q(s,a))。
-
此阶段策略是人为设定或初始定义的,不会改变。
-
-
举例
- 「每次都往右走多一点」是当前策略,那你就照这个策略模拟很多次,把每个点走后的总收益 G t G_t Gt 记录下来,用于评价“这套策略好不好”。
2.2.2 策略改进阶段
-
用估计的价值函数,来更新策略
-
这个阶段,我们根据估计出来的值函数来调整策略:
-
方法一:贪婪策略改进(Greedy)
-
如果我们有了动作价值函数 Q ( s , a ) Q(s,a) Q(s,a),那么我们可以对策略这样更新: π ′ ( s ) = arg max a Q ( s , a ) \pi'(s) = \arg\max_a Q(s, a) π′(s)=argmaxaQ(s,a)
-
也就是说,在每个状态 s s s 中,选择价值最高的动作作为新的策略。
-
-
方法二:ε-贪婪策略改进(探索+利用)
-
因为纯贪婪可能陷入局部最优,MC 通常使用 ε-贪婪策略:
-
以 1 − ε 1 - \varepsilon 1−ε 的概率选择最优动作;
-
以 ε \varepsilon ε 的概率随机选一个动作,鼓励探索。
-
-
就是增加一个参数来控制
-
2.3 方法的优缺点
-
优点
-
不需要知道模型
- 可以从与环境的交互中直接学习,适用于模型未知的情况。
-
简单直观
- 基于“真实经验轨迹”估算期望回报,更贴近现实过程。
-
适合非马尔可夫任务的评估
- 如果任务不是严格的 MDP,MC 也能处理。
-
-
缺点
-
必须等一整条轨迹结束才能学习(Delayed update)
- 不能在线更新,每次更新都要等 episode 结束,不适合无限期任务。
-
高方差
- 一条轨迹可能包含很多随机性,导致估计不稳定。
-
效率低
- 需要大量完整轨迹才能得到准确估计,收敛速度慢。
-
3. 时序差分法
- 时序差分法是一种结合了动态规划(DP)和蒙特卡洛(MC)方法优点的学习方法:
- 它像 MC 一样从经验中学习,但像 DP 一样每一步就更新价值函数
3.1 方法的核心思想
-
在一个状态 s t s_t st,执行一个动作 a t a_t at,然后观察到奖励 r t + 1 r_{t+1} rt+1 和下一个状态 s t + 1 s_{t+1} st+1。
-
用以下公式更新当前状态价值:
V ( s t ) ← V ( s t ) + α ⋅ [ R t + 1 + γ V ( s t + 1 ) ⏞ 时序差分目标 − V ( s t ) ] ⏟ 时序差分误差 TD Error V(s_t) \leftarrow V(s_t) + \alpha \cdot \underbrace{[\overbrace {R_{t+1} + \gamma V(s_{t+1})}^{\text{时序差分目标}} - V(s_t)]}_{\text{时序差分误差 TD Error}} V(st)←V(st)+α⋅时序差分误差 TD Error [Rt+1+γV(st+1) 时序差分目标−V(st)]-
α \alpha α:学习率(多快学新信息)
-
γ \gamma γ:折扣因子
-
T D E r r o r = 目标值 − 当前估计 TD\ Error = \text{目标值} - \text{当前估计} TD Error=目标值−当前估计
-
-
通俗理解:
- 原来以为这一步能拿5分,现在从下一个状态估计来看其实是7分,那我就修正一下对当前状态的估计
-
以下是参考文章对于公式的讲解
-
3.2 方法流程
-
以TD(0)为评估策略
-
初始化状态价值函数 V ( s ) V(s) V(s)
-
从起始状态开始与环境交互(执行当前策略)
-
每走一步:
-
得到当前状态 s s s、奖励 r r r、下一状态 s ′ s' s′
-
用上述 TD 公式更新 V ( s ) V(s) V(s)
-
-
不断重复以上过程,直到收敛
-
-
三种方法对比
- MC的做法相当于一条道走到黑 没走个10公里不回头
- DP相当于所有道比如10条道 每条道都走个1公里 不错过任何一条可能成为最好道的可能,最后10条道都走完1公里后才返回汇报/反馈
- TD则相当于先选一条道走个1公里即返回汇报/反馈,之后再走下一条道的1公里
参考文章
相关文章:
强化学习三大基本方法-DP、MC、TD
强化学习进阶 本文主要讲解 动态规划法(Dynamic Programming DP)蒙特卡洛法(Monte Carlo MC)时序差分法(Temporal Difference TD) 1. 动态规划法 1.1 动态规划概念 动态规划核心思想: 其核心…...
【数据结构】1. 时间/空间复杂度
- 第 95 篇 - Date: 2025 - 05 - 09 Author: 郑龙浩/仟墨 【数据结构 】 文章目录 数据结构 - 1 -了解数据结构与算法1 什么是数据结构2 什么是算法3 数据结构的重要性? 一 时间复杂度_空间复杂度1 时间复杂度① 表示方法② 推导大 O 的规则:③ **代码示例 ** 2 空…...
k8s存储类型:emptyDir、hostPath、nfs、pvc及存储类storageclass的静态/动态创建pv
Kubernetes存储类型详解 Kubernetes(K8s)提供了多种存储类型,满足不同的存储需求。这些存储类型包括 emptyDir、hostPath、nfs、PersistentVolumeClaim(PVC)以及存储类(StorageClass)的静态和动…...
TRAE 配置blender MCP AI自动3D建模
BlenderMCP - Blender模型上下文协议集成 BlenderMCP通过模型上下文协议(MCP)将Blender连接到Claude AI,允许Claude直接与Blender交互并控制Blender。这种集成实现了即时辅助的3D建模、场景创建和操纵。 1.第一步下载 MCP插件(addon.py):Blender插件,在…...
不拆机查看电脑硬盘型号的常用方法
要比较两个硬件的参数,首先要知道的是硬件准确的型号。不过,如硬盘这类硬件,一般都藏在电脑“肚子里”,拆下看费时又费力。那么,不拆机电脑硬盘型号怎么看呢?接下来,我们就来分享几种方法。 使…...
抖音 “碰一碰” 发视频:短视频社交的新玩法
在短视频社交的广阔天地里,抖音始终站在创新的前沿。2023 年,抖音重磅推出 “碰一碰” 功能,借助近距离通信技术,实现设备间视频的闪电分享,为短视频社交注入全新活力。本文将深入剖析这一功能背后的技术奥秘、丰富应用…...
learning ray之ray核心设计和架构
我们每天都在处理海量、多样且高速生成的数据,这对计算能力提出了前所未有的挑战。传统的单机计算模式在面对日益复杂的机器学习模型和大规模数据集时,往往显得力不从心。更重要的是,数据科学家们本应专注于模型训练、特征工程、超参数调优这…...
深入理解 JavaScript 对象与属性控制
ECMA-262将对象定义为一组属性的无序集合,严格来说,这意味着对象就是一组没有特定顺序的值,对象的每个属性或方法都由一个名称来标识,这个名称映射到一个值. 可以把js的对象想象成一张散列表,其中的内容就是一组名/值对,值可以是数据或者函数 1. 理解对象 创建自定义对象的…...
深入理解 Linux 虚拟文件系统(VFS)
在 Linux 操作系统的世界里,虚拟文件系统(Virtual File System,VFS)扮演着极为关键的角色。它就像是一座桥梁,连接着各种不同类型的物理文件系统与操作系统以及应用程序,使得我们在使用 Linux 时能够以统一…...
AI云防护真的可以防攻击?你的服务器用群联AI云防护吗?
1. 传统防御方案的局限性 静态规则缺陷:无法应对新型攻击模式(如HTTP慢速攻击)资源浪费:固定带宽采购导致非攻击期资源闲置 2. AI云防护技术实现 动态流量调度算法: # 智能节点选择伪代码(参考群联防护…...
计算机视觉——MedSAM2医学影像一键实现3D与视频分割的高效解决方案
引言 在乡村医院的傍晚高峰时段,扫描室内传来阵阵低沉的嗡鸣声,仿佛一台老旧冰箱的运转声。一位疲惫的医生正全神贯注地检查着当天的最后一位患者——一位不幸从拖拉机上摔下的农民,此刻正呼吸急促。CT 机器飞速旋转,生成了超过一…...
软件工程之软件项目管理深度解析
前文基础: 1.软件工程学概述:软件工程学概述-CSDN博客 2.软件过程深度解析:软件过程深度解析-CSDN博客 3.软件工程之需求分析涉及的图与工具:软件工程之需求分析涉及的图与工具-CSDN博客 4.软件工程之形式化说明技术深度解…...
40. 组合总和 II
题目 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates [10,1…...
java-多态
一、多态的来历 我们先来了解一个业务场景:请设计一个系统,描述主人喂养宠物的场景,首先在这个场景当中应该有”宠物对象“,“宠物对象”应该有一个吃的行为,另外还需要一个“主人对象”,主人应该有一个喂的…...
重构 cluster-db 选择器,新增限制字段 showDb 不影响原功能前提实现查询功能增量拓展
1.为DbSelect组件新添加showDb字段 :show-db"false"时只显示集群不显示数据库信息 重构 cluster-db 选择器,新增限制字段 showDb 不影响原功能前提实现查询功能增量拓展,。保证组件**高可用性,减少冗余方法的编写,提高整体代码复用性和维护性**。 <!-…...
Modbus RTU 详解 + FreeMODBUS移植(附项目源码)
文章目录 前言一、Modbus RTU1.1 通信方式1.2 模式特点1.3 数据模型1.4 常用功能码说明1.5 异常响应码1.6 通信帧格式1.6.1 示例一:读取保持寄存器(功能码 0x03)1.6.2 示例二:写单个线圈(功能码 0x05)1.6.3…...
新闻发稿筛选媒体核心标准:影响力、适配性与合规性
1. 评估媒体影响力 权威性与公信力:优先选择央级媒体,其报道常被其他平台转载,传播链条长,加分权重高。 传播数据:参考定海区融媒体中心的赋分办法,关注媒体的阅读量、视频播放量等指标,如阅读…...
豆包:基于多模态交互的智能心理咨询机器人系统设计与效果评估——情感计算框架下的对话机制创新
豆包:基于多模态交互的智能心理咨询机器人系统设计与效果评估——情感计算框架下的对话机制创新 摘要 随着人工智能在心理健康领域的应用深化,本文提出一种融合情感计算与动态对话管理的智能心理咨询机器人系统架构。通过构建“用户状态-情感响应-策略生成”三层模型,结合…...
坐席业绩可视化分析工具
这个交互式的坐席业绩分析工具具有以下特点: 数据导入功能:支持上传 CSV 文件,自动解析并展示数据多维度分析:可按日 / 周 / 月分析业绩数据,支持切换不同业绩指标(接通时长 / 外呼次数 / 接通次数&#x…...
MATLAB制作柱状图与条图:数据可视化的基础利器
一、什么是柱状图与条图? 柱状图和条图都是用来表示分类数据的常见图表形式,它们的核心目的是通过矩形的长度来比较各类别的数值大小。条图其实就是“横着的柱状图”,它们的本质是一样的:用矩形的长度表示数值大小,不同…...
com.fasterxml.jackson.dataformat.xml.XmlMapper把对象转换xml格式,属性放到标签<>里边
之前从没用过xml和对象相互转换,最近项目接了政府相关的。需要用xml格式数据进行相互转换。有些小问题,困扰了我一下下。 1.有些属性需要放到标签里边,有的需要放到标签子集。 2.xml需要加<?xml version"1.0" encoding"…...
在js中大量接口调用并发批量请求处理器
并发批量请求处理器 ✨ 设计目标 该类用于批量异步请求处理,支持: 自定义并发数请求节拍控制(延时)失败重试机制进度回调通知 🔧 构造函数参数 new BulkRequestHandler({dataList, // 要处理的数据列表r…...
Azure资源创建与部署指南
本文将指导您如何在Azure平台上创建和配置必要的资源,以部署基于OpenAI的应用程序。 资源组创建 资源组是管理和组织Azure资源的逻辑容器。 在Azure门户顶端的查询框中输入"Resource groups"(英文环境)或"资源组"(中文环境)在搜索结果中点击"资…...
图解gpt之神经概率语言模型与循环神经网络
上节课我们聊了词向量表示,像Word2Vec这样的模型,它确实能捕捉到词语之间的语义关系,但问题在于,它本质上还是在孤立地看待每个词。英文的“Apple”,可以指苹果公司,也可以指水果。这种一词多义的特性&…...
Jenkins linux安装
jenkins启动 service jenkins start 重启 service jenkins restart 停止 service jenkins stop jenkins安装 命令切换到自己的下载目录 直接用命令下载 wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm 下载直接安装 rpm -ivh jenkins-2.190.3-…...
android 修改单GPS,单北斗,单伽利略等
从hal层入手,代码如下: 各个类型如下: typedef enum {MTK_CONFIG_GPS_GLONASS 0,MTK_CONFIG_GPS_BEIDOU,MTK_CONFIG_GPS_GLONASS_BEIDOU,MTK_CONFIG_GPS_ONLY,MTK_CONFIG_BEIDOU_ONLY,MTK_CONFIG_GLONASS_ONLY,MTK_CONFIG_GPS_GLONASS_BEIDO…...
CNG汽车加气站操作工岗位职责
CNG(压缩天然气)汽车加气站操作工是负责天然气加气设备操作、维护及安全管理的重要岗位。以下是该岗位的职责、技能要求、安全注意事项及职业发展方向的详细说明: *主要职责 加气操作 按照规程为车辆加注CNG,检查车辆气瓶合格证…...
纯Java实现反向传播算法:零依赖神经网络实战
在深度学习框架泛滥的今天,理解算法底层实现变得愈发重要。反向传播(Backpropagation)作为神经网络训练的基石算法,其实现往往被各种框架封装。本文将突破常规,仅用Java标准库实现完整BP算法,帮助开发者: 1) 深入理解…...
springboot3 + mybatis-plus3 创建web项目实现表增删改查
Idea创建项目 环境配置说明 在现代化的企业级应用开发中,合适的开发环境配置能够极大提升开发效率和应用性能。本文介绍的环境配置为: 操作系统:Windows 11JDK:JDK 21Maven:Maven 3.9.xIDE:IntelliJ IDEA…...
多模型协同预测在风机故障预测的应用(demo)
数据加载和预处理的真实性: 下面的代码中,DummyDataset 和数据加载部分仍然是高度简化和占位的。为了让这个训练循环真正有效,您必须用您自己的数据加载逻辑替换它。这意味着您需要创建一个 torch.utils.data.Dataset 的子类,它能…...
韩媒聚焦Lazarus攻击手段升级,CertiK联创顾荣辉详解应对之道
近日,韩国知名科技媒体《韩国IT时报》(Korea IT Times)刊文引述了CertiK联合创始人兼CEO顾荣辉教授的专业见解,聚焦黑客组织Lazarus在Web3.0领域攻击手段的持续升级,分析这一威胁的严峻性,并探讨了提升行业…...
5.9-selcct_poll_epoll 和 reactor 的模拟实现
5.9-select_poll_epoll 本文演示 select 等 io 多路复用函数的应用方法,函数具体介绍可以参考我过去写的博客。 先绑定监听的文件描述符 int sockfd socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serveraddr; memset(&serveraddr, 0, sizeof(struc…...
图上思维:基于知识图的大型语言模型的深层可靠推理
摘要 尽管大型语言模型(LLM)在各种任务中取得了巨大的成功,但它们经常与幻觉问题作斗争,特别是在需要深入和负责任的推理的场景中。这些问题可以通过在LLM推理中引入外部知识图(KG)来部分解决。在本文中&am…...
37-智慧医疗服务平台(在线接诊/问诊)
系统功能特点: 技术栈: springBootVueMysql 功能点: 医生端 用户端 管理员端 医生端: 科室信息管理、在线挂号管理、预约体检管理、体检报告管理、药品信息管理、处方信息管理、缴费信息管理、病历信息管理、智能导诊管理、在线接诊患者功能 (和患者1V1沟通) 用户…...
【新品发布】VXI可重构信号处理系统模块系列
VXI可重构信号处理系统模块概述 VXI可重构信号处理系统模块包括了 GPU 模块,CPU 模块,射频模块、IO 模块、DSP模块、高速存储模块、交换模块,采集处理模块、回放处理模块等,全套组件为单体3U VPX架构,可自由组合到多槽…...
React 第三十八节 Router 中useRoutes 的使用详解及注意事项
前言 useRoutes 是 React Router v6 引入的一个钩子函数,允许通过 JavaScript 对象(而非传统的 JSX 语法)定义路由配置。这种方式更适合复杂路由结构,且代码更简洁易维护。 一、基础使用 1.1、useRoutes路由配置对象 useRoute…...
Redhat 系统详解
Red Hat 系统深度解析:从企业级架构到核心组件 一、Red Hat 概述:企业级 Linux 的标杆 Red Hat 是全球领先的开源解决方案供应商,其核心产品 Red Hat Enterprise Linux(RHEL) 是企业级 Linux 的黄金标准。RHEL 以 稳…...
docker常用命令总结
常用命令含义docker info查看docker 服务的信息-------------------------镜像篇docker pull XXX从官网上拉取名为XXX的镜像docker login -u name登录自己的dockerhub账号docker push XXX将XXX镜像上传到自己的dockerhub账户中(XXX的命名必须是用户名/镜像名&#x…...
【el-admin】el-admin关联数据字典
数据字典使用 一、新增数据字典1、新增【图书状态】和【图书类型】数据字典2、编辑字典值 二、代码生成配置1、表单设置2、关联字典3、验证关联数据字典 三、查询操作1、模糊查询2、按类别查询(下拉框) 四、数据校验 一、新增数据字典 1、新增【图书状态…...
component :is是什么?
问: component :is是什么? 是组件? 那我们是不是就不需要自己创建组件了?还是什么意思?component :is和什么功能是类似的,同时和类似功能相比对什么时候用component :is…...
适老化洗浴辅具产业:在技术迭代与需求升级中重塑银发经济新生态
随着中国人口老龄化程度的不断加深,老年群体对于适老化产品的需求日益增长。 适老化洗浴辅具作为保障老年人洗浴安全与舒适的关键产品,其发展状况备受关注。 深入剖析中国适老化洗浴辅具的发展现状,并探寻助力产业发展的有效路径࿰…...
『Python学习笔记』ubuntu解决matplotlit中文乱码的问题!
ubuntu解决matplotlit中文乱码的问题! 文章目录 simhei.ttf字体下载链接:http://xiazaiziti.com/210356.html将字体放到合适的地方 sudo cp SimHei.ttf /usr/share/fonts/(base) zkfzkf:~$ fc-list | grep -i "SimHei" /usr/local/share/font…...
从AI到新能源:猎板PCB的HDI技术如何定义高端制造新标准?
2025年,随着AI服务器、新能源汽车、折叠屏设备等新兴领域的爆发式增长,高密度互连(HDI)电路板成为电子制造业的“必争之地”。HDI板凭借微孔、细线宽和高层间对位精度,能够实现电子设备的高集成化与微型化,…...
汽车制造行业的数字化转型
嘿,大家好!今天来和大家聊聊汽车制造行业的数字化转型,这可是当下非常热门的话题哦! 随着科技的飞速发展,传统的汽车制造行业正经历着一场深刻的变革。数字化技术已经不再是“锦上添花”,而是车企能否在未…...
Redis 常见数据类型
Redis 常见数据类型 一、基本全局命令详解与实操 1. KEYS 命令 功能:按模式匹配返回所有符合条件的键(生产环境慎用,可能导致阻塞)。 语法: KEYS pattern 模式规则: h?llo:匹配 hello, ha…...
【计算机网络-传输层】传输层协议-TCP核心机制与可靠性保障
📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:传输层协议-UDP 下篇文章: 网络层 我们的讲解顺序是&…...
对golang中CSP的理解
概念: CSP模型,即通信顺序进程模型,是由英国计算机科学家C.A.R. Hoare于1978年提出的。该模型强调进程之间通过通道(channel)进行通信,并通过消息传递来协调并发执行的进程。CSP模型的核心思想是“不要通过…...
嵌入式openharmony标准系统中HDF框架底层原理分析
1、案例简介 该程序是基于OpenHarmony标准系统编写的基础外设类:简易HDF驱动。 2、基础知识 2.1、OpenHarmony HDF开发简介 HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。旨在构建统一…...
238.除自身以外数组的乘积
给你一个数组,求出第 i 个元素以外的数组元素的乘积,不能使用除法,且时间复杂度O(n), 对于一个数,如果知道了前缀元素的乘积和后缀元素的乘积,就知道了这个元素以外的数组元素的乘积,所以现在的问题是如何…...
AI文旅|暴雨打造旅游新体验
今年"五一"假期,全国文旅市场迎来爆发式增长,从丈崖瀑布的磅礴水雾到城市商区的璀璨霓虹,从山野民宿的静谧悠然到主题乐园的欢腾喧嚣,处处人潮涌动。在这火热的景象背后,一股“无形之力”正悄然改变旅游体验…...