Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Лекция 2 #3

Closed
wants to merge 23 commits into from
Closed

Лекция 2 #3

wants to merge 23 commits into from

Conversation

SemyonSinchenko
Copy link
Collaborator

@SemyonSinchenko SemyonSinchenko commented Mar 10, 2021

Текст второй лекции.
Closed #21

On branch l2
Changes to be committed:
new file:   lecture_notes/L2 Gates/RU/gates_RU.html
new file:   lecture_notes/L2 Gates/RU/gates_RU.org
new file:   lecture_notes/L2 Gates/RU/gates_RU.pdf
new file:   lecture_notes/L2 Gates/RU/gates_RU.tex
new file:   lecture_notes/L2 Gates/RU/images/Blochcolor-alt.png
On branch l2
Changes to be committed:
deleted:    lecture_notes/L2 Gates/RU/gates_RU.html
modified:   lecture_notes/L2 Gates/RU/gates_RU.org
deleted:    lecture_notes/L2 Gates/RU/gates_RU.pdf
deleted:    lecture_notes/L2 Gates/RU/gates_RU.tex
All single-qubit gates.

On branch l2
Changes to be committed:
modified:   lecture_notes/L2 Gates/RU/gates_RU.org
new file:   lecture_notes/L2 Gates/RU/images/Layer-VQE.png
On branch l2
Changes to be committed:
modified:   lecture_notes/L2 Gates/RU/gates_RU.org
On branch l2
Changes to be committed:
modified:   lecture_notes/L2 Gates/RU/gates_RU.org
On branch l2
Changes to be committed:
modified:   lecture_notes/L2 Gates/RU/gates_RU.org
new file:   lecture_notes/L2 Gates/RU/images/CNOT_gate.svg.png
SemyonSinchenko and others added 8 commits March 13, 2021 09:56
On branch l2
Changes to be committed:
renamed:    lecture_notes/L2 Gates/RU/gates_RU.org -> lecture_notes/lecture2_gates/RU/gates_RU.org
renamed:    lecture_notes/L2 Gates/RU/images/Blochcolor-alt.png -> lecture_notes/lecture2_gates/RU/images/Blochcolor-alt.png
renamed:    lecture_notes/L2 Gates/RU/images/CNOT_gate.svg.png -> lecture_notes/lecture2_gates/RU/images/CNOT_gate.svg.png
renamed:    lecture_notes/L2 Gates/RU/images/Layer-VQE.png -> lecture_notes/lecture2_gates/RU/images/Layer-VQE.png
Зачем мы и то и ругое тут держим -- я не знаю. Но раз держим, надо сказать что это одно и то же.
Добавляю это в ветку, тогда все исправления сделаю уже там.
@nsmarkova nsmarkova requested review from nsmarkova and removed request for nsmarkova March 18, 2021 14:33
@maruschin maruschin self-requested a review March 19, 2021 01:29
@meandmytram meandmytram self-requested a review March 20, 2021 11:47
@meandmytram
Copy link
Collaborator

В лекции про гейты можно, кстати, упомянуть, что в русской литературе гейты часто называются вентилями, но это, конечно, ужасное слово и использовать его нет смысла:)

Copy link
Collaborator

@meandmytram meandmytram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лекция просто огонь, спасибо большое!:) Дайте знать, если от меня требуется какая-то дополнительная помощь.

Помимо важной роли в математики квантовых вычислений, гейт Адамара и T-гейт интересны тем, что именно на них построено большинство предложений по реализации квантовых вычислений с топологической защитой или с коррекцией ошибок. На сегодняшний день эти схемы реально пока не очень работают: никаких топологически защищённых кубитов продемонстрировано не было, а коррекция ошибок не выходит за пределы двух логических кубитов.

** Гейты поворота вокруг оси
Поворотные гейты играют центральную роль в квантовом машинном обучении. Вспомним на секунду, как выглядят наши однокубитные состояния на сфере Блоха:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Будем ли мы рассказывать про смешанные состояния? Строго говоря, на сфере Блоха лежат только чистые состояния, а внутри -- смешанные. Но не факт, что эта информация пригодится людям, берущим данный курс.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Матрицы плотнрсти и смешанные состояния будут идти в продвинутой лекции (там де будет и энтропия). В базовой части курса хочется обойтись без них - все же этот концепт довольно сложен для понимания.

