【自然语言处理】隐马尔科夫模型【Ⅴ】解码问题

news2025/3/11 17:05:06

有任何的书写错误、排版错误、概念错误等,希望大家包含指正。

由于字数限制,分成六篇博客。
【自然语言处理】隐马尔可夫模型【Ⅰ】马尔可夫模型
【自然语言处理】隐马尔科夫模型【Ⅱ】隐马尔科夫模型概述
【自然语言处理】隐马尔科夫模型【Ⅲ】估计问题
【自然语言处理】隐马尔科夫模型【Ⅳ】学习问题
【自然语言处理】隐马尔科夫模型【Ⅴ】解码问题
【自然语言处理】隐马尔科夫模型【Ⅵ】精度问题

2.5. 解码算法

注意,此时我们恢复到对单个序列(样本)进行讨论。

下面介绍隐马尔可夫模型预测的两种算法:近似算法与维特比算法(Viterbi algorithm)。

2.5.1. 近似算法

近似算法的想法是,在每个时刻 t t t 选择在该时刻最有可能出现的状态 s t ∗ s_t^* st,从而得到一个状态序列 S ∗ = ( s 1 ∗ , s 2 ∗ , … , s T ∗ ) S^*=(s_1^*,s_2^*,\dots,s_T^*) S=(s1,s2,,sT),将它作为预测的结果。

给定隐马尔可夫模型 λ \lambda λ 和观测序列 O O O,在时刻 t t t 处于状态 q i q_i qi 的概率 γ t ( i ) \gamma_t(i) γt(i)。在每一时刻 t t t 最有可能的状态 s t ∗ s_t^* st
s t ∗ = a r g max ⁡ 1 ≤ i ≤ N [ γ t ( i ) ] ,      1 ≤ t ≤ T s_t^* = {\rm arg}\max_{1\le i \le N} [\gamma_t(i)],\space\space\space\space 1\le t\le T st=arg1iNmax[γt(i)],    1tT
从而得到状态序列 S ∗ = ( s 1 ∗ , s 2 ∗ , … , s T ∗ ) S^*=(s_1^*,s_2^*,\dots,s_T^*) S=(s1,s2,,sT)

近似算法的优点是计算简单,其缺点是不能保证预测的状态序列整体是最有可能的状态序列,因为预测的状态序列可能有实际不发生的部分。事实上,上述方法得到的状态序列中有可能存在转移概率为 0 0 0 的相邻状态,即对某些 i , j , a i j = 0 i,j,a_{ij}= 0 i,j,aij=0 时。尽管如此,近似算法仍然是有用的。

2.5.2. 维特比算法

维特比算法实际是用动态规划求解隐马尔可夫模型预测问题,即用动态规划求概率最大路径(最优路径)。这时一条路径对应着一个状态序列。

根据动态规划原理,最优路径具有这样的特性:如果最优路径在时刻 t t t 通过结点,那么这一路径从结点 s t ∗ s_t^* st 到终点 s T ∗ s_T^* sT 的部分路径,对于从 s t ∗ s_t^* st s T ∗ s_T^* sT 的所有可能的部分路径来说,必须是最优的。因为假如不是这样,那么从 s t ∗ s_t^* st s T ∗ s_T^* sT 就有另一条更好的部分路径存在,如果把它和从 s 1 ∗ s_1^* s1 到达 s t ∗ s_t^* st 的部分路径连接起来,就会形成一条比原来的路径更优的路径,这是矛盾的。依据这一原理,我们只需从时刻 t = 1 t =1 t=1 开始,递推地计算在时刻 t t t 状态为 q i q_i qi 的各条部分路径的最大概率,直至得到时刻 t = T t =T t=T 状态为 q i q_i qi 的各条路径的最大概率。时刻 t = T t =T t=T 的最大概率即为最优路径的概率 P ∗ P^* P,最优路径的终结点 s T ∗ s_T^* sT 也同时得到。之后,为了找出最优路径的各个结点,从终结点 s T ∗ s_T^* sT 开始,由后向前逐步求得结点 s T − 1 ∗ … , s 1 ∗ s_{T-1}^*\dots,s_1^* sT1,s1,得到最优路径 S ∗ = ( s 1 ∗ , s 2 ∗ , … , s T ∗ ) S^*=(s_1^*, s_2^*,\dots,s_T^*) S=(s1,s2,,sT)。这就是维特比算法。

