Demystifying Quantum Gates – One Qubit At A Time

(ここにある量子コンピュータの紹介文を書きました。 量子コンピュータの世界に入りたいのであれば、量子ゲートという難解な概念をマスターする必要があります。 量子力学はもちろん、量子コンピューティングのすべてがそうであるように、量子ゲートもまた、専門用語と行列数学というよくわからない霧に包まれており、量子の謎を反映しています。 この記事では、その謎を少しばかり解き明かすことを目的としています。 しかし、サスペンスを省きますが、誰もそれを完全に取り除くことはできません。 少なくとも、2018年には無理です。 今日私たちができることは、古典的ゲートと量子ゲートの顕著な類似点と驚くべき相違点を明らかにし、コンピューティングの近くて遠い未来への影響を探ることだけです。

Striking similarities

何もなければ、古典論理ゲートと量子論理ゲートはどちらも論理ゲートです。 だから、そこから始めましょう。 論理ゲートとは、古典的であれ量子的であれ、2 進数の入力 (0 と 1、リンゴとオレンジ、スピンアップ電子とスピンダウン電子など) を受け取り、1、オレンジ、スピンアップ電子、あるいは 2 つの重ね合わせの状態のうちの 1 つという、1 進数の出力を出力する物理構造またはシステムのことを指します。 出力を支配するのは、ブール関数である。 ブール関数というと、派手で不気味な響きがあるが、そんなことはない。 ブール関数とは、Yes/Noの質問にどう答えるかのルールに過ぎないと考えてよい。 それくらい単純なものなのだ。 そして、そのゲートを組み合わせて回路にし、回路をCPUなどの計算機部品にする。 バベッジの差分エンジン、ENIAC、引退したチェス王者のディープ・ブルー、あるいは最新の部屋いっぱいに広がる、骨の折れる、大ニュースになる量子コンピュータの話でも同じことです。 つまり、量子ゲートは、古典的ゲートではまったく手の届かない量子力学の 2 つの重要な側面、重ね合わせとエンタングルメントを活用できるのです。 この2つの概念は、量子コンピューティングの文脈で最もよく耳にする概念であり、その理由はここにある。 しかし、あまり知られていない概念で、おそらく同じように重要なものがある。 量子ゲートは可逆的です。 可逆性については、量子コンピューティングをより深く理解するために、深く掘り下げていく価値があります。 量子ゲートには「取り消し」ボタンがありますが、古典ゲートには「取り消し」ボタンがありません。 つまり、少なくとも原理的には、量子ゲートは情報を失うことがない。 量子ゲートに入るときに絡まった量子ビットは、出て行くときも絡まったままであり、移行中もその情報は安全に封印されたままである。 一方、従来のコンピューターに使われている古典的なゲートの多くは、情報が失われるため、その足取りをたどることができない。 興味深いことに、その情報は最終的に宇宙に失われるのではなく、古典的なコンピュータの熱として部屋や膝の上に染み出てきます。 というわけで、さっそくやってみましょう。 量子力学とコンピューティングの言語では、ベクトルはケットと呼ばれる、かなり奇妙なパッケージで描かれます。 これはブラケットという言葉の後半に由来します。 以下はケット・ベクトルです。 |u>で、uはベクトル内の値を表します。 これはスピンアップ(|0>)とスピンダウン(|1>)状態の電子の形で量子ビットの代用になります。 これらのベクトルは、いわばいくつもの数字にまたがることができる。 しかし、スピンアップ/ダウン電子量子ビットのような2進状態の場合、2つしかありません。 ですから、そびえ立つ列ベクトルではなく、2つ積み重なった数字のように見えるのです。 0>はこんな感じ:

/ 1 \

0 /

さて、ゲート/マトリックスがすることは、これらの状態、ベクトル、ケット、数字の列を、まったく新しいものに変換することである。 たとえば、ゲートはアップステート(|0>)をダウンステート(|1>)に魔法のように変換することができるのです。

/ 1 \ → / 0 \

0 / \ 1 /

M is for matrix

このベクトルを別のベクトルに変換するのは、やっと理解できた行列の乗法のマジックで、これは我々が量子以前の学校で学んだ乗法とは全く違うものです。 しかし、一度この種の数学のコツをつかめば、非常にやりがいがあります。なぜなら、素人には理解しがたい無数の方程式に何度でも適用できるからです。 さらにモチベーションが必要な場合は、ハイゼンベルクがすべてを包含する不確定性原理の秘密を解き明かしたのが、行列数学の言語であったことを思い出してください。 そうなっては困るのです。 ですから、行列の計算と表記については、もう少し待ちましょう。 今は、一般的に行列を量子ゲートの代用として使っている、というだけで十分です。 行列の大きさと怖さは量子ビットの数に依存します。 もし変換する量子ビットが1つだけなら、行列は4つの要素を持つ2×2の配列で、とてもシンプルになります。 しかし、2つ、3つ、あるいはそれ以上の量子ビットがあると、行列の大きさは膨れ上がります。 これは、行列の大きさ(つまり量子ゲートの精巧さ)が、暗記する価値のある明らかに指数関数的な方程式によって決まるからです:

2^n x 2^n = the total number of matrix elements

ここで、nは量子ゲートが動作する量子ビットの数です。 見ての通り、量子ビットの数(n)が増えるにつれて、この数値は一気に大きくなります。 1量子ビットの場合は4、2量子ビットの場合は16です。 3量子ビットの場合は64。 4個では……絶望的です。

The Pauli gates

The Pauli gatesはヴォルフガング・パウリにちなんで名付けられました。彼はかっこいい名前を持っているだけでなく、現代物理学の最も有名な2つの原理、有名なパウリ排除原理と恐ろしいパウリ効果で自分自身を不死化することに成功しました。

パウリ門は、よりよく知られたパウリ行列(別名パウリスピン行列)に基づいており、単一の電子のスピンに対する変化を計算するのに、信じられないほど便利なものです。 電子スピンは、今日の量子ゲートで量子ビットに使用するのに適した性質であるため、パウリ行列とゲートは私たちの好みにぴったりです。 いずれにせよ、空間の各軸(X、Y、Z)に対して、1 つのパウリ ゲート/マトリックスが存在します。 もちろん、量子の世界のすべてのものと同様に、これは通常の 3 次元空間ではありませんが、虚数次元が含まれているからです。

幸いなことに、パウリゲートは量子ゲートとしては最も単純なものです。 (少なくともXとZゲートはそうです。Yは少し変です。)ですから、行列を見たことがない人でも、パウリなら扱いやすいでしょう。 彼のゲートは一度に1つの量子ビットにしか作用しない。

The Pauli X-gate

The Pauli X-gateは、行列計算を恐れる人々にとって、夢のようなものなのです。 虚数もありません。 マイナス記号もありません。 そして、否定というシンプルな操作。 これは当然のことで、Pauli X-gateは古典的なNOTゲートに対応しているからです。

現実の世界では、Xゲートは電子のスピンアップ状態|0>をスピンダウン状態|1>に、またはその逆に変化させることが普通です。

|0> --> |1> OR |1> --> |0>

大文字の「X」は、しばしばパウリのXゲートまたは行列そのものを表します。 Xはこんな感じ。

/ 0 1 \

1 0 /

正しい表記で言えば、量子ビットに量子ゲートをかけるのは、ケットベクトルに行列を掛けることです。 この場合、スピンアップケトベクトル|0>にPauli X-gate、つまり行列Xを掛けています。 ご存知のように、行列の掛け算は普通の掛け算と違って通分しないので、学校で教わったこととは全く逆になってしまいます。 2×4が4×2になるとは限らないのと同じです。しかし、これが行列の乗算の仕組みで、コツをつかめばその理由がわかるでしょう。 一方、重要な要素の順序を念頭に置いて、量子NOTゲートを量子ビット(この場合は電子のスピンアップ状態)に適用した場合の完全な表記は次のようになります。

X|0> = / 0 1 \ = /0 = |1>

1 0 / \0/

スピンダウンベクトルに適用すると、完全表記はこのようになります。

X|1> = / 0 1 \ /0 = /1 = |0>

1 0 / \1/

The all the foreign notation, in both these cases are actually happening here is that a qubit in form of a single electron has passing through a quantum gate and coming out the other side with its spin flipped completely over.これは量子ゲートを通して、1つの電子の形で量子ビットを通過させ、反対側のスピンを反転させて出てきているということである。

パウリYゲートとZゲート

この2つについては、計算は割愛させていただきます。

3つのパウリゲートのうち、パウリYゲートは空想のものです。 Xゲートによく似ているが、通常の1の代わりにi(そう、-1の非常識な平方根)があり、右上に負の符号がある。 Yは次のようなものです:

/ 0 -i \

i 0 /

Pauli Z-gateはずっと簡単です。 上のXゲートの鏡像のようなものですが、負の符号が混ざっているのが特徴です。 Zゲートはこんな感じ:

/ 1 0 \

0 -1 /

YゲートとZゲートは、量子ビット電子のスピンも変化させるんだ。 しかし、その方法を説明するには、ブロッホ球の難解なミステリーを掘り下げる必要があるでしょうし、今は別のゲートを通らなければなりません。

The Hadamard gate

パウリゲートは古典論理ゲートとよく似ていますが、Hゲートは本物の量子獣です。 量子コンピューティングのあらゆる場面で登場しますが、それには理由があります。 ハダマードゲートは、スピンアップのような明確な量子状態を、スピンアップとスピンダウンの重ね合わせのような曖昧な量子状態に変換する、量子論的な能力を備えているのです。

一度、スピンアップまたはスピンダウン電子をHゲートに送ると、それは、その端で立つペニーのようになり、倒して測定すると頭(スピンアップ)または尾(スピンダウン)になる確率は正確に50/50になる。 このHゲートは、量子プログラムの最初の計算を行うのに非常に有効で、あらかじめ設定された、あるいは初期化された量子ビットを、その量子力を最大限に活用するために、自然な流動的状態に戻すからです。 その多くは一度に複数の量子ビットを操作し、4×4や8×8の複素数要素を持つ行列を作ります。 このような行列は、よほどの行列の知識がない限り、かなり厄介なものです。 そこで、詳細は割愛します。

知っておきたい主なゲートは、以下のグラフで示したものです:

他のゲートもあることを知っておくべきですが、ここでは、最も広く使われている他の量子ゲートについて簡単にリストしておきますので、用語について感じてみて下さい。

  • Toffoli gateFredkin gate
  • Deutsch gate
  • Swap gate (and swap-gate square root)
  • NOT-gate square root
  • controlled-NOT gate (C-NOT) and other controlled gate

その他たくさんありますね。 しかし、数に惑わされないでほしい。 古典計算でもNOT+OR=NORゲートやAND+NOT=NANDゲートの組み合わせで計算できるように、量子ゲートも単純な普遍的量子ゲートの集合に還元することができるのです。 しかし、その行為は別の日に取っておきましょう。

Future gazing through the quantum gateway

最近の Quanta Magazine 記事では、2018 年の量子コンピュータはまだプライムタイムの準備ができていないことを指摘されています。 数十億倍の論理ゲートを持つ古典的なコンピュータと土俵に上がる前に、いくつかの悪魔に立ち向かう必要があります。 最も致命的なのは、おそらくデコヒーレンス(非干渉性)という悪魔だろう。 今のところ、量子非干渉性は、量子計算を “数マイクロ秒 “で破壊してしまう。 しかし、量子ゲートの演算が速ければ速いほど、量子アルゴリズムはデコヒーレンスの悪魔に勝ってゴールする可能性が高くなり、レースが長続きするようになるのです。 速度と並んでもう一つ重要なのは、量子ゲートが計算を完了するまでに行う演算の数である。 これを「計算の深さ」という。 つまり、量子の土俵をより深くすることが、現在のもう一つの課題なのだ。 この論理によれば、急速に進化する量子コンピューターがより速く、より深く計算し、非干渉化へのカウントダウンが長くなれば、古典コンピューターは、後継者ではないにしても、そう遠くない将来に、手ごわい挑戦者に直面することになるでしょう。 このような記事は私の個人ブログ(jasonroell.com)にもありますし、私のMediumプロファイルを購読していただければ、私が記事を書くとすぐにあなたに送られますよ。 (なんと素晴らしい!?)

とにかく、読んでくださってありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。