计算理论基础:4、复杂性理论

复杂性理论

c e n t e r p r o b l e m : P ≠ N P center\ \ problem:P \ne NP center  problem:P=NP

1.P、EXP、NP

定义1 D T I M E DTIME DTIME

T : N → N T:\N\rightarrow \N T:NN,语言 L ∈ D T I M E ( T ( n ) ) L\in DTIME(T(n)) LDTIME(T(n)),当且仅当存在一个多带图灵机(常数带),可以在时间 O ( T ( n ) ) O(T(n)) O(T(n))的时间里判定 L L L

定义2 P 、 E X P P、EXP PEXP

P = ⋃ c ≥ 1 D T I M E ( n c ) P=\bigcup_{c\ge1 } DTIME(n^c) P=c1DTIME(nc)(多项式时间)

E x p = ⋃ c > 1 D T I M E ( 2 n c ) Exp =\bigcup_{c>1} DTIME(2^{n^c}) Exp=c>1DTIME(2nc)(指数时间)

例如:

​ 最短路 O ( M 2 ) O ( ∣ E ∣ + M l o g M ) O(M^2)\ O(|E|+MlogM) O(M2) O(E+MlogM)

​ 最小生成树 O ( ∣ E ∣ l o g M ) O ( ∣ E ∣ + M l o g ∣ M ∣ ) O(|E|log M)\ O(|E|+Mlog|M|) O(ElogM) O(E+MlogM)

​ 最大流:

​ 增广路算法 O ( ∣ v ∣ ∣ E ∣ 2 ) O(|v||E|^2) O(v∣∣E2)

​ 预流推进 O ( ∣ v ∣ 3 ) O(|v|^3) O(v3)

​ CKLPGS(22年) O ( ∣ E ∣ ( 1 + O ( 1 ) ) ) O(|E|^{(1+O(1))}) O(E(1+O(1)))

​ 线性规划:(n个变量,输入有L位bit长)

g ( n ) ∈ O ~ ( ) g(n)\in\tilde{O}() g(n)O~(),如果 ( ∃ c > 0 ) ( g ( n ) ∈ O ( f ( n ) l o g c n ) ) (\exist c\gt 0)(g(n)\in O(f(n)log^cn)) (c>0)(g(n)O(f(n)logcn))

​ 字符串匹配 O ( ∣ v ∣ + ∣ E ∣ ) O(|v|+|E|) O(v+E)

​ 并查集 O ( m α ( n ) ) , α O(m\alpha(n)),\alpha O(mα(n)),α A c k e r m a n Ackerman Ackerman的反函数

e f f i c i e n t = n O ( 1 ) efficient = n^{O(1)} efficient=nO(1)多项式时间,

定理3 有向图中判断是否有路属于P

P A T H = { < G , s , t > : G 是有向图,且存在一条 s 到 t 的路 } PATH=\{<G,s,t>:G是有向图,且存在一条s到t的路\} PATH={<G,s,t>:G是有向图,且存在一条st的路}

定理4 判断互质属于P

R E L P R I M E = { < x , y > : x , y 互质 } RELPRIME=\{<x,y>:x,y互质\} RELPRIME={<x,y>:x,y互质}

使用欧几里得算法

E u c l i d G C D ( x , y ) : Euclid\ GCD(x,y): Euclid GCD(x,y):

i f x < y t h e n s w a p x , y if\ x<y\ then\ swap\ x,y if x<y then swap x,y

w h i l e y > 0 : while\ y>0: while y>0:

​ $ x \leftarrow x\ mod\ y$

s w a p x , y swap\ x,y swap x,y

r e t u r n x return\ x return x

在欧几里得算法中,x每次都会减半

​ 若 x 2 ≥ y \frac x2 \ge y 2xy,那么 x % y < y ≤ x 2 x\% y<y \le \frac x2 x%y<y2x

