量子コンピュータは量子力学の特性を活かした計算を行うことによって、従来のコンピュータでは解決できなかった大規模な問題を解く事ができるようになります。 量子コンピュータにおいては、情報を量子力学的状態(以下、状態と呼ぶ)に埋め込むことができます。 情報を埋め込んだ状態を量子コンピュータによって操作し、新たに得られた状態から測定によって一部の情報を抽出することで計算を行います。 この状態を用いると量子ビット数に対して指数関数的に大きな空間を同時に表現可能になります。 たとえば、300量子ビットあれば、取りうる状態は2^300個となります。この数は、全宇宙に存在する原子の数より多いものとなっています。 この特性を利用することで、既存のコンピュータでは行えなかった大規模な計算が可能になります。
しかし、量子力学的状態に埋め込まれた情報を “すべて” 取り出すには、指数関数的に大きな回数の測定操作を行う必要があるため、量子計算の利点がなくなってしまいます。 そこで、うまい工夫を行うことで、「少ない測定回数で得たい情報が取り出せるような状態」を作り出せるようなアルゴリズムを開発する必要があります。 実際にこのようなアルゴリズムが実現可能であることが理論的に証明されています。 たとえば、Shorのアルゴリズムでは素因数分解が高速に解けることが知られています。 従来のコンピュータでは、巨大数の素因数分解は難しいと考えられており、この困難性をもとにRSA暗号は作られています。 つまり、量子コンピュータが実現するとRSA暗号が破られ、公開鍵暗号が危殆化する、というのはこの意味においてです。
現在、量子コンピュータの優位性を活かした、物理系のシミュレーション、線形代数計算等の基礎的な量子アルゴリズムが提案されています。 これらの基礎アルゴリズムを元にして、材料設計、創薬などの量子力学に直結した課題の解決や、機械学習、金融工学などへの応用も提案されています。 しかし、現状、量子コンピュータが従来のコンピュータより高速に行えると示されたタスクはまだ少なく、応用範囲は限定的です。 これは、基礎的な量子アルゴリズムのバリエーションが限定的であり、加えて、従来のコンピュータのアルゴリズムとは異なる性質を持っているため、単純にアルゴリズムを転用できないためです。
量子アルゴリズムの研究では、メルカリは、数理計画問題や非線形方程式の数値解法等の、応用範囲の広い基礎的な量子アルゴリズムを構築することで、量子コンピュータの可能性を拡大してまいります。
現在の量子コンピュータでは、実行中にエラーが発生するため、回路のサイズや計算ステップ数が増大するにつれて計算が失敗する確率が急激に高くなります。そのため、小さな回路で、少ない計算ステップ数であっても量子コンピュータの恩恵を受けられるようなアルゴリズムが提案されています。 他方、エラー訂正が可能な理想の量子コンピュータにおいては、回路サイズやステップ数の制限がなくなるため、より高度な量子アルゴリズムを動作させることができるようになり、量子コンピュータのポテンシャルを最大限に発揮できるようになります。 量子コンピュータアーキテクチャの研究では、量子エラー訂正符号でデータをエラーから守りながら量子計算を実行できる”surface code”を実装するための研究に、産学技術総合研究所と共同で取り組んでいます。
以上のように、メルカリでは、量子コンピュータを広い分野に応用することを目的として、汎用的なアルゴリズム及びアーキテクチャの研究に取り組んでいます。