量子コンピューティングとは
量子コンピューターは、計算の実行に量子物理学特有の規則を使用することで、従来のプログラミング メソッドに新しい概念を導入します。
量子コンピューティングと従来のコンピューティングの違い、および量子コンピューターの構築方法について見てみましょう。
量子コンピューティングの誕生
量子コンピューターのアイデアは、従来のコンピューターでは量子システムのシミュレートが困難だったことから生まれました。 1980 年代、リチャード・ファインマンとユーリ・マニンは、量子現象に基づくハードウェアは従来のコンピューターと比べて量子システムのシミュレーションをするのにより効率的である可能性があると提唱しました。
量子体系をシミュレートすることが難しい理由を理解するには、さまざまな方法があります。 この問題を理解する最も簡単な方法は、量子レベルでは、同時に多数の配位 (状態と呼ばれます) にあるのが可能だと知ることです。
量子コンピューティングの指数関数的な増加
たとえば、電子などの量子の粒子の体系について考えてみましょう。 電子の可能な位置または場所は $40$ です。 この場合、システムは $2^{40}$ 通りのいずれかの構成になります。これは、位置ごとに電子の有無が異なるためです。 原子の量子状態を従来のコンピューターのメモリに格納するには、$130$ GB を超えるメモリが必要になります。 電子が $41$ 通りの位置のどこにでもある可能性があるとすれば、$2^{41}$ で構成数は 2 倍になります。この場合、量子状態を格納するのに $260$ GB を超えるメモリが必要となります。
位置数を増やすこのゲームを、いつまでもプレイし続けることはできません。 従来の方法で量子状態を格納するのであれば、世界で最もスペックの高いマシンのメモリ容量をすぐに超えてしまうことでしょう。 電子の数が数百となる時点で、システムを保存するのに必要なメモリは全宇宙に存在する粒子の数を超えるため、従来のコンピューターでは量子ダイナミクスをシミュレーションできる見込みはありません。
困難をチャンスに変える
この指数関数的な増加を観察することによって、このような課題をチャンスに変えることが可能かどうかという強い疑問が問われることになりました。 具体的には、もし量子体系のシミュレーションを行うことが困難だとしたら、基本演算に量子効果を採用したハードウェアを構築すると、何が起きるかという問いです。 まったく同じ物理法則を利用するマシンを使用して、粒子が相互作用する量子システムをシミュレートすることはできるのでしょうか。 また、このようなマシンを使用して、量子粒子には存在しないが、私たちにとっては重要なタスクを調査することは可能なのでしょうか。 このような質問が、量子コンピューティングの起源となりました。
1985 年、デイヴィッド・ドイッチュは、量子コンピューターによってあらゆる物理システムの動作を効率的にシミュレートできることを示しました。 この発見は、従来のコンピューターには手に負えない問題を量子コンピューターを使用して解決するという可能性を示す発端となりました。
1994年、ピーター・ショアは、最もよく知られている古典的アルゴリズムよりもはるかに速く実行される、整数を素因数分解するための量子アルゴリズムを発見しました。 ファクタリングを解決すると、RSA や楕円曲線暗号など、現在の eコマースのセキュリティの基盤となっている公開キー暗号システムの多くを破ることが可能となります。 この発見により、量子コンピューティングへの大きな関心が引き起こされ、他の多くの問題に対する量子アルゴリズムの開発につながりました。
その後、化学、物理学、材料科学における物理システムのシミュレーション、非順序型データベースの検索、線型方程式系の求解、機械学習のような、従来、解決が困難であった多くのタスク向けに高速で効率的な量子コンピューターのアルゴリズムが開発されています。
量子ビットとは?
ビットが、従来のコンピューティングにおける情報の基本的オブジェクトであるのと同様に、"量子ビット" (qubit) は、量子コンピューティングにおける情報の基本的オブジェクトです。
量子ビットとは、量子コンピューティングにおける情報の基本単位です。 量子ビットは、ビットが従来のコンピューティングにおいて果たしているのと同様の役割を量子コンピューティングにおいて果たしますが、両者の動作は異なります。 従来のビットはバイナリであり、$0$ または $1$ の位置のみを保持できますが、量子ビットは可能なすべての状態の重ね合わせを保持できます。 つまり、量子ビットの動作では $0$、$1$、あるいはその両方の任意の量子重ね合わせの状態を取り得ます。 $0$ と $1$ には無限の重ね合わせの可能性があり、それぞれが有効な量子ビット状態です。
量子コンピューティングでは、情報は $0$ と $1$ の状態の重ね合わせでエンコードされます。 たとえば、$8$ ビットでは、$256$ の異なる値をエンコードできますが、エンコードするにはそのうちの 1 つを選択する必要があります。 1 つの量子ビットで可能性のあるすべての状態の重ね合わせが成立し得るため、$8$ 量子ビットでは、$256$ の値を同時にエンコードできます。
量子コンピューターの構築方法
量子コンピューターは、量子力学的現象を利用するコンピューターです。 量子コンピューターでは、物質の量子状態を使用して情報が格納され、計算されます。 量子干渉を "プログラム" して、従来のコンピューターよりも速く、またはより優れた処理を行うことができます。
量子コンピューターを構築するときには、量子ビットを作成する方法と格納する方法について考える必要があります。 また、それらを操作する方法と、計算の結果を読み取る方法についても考える必要があります。
特に普及している量子ビット テクノロジは、イオントラップ量子ビット、超伝導量子ビット、トポロジカル量子ビットです。 量子ビット ストレージのメソッドには、コヒーレンスを最大化し干渉を抑制するために、量子ビットを収容するユニットの温度を、絶対零度付近に保つものがあります。 量子ビットの他の種類の格納場所では、振動を最小限に抑え、量子ビットを安定させるために真空槽が使用されています。 マイクロ波、レーザー、電圧などのさまざまな方法を使用して、信号を量子ビットに送ることができます。
量子コンピューターの 5 つの条件
優れた量子コンピューターには、次の 5 つの機能が必要です。
- スケーラブル:多数の量子ビットを持つことができます。
- 初期化可能:量子ビットを特定の状態 (通常は $0$ 状態) に設定できます。
- 回復性がある:。重ね合わせ状態の量子ビットを長時間保持できます。
- ユニバーサル:量子コンピューターでは、可能なすべての演算を実行する必要はなく、"ユニバーサル セット" と呼ばれる演算のセットのみを実行します。 ユニバーサル量子演算セットは、他の演算を一連の演算に分解できるような演算セットです。
- 信頼性がある:量子ビットを正確に測定できます。
これらの 5 つの条件は、量子計算の DiVincenzo 条件としてよく知られています。
これら 5 つの基準を満たすデバイスを構築するというエンジニアリング上の課題は、人類がこれまでに直面した中で最も困難なものの 1 つです。 お客様が Azure Quantum を介して最新の量子コンピューティング ソリューションにアクセスできるように、Microsoft は世界各国の最高クラスの量子コンピューター メーカー数社と提携しています。