​ 若 x 2 < y \frac x2 <y 2x<y,那么 x % y = x = ⌊ x y ⌋ y = x − y < x 2 x\%y = x=\lfloor\frac xy\rfloor y=x-y\lt \frac x2 x%y=x=yxy=xy<2x

​ 所以 x x x每次至少减半

# i t e r a t i o n s = O ( l o g 2 x ) = O ( l o g 2 2 O ( l 1 ) ) = O ( l 1 ) = O ( n ) \# iterations = O(log_2x)=O(log_22^{O(l_1)})=O(l_1)=O(n) #iterations=O(log2x)=O(log22O(l1))=O(l1)=O(n)计算理论中的 n n n表示输入的长度

在每次循环中,我们要计算取模,需要 O ( n 2 ) O(n^2) O(n2)

则总共需要 O ( n 3 ) O(n^3) O(n3)

定理5 判断质数属于EXP

P R I M E = { x : x 是一个二进制形式的质数 } PRIME=\{x:x是一个二进制形式的质数\} PRIME={x:x是一个二进制形式的质数}

P R I M E ∈ E X P PRIME\in EXP PRIMEEXP

P r o o f Proof Proof

P R I M E ( x ) : PRIME(x): PRIME(x):

y ← 2 y\leftarrow 2 y2

w h i l e y < x while\ y \lt x while y<x

i f x m o d y = 0 t h e n r e j e c t if\ x\ mod\ y\ =0 \ then\ reject if x mod y =0 then reject

y ← y + 1 y\leftarrow y+1 yy+1

a c c e p t accept accept

n = ⌈ l o g 2 x ⌉ → l o g 2 x ≤ n → x ≤ 2 n n=\lceil log_2 x\rceil\rightarrow log_2x\le n\rightarrow x\le 2^n n=log2xlog2xnx2n

则需要循环 2 n 2^n 2n

则总共需要 2 n × O ( n 2 ) = 2 O ( n ) 2^n\times O(n^2)=2^{O(n)} 2n×O(n2)=2O(n)

定理6 [AKS 2002] 判断质数属于P

定义7 NP

​ N:不确定的

​ P:多项式的

​ 直观地说,NP是可在多项式时间内验证的

​ P是可在多项式时间内被判定的(解决的)

P v s N P P\ vs \ NP P vs NP问题: P ≠ N P P\ne NP P=NP

如果 P = N P P =NP P=NP 所有数学家都会失业,所有加密的系统都不安全

语言 L ⊆ { 0 , 1 } ∗ L\subseteq\{0,1\}^* L{0,1}属于NP,如果存在一个多项式 p : N → N p:\N\rightarrow \N p:NN,和一个多项式时间的TM M,称为 L L L的证书, ∀ x ∈ { 0 , 1 } ∗ \forall x\in\{0,1\}^* x{0,1}

x ∈ L ⇔ ∃ w ∈ { 0 , 1 } p ( ∣ x ∣ ) , s . t . M ( x , w ) = 1 x\in L\Leftrightarrow \exist w\in\{0,1\}^{p(|x|)},s.t. M(x,w)=1 xLw{0,1}p(x),s.t.M(x,w)=1

x ∉ L ⇔ ∀ w ∈ { 0 , 1 } p ( ∣ x ∣ ) , s . t . M ( x , w ) = 0 x\notin L \Leftrightarrow \forall w\in\{0,1\}^{p(|x|)},s.t. M(x,w)=0 x/Lw{0,1}p(x),s.t.M(x,w)=0

即验证过程有三步

  1. 证明者为验证者提供一个多项式长度的输入
  2. 验证者运行一个图灵机(使用某种算法),在多项式时间内能得出答案
  3. 验证者返回结果(接收或拒绝)

NP判定的练习

练习 8 图同构问题

G r a p h I s o m o r p h i s m = { < G , H > : 无向图 G , H s 是同构的 } ∈ N P Graph\ Isomorphism=\{<G,H>:无向图G,Hs是同构的\}\in NP Graph Isomorphism={<G,H>:无向图G,Hs是同构的}NP

