blueqat news
量子コンピュータ関連銘柄 更新: 10/12 14:30(日本時間)
%は前日比・グラフは直近10営業日の推移 — 株価とニュースの突き合わせ / 業界の関係図
生成AIで始める量子ソフトウェア

【AIで量子アプリ】第3回 なぜずれるのか―ゲート1つで誤りが8倍になった

要約

連載の第3回です。第1回のずれは1.4ポイント、第2回は11%でした。ゲートを1つ増やしただけで約8倍です。この差がどこから来るのかを、操作の誤り、待っている間の崩れ、測定の読み違い、そして書いたゲートがそのまま実行されていないこと、の4つに分けて見ます。

この連載でやること――アプリのコードは生成AIに書かせます。そして作ったものを、シミュレータではなく本物の量子コンピュータで動かします。

シミュレータというのは、量子コンピュータの振る舞いを普通のパソコンで計算して真似したものです。理想的な答えが返ってきます。いっぽう本物の機械は、まだ誤りが多く、答えがずれます。そのずれた数字を、そのまま載せます。難しい数式は使いません。

前回までに、同じコードをシミュレータと実機の両方で動かしました。実機の結果を並べます。

回回路ゲート理想からのずれ
第1回量子コイン1個1.4ポイント(486対514)
第2回もつれたコイン2個11.1%(1,000回中111回)

ゲートを1つ増やしただけで、ずれが約8倍になっています。

同じ機械で、同じ日に、同じ1,000ショットで測った結果です。今回はこの差がどこから来るのかを見ます。

理由は1つではありません

分かっている範囲で4つに分けられます。

1つ目は、操作そのものが少しずつ間違えることです。HゲートもCXゲートも、実機では完全には実行されません。第2回でCXゲートを「0番目が1なら1番目をひっくり返す」と説明しましたが、その「ひっくり返す」が時々失敗します。

第1回はHゲート1つ、第2回はHとCXの2つ。操作の数が増えれば、失敗する機会もそのぶん増えます。

2つ目は、待っている間に壊れることです。量子ビットは放っておくと状態が崩れます。回路が長くなるほど、崩れる時間も長くなります。

3つ目は、測るところで間違えることです。実際には0なのに1と読んでしまう、ということが一定の割合で起きます。第1回は1量子ビット、第2回は2量子ビットなので、読み違える機会も2倍です。

4つ目が、いちばん意外かもしれません

書いたゲートは、そのままの形では実行されていません。

この機械が直接実行できるのは、ECR、I、RZ、SX、X の5種類だけです。一覧を見てください。HもCXも入っていません。

では第1回と第2回のコードはどうなったのか。実機に載せるとき、この5つの組み合わせに置き換えられています。Hゲート1つが数個の操作に、CXゲートはさらに多くの操作に化けます。

つまり、私たちが書いた「2つのゲート」は、実機の上では2つではありません。置き換えで操作の数が増え、そのぶん1つ目と2つ目の理由が効いてきます。

ゲート1つの追加が8倍のずれになったのは、単純に操作が1つ増えたからではなく、その1つがCXという置き換えの重い操作だったからです。

実機に渡している形

参考までに、実機へ渡すときの形も見ておきます。回路はOPENQASMという共通の書き方に直されます。

from blueqat import Circuit

c = Circuit().h[0].cx[0, 1]
c.m[:]
print(c.to_qasm())

出てくるのはこれだけです。

OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0],q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];

ここにはまだ h と cx が書かれています。5種類への置き換えは、この先で行われます。私たちが書いたコードと、実機の上で実際に走るものは別物だ、ということです。

この数字が測れること自体に意味があります

11%と聞くと、使いものにならない機械のように思えるかもしれません。ですが見方を変えてください。

シミュレータでは、この数字は絶対に出ません。手元のパソコンは理想的な量子の振る舞いを計算しているので、何回やっても100%一致します。

実機に投げて初めて「11%ずれた」という数字が手に入ります。そして数字があるから、機械が良くなったかどうかを比べられるようになります。

ニュースで見る忠実度やゲート誤差という言葉は、まさにこの「どれくらいずれるか」を表しています。各社が出している誤り率の数字は、こうした実験を積み重ねて出てきたものです。

誤り訂正が要る理由も、ここから見えます

今回はゲートを2つ使っただけで11%ずれました。

実用的な計算では、操作を何万回、何億回と重ねます。1回ごとのずれが小さくても、積み上がれば答えは完全に崩れます。ゲート1つで8倍になるのを見たあとだと、実感が違うのではないでしょうか。

だから、計算しながら誤りを見つけて直し続ける仕組みが要ります。ニュースでよく見る「論理量子ビット」や「表面符号」は、この積み上がりを止めるためのものです。

次回

ずれる理由のうち、4つ目の置き換えには手を入れられます。

どの量子ビットを使うかを変えるだけでも、置き換え方は変わります。実機の量子ビットは1つずつ性能が違い、つながり方も決まっているからです。

次回は同じ回路で使う量子ビットを変えて、もう一度実機に投げます。11%が動くかどうか、実際に確かめます。

続きはメールでも受け取れます

新着記事のまとめを、毎日・週1回・月1回から選んでお届けします。 対談と教えて先生の続きも読めるようになります。登録も閲覧も無料です。

ログインしてメール配信を設定