random_state = np.array([0.42 + 0j, np.sqrt(1 - 0.42**2) + 0j]).reshape((2, 1))
#+end_src

Измерим его по осям $\mathbf{X}$ и $\mathbf{Z}$, затем повернем его на угол $2\pi$ и измерм снова:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Опечатка -- измерим :)

return np.array([[1, 0], [0, np.exp(1j * phi)]]) @ state
#+end_src

Легко видеть, что с точностью до глобального фазового множителя, который ни на что не влияет, Phase-shift-гейт -- это тот же $\hat{RZ}(\phi)$.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может стоит добавить небольшое объяснение, почему фазовый множитель ни на что не влияет? Кажется, в первой лекции этого не упоминалось.

* Многокубитные состояния и гейты
Очевидно, что с одним кубитом мы ничего интересного (ну кроме генератора истинно-случайных чисел) мы не сделаем. Давайте для начала разберемся, как выглядят состояния для многокубитных систем.
** Многокубитные состояния
В классическом компьютере 1 бит имеет два значения - 0 и 1; 2 бита имеют 4 - 00, 01, 10, 11; 3 бита 8 значений и т.д. По аналогии, состояние двух кубит это вектор в пространстве $\mathbf{C}^4$; состояние трех кубит, соответственно, в пространстве $\mathbf{C}^8$ и т.д., то есть состояние $N$ кубит описывается вектором размерности $2^N$ в комплексном пространстве. Вероятности каждой из возможных битовых строк ($0000...00$, $0000...01$, $0000...10$, и т.д.) получаются по методу Шрёдингера, который мы обсуждали в конце прошлой лекции:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне кажется, здесь уже можно начинать говорить про тензорное произведение (произведение Кронекера, tensor product, Kronecker product etc) в контексте многокубитных состояний.

@Yorko
Copy link
Collaborator

Yorko commented Mar 22, 2021

Заберу на редактирование.

@Yorko
Copy link
Collaborator

Yorko commented Mar 22, 2021

Пока дошёл до раздела "Многокубитные состояния и гейты" (на самом деле полчаса до этого редачил, вспомнил, что лучше отписаться). Пара общих замечаний:

  • очень много где \hat неправильно стоит: пиши вместо $\hat{U_1}$$\hat{U}_1$
  • картинки в плохом разрешении – так себе. ML на помощь! https://bigjpg.com/; Сравни Layer-VQE.png и Layer-VQE_enlarged.png

Потом продолжу редактировать, не сейчас

@Yorko
Copy link
Collaborator

Yorko commented Mar 23, 2021

Мы знаем, что такое измерение и наблюдаемые

наблюдаемые, кажется, до этого нигде не определялись.

Пример с PennyLane показался сложноватым по части NumPy. Может, напомнить математику, стоящую за этим делом?

В частности, вот это сложно

(op @ state).conj().T @ measure @ (op @ state)

А так закончил править. В целом классная лекция.

lecture_notes/lecture2_gates/RU/gates_RU.org Outdated Show resolved Hide resolved
lecture_notes/lecture2_gates/RU/gates_RU.org Outdated Show resolved Hide resolved
lecture_notes/lecture2_gates/RU/gates_RU.org Outdated Show resolved Hide resolved
lecture_notes/lecture2_gates/RU/gates_RU.org Outdated Show resolved Hide resolved
Copy link
Collaborator

@Yorko Yorko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В целом здорово, немного расширить бы примеры – см. два комментария выше

basis = np.array([1 + 0j, 0 + 0j]).reshape((2, 1))
#+end_src

Внимательно посмотрев на сферу Блоха, можно заметить, что повернув состояние из $\ket{0}$ на $\pi$ и измерив значение $\hat{\sigma^z}$ мы получим 1, а повернув на $-\pi$ мы получим 0:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не особо понятно откуда взялось $\hat{\sigma^z}$

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0 плохо отображается в html. хочется сказать что это o

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну типа по вертикали измеряем

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему тогда в коде pauli_x?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Что-то, кажется, не то с этим примером - если |0> повернуть что на pi что на -pi вокруг Y – придешь в |1>, то есть -1 по Z. А в коде ты делаешь поворот на +/- pi/2 и измеряешь по Х.

@vvssttkk
Copy link
Member

@SemyonSinchenko а напиши пжлст правильную команду pandoc для экспорта в html, дабы все нормально тображалось, а то pandoc --pdf-engine xelatex -f org input.org -o output.pdf плохо отрабатывает