​ 两个图同构时,一定有双射 f : V ( G ) → V ( H ) f:V(G)\rightarrow V(H) f:V(G)V(H),有 ( u , v ) ∈ E ( G ) (u,v)\in E(G) (u,v)E(G)当且仅当 ( f ( u ) , f ( v ) ) ∈ E ( H ) (f(u),f(v))\in E(H) (f(u),f(v))E(H),

证书:

  1. f f f V ( G ) → V ( H ) V(G)\rightarrow V(H) V(G)V(H)的一个双射
  2. 检查 ( u , v ) ∈ E ( G ) , 则 ( f ( u ) , f ( v ) ) ∈ E ( H ) (u,v)\in E(G),则(f(u),f(v))\in E(H) (u,v)E(G),(f(u),f(v))E(H),而这个检查时间是 O ( n 2 ) O(n^2) O(n2)

那么 f f f是可以被验证的,但如何找到这样的 f f f可能是很困难的,但NP问题不用考虑

练习9 完全图子图问题

k − C L I Q U E = { < G , f > : 图 G 中含有 K k 子图 } k-CLIQUE=\{<G,f>:图G中含有K_k子图\} kCLIQUE={<G,f>:G中含有Kk子图}(完全图)

证书:在 G G G中找 k k k个点,提供给这个TM,记为 u 1 , u 2 , ⋯ , u k u_1,u_2,\cdots,u_k u1,u2,,uk,检查它们间是否两两有边, O ( n 2 ) O(n^2) O(n2)

练习10 旅行商问题

​ 旅行商给出n个节点 C n 2 C^2_n Cn2个数字, d i j d_{ij} dij表示节点 i i i和节点 j j j问题和一个数字 k k k,确定是否存在一条经过所有节点的回路并且总长度小于等于k

​ 这个问题是NP的

证书:给出一条路,先判断是回路,且经过所有顶点,并计算他的长度,是多项式时间的

练习 11

​ 给定 N , L , U N,L,U N,L,U,判断是否 N N N有一个 [ L , U ] [L,U] [L,U](区间)中的质因数

证书:给出一个 p ∈ [ L , U ] , s . t . p p\in[L,U],s.t.p p[L,U],s.t.p是质数并且 p ∣ N p|N pN

练习12 0/1 整数规划问题

​ 给定 m m m个线性的整数系数的不等式,有 n n n个变量, u 1 , u 2 , ⋯ , u n u_1,u_2,\cdots,u_n u1,u2,,un

​ 判断是否有一个 0和1的赋值给 u 1 , u 2 , ⋯ , u n u_1,u_2,\cdots,u_n u1,u2,,un,满足所有的不等式

整数:显然只需要将给定的数值带进去判定是否满足即可

练习13 子集合问题(背包问题)

​ 给定 n n n个整数 A 1 , A 2 , ⋯ , A n A_1,A_2,\cdots,A_n A1,A2,,An,和一个数字 T T T,判断是否有一个子集,它的和大于T

​ 显然属于 N P NP NP,把给的数加一下就行了

练习14 图不同构

G r a p h N o t I s o m o r p h i c = { < G , H > : G ≆ H } GraphNotIsomorphic=\{<G,H>:G\ncong H\} GraphNotIsomorphic={<G,H>:GH}

​ 不属于NP,这是个很难的问题,要将所有的双射都找一遍

练习15 没有完全图子图

N o C l i q u e = { < G , k > : G 没有 K k 子图 } NoClique=\{<G,k>:G没有K_k子图\} NoClique={<G,k>:G没有Kk子图}

​ 不属于NP,也是要把所有的k个节点的子图都找一遍。

C n l o g n C_n^{log_n} Cnlogn不是一个多项式

P P P的否也在 P P P

N P NP NP的否不一定在 N P NP NP

定理16 P,NP,EXP的包含关系

P ⊆ N P ⊆ E X P P\subseteq NP \subseteq EXP PNPEXP

