量子フーリエ変換を具体例で分かりやすく
この記事では量子フーリエ変換の具体的な例をみることで直感的な理解を深めます。
Amazon Braket学習コース
量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。
英語版問題集
日本語版問題集
量子フーリエ変換
$n$量子ビットにおける量子フーリエ変換$\mathcal{F}$は式で次のように表せます。 $$ \mathcal{F} \ket{j} = \frac{1}{\sqrt{2^n}} \sum_{k=0}^{2^n-1} e^{2\pi i jk / 2^n} \ket{k} $$
また量子フーリエ変換はユニタリ変換であり、逆量子フーリエ変換は次のように表せることも触れておきます。 $$ \mathcal{F}^{-1} \ket{k} = \mathcal{F}^\dagger \ket{k} = \frac{1}{\sqrt{2^n}} \sum_{j=0}^{2^n-1} e^{-2\pi i jk / 2^n} \ket{j} $$
量子フーリエ変換の具体例
1量子ビットの場合
$\ket{0}$という状態を量子フーリエ変換してみましょう。
$$
\mathcal{F} \ket{0} = \frac{1}{\sqrt{2}} ( \ket{0} + \ket{1} )
$$
このように、$\ket{0}$は位相がずれていない状態の重ね合わせとなることが分かります。
$\ket{1}$という状態を量子フーリエ変換してみましょう。
$$ \mathcal{F} \ket{1} = \frac{1}{\sqrt{2}} ( \ket{0} + e^{\pi i} \ket{1} ) = \frac{1}{\sqrt{2}} ( \ket{0} - \ket{1} ) $$ このように、$\ket{1}$を量子フーリエ変換すると位相が反転された状態(πずれている状態)の重ね合わせとなることが分かります。
2量子ビットの場合
$\ket{00}$という状態を量子フーリエ変換してみましょう。
$$ \mathcal{F} \ket{00} = \frac{1}{2} ( \ket{00} + \ket{01} + \ket{10} + \ket{11} ) $$ このように、$\ket{00}$についても$\ket{0}$と似たように位相がずれていない状態の重ね合わせとなることが分かります。
$\ket{01}$という状態を量子フーリエ変換してみましょう。
$$ \begin{align} \mathcal{F} \ket{01} &= \frac{1}{2} \sum_{k=0}^{3} e^{2\pi i \cdot 1 \cdot k / 4} \ket{k} = \frac{1}{2} \left( \ket{00} + e^{\frac{\pi i}{2}}\ket{01} + e^{\frac{2\pi i}{2}} \ket{10} + e^{\frac{3\pi i}{2}} \ket{11} \right) \\ &= \frac{1}{2} \left( \ket{00} + i\ket{01} - \ket{10} - i\ket{11} \right) \\ \end{align} $$ このように、$\ket{01}$を量子フーリエ変換すると位相がπ/2ずつずれた状態の重ね合わせとなることが分かります。
$\ket{10}$という状態を量子フーリエ変換してみましょう。
$$ \begin{align} \mathcal{F} \ket{10} &= \frac{1}{2} \sum_{k=0}^{3} e^{2\pi i \cdot 2 \cdot k / 4} \ket{k} = \frac{1}{2} \left( \ket{00} + e^{\pi i} \ket{01} + e^{2\pi i} \ket{10} + e^{3\pi i} \ket{11} \right) \\ &= \frac{1}{2} \left( \ket{00} - \ket{01} + \ket{10} - \ket{11} \right) \end{align} $$ このように、$\ket{10}$を量子フーリエ変換すると位相がπずつずれた状態の重ね合わせとなることが分かります。
$\ket{11}$という状態を量子フーリエ変換してみましょう。
$$ \begin{align} \mathcal{F} \ket{11} &= \frac{1}{2} \sum_{k=0}^{3} e^{2\pi i \cdot 3 \cdot k / 4} \ket{k} = \frac{1}{2} \left( \ket{00} + e^{\frac{3\pi i}{2}} \ket{01} + e^{\frac{6\pi i}{2}} \ket{10} + e^{\frac{9\pi i}{2}} \ket{11} \right) \\ &= \frac{1}{2} \left( \ket{00} - i\ket{01} - \ket{10} + i\ket{11} \right) \end{align} $$ このように、$\ket{11}$を量子フーリエ変換すると位相が3π/2ずつずれた状態の重ね合わせとなることが分かります。
3量子ビットの場合
$\ket{000}$という状態を量子フーリエ変換してみましょう。
$$ \mathcal{F} \ket{000} = \frac{1}{\sqrt{8}} \left( \ket{000} + \ket{001} + \ket{010} + \ket{011} + \ket{100} + \ket{101} + \ket{110} + \ket{111} \right) $$ やはり、$\ket{000}$についても位相がずれていない状態の重ね合わせとなることが分かります。
$\ket{001}$という状態を量子フーリエ変換してみましょう。 $$ \begin{align} \mathcal{F} \ket{001} &= \frac{1}{\sqrt{8}} \sum_{k=0}^{7} e^{2\pi i \cdot 1 \cdot k / 8} \ket{k} \\ &= \frac{1}{\sqrt{8}} \left( \ket{000} + e^{\frac{\pi i}{4}} \ket{001} + e^{\frac{2\pi i}{4}} \ket{010} + e^{\frac{3\pi i}{4}} \ket{011} + e^{\frac{4\pi i}{4}} \ket{100} + e^{\frac{5\pi i}{4}} \ket{101} + e^{\frac{6\pi i}{4}} \ket{110} + e^{\frac{7\pi i}{4}} \ket{111} \right) \\ &= \frac{1}{\sqrt{8}} \left( \ket{000} + e^{\frac{\pi i}{4}} \ket{001} + i \ket{010} + e^{\frac{3\pi i}{4}} \ket{011} - \ket{100} + e^{\frac{5\pi i}{4}} \ket{101} - i \ket{110} + e^{\frac{7\pi i}{4}} \ket{111} \right) \end{align} $$
このように、$\ket{001}$を量子フーリエ変換すると位相がπ/4ずつずれた状態の重ね合わせとなることが分かります。
$\ket{010}$という状態を量子フーリエ変換してみましょう。 $$ \begin{align} \mathcal{F} \ket{010} &= \frac{1}{\sqrt{8}} \sum_{k=0}^{7} e^{2\pi i \cdot 2k / 8} \ket{k} \\ &= \frac{1}{\sqrt{8}} \left( \ket{000} + e^{\frac{\pi i}{2}} \ket{001} + e^{\frac{2\pi i}{2}} \ket{010} + e^{\frac{3\pi i}{2}} \ket{011} + e^{\frac{4\pi i}{2}} \ket{100} + e^{\frac{5\pi i}{2}} \ket{101} + e^{\frac{6\pi i}{2}} \ket{110} + e^{\frac{7\pi i}{2}} \ket{111} \right) \\ &= \frac{1}{\sqrt{8}} \left( \ket{000} + i\ket{001} - \ket{010} - i\ket{011} + \ket{100} + i\ket{101} - \ket{110} - i\ket{111} \right) \end{align} $$
このように、$\ket{010}$を量子フーリエ変換すると位相がπ/2ずつずれた状態の重ね合わせとなることが分かります。
これらの例の通り量子ビットの数と、元々の状態の値に依存した位相だけずらしながら各状態を足し合わせていく規則がみえてきました。
量子フーリエ変換による恩恵
たとえばある2量子ビットが、$\psi_1 = \frac{1}{2} \left( \ket{00} + i\ket{01} - \ket{10} - i\ket{11} \right)$もしくは$\psi_2 = \frac{1}{2} \left( \ket{00} - \ket{01} + \ket{10} - \ket{11} \right)$どちらかの状態で存在していたとします。
$\psi_1, \psi_2$どちらの状態であるか確認するにはどうすれば良いでしょうか?
まず量子力学の前提として全ての状態の係数を直接観測することはできません。
また、2量子ビットの状態をそのまま測定しても$\psi_1, \psi_2$とも各状態の計数の絶対値は同じ値なので、両方とも以下の確率で観測され、違いがありません。
00: 25%, 01: 25%, 10: 25%, 11: 25%
このような例で役立つのが量子フーリエ変換、逆量子フーリエ変換です。
例えば$\psi_1$を逆量子フーリエ変換すると$\ket{01}$が得られます。$\psi_2$を逆量子フーリエ変換すると$\ket{10}$が得られます。
つまり、どちらの場合であってもまずは逆量子フーリエ変換を実行し、$\ket{01}$が観測された場合は元々の状態が$\psi_1$であったということが分かり、$\ket{10}$が観測された場合は$\psi_2$であったことが分かります。
このように量子状態が位相を含めてどのような状態であったかを知ることができるのが強みの一つです。
次の記事ではQiskit 2.0で実際に逆量子フーリエ変換を実行し、元々の量子状態が判別できることを確認します。
Amazon Braket学習コース
量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。