AMP State Evolution的计算:以伯努利先验为例

news2024/9/29 15:34:59

AMP State Evolution (SE)的计算

t = 1 t=1 t=1时, E ( t ) = E [ X 2 ] \mathcal E^{(t)} = \mathbb E [X^2] E(t)=E[X2],SE的迭代式为
τ r ( t ) = σ 2 + 1 δ E ( t ) E ( t + 1 ) = E ∣ η ( t ) ( X + Z ) − X ∣ 2 ,   Z ∼ N ( 0 , τ r ( t ) ) \begin{aligned} \tau^{(t)}_r &= \sigma^2 + \frac{1}{\delta} \mathcal E^{(t)} \\ \mathcal E^{(t+1)} &= \mathbb E \left | \eta^{(t)} \left ( X + Z \right) - X \right |^2, \ Z \sim \mathcal N(0, \tau^{(t)}_r) \end{aligned} τr(t)E(t+1)=σ2+δ1E(t)=E η(t)(X+Z)X 2, ZN(0,τr(t))

撰写的时候存在一定的符号乱用,之后的 τ \tau τ即指 τ r ( t ) \tau^{(t)}_r τr(t)

注意到, E ( t + 1 ) = E ∣ η ( t ) ( X + Z ) − X ∣ 2 \mathcal E^{(t+1)} = \mathbb E \left | \eta^{(t)} \left ( X + Z \right) - X \right |^2 E(t+1)=E η(t)(X+Z)X 2是关于随机变量 X , Z X, Z X,Z求期望,这里我们认为 X , Z X, Z X,Z之间相互独立,因此
E ( t + 1 ) = ∫ ∫ p X , Z ( X , Z ) ∣ η ( t ) ( X + Z ) − X ∣ 2 d X d Z \mathcal E^{(t+1)} = \int \int p_{X, Z}(X, Z) \left | \eta^{(t)} \left ( X + Z \right) - X \right |^2 dX dZ E(t+1)=∫∫pX,Z(X,Z) η(t)(X+Z)X 2dXdZ