( P ⊆ N P ) (P\subseteq NP) (PNP) 如果一个问题属于P,那么直接让证书为空串,那么验证者可以用一个图灵机在多项式时间内来判定。

​ 令 L ∈ P , 则证明 L ∈ N P L\in P,则证明L\in NP LP,则证明LNP

​ 令 p ( n ) = 0 p(n)=0 p(n)=0,则构造M为:

x ∈ L , M ( x , ϵ ) = 1 x\in L,M(x,\epsilon)=1 xL,M(x,ϵ)=1

x ∉ L . M ( x , ϵ ) = 0 x\notin L.M(x,\epsilon )=0 x/L.M(x,ϵ)=0

($NP\subseteq EXP ),如果一个问题属于 N P ,则存在一个多项式 ),如果一个问题属于NP,则存在一个多项式 ),如果一个问题属于NP,则存在一个多项式p:\N\rightarrow \N ,令一个多项式时间的 T M M 可以判定,构造一个 T M M ‘,枚举所有的 ,令一个多项式时间的TM M可以判定,构造一个TM M‘,枚举所有的 ,令一个多项式时间的TMM可以判定,构造一个TMM,枚举所有的w\in {0,1}^{p|x|} ,来判定是否有 ,来判定是否有 ,来判定是否有M(x,w)=1 , 如果存在这样的 ,如果存在这样的 ,如果存在这样的w ,则 M ′ 接收 ,则M'接收 ,则M接收x$。

M ′ M' M的总共运行时间为 2 p ( n ) , p o l y ( n ) = 2 n O ( 1 ) , n O ( 1 ) = 2 n O ( 1 ) 2^{p(n)},poly(n)=2^{n^{O(1)}},n^{O(1)}=2^{n^{O(1)}} 2p(n)poly(n)=2nO(1),nO(1)=2nO(1)

非确定性图灵机(Nondeterministic TMs)

​ 总是会选对。

​ 在任何时候,非确定性图灵机的转移结果可能有多个(可以只有1个)。转移函数 δ \delta δ:
δ : Q × Γ → P ( Q × Γ × { L , R , S } ) \delta: Q\times \Gamma \rightarrow P(Q\times \Gamma\times\{L,R,S\}) δ:Q×ΓP(Q×Γ×{L,R,S})
​ 转移结果是一个集合。

​ 形式化地,一个 N T M M = ( ∑ , Γ , Q , δ , q 0 , q a c c e p t , q r e j e c t ) NTM\ M=(\sum,\Gamma,Q,\delta,q_0,q_{accept},q_{reject}) NTM M=(,Γ,Q,δ,q0,qaccept,qreject)

M M M接收 x x x,如果存在这样的一条路径接收 x x x

定义17 NTM的运行时间

​ 如果对任意 x ∈ { 0 , 1 } ∗ x \in\{0,1\}^* x{0,1},对于每个非确定的选择, M M M都在 T ( n ) T(n) T(n)步内到达终止状态,那么我们说一个 N T M M NTM\ M NTM M的运行时间为 T ( n ) T(n) T(n).(最坏的情况也能在 T ( n ) T(n) T(n)步内停下)

定义18 NTM可判定

​ 如果对于任意 x ∈ { 0 , 1 } ∗ , x ∈ L ⟺ M ( x ) = 1 x\in\{0,1\}^*,x\in L \Longleftrightarrow M(x)=1 x{0,1},xLM(x)=1,我们说 N T M M NTM\ M NTM M可判定 L L L

定义19 Binary-choice NTM

M = ( Q , ∑ , Γ , δ 1 , δ 2 , q 0 , q a c c e p t , q r e j e c t ) M=(Q,\sum,\Gamma,\delta_1,\delta_2,q_0,q_{accept},q_{reject}) M=(Q,,Γ,δ1,δ2,q0,qaccept,qreject)