@SemyonSinchenko
Copy link
Collaborator Author

@SemyonSinchenko а напиши пжлст правильную команду pandoc для экспорта в html, дабы все нормально тображалось, а то pandoc --pdf-engine xelatex -f org input.org -o output.pdf плохо отрабатывает

Я не до конца уверен как заставить работать pandoc и экспортирую используя встроенный в emacs экспорт, потому что у меня там настроен бэкграунд для кода (и экспорт в tex идет через minted). Я могу лишь скинуть то, как выглядит итоговый файл, чтобы ты убедился, что он красивый.

Copy link
Member

@vvssttkk vvssttkk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SemyonSinchenko а напиши пжлст правильную команду pandoc для экспорта в html, дабы все нормально тображалось, а то pandoc --pdf-engine xelatex -f org input.org -o output.pdf плохо отрабатывает

Я не до конца уверен как заставить работать pandoc и экспортирую используя встроенный в emacs экспорт, потому что у меня там настроен бэкграунд для кода (и экспорт в tex идет через minted). Я могу лишь скинуть то, как выглядит итоговый файл, чтобы ты убедился, что он красивый.

главное чтобы на ods.ai в итоге все красиво отображалось

basis = np.array([1 + 0j, 0 + 0j]).reshape((2, 1))
#+end_src

Внимательно посмотрев на сферу Блоха, можно заметить, что повернув состояние из $\ket{0}$ на $\pi$ и измерив значение $\hat{\sigma^z}$ мы получим 1, а повернув на $-\pi$ мы получим 0:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0 плохо отображается в html. хочется сказать что это o

\begin{align*}
\large \hat{R}^\vec{n}(\alpha) = e^{-\frac{i\alpha\hat{\vec{\sigma}}\vec{n}}{2}},
\end{align*}
где $\alpha$ -- это угол поворота, $\vec{n}$ -- единичный вектор в направлении оси поворота, а $\hat{\vec{\sigma}} = \{\sigma^x, \sigma^y, \sigma^z\}$ -- это вектор, составленный из операторов Паули. Если использовать покоординатную запись и $\vec{n} = \{n_x, n_y, n_z\}$ задаёт ось вращения, то
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

пожалуй а можно и убрать и Если.. лучше с новой строки

где $\alpha$ -- это угол поворота, $\vec{n}$ -- единичный вектор в направлении оси поворота, а $\hat{\vec{\sigma}} = \{\sigma^x, \sigma^y, \sigma^z\}$ -- это вектор, составленный из операторов Паули. Если использовать покоординатную запись и $\vec{n} = \{n_x, n_y, n_z\}$ задаёт ось вращения, то

\begin{align*}
\large \hat{R}^\vec{n}(\alpha) = e^{-i\frac{\alpha}{2}\left(\hat{\sigma}^xn_x+\hat{\sigma}^yn_y+\hat{\sigma}^zn_z\right)}.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

\hat{R}^\vec{n}(\alpha)обрезаны по верху (речь о html)

Comment on lines +202 to +203
1
/ np.sqrt(2)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не хочешь в одну строку сконкатенировать?

)


np.allclose(u2_direct(np.pi / 6, np.pi / 3), u2_inferenced(np.pi / 6, np.pi / 3))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а почему внизу именно 6 и 3 (не особо понимаю)?

Comment on lines +385 to +392
\begin{align*}
\mathrm{iSWAP} = \begin{bmatrix}
1 & 0 & 0 & 0\\
0 & 0 & -i & 0\\
0 & -i & 0 & 0\\
0 & 0 & 0 & 1
\end{bmatrix}
\end{align*}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Comment on lines +397 to +404
\begin{align*}
\mathrm{fSim}(\theta, \phi) = \begin{bmatrix}
1 & 0 & 0 & 0\\
0 & \cos\theta & -i\sin\theta & 0\\
0 & -i\sin\theta & \cos\theta & 0\\
0 & 0 & 0 & e^{-i\phi}
\end{bmatrix}.
\end{align*}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vtrokhymenko Я добавил HTML/PDF, можешь посмотреть как они сейчас выглядят? Просто если они выглядят норм, то нет смысла сейчас морочиться по этому.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если прямо у всех (кроме меня) все оч плохо то давайте рассмотрим вопрос о том, чтобы писать в другом формате. Чистый tex (правда количество строк резко вырастет), markdown (если кто-то его настроит) и т.д. Я выбрал org потому что у меня он работает (потому что использую emacs и это логично) и потому что у меня был печальный опыт с markdown. Но если прямо у всех бомбит от .org - го обсуждать это.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

