2016年08月23日

良しあしを測る1 「クリフォード群生成器」

午前中にちょろっとクリフォード群生成器をコーディングしました。

量子ビットが一つの場合、対称群S4になる事は分かっているのですが、実装は計算が高速な置換群で実装しました。これから2量子ビットの実験も視野に入れると、Pythonで実装は無理がありそうなのでC言語で実装します。

なんでこんなクリフォード群とその順列生成器が必要かというと、量子ビットの評価に使います。量子ビットが特定の初期状態(例えば|0>の状態)から始めて、たくさんのクリフォード操作を適用し、その後にどれだけ偏極が残っていたかという度合いを評価します。たくさんのクリフォード操作の中にパウリエラーと呼ばれる確率的な誤差(または系統誤差)があると、終状態の偏極率が下がります。この変化の様子から、ゲートの忠実度を評価するという手法です。この手法をランダマイズドベンチマーキングと呼びます。

コーディングはなんてことないです。C言語で作って、無償版Borland C++コンパイラでコンパイルしてWin32 のダイナミックリンクライブラリを作り、後輩が使いやすいようにctypesを使いPythonでラップしてクラスを組んで終わりです。(実験するのは僕ではないので)。最終的な出力はクリフォード操作ではなくて、実際のパルス列が出力されます。例えば、XPQVVQXPQ など。XはX軸回りのπ/2、YはX軸回りのπ/2、VはY軸回りの−π/2、PはX軸回りのπ、QはY軸回りのπパルスというわけです。実験する人があとはこのパルス列を置換して実際の波形にすれば、はい完成というわけです。

面倒なのはこれから2量子ビットのクリフォード群の群表を作るところですかね。位数が1万を超えて大きくなると、自分が本当に間違っていないか冷や冷やするもんです。僕だけが使うものでないので、信頼度の高いものを作ろうとすると、プレッシャーがかかりますね。

jjq303dev at 23:30│Comments(0)量子ゲート 

コメントする

名前
 
  絵文字
 
 
プロフィール
日々徒然過ごしている研究員。

趣味は星、自転車、コーヒー。