​ 其中 δ 1 , δ 2 : Q × Γ → Q × Γ × { L , R , S } \delta_1,\delta_2: Q\times \Gamma \rightarrow Q\times \Gamma \times \{L,R,S\} δ1,δ2:Q×ΓQ×Γ×{L,R,S},对于每一步转移, M M M随机使用 δ 1 \delta_1 δ1或是 δ 2 \delta_2 δ2

引理20 二选一NTM和NTM等价

​ 令 L ⊆ { 0 , 1 } ∗ L\subseteq\{0,1\}^* L{0,1},如果 L L L可以在时间 T ( n ) T(n) T(n)内被一个 N T M M NTM\ M NTM M内判定,那么 L L L可在 O M ( T ( n ) ) O_M(T(n)) OM(T(n))内被一个二选一(binary-choice)图灵机判定。

证明:

​ 思路:对于一步四选一,可转换成两步二选一

​ 对于任意一步, M M M至多有 2 ∣ Q ∣ × ∣ T ∣ × 3 2^{|Q|\times |T|\times 3} 2Q×T×3个选择(幂集的大小),则这可以被二选一在 l o g 2 2 ∣ Q ∣ × ∣ T ∣ × 3 = ∣ Q ∣ × ∣ T ∣ × 3 log_2 2^{|Q|\times |T|\times 3}=|Q|\times |T|\times 3 log22Q×T×3=Q×T×3步内完成模拟。

​ 所以,总共的运行时间 T ′ ( n ) ≤ ∣ Q ∣ × ∣ T ∣ × 3 × T ( n ) = O M ( T ( n ) ) T'(n)\le |Q|\times |T|\times 3\times T(n)=O_M(T(n)) T(n)Q×T×3×T(n)=OM(T(n)),( O M O_M OM表明参数与图灵机M有关)

定义21 NTIME

​ 令 T : N → N T:\N\rightarrow \N T:NN,定义 N T I M E ( T ( n ) ) NTIME(T(n)) NTIME(T(n))是一些语言的集合,这些语言可以被一个NTM在 O ( T ( n ) ) O(T(n)) O(T(n))内判定。

定理22 NP的形式化定义

N P = ⋃ c ≥ 1 N T I M E ( n c ) NP=\bigcup_{c\ge1} NTIME(n^c) NP=c1NTIME(nc)

P r o o f Proof Proof

( ⋃ c ≥ 1 N T I M E ( n c ) ⊆ N P \bigcup_{c\ge1} NTIME(n^c)\subseteq NP c1NTIME(nc)NP)

​ 令 L ∈ N T I M E ( n c ) L\in NTIME(n^c) LNTIME(nc),则 L ∈ N P L\in NP LNP

​ 因为 L ∈ N T I M E ( n c ) L\in NTIME(n^c) LNTIME(nc),存在一个二选一NTM N 可以在时间 d ⋅ n c d\cdot n^c dnc内判定 L , d > 0 L,d\gt 0 L,d>0

​ 令 p ( n ) = d ⋅ n c p(n)=d\cdot n^c p(n)=dnc,并且令证书 w ∈ { 0 , 1 } p ( x ) w \in\{0,1\}^{p(x)} w{0,1}p(x)表明应该选择哪个转移函数。那么验证者可以检验,如果 N N N接收 x x x(如何选择是由证书决定)

( N P ⊆ ⋃ c ≥ 1 N T I M E ( n c ) ) (NP\subseteq \bigcup_{c\ge1}NTIME(n^c)) (NPc1NTIME(nc))

​ 若 L ∈ N P L\in NP LNP,则 L ∈ ⋃ c ≥ 1 N T I M E ( n c ) L\in \bigcup_{c\ge1}NTIME(n^c) Lc1NTIME(nc)

