> For the complete documentation index, see [llms.txt](https://sansong.gitbook.io/cyber/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sansong.gitbook.io/cyber/informatique-quantique/introduction.md).

# Introduction

Cette page sert de notes/rappels et est sans doute trop légère pour une première approche à l'informatique quantique

L'informatique quantique s'oppose à l'informatique classique.

Elle utilise des phénomènes de la mécanique quantique comme la superposition d'états et l'intrication. Les bits y sont remplacés par des **qubits en superposition d'états 0 et 1**.

## Notations

### Notation de Dirac

$$\bra\cdot{} : bra \space (vecteur \space  ligne)$$

$$\ket\cdot{} : ket \space (vecteur \space colonne)$$

$$\dagger : dagger \space (transposée \space complexe)$$

{% hint style="success" %}
$$\ket\cdot{}^\dagger = \bra\cdot{}$$ et $$\bra\cdot{}^\dagger = \ket\cdot{}$$
{% endhint %}

### Qubit (quantum bit)

On le représente par un vecteur à $$2$$ dimensions dans un espace de Hilbert $$\mathcal{H}$$ de base $$b = { \ket{0}, \ket{1}}$$.

Soit $$\psi$$ un qubit. On a $$\ket\psi{} = \sum\_{x\in b}{\alpha\_x}\ket{x}$$ :

$$
\begin{split} \ket\psi{} &= \sum\_{x\in b}{\alpha\_x}\ket{x} \ &= \alpha\ket{0} + \beta\ket{1} \ &= \alpha\begin{pmatrix} 1 \ 0 \end{pmatrix} + \beta\begin{pmatrix} 0 \ 1 \end{pmatrix} \ &= \begin{pmatrix} \alpha \ \beta \end{pmatrix}\end{split}
$$

avec $$(\alpha, \beta) \in \mathbb{C}^2$$

On peut voir $$\alpha$$ et $$\beta$$ comme les probabilités respectives que le qubit soit dans l'état 0 ou 1.

{% hint style="success" %}
En réalité ce sont des amplitudes de probabilité qui vérifient la relation:

$$
|\alpha|^2 + |\beta|^2 = 1
$$

Les probabilités respectives des états 0 et 1 sont donc $$|\alpha|^2$$ et $$|\beta|^2$$.
{% endhint %}

Un qubit est donc dans un superposition d'états **mais comment visualiser son état ?**

On utilise la **sphère de Bloch**. Pour ça peut réécrire:

$$
\begin{split} \ket\psi{} &= \alpha\ket{0} + \beta\ket{1} \ \ket{\psi} &= \cos\left( \frac{\theta}{2} \right)\ket{0} + e^{i\phi}\sin\left( \frac{\theta}{2} \right)\ket{1} \end{split}
$$

avec $$0\leq\theta\leq\pi,\thickspace 0\leq\phi\leq2\pi$$

<figure><img src="https://1813806532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZRRTPIEA4wb6exZozwS0%2Fuploads%2FLEevgaETuHSddkDZE8DI%2Fbloch-sphere.png?alt=media&amp;token=3535b1e0-5675-40cf-9a7b-b1b88de2c1bd" alt=""><figcaption><p><a href="https://logosconcarne.com/2021/03/15/qm-101-bloch-sphere/">https://logosconcarne.com/2021/03/15/qm-101-bloch-sphere/</a></p></figcaption></figure>

Tout ça c'est pour représenter l'état d'un seul qubit. C'est bien mais ça ne sert pas à grand chose, en pratique on en veut plusieurs.

Dans un système à $$n$$ qubits $$2^n$$ états sont possibles (on parle de dimension $$2^n$$).

Prenons un système $$\ket\psi{}$$ à $$2$$ qubits $$\ket{\psi\_1}$$ et $$\ket{\psi\_2}$$.

$$
\ket{\psi\_1} = \alpha\_1\ket{0} + \beta\_1\ket{1} \ \ket{\psi\_2} = \alpha\_2\ket{0} + \beta\_2\ket{1}
$$

On décrit le système comme ça:

$$
\begin{split} \ket{\psi} &= \ket{\psi\_1\psi\_2} \ &= \ket{\psi\_1}\ket{\psi\_2} \ &= \ket{\psi\_1} \otimes \ket{\psi\_2} \ &= \left( \alpha\_1\ket{0} + \beta\_1\ket{1} \right) \otimes \left( \alpha\_2\ket{0} + \beta\_2\ket{1} \right) \ &= \alpha\_1\alpha\_2\ket{00} + \alpha\_1\beta\_2\ket{01} + \beta\_1\alpha\_2\ket{10} + \beta\_1\beta\_2\ket{11} \ &= \begin{pmatrix} \alpha\_1\alpha\_2 \ \alpha\_1\beta\_2 \ \beta\_1\alpha\_2 \ \beta\_1\beta\_2 \end{pmatrix} \end{split}
$$

{% hint style="success" %}
Chaque qubit vit dans $$\mathcal{H}$$.  Un système de $$n$$ qubits vit dans $$\mathcal{H}^{\otimes n}=\mathcal{H}\otimes...\otimes\mathcal{H}$$ de base $$b={\ket{k}}\_{k=0,...,2^{n-1}}$$ avec $$\langle  ; u| v ; \rangle=0 \space\forall\space u\neq v,\in b$$.
{% endhint %}

De manière générale pour $$n$$ qubits on a:

$$
\begin{split} \ket{\psi} &= \sum\_{k=0}^{2^n-1}\alpha\_k\ket{k} \ &= \begin{pmatrix} \alpha\_0 \ . \ . \ . \ \alpha\_{2^n-1} \end{pmatrix} \end{split}
$$

avec $$\sum\_{k=0}^{2^n-1}|\alpha\_k|^2 = 1$$

{% hint style="success" %}
Ici l'écriture de $$k$$ est en binaire, par exemple si $$k=4$$ alors $$\ket{k}=\ket{100}$$
{% endhint %}

## Intrication

Maintenant qu'on sait décrire des qubits on va entrer dans le vif du sujet et parler d'**intrication**. C'est un des phénomènes fondamentaux de la mécanique quantique dans lequel 2 particules forment un système lié et présentent des états dépendants l'un de l'autre peu importe la distance qui les sépare.

En informatique quantique, **l'intrication permet de corréler de l'information**. Pour ça il faut au moins 2 qubits. Le système est intriqué s'il est impossible de décrire son état en décrivant séparément l'état de chaque qubit qui le compose.

On va prendre des exemples pour que ce soit plus clair.

Le système $$\ket{\psi}=\ket{00}$$ peut être décrit comme ceci:

$$
\begin{split} \ket{\psi}&=\ket{00}\ &=\ket{0}\otimes\ket{0} \end{split}
$$

On vient de le décomposer en séparant les 2 qubits donc le système **n'est pas intriqué**.

On peut faire pareil avec les systèmes suivants:

$$
\begin{split} \ket{\psi}&=\dfrac{1}{2} \left( \ket{00}+\ket{01}+\ket{10}+\ket{11} \right) \ &= \dfrac{1}{\sqrt{2}} \left( \ket{0} + \ket{1} \right) \otimes \dfrac{1}{\sqrt{2}} \left( \ket{0} + \ket{1} \right) \ &= \ket{\psi\_1} \otimes \ket{\psi\_2} \end{split}
$$

Le système n'est pas intriqué.

## Ressources

{% embed url="<https://github.com/ugo-nzongani/Introduction-to-Quantum-Programming>" %}