вроде все нормально, кроме «шапок» и 6.2.1 и 6.2.2 после которых пусто
image
image
image

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А это наверное какой-то косяк уже в коде. Я поправлю. Про шапки Юра уже писал - надо выносить нижний индекс за шапку.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенесем обсуждение в #33

Первый аргумент тут -- указание устройства, а второй -- число кубит.

** QNode
Основной /строительный блок/ в =PennyLane= -- это =qnode=. Это функция, которая отмечена специальным декоратором и включает в себя несколько операций с кубитами. Результатом такой функции всегда является измерение. Напишем функцию, которая поворачивает первый кубит на $45^o$, после чего измеряет оба кубита по оси $\mathbf{Z}$.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

плохо видно $45^o$

Comment on lines +452 to +455
- Мы знаем что такое кубит
- Мы понимаем линейную алгебру, которая описывает квантовые вычисления
- Мы понимаем, как можно сконструировать нужный нам оператор и как применить его
- Мы знаем, что такое измерение и наблюдаемые
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мб перед этими пунктами написать мол «теперь мы», убрав мы, а то его тут очень много или что-то иное

0 & 0 & 0 & 1
\end{bmatrix}.
\end{align*}
Попробуйте составить последовательность гейтов, реализующую $\mathrm{SWAP}$, из гейтов $\mathrm{iSWAP}$, $\hat{CZ}$ и $\hat{RZ}(\phi)$.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не особо видно, чтобы относилось к последнему пункту, если оно так должно быть

SemyonSinchenko and others added 2 commits March 23, 2021 19:09
On branch l2
Changes to be committed:
modified:   .gitignore
new file:   lecture_notes/lecture2_gates/RU/gates_RU.html
modified:   lecture_notes/lecture2_gates/RU/gates_RU.org
new file:   lecture_notes/lecture2_gates/RU/gates_RU.pdf
Добавил немного про многокубитные состояния.
0 & \frac{1+i}{\sqrt{2}}
\end{bmatrix}
\end{align*}
Любой однокубитный гейт можно аппроксимировать последовательностью гейтов Адамара и T-гейтов. Чем точнее требуется аппроксимация, тем длиннее будет аппроксимирующая последовательность.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Любой однокубитный гейт можно аппроксимировать последовательностью гейтов Адамара и T-гейтов.

Тут бы ссылку

\end{align*}
Любой однокубитный гейт можно аппроксимировать последовательностью гейтов Адамара и T-гейтов. Чем точнее требуется аппроксимация, тем длиннее будет аппроксимирующая последовательность.

Помимо важной роли в математике квантовых вычислений, гейт Адамара и T-гейт интересны тем, что именно на них построено большинство предложений по реализации квантовых вычислений с топологической защитой или с коррекцией ошибок. На сегодняшний день эти схемы реально пока не очень работают: никаких топологически защищённых кубитов продемонстрировано не было, а коррекция ошибок не выходит за пределы двух логических кубитов.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а коррекция ошибок не выходит за пределы двух логических кубитов.

И тут бы ссылку

Читатель может сам легко убедиться, что эти формы записи эквивалентны. Для этого надо написать примерно такой же код, какой мы писали раньше для $\hat{U}_2$.

** Еще пара слов об однокубитных гейтах
На этом мы завершаем обзор основных однокубитных гейтов. Маленькое замечание -- гейты, связанные со свдигом фазы, никак не меняют состояние кубита, если оно сейчас $\ket{0}$. Учитывая, что мы всегда предполагаем, что наше начальное состояние кубитов это именно $\ket{0}$, то перед тем как применять, например, гейт $\hat{U}_1$, рекомендуется применить гейт Адамара:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

рекомендуется применить гейт Адамара

Я не понял, почему рекомендуется и что иллюстрирует следующий за этим сниппет.

#+end_src

** Наблюдаемые для многокубитных гейтов
Аналогичным образом можно сконструировать и наблюдаемые. Например, если мы хотим измерять одновременно два спина по оси $\mathbf{Z}$, то наблюдаемая будет выглядеть так:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

наблюдаемые

Что это? нужно определение. В 1-ой лекции не упоминается. То же со спином