​ 构造一个 N T M NTM NTM:

  1. 猜测 w ∈ { 0 , 1 } p ( ∣ x ∣ ) w\in\{0,1\}^{p(|x|)} w{0,1}p(x),因为是NTM,所以每一位都能猜对。。。。如果猜错了,说明没有正确的,直接拒绝
  2. 以输入 ( x , w ) (x,w) (x,w)模拟 M M M,当且仅当 M M M接收 ( x , w ) (x,w) (x,w)时接收。M是NP的证书的那个图灵机

显然 N N N运行时间为多项式时间,那么 N N N判定 L L L

定义 23 (karp reduction)

​ 令 L , K ⊆ { 0 , 1 } ∗ L,K\subseteq \{0,1\}^* L,K{0,1},我们将 L L L karp reduction to K记作 L ≤ p K L\le_p K LpK。如果存在一个多项式时间的TM M ,有对任意 x ∈ { 0 , 1 } ∗ , x ∈ L ⇔ N ( x ) ∈ K x\in \{0,1\}^*,x\in L \Leftrightarrow N(x)\in K x{0,1},xLN(x)K,即

  1. 如果 K ∈ P K\in P KP,那么 L ∈ P L\in P LP
  2. 如果 L ∉ P L\notin P L/P,那么 K ∉ P K\notin P K/P
引理24 karp reduction的性质

​ 传递:如果 L 1 ≤ p L 2 , L 2 ≤ p L 3 L_1\le_p L_2,L_2\le_p L_3 L1pL2,L2pL3,则 L 1 ≤ p L 3 L_1\le_p L3 L1pL3

​ 令 M 3 = M 2 ( M 1 ( x ) ) M_3=M_2(M_1(x)) M3=M2(M1(x)),是多项式时间内的

​ 那么有 x ∈ L 1 ⇔ M 3 ( x ) ∈ L 3 x\in L_1 \Leftrightarrow M_3(x)\in L_3 xL1M3(x)L3

3.NP难与NP完全问题

定义25 NP难问题

L ⊆ { 0 , 1 } ∗ L\subseteq\{0,1\}^* L{0,1}是NP难问题,如果对所有的语言 K ∈ N P , K ≤ p L K\in NP,K\le_p L KNPKpL,即 L L L至少不比NP简单

定义26 NP完全问题

​ NP完全,如果 L ∈ N P , L ∈ N P − h a r d L\in NP,L\in NP-hard LNP,LNPhard

​ 即 N P − c o m p l e t e = N P ⋂ N P − h a r d NP-complete =NP\bigcap NP-hard NPcomplete=NPNPhard

引理27 P=NP 的证明思路1

​ 如果 L L L是NP难问题,且 L ∈ P L\in P LP,那么 P = N P P=NP P=NP

引理28 P=NP 的证明思路2

​ 令 L ∈ N P − c o m p l e t e L\in NP-complete LNPcomplete,那么 L ∈ P ⇔ P = N P L\in P \Leftrightarrow P=NP LPP=NP

Cook-Levin的理论

​ Cook-Levin在1923年证明了第一个NP完全问题 SQT

定理 29 SAT 是NP完全问题

​ 布尔可满足性问题:

变量: x , y , z x,y,z x,y,z,可以取 T r u e True True或者 F a l s e False False

literal:变量和它的非, x , ¬ x , y , ¬ y x,\neg x,y,\neg y x,¬x,y,¬y

子句: O R OR OR(或),使用在一个或多个literals里, ¬ x ∨ y , ¬ y ∨ z , x ∨ y ¬ z \neg x\lor y,\neg y \lor z,x\lor y\neg z ¬xy,¬yz,xy¬z

formula: A N D AND AND(且),使用在一个或更多个literals

例如,对于 ϕ = ( ¬ x ∨ y ) ∧ ( ¬ y ∨ z ) ∧ ( x ∨ z ∨ y ) \phi=(\neg x\lor y)\land(\neg y\lor z)\land(x\lor z\lor y) ϕ=(¬xy)(¬yz)(xzy)

取 x=y=z=1,是可以满足的

但对于 ϕ = x ∧ ¬ x \phi = x\land \neg x ϕ=x¬x 是不可以被满足的