R = X + Z R = X + Z R=X+Z,不难得到 p X , R ( X , R ) p_{X, R}(X, R) pX,R(X,R)等价于 p X , Z ( X , Z ) p_{X, Z}(X, Z) pX,Z(X,Z)(因为 p X , Z ( X = x 0 , Z = z 0 ) = p X , R ( X = x 0 , R = x 0 + z 0 ) p_{X, Z}(X=x_0, Z=z_0) = p_{X, R}(X=x_0, R=x_0 + z_0) pX,Z(X=x0,Z=z0)=pX,R(X=x0,R=x0+z0)),因此我们可以把 E ( t + 1 ) \mathcal E^{(t+1)} E(t+1)写为(这里我们考虑 η ( t ) \eta^{(t)} η(t)MMSE函数
E ( t + 1 ) = ∫ ∫ p X , R ( X , R ) ∣ η ( t ) ( R ) − X ∣ 2 d X d R = ∫ ∫ p R ( R ) p X ∣ R ( X ∣ R ) ∣ E [ X ∣ R ] − X ∣ 2 d X d R = ∫ p R ( R ) v a r [ X ∣ R ] d R \begin{aligned} \mathcal E^{(t+1)} &= \int \int p_{X, R}(X, R) \left | \eta^{(t)} \left ( R \right) - X \right |^2 dX dR \\ &= \int \int p_R(R) p_{X|R}(X|R) \left | \mathbb E\left [ X|R \right] - X \right |^2 dX dR \\ &= \int p_R(R) \mathrm{var}[X|R] dR \end{aligned} E(t+1)=∫∫pX,R(X,R) η(t)(R)X 2dXdR=∫∫pR(R)pXR(XR)E[XR]X2dXdR=pR(R)var[XR]dR

因为 p X , Z ( X , Z ) = p X ( X ) ⋅ p X ( Z ) = p X ( X ) N ( z ; 0 , τ r ( t ) ) p_{X, Z}(X, Z) = p_X(X) \cdot p_X(Z) = p_X(X) \mathcal N(z;0, \tau^{(t)}_r) pX,Z(X,Z)=pX(X)pX(Z)=pX(X)N(z;0,τr(t)),因此可以得到
p X , R ( X , R ) = p X ( X ) N ( R − X ; 0 , τ r ( t ) ) = p X ( X ) N ( R ; X , τ r ( t ) ) \begin{aligned} p_{X, R}(X, R) &= p_X(X) \mathcal N(R-X;0, \tau^{(t)}_r) \\ &= p_X(X) \mathcal N(R;X, \tau^{(t)}_r) \end{aligned} pX,R(X,R)=pX(X)N(RX;0,τr(t))=pX(X)N(R;X,τr(t))

X的先验为为伯努利分布时

p X ( X ) ≡ ( 1 − ρ ) δ ( X ) + ρ δ ( X − θ ) p_X(X) \equiv (1-\rho) \delta(X) + \rho \delta(X - \theta) pX(X)(1ρ)δ(X)+ρδ(Xθ)

那么, X , R X,R X,R的联合分布可写为
p X , R ( X , R ) = ( ( 1 − ρ ) δ ( X ) + ρ δ ( X − θ ) ) ⋅ N ( X ; R , τ r ( t ) ) = ( 1 − ρ ) δ ( X ) N ( X ; R , τ r ( t ) ) + ρ δ ( X − θ ) N ( X ; R , τ r ( t ) ) \begin{aligned} p_{X, R}(X, R) &= \left ((1-\rho) \delta(X) + \rho \delta(X - \theta) \right) \cdot \mathcal N(X;R, \tau^{(t)}_r) \\ &= (1-\rho) \delta(X) \mathcal N(X;R, \tau^{(t)}_r) + \rho \delta(X - \theta) \mathcal N(X;R, \tau^{(t)}_r) \end{aligned} pX,R(X,R)=((1ρ)δ(X)+ρδ(Xθ))N(X;R,τr(t))=(1ρ)δ(X)N(X;R,τr(t))+ρδ(Xθ)N(X;R,τr(t))

进一步,我们可以得到关于 R R R的边缘分布
p R ( R ) = ∫ p X , R ( X , R ) d X = ( 1 − ρ ) N ( 0 ; R , τ r ( t ) ) + ρ N ( θ ; R , τ r ( t ) ) = ( 1 − ρ ) N ( R ; 0 , τ r ( t ) ) + ρ N ( R ; θ , τ r ( t ) ) \begin{aligned} p_R(R) &= \int p_{X, R}(X, R) dX \\ &= (1-\rho) \mathcal N(0;R, \tau^{(t)}_r) + \rho \mathcal N(\theta;R, \tau^{(t)}_r) \\ &= (1-\rho) \mathcal N(R; 0, \tau^{(t)}_r) + \rho \mathcal N(R; \theta, \tau^{(t)}_r) \end{aligned} pR(R)=pX,R(X,R)dX=(1ρ)N(0;R,τr(t))+ρN(θ;R,τr(t))=(1ρ)N(R;0,τr(t))+ρN(R;θ,τr(t))

我们计算后验均值 E [ X ∣ R ] \mathbb E[X|R] E[XR]
E [ X ∣ R ] = ∫ X p X ∣ R ( X ∣ R ) d X = 1 p R ( R ) ∫ X p X , R ( X , R ) d X = 1 p R ( R ) ⋅ ρ ⋅ ∫ X δ ( X − θ ) N ( X ; R , τ r ( t ) ) d X = 1 p R ( R ) ⋅ ρ ⋅ θ ⋅ N ( R ; θ , τ r ( t ) ) = θ ⋅ ρ N ( R ; θ , τ r ( t ) ) ( 1 − ρ ) N ( R ; 0 , τ r ( t ) ) + ρ N ( R ; θ , τ r ( t ) ) = θ ⋅ 1 1 + 1 − ρ ρ ⋅ N ( R ; 0 , τ r ( t ) ) N ( R ; θ , τ r ( t ) ) = θ ⋅ 1 1 + 1 − ρ ρ ⋅ exp ⁡ {   − 2 θ R − θ 2 2 τ r ( t ) } \begin{aligned} \mathbb E[X|R] &= \int X p_{X|R} (X|R) dX \\ &= \frac{1}{p_R(R)} \int X p_{X,R} (X,R) dX \\ &= \frac{1}{p_R(R)} \cdot \rho \cdot \int X \delta(X - \theta) \mathcal N(X;R, \tau^{(t)}_r) dX \\ &= \frac{1}{p_R(R)} \cdot \rho \cdot \theta \cdot \mathcal N (R; \theta, \tau^{(t)}_r) \\ &= \theta \cdot \frac{ \rho \mathcal N (R; \theta, \tau^{(t)}_r) } {(1-\rho) \mathcal N(R; 0, \tau^{(t)}_r) + \rho \mathcal N(R; \theta, \tau^{(t)}_r) } \\ & = \theta \cdot \frac{ 1 } {1 + \frac{1-\rho}{\rho} \cdot \frac{ \mathcal N(R; 0, \tau^{(t)}_r) }{ \mathcal N(R; \theta, \tau^{(t)}_r) } } \\ &= \theta \cdot \frac{ 1 } {1 + \frac{1-\rho}{\rho} \cdot \exp \left \{\ - \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \} } \end{aligned} E[XR]=XpXR(XR)dX=pR(R)1XpX,R(X,R)dX=pR(R)1ρXδ(Xθ)N(X;R,τr(t))dX=pR(R)1ρθN(R;θ,τr(t))=θ(1ρ)N(R;0,τr(t))+ρN(R;θ,τr(t))ρN(R;θ,τr(t))=θ1+ρ1ρN(R;θ,τr(t))N(R;0,τr(t))1=θ1+ρ1ρexp{ 2τr(t)2θRθ2}1

同理可得,
E [ X 2 ∣ R ] = θ ⋅ E [ X ∣ R ] \mathbb E[X^2|R] = \theta \cdot \mathbb E[X|R] E[X2R]=θE[XR]

因此
v a r [ X ∣ R ] = E [ X 2 ∣ R ] − E [ X ∣ R ] 2 \mathrm{var}[X|R] = \mathbb E[X^2|R] - \mathbb E[X|R]^2 var[XR]=E[X2R]E[XR]2

ψ ( R ) = 1 − ρ ρ ⋅ exp ⁡ {   − 2 θ R − θ 2 2 τ r ( t ) } \psi(R) =\frac{1-\rho}{\rho} \cdot \exp \left \{\ - \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \} ψ(R)=ρ1ρexp{ 2τr(t)2θRθ2},则 v a r [ X ∣ R ] \mathrm{var}[X|R] var[XR]可写为
v a r [ X ∣ R ] = θ 2 1 2 + ψ ( R ) + 1 ψ ( R ) = θ 2 1 2 + 1 − ρ ρ ⋅ exp ⁡ {   − 2 θ R − θ 2 2 τ r ( t ) } + ρ 1 − ρ exp ⁡ {   2 θ R − θ 2 2 τ r ( t ) } \begin{aligned} \mathrm{var}[X|R] &= \theta^2 \frac{1}{ 2+ \psi(R) + \frac{1}{\psi(R) }} \\ &= \theta^2 \frac{1} { 2 + \frac{1- \rho}{\rho} \cdot \exp \left \{\ - \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \} +\frac{\rho}{1-\rho} \exp \left \{\ \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \}} \end{aligned} var[XR]=θ22+ψ(R)+ψ(R)11=θ22+ρ1ρexp{ 2τr(t)2θRθ2}+1ρρexp{ 2τr(t)2θRθ2}1

进一步, E ( t + 1 ) \mathcal E^{(t+1)} E(t+1)可以表征为
E ( t + 1 ) = ∫ p R ( R ) v a r [ X ∣ R ] d R = θ 2 ∫ 1 2 + 1 − ρ ρ ⋅ exp ⁡ {   − 2 θ R − θ 2 2 τ r ( t ) } + ρ 1 − ρ ⋅ exp ⁡ {   2 θ R − θ 2 2 τ r ( t ) } ( ( 1 − ρ ) N ( R ; 0 , τ r ( t ) ) + ρ N ( R ; θ , τ r ( t ) ) ) d R \begin{aligned} \mathcal E^{(t+1)} &= \int p_R(R) \mathrm{var}[X|R] dR \\ &= \theta^2 \int \frac{1} { 2 + \frac{1- \rho}{\rho} \cdot \exp \left \{\ - \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \} + \frac{\rho}{1-\rho} \cdot \exp \left \{\ \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \}} \left ( (1-\rho) \mathcal N(R; 0, \tau^{(t)}_r) + \rho \mathcal N(R; \theta, \tau^{(t)}_r) \right ) dR \end{aligned} E(t+1)=pR(R)var[XR]dR=θ22+ρ1ρexp{ 2τr(t)2θRθ2}+1ρρexp{ 2τr(t)2θRθ2}1((1ρ)N(R;0,τr(t))+ρN(R;θ,τr(t)))dR

总结

t = 1 t=1 t=1时, E ( t ) = E [ X 2 ] \mathcal E^{(t)} = \mathbb E [X^2] E(t)=E[X2],SE的迭代式为
τ r ( t ) = σ 2 + 1 δ E ( t ) E ( t + 1 ) = E ∣ η ( t ) ( X + Z ) − X ∣ 2 ,   Z ∼ N ( 0 , τ r ( t ) ) \begin{aligned} \tau^{(t)}_r &= \sigma^2 + \frac{1}{\delta} \mathcal E^{(t)} \\ \mathcal E^{(t+1)} &= \mathbb E \left | \eta^{(t)} \left ( X + Z \right) - X \right |^2, \ Z \sim \mathcal N(0, \tau^{(t)}_r) \end{aligned} τr(t)E(t+1)=σ2+δ1E(t)=E η(t)(X+Z)X 2, ZN(0,τr(t))

X X X的先验是伯努利时: X ∼ ( 1 − ρ ) δ ( X ) + ρ δ ( X − θ ) X \sim (1-\rho) \delta(X) + \rho \delta(X - \theta) X(1ρ)δ(X)+ρδ(Xθ),可以把SE表征为
t = 1 t=1 t=1时, E ( t ) = E [ X 2 ] = ρ ν \mathcal E^{(t)} = \mathbb E [X^2]= \rho \nu E(t)=E[X2]=ρν,SE的迭代式为
τ r ( t ) = σ 2 + 1 δ E ( t ) E ( t + 1 ) = θ 2 ∫ 1 2 + 1 − ρ ρ ⋅ exp ⁡ {   − 2 θ R − θ 2 2 τ r ( t ) } + ρ 1 − ρ ⋅ exp ⁡ {   2 θ R − θ 2 2 τ r ( t ) } ( ( 1 − ρ ) N ( R ; 0 , τ r ( t ) ) + ρ N ( R ; θ , τ r ( t ) ) ) d R \begin{aligned} \tau^{(t)}_r &= \sigma^2 + \frac{1}{\delta} \mathcal E^{(t)} \\ \mathcal E^{(t+1)} &= \theta^2 \int \frac{1} { 2 + \frac{1- \rho}{\rho} \cdot \exp \left \{\ - \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \} + \frac{\rho}{1-\rho} \cdot \exp \left \{\ \frac{ 2 \theta R - \theta^2 }{2 \tau^{(t)}_r } \right \}} \left ( (1-\rho) \mathcal N(R; 0, \tau^{(t)}_r) + \rho \mathcal N(R; \theta, \tau^{(t)}_r) \right ) dR \end{aligned} τr(t)E(t+1)=σ2+δ1E(t)=θ22+ρ1ρexp{ 2τr(t)2θRθ2}+1ρρexp{ 2τr(t)2θRθ2}1((1ρ)N(R;0,τr(t))+ρN(R;θ,τr(t)))dR

SE部分的MATLAB代码

Iteration = 40;
sigma2 = 0.2632;
rho = 0.1; % sparsity
v_g = 1 / rho; % variance/energy of the non-zero element (prior)
theta = sqrt(v_g);
delta = 0.6; % under-determined ratio
lim = inf;

SE_MSE = zeros(Iteration, 1);
SE_tau2 = zeros(Iteration, 1);

SE_MSE(1) = rho * v_g;
SE_tau2(1) = sigma2 + 1/delta * SE_MSE(1);

bound = 500;
fb = @(b) (b > bound) .* bound + (b < -bound) .* (-bound) + (abs(b) <= bound) .* b;  % bound < f(b) < bound
for it = 2: Iteration
    tau = SE_tau2( it - 1 );
    f = @(r) 1 ./ ...
        ( 2 + (1-rho)./rho .* exp( fb(-0.5 * ( 2 * theta .* r - theta .* theta) / tau ) )  + rho./(1-rho) .* exp( fb(0.5 * ( 2 * theta .* r - theta .* theta) / tau  )) ) ...
        .* ( (1-rho) .* normpdf(r, 0, sqrt(tau)) +  rho .* normpdf(r, theta, sqrt(tau)) );

    SE_MSE(it) = theta^2 * integral(f,-lim,lim);
    SE_tau2(it) = sigma2 + 1/delta * SE_MSE(it);
end

当N=40000时,AMP的MSE性能与SE一致

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

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

相关文章

盘点72个Android系统源码安卓爱好者不容错过

盘点72个Android系统源码安卓爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1qiWeLjF2i4dlgmTYgPPSvw?pwd8888 提取码&#xff1a;8888 项目名称 A keyboardlisten…

AIGC系列之:升级版的Stable Diffusion之SDXL介绍

目录 AIGC工具对比 DALL-E MidJourney Stable Diffusion 相关资料 SDXL介绍 SDXL生图效果 SDXL训练LoRA流程 AIGC工具对比 在目前的三大新兴文本转图像模型中&#xff0c;Stable Diffusion诞生得最晚&#xff0c;但由于拥有发展良好的开源社区&#xff0c;它的用户关注…

Linux系统安装Docker-根据官方教程教程(以Ubuntu为例)

Linux系统安装Docker-根据官方教程教程&#xff08;以Ubuntu为例&#xff09; 1. 背景介绍2. 环境配置2.1 软件环境要求2.2 软件下载2.3 文档地址2.3 必备命令工具下载 3. 安装Docker3.1 使用root用户操作后续命令3.2 卸载可能存在的旧版本 4. 安装Docker4.1 更新依赖包4.4 配置…

530. 二叉搜索树的最小绝对差 在java中,一个类里面的属性,直接定义在类下面和定义在该类的方法里,有什么区别

530. 二叉搜索树的最小绝对差 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;错误经验吸取在java中&#xff0c;一个类里面的属性&#xff0c;直接定义在类下面和定义在该类的方法里&#xff0c;有什么区别&#xff1f;&#xff1f;&…

webshell之反射免杀

主要讲解反射在webshell中的利用&#xff0c;以及反射绕过杀软的利用与原理 原始反射马 免杀效果: 特征太明显里面还有java.lang.Runtime&#xff0c;getRuntime&#xff0c;exec这些敏感内容&#xff0c;由于与反射相关的参数都是字符串&#xff0c;由此我们能操作的空间就很…

接口01-Java

接口-Java 一、引入(快速入门案例)二、接口介绍1、概念2、语法 三、应用场景四、接口使用注意事项五、练习题1 一、引入(快速入门案例) usb插槽就是现实中的接口。 你可以把手机、相机、u盘都插在usb插槽上&#xff0c;而不用担心那个插槽是专门插哪个的&#xff0c;原因是做u…

2023年【危险化学品经营单位安全管理人员】考试总结及危险化学品经营单位安全管理人员模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【危险化学品经营单位安全管理人员】考试总结及危险化学品经营单位安全管理人员模拟试题&#xff0c;包含危险化学品经营单位安全管理人员考试总结答案和解析及危险化学品经营单位安全管理人员模拟试题练习。安…

.NET6实现破解Modbus poll点表配置文件

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 Modbus 协议是工控领域常见…

jq+canvas:实现图片上传+裁剪+保存等功能

效果图 上传图片之前&#xff1a; 上传图片之后&#xff0c;点击放大/缩小后的效果&#xff1a; 裁剪之后的效果&#xff1a; 代码实现如下&#xff1a; 1.html部分 <input type"file" id"fileInput" accept"image/png, image/gif, image/j…

GDOUCTF2023-Reverse WP

文章目录 [GDOUCTF 2023]Check_Your_Luck[GDOUCTF 2023]Tea[GDOUCTF 2023]easy_pyc[GDOUCTF 2023]doublegame[GDOUCTF 2023]L&#xff01;s&#xff01;[GDOUCTF 2023]润&#xff01;附 [GDOUCTF 2023]Check_Your_Luck 根据 if 使用z3约束求解器。 EXP&#xff1a; from z3 i…

OkHttp的配置

一、拦截器 1.添加拦截器的作用&#xff1a; 每次在请求过程中就会回调一次intercept方法 2.拦截器的回调方法里我们可以做那些事情&#xff1a; 当前的请求还没有发给服务器&#xff0c;比如我们在与服务器通信的时候&#xff0c;一个应用中很多地方都会跟服务器发起通信。…

WGS84转CGCS2000操作步骤

1、使用一个转换软件实现不同椭球之间转换七参数的求取。打开坐标转换软件如下&#xff1a; 2、点击设置-地图投影&#xff0c; 如下&#xff1a; 3、设置需要投影到的坐标系&#xff0c;如下&#xff1a; 4、【选择目标坐标系】中选择CGCS2000&#xff0c;如下&#xff1a; 5、…

智能优化算法应用:基于正余弦算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于正余弦算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于正余弦算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.正余弦算法4.实验参数设定5.算法结果6.参考文献7.…

深入Rust的模式匹配与枚举类型

今天&#xff0c;我们将深入探讨Rust语言中的两个强大特性&#xff1a;模式匹配&#xff08;Pattern Matching&#xff09;和枚举类型&#xff08;Enums&#xff09;。这两个特性是Rust提供的核心工具之一&#xff0c;它们在处理多种类型的数据和复杂的逻辑控制中发挥着关键作用…

灰度发布专题---2、Dubbo灰度发布

通过上面描述&#xff0c;我们理解了什么是灰度发布&#xff0c;接下来我们基于Dubbo实现灰度发布。Dubbo的灰度发布常见的方式有版本控制灰度发布、路由灰度发布、基于Apollo实现灰度发布&#xff0c;我们把这每种灰度发布都实现一次。 在学习Dubbo灰度发布之前&#xff0c;我…

2019年11月7日 Go生态洞察:Go Modules v2及更高版本

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

vue3 setup语法糖,常用的几个:defineProps、defineEmits、defineExpose、

vue3和vue2组件之间传参的不同 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。 <script setup> 中的代码会在每次组件实例被创建的时候执行。 任何在 <script setup> 声明的顶层的绑定 (包括变量&#xff0c;函数声明&#xff0…

食材管家,轻松搞定!商户选择生鲜配送系统的原因

随着消费者对生鲜食品的需求不断增加&#xff0c;生鲜市场逐渐成为了电商领域中的热门行业。而生鲜配送系统&#xff0c;则是生鲜电商发展中不可或缺的一部分。本文将探讨商户选择生鲜配送系统的几个原因。 1. 提高效率 生鲜配送系统通过智能化的订单处理、路线规划和配送优化…

2023.11.27 关于 Mybatis 增删改操作

目录 引言 增加用户操作 删除用户操作 修改用户操作 阅读下述文章之间 建议点击下方链接先了解 MyBatis 的创建与使用 MyBatis 的创建与使用 建议点击下方链接先了解 单元测试 的创建与使用 Spring Boot 单元测试的创建与使用 引言 为了方便下文实现增、删、改操作我们先…

java多线程-扩展知识三:乐观锁与悲观锁

1、悲观锁 悲观锁有点像是一位比较悲观&#xff08;也可以说是未雨绸缪&#xff09;的人&#xff0c;总是会假设最坏的情况&#xff0c;避免出现问题。 悲观锁总是假设最坏的情况&#xff0c;认为共享资源每次被访问的时候就会出现问题(比如共享数据被修改)&#xff0c;所以每次…