Yorko and others added 2 commits March 24, 2021 01:27
On branch l2
Changes to be committed:
modified:   lecture_notes/lecture2_gates/RU/gates_RU.html
modified:   lecture_notes/lecture2_gates/RU/gates_RU.org
modified:   lecture_notes/lecture2_gates/RU/gates_RU.pdf
Читатель может сам легко убедиться, что эти формы записи эквивалентны. Для этого надо написать примерно такой же код, какой мы писали раньше для $\hat{U}_2$.

** Еще пара слов об однокубитных гейтах
На этом мы завершаем обзор основных однокубитных гейтов. Маленькое замечание -- гейты, связанные со сдвигом фазы, никак не меняют состояние кубита, если оно сейчас $\ket{0}$. Учитывая, что мы всегда предполагаем, что наше начальное состояние кубитов это именно $\ket{0}$, то перед тем как применять, например, гейт $\hat{U}_1$, рекомендуется применить гейт Адамара:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"состояние кубитов -- это именно"
Также есть в лекции нестыковка по склонению слова "кубит".
Если "кубит" мужского рода - то тогда "3 кубита", но в тексте используется "3 кубит", как будто женский

\mathbf{P}(\vec{s}) = | \bra{\Psi}\ket{\vec{s}} |^2
\end{align*}

Напомню, что по сути мы должны отсортировать наши битовые строки в лексикографическом порядке и вероятность /i/-й битовой строки будет равна квадрату /i/-го элемента вектора $\ket{\Psi}$.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в лексикографическом порядке, и вероятность

#+end_src

* Основные двухкубитные гейты
Основные многокубитные гейты, которые предоставляют современные квантовые компьютеры, это двухкубитные гейты.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

компьютеры, -- это двухкубитные гейты.

\end{align*}

** Гейт iSWAP
Гейты $\hat{CX}$, $\hat{CY}$ и $\hat{CZ}$ эквивалентны с точностью до однокубитных гейтов. Это означает, что любой из них можно получить добавив необходимые однокубитные гейты до и после другого гейта. Так, например,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

любой из них можно получить, добавив

\begin{align*}
\hat{CZ} = \left(\hat{I}\times\hat{H}\right)\hat{CX}\left(\hat{I}\times\hat{H}\right).
\end{align*}
Этим свойством обладают отнюдь не все двухкубитные гейты! Например, таковым является гейт iSWAP:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Этим свойством обладают отнюдь не все двухкубитные гейты! Например, им не обладает гейт iSWAP:"
Сейчас "таковым является" непонятно к чему относится - к "обладающим свойством" или наоборот

\end{align*}

** Гейт fSim
Для разных архитектур квантовых процессоров "естественный" гейт может выглядеть по-разному. Так, например, в квантовом процессоре Google Sycamore естественным является так называемый fermionic simulation gate, или fSim. Это двухпараметрическое семейство гейтов вида
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лично я что-то вообще не въехал в этот абзац. Если я правильно понял, то здесь речь пошла о том, через какой наиболее удобный для кокретной архитектуры оператор на самом деле выражаются предыдущие при определенных параметрах. Если это так - то стоит раскрыть и расписать подробнее имхо. Что такое "естественный" непонятно, по-крайней мере тем, кто не знаком с как устроены QC на уровне железа :)
Ну и в целом имхо стоит придерживаться одного уровня абстракции в одной лекции: если здесь пока знакомство с операторами и математикой, то по возможность стоит не примешивать детали реализации.

SemyonSinchenko added a commit that referenced this pull request Mar 28, 2021
Resolve some comments from @zimka's review in #3

On branch feature/jupyterbook-test
Changes to be committed:
modified:   qmlcourseRU/book/qcblock/gates.md
@Yorko
Copy link
Collaborator

Yorko commented Apr 14, 2021

@SemyonSinchenko этот PR закрываем? Вроде #35 покрыл эти изменения

@SemyonSinchenko
Copy link
Collaborator Author

@SemyonSinchenko этот PR закрываем? Вроде #35 покрыл эти изменения

Я только за.

@Yorko
Copy link
Collaborator

Yorko commented Apr 21, 2021

Закрываем, поскольку предложенные тут изменения учтены в #35

@Yorko Yorko closed this Apr 21, 2021
SemyonSinchenko pushed a commit that referenced this pull request Jun 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Лекция по основным гейтам
6 participants