【Petri网导论学习笔记】Petri网导论入门学习(七) —— 1.5 并发与冲突

导航

      • 1.5 并发与冲突
        • 1.5.1 并发
          • 定义 1.14
          • 定义 1.15
        • 1.5.2 冲突
          • 定义 1.17
        • 1.5.3 一般Petri网系统中的并发与冲突
          • 定义 1.18
          • 一般网系统中无冲撞概念
          • 阻塞(有容量函数K的P/T系统,类似于冲撞)
          • 一般Petri网中并发与冲突共存情况

1.5 并发与冲突

Petri网的一大突出优点就是便于描述并发与冲突,其中同步与并发的概念紧密相连

以下从基本网系统入手进行讨论

1.5.1 并发

考察图 1.15 的基本网系统 Σ 1 = ( B , E ; F , c 0 ) \Sigma_1=(B,E;F,c_0) Σ1=(B,E;F,c0) ,其中 c 0 = { b 1 , b 2 } c_0=\{b_1,b_2\} c0={b1,b2}。在情态 c 0 c_0 c0下事件 e 2 e_2 e2 e 3 e_3 e3都有权发生。这是因为
∙ e 2 = { b 1 } ⊆ c 0   且 e 2 ∙ ∩ c 0 = { b 3 } ∩ {   b 1 , b 2   } = ∅ ∙ e 3 = { b 2 } ⊆ c 0   且 e 3 ∙ ∩ c 0 = { b 4 } ∩ {   b 1 , b 2   } = ∅ ^\bullet e_2=\{b_1\}\subseteq c_0\:\text{且}\quad e_2^\bullet\cap c_0=\{b_3\}\cap\{\:b_1,b_2\:\}=\emptyset\\^\bullet e_3=\{b_2\}\subseteq c_0\:\text{且}\quad e_3^\bullet\cap c_0=\{b_4\}\cap\{\:b_1,b_2\:\}=\emptyset e2={b1}c0e2c0={b3}{b1,b2}=e3={b2}c0e3c0={b4}{b1,b2}=

e 2 e_2 e2前集 b 1 b_1 b1 c 0 c_0 c0 e 2 e_2 e2后集与 c 0 c_0 c0有交集 b 3 b_3 b3且不是 b 1 b_1 b1 b 2 b_2 b2

下面同理

假设 e 2 e_2 e2在情态 c 0 c_0 c0发生,变成新的情态 c 1 = { b 2 , b 3 } c_1=\{b_2,b_3\} c1={b2,b3},易知 e 3 e_3 e3在情态 c 1 c_1 c1仍有发生权。反之,如果 e 3 e_3 e3在情态 c 0 c_0 c0发生,得到新的情态 c 2 = { b 1 , b 4 } c_2=\{b_1,b_4\} c2={b1,b4},则 e 2 e_2 e2在情态 c 2 c_2 c2也仍有发生权。我们说 e 2 e_2 e2 e 3 e_3 e3在情态 c 0 c_0 c0处于并发关系。
一般地说,如果两个事件某情态下都有发生权,而且其中任何一个的发生不会使另一个失去发生权,则称这两个事件在该情态下处于并发

在这里插入图片描述

定义 1.14

Σ = ( B , E ; F , c 0 ) \Sigma=(B,E;F,c_0) Σ=(B,E;F,c0) 为一个EN 系统, e 1 , e 2 ∈ E , c e_1,e_2\in E,c e1,e2E,c Σ \Sigma Σ 的一个情态。

如果

1 ) c [ e 1 > ∧ c [ e 2 > 2 ) c [ e 1 > c 1 → c 1 [ e 2 > ∧ c [ e 2 > c 2 → c 2 [ e 1 > \begin{aligned}&1)c[e_{1}>\wedge c[e_{2}>\\&2)c[e_{1}>c_{1}\to c_{1}[e_{2}>\wedge c[e_{2}>c_{2}\to c_{2}[e_{1}>\\\end{aligned} 1)c[e1>c[e2>2)c[e1>c1c1[e2>c[e2>c2c2[e1>

e 1 e_1 e1 e 2 e_2 e2在情态 c c c上有发生权

e 1 e_1 e1发生后的情态可以继续发生 e 2 e_2 e2 e 2 e_2 e2发生后的情态可以继续发生 e 1 e_1 e1

则称 e 1 e_1 e1 e 2 e_2 e2在情态 c c c并发 , 或者说 e 1 e_1 e1 e 2 e_2 e2在情态 c c c一步发生权,记作 c [ { e 1 , e 2 } > 。 c[\{e_1,e_2\}>。 c[{e1,e2}>
并发不能简单地理解为“同时发生”,而是指事件之间因果上的无依赖性。按网论的观点 , 事件(变迁)的发生只依赖于它们的外延 , 而与全局情况无关。在图1.15 的基本网系统中,事件 e 2 e_2 e2的外延是

∙ e 2 ∪ e 2 ∙ = {   b 1 , b 3   } ^\bullet e_2\cup e_2^\bullet=\{\:b_1,b_3\:\} e2e2={b1,b3}

事件 e 3 e_3 e3的外延是

∙ e 3 ∪ e 3 ∙ = {   b 2 , b 4   } ^\bullet {e_3\cup e_3^\bullet}=\{\:b_2,b_4\:\} e3e3={b2,b4}

由于 e 2 e_2 e2 e 3 e_3 e3的外延之间没有公共部分,所以它们是两个互相独立事件。这是基本网系统中两个事件处于并发的必要条件

现在考察一下 e 2 e_{2} e2 e 4 e_{4} e4两个事件之间的关系。前面已指出,在情态 c 0 = { b 1 , b 2 } c_0=\{b_1,b_2\} c0={b1,b2} e 2 e_{2} e2有发生权,但 e 4 e_4 e4 c 0 c_0 c0没有发生权。如果 e 2 e_2 e2 c 0 c_0 c0发生,得到情态 c 1 = { b 2 , b 3 } c_1=\{b_2,b_3\} c1={b2,b3},易知 e 4 e_{4} e4 c 1 c_1 c1有发生权。也就是说, e 4 e_4 e4的发生权是通过 e 2 e_2 e2 (在 c 0 c_0 c0)发生获得的。我们说 e 2 e_2 e2 e 4 e_4 e4的发生是一种顺序关系。

定义 1.15

( B , E ; F , c 0 ) (B,E;F,c_0) (B,E;F,c0)为一个EN系统, e i , e j ∈ E e_i,e_j\in E ei,ejE, c c c Σ \Sigma Σ 的一个情态。如果

1 ) c [ e i >  但  ¬ c [ e j > 2 ) c [ e i > c ′ → c ′ [ e j > \begin{aligned}&1)c[e_{i}>\text{ 但 }\neg c[e_{j}>\\&2)c[e_{i}>c^{\prime}\to c^{\prime}[e_{j}>\\&\end{aligned} 1)c[ei>  ¬c[ej>2)c[ei>cc[ej>

则称事件 e i e_i ei e j e_j ej顺序关系(sequential relation)

在情态 c c c当中, e i e_i ei可以发生但是 e j e_j ej不能发生,

但是 e i e_i ei发生之后 e j e_j ej可以发生,所以称为有顺序关系。

下面继续考察并发关系的一些性质。前面已经指出,在图1.15 的 EN 系统中,事件 e 2 e_2 e2 e 3 e_3 e3 c 0 = { b 1 , b 3 } c_0=\{b_1,b_3\} c0={b1,b3}并发。如果这时 e 2 e_2 e2发生,得到情态 c 1 = { b 2 , b 3 } c_1=\{b_2,b_3\} c1={b2,b3}。分析一下易知,事件 e 3 e_{3} e3 e 4 e_4 e4 c 1 c_1 c1处于并发关系。这就是说,在该 EN 系统中,既存在情态 c 0 c_0 c0使 e 2 e_2 e2 e 3 e_3 e3处于并发关系,也存在情态 c 1 c_1 c1使 e 3 e_3 e3 e 4 e_4 e4处于并发关系。然而,在该系统的任意情态下, e 2 e_{2} e2 e 4 e_{4} e4都不可能处于并发关系。这说明,并发关系没有传递性。

如果在情态 c 0 c_0 c0发生事件 e 3 e_3 e3,得到情态 c 2 = { b 1 , b 4 } c_2=\{b_1,b_4\} c2={b1,b4},易知事件 e 2 e_2 e2 e 5 e_5 e5 c 2 c_2 c2也处于并发关系。不难看出,这个EN 系统还存在情态 c 3 = { b 3 , b 4 } c_3=\{b_3,b_4\} c3={b3,b4}使得 e 4 e_{4} e4 e 5 e_{5} e5 c 3 c_{3} c3并发。也就是说,在这个系统中,事件对 e 2 e_2 e2 e 3 , e 3 e_3,e_3 e3,e3 e 4 , e 2 e_4,e_2 e4,e2 e 5 e_5 e5 以及 e 4 e_4 e4 e 5 e_5 e5,都有可能处于并发关系。然而,在事件 e 2 e_{2} e2 e 4 e_{4} e4之间以及 e 3 e_{3} e3 e 5 e_{5} e5之间,都是一种顺序关系。在这种情况下,我们也可以说,事件串(序列) e 2 e 4 e_2e_4 e2e4和事件串 e 3 e 5 e_3e_5 e3e5在情态 c 0 c_0 c0处于并发

假如从情态 c 0 c_0 c0 发生事件串 e 2 e 4 e_2e_4 e2e4,得到的情态为 { b 2 , b 5 } \{b_2,b_5\} {b2,b5}。这时只有等待事件串 e 3 e 5 e_3e_5 e3e5 发生后,事件 e 6 e_{6} e6才有发生权。反之,如果从 c 0 c_0 c0发生事件串 e 3 e 5 e_3e_5 e3e5,得到情态 { b 1 , b 6 } \{b_1,b_6\} {b1,b6}。这时也要等待另一事件串 e 2 e 4 e_2e_4 e2e4 发生后,事件 e 6 e_6 e6才有发生权。可见,事件 e 6 e_6 e6起到了使两个并发的事件串 e 2 e 4 e_2e_4 e2e4 e 3 e 5 e_3e_5 e3e5同步作用同步(synchronous)的概念是同并发关系紧密相联的。它也是并发系统中的一个重要概念。

1.5.2 冲突

考察图 1.16 的基本网系统 Σ 2 = ( B , E ; F , c 0 ) \Sigma_2=(B,E;F,c_0) Σ2=(B,E;F,c0) ,其中 c 0 = { b 2 } c_0=\{b_2\} c0={b2}。事件 e 1 e_1 e1 e 3 e_3 e3在情态 c 0 c_0 c0都可能发生。但如果 e 1 e_1 e1发生,产生新的情态 c 1 = { b 1 } c_1=\{b_1\} c1={b1}, e 3 e_3 e3 c 1 c_1 c1失去了发生权。反过来也是这样,如果在情态 c 0 c_0 c0 e 3 e_3 e3发生,得到新的情态 c 2 = { b 3 } c_2=\{b_3\} c2={b3}, e 1 e_1 e1在情态 c 2 c_2 c2失去了发生权。这种情况称为冲突

因为只能选一个变迁发生,所以 e 1 e_1 e1 e 3 e_3 e3不能同时发生。

在这里插入图片描述

e 2  和  e 4  的发生是一种顺序关系。 定义 1.15 设  ( B , E ; F , c 0 )  为一个 EN 系统, e i , e j ∈ E , c  是  Σ  的一个情态。如果 1) c [ e i >  但  ¬ c [ e j > ( 1.38 ) 2) c [ e i > c ′ → c ′ [ e j > ( 1.39 ) \begin{aligned}&e_{2}\text{ 和 }e_{4}\text{ 的发生是一种顺序关系。}\\&\text{定义 1.15 设 }(B,E;F,c_0)\text{ 为一个 EN 系统,}e_i,e_j\in E\text{,}c\text{ 是 }\Sigma\text{ 的一个情态。如果}\\&\text{1)}c[e_{i}>\text{ 但 }\neg c[e_{j}>&&(1.38)\\&\text{2)}c[e_{i}>c^{\prime}\to c^{\prime}[e_{j}>&&(1.39)\end{aligned} e2  e4 的发生是一种顺序关系。定义 1.15  (B,E;F,c0) 为一个 EN 系统,ei,ejE,c  Σ 的一个情态。如果1)c[ei>  ¬c[ej>2)c[ei>cc[ej>(1.38)(1.39)

则称事件 e 1 e_1 e1 e 2 e_2 e2在情态 c c c处于冲突关系

e 1 e_1 e1 e 2 e_2 e2在情态 c c c上有发生权

e 1 e_1 e1发生后的情态可以继续发生 e 2 e_2 e2 e 2 e_2 e2发生后的情态可以继续发生 e 1 e_1 e1

在图 1.16 的这种 EN 系统中, e 1 e_1 e1 e 3 e_3 e3 c 0 c_0 c0 冲突,是因为 c 0 ⊇ ∙ e 1 ∪ ∙ e 3 c_0\supseteq^\bullet e_1\cup^\bullet e_3 c0e1e3 而且 ∙ e 1 ∩ ^\bullet e_1\cap e1 ∙ e 3 ≠ ∅ ^{\bullet}e_3\neq\emptyset e3=。下面考察另一种类型的例子。在图 1.17a)的基本网系统 Σ 3 \Sigma_{3} Σ3中,在情态 c = c= c= { b 1 , b 2 } \{b_1,b_2\} {b1,b2}下,事件 e 1 e_1 e1 e 2 e_2 e2都是可以发生的。然而它们当中只能有一个发生,同时,其中的任一事件发生,都会使另一个失去发生权。因此 e 1 e_1 e1 e 2 e_2 e2 在情态 { b 1 , b 2 } \{b_1,b_2\} {b1,b2} 也处于冲突。然而,这种冲突同图 1.16 的 EN 系统 Σ 2 \Sigma_{2} Σ2中的冲突又有不同之处。在 Σ 3 \Sigma_3 Σ3中,“ e 1 ∩ e_1\cap e1 ∙ e 2 = ∅ ^{\bullet}e_2=\emptyset e2=,但 e 1 ∙ ∩ e 2 ∙ ≠ ∅ e_1^\bullet\cap e_2^\bullet\neq\emptyset e1e2=,所以当其中一个事件如 e 1 e_1 e1发生后, e 2 e_2 e2失去发生权的原因不是 ∙ e 2 ^{\bullet}e_2 e2不满足条件,而在于 e 2 ∙ e_2^\bullet e2不满足条件。即 c [ e 1 > c 1 → c 1 ∩ e 2 ∙ ≠ ∅ , 如图 1.17b)所 ] c\left[e_1>c_1\to c_1\cap e_2^\bullet\neq\emptyset,如图\text{ 1.17b)所}\right] c[e1>c1c1e2=,如图 1.17b)]
示。这种情况称为冲撞(contact)
在这里插入图片描述

定义 1.17

在基本网系统 ( B , E ; F , c 0 ) (B,E;F,c_0) (B,E;F,c0)中, c c c Σ \Sigma Σ的一个情态。若存在 b ∈ B b\in B bB e ∈ E e\in E eE,使得

∙ e ⊆ c  且  b ∈ e ∙ ∩ c ^\bullet e\subseteq c\text{ 且 }b\in e^\bullet\cap c ec  bec

则称该系统在情态 c c c下条件 b b b处有冲撞

多个事件都可以导致一个条件满足,但是其中一个事件发生后后置条件被填满所以不能发生了(因为基本网系统中库所容量上限为1),即为冲撞

冲突是一个条件能发生多个事件,但是只能发生一个。

冲撞是多个事件能满足一个条件,但是只能发生一个事件后其他不能发生了。

在任何情态下,一个条件不存在冲撞基本网系统称为无冲撞系统(contact-free system)
冲突关系也可以这样给出定义:在 EN 系统 ( B , E ; F , c ) (B,E;F,c) (B,E;F,c)中,若 e 1 , e 2 ∈ E e_1,e_2\in E e1,e2E满足
c [ e 1 > 且 c [ e 2 > 但 ¬ c [ e 1 , e 2 } > c\left[\begin{matrix}{e_{1}>}&{\text{且}c}\\\end{matrix}\right[\begin{matrix}{e_{2}>}&{\text{但}\neg c\left[\begin{matrix}{e_{1},e_{2}}\\\end{matrix}\right\}>}\\\end{matrix} c[e1>c[e2>¬c[e1,e2}>
则称 e 1 e_1 e1 e 2 e_2 e2 c c c处于冲突

冲突关系描述了系统的非确定性:在某情况下有两个(或多个)事件都有权发生,但在实际运行过程中,只有一个能真正发生。系统存在冲突之处,正是外界环境可以对其施加控制(加以选择)。
有时候,一个网系统,在某个情态下同时存在并发和冲突,但由于并发事件中的某些事件的发生,会使冲突自动消失。另外还有一种情况,系统在某个情态下存在并发, 而并发事件中不同的事件发生,使得系统可能出现冲突,也可能不出现冲突。上面两种现象称为混惑(confusion)

混惑:

在某个情态下同时存在并发和冲突,但由于并发事件中的某些事件的发生,会使冲突自动消失。

系统在某个情态下存在并发, 而并发事件中不同的事件发生,使得系统可能出现冲突,也可能不出现冲突。

冲突的出现无法确定!尽量避免ta!

第一种混惑的例子如图 1.18 所示。在这个系统中,既有 e 1 e_1 e1 e 2 e_2 e2冲突以及 e 2 e_2 e2 e 3 e_{3} e3冲突,又有 e 1 e_1 e1 e 3 e_3 e3并发。在 e 1 e_1 e1 e 2 e_2 e2冲突中,如果选择 e 1 e_1 e1发生,则 e 2 e_2 e2 e 3 e_3 e3的冲突也就自动消失。
在这里插入图片描述

第二种混惑的例子如图 1.19 所示。在该系统中,在当前状态下事件 e 1 e_{1} e1 e 2 e_{2} e2处于并发。如果事件 e 2 e_2 e2先于 e 1 e_1 e1发生,那么就会产生 e 1 e_1 e1 e 3 e_3 e3的冲突。反之,若 e 1 e_1 e1先于 e 2 e_2 e2发生,这种冲突就不会出现。

存在混惑的网系统不是好的系统模型,因为在这种网系统的运行中,冲突是否出现无法确定,不便于对系统施加外部控制。在建立实际系统的 Petri 网模型时,应尽量避免出现混惑

1.5.3 一般Petri网系统中的并发与冲突

之前的讨论在基本网系统,现在引入到一般Petri网当中

基本网系统引入的并发与冲突等概念,在一般 Petri 网中也存在,而且含义基本相同。但由于不同的网系统的变迁发生规则有所不同,因此有些概念在不同的网系统中表现也略有区别。下面先给出在一般 Petri 网中的并发冲突的定义。

定义 1.18

Σ \Sigma Σ 为一个网系统, t 1 t_1 t1 t 2 t_2 t2 Σ \Sigma Σ 中的两个变迁。如果 Σ \Sigma Σ 的一个标识 M M M 使得 M [ t 1 ⟩ M[t_1\rangle M[t1 M [ t 2 ⟩ M[t_2\rangle M[t2,那么:

  1. M [ t 1 ⟩ M 1 → M 1 [ t 2 ⟩ M 2 M[t_1\rangle M_1 \rightarrow M_1[t_2\rangle M_2 M[t1M1M1[t2M2 M [ t 2 ⟩ M 1 → M 2 [ t 1 ⟩ M[t_2\rangle M_1 \rightarrow M_2[t_1\rangle M[t2M1M2[t1,则称 t 1 t_1 t1 t 2 t_2 t2 M M M 并发,记为 M { t 1 , t 2 ⟩ M\{t_1, t_2\rangle M{t1,t2
  2. M [ t 1 ⟩ M 1 → ¬ M 1 [ t 2 ⟩ M[t_1\rangle M_1 \rightarrow \neg M_1[t_2\rangle M[t1M1¬M1[t2 M [ t 2 ⟩ M 2 → ¬ M 2 [ t 1 ⟩ M[t_2\rangle M_2 \rightarrow \neg M_2[t_1\rangle M[t2M2¬M2[t1,则称 t 1 t_1 t1 t 2 t_2 t2 M M M 冲突(或说在 M M M 处于有效冲突)。

t 1 t_1 t1发生后的新标识 M 1 M_1 M1可以发生 t 2 t_2 t2,对偶亦然。

t 1 t_1 t1发生后的新标识 M 1 M_1 M1可以不发生 t 2 t_2 t2,对偶亦然。

就是把情态 c c c换成了标识 M M M

从定义上看,一般网系统的并发和冲突概念同基本网系统中的定义是一致的,但在实际表现上,却有一些区别

一般网系统中无冲撞概念

首先,一般 Petri 网中没有冲撞的概念。这是因为 Petri 网中的库所容量无限大, 因此,在 Petri 网中,只要一个变迁的前集各库所有足够的标志,该变迁就可以发生。即使该变迁的后集中某些库所含有标志,也不影响变迁的发生。

阻塞(有容量函数K的P/T系统,类似于冲撞)

对于有容量函数 K K K的 P/T 系统,由于对库所容量有一定的容量限制,有时也会出现类似于冲撞的情况,但情况又不完全相同。考察图 1.20 的 P/T 系统,为便于观察,我们把各库所的容量函数值标在表示该库所的小圆圈旁。在这个PT 系统中,变迁 t 1 t_1 t1的前集只有一个元素 s 1 s_1 s1。在当前标识下, s 1 s_1 s1中含有 3 个标志,等于弧 ( s 1 , t 1 ) (s_1,t_1) (s1,t1)上的权。但由于 t 1 t_1 t1的后集库所 s 2 s_2 s2中已有 3 个标记,如果 t 1 t_{1} t1发生将向 s 2 s_{2} s2送入 2 个标记,标记总数(5) 将超过 s 2 s_2 s2的容量( K ( s 2 ) = 4 K(s_2)=4 K(s2)=4),因此在当前标识下, t 1 t_1 t1不能发生。然而,如果在当前状态下, t 2 t_2 t2先发生, t 2 t_2 t2发生后, s 2 s_2 s2中只剩余一个标志。这时,虽然作为 t 1 t_1 t1的后集库所 s 2 s_2 s2中非空,但其容量足以容纳 t 1 t_1 t1发生后送到 s 2 s_2 s2的标志,所以在这种情况下 t 1 t_1 t1就可能发生。这种情况反映了实际系统中的阻塞现象。因此,有人直接把这种情况称之为阻塞
在这里插入图片描述

在 Petri 网中, ∙ t 1 ∩ ∙ t 2 ≠ ∅ ^\bullet t_1\cap^\bullet t_2\neq\emptyset t1t2=是变迁 t 1 t_1 t1 t 2 t_2 t2可能发生冲突的一个必要条件,但不是充分条件。考察图 1.21 的 Petri 网系统。在该网系统中,“ t 1 ∩ ∙ t 2 = { s 2 } ≠ ∅ t_1\cap^{\bullet}t_2=\{s_2\}\neq\emptyset t1t2={s2}=,然而在当前标识下, t 1 t_1 t1 t 2 t_2 t2非但不处于有效冲突,而且地地道道处于并发
在这里插入图片描述

总之,对各种网系统中的并发和冲突的分析,其根本依据是定义 1.18 和各类网系统的变迁发生规则,切不可只看到一点局部结构就轻易下结论。

一般Petri网中并发与冲突共存情况

一般 Petri 网中,也存在并发冲突共存的情况,除了图 1.17 和图 1.18 那样的混惑的情况外,图 1.22a)的网系统是一个有趣的例子。
在这里插入图片描述

在当前标识下,变迁 t 1 t_1 t1 t 2 t_2 t2处于并发。但如果 t 1 t_1 t1 t 2 t_2 t2有一个先发生,在新的标识下 t 1 t_1 t1 t 2 t_2 t2便处于有效冲突。不过,对于这种情况,可以施加外部控制。图 1.22b) 便是对其施加控制后的一个例子。在这里,我们在网系统中加入库所 s 4 s_{4} s4 s 5 s_5 s5使 s 4 t 1 s 5 t 2 s_4t_1s_5t_2 s4t1s5t2形成一个控制回路。加上这样的控制装置后, t 1 t_1 t1 t 2 t_2 t2的有效冲突已经消失。这个控制装置起到了使变迁 t 1 t_1 t1 t 2 t_2 t2轮流分享它们的公共资源(库所 s 1 s_{1} s1的标志)的作用。

加了一个控制回流,让他们轮流发生,共同分享 s 1 s_1 s1

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

lstm基础知识

lstm前言 LSTM(Long short-term memory)通过刻意的设计来避免长期依赖问题,是一种特殊的RNN。长时间记住信息实际上是 LSTM 的默认行为,而不是需要努力学习的东西! 在标准的RNN中,这个重复模块具有非常简单的结构,例…

路由器原理和静态路由配置

一、路由器的工作原理 根据路由表转发数据 接收数据包→查看目的地址→与路由表进行匹配找到转发端口→转发到该端口 二、路由表的形成 它是路由器中维护的路由条目的集合,路由器根据路由表做路径选择,里面记录了网段ip地址和对应下一跳接口的接口号。…

【C语言备课课件】(下)指针pointer

目录 定义type *var_name;初始化int *p &a; // p指向变量a的地址 空指针NULL,野指针,指针悬挂 解引用指针的算术运算指针与数组 数组名—首指针二维数组指针 行指针列指针 多级指针(进阶)数组指针,指针数组(进阶&#xff09…

如何利用 Python抓取网页数据 其他方式抓取网页数据列举

在 Python 中可以使用多种方法抓取网页数据,以下是一种常见的方法,使用requests和BeautifulSoup库。 一、安装所需库 在命令提示符或终端中执行以下命令安装requests和BeautifulSoup库: pip install requests pip install beautifulsoup4二…

python——类

问:小编为什么突然开始发python?难道C语言你不行了? 废话少说,让我们进入python中的类的学习!! (一)基本知识 (1)掌握类的概念 1、类的定义: 即…

python安装transformer教程

本章教程,记录在Windows中如何使用python安装transformer。 一、安装依赖 pip install transformers推荐使用国内镜像源,速度会快很多。 二、测试代码 from transformers import pipeline# 加载一个文本生成模型 text_generator = pipe

LCWLAN设备的实际使用案例

我们的LCWLAN设备在实际使用中以裸板的形式放在客户的智能总线控制器中,客户的 智能总线刀片灯,柔性灯货架,柔性感应钢网柜以及智能电子料架等设备都是接到总线控制 器中,然后总控制器通过CAN总线和我们的LCWLAN设备连接&#xff…

Linux DEADLINE调度算法详解

介绍 在实时系统中,调度算法的选择对于任务的及时执行至关重要。为了满足实时性需求,Linux内核引入了不同的调度算法,其中 DEADLINE 调度算法是为硬实时任务而设计的。DEADLINE 调度算法的目标是在多任务的情况下确保任务在其指定的最后期限…

Cpp::STL—容器适配器Stack和Queue的讲解和模拟实现(15)

文章目录 前言一、适配器模式概念分类 二、Stack核心作用代码实现 三、Queue核心作用代码实现 四、deque双端队列貌似兼收并蓄?实则也难以兼得~ 总结 前言 适配器也是STL六大组件之一,请跟我一起领悟它的智慧!   正文开始! 一、…

如何实现简单的 WinCC 项目分屏?

说明: 本文主要介绍了在不使用分屏器的情况下,通过 WinCC 项目中的设置,实现简单的分屏操作。两台显示器分别显示不同的 WinCC 画面,独自操作,互不影响。 试验环境 : 本文试验时所用硬件及软件环境…

案例分享—国外优秀UI设计作品赏析

国外UI界面设计之所以出色,首要原因在于其注重用户体验。设计师们深入洞察用户需求,通过细致的用户调研和数据分析,确保界面布局、色彩搭配及交互方式都能贴合用户习惯,从而提供流畅、直观的操作体验,增强用户满意度和…

【MySQL】数据库基础、库的操作、表的操作、数据类型

目录 1. 数据库基础1.1 MySQL是什么1.2 使用案例1.3 服务器,数据库,表关系 2. 库的操作2.1 字符集和校验规则2.1.1 查看系统默认字符集以及校验规则2.1.2 查看数据库的字符集和校验规则2.1.3 修改数据库的字符集和校验规则 2.2 库的操作2.2.1 创建数据库…

c++算法第4天

本篇文章包含三道算法题&#xff0c;难度由浅入深&#xff0c;适合新手练习哟 第一题 题目链接 牛牛的快递_牛客题霸_牛客网 题目解析 <1kg -------> 20元 大于1kg&#xff1a;超出部分每千克1元 加急 5元 代码原理 代码编写 #include …

QT 实现自定义水波进度条

1.界面实现效果 以下是具体的项目需要用到的效果展示。 2.简介 原理:随着进度的改变,在我们的绘制图像void paintEvent(QPaintEvent *) override;事件中绘制图形。 使用QPainter来绘制正弦波,通过定时器,不断的更新我们绘制的图形,动态改变正弦波的参数来创建动画效果…

【从零开始的LeetCode-算法】3099. 哈沙德数

如果一个整数能够被其各个数位上的数字之和整除&#xff0c;则称之为 哈沙德数&#xff08;Harshad number&#xff09;。给你一个整数 x 。如果 x 是 哈沙德数 &#xff0c;则返回 x 各个数位上的数字之和&#xff0c;否则&#xff0c;返回 -1 。 示例 1&#xff1a; 输入&am…

提高阅读效率:三种读书笔记方法的实践

你是否曾经感到&#xff0c;尽管阅读了大量书籍&#xff0c;却很少有几本能够留下持久的印象&#xff0c;甚至书中的人物也逐渐从记忆中消失。实际上&#xff0c;这种阅读方式可能并没有太大的价值。要想真正从阅读中获益&#xff0c;培养良好的阅读习惯至关重要&#xff0c;而…

IDEA下lombok安装及找不到get,set的问题的解决方法

在IDEA中使用Lombok,但是在编译时&#xff0c;提示找不到set()和get()方法&#xff0c;明明在javabean中使用了Data注解&#xff0c;但是编译器就是找不到。 Idea下安装Lombok(需要二步) 第一步&#xff1a; pom.xml中加入lombok依赖包 1 2 3 4 5 6 7 <!-- https://mvnre…

Linux的开发工具gcc Makefile gdb的学习

一&#xff1a;gcc/g 1. 1 背景知识 1. 预处理&#xff08;进行宏替换) 预处理 ( 进行宏替换 ) 预处理功能主要包括宏定义,文件包含,条件编译,去注释等。 预处理指令是以#号开头的代码行。 实例: gcc –E hello.c –o hello.i 选项“-E”,该选项的作用是让 gcc 在预处理结…

如何在算家云搭建PhotoMaker(图像生成)

一、PhotoMaker简介 PhotoMaker是一种高效、个性化的文本转图像生成方法&#xff0c;能通过堆叠 ID 嵌入自定义的逼真人类照片。相当于把一张人类照片的特征提取出来&#xff0c;然后生成你想要的不同风格照片&#xff0c;如写真等等。 主要特点&#xff1a; 在几秒钟内快速…

远控代码的重构-远控网络编程的设计上

套路化代码 但是我们这是一个MFC工程,我们需要考虑不是所有操作都需要到main函数里面实现,有些操作可以在main函数之前完成,有些可以在main函数返回以后完成,静态全局变量满足这个需求,我们需要添加一个自己的类 编辑器细节1 添加类和添加类向导的区别,一个是添加自己的类,一…