显然 S A T ∈ N P SAT \in NP SATNP,显然可以用一个NTM来猜,也可以直接给一个证书(输入每个变量的值).

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

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

相关文章

Diffusion Policy:基于扩散模型的机器人动作生成策略

项目地址&#xff1a; Diffusion Policy (columbia.edu) 一、摘要 本文介绍了 "扩散策略"&#xff0c;这是一种生成机器人行为的新方法&#xff0c;它将机器人的视觉运动策略&#xff08;visuomotor policy&#xff09;表示为条件去噪扩散过程&#xff08;conditi…

添加、修改和删除列表元素

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 添加、修改和删除列表元素也称为更新列表。在实际开发时&#xff0c;经常需要对列表进行更新。下面我们介绍如何实现列表元素的添加、修改和删除。 …

TypeScript进阶 类型演算与高级内置类型

简介&#xff1a; TypeScript 是一种静态类型检查的 JavaScript 超集&#xff0c;它通过类型注解和类型推断来提供更强大的类型系统。在 TypeScript 中&#xff0c;类型演算是一种重要的概念&#xff0c;它允许我们在编译时对类型进行操作和计算。本文将深入探讨 TypeScript 类…

如何使用Matlab进行三角剖分(自定义函数实现delaunayTriangulation 使用Bowyer-Watson 算法)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Delaunay三角形 二、使用步骤 1.Bowyer-Watson算法 2.算法步骤 三、动画演示 四、核心代码 五、对比matlab自带函数和我们的算法&#xff1a; 总结 前…

谷歌开源项目BERT源码解读与应用实例

数据及代码见文末 基于BERT的中文情感分析实战:基于BERT的中文情感分析实战-CSDN博客 基于BERT的中文命名实体识别识别实战:基于BERT的中文命名实体识别识别实战-CSDN博客 1.项目配置文件 GLUE/BERT_BASE_DIR是项目的预训练权重,预训练权重主要包含3个部分:参数配置文件…

打气球小游戏

1.气球往上飘 我们声明两个符号常量来作为窗体的长和宽,接着就是常规操作 #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600#include<easyx.h> #include<stdio.h> int main() {initgraph(WINDOW_WIDTH, WINDOW_HEIGHT);setbkcolor(WHITE);cleardevice();get…

网关过滤器使用及其原理分析

1.网关过滤器介绍 网关过滤器的用途一般是修改请求或响应信息,例如编解码、Token验证、流量复制等 官方文档地址:Spring Cloud Gateway 网关过滤器分为GloablFilter、GatewayFilter及DefaultFilter 过滤器的执行顺序由Order决定,Order值越小,优先级越高,越先执行 1.1…

vmware 安装系统提示无法启用3D加速的解决

起因&#xff1a;朋友要在虚拟机打游戏&#xff0c;然后就叫我帮忙搞虚拟机&#xff0c;安装的是当前最新的17.1.5 Pro。 说说他老母鸡的情况&#xff1a;i7 10th 32G 显卡1060&#xff0c;这个配置呢&#xff0c;开启虚拟机3D是正常没问题的。因为我的显卡也是这个。本地的显…

linux platform 总线(设备树)驱动

使用文档 设备树修改 新增一个 LED 节点 arch/arm/boot/dts/arm/vexpress-v2p-ca9.dts my_pl_led {compatible "arm, cortex-a9-led";status "okay";};设备树编译 make dtbs日志 DTC arch/arm/boot/dts/arm/vexpress-v2p-ca9.dtbplatform driver …

python+selenium - UI自动框架之封装浏览器引擎driver方法

在做兼容性测试的适合&#xff0c;可以运行指定的浏览器&#xff08;IE,Chrome,Edge&#xff09; 目录文件&#xff1a; from selenium import webdriver from urllib3.exceptions import ProtocolError from common.log import *def getDriver():# if browserType is None:br…

数据分析必备:一步步教你如何用Pandas做数据分析(6)

1、Pandas 函数应用 Pandas 重建索引操作实例 要将您自己或其他库的函数应用于Pandas对象&#xff0c;您应该了解三个重要的方法。方法如下所述。要使用的适当方法取决于您的函数是希望对整个数据帧进行操作&#xff0c;还是行操作还是按列操作&#xff0c;还是按元素操作。 表…

多进程操作文件

最近在调试多进程编程的时候&#xff0c;发现父进程打开过文件后&#xff0c;创建子进程&#xff0c;子进程会拷贝父进程的文件描述符&#xff0c; 举例&#xff0c;比如是串口设备&#xff0c;父进程打开串口后又关闭了串口&#xff0c;可是下次再打开就打不开了&#xff0c; …

模拟面试题

1.装箱和拆箱是指什么&#xff1f; 装箱——把栈中内容迁移到堆中去&#xff08;值转引用&#xff09; 拆箱——把堆中内容迁移到栈中去&#xff08;引用转值&#xff09; 2.值和引用类型在变量赋值时的区别是什么&#xff1f; 值类型&#xff1a;赋值时复制数据本身&a…

Gitee在已有项目基础上创建仓库中遇到的问题和解决

问题一&#xff1a;fatal: remote origin already exists 解释&#xff1a;当前仓库添加了一个名为"origin"的远程仓库配置&#xff0c;此时输入 git remote add origin https://xxx就会提示上面的内容。 解决方案1:移除旧的origin git remote remove origin 解决方案…

C++——mapset红黑树

目录 一补充知识 1关联式容器 2键值对 二set 1set的介绍 2set的使用 三map 1map的说明 2map的使用 四容器在oj中的使用 五AVL树 1概念 2插入 3AVL的旋转 3.1右单旋 3.2左单旋 3.3左右双旋 3.4右左双旋 4判断AVL树是否平衡 完整源代码 六红黑树 1概念 2性…

【Shader】Unity曲面弯曲效果

本期分享一个弯曲效果的Shader&#xff0c;类似于地铁跑酷的跑道 1、Shaer代码 Shader "Unlit/CurvedUnlit" { Properties{_MainTex ("Texture", 2D) "white" {}}SubShader{Tags { "RenderType""Opaque" }LOD 100Pass{CGP…

紫光展锐突破创新终端品类,搭载展锐芯的全球首款二合一5G云电脑正式发布

近日&#xff0c;搭载紫光展锐5G芯片T760的中兴云电脑逍遥系列正式发布&#xff0c;亮点&#xff1a; 全球首款二合一5G云电脑&#xff0c;支持本地/云端双模式&#xff0c;一键切换&#xff0c;用户可同时享有Android平板和Windows云电脑两种形态&#xff1b;支持5G蜂窝网络&…

C++相关概念和易错语法(13)(string的模拟实现)

string由于存在字符串和单字符的概念&#xff0c;使得它的一些接口&#xff0c;实现要比vector多一些。本质上来看string的实现是在顺序表的基础上加入串相关的操作。下面我会分享如何模拟实现string&#xff0c;这可以进一步提高我们对string的熟练程度。 1.构造函数、拷贝构…

附代码:策略常用-正余弦优化算法

正余弦优化算法作为群智能优化算法的一种, 正弦余弦算法 (sine cosine algorithm, SCA) 是 2016 年由 Mirjalili 提出的一种新型仿自然优化算法, 通过创建多个随机候选解, 利用正余弦函数的数学性质来平衡算法在搜系过程中的全局探索和局部开发能力。该算法具有结构简单、参数少…

docker三种自定义网络(虚拟网络) overlay实现原理

docker提供了三种自定义网络驱动&#xff1a;bridge、overlay、macvlan。 bridge驱动类似默认的bridge网络模式。 overlay和macvlan是用于创建跨主机网络。 支持自定义网段、网关&#xff0c;docker network create --subnet 172.77.0.0/24 --gateway 172.77.0.1 my_n…