张量网络(1)

张量积定义

  • M d d , N d d M_{dd},N_{dd} Mdd,Ndd

  • d 2 × d 2 d^2\times d^2 d2×d2
    M ⊗ N = ( m 11 N m 12 N ⋯ m 1 d N m 21 N m 22 N ⋯ m 2 d N ⋮ ⋮ ⋱ ⋮ m d 1 N m d 2 N ⋯ m d d N ) M\otimes N= \left( \begin{array}{cccc} m_{11}N&m_{12}N&\cdots&m_{1d}N\\ m_{21}N&m_{22}N&\cdots&m_{2d}N\\ \vdots&\vdots&\ddots&\vdots\\ m_{d1}N&m_{d2}N&\cdots&m_{dd}N\\ \end{array} \right) MN=m11Nm21Nmd1Nm12Nm22Nmd2Nm1dNm2dNmddN

  • M M M行标记 x 1 x_1 x1 N N N行标 x 2 x_2 x2联合为 M ⊗ N M\otimes N MN行标。
    ( M ⊗ N ) x 1 x 2 , x 3 x 4 = M x 1 , x 3 N x 2 , x 4 (M\otimes N)_{x_1x_2,x_3x_4}=M_{x_1,x_3}N_{x_2,x_4} (MN)x1x2,x3x4=Mx1,x3Nx2,x4

    • 下图是一张量积
    • ( )
    • x 1 就 是 个 标 记 x_1就是个标记 x1

    -张量网络(1)_第1张图片

    • 下图也是一个张量积
    • ( )
    • x 1 就 是 个 标 记 x_1就是个标记 x1

张量网络(1)_第2张图片

广义矩阵形式

  • F F F n + m n+m n+m元布尔函数, x 1 , . . . , x n , y 1 , . . . , y m x_1,...,x_n,y_1,...,y_m x1,...,xn,y1,...,ym是输入
    对应 2 n × 2 m 矩 阵 M = ( M x 1 , . . . , x n , y 1 , . . . , y m ) 2^n\times 2^m矩阵M=(M_{x_1,...,x_n,y_1,...,y_m}) 2n×2mM=(Mx1,...,xn,y1,...,ym)
    M x 1 , . . . , x n , y 1 , . . . , y m = F ( x 1 , . . . , x n , y 1 , . . . , y m ) M_{x_1,...,x_n,y_1,...,y_m}=F(x_1,...,x_n,y_1,...,y_m) Mx1,...,xn,y1,...,ym=F(x1,...,xn,y1,...,ym)
    m = 0 → 列 。 n = 0 → 行 。 m=0\rightarrow列。n=0\rightarrow行。 m=0n=0

  • 下面的图,显然等于 F ⋅ H F\cdot H FH

    • 就是 ( F x 1 x 2 , y 1 y 2 ) ( H y 1 y 2 , z 1 z 2 z 3 ) (F_{x_1x_2,y_1y_2})(H_{y_1y_2,z_1z_2z_3}) (Fx1x2,y1y2)(Hy1y2,z1z2z3)
      张量网络(1)_第3张图片
  • 行标画左,列标画右

向量张量积与矩阵乘法

  • 下面这俩个做矩阵乘法
  • ( M N ′ ) x 1 , x 2 = M x 1 N x 2 (MN')_{x_1,x_2}=M_{x_1}N_{x_2} (MN)x1,x2=Mx1Nx2
    在这里插入图片描述
  • 下面这俩个做张量积
  • ( M ⊗ N ) x 1 , x 2 = M x 1 N x 2 (M\otimes N)_{x_1,x_2}=M_{x_1}N_{x_2} (MN)x1,x2=Mx1Nx2
    张量网络(1)_第4张图片

张量积与矩阵乘法

  • 下图可写成
  • ( )
  • ( )

张量网络(1)_第5张图片

结合律的证明

  • 显然定义了 F = A B C F=ABC F=ABC

在这里插入图片描述

  • 按定义
    F ( x 1 , x 2 ) = ∑ e 1 , e 2 A ( x 1 , e 1 ) B ( e 1 , e 2 ) C ( e 2 , x 2 ) F(x_1,x_2)=\sum_{e_1,e_2}A(x_1,e_1)B(e_1,e_2)C(e_2,x_2) F(x1,x2)=e1,e2A(x1,e1)B(e1,e2)C(e2,x2)
    在这里插入图片描述
  • = ∑ e 2 C ( e 2 , x 2 ) ∑ e 1 A ( x 1 , e 1 ) B ( e 1 , e 2 ) =\sum_{e_2}C(e_2,x_2)\sum_{e_1}A(x_1,e_1)B(e_1,e_2) =e2C(e2,x2)e1A(x1,e1)B(e1,e2)
  • = ∑ e 1 A ( x 1 , e 1 ) ∑ e 2 B ( e 1 , e 2 ) C ( e 2 , x 2 ) =\sum_{e_1}A(x_1,e_1)\sum_{e_2}B(e_1,e_2)C(e_2,x_2) =e1A(x1,e1)e2B(e1,e2)C(e2,x2)
    张量网络(1)_第6张图片 ∑ e ∈ E 1 ∪ E 2 ∏ v ∈ V 1 ∪ V 2 F v \sum_{e\in E_1\cup E_2}\prod_{v \in V_1\cup V_2}F_v eE1E2vV1V2Fv
    ∑ e ∈ E 2 ( ∏ v ∈ V 2 F v ∑ e ∈ E 1 ∏ v ∈ V 1 F v ) \sum_{e\in E_2}(\prod_{v \in V_2}F_v\sum_{e\in E_1}\prod_{v \in V_1}F_v) eE2(vV2FveE1vV1Fv)

张量网络(1)_第7张图片
张量网络(1)_第8张图片
张量网络(1)_第9张图片

张量网络(1)_第10张图片

矩乘和张量积联合用

  • ( )

张量网络(1)_第11张图片

  • ( )

张量网络(1)_第12张图片

零元函数张量积

( M ⊗ N ) = M N (M\otimes N)=MN (MN)=MN
无外部边的张量网络的值=( )

布尔变量对称函数F

  • F值取决于有多少个1?
  • F = [ f 0 , f 1 , . . . , f n ] F=[f_0,f_1,...,f_n] F=[f0,f1,...,fn]

#CSP与张量网络

  • 布尔变量时 " = k " = [ 1 , 0 , . . . , 0 , 1 ] "=k"=[1,0,...,0,1] "=k"=[1,0,...,0,1]
  • 对一个 # C S P \#CSP #CSP问题改造下,得到如下啥呢?
    张量网络(1)_第13张图片
  • F i 相 当 于 是 约 束 函 数 哦 ! F_i相当于是约束函数哦! Fi
  • 问题答案是张量网络的值。
  • 不连通的话就是每个连通分支的乘积,思考为啥乘呢?

你可能感兴趣的:(高级计算机算法与设计)