量子コンピューターにとって効率的/非効率的と考えられる時間の複雑さを知りたい。このためには、量子コンピューターが1秒間に実行できる操作の数を知る必要があります。誰がそれを計算する方法とそれが依存する要因(実装の詳細やキュービットの数など)を教えてもらえますか?
量子コンピューターにとって効率的/非効率的と考えられる時間の複雑さを知りたい。このためには、量子コンピューターが1秒間に実行できる操作の数を知る必要があります。誰がそれを計算する方法とそれが依存する要因(実装の詳細やキュービットの数など)を教えてもらえますか?
回答:
現時点では標準的な実装がないため、一般的な量子チップの見積もりを行うことはできません。
それでも、オンラインで提供される情報を使用して、特定の量子チップのこの数を推定することは可能です。IBM Qチップに関する情報を見つけたので、ここにIBM Q 5 Tenerifeチップの答えがあります。リンクにはチップに関する情報がありますが、タイミングに関する情報はありません。チップのバージョンログにアクセスする必要があります(IBM Q 5 Tenerifeチップページに記載されているリンクを介して)。このバージョンログで、「Gate Specification」セクションに移動すると、次の情報が得られます(以下で詳細を説明します)。
しかし、「GD」、「GF」、または「バッファ時間」は何を表していますか?それらは基本的な物理操作、つまり物理キュービットで実行される操作です。これらの物理的な操作は、いくつかの基本量子ゲートを実装するために使用されます。IBM Q 5 Tenerifeチップのページで、これらの物理操作に関するIBM Qバックエンドの4つの基本量子ゲートの分解を見つけることができます。下の図をコピーしました。
「GD」および「GF」に加えて、タイミングには表示されない物理的な「FC」操作があります。これは、この「FC」操作が「次のパルスのフレームを変更する」(QISKit Slackでの会話からJay Gambetaを引用する)ため、「FC」操作のコスト(適用時間)が0であるためです。
「バッファ時間」は、各物理操作アプリケーション間の単なる一時停止時間です。
最後に、この特定のバックエンドに各ベースゲートを適用するのに必要な時間を計算できます。
これらのタイミングから、ibmqx4バックエンドが実行できる1秒あたりの操作数を推測できます。
操作の平均タイミングの大まかな近似として操作あたり200nsを取得すると、1秒あたり5 000 000操作になります。
qiskit-backend-information GitHub repositoryで他のバックエンドのデータを見つけることができます。
物理操作と論理操作には重要な違いがあります。
少し不完全な物理操作。不完全なキュービットでも実行されます。これらを実行できるレートは、キュービットを実現するために使用されている物理システムによって異なります。たとえば、超伝導量子ビットは、100 ns程度の時間で2つの量子ビットゲート(最も遅いもの)を実行できます(Nelimeeの回答を参照)。
多くの物理キュービットを組み合わせて、多くの物理操作でプロセスを実行することにより、論理キュービットを構築できます。エラー訂正を行うことにより、これらのキュービットとそれらに対して行われる操作を任意に正確にすることができます。これらは、量子アルゴリズムを実装するために必要な種類の操作です。
現在、論理演算のクロックレートを提供するには未知数が多すぎます。特に、原理実証の論理キュービットでさえ構築されていないので(少なくとも、量子エラー訂正コードはありません)。それは、物理的なキュービットと操作がどれほど不完全であるか、そしてすべてをクリーンアップするためにどれだけの量を必要とするかに依存します。それは、使用するエラー訂正コードの種類に依存します。これは、量子プロセッサの命令セットに依存します(つまり、どの量子ビットのペアに直接2つの量子ビットゲートを適用できるか)。優れたアーキテクチャではノイズが発生することが多いため、これはノイズの量に依存します。そのため、相互依存関係がたくさんあり、解決すべきことがたくさんあります。