『完全な初心者のための量子コンピューティング』

『美容とファッションの世界のベテランが語る最新のトレンド』

初めての知識なしで量子コンピューティングの基礎を学ぶガイド

ニューヨークのIBM Quantumラボで、IBMの50キュービットの量子コンピュータを冷却するために使用されるIBM Quantumクライオスタット。ソース:https://www.flickr.com/photos/ibm_research_zurich/40786969122

何千年もの間、人類が地球の資源を支配してきたとされる時代は、僅かな時間に起こった出来事を表す「人新世(にんしんせい)」として表現されています。「人新世」はギリシャ語の「アンスロポ」(人間)と「セン」(最近)から派生した言葉です。特に20世紀の中ごろにコンピュータの登場によって加速された技術革新の勢いから、過去の1世紀は「第4次産業革命」と呼ばれています。

過去70年間で、計算によって社会のあらゆる側面が変革され、効率的な生産やサービス提供によって人間の労働が置き換えられ、電気通信を通じた情報の格納、生成、伝送が指数関数的に向上しました。

では、ここに至るまでにはどのような経緯があるのでしょうか?基本的に、技術の進歩は既存の科学に基づいています。電磁気学の性質や原子の構造に関する理解がなければ、電気やコンピュータの動力となる集積回路を持つことはできませんでした。ですから、物理的な現実の最も正確で基本的な記述を利用した計算において、量子力学の恩恵を活かすという発想は時間の問題でした。

私は物理学と計算の性質に強い関心を持っていたため、量子計算に興味を持ちました。もし成功すれば、量子計算は現行のコンピュータの効率を指数関数的に向上させ、情報時代において前例のない新たな章を迎える可能性があります。データ、計算、情報科学に興味のある人にとって、量子情報の基本を理解することは、量子物理学の非常に基本的な理解だけでなく、情報時代の次の大きな技術的フロンティアに備えることにもつながります。

量子現象と量子情報

コンピューティングの基礎を理解するためには、量子コンピューティングが利用する物理現象の基本的な理解が必要です。

問題となる物理現象は電子のスピンおよび光の偏光であり、後者はフォトンのスピンの別名です。電子は正の電荷を持つ原子核を取り囲む負の電荷を持つ亜原子粒子であり、光子は電磁気学または光の粒子の相当物です。電子と光子のスピンは、古典力学にはない量子的な特性であり、日常の物体の大きさを記述する古典力学の範囲には当てはまりません。

それにもかかわらず、スピンを紹介する最も簡単な方法は、古典的な性質である角運動量との比較をすることです。角運動量は、古典系の回転に関する線形運動量に対応するもので、運動量は質量と速度の積で計算されます。したがって、運動量は大きさと方向の両方を持つベクトル量です。角運動量は、物体の位置ベクトルと運動量ベクトルの外積として表されます。角運動量は古典的な性質なので、連続的な値を取り、二次元の曲線の下の面積として表現される積分(曲線の下を表す積分から一般化されたもの)として示されることがあります。

スピンはしばしば固有の角運動量として定義されます。古典力学では、力は運動量の変化と定義されます。さらに、系のエネルギーは運動や運動の変化の速度に関連付けられており、それは質量に基づくことを前提としています。古典力学とは異なり、アインシュタインの特殊相対性理論では、静止質量に固有のエネルギーを割り当てることで説明されます。同様に、固有の角運動量は亜原子粒子の固有のエネルギー状態と密接に関連しています。実際、これは素粒子が回転しているかどうかに関係なく、運動量や位置などの外的要因に関係なく、素粒子が所有する特性です。古典的な角運動量と同様に、量子スピンも回転によって変化します。ただし、古典的な角運動量とは異なり、スピンは量子化されており、一連の離散的な値しか持たないことを意味します。

素粒子の最大スピンは、n(半整数n/2の任意の整数)と減少したプランク定数ℏ(h/2𝜋)の積で与えられます。通常の粒子であるフェルミオンと呼ばれるものは、半整数(1/2)のスピンを持ち、光子のような力を運ぶ粒子であるボーズンは整数(1)のスピンを持ちます。電子と光子の両方には、スピンの「上」または「下」という2つの可能な状態があります。数学的には、電子は正または負の「回転」にスピンの最大値である1/2ℏまたは-1/2ℏを持つことになります。光子は整数のスピン値を取るため、1ℏおよび-1ℏの最大スピンを持ちます。ただし、「回転」という言葉を使用していますが、空間の変換として考えることは避けるほうが良いです。

さて、量子計算に利用される奇妙な量子特性を見てみましょう。前に述べたように、電子は2つの可能なスピン状態を持つことができますが、任意の時点でどの状態にあるのでしょうか?これは、システムの状態と測定の間に区別を付けることが有用です。古典力学では、状態と測定は完全に一致します:システムの状態は測定結果です。しかし、量子力学ではそうではありません。測定なしでのシステムの状態は、波動関数𝛹iの一貫した重ね合わせで与えられます。測定後、システムの状態は𝛹↓または𝛹↑のいずれかで与えられます(単一の粒子を測定している場合)。状態と測定のこの分離により、量子コンピュータは2次元複素ベクトル空間で無限の値を取ることができる操作を実行することができます。

最後に、測定は測定が行われる方法に対して特定のルールに従います。具体的には、測定の方向が結果に影響します。たとえば、垂直方向と水平方向の2つの方向がある場合を考えてみましょう。電子のスピンを垂直方向で測定すると、スピンの上または下の状態が得られます。まったく同じ測定、つまり垂直方向でのスピンの再測定を行うと、同じ結果が得られます。これは、予測可能な結果をもたらす実験セットアップが存在することを示しています。ただし、最初に垂直方向で電子のスピンを測定し、次に水平方向で測定を繰り返し、測定結果がスピンの上または下のランダムな連続列として一様に分布する場合、注意しない限り、量子測定はランダムな結果を示す可能性があります。量子アルゴリズムの目的は、操作を制御して望む結果を得ることです。

量子計算の情報単位であるキュビットは、電子または光子のスピンで表現することができますが、今後は前者を量子計算の物理的な類似として使用します。

量子現象から量子計算へ

古典コンピュータの基本的な情報単位はビットと呼ばれ、0または1と表される2つの離散的な状態を持ちます。コンピュータは物理的な機械であるため、この数学的な抽象化を物理現象にマッピングする必要があります。古典コンピュータは、これらの離散的な状態を流れる電流や電圧にマッピングします。電圧が低いかほぼ存在しない場合、状態0を表現するために使用し、電圧が高い場合は状態1を表現するために使用します。言い換えれば、電圧の変動によって電圧の大きさの変化を用いて二進法の表現システムを機械的に実現することができます。これらの低電圧と高電圧の状態の連続の並びは、AND、XORなどの論理演算をシミュレートする電気回路に配置され、構築されます。論理演算の組み合わせは、その後に計算可能なアルゴリズムを実行するために支援されます。

古典コンピュータが電気を活用して計算を実現していることを理解することは、量子コンピュータがどのように動作するかを理解するのに役立ちます。古典コンピュータとは異なり、量子コンピュータは量子またはサブアトミックスケールの現象を利用して計算を行います。私たちの日常のマクロスケールの電圧は連続変数として測定されますが、量子力学は、サブアトミックスケールでは実際にはそうではないことを教えてくれます。実験上のすべての結果によれば、サブアトミック粒子は、離散的なエネルギー状態のみを占有するように見えます。つまり、電子と光子は一部のエネルギー状態を占有できますが、他の状態は占有できません。これは、物理的なオブジェクトが連続的なエネルギー状態を占有できるという私たちの直感に反するものです。たとえば、私たちは通常、時間を純粋に連続的な変数として考える一方、これはサブアトミック粒子のエネルギー状態には厳密に当てはまりません。

これにより、サブアトミック粒子は固定された位置と運動量を持つことを記述することはできません。これらの変数を同時に記述しようとすることはできますが、運動量を知れば位置がわからなくなり、逆も同様です。これが物理的なスケールの精度が崩壊する物理的なスケールであり、それはプランクスケールと呼ばれ、h: 6.626070 × 10⁻³⁴ m²kg/sで表され、古典的および量子的なスケール現象の物理的なしきい値を表します。このスケールでは、実験結果によれば、サブアトミック粒子はすべての可能な状態を同時に占有します。この特性のため、サブアトミック粒子は、Schrödingerの方程式によって記述されるすべての可能な状態の確率分布としてのみ記述することができます。ただし、前述のように、測定という2番目の説明があります。測定の前に、粒子はSchrödingerの波動関数によって記述される重ね合わせの状態に存在します。測定後、粒子は1つの位置または他の位置の離散的な状態に崩壊します。量子コンピュータは、この量子力学の特異な性質を利用して、重ね合わせと測定状態の両方を利用して計算を行います(超位置性の客観性の実験的な基盤について詳しく知りたい場合は、こちらをご覧ください)。

したがって、古典的なコンピュータは2つの可能な離散状態から計算を構築するのに対して、量子コンピュータは離散状態と重ね合わせから計算を構築すると考えることができます。測定すると、キュビットは状態0または1になります。しかし、測定する前、キュビットは0と1の重ね合わせの状態にあります。重ね合わせ中、キュビットは無数の状態を占有することができます。量子力学の法則を利用することで、2^nに制約された古典計算の状態空間を超える量子計算が可能です。確かに、測定によって量子状態は古典状態に変わりますが、つまり、同じ2^nの状態空間になります。では、量子コンピューティングはどのようにして古典コンピューティングでは不可能な利点をもたらすのでしょうか?

以下で説明するように、量子アルゴリズムには重ね合わせの状態での制御された操作が可能であり、測定後に有用な答えを得ることができます。コンピュータサイエンティストは、アルゴリズムの複雑さを解決するために必要な時間ステップで定義します。アルゴリズムの入力長をn、その時間をT(n)とした場合、複雑さはT(n)の成長を記述する関数を指します。T(n)が多項式になる場合、アルゴリズムは多項式時間クラスの問題に属していると言われます。T(n)が指数関数に等しい場合、指数時間クラスの問題に属しています。大きな数の素因数分解などの指数時間クラスに属する問題は、問題を解決するために必要な時間が指数的に増加し、人間の時間制約を容易に超えてしまうため、古典コンピュータでは扱いづらいです。

量子コンピューティングの約束は、指数時間の問題を十分に高速に解決する能力の一部にあります。

キュビットの表現:線形代数

量子コンピューティングを理解するためには、キュビットの表現に基づく数学のいくつかを理解する必要があります。主に線形代数です。

キュビットは2次元の単位ベクトルで表現されます。

ベクトルとは何ですか?

ベクトルは、少なくとも2つの値で表される量です:大きさと方向です。ベクトルの大きさはユークリッド距離によって与えられ、方向は始点によって与えられます。例えば、(1,-3)は長さが3.162で、方向がxの値である2次元ベクトルを表します。

単位ベクトルとは何ですか?

単位ベクトルは、長さまたは大きさが1のベクトルです。例えば、<0,1>は単位ベクトルです。ピタゴラスの定理を使ってユークリッド距離を計算すると、値が1になります。

なぜ2次元の単位ベクトルなのですか?

電子のスピン測定結果には2つの可能な結果があるため、2次元ベクトル空間であるℝ²が適しています。測定結果を0または1の2つの可能な値に制限するために、単位ベクトルを使用します。後で見るように、キュビット上で行う操作は、ユニタリー平面上の回転に相当します。しかし、可能な結果の空間は、その基盤となる空間が依然として2次元である3次元球面上のすべての可能な回転を含む必要があります。これを実現するには、実数ではなく複素数でベクトルを表す複素ベクトル空間ℂ²を使用します。単純化のため、今のところはℝ²にとどまり、複素数を避けます。

2つの可能な値に結果を制限するために、単位ベクトルだけでは不十分です。お互いに直交する単位ベクトルのペアが必要です。2つのベクトルがお互いに直交する場合、その組み合わせを直交正規基底と呼びます。normalは単位ベクトルを表し、orthogonalは直交を意味する言葉です。

直交性:2つのベクトルがお互いに直交する場合、その積は0になります:<a|b> = 0。

どのn次元ketベクトルも、行列Aとその転置A^Tの積が単位行列 Inに等しい場合、正規直交基底であることを確認できます。

ブラケット表記

これらの基底を説明する前に、線形代数で使用される標準的な表記方法について少し説明します。

列ベクトルはブラと呼ばれ、行ベクトルはケットと呼ばれ、次のように示されます:<a| & |b>、ここで:

ブラは行ベクトルであり、ケットは列ベクトルです。

これらは一緒にブラケットを形成します。内積のルール(つまり、ベクトルの乗算)から、ブラとケットは次元が等しい場合にのみ乗算できます。

上記のブラケットの内積は<a|b>と表され、次のような意味を持ちます:

2つの単位ベクトルの内積。

ただし、同じタイプ(ブラまたはケット)の同じ次元のベクトルは合計できます。

実際の値の代わりに、電子スピン測定に関連する直交正規直行対の種類を表すために矢印を使用することができます。

スピンのための3つの直交正規基底があります:

スピンを測定するために使用される3つの二次元直交正規基底(Berhardt、2019年)

同じスピンのブラとケットを乗算すると、値が1になります:

等しい直交正規ブラケットの内積は1です。

逆に、異なるスピンのブラとケットを乗算すると、値が0になります:

異なる直交正規ブラケットの内積は0です。

ご覧の通り、直交正規ブラケット積はバイナリな結果をシミュレートする測定結果を提供します。

上向き矢印と下向き矢印で表される最初の基底は標準基底と呼ばれ、スピンの垂直測定、つまりy軸に沿った測定に対応します。右向き矢印と左向き矢印で表される2番目の基底は、スピンの水平測定、つまりx軸に沿った測定に対応します。一般に、順序付けられた直交正規基底はある方向に沿ったスピンの測定を表します。実際には、スピンを任意の角度または方向𝜃で測定することができ、出力はその方向で上向きまたは下向きの離散的な結果に崩壊します。なぜなら、スピンの状態は離散的だけだからです。

単一または複数のキュビットの量子状態は、これらの基底の線形結合で与えられます。したがって、基底ベクトルは量子状態の可能な結果を表します。先ほど言ったように、キュビットの状態は電子または光子のスピンにモデル化することができます。測定前、粒子または量子状態は重ね合わせ状態にあり、c1|b1> + c2|b2>という形式の基底|b1>と|b2>の線形結合で表されます。ここで、c1とc2は確率振幅を表します。確率振幅は負の値になる可能性があるため、確率はc1² + c2² = 1のように二乗した値で表されます。したがって、重ね合わせ状態では、c1²とc2²はそれぞれ0.5の確率を持ちます。

測定後、スピン状態は正規直交基底|b1>または|b2>のいずれかに崩壊します。|b1>に崩壊する確率はc1²であり、|b2>に崩壊する確率はc2²です。もし、測定が|b1>に崩壊する場合、c1²は1となり、c2²は0となります。逆もまた然りです。言いかえると、基底ベクトルに確率値1を掛けたものが測定の結果を表します。

クラシカルなコンピューティングでは、複数のビットはそれらのビットのテンソル積によって表されます。テンソル積は次の記号で示されます: ⊗

私たちは、[1,0]と[0,1]のケットが標準基底を表すこと、そしてそれが古典的なビットの0と1に相当することを述べました。また、任意の量子状態は以下の等式を保存しなければならないと述べました: c1² + c2² = 1。これを単位測定制約(確率論の第2の公理)と呼びます。これは、すべてのケットがℝ²の単位ベクトルである必要があることを意味します。しかし、実際の量子粒子の状態は複素数によって表されるため、実際の状態空間はℂ²で与えられます。したがって、実際の単位測定制約は次のようになります: ‖𝛼‖² + ‖β‖² = 1、ここで𝛼とβは複素数であり、確率振幅を表します。

したがって、複数のキュビット状態を表すために、私たちは標準基底|0>と|1>のテンソル積を取ります。どれだけの数のキュビットを連結させても、積は単位測定制約を保存します。

Tensor product of two 1 qubits yields the above vector.
Tensor product of two 0 qubits yields the above vector.

私たちはℝ²で作業しているので、2次元のキュビットの状態空間をユニットサークルの(x,y)で直感的に表現することができます。すべての操作は、上記で列挙した正規直交基底上で行われます。さらに、すべての量子論理ゲートは、ユニタリー行列およびそれによって直交する行列で表されます。なぜなら、直交行列によるベクトルの乗算は、ベクトルの内積を保存しながら回転を行うからです。これは、ユークリッド空間上で等長変換を生み出します。

また、180⁰の回転ごとに負の符号があることにも注目してください。負の符号は、すべての操作が基本的に可逆または逆可能であるように、同等の出力を区別するのに役立ちます。すべての量子計算は、測定の前に重ね合わせ状態とエンタングルメント状態を持つ量子状態の計算能力を活用するために、逆可能である必要があります。後で見るように、重ね合わせ状態(およびエンタングルメント状態)は、古典的なコンピューティングでは実現できない利点を量子コンピューティングにもたらします。重ね合わせ状態では、任意の数のキュビットNが一度にすべての可能な状態を占有します。4つのキュビットがある場合、サンプルは2⁴の可能な状態を持ちますが、重ね合わせ状態ではこれらの状態がすべて同時に得られます。測定によるこれらの状態のいずれかに崩壊する確率は、ユニットベクトルの線形結合に均等に分布されます。

以下のユニットサークルの線は、ハダマードゲートを用いた操作による入力から出力への状態変化を表しています。ハダマードゲートはキュビットを重ね合わせ状態にし、元に戻します。以下の等式‖𝛼‖² + ‖β‖² = 1により、測定は常に系を異なる古典的状態に崩壊させますが、この場合は電子または光子のスピンに対応します。ただし、量子ゲートを使用した操作は、波動関数を崩壊させずに1つまたは複数のキュビットの状態を変更します。

Qubit unit circle representation. Image from Wikimedia commons.

ビットフリップ演算子を適用すると、古典的なコンピューティングにおけるNOTゲートと同等であり、入力状態の値を反転させます。たとえば、|1> ケットは、以下の状態遷移によって示されるように、|0> ケットに反転します (0,1) から (1,0) へ。

一方、ハダマードゲートは、(0,1) を入力として (1/√2,−1/√2) を出力します。これは、入力に以下の直交またはユニタリ行列をかけることで得られます:

状態がどのように変化するかに疑問がある場合、ハダマードゲートを使用した行列の積を |1> 入力からの明示的なイラストで示します:

Hadamard gate operation with |1> input state vector.

ハダマードゲートはどのように機能し、それがなぜ特別なのか?

ユニット円を見ると、ビットフリップ演算がユニット円上で90⁰の回転に相当することに気づきますが、ハダマードゲートは180⁰の回転に相当します。覚えておく必要があるのは、すべての量子ゲートが直交またはユニタリ行列を介して行われ、原点を中心に回転を生み出すということです。特に、ハダマードゲートは x 軸と y 軸の間で半回転を生み出し、それは確率振幅 0.5 に対応します。

また、ベクトルの出力がユニットベクトルであることにも注意してください。なぜなら、(1/√2, −1/√2) は ‖𝛼‖² + ‖β‖² = 1 の等式を満たすからです。出力値を 𝛼 と β の代わりに挿入して計算を行ってみてください。

ユニット円上のある時点でのキュビットの状態を考えると、0 と 1 のアナログに対応する確率振幅を、合計が保存される一連の値に配布しています。ハダマードゲートは、その分布を正確に50/50にします。つまり、測定によってキュビットが |0> または |1> の状態ベクトルに崩壊する可能性は50/50です。これは、状態の重ね合わせに対応した数学的なアナロジーです。後に、重ね合わせが計算にどのように利用されるかを見ていきます。

最後に、これまでのデモでは、実数空間 ℝ² のキュビットの可能な状態を表すためにユニット円が使用されてきました。実際のキュビット状態は ℂ² の複素数で表されるため、より正確な表現として、ブロック球面と呼ばれるものが存在します。この球面は、以下のように複素値の可能な状態を捕捉するために三次元球面として表されます。

Qubit block sphere representation. Image from Wikimedia commons.

量子論理ゲート

伝統的なコンピューティングと同様に、量子コンピューティングにおける論理ゲートは、キュビットまたはキュビットの集合に対して何らかの操作を実行する回路で構成されます。先に述べたように、量子ゲートは数学的にはキュビット上の行列の積として表されます。また、キュビットはユニットベクトルで表され、量子論理ゲートは直交またはユニタリ行列で表されます。これらはユニット球面または円面上で回転を生み出し、複素空間を簡単化するため、このような回転が行われます。

ただし、キュビット上で操作を行うためには、量子ゲートは逆可逆である必要があります。可逆性とは、入力から出力へのすべての操作が、出力から入力への逆変換も可能であることを意味します。これは量子状態が可逆であり、時間反転不変であり、重ね合わせの状態情報を保存することによります。ただし、我々が測定と呼んだものは、量子状態を古典的なものに変換するものです。測定または崩壊は不可逆であり、したがって入力情報を保存しません。言い換えると、崩壊をその前の重ね合わせ状態に戻すことはできません。そのため、量子ゲートは、量子状態を操作しながらそれを保存する制御された操作を構成します。これらの結果を実現するために必要な回路では、量子ドットと呼ばれる数ナノメートルの半導体粒子を使用し、温度をゼロケルビンに近く保ちます。ただし、量子計算の望ましい出力は測定によってのみ取得できることに注意することが重要です。

したがって、量子論理ゲートにおいて最も重要な2つの特性がある: a) 逆可逆性 と b) 普遍性。普遍性はビットに対して可能なすべての操作を実行できるタイプの論理ゲートを指します。古典的なコンピューティングで最もよく知られている普遍ゲートはNAND(NOT AND)で、以下の表で表されます:

NANDはANDの真理機能的補数です。論理のすべての定理を含む可能な論理文を表現するために、最大2つの論理演算子しか必要ありません。これを機能完全性と呼びます。NANDはNOTとANDを1つの操作に組み合わせるため、結果として、機能的に完全であり、したがって普遍的な論理演算子およびゲートとみなすことができます。比較のために、ANDの真理値表を見てみましょう:

古典的なコンピューティングでは、ほとんどの操作は逆にもどすことができません。たとえば、010011110というシーケンスをほとんどの論理ゲートに入力し、別のバイナリシーケンスを出力した場合、出力シーケンスだけから入力シーケンスを復元することはできません。XORとNANDの両方は不可逆です。ただし、入力を出力だけで復元できるいくつかのゲートがあります。例えば、CNOT(XORと等価だが可逆)ゲート、アダマールゲート、TOFFOLIゲートなどです。この中で、アダマールゲートとTOFFOLIゲートは可逆かつ普遍的です。ただし、FRIEDKINゲートなど、これらの条件を満たす他のゲートも存在します。我々は以前の3つに焦点を当てます。

ここで、ほとんどの量子計算に必要な2つのゲート、CNOTゲートとアダマールゲート、について見てみましょう。CNOTゲートは2つ以上のキュビットに作用し、それらを結びつけます。アダマールゲートは1つまたは複数のキュビットに作用し、それらを重ね合わせの状態にします。また、制御制御NOTゲートとも呼ばれるTOFFOLIゲートという3つ目のゲートも見てみましょう。これはCNOTゲートの普遍版です。

CNOTゲートの目的は何ですか?CNOTゲートは、リバーシブルなビットフリップ操作を実行することで、2つの入力キュビットを結びつけることができます。CNOTゲートには2つの入力があります: 制御入力と目標入力です。制御ビットが1の場合、CNOTゲートは目標入力を反転します。制御ビットが0の場合、CNOTゲートは何もしません。この方法で、すべての出力の組み合わせは、1つの入力の組み合わせに追跡できます。

クラシックCNOTゲート(ビットとテンソル積出力)
標準基底上の量子CNOTゲートとテンソル積出力

CNOTゲートがどのように絡まりと等価であるのかという意味で考えてみましょう。

CNOTゲートによる|1>と|0>キュビットの操作を見てみましょう。2つのキュビットのテンソル積を取り、CNOTゲートのユニタリ行列と乗算すると、入力のテンソル積が|10>から|11>に変換されます。なぜなら、CNOTゲートは制御キュビットが|1>である場合にのみ、目標キュビットの値を反転するからです。

それと同様に、目標キュビットが|1>ではなく|0>である場合、CNOTゲートは値を予測可能に|0>に戻します:

言い換えれば、CNOTはXOR(排他的論理和)の可逆なクラシック計算と同等です。

先に述べたように、アダマールゲートは完璧な重ね合わせを生み出します。それはどのようにして行われるのでしょうか?以下の直交行列を見てみましょう:

アダマールゲートは入力キュビットを重ね合わせの状態にし、逆にもする直交行列です。

この行列を標準基底 |0>と乗算すると、以下の状態が出力されます:(1/√2, 1/√2) これは (|0>+|1>)/√2 と等価です。逆に、|1>と乗算すると (1/√2,−1/√2) が得られ、これは (|0>−|1>)/√2 と等価です。各入力は出力の確率振幅の等分布に変換されますが、負の符号によって入力(|0>か|1>か)を区別し、操作が可逆であることを保証しています。

各値は古典世界では50/50の確率で出力されます。ここでは例として、単一のキュビットで操作を行っていますが、複数のキュビットを重ね合わせにするにはどうすればよいのでしょうか?

それぞれのキュビットを個別にアダマールゲートを通し、テンソル積を取る必要があります。先に述べたように、複数のキュビットの状態は単一のキュビットの状態のテンソル積で表されます。

以下は、アダマール行列と |1>標準基底を乗算して単一のキュビット上で操作を行った例です:

最後に、CNOTと同じく制御-制御-非制御(CCNOT)ゲートとしても知られるTOFFOLIゲートを見てみましょう。TOFFOLIゲートはCNOTと同様ですが、追加の制御変数を持ちます。2つの制御変数を持つTOFFOLIゲートでは、3つの入力キュビットに対して8×8の直交行列を使用します。CNOTと同様に、TOFFOLIは量子もつれを生成し、キュビットのもつれと解れを行うことができます。

TOFFOLIゲートの入力-出力テーブル:

クラシックなトフォリゲートの入力と出力。
量子的なトフォリゲートの入力と出力。

CNOTがあるのになぜTOFFOLIゲートが必要かというと

、NANDと同様に、TOFFOLIはクラシック計算のためのユニバーサルゲートであり、量子コンピュータは可逆なクラシック計算をシミュレートするために使用することができます。ただし、TOFFOLIは量子計算的にはユニバーサルではなく、重ね合わせを生成することはできません。

量子論理ゲートとその実行する操作についての理解が得られたので、それらを組み合わせて量子アルゴリズムを作成する方法について見てみましょう。

量子ゲートは重ね合わせの状態を保存するため、これらを使用して可逆なユニタリー計算を行うことができます。物理的には、システムの時間発展はシュレディンガーの波動関数によって記述されます。しかし、量子コンピュータから情報を取得するためには、波動関数を縮退させる必要があります。

通常、ビット反転とアダマールゲートの操作を組み合わせて目的の結果を得ます。ただし、ビット反転は可逆ではありません。量子計算の課題は、非可逆な関数を可逆な方法で記述する方法を考案することです。デュッティシュのアルゴリズムでこれを行う方法を見てみましょう。

クラシカルビットはキュービットの特殊なケースです

原則として、量子コンピュータはクラシカルな計算をすべて具現化することができます。なぜなら、それらは量子計算の適切な部分集合であるからです。

量子コンピュータを通じてクラシカルな計算を実現するためには、我々はこれまでの例で使用してきた「通常の基底」という形で表されるキュビット(クラシカルビットのアナログ)に計算を制限し、TOFFOLIゲートのような「クラシカルに普遍的な可逆ゲート」を利用する回路を設計する必要があります。TOFFOLIゲートはクラシカル計算のための普遍的なゲートであるため、クラシカルな計算の具現化に使用することができます。

しかし、これまで量子アルゴリズムについて何も述べていませんでした。では、どのようにして量子アルゴリズムを構築するのでしょうか?

量子アルゴリズム:デュッチ・オラクル

これまで説明してきたすべては、クラシカルアルゴリズムに比べて計算上の利点をもたらす量子アルゴリズムを構築できない限り、無駄なものです。

このような計算上の利点を明確に実現した最初のアルゴリズムは、1985年にデビッド・デュッチによって考案されたデュッチ・オラクルです。

4つの関数f₀-f₃があると仮定しましょう。0または1のすべての入力に対して、f₀は0を出力します。0または1のすべての入力に対して、f₁は入力が0の場合は0、入力が1の場合は1を出力します。0または1のすべての入力に対して、f₂は入力が0の場合は1、入力が1の場合は0を出力します。0または1のすべての入力に対して、f₃は1を出力します。

f₀とf₃は定数と呼ぶことができます。なぜなら、入力に関係なく常に同じ出力を生成するからです。また、f₁-f₂はバランスの取れた関数と呼ぶことができます。なぜなら、出力を相互に分配するからです。

それでは、次の質問をしましょう:これらの関数のいずれかをランダムに与えられた場合、定数かバランスかを判定するためにはどれくらいの回数のクエリが必要でしょうか?

その答えは、クラシカル計算では2回以上のクエリが必要です。それを見てみましょう。入力として0または1を選択できます。0を入力する場合、出力は0または1になる可能性があります。同様に、1を入力する場合、出力は0または1になる可能性があります。いずれの場合でも、出力が定数関数またはバランス関数によって生成されたものかを私たちは知ることはできません。したがって、正しい判断をするためにはアルゴリズムに2回目のクエリを行う必要があります。

デュッチは量子アルゴリズムによって、1回のクエリで正しい答えを知ることができることを実証しました。これを実現するために、ハダマードゲートと入力キュビットに加えて制御キュビットを使います。入力をハダマードゲートを通して送信します。ハダマードはキュビットを重ね合わせの状態にします。したがって、ペア|0>と|1>を入力した場合、以下の状態を得ることができます:(1/√2, 1/√2)、(1/√2, −1/√2)。その後、ターゲットゲートをランダムなfₓを通します。

ハダマードは可逆なので、fₓは私たちのキュビットを次のような状態にするはずです:

(1/√2) (|0>+|1>)、(1/√2) (|0>-|1>)、(−1/√2) (|0>-|1>)、(−1/√2) (|0>+|1>)

制御キュビットを再びハダマードを通して通します。操作は可逆なので、次のような可能な結果が得られます:

f₀ →|0>;f₁ →|1>;f₂ → −|1>;f₃ →−|0>

つまり、最後にキュビットを測定したとき、出力が|0>であれば関数は定数であり、出力が|1>であれば関数はバランスしています。デュッチ・オラクルは実用的な用途はありませんが、量子計算がクラシカル計算に比べてどれだけ優れているかを示す強力な例です。

デュッチ・ジョーサ・アルゴリズム

複数の変数に一般化されたデュッチ・オラクルはデュッチ・ジョーサ・アルゴリズムと呼ばれます。以下の図はアルゴリズムの概略量子回路を示しています。

デイツヨースデシャアルゴリズムの回路、HはHadamard、Uは定数またはビット反転関数を示すものであり、通常の基底を入力としています。測定されるのは右上の出力のみです。画像ソース:Wikipedia。

ショアのアルコゴリスム

ショアのアルコゴリスムは、大きな数字の因数分解に使用される量子アルコゴリスムです。このアルコゴリスムは、2つの部分から構成されており、最初の部分はクラシカルコンピュータで実行され、2番目の部分は量子コンピュータで実行されます。量子フーリエ変換が使用されます。この記事の対象外であるため、このアルコゴリスムの数学的な詳細には踏み込みません。

ショアのアルコゴリスムには、それぞれ1024個と2048個のキュビットを持つ2つのレジスタが必要です。これにより、309桁の1024ビットの数字を因数分解することができます。現時点で因数分解された最大の数は、48ビットの長さですが、RSA 100桁のセミプライムのマイルストーンには届いていません。これまでに量子コンピュータがRSA数値の課題をクリアした例がありません。RSA数値は公開鍵暗号学において、政府や金融機関による安全なデータ伝送に使用されます。

十分なパワプを持つ量子コンピュータを使用すると、ショアのアルコゴリスムを使用して、クラシカルコンピュータでは計算的に困難とされる非常に大きな素数を解読することができます。

量子従来性と未来

最初に述べたように、量子コンピュータがクラシカルには解けない問題を合理的な時間内に解決する能力を量子従来性と呼びます。原理的には、クラシカルコンピュータは理論的に計算可能なアルコゴリスムを解決することができます。問題はプラクシスです:限られた処理能力により、彼らは一定の問題を有用な時間内に解決することができません。これが量子コンピュータがゲードを埋める約束をする所以です。2019年、Googleは、53キュビットの量子コンピュータであるシカモアにより、量子従来性を達成したことを発表しました。Natureに掲載されたタイトルがQuantum Supremacy Using a Programmable Superconducting Processorで、彼らはシカモアが量子回路の1つのインスタンスを100万回サンプリングするのに200秒かかったと主張しました。これは、彼らがさらに主張するところによると、クラシカルスーパーコンピュータが10000年かかる作業であります。IBMは後者の主張に対し、彼らのスーパーコンピュータの1つがその作業を2.5日で実行できると主張し、Googleのゴールラインに対抗しました。

現時点で最大の量子コンピュータ、IBMのオスプレイには433キュビットのプロセッサが搭載されています。十分に大きなプロセッサを持つ量子コンピュータを構築する試みは、周囲の環境との相互作用により、量子状態が脱位または古典的状態に崩壊する可能性といった雑音の問題に取り組んでいます。温度や磁場の変化など。

ノイスキャンセリングキュビットは、これらの課題の一部を緩和することができますが、現時点で量子コンピューティングの到来はまだ初期の段階にあります。

参考文献

Bernhardt, Chris. Quantum Computing for Everyone. The MIT Press, 2020.

IBM unveils 400 qubit-plus quantum processor and next-generation IBM Quantum System Two. IBM Newsroom. (n.d.). https://newsroom.ibm.com/2022-11-09-IBM-Unveils-400-Qubit-Plus-Quantum-Processor-and-Next-Generation-IBM-Quantum-System-Two

Kaye, P., Laflamme, R., & Mosca, M. (2020). An introduction to quantum computing. Oxford University Press.

「ノイズキャンセリング」キュビットは、量子コンピュータのエラーを最小限に抑えることができます。シカゴ大学ニュース。 (n.d.). https://news.uchicago.edu/story/noise-cancelling-qubits-can-minimize-errors-quantum-computers#:~:text=As%20existing%20quantum%20computers%20are,to%20high%20rates%20of%20error.

Roush, W. (2020, 7月 13日). Google-IBMの「量子の至高」論争. MITテクノロジーレビュー. https://www.technologyreview.com/2020/02/26/905777/google-ibm-quantum-supremacy-computing-feud/

Zubairy, Muhammad Suhail. 初心者のための量子力学:量子通信および量子コンピューティングへの応用。オックスフォード大学出版局、2020年。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more