【RL】Bellman Optimality Equation(贝尔曼最优等式)

Lecture3: Optimal Policy and Bellman Optimality Equation

Definition of optimal policy

state value可以被用来去评估policy的好坏,如果:
v π 1 ( s ) ≥ v π 2 ( s ) for all  s ∈ S v_{\pi_1}(s) \ge v_{\pi_2}(s) \;\;\;\;\; \text{for all } s \in S vπ1(s)vπ2(s)for all sS
那么, π 1 \pi_1 π1 π 2 \pi_2 π2更优。

定义

如果 v π ∗ ( s ) > v π v_{\pi^*}(s) > v_{\pi} vπ(s)>vπ对所有的 s s s都成立,那么policy π \pi π就是最优的,标记为 π ∗ \pi^* π

BOE: Introduction

回顾元素形式的Bellman等式:
v ( s ) = ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ) ∀ s ∈ S v(s)=\sum_a \pi(a | s) \left( \sum_rp(r | s, a) + \gamma \sum_{s'}p(s' | s, a)v(s') \right)\;\;\;\;\; \forall s \in S v(s)=aπ(as)(rp(rs,a)+γsp(ss,a)v(s))sS
则,元素形式的Bellman最优等式(Bellman Optimiality Equation)为:
v ( s ) = m a x π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ) ∀ s ∈ S = m a x π ∑ a π ( a ∣ s ) q ( s ∣ a ) s ∈ S \begin{align*} v(s)&=max_{\pi} \sum_a \pi(a | s) \left( \sum_rp(r | s, a) + \gamma \sum_{s'}p(s' | s,a) v(s') \right)\;\;\;\;\; \forall s \in S \\ &=max_{\pi}\sum_a \pi(a | s)q(s | a) \;\;\;\;\; s \in S \end{align*} v(s)=maxπaπ(as)(rp(rs,a)+γsp(ss,a)v(s))sS=maxπaπ(as)q(sa)sS
其中:

  • p ( r ∣ s , a ) p(r | s, a) p(rs,a) p ( s ′ ∣ s , a ) p(s'| s, a) p(ss,a)是已知的
  • v ( s ) v(s) v(s) v ( s ′ ) v(s') v(s)是未知需要计算的

矩阵形式的Bellman最优等式:
v = m a x π ( r π + γ P π v ) \mathbf{v} = max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}) v=maxπ(rπ+γPπv)
其中:
[ r π ] s : = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r [ P π ] s , s ′ = p ( s ′ ∣ s ) : = ∑ a π ( a ∣ s ) ∑ s ′ p ( s ′ ∣ s , a ) [\mathbf{r}_{\pi}]_s := \sum_a \pi(a | s)\sum_rp(r | s, a)r \\ [\mathbf{P}_{\pi}]_{s, s'} = p(s' | s) := \sum_a \pi(a | s) \sum_{s'} p(s' | s, a) [rπ]s:=aπ(as)rp(rs,a)r[Pπ]s,s=p(ss):=aπ(as)sp(ss,a)

BOE: Maximization on the right-hand side

考虑元素形式Bellman最优等式:
v ( s ) = m a x π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ) ∀ s ∈ S = m a x π ∑ a π ( a ∣ s ) q ( s ∣ a ) s ∈ S \begin{align*} v(s)&=max_{\pi} \sum_a \pi(a | s) \left( \sum_rp(r | s, a) + \gamma \sum_{s'}p(s' | s,a) v(s') \right)\;\;\;\;\; \forall s \in S \\ &=max_{\pi}\sum_a \pi(a | s)q(s | a) \;\;\;\;\; s \in S \end{align*} v(s)=maxπaπ(as)(rp(rs,a)+γsp(ss,a)v(s))sS=maxπaπ(as)q(sa)sS
因为 ∑ a π ( a ∣ s ) = 1 \sum_a \pi(a | s) = 1 aπ(as)=1,可得:
m a x π ∑ a π ( a ∣ s ) q ( s ∣ a ) = m a x a ∈ A ( s ) q ( s , a ) max_{\pi} \sum_a \pi(a | s)q(s | a) =max_{a \in \mathcal{A}(s)} q(s, a) maxπaπ(as)q(sa)=maxaA(s)q(s,a)
当策略最优时:
π ( a ∣ s ) = { 1 a = a ∗ 0 a ≠ a ∗ \pi(a | s) = \left\{\begin{matrix} 1 & a = a^*\\ 0 & a \ne a^* \end{matrix}\right. π(as)={10a=aa=a
其中: a ∗ = argmax a q ( s , a ) a^* = \text{argmax}_a q(s, a) a=argmaxaq(s,a)

BOE: Rewtite as v = f ( v ) v=f(v) v=f(v)

考虑矩阵形式Bellman最优等式:
v = m a x π ( r π + γ P π v ) \mathbf{v} = max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}) v=maxπ(rπ+γPπv)
使:
f ( v ) : = m a x π ( r π + γ P π v ) f(\mathbf{v}) := max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}) f(v):=maxπ(rπ+γPπv)
那么,Bellman最优等式就变为:
v = f ( v ) \mathbf{v} = f(\mathbf{v}) v=f(v)
其中:
[ f ( v ) ] s = m a x π ∑ a π ( a ∣ s ) q ( s , a ) s ∈ S [f(v)]_s = max_{\pi} \sum_a \pi(a | s)q(s, a) \;\;\;\;\; s\in S [f(v)]s=maxπaπ(as)q(s,a)sS

Contraction mapping theorem

Fixed Point:对于 x ∈ X x \in X xX,如果其为 f : X → X f: X \rightarrow X f:XX的fixed point(不动点),那么其满足:
f ( x ) = x f(x)=x f(x)=x
Contraction Mapping(or Contraction Function) f f f是contraction mapping,如果:
∥ f ( x 1 ) − f ( x 2 ) ∥ ≤ γ ∥ x 1 − x 2 ∥ \| f(x_1) - f(x_2) \| \le \gamma \| x_1 - x_2 \| f(x1)f(x2)γx1x2
其中, γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ(0,1)

  • γ \gamma γ必须严格小于1
  • ∥ ⋅ ∥ \| \cdot\| 可以是任何向量形式

对于任何满足 x = f ( x ) x = f(x) x=f(x)的等式形式,如果 f f f是contractnon mapping,那么:

  • Existence:存在一个fixed point,满足 f ( x ∗ ) = x ∗ f(x^*) = x^* f(x)=x
  • Uniquencess:fixed point x ∗ x^* x是唯一的
  • Algorithm:考虑序列 { x k } \{ x_k \} {xk},其中 x k + 1 = f ( x k ) x_{k+1}=f(x_k) xk+1=f(xk),那么当 k → ∞ k \rightarrow \infty k x k → x ∗ x_k \rightarrow x^* xkx。而且,收敛速度时指数级。

例:

  • x = 0.5 x x=0.5x x=0.5x,其中 f ( x ) = 0.5 x f(x)=0.5x f(x)=0.5x而且 x ∈ R x \in \mathbb{R} xR

    x ∗ = 0 x^*=0 x=0是唯一的fixed point。其可以被迭代求解为:
    x k + 1 = 0.5 x k x_{k+1}=0.5x_k xk+1=0.5xk

  • x = A x x=Ax x=Ax,其中 f ( x ) = A x f(x)=Ax f(x)=Ax并且 x ∈ R n x \in \mathbb{R}^n xRn ∥ A ∥ < 1 \|A\| <1 A<1

    x ∗ = 0 x^*=0 x=0是唯一的fixed point。其可以被迭代求解为:
    x k + 1 = A x k x_{k+1} = Ax_k xk+1=Axk

BOE: Solution

考虑Bellman最优等式:
v = f ( v ) = m a x π ( r + γ P π v ) \mathbf{v} = f(\mathbf{v}) = max_{\pi}(r + \gamma \mathbf{P}_{\pi}\mathbf{v}) v=f(v)=maxπ(r+γPπv)
Contraction Property f ( v ) f(v) f(v)是contraction mapping 满足:
∥ f ( v 1 ) − f ( v 2 ) ∥ ≤ γ ∥ v 1 − v 2 ∥ \|f(v_1) - f(v_2)\| \le \gamma \|v_1 - v_2\| f(v1)f(v2)γv1v2
其中, γ \gamma γ是discount rate。

对于BOE v = f ( v ) = m a x π ( r π + γ P π v ) \mathbf{v} = f(\mathbf{v}) = max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}) v=f(v)=maxπ(rπ+γPπv),其总存在一个最优解 v ∗ \mathbf{v}^* v,而且 v ∗ \mathbf{v}^* v是唯一的。最优解可以被迭代求解为:
v k + 1 = f ( v k ) = m a x π ( r π + γ P π v k ) \mathbf{v}_{k+1}=f(\mathbf{v}_k) = max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi}\mathbf{v}_k) vk+1=f(vk)=maxπ(rπ+γPπvk)
给定任何初始猜测 v 0 v^0 v0,该序列 v k {v_k} vk都会以指数速度快速收敛到 v ∗ v^* v。 收敛速度由 γ \gamma γ决定。

迭代算法:

对于矩阵形式的Bellman最优等式:
v k + 1 = f ( v k ) = m a x π ( r π + γ P π v k ) \mathbf{v}_{k+1}=f(\mathbf{v}_k) = max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi}\mathbf{v}_k) vk+1=f(vk)=maxπ(rπ+γPπvk)
其元素形式为:
v k + 1 ( s ) = m a x π π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ) = m a x π ∑ a π ( a ∣ s ) q k ( s , a ) = m a x a q k ( s , a ) \begin{align*} v_{k+1}(s)&=max_{\pi} \pi(a|s) \left( \sum_r p(r | s, a) + \gamma \sum_{s'} p(s' | s, a)v_k(s') \right)\\ &=max_{\pi} \sum_a \pi(a|s)q_k(s, a)\\ &=max_a q_k(s, a) \end{align*} vk+1(s)=maxππ(as)(rp(rs,a)+γsp(ss,a)vk(s))=maxπaπ(as)qk(s,a)=maxaqk(s,a)
Procedure Summary

  • 对于任何 s s s,其最近估计值为 v k ( s ) v_k(s) vk(s)

  • 对于任何 a ∈ A ( s ) a \in \mathcal{A}(s) aA(s),计算 q k ( s , a ) = ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) q_k(s, a) = \sum_r p(r | s, a) + \gamma \sum_{s'} p(s' | s, a)v_k(s') qk(s,a)=rp(rs,a)+γsp(ss,a)vk(s)

  • s s s计算policy π k + 1 \pi_{k+1} πk+1
    π k + 1 ( a ∣ s ) = { 1 a = a k ∗ ( s ) 0 a ≠ a k ∗ ( s ) \pi_{k+1}(a|s)=\left\{\begin{matrix} 1 & a = a^*_k(s)\\ 0 & a \ne a^*_k(s) \end{matrix}\right. πk+1(as)={10a=ak(s)a=ak(s)
    其中, a k ∗ ( s ) = argmax a q k ( s , a ) a^*_k(s) = \text{argmax}_a q_k(s, a) ak(s)=argmaxaqk(s,a)

  • 计算 v k + 1 ( s ) = max a q k ( s , a ) v_{k+1}(s) = \text{max}_a q_k(s, a) vk+1(s)=maxaqk(s,a)

例:

对于下图:

在这里插入图片描述

action: a ℓ , a 0 , a r a_{\ell},a_0,a_r a,a0,ar分别代表向左、保持不变,向右。

reward:进入target area:+1,试图突破边界:-1。

q ( s , a ) q(s, a) q(s,a)值表:

在这里插入图片描述

考虑 γ = 0.9 \gamma=0.9 γ=0.9

算法目标是发现 v ∗ ( s i ) v^*(s_i) v(si) π ∗ \pi^* π

k=0:

v-value: v 0 ( s 1 ) = v 0 ( s 2 ) = v 0 ( s 3 ) = 0 v_0(s_1)=v_0(s_2)=v_0(s_3)=0 v0(s1)=v0(s2)=v0(s3)=0

q-value:

在这里插入图片描述

greedy policy:
π ( a r ∣ s 1 ) = 1 π ( a 0 ∣ s 2 ) = 1 π ( a ℓ ∣ s 3 ) = 1 \pi(a_r | s_1) = 1\\ \pi(a_0 | s_2) = 1\\ \pi(a_{\ell} | s_3) = 1 π(ars1)=1π(a0s2)=1π(as3)=1

BOE: Optimality

假设 v ∗ v^* v是Bellman最优等式的解,其满足:
v ∗ = m a x π ( r π + γ P π v ∗ ) \mathbf{v}^* = max_{\pi}(\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}^*) v=maxπ(rπ+γPπv)
假设:
π ∗ = argmax π ( r π + γ P π v ∗ ) \mathbf{\pi}^* = \text{argmax}_{\pi} (\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi}\mathbf{v}^*) π=argmaxπ(rπ+γPπv)
那么:
v ∗ = r π − γ P π ∗ v ∗ \mathbf{v}^* = \mathbf{r}_{\pi} - \gamma \mathbf{P}_{\pi^*}\mathbf{v}^* v=rπγPπv
因此, π ∗ \pi^* π是策略, v ∗ = v π ∗ v^*=v_{\pi}^* v=vπ是对应的state value。

Theorem (Policy Optimality)

假设 $v^* $是 v = m a x π ( r π + γ P π v ) v = max\pi(r_\pi + \gamma P_\pi v) v=maxπ(rπ+γPπv)的唯一解, v π v_\pi vπ 是对于任何给定policy π \pi π 满足 v π = r π + γ P π v π v_\pi = r_\pi + \gamma P_\pi v_\pi vπ=rπ+γPπvπ 的state value函数,则:
v ∗ ≥ v π ∀ π v^* \ge v_{\pi} \;\;\;\;\; \forall \pi vvππ
Theorem (Greedy Optimal Policy)

对于任何 s ∈ S s \in S sS,确定的greedy policy是:
π ∗ ( a ∣ s ) = { 1 a = a ∗ ( s ) 0 a ≠ a ∗ ( s ) ( 1 ) \pi^*(a| s)= \left\{\begin{matrix} 1 & a = a^*(s) \\ 0 & a \ne a^*(s) \end{matrix}\right. \;\;\;\;\; (1) π(as)={10a=a(s)a=a(s)(1)
是BOE求得的最优policy。其中:
a ∗ ( s ) = argmax a q ∗ ( a , s ) a^*(s) = \text{argmax}_a q^*(a, s) a(s)=argmaxaq(a,s)
其中 q ∗ ( s , a ) : = ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v ∗ ( s ′ ) q^*(s,a) := \sum_r p(r | s, a) + \gamma \sum_{s'} p(s' | s, a) v^*(s') q(s,a):=rp(rs,a)+γsp(ss,a)v(s)

Analyzing optimal policies

考虑BOE等式:
v ( s ) = m a x π π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ) v(s)=max_{\pi} \pi(a|s) \left( \sum_r p(r | s, a) + \gamma \sum_{s'} p(s' | s, a)v_k(s') \right) v(s)=maxππ(as)(rp(rs,a)+γsp(ss,a)vk(s))
有三个要素:

  • Reward: r r r
  • System model: p ( s ′ ∣ s , a ) p(s' | s, a) p(ss,a) p ( r ∣ s , a ) p(r | s, a) p(rs,a)
  • Discount rate: γ \gamma γ
  • v ( s ) , v ( s ′ ) , π ( a ∣ s ) v(s),v(s'),\pi(a|s) v(s),v(s),π(as)是未知需要计算的。

接下来,通过改变 r r r γ \gamma γ来讨论optimal policy的变化。

通过求解BOE得到最优policy和对应的最优state value。

在这里插入图片描述

敢于冒险的最优策略:进入forbidden area!

改变 γ = 0.9 \gamma = 0.9 γ=0.9 γ = 0.5 \gamma = 0.5 γ=0.5

在这里插入图片描述

最优policy变得短视! 避开所有forbidden area!

改变 γ = 0 \gamma=0 γ=0

在这里插入图片描述

最优policy变得极其短视! 另外,选择立即reward最大的行动! 达不到目标!

如果加大进入forbidden area的处罚力度(改变 r f o r b i d d e n = − 1 r_{forbidden=-1} rforbidden=1 r f o r b i d d e n = − 10 r_{forbidden}=-10 rforbidden=10

在这里插入图片描述

最优的政策也会避开forbidden area。

Theorem (Optimal Policy Invariance)

考虑一个马尔可夫决策过程,其中 v ∗ ∈ R ∣ S ∣ v^* \in \mathbb{R}^{|S|} vRS作为满足 v ∗ = m a x π ( r π + γ P π v ∗ ) v* = max_\pi(r_\pi + γP_\pi v^*) v=maxπ(rπ+γPπv)的最优状态值。如果每个奖励 r r r通过仿射变换变为 a r + b ar + b ar+b,其中 a , b ∈ R a,b \in \mathbb{R} a,bR a ≠ 0 a \ne 0 a=0,则对应的最优状态值 v ′ v' v也是 v ∗ v^* v的仿射变换。
v ′ = a v ∗ + b 1 − γ 1 v' = a v^* + \frac{b}{1 - \gamma} \mathbf{1} v=av+1γb1
其中, γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ(0,1)是discount rate, 1 = [ 1 , . . . , 1 ] T \mathbb{1} = [1, ..., 1]^T 1=[1,...,1]T。因此,最优policy对于reward信号的仿射变换是不变的。

关于无意义绕路:

在这里插入图片描述

在这里插入图片描述

走弯路不施加惩罚也可以避免优化过程中走弯路。

discount rate!

Policy ( a ) : return = 1 + γ 1 + γ 2 1 + ⋯ = 1 / ( 1 − γ ) = 10 \text{Policy}(a): \text{return}=1 + \gamma 1 + \gamma^21 + \cdots = 1 / (1 - \gamma ) = 10 Policy(a):return=1+γ1+γ21+=1/(1γ)=10

Policy(b) : return = 0 + γ 0 + γ 2 0 + ⋯ = γ 2 / ( 1 − γ ) = 8.1 \text{Policy(b)}: \text{return} = 0 + \gamma0 + \gamma^2 0 + \cdots = \gamma^2 / (1 - \gamma) = 8.1 Policy(b):return=0+γ0+γ20+=γ2/(1γ)=8.1




以上内容为B站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。

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

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

相关文章

Python数据科学:Scikit-Learn机器学习

4.1Scikit-Learn机器学习 Scikit-Learn使用的数据表示&#xff1a;二维网格数据表 实例1&#xff1a;通过Seaborn导入数据 def skLearn():scikit Learn基本介绍:return:import seaborn as sns#导入Iris数据集#注&#xff1a;一般网络访问不了iris sns.load_dataset(iris)ir…

【JavaScript】回调函数

文章目录 1. 什么是回调函数2. 回调函数的用法作为函数参数作为匿名函数 3. 处理异步编程4. 解决回调地狱问题5. 总结 在 JavaScript 中&#xff0c; 回调函数是一种重要的编程模式&#xff0c;特别是在处理异步操作时。本篇博客将介绍回调函数的概念、用法以及在异步编程中的…

Jdk11新增特性

目录 模块化系统(Jigsaw) 新的垃圾收集器(ZGC和Shenandoah) 新的API和工具 其他改进 JDK 11(Java Development Kit 11)Java的版本引入了一些新特性和改进,主要有:

助眠神器小程序源码|白噪音|小睡眠|微信小程序前后端开源

安装要求和说明后端程序运行环境&#xff1a;NginxPHP7.4MySQL5.6 PHP程序扩展安装&#xff1a;sg11 网站运行目录设置为&#xff1a;public 伪静态规则选择&#xff1a;thinkphp 数据库修改文件路径&#xff1a;/config/database.php需要配置后端的小程序配置文件&#xff0c;…

[word] word分割线在哪里设置 #其他#经验分享

word分割线在哪里设置 在工作中有些技巧&#xff0c;可以快速提高工作效率&#xff0c;解决大部分工作&#xff0c;今天给大家分享word分割线在哪里设置的小技能&#xff0c;希望可以帮助到你。 1、快速输入分割线 输入三个【_】按下回车就是一条长直线&#xff0c;同样分别…

webgis后端安卓系统部署攻略,超详细Termux攻略

目录 前言 一、将后端项目编译ARM64 二、安卓手机安装termux 1.更换为国内源 2.安装ssh远程访问 3.安装文件远程访问 三、安装postgis数据库 1.安装数据库 2.数据库配置 3.数据导入 四、后端项目部署 五、自启动设置 总结 前言 因为之前一直做的H5APP开发&#xf…

webpack面试解析

参考&#xff1a; 上一篇webpack相关的系列&#xff1a;webpack深入学习&#xff0c;搭建和优化react项目 爪哇教育字节面试官解析webpack-路白 1、Webpack中的module是什么&#xff1f; 通常来讲&#xff0c;一个 module 模块就是指一个文件中导出的内容&#xff0c;webpack…

什么是系统工程(字幕)27

0 00:00:00,990 --> 00:00:03,590 那么下一个在16.4 1 00:00:03,590 --> 00:00:06,190 16.4是描述需求嘛 2 00:00:06,190 --> 00:00:06,970 对不对 3 00:00:07,250 --> 00:00:07,501 4 00:00:07,501 --> 00:00:10,520 在那个教材里面是描述需求 5 00:00:11,…

android--RxJava源码详解

其实所有的节日都不是为了礼物和红包而生&#xff0c;而是为了提醒我们&#xff0c;不要忘记爱与被爱&#xff0c;生活需要仪式感&#xff0c;而你需要的是在乎和关爱 目录 前言 一&#xff0c;Hook点 二&#xff0c;RXJava的观察者模式 三&#xff0c;Map操作符原理 前言 关于…

Amber-Leedcode-Java - 代码随想录打卡第38 - 39天-动态规划汇总

本质上感觉是一个相加的问题&#xff0c;状态的转换&#xff0c;由前一种状态推至下一种状态509. 斐波那契数 较为简单 746. 使用最小花费爬楼梯 62. 不同路径 一开始写的时候被吓到了&#xff0c;但是发现听完一半之后再写还是比较容易的 对于我而言主要是找到逻辑&#xf…

Linux文件属性与目录等知识详解

在 Linux 系统中&#xff0c;文件和目录是基本的文件系统组成部分。文件系统是用于组织和存储文件的一种结构&#xff0c;而文件和目录则是文件系统的核心元素。以下是对 Linux 文件和目录的详细解释&#xff1a; 1. 文件&#xff08;File&#xff09; 在 Linux 中&#xff0…

Vue3+Ant-Design-Vue:报错Cannot read properties of null (reading ‘isCE‘)

问题描述 在使用Ant-Design-Vue内置的Table表格组件&#xff0c;实现expand展开行功能时&#xff0c;报错&#xff1a;Uncaught TypeError: Cannot read properties of null (reading ‘isCE‘) 。 报错信息图示&#xff1a; 在GitHub上找到如下描述&#xff0c; 解决方案 网上…

【漏洞复现】和为顺IP-COM WiFi未授权下载漏洞

Nx01 产品简介 深圳市和为顺网络技术有限公司是一家聚焦于商用级网络通信设备的研发与应用&#xff0c;为全球中小型企业提供高速、安全、易维护的网络设备产品和解决方案的公司。 Nx02 漏洞描述 深圳市和为顺网络技术有限公司IP-COM WiFi方案解决专家存在任意文件下载漏洞&am…

代码随想录算法训练营29期Day50|LeetCode 70,322,279

文档讲解&#xff1a;爬楼梯&#xff08;进阶&#xff09; 零钱兑换 完全平方数 70.爬楼梯&#xff08;进阶&#xff09; 题目链接&#xff1a;https://kamacoder.com/problempage.php?pid1067 思路&#xff1a; 这其实是一个完全背包问题。1阶&#xff0c;2阶&#xff0c…

编曲学习:录音设备的选取,麦克风和声卡,监听耳机

如果要录翻唱歌曲或原创歌曲人声的话&#xff0c;哪款麦克风或声卡比较好&#xff0c;性价比比较高&#xff1f; 可以尝试一下福克斯特声卡&#xff0c;和舒尔sm58动圈麦。之前问了一些大佬&#xff0c;有人用的是莱维特 540s。 我一直有点疑问&#xff0c;便宜声卡与麦克风&…

springsecurity6使用

spring security 中的类 &#xff1a; AuthenticationManager : 实现类&#xff1a;ProviderManager 管理很多的 provider &#xff0c;&#xff0c;&#xff0c; 经常使用的&#xff0c;DaoAuthenticationProvider , 这个要设置一个 UserDetailService , 查找数据库&#xff…

java正则表达式获取json字符串中指定key的value

<仅支持取JSON字符串中, 简单属性值的配置, 即值内容中不包含[]或{}格式的数据> import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.regex.…

【ASP.NET 6 Web Api 全栈开发实战】--前言

《ASP.NET 6 Web Api 实战》专栏通过一步一步的开发并完善一个记账软件项目&#xff0c;来引导大家学习相关的知识&#xff0c;其中的知识包括但不限于如下内容&#xff1a; Web Api 开发.NET 6 项目微服务架构的搭建身份认证移动端应用开发more。。。 专栏结构 专栏分为单体…

分享88个CSS3特效,总有一款适合您

分享88个CSS3特效&#xff0c;总有一款适合您 88个CSS3特效下载链接&#xff1a;https://pan.baidu.com/s/1pDAyFESnO8HSnCZj4-DOzQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

STM32CubeMX中外部中断的配置和使用指南

使用STM32CubeMX进行外部中断&#xff08;External Interrupt&#xff09;的配置和使用对于STM32微控制器开发非常重要。外部中断可以让微控制器在外部事件发生时及时作出反应&#xff0c;例如按键触发、传感器信号等。通过STM32CubeMX的图形化界面&#xff0c;开发人员可以轻松…