Skip to content

Commit 9e9cfbe

Browse files
committed
update example problem
1 parent 7bfb702 commit 9e9cfbe

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed

_posts/2025-11-26-tensor-network.md

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ $$A \otimes I \vert \Omega \rangle = A \otimes I \sum_{i=1}^{d} \vert i \rangle
110110

111111
$$ = \sum_{i=1}^{d} (\sum_{j=1}^{d} A_{ji} \vert j \rangle) \otimes \vert i \rangle = \sum_{i=1}^{d} \sum_{j=1}^{d} A_{ji} (\vert j \rangle \otimes \vert i \rangle) = \vert A \rangle\rangle$$
112112

113-
> (<b>관찰 5)</b> $\vert \Omega \rangle = \sum_{i=1}^{d} \vert i \rangle \otimes \vert i \rangle$ 는 사실 항등행렬을 vectorization 한 것입니다. 즉, $\vert \Omega \rangle = \vert I \rangle\rangle$ 입니다. 항등행렬을 이어서 붙여보면 자명함을 쉽게 알 수 있습니다.
113+
> <b>(관찰 5)</b> $\vert \Omega \rangle = \sum_{i=1}^{d} \vert i \rangle \otimes \vert i \rangle$ 는 사실 항등행렬을 vectorization 한 것입니다. 즉, $\vert \Omega \rangle = \vert I \rangle\rangle$ 입니다. 항등행렬을 이어서 붙여보면 자명함을 쉽게 알 수 있습니다.
114114
115115
드디어 tensor network diagram에서 vectorization을 어떻게 표현하는지 살펴볼 차례입니다. $\vert \Omega \rangle = \vert I \rangle\rangle$ 의 tensor network diagram 표기법은 아래와 같습니다.
116116

@@ -127,6 +127,9 @@ $$ \textbf{그림 5.} \vert \Omega \rangle 의 \text{tensor diagram 표기법} $
127127
<p align="center"><img src="/assets/images/red1108/tn_5_1_1.png" width="70%"></p>
128128
<center><b>그림 5-1-1.</b> 행렬 A의 vectorization 다시보기</center><br/>
129129

130+
131+
> <b>(관찰 6)</b> tensor network diagram에서 행렬을 밀어서 밑으로 보내면 전치 행렬이 된다. 다시 밑에서 위로 올리면 원래 행렬이 된다.
132+
130133
이제 수식적으로 이해해 봅시다. 분해해 보면 간단합니다. Vectorization 연산은 $A \otimes I$ 에 $\vert \Omega \rangle$ 를 곱하는 연산이므로,
131134

132135
<p align="center"><img src="/assets/images/red1108/tn_5_2.png" width="20%"></p>
@@ -145,7 +148,11 @@ $$= \sum_{i=1}^{d} \sum_{j=1}^{d} A_{ji} (\vert i \rangle \otimes \vert j \rangl
145148
<p align="center"><img src="/assets/images/red1108/tn_5_3.png" width="90%"></p>
146149
<center><b>그림 5-3.</b> ABC rule</center><br/>
147150

148-
만약 행렬 A가 $A \in L(\mathbb{C}^d) \otimes L(\mathbb{C}^{d'})$
151+
만약 행렬 A가 $A \in L(\mathbb{C}^d) \otimes L(\mathbb{C}^{d'})$ 에 속하는 행렬이라면, vectorization 결과는 $\vert A \rangle\rangle \in \mathbb{C}^d \otimes \mathbb{C}^{d'} \otimes \mathbb{C}^d \otimes \mathbb{C}^{d'}$ 에 속하는 벡터가 됩니다. tensor network diagram 표기법은 다음과 같습니다.
152+
153+
<p align="center"><img src="/assets/images/red1108/tn_5_5.png" width="30%"></p>
154+
<center><b>그림 5-5. </b> 2개의 subsystem을 가지는 행렬 A의 vectorization tensor diagram 표기법</center><br/>
155+
149156

150157
#### Row Vectorization
151158

@@ -158,17 +165,41 @@ Row vectorization 의 tensor network diagram 표기법은 다음과 같습니다
158165
<p align="center"><img src="/assets/images/red1108/tn_6.png" width="70%"></p>
159166
<center><b>그림 6.</b> 행렬 A의 row vectorization tensor diagram 표기법</center><br/>
160167

161-
행렬 $A$와 $B$의 내적값은 보통 $tr(A^T B)$ 로 정의하는데, 이 값은 벡터화한 값들 사이의 내적과 동일합니다. 따라서 $\langle \langle A\vert B\rangle \rangle = \text{Tr}(A^T B)$ 가 성립하고, tensor diagram으로 표현한다면
162-
168+
행렬 $A$와 $B$의 내적값은 보통 $tr(A^T B)$ 로 정의하는데, 이 값은 벡터화한 값들 사이의 내적과 동일합니다. 따라서 $\langle \langle A\vert B\rangle \rangle = \text{Tr}(A^T B)$ 가 성립하고, tensor diagram으로 표현한다면 아래와 같이 표현됩니다.
163169

164170
<p align="center"><img src="/assets/images/red1108/tn_6_1.png" width="35%"></p>
165171
<center><b>그림 6-1.</b> 행렬 사이의 내적과 vectorization 사이의 내적</center><br/>
166172

167-
뭔가 일관성이 보이기 시작합니다.
173+
Tensor network의 표기법에 뭔가 일관성이 보이기 시작합니다.
168174

169-
#### Row Vectorization
175+
### Swap Operator
176+
177+
두 subsystem 의 상태를 맞바꾸는 연산을 swap operator 라고 합니다. 수식으로 표현하면 다음과 같습니다.
178+
179+
$$\mathbb{F} \vert \psi \rangle \otimes \vert \phi \rangle = \vert \phi \rangle \otimes \vert \psi \rangle$$
180+
181+
이를 tensor network diagram 으로 표현하면 다음과 같습니다.
182+
183+
<p align="center"><img src="/assets/images/red1108/tn_7.png" width="70%"></p>
184+
<center><b>그림 7.</b> Swap operator의 tensor diagram 표기법</center><br/>
185+
186+
마지막으로 swap trick $\text{Tr}_2(AB) = \text{Tr}_2((A \otimes B)\mathbb{F})$ 를 tensor network diagram으로 표현해 봅시다.
187+
188+
<p align="center"><img src="/assets/images/red1108/tn_7_1.png" width="70%"></p>
189+
<center><b>그림 7-1.</b> swap trick의 tensor diagram 표기법</center><br/>
190+
191+
이걸 조금만 응용하면, 동일한 방식으로 $\text{Tr}_2(\mathbb{F}(A \otimes B)) = \text{Tr}BA)$ 도 쉽게 보일 수 있습니다.
192+
193+
## Example problem
194+
195+
1. $A, B \in \mathbb{C}^{d}$ 일 때, $\text{Tr}(AB) = \text{Tr}(BA)$ 임을 tensor network diagram을 사용해서 이해하시오.
196+
197+
풀이: B행렬을 오른쪽으로 밀어서 밑으로 내리면 $B^T$ 가 됩니다. 이번엔 왼쪽으로 밀어서 다시 올린다면 A왼쪽에 B가 붙게 됩니다. 따라서 $\text{Tr}(AB) = \text{Tr}(BA)$ 임을 알 수 있습니다.
198+
199+
2. $A, B, X \in \mathbb{C}^{d}$ 일 때, $\vert AXB^T \rangle\rangle = A \otimes B \vert X \rangle\rangle$ 임을 tensor network diagram을 사용해서 이해하시오.
200+
201+
풀이: TODO: image 추가.
170202

171-
Row vectorization 도 존재
172203

173204
## 참고문헌
174205

assets/images/red1108/tn_5_5.png

9.87 KB
Loading

assets/images/red1108/tn_7.png

23.1 KB
Loading

assets/images/red1108/tn_7_1.png

26.3 KB
Loading

0 commit comments

Comments
 (0)