张量网络算法基础(二、量子态、量子算符)
量子态、量子算符
- 量子态与量子算符
- 1. 定义
- 2. 态矢与算符的向量或矩阵表示
- 态矢和在给定基矢下的展开系数的向量表示
- 算符在给定基矢下的展开系数的矩阵表示
- 3. 量子态和算符的运算
- 单体算符及其运算
- 多体算符及其运算
从这篇博客开始慢慢接触到张量网络的基础算法了。我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
量子态与量子算符 1. 定义 态矢(state vector):代表量子态的状态,可标记为∣ φ ? |\varphi\rangle ∣φ?。
正如大家耳熟能详的薛定谔的猫,猫活着的状态、猫死去的状态和猫处于既死又生的状态,这些都是量子态。一般下情况下,我们把猫活着的状态记为∣ 1 ? |1\rangle ∣1?,猫着死去的状态记为∣ 0 ? |0\rangle ∣0?, ∣ φ ? |\varphi\rangle ∣φ?只是用来表示量子态的状态的符号,如果看见不一样表示的不必去纠结。
文章图片
算符/算子(operator):对态矢或算子的操作,可标记为O ^ \widehat{O} O 。
如果我们只看算符的解释,对于算符的本质还是会感到很迷糊,其实,算符就是一种模型。我们可以这样子去进行理解,把算符当成一个加工厂,当一个态进入这个加工厂,出去的时候就变成另外一个态,而这个加工也正是算符对态作用。
基矢:定义为一组满足正交完备性的态矢{ ∣ i ? } \{|i\rangle\} {∣i?}。
态矢我们前面已经了解了,那么什么是具有正交完备性的态矢呢?像我们数学里面学的两个垂直的单位向量具有正交性,此时向量的内积等于0。基矢满足正交完备性,此时基矢的内积也等于0。也就是说当两个态矢的内积等于0时,它们就是一组满足正交完备性的态矢。我们将态矢的内积定义为
? i ∣ i ′ ? = δ i i ′ \left\langle i \mid i^{\prime}\right\rangle=\delta_{i i^{\prime}} ?i∣i′?=δii′?
当i = i ′狄拉克矩阵δ i i ′ = 1,否则δ i i ′ = 0 \text { 当 } i=i^{\prime}\text { 狄拉克矩阵 } \delta_{i i^{\prime}}=1 \ , \text { 否则 } \delta_{i i^{\prime}}=0当 i=i′ 狄拉克矩阵 δii′?=1 , 否则 δii′?=0。
对于一个单自旋体系,我们所能观测到的只有两种情况,就像死猫和活猫那样,单自旋体系的基矢我们一般用{ ∣ 0 ? } \{|0\rangle\} {∣0?}和{ ∣ 1 ? } \{|1\rangle\} {∣1?}来表示。任意的单自旋量子态可写成基矢的线性叠加:
∣ φ ? = φ 0 ∣ 0 ? + φ 1 ∣ 1 ? = ∑ i = 0 1 φ i ∣ i ? |\varphi\rangle=\varphi_{0}|0\rangle+\varphi_{1}|1\rangle=\sum_{i =0}^{1} \varphi_{i}|i \rangle ∣φ?=φ0?∣0?+φ1?∣1?=i=0∑1?φi?∣i?
对于双自旋体系,基矢定义为
∣ 0 ? ∣ 0 ? , ∣ 0 ? ∣ 1 ? , ∣ 1 ? ∣ 0 ? , ∣ 1 ? ∣ 1 ? |0\rangle|0\rangle, \quad|0\rangle|1\rangle, \quad|1\rangle|0\rangle,\quad|1\rangle|1\rangle ∣0?∣0?,∣0?∣1?,∣1?∣0?,∣1?∣1?
其中,∣ i ? ∣ j ? = ∣ i j ? = ∣ i ? ? ∣ j ? |i\rangle|j\rangle=|i j\rangle=|i\rangle \otimes|j\rangle ∣i?∣j?=∣ij?=∣i??∣j? ,其构成的基矢为四个4维向量。例如 ∣ 1 ? = [ 1 0 ] T , ∣ 11 ? = [ 1 0 ] T ? [ 1 0 ] T = [ 1 0 0 0 ] T |1\rangle =\left[\begin{array}{ccc}1 & 0\end{array}\right]^{T},\quad|11\rangle=\left[\begin{array}{cc}1 & 0\end{array}\right]^{T} \otimes\left[\begin{array}{cc}1 & 0\end{array}\right]^{T}= \left.\begin{array}{lllll}{[1} & 0 & 0 & 0\end{array}\right]^{T} ∣1?=[1?0?]T,∣11?=[1?0?]T?[1?0?]T=[1?0?0?0?]T 。
和单自旋量子态一样,任意的二自旋量子态可写成基矢的线性叠加:
∣ φ ? = φ 00 ∣ 00 ? + φ 01 ∣ 01 ? + φ 10 ∣ 10 ? + φ 11 ∣ 11 ? = ∑ i j = 0 1 φ i j ∣ i j ? |\varphi\rangle=\varphi_{00}|00\rangle+\varphi_{01}|01\rangle+\varphi_{10}|10\rangle+\varphi_{11}|11\rangle=\sum_{i j=0}^{1} \varphi_{i j}|i j\rangle ∣φ?=φ00?∣00?+φ01?∣01?+φ10?∣10?+φ11?∣11?=ij=0∑1?φij?∣ij?
二自旋量子态∣ φ ? |\varphi\rangle ∣φ?的系数可看作是 4 × 1 4 \times 1 4×1的向量 [ φ 00 φ 01 φ 10 φ 11 ] T \left[\begin{array}{cccc}\varphi_{00} & \varphi_{01} & \varphi_{10} & \varphi_{11}\end{array}\right]^{T} [φ00??φ01??φ10??φ11??]T, 也可以看作2 × 2 2 \times 2 2×2 的矩阵[ φ 00 φ 01 φ 10 φ 11 ] \left[\begin{array}{cc}\varphi_{00} & \varphi_{01} \\ \varphi_{10} & \varphi_{11}\end{array}\right] [φ00?φ10??φ01?φ11??], 二者相差一个reshape操作。
补充: ? \otimes ? 称为直积、张量积、外积或克伦内克积, ? \otimes ?符号可省略
文章图片
2. 态矢与算符的向量或矩阵表示 学完下面的内容,你会慢慢发现张量和和数学是紧密联系在一起的。
文章图片
态矢和在给定基矢下的展开系数的向量表示
由前面的学习我们可以知道任意单个自旋的量子态可写成基态的线性叠加:
∣ φ ? = φ 0 ∣ 0 ? + φ 1 ∣ 1 ? |\varphi\rangle=\varphi_{0}|0\rangle+\varphi_{1}|1\rangle ∣φ?=φ0?∣0?+φ1?∣1?
在不引起误解的情况下我们可以直接认为态即对应的系数向量.
例如∣ φ ? = φ 0 ∣ 0 ? + φ 1 ∣ 1 ? |\varphi\rangle=\varphi_{0}|0\rangle+\varphi_{1}|1\rangle ∣φ?=φ0?∣0?+φ1?∣1?, 我们可以认为∣ φ ? = [ φ 0 φ 1 ] |\varphi\rangle=\left[\begin{array}{ll}\varphi_{0} & \varphi_{1}\end{array}\right] ∣φ?=[φ0??φ1??] , 此时若∣ φ ? = ∣ 1 ? |\varphi\rangle=|1\rangle ∣φ?=∣1?, 即∣ 1 ? = φ 0 ∣ 0 ? + φ 1 ∣ 1 ? ? φ 0 = 0 , φ 1 = 1 , |1\rangle=\varphi_{0}|0\rangle+\varphi_{1}|1\rangle \Rightarrow \varphi_{0}=0, \quad \varphi_{1}=1, \quad ∣1?=φ0?∣0?+φ1?∣1??φ0?=0,φ1?=1,则∣ 1 ? = [ 0 1 ] T |1\rangle=\left[\begin{array}{ll}0 & 1\end{array}\right]^{T} ∣1?=[0?1?]T 。一般情况下,我们认为左矢? φ ∣ \langle\varphi| ?φ∣ 对应于行向量,右矢 ∣ φ ? |\varphi\rangle ∣φ?对应于列向量, ? φ ∣ \langle\varphi| ?φ∣为 ∣ φ ? |\varphi\rangle ∣φ?的共轭转置。
量子态内积对应于系数向量的内积:
? φ ∣ ψ ? = [ φ 0 φ 1 ] [ ψ 0 ψ 1 ] T \langle\varphi \mid \psi\rangle=\left[\begin{array}{ccc}\varphi_{0} & \varphi_{1}\end{array}\right]\left[\begin{array}{lll}\psi_{0} & \psi_{1}\end{array}\right]^{T} ?φ∣ψ?=[φ0??φ1??][ψ0??ψ1??]T
我们可以试着用前面学过的知识去证明一下这个等式:
证明:
因为 ∣ φ ? = ∑ i φ i ∣ i ? , ∣ ψ ? = ∑ j ψ j ∣ j ? |\varphi\rangle=\sum_{i} \varphi_{i}|i\rangle,|\psi\rangle=\sum_{j} \psi_{j}|j\rangle ∣φ?=∑i?φi?∣i?,∣ψ?=∑j?ψj?∣j?
有 ? φ ∣ ψ ? = ∑ i j φ i ? ψ j ? i ∣ j ? \langle\varphi \mid \psi\rangle=\sum_{i j} \varphi_{i}^{*} \psi_{j}\langle i \mid j\rangle ?φ∣ψ?=∑ij?φi??ψj??i∣j?
由基矢的正交归一性? i ∣ j ? = δ i j \langle i \mid j\rangle=\delta_{i j} ?i∣j?=δij?
令j j j= i i i, 有∑ i j φ i ? ψ j ? i ∣ j ? = ∑ i φ i ? ψ i \sum_{i j} \varphi_{i}^{*} \psi_{j}\langle i \mid j\rangle=\sum_{i} \varphi_{i}^{*} \psi_{i} ∑ij?φi??ψj??i∣j?=∑i?φi??ψi?
证毕
算符在给定基矢下的展开系数的矩阵表示
基矢的向量表示确定之后,可用这对基矢对算符做展开,得到算符的系数。例如泡利算符的展开系数是一个2 × 2的矩阵,它满足
σ ^ α = ∑ i j = 0 1 σ i j a ∣ i ? ? j ∣ ( a = x , y , z ) \hat{\sigma}^{\alpha}=\sum_{i j=0}^{1} \sigma_{i j}^{a}|i\rangle\langle j| \quad(a=x, y, z) σ^α=ij=0∑1?σija?∣i??j∣(a=x,y,z)
我们由σ ^ α = ∑ i j = 0 1 σ i j a ∣ i ? ? j ∣ \text {我们由 } \hat{\sigma}^{\alpha}=\sum_{i j=0}^{1} \sigma_{i j}^{a}|i\rangle\langle j| 我们由 σ^α=∑ij=01?σija?∣i??j∣以及基矢的正交归一性,易得
σ i j a = ? i ∣ σ ^ α ∣ j ? \sigma_{i j}^{a}=\left\langle i\left|\hat{\sigma}^{\alpha}\right| j\right\rangle σija?=?i∣σ^α∣j?
看到这不知道有没有小伙伴觉得一点也不易得,反正当时我第一次看是这么想的,我们在这个中间加一步,看这:
? i ∣ σ ^ α ∣ j ? = ∑ i = 0 1 σ i a ? i ∣ ∣ i ? ? j ∣ ∣ j ? ? σ i j a = ? i ∣ σ ^ α ∣ j ? \langle i|\hat{\sigma}^{\alpha}|j\rangle=\sum_{i=0}^{1} \sigma_{i}^{a}\langle i||i\rangle\langle j||j\rangle \Rightarrow \sigma_{i j}^{a}=\left\langle i\left|\hat{\sigma}^{\alpha}\right| j\right\rangle ?i∣σ^α∣j?=i=0∑1?σia??i∣∣i??j∣∣j??σija?=?i∣σ^α∣j?
这样子是不是就明白啦!
文章图片
3. 量子态和算符的运算 在没学习态矢与算符的向量和矩阵表示之前对于量子态和算符的运算是不是一头雾水?学习了之后,在给定基矢、确定量子态和算符的向量与矩阵表示之后,相关的计算就自然而然变成与之对应的向量与矩阵的运算。
例如:定义上升算符σ ^ + \hat{\sigma}^{+} σ^+和下降算符σ ^ ? \hat{\sigma}^{-} σ^?, 其在σ ^ z \hat{\sigma}^{z} σ^z 的本征基矢下的矩阵表示为:
σ ^ + = [ 0 1 0 0 ] , σ ^ ? = [ 0 0 1 0 ] , \hat{\sigma}^{+}=\left[\begin{array}{ll}0 & 1 \\ 0 & 0\end{array}\right], \hat{\sigma}^{-}=\left[\begin{array}{ll}0 & 0 \\ 1 & 0\end{array}\right], \quad σ^+=[00?10?],σ^?=[01?00?],
则
σ ^ + ∣ 0 ? = [ 0 1 0 0 ] [ 0 1 ] = [ 1 0 ] \hat{\sigma}^{+}|0\rangle=\left[\begin{array}{ll}0 & 1 \\ 0 & 0\end{array}\right]\left[\begin{array}{l}0 \\ 1\end{array}\right]=\left[\begin{array}{l}1 \\ 0\end{array}\right] σ^+∣0?=[00?10?][01?]=[10?]
由上篇博客的学习内容我们知道矩阵积可以写成指标求和的形式,例如σ + φ ? ∑ j σ i j + φ j \sigma^{+} \varphi \Leftrightarrow \sum_{j} \sigma_{i j}^{+} \varphi_{j} σ+φ?∑j?σij+?φj?,不记得可以戳这张量和线性代数基础,
单体算符及其运算
- 对于N自旋体系,对应希尔伯特空间维数为 2 N 2^{\mathrm{N}} 2N,即量子态的系数为 2 N 2^{\mathrm{N}} 2N维张量,算符的系数为 2 N 2^{\mathrm{N}} 2N× 2 N 2^{\mathrm{N}} 2N维张量。单体算符就是作用到某一个自旋上的算符,例如泡利算符,它的系数维数为2 × 2。如下图,按照上一篇博客所学,每一个腿代表一个指标,每一个指标的维数为2。如果这个时候理解有点困难,我们可以先从最简单的单自旋体系着手,慢慢地向多自旋体系进行过渡。
文章图片
- 单体算符作用到多体量子态的规则:定义作用在第一个自旋空间的算子O ^ ( 1 ) {{\hat{O}}^{(1)}} O^(1),易得其对应的系数维数为2×2,三自旋量子态 ∣ φ ? |\varphi\rangle ∣φ?对应的系数维数为2×2×2。将O ^ ( 1 ) {{\hat{O}}^{(1)}} O^(1)作用到 ∣ φ ? |\varphi\rangle ∣φ?上:
∣ φ ′ ? = O ^ ( 1 ) ∣ φ ? = O ^ ( 1 ) ? I ^ ( 2 ) ? I ^ ( 3 ) ∣ φ ? \left| \varphi ' \right\rangle ={{\hat{O}}^{(1)}}\left| \varphi \right\rangle ={{\hat{O}}^{(1)}}\otimes {{\hat{I}}^{(2)}}\otimes {{\hat{I}}^{(3)}}\left| \varphi \right\rangle ∣φ′?=O^(1)∣φ?=O^(1)?I^(2)?I^(3)∣φ?
I ^ ( n ) {{\hat{I}}^{(n)}} I^(n)为定义在第n个自旋空间的的单位算符。
注意:对于自旋态,无法定义对某一个自旋的单独操作,相关算符也需要定义在多自旋希尔伯特空间中。
- 在公式 ∣ φ ′ ? = O ^ ( 1 ) ∣ φ ? = O ^ ( 1 ) ? I ^ ( 2 ) ? I ^ ( 3 ) ∣ φ ? \left| \varphi ' \right\rangle ={{\hat{O}}^{(1)}}\left| \varphi \right\rangle ={{\hat{O}}^{(1)}}\otimes {{\hat{I}}^{(2)}}\otimes {{\hat{I}}^{(3)}}\left| \varphi \right\rangle ∣φ′?=O^(1)∣φ?=O^(1)?I^(2)?I^(3)∣φ?中,我们可以以指标收缩的方式进行计算。设 ∣ φ ? \left| \varphi \right\rangle ∣φ?和 ∣ φ ′ ? \left| \varphi ' \right\rangle ∣φ′?的系数分别为三阶张量 φ i j k {{\varphi }_{ijk}} φijk?和 φ ′ i ′ j k \varphi {{'}_{i'jk}} φ′i′jk?, O ^ ( 1 ) {{\hat{O}}^{(1)}} O^(1)的系数为二阶矩阵 O ^ i ′ i ( 1 ) {{\hat{O}}_{i'i}}^{(1)} O^i′i?(1),根据相同指标可以进行收缩我们可以计算:
φ ′ i ′ j k = ∑ O ^ i ′ i ( 1 ) φ i j k \varphi {{'}_{i'jk}}=\sum{{{{\hat{O}}}_{i'i}}^{(1)}}{{\varphi }_{ijk}} φ′i′jk?=∑O^i′i?(1)φijk?
由此我们可以知道,将定义在n个自旋的算符 O ^ ( n ) {{\hat{O}}^{(n)}} O^(n)作用到自旋多体态上只需要将算符与第n个指标进行收缩
注意:虽然只是进行第n个指标进行收缩,实际上所有张量元都会改变。
如果量子算符为幺正算符,那么这些算符构成一个作用在多体态上的大的幺正算符的操作,称之为量子线路。
补充:逆算符等于其转置共轭算符的算符称为幺正算符: U ? 1 = U U ? 1 = U + U^{-1}=U^{}U^{-1}=U^{+} U?1=UU?1=U+
文章图片
量子线路是可运行于量子计算机的模型,类似于经典计算机上的逻辑门线路。例如下图所示的作用在 ∣ 00000000 ? \left| \text{00000000} \right\rangle ∣00000000?上的量子线路,由三个四体量子门和四个二体量子门构成。
文章图片
对于多体算符,当该算符可以写成多个定义在不同的单体算符的直积时,计算算符作用到多体态上时,由于单体算符作用在不同的空间,互相之间不受干扰,所以算符是相互对易的,所以作用顺序不影响结果,此时仅需要进行多次单体算符的作用即可。例如,将定义在第一和第二个自旋空间中的算符 O ^ = O ^ ( 1 ) ? O ^ ( 2 ) \hat{O}={{\hat{O}}^{(1)}}\otimes {{\hat{O}}^{(2)}} O^=O^(1)?O^(2)作用到三自旋态 ∣ φ ? \left| \varphi \right\rangle ∣φ?上,得到量子态 ∣ φ ′ ? \left| \varphi ' \right\rangle ∣φ′?,相应的系数满足:
φ ′ i ′ j ′ k = ∑ i j O i ′ i ( 1 ) O j ′ j ( 2 ) φ i j k \varphi {{'}_{i'j'k}}=\sum\limits_{ij}{O_{i'i}^{(1)}O_{j'j}^{(2)}{{\varphi }_{ijk}}} φ′i′j′k?=ij∑?Oi′i(1)?Oj′j(2)?φijk?
【张量网络算法基础(二、量子态、量子算符)】
文章图片
并不是所有的多体算符都可以分解成单体算符的直积。如果算符不能分解成多个单体算符直积的形式,如下图左边所示,则根据分解的情况进行收缩;如果存在不同算符作用在相同自旋上,如下图 右边所示,我们按照上面的规则,由下至上依次将每一层的算符作用到量子态上;也可以先进行算符之间的作用,最后再作用到量子态上。
文章图片
我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 猎杀IP
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 自媒体形势分析
- 数学大作战
- 一个选择排序算法
- 2018.03.18
- 星期天的下午茶(一)
- SG平滑轨迹算法的原理和实现