Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
Randl committed Nov 1, 2021
1 parent 03a7ced commit dbfe34c
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 79 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ Also, all authors for some updates are participants special channel into communi
- @sem ([GitHub](https://github.com/SemyonSinchenko)): multiple lectures
- @zimka ([GitHub](https://github.com/zimka)): quantum chemistry
- @Aleksandr Berezutskii ([GitHub](https://github.com/meandmytram)): D-Wave, Barren plateau
- @evgeniyzh ([GitHub](https://github.com/Randl)): Jordan-Wigner

### Editors

Expand Down
25 changes: 12 additions & 13 deletions qmlcourseRU/_bibliography/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -249,19 +249,6 @@ @article{diagonalQNewton
publisher = {Springer}
}

@article{henderson2020quanvolutional,
title = {Quanvolutional neural networks: powering image recognition
with quantum circuits},
author = {Henderson, Maxwell and Shakya, Samriddhi and Pradhan,
Shashindra and Cook, Tristan},
journal = {Quantum Machine Intelligence},
volume = 2,
number = 1,
pages = {1--9},
year = 2020,
publisher = {Springer}
}

@article{hogradients,
title = {Estimating the gradient and higher-order derivatives on
quantum hardware},
Expand Down Expand Up @@ -444,3 +431,15 @@ @article{vqcaskernels
primaryClass = {quant-ph},
year = 2021
}

@article{seeley2012bravyi,
title={The Bravyi-Kitaev transformation for quantum computation of electronic structure},
author={Seeley, Jacob T. and Richard, Martin J. and Love, Peter J.},
journal={The Journal of chemical physics},
volume={137},
number={22},
pages={224109},
year={2012},
publisher={American Institute of Physics},
url = https://arxiv.org/abs/1208.5986
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion qmlcourseRU/book/authors.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
3. [Сергей Ширкин](https://github.com/SergeiShirkin)
4. [Александр Березутский](https://github.com/meandmytram)
5. [Котенков Игорь](https://github.com/stalkermustang)
6. [Евгений Желтоножский](https://github.com/Randl)

## Основные ревьюеры

1. [Юрий Кашницкий](https://github.com/Yorko)
2. [Виктор Трохименко](https://github.com/vtrokhymenko)
3. [Борис Зимка](https://github.com/zimka)
4. [Николай Карелин](https://github.com/karelin)
5. [Евгений Желтоножский](https://github.com/Randl)

## Редакторы

Expand Down
114 changes: 49 additions & 65 deletions qmlcourseRU/book/problemsblock/jordanwigner.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
---
jupytext:
formats: md:myst
text_representation:
extension: .md
format_name: myst
kernelspec:
display_name: Python 3
language: python
name: python3
formats: md:myst text_representation:
extension: .md format_name: myst kernelspec:
display_name: Python 3 language: python name: python3
---

(quantchembasic)=
Expand All @@ -16,23 +11,38 @@ kernelspec:

## Описание лекции

В этой лекции мы узнаем как из

## Введение

Для того чтобы просимулировать квантовую систему на квантовом же компьютере, нам необходимо закодировать состояние
системы и операторы которые могут на нее действовать (добавить fig. 1 из https://arxiv.org/pdf/1208.5986.pdf
или что-то похожее).
системы и действующие на нее операторы: найти соответствие между состояниями системы и состояниями нашего компьютера
(т.е., кубитов)

```{figure} _static/problemsblock/jordanwigner/encoding.png
:name: A simulation scheme.
Общая схема симуляции квантовой системы на квантовом компьютере (взято из {cite}`seeley2012bravyi`).
```

## Спины, фермионы и бозоны

Как мы помним из [лекции по квантовой химии](quantchemadvancedscf), квантовые частицы (в 3+1 измерениях) могут быть либо
бозонами, либо фермионами. Разница между ними в том, что при обмене двух бозонов волновая функция не меняется, а при
обмене двух фермионов -- меняет знак. Эта классификация следует из того, что квантовые частицы неотличимы.

Несмотря на то, что наши кубиты состоят из каких-то частиц (бозонов или фермионов), обычно они отличимы
(например, зафиксированы на своих позициях) и, следовательно, не являются ни бозонами, ни фермионами. Так как мы
используем два состояния кубита ($ | 0 \rangle $ и $| 1 \rangle$), каждый кубит может быть описан как система со спином
1/2.

## Вторичное квантование

В квантовой механике мы [можем описать](../qcblock/gates.html#id11) состояние нескольких частиц как тензорное
произведение состояний каждой из частиц. Например, если у нас есть две частицы, и их квантовое состояние описывается
положением частицы в пространстве, $r_i$, мы можем записать состояние частиц как

$$
| \psi \rangle = | r_1 \rangle \otimes |r_2 \rangle.
$$
$$ | \psi \rangle = | r_1 \rangle \otimes |r_2 \rangle. $$

У этого подхода есть два главных недостатка -- во первых, работать с системами в которых разное количество частиц, или
где это количество может меняться, не очень удобно. Во-вторых, не учитывается неразличимость квантовых частиц.
Expand All @@ -46,13 +56,9 @@ $$
Мы так же можем определить операторы, которые добавляют или убирают частицу в определенном состоянии из системы. На
языке первой квантизации:

$$
b^\dagger_\alpha | \Psi \rangle =\frac{1}{\sqrt{N+1}} | \psi_\alpha \rangle \otimes | \Psi \rangle
$$
$$ b^\dagger_\alpha | \Psi \rangle =\frac{1}{\sqrt{N+1}} | \psi_\alpha \rangle \otimes | \Psi \rangle $$

$$
b_\alpha | \psi_\alpha \rangle \otimes | \Psi \rangle=\frac{1}{\sqrt{N}}| \Psi \rangle.
$$
$$ b_\alpha | \psi_\alpha \rangle \otimes | \Psi \rangle=\frac{1}{\sqrt{N}}| \Psi \rangle. $$

Тут $b^\dagger_\alpha$ называется оператором создания (creation), а $b_\alpha$ -- уничтожения (annihilation). Заметим,
что эти операторы не эрмитовы, т.е., $b^\dagger_\alpha \neq b_\alpha$. Нормализация операторов выбрана таким образом,
Expand All @@ -66,8 +72,7 @@ $$

Если в системе нет ни одной частицы в состоянии $\alpha$, то оператор уничтожения уничтожает состояние:

$$
b_\alpha | \Psi \rangle=0.
$$ b_\alpha | \Psi \rangle=0.
$$

0 тут это нулевой вектор, в отличии от $| 0 \rangle$, вакуума. Так как 0 это не физическое состояние (например, если бы
Expand All @@ -89,34 +94,29 @@ $$
$$

$$
[b^\dagger_i, b^\dagger_j ] = [b_i, b_j ] =0.
[b^\dagger_i, b^\dagger_j ] = [b_i, b_j ] = 0.
$$

В случае фермионов, операторы антикоммутируют:

$$
\{с^\dagger_i, с_j \} = \delta_{ij}
$$
$$ \{с^\dagger_i, с_j \} = \delta_{ij} $$

$$
\{c^\dagger_i, c^\dagger_j \} = \{c_i, c_j \} =0.
$$ \{c^\dagger_i, c^\dagger_j \} = \{c_i, c_j \} =0.
$$

В частности,

$$
\{c^\dagger_j, c^\dagger_j \} = 2\left(c^\dagger_j\right)^2 = 0,
$$
$$ \{c^\dagger_j, c^\dagger_j \} = 2\left(c^\dagger_j\right)^2 = 0, $$

и, следовательно, в системе не может быть больше одного фермиона в одном состоянии (в соответсвии с принципом запрета
и, следовательно, в системе не может быть больше одного фермиона в одном состоянии (в соответствии с принципом запрета
Паули). Из этого так же следует что $c_j^2=0$, так как независимо от состояния системы, после первого оператора в ней не
останется фермиона который можно было бы уничтожить.

## Переход от спинов к фермионам

Мы можем попробовать сопоставить спину фермион сказав что спин вниз значит что фермион есть, а спин вверх -- что его
нет. Другими словами, используя оператор количества частиц $\hat{n}_i = c^\dagger_i c_i$, где $c^\dagger_i$ и $c_i$ это
операторы создания и разрушения соответсвенно, мы хотели бы сопоставить
операторы создания и разрушения соответственно, мы хотели бы сопоставить

$$ \hat{\sigma}_i^z = 1 - 2\hat{n}_i $$

Expand All @@ -131,65 +131,49 @@ $$ \hat{\sigma}_i^z = 1 - 2\hat{n}_i $$

Действительно, на одной вершине эти операторы выполняют фермионное антикоммутационное отношение

$$
\{ \sigma^+_j, \sigma^-_j \} = 1.
$$
$$ \{ \sigma^+_j, \sigma^-_j \} = 1. $$

К сожалению, на разных вершинах эти операторы коммутируют, а не антикоммутируют. Чтобы это исправить, мы "прикрепляем"
к каждому фермиону "нить" (string):

$$
\sigma^+_i = \left[ \prod_{j< i} (1-2c^\dagger_j c_j) \right] c_i
$$
$$ \sigma^+_i = \left[ \prod_{j< i} (1-2c^\dagger_j c_j) \right] c_i $$

$$
\sigma^-_i = \left[ \prod_{j< i} (1-2c^\dagger_j c_j) \right] c^\dagger_i
$$
$$ \sigma^-_i = \left[ \prod_{j< i} (1-2c^\dagger_j c_j) \right] c^\dagger_i $$

Oператор $\prod_{j_i} (1-2c^\dagger_j c_j)$ равен $\pm 1$ в зависимости от четности количества фермионов слева от
вершины $i$.

Заметим, что $c_k$ антикоммутирует с $(1-2c^\dagger_k c_k)$:

$$
\{ c_j, (1-2c^\dagger_j c_j) \} = c_j (1-2c^\dagger_j c_j) + c_j (1-2c^\dagger_j c_j)c_j =
c_j -2\underbrace{c_jc^\dagger_j}_{1-c^\dagger_j c_j} c_j + c_j -2c^\dagger_j \underbrace{c_jc_j}_{0} =
c_j - 2c_j + 2 c^\dagger_j \underbrace{c_jc_j}_{0} + c_j = 0,
$$
$$ \{ c_j, (1-2c^\dagger_j c_j) \} = c_j (1-2c^\dagger_j c_j) + c_j (1-2c^\dagger_j c_j)c_j = c_j
-2\underbrace{c_jc^\dagger_j}_{1-c^\dagger_j c_j} c_j + c_j -2c^\dagger_j \underbrace{c_jc_j}_{0} = c_j - 2c_j + 2
c^\dagger_j \underbrace{c_jc_j}_{0} + c_j = 0, $$

и, следовательно с нитью $\prod_{j_i} (1-2c^\dagger_j c_j) $ (интуивно, если сначала разрушить фермион, то четность
и, следовательно, с нитью $\prod_{j_i} (1-2c^\dagger_j c_j) $ (интуитивно, если сначала разрушить фермион, то четность
изменится).

Пусть, без ограничения общности, $\ell>k$:

$$
\sigma^+_k \sigma^-_\ell = \left[ \prod_{j<k} (1-2c^\dagger_j c_j) \right] c_k \left[ \prod_{m< \ell} (1-2c^\dagger_m c_m) \right] c^\dagger_\ell
$$
$$ \sigma^+_k \sigma^-_\ell = \left[ \prod_{j<k} (1-2c^\dagger_j c_j) \right] c_k
\left[ \prod_{m< \ell} (1-2c^\dagger_m c_m) \right] c^\dagger_\ell $$

Если мы перенесем $c_k$ вправо, то выражение умножится на -1 дважды (один раз из-за изменения четности $\ell$-нити, и
один раз из-за обмена с $c^\dagger_\ell$). В то же время, $i$-нить коммутирует со всем, поэтому ее мы можем перенести
вправо без изменений:

$$
\sigma^+_k \sigma^-_\ell
= \left[ \prod_{j<k} (1-2c^\dagger_j c_j) \right] c_k \left[ \prod_{m< \ell} (1-2c^\dagger_m c_m) \right] c^\dagger_\ell
= \left[ \prod_{m< \ell} (1-2c^\dagger_m c_m) \right] c^\dagger_\ell \left[ \prod_{j<k} (1-2c^\dagger_j c_j) \right] c_k
= \sigma^-_\ell \sigma^+_k,
$$
$$ \sigma^+_k \sigma^-_\ell = \left[ \prod_{j<k} (1-2c^\dagger_j c_j) \right] c_k
\left[ \prod_{m< \ell} (1-2c^\dagger_m c_m) \right] c^\dagger_\ell = \left[ \prod_{m< \ell} (1-2c^\dagger_m c_m) \right]
c^\dagger_\ell \left[ \prod_{j<k} (1-2c^\dagger_j c_j) \right] c_k = \sigma^-_\ell \sigma^+_k, $$

как и требовалось. Мы так же можем записать обратное отношение:

$$
c_i = \prod_{j< i} \sigma^z_j \sigma^+_i
$$
$$ c_i = \prod_{j< i} \sigma^z_j \sigma^+_i $$

$$
c^\dagger_i = \prod_{j< i} \sigma^z_j \sigma^+_i.
$$
Проверка антикоммутаторов оставляется читателю в качестве упражнения.
$$ c^\dagger_i = \prod_{j< i} \sigma^z_j \sigma^+_i. $$ Проверка антикоммутаторов оставляется читателю в качестве
упражнения.

Таким образом мы установили соответсвие между фермионной и спиновой системами, но операторы в обоих случаях очень
нелокальны. В частности, один фермионный оператор соответветсвует произведению $\mathcal{O}(N)$ спиновых операторов (и
Таким образом мы установили соответствие между фермионной и спиновой системами, но операторы в обоих случаях очень
нелокальны. В частности, один фермионный оператор соответствует произведению $\mathcal{O}(N)$ спиновых операторов (и
наоборот).

### Пример
Expand Down

0 comments on commit dbfe34c

Please sign in to comment.