首先引入两个变量 δ \delta δ ψ \psi ψ。定义在时刻 t t t 状态为 q i q_i qi 的所有单个路径 ( s 1 , s 2 , … , s t ) (s_1,s_2,\dots, s_t) (s1,s2,,st) 中概率最大值为
δ t ( i ) = max ⁡ s 1 , s 2 , … , s t − 1 P ( o t , o t − 1 , … , o 1 , s t = q i , s t − 1 , … , s 1 ∣ λ ) ,      1 ≤ i ≤ N (24) \delta_t(i) = \max _{s_1,s_2,\dots, s_{t-1}} P(o_t, o_{t-1},\dots, o_1,s_{t}=q_i,s_{t-1},\dots, s_1\mid \lambda),\space\space\space\space 1\le i\le N \tag{24} δt(i)=s1,s2,,st1maxP(ot,ot1,,o1,st=qi,st1,,s1λ),    1iN(24)
由定义可得变量 δ \delta δ 的递推公式:
δ t + 1 ( i ) = max ⁡ s 1 , s 2 , … , s t P ( o t + 1 , o t , … , o 1 , s t + 1 = q i , s t , … , s 1 ∣ λ ) = max ⁡ 1 ≤ j ≤ N [ δ t ( j ) a j i ] b i ( o t + 1 ) ,      1 ≤ i ≤ N ; 1 ≤ t ≤ T − 1 (25) \begin{aligned} \delta_{t+1}(i) &= \max_{s_1,s_2,\dots, s_{t}} P(o_{t+1}, o_{t},\dots, o_1,s_{t+1}=q_i,s_{t},\dots, s_1\mid \lambda)\\ &= \max_{1\le j\le N}[\delta_t(j) a_{ji}] b_i(o_{t+1}),\space\space\space\space 1\le i\le N;1\le t\le T-1 \tag{25} \end{aligned} δt+1(i)=s1,s2,,stmaxP(ot+1,ot,,o1,st+1=qi,st,,s1λ)=1jNmax[δt(j)aji]bi(ot+1),    1iN;1tT1(25)
定义在时刻 t t t 状态为 q i q_i qi 的所有单个路径 ( s 1 , s 2 , … , s t − 1 , s t = q i ) (s_1,s_2,\dots ,s_{t-1},s_t=q_i) (s1,s2,,st1,st=qi) 中概率最大的路径的第 t − 1 t - 1 t1 个结点为
ψ t ( i ) = a r g max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] ,      , 1 ≤ i ≤ N (26) \psi_t(i) = {\rm arg} \max_{1\le j \le N} [\delta_{t-1}(j) a_{ji}],\space\space\space\space,1\le i \le N \tag{26} ψt(i)=arg1jNmax[δt1(j)aji],    ,1iN(26)
ψ t ( i ) \psi_t(i) ψt(i) 保存的是时刻 t t t 状态 s t = q i s_t=q_i st=qi 由时刻 t − 1 t-1 t1 的哪种状态转移而来。如果将递推过程类比构建一棵树的话, ψ t ( i ) \psi_t(i) ψt(i) 保存的孩子结点的父结点,这样方可通过回溯确定最优路径。

维特比算法的大致流程如下。

输入:   模 型   λ = ( A , B , π ) ,   观 测   O = ( o 1 , o 2 , … , o T ) 过程: \begin{array}{ll} \textbf{输入:}&\space模型\space \lambda=(A,B,\pi),\space 观测 \space O=(o_1,o_2,\dots,o_T) \\ \textbf{过程:} \end{array} 输入:过程:  λ=(A,B,π),  O=(o1,o2,,oT)

1 : 初 始 化 δ 1 ( i ) = π i b i ( o 1 ) , 1 ≤ i ≤ N ψ 1 ( i ) = 0 , 1 ≤ i ≤ N 2 : 递 推 。 对   t = 2 , 3 , … , T δ t ( i ) = max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] b i ( o t ) , 1 ≤ i ≤ N ψ t ( i ) = a r g max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] , 1 ≤ i ≤ N 3 : 终 止 P ∗ = max ⁡ 1 ≤ i ≤ N δ T ( i ) s T ∗ = a r g max ⁡ 1 ≤ j ≤ N [ δ T ( i ) ] 4 : 最 优 路 径 回 溯 。 对   t = T − 1 , T − 2 , … , 1 s t ∗ = ψ t + 1 ( s t + 1 ∗ ) 求 得 最 优 路 径   S ∗ = ( s 1 ∗ , s 2 ∗ , … , s T ∗ ) \begin{array}{rl} 1:& 初始化\\ \\ &\begin{array}{c} \delta_1(i) = \pi_ib_i(o_1), & 1\le i\le N \\ \psi_1(i) = 0, & 1\le i\le N \\ \end{array}\\\\ 2:& 递推。对 \space t=2,3,\dots, T\\ \\ &\begin{array}{c} \delta_t(i) = \max\limits_{1\le j\le N}[\delta_{t-1}(j) a_{ji}] b_i(o_{t}),& 1\le i\le N \\ \psi_t(i) = {\rm arg} \max \limits_{1\le j \le N} [\delta_{t-1}(j) a_{ji}],& 1\le i \le N \end{array}\\\\ 3:& 终止\\ \\ &\begin{array}{c} P^* = \max \limits_{1\le i\le N} \delta_T(i) \\ s_T^* = {\rm arg}\max \limits_{1\le j\le N} [\delta_T(i)] \end{array}\\\\ 4:& 最优路径回溯。对 \space t=T-1,T-2,\dots,1\\ \\ &\begin{array}{c} & s_t^* = \psi_{t+1}(s_{t+1}^*) \end{array}\\\\ & 求得最优路径\space S^* = (s_1^*,s_2^*,\dots, s_T^*) \end{array} 1:2:3:4:δ1(i)=πibi(o1),ψ1(i)=0,1iN1iN t=2,3,,Tδt(i)=1jNmax[δt1(j)aji]bi(ot),ψt(i)=arg1jNmax[δt1(j)aji],1iN1iNP=1iNmaxδT(i)sT=arg1jNmax[δT(i)] t=T1,T2,,1st=ψt+1(st+1) S=(s1,s2,,sT)

输出:   最 优 路 径   S ∗ = ( s 1 ∗ , s 2 ∗ , … , s T ∗ ) \begin{array}{l} \textbf{输出:}\space 最优路径 \space S^* = (s_1^*,s_2^*,\dots, s_T^*) &&&&&& \end{array} 输出:  S=(s1,s2,,sT)

算法 2    维特比算法

上面对维特比算法的介绍还是比较抽象,配合下面的例子来直观理解维特比算法的过程。

继续采用上面的例子,模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)
A = [ 0.5 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.5 ] ,      B = [ 0.5 0.5 0.4 0.6 0.7 0.3 ] ,      π = [ 0.2 0.4 0.4 ] A = \left[\begin{matrix} 0.5 & 0.2 & 0.3 \\ 0.3 & 0.5 & 0.2 \\ 0.2 & 0.3 & 0.5 \\ \end{matrix}\right],\space\space\space\space B = \left[\begin{matrix} 0.5 & 0.5 \\ 0.4 & 0.6 \\ 0.7 & 0.3 \\ \end{matrix}\right],\space\space\space\space \pi = \left[\begin{matrix} 0.2 \\ 0.4 \\ 0.4 \\ \end{matrix}\right] A=0.50.30.20.20.50.30.30.20.5,    B=0.50.40.70.50.60.3,    π=0.20.40.4
已知观测序列 O = ( O=( O=( , , , , , , ) ) ),试求最优状态序列,即最优路径 S ∗ = ( s 1 ∗ , s 2 ∗ , s 3 ∗ ) S^*=(s_1^*,s_2^*,s_3^*) S=(s1,s2,s3)

如图 6 6 6 所示,要在所有可能的路径中选择一条最优路径,按照以下步骤处理:

在这里插入图片描述

图 6    求最优路径

从图 6 6 6 中可以看出树型结构, ψ \psi ψ 保存每个结点的父结点。由于要从时刻 t = 1 t=1 t=1 中选出一个结点作为根结点建树,所以时刻 t = 1 t=1 t=1 对应的三个结点是没有父结点的,即 ψ = 0 \psi=0 ψ=0

初始化。在 t = 1 t=1 t=1 时,对每一个状态 q i q_i qi i = 1 , 2 , 3 i=1,2,3 i=1,2,3,求状态为 q i q_i qi 观测 o 1 o_1 o1 为红的概率,记该概率为 δ 1 ( i ) \delta_1(i) δ1(i),则
δ 1 ( i ) = π i b i ( o 1 ) = π i b i ( 红 ) ,      i = 1 , 2 , 3 \delta_1(i) = \pi_ib_i(o_1) = \pi_i b_i(红),\space\space\space\space i=1,2,3 δ1(i)=πibi(o1)=πibi(),    i=1,2,3
代入实际数据
δ 1 ( 1 ) = 0.2 × 0.5 = 0.10 δ 1 ( 2 ) = 0.4 × 0.4 = 0.16 δ 1 ( 3 ) = 0.4 × 0.7 = 0.28 \delta_1(1) = 0.2\times 0.5 = 0.10 \\ \delta_1(2) = 0.4\times 0.4 = 0.16 \\ \delta_1(3) = 0.4\times 0.7 = 0.28 \\ δ1(1)=0.2×0.5=0.10δ1(2)=0.4×0.4=0.16δ1(3)=0.4×0.7=0.28
ψ 1 ( i ) = 0 \psi_1(i) = 0 ψ1(i)=0 i = 1 , 2 , 3 i=1,2,3 i=1,2,3

t = 2 t=2 t=2 时,对每个状态 q i q_i qi i = 1 , 2 , 3 i=1,2,3 i=1,2,3,求在 t = 1 t=1 t=1 时状态为 q j q_j qj 观测为红并在 t = 2 t=2 t=2 时状态为 q i q_i qi 观测 o 2 o_2 o2 为白的路径的最大概率,记此最大概率为 δ 2 ( i ) \delta_2(i) δ2(i),则
δ 2 ( i ) = max ⁡ 1 ≤ j ≤ 3 [ δ 1 ( j ) a j i ] b i ( o 2 ) \delta_2(i) = \max _{1\le j\le 3} [\delta_1(j) a_{ji}] b_i(o_2) δ2(i)=1j3max[δ1(j)aji]bi(o2)
同时,对每个状态 q i q_i qi i = 1 , 2 , 3 i=1,2,3 i=1,2,3,记录概率最大路径的前一个状态 q j q_j qj
ψ 2 ( i ) = a r g max ⁡ 1 ≤ j ≤ 3 [ δ 1 ( j ) a j i ] ,      i = 1 , 2 , 3 \psi_2(i) = {\rm arg} \max_{1\le j\le 3} [\delta_1(j)a_{ji}],\space\space\space\space i=1,2,3 ψ2(i)=arg1j3max[δ1(j)aji],    i=1,2,3
计算:
δ 2 ( 1 ) = max ⁡ 1 ≤ j ≤ 3 [ δ 1 ( j ) a j 1 ] b 1 ( o 2 ) = max ⁡ j { 0.10 × 0.5 , 0.16 × 0.3 , 0.28 × 0.2 } × 0.5 = 0.028 ψ 2 ( 1 ) = 3 δ 2 ( 2 ) = max ⁡ 1 ≤ j ≤ 3 [ δ 1 ( j ) a j 2 ] b 2 ( o 2 ) = max ⁡ j { 0.10 × 0.2 , 0.16 × 0.5 , 0.28 × 0.3 } × 0.6 = 0.0504 ψ 2 ( 2 ) = 3 δ 2 ( 3 ) = max ⁡ 1 ≤ j ≤ 3 [ δ 1 ( j ) a j 3 ] b 3 ( o 2 ) = max ⁡ j { 0.10 × 0.3 , 0.16 × 0.2 , 0.28 × 0.5 } × 0.3 = 0.042 ψ 2 ( 3 ) = 3 \begin{aligned} \delta_2(1) &= \max_{1\le j\le 3} [\delta_1(j)a_{j1}] b_1(o_2)\\ &= \max_j\{0.10\times 0.5,0.16\times 0.3,0.28\times 0.2\}\times 0.5 \\ &= 0.028 \\ \psi_2(1)&=3 \\\\ \delta_2(2) &= \max_{1\le j\le 3} [\delta_1(j)a_{j2}] b_2(o_2)\\ &= \max_j\{0.10\times 0.2,0.16\times 0.5,0.28\times 0.3\}\times 0.6 \\ &= 0.0504 \\ \psi_2(2)&=3 \\\\ \delta_2(3) &= \max_{1\le j\le 3} [\delta_1(j)a_{j3}] b_3(o_2)\\ &= \max_j\{0.10\times 0.3,0.16\times 0.2,0.28\times 0.5\}\times 0.3 \\ &= 0.042 \\ \psi_2(3)&=3 \\ \end{aligned} δ2(1)ψ2(1)δ2(2)ψ2(2)δ2(3)ψ2(3)=1j3max[δ1(j)aj1]b1(o2)=jmax{0.10×0.5,0.16×0.3,0.28×0.2}×0.5=0.028=3=1j3max[δ1(j)aj2]b2(o2)=jmax{0.10×0.2,0.16×0.5,0.28×0.3}×0.6=0.0504=3=1j3max[δ1(j)aj3]b3(o2)=jmax{0.10×0.3,0.16×0.2,0.28×0.5}×0.3=0.042=3
同样,在 t = 3 t=3 t=3 时,
δ 3 ( i ) = max ⁡ 1 ≤ j ≤ 3 [ δ 2 ( j ) a j i ] b i ( o 3 ) ψ 3 ( i ) = a r g max ⁡ 1 ≤ j ≤ 3 [ δ 2 ( j ) a j i ] δ 3 ( 1 ) = 0.00756 ψ 3 ( 1 ) = 2 δ 3 ( 2 ) = 0.01008 ψ 3 ( 2 ) = 2 δ 3 ( 3 ) = 0.0147 ψ 3 ( 3 ) = 3 \begin{aligned} \delta_3(i) &= \max_{1\le j\le 3} [\delta_2(j)a_{ji}] b_i(o_3) \\ \psi_3(i) &= {\rm arg}\max_{1\le j\le 3} [\delta_2(j)a_{ji}] \\\\ \delta_3(1) &= 0.00756 \\ \psi_3(1) &= 2 \\ \delta_3(2)& = 0.01008 \\ \psi_3(2) &= 2 \\ \delta_3(3) &= 0.0147 \\ \psi_3(3) &= 3 \\ \end{aligned} δ3(i)ψ3(i)δ3(1)ψ3(1)δ3(2)ψ3(2)δ3(3)ψ3(3)=1j3max[δ2(j)aji]bi(o3)=arg1j3max[δ2(j)aji]=0.00756=2=0.01008=2=0.0147=3
P ∗ P^* P 表示最优路径的概率,则
P ∗ = max ⁡ 1 ≤ i ≤ 3 δ 3 ( i ) = 0.0147 P^* = \max_{1\le i \le 3} \delta_3(i) = 0.0147 P=1i3maxδ3(i)=0.0147
最优路径的终点是 s 3 ∗ s_3^* s3
s 3 ∗ = a r g max ⁡ i [ δ 3 ( i ) ] = 3 s_3^* = {\rm arg}\max_i [\delta_3(i)] = 3 s3=argimax[δ3(i)]=3
由最优路径的终点 s 3 ∗ s_3^* s3,逆向找到 s 2 ∗ s_2^* s2 s 1 ∗ s_1^* s1。在 t = 2 t=2 t=2 时, s 2 ∗ = ψ 3 ( s 3 ∗ ) = ψ 3 ( 3 ) = 3 s_2^* = \psi_3(s_3^*) = \psi_3(3)=3 s2=ψ3(s3)=ψ3(3)=3;在 t = 1 t=1 t=1 时, s 1 ∗ = ψ 2 ( s 2 ∗ ) = ψ 2 ( 3 ) = 3 s_1^* = \psi_2(s_2^*) = \psi_2(3)=3 s1=ψ2(s2)=ψ2(3)=3。于是求得最优路径,即最优状态序列 S ∗ = ( s 1 ∗ , s 2 ∗ , s 3 ∗ ) = ( 3 , 3 , 3 ) S^* = (s_1^*,s_2^*,s_3^*)=(3,3,3) S=(s1,s2,s3)=(3,3,3)

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

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

相关文章

基于安卓的校园订餐系统开发设计

目 录 Abstract 6 1 绪 论 1 1.1 研究背景 1 1.2 研究意义 1 1.3 国内外研究现状 1 1.4 研究的过程和结果 2 1.5 论文主要组织结构 3 2 设计原理和方法 4 2.2 关键技术简介 4 2.3 开发工具 5 2.4 应用平台 6 3 需求分析 8 3.1 功能性需求 8 3.2 非功能需求 17 4 系统概要设计 1…

JS文件操作介绍

JS文件操作介绍 本文将介绍前端浏览器支持的JS文件操作技术。相关权威技术资料 带有 type"file" 的 <input> 元素允许用户可以从他们的设备中选择一个或多个文件。<input type"file"> - HTML&#xff08;超文本标记语言&#xff09; | MDN …

HDFS的API操作

目录 依赖环境 AIP操作hdfs基本流程 创建目录 文件上传 参数优先级 文件下载 文件删除 文件更名与移动 查看HDFS文件的详情信息 文件和文件夹的判断 依赖环境 hadoop依赖&#xff1a; Maven Repository&#xff08;Maven仓库&#xff09;- https://mvnrepository.com/…

中小型企业 CRM 系统有哪些好的推荐?

不同行业的中小型企业在资源、需求、抗风险能力、业务成熟度等方面存在显著差异&#xff0c;因此对CRM的应用需求有不同侧重。 图源&#xff1a;艾瑞咨询我专门研究了一些CRM的行业报告&#xff0c;比较了一下当下几款比较热门的CRM&#xff0c;希望能够帮助大家找到自己的“心…

【能效管理】AcrelEMS-IDC数据中心综合能效管理系统应用分析

概述 安科瑞电气紧跟数据中心发展形式&#xff0c;推出AcrelEMS-IDC数据中心综合能效管理解决方案&#xff0c;包含有电力监控、动环监控、消防监控、能耗统计分析、智能照明控制以及新能源监测几个子系统。集成了变配电监测、电源备自投、电气接点测温、智能照明控制、电能质…

PD芯片在OTG设备的角色应用及OTG发展历史

OTG是On-The-Go的缩写&#xff0c;是近年发展起来的技术。2001年12月18日由USB标准化组织公布&#xff0c;主要应用于不同的设备或移动设备间的联接&#xff0c;进行数据交换。 USB技术的发展&#xff0c;使得PC和周边设备能够通过简单的方式、适度的制造成本&#xff0c;将各…

渗透测试sec123笔记

1.外网打点 1.1端口探测 └─$ sudo masscan 192.168.1.103 -p 1-65535 --rate100 masscan扫描结果 └─$ nmap -sV 192.168.1.103 -sC -p 8088,5985,49154,49173,80,8878,47001,7000,49153,49157,3389,49155,49152,8899,49161 -oN sec-ports …

开发转测试:从零开始的6年自动化之路,太迷茫...

自动化初识 作为一个测试人&#xff0c;我们或多或少都听过或用过自动化&#xff0c;我们都曾在初入测试行业时&#xff0c;满怀期待的以为测试的尽头是不用测试员点点了&#xff0c;项目一提测&#xff0c;小手点下自动化的开关&#xff0c;瞬间测试的工作就完成了。 这就是…

4-Arm PEG-Biotin,4-Arm peg-Biotin,四臂-聚乙二醇-生物素科研试剂供应

一&#xff1a;产品描述 1、名称 英文&#xff1a;4-Arm PEG-Biotin&#xff0c;4-Arm peg-Biotin 中文&#xff1a;四臂-聚乙二醇-生物素 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Biotin PEG Multi-arm PEGs 4、分子量&#xff1a;可定制&#xff0c;四臂-PE…

BundleTrack自用配置笔记

0、下载代码 git clone https://github.com/wenbowen123/BundleTrack.git 或者选择Download ZIP 1、按照Ubuntu版本安装docker 查看docker版本 $ docker version 在1080显卡上测试时出现bug&#xff0c;找到一个解决的文章&#xff0c;本人适用 docker: Error response…

微信小程序模板与配置

文章目录1. 数据绑定2. 事件绑定3. 事件传参4. 网络请求1. 数据绑定 在data中定义数据&#xff1a;在页面对应的js文件中&#xff0c;把数据定义到data对象中即可 // index.js Page({// string 类型info:init data,// 数组 类型msgList:[{msg:hello},{msg:world}] })在WXML中使…

测试人员面试需要掌握的内容,软件测试面试题答案

1、在公司的测试流程是什么&#xff1f; 产品经理确认本次版本的需求&#xff0c;召开需求评审会&#xff0c;进行估时排期&#xff0c;需求和时间都确定之后&#xff0c;UI出设计图&#xff0c;开发人员进行开发&#xff0c;测试人员编写测试用例&#xff0c;召开用例评审会议…

12.13

AJAX 视频 1-11 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据。 AJAX 不是新的编程语言&#xff0c;而是一种将现有…

909. 蛇梯棋-广度优先遍历

909. 蛇梯棋-广度优先遍历 给你一个大小为 n x n 的整数矩阵 board &#xff0c;方格按从 1 到 n2 编号&#xff0c;编号遵循 转行交替方式 &#xff0c;从左下角开始 &#xff08;即&#xff0c;从 board[n - 1][0] 开始&#xff09;每一行交替方向。 玩家从棋盘上的方格 1 …

高压开关电源3D PCB绘制教程:SOLIDWORKS绘制瓷片电容教程

本教程配有配套视频教程&#xff0c;读者可以配合配套的视频教程学习&#xff0c;下载本课的对应课件和源文件&#xff0c;更多课程及材料&#xff0c;敬请关注凡亿教育&#xff1a;《高压开关电源3D PCB绘制教程》。绘制指导&#xff1a;家介绍瓷片电容的绘制方法&#xff0c;…

ICML2018 | PixelSNAIL+:An Improved Autoregressive Generative Model

论文链接&#xff1a;PixelSNAIL: An Improved Autoregressive Generative Model 论文标题&#xff1a;PixelSNAIL: An Improved Autoregressive Generative Model 代码&#xff1a;GitHub - neocxi/pixelsnail-public GitHub - neocxi/pixelsnail-public 一、问题提出 高…

程序人生:25岁我从零基础转到软件测试,我看到了前途...目前28K

推荐好文&#xff1a; [内部资源] 想拿年薪30W的软件测试人员&#xff0c;这份资料必须领取~ Python自动化测试全栈性能测试全栈&#xff0c;挑战年薪40W 没有一个人的人生&#xff0c;能够按照自己写好的脚本去走。从一而终是幸运的&#xff0c;但也是不幸的&#xff0c;因…

1568_AURIX_TC275_电源管理_唤醒配置与状态

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 如果有待机RAM保持的功能激活了&#xff0c;那么唤醒以及复位都不会进行RAM的重新初始化。 PORST相关的滤波开了之后&#xff0c;可以抵抗500ns的尖峰脉冲干扰。 CPU不仅可以请求自我进入i…

代码随想录刷题记录 day43 股票买卖的最佳时机1 2

代码随想录刷题记录 day43 股票买卖的最佳时机1 2 参考&#xff1a;代码随想录 121. 买卖股票的最佳时机 思想 dp数组定义 dp[i][0]表示 第i天 持有股票 手头的最大的现金数为dp[i][0] dp[i][1]表示 第i天 不持有股票 手头的最大的现金数为dp[i][1] 递推公式 dp[i][0] dp[i-…

2004-2020年全国31省环境规制强度

2004-2020年全国各省环境规制强度 1、时间区间为2004-2020年 2、范围&#xff1a;包括全国31个省份 3、缺失情况&#xff1a;西藏存在部分年份缺失&#xff0c;其他省份无缺失 4、指标包括&#xff1a; 工业污染治理完成投资(万元)、第二产业增加值(亿元)、环境规制强度 …