量子計算のグラフに「期待値0.5」と表示されても、1回の測定で0.5が出るとは限りません。何を測り、その結果にどんな数を割り当てたかで、グラフの読み方は変わります。
Open Quantum Design(OQD)が公開する量子エミュレーターには、その違いをコードから追える小さな例があります。量子状態の時間変化を古典コンピューターで計算し、そこから期待値を求める処理と、確率に従って測定結果を取り出す処理を分けています。単一の量子ビットを例に、何が計算値で、何が測定の集計なのかを見ていきます。[1][2]
簡単にまとめると?
- 期待値は、起こりうる結果を確率で重み付けした平均で、1回に出る結果とは異なります。
- OQDのZ期待値は数値状態から計算され、Measure命令の有限回の模擬測定とは別の出力です。
- ショット数を増やすことと、モデルや数値計算の誤りを小さくすることは別に確かめる必要があります。
0と1の測定結果に、Zではプラスとマイナスを割り当てる
ここでは、量子ビットを0と1で読み分ける測定を考えます。Zという観測量では、0の結果を+1、1の結果を−1として数えます。期待値は、この数をそれぞれの確率で重み付けして足したものです。
たとえば0になる確率が75%、1になる確率が25%なら、Zの期待値は「+1×0.75+(−1)×0.25=0.5」です。一方、1回の測定で出るのは0か1であり、Zの値としては+1か−1です。0.5という途中の値が1回の結果になるわけではありません。
同じ状態を用意する試行を100回繰り返した場合も、必ず75回と25回に分かれるとは限りません。仮に80回が0、20回が1なら、その標本平均は0.6です。これは説明用の仮の集計で、OQDや量子装置の実測値ではありません。
| 対象 | この例での値 | 分かること |
|---|---|---|
| 1回の測定 | 0または1。Zとしては+1または−1 | 個々の試行で起きた結果 |
| モデルのZ期待値 | +1×0.75−1×0.25=0.5 | 確率で重み付けした平均 |
| 100回の仮の集計 | 0が80回、1が20回ならZの標本平均0.6 | 有限回の結果から求める平均 |
狭い画面では表を横にスクロールできます。
期待値の曲線と、ショット数が使われる場所
OQDのREADMEには、状態を反転させる作用を持つXをハミルトニアンに指定し、Zの期待値を時間に沿って表示する例があります。ハミルトニアンは、状態が時間とともにどう変わるかを定めるモデルです。ここでは離散的なXゲートを1回実行するのではなく、Xを使った連続的な時間発展を計算します。[1]
実装は回路と観測量の次元が合っているかを検査し、数値計算ライブラリQuTiPへ渡します。単一量子ビットなら初期状態は0で、時間発展後の数値状態からZの期待値を求めます。READMEの例にショット数100と書かれていても、描かれるZ期待値は100個の測定結果を平均した値ではありません。[2]
ショット数が使われるのはMeasure命令の処理です。計算した状態から0と1の確率を求め、乱数で指定回数だけ結果を選び、その個数をcountsへまとめます。READMEの最小例自体には、このMeasure命令はありません。期待値の曲線があることだけでは、測定結果を100回集計した証拠にならないのです。[1][2]
小さな検算で、0.5の意味を確かめる
先ほどの75%と25%は、READMEと同じXによる時間発展からも作れます。初期状態を0、ハミルトニアンをXとし、係数と時間の単位を規格化すると、0の確率はcos²t、1の確率はsin²tになります。t=π/6を選ぶと、それぞれ3/4と1/4になり、Z期待値は0.5です。ここでのtは秒や実機のパルス時間を指定した値ではありません。
この例は、2行2列の行列による時間発展と三角関数の式を別々に計算して照合した、説明用の数学的検算です。OQD本体を実行して性能を測った結果ではありません。同じ理想状態を独立に100回測る場合、Zの標本平均の標準偏差は約0.087になります。回数が有限なら、平均が0.5の周りでばらつくことを数で捉えられます。
回数、時間の出力点、モデルの範囲を分けて選ぶ
何を確かめたいかによって、見直す設定も変わります。模擬測定の集計がばらつくならショット数が関係します。今回の独立試行の例では、回数を4倍にすると標本平均の標準偏差は半分になります。ただし、誤ったモデルが回数を増やすだけで正しくなるわけではありません。
時間変化を細かく見たい場合は、別の設定であるdtを確認します。この版ではdtを使って出力する時刻の点数を作り、QuTiPのソルバーへ渡しています。dtそのものを内部計算の固定刻みとして指定しているわけではなく、小さくすれば数値誤差が必ず減るという保証にもなりません。[2]
実装上の対象範囲も重要です。この版のMeasureは結果を集計しますが、測定で決まった状態へ置き換える処理はありません。ここで説明した最後の測定の集計から、途中で測定し、その結果で後続操作を変える計算まで正しく再現できるとは広げられません。期待値についても、本稿は単一のZを対象にしており、任意の複雑な観測量の動作を検証したものではありません。[2]
確認した公開コードはバージョン表記0.1.0、開発段階はAlphaです。量子コンピューターの実機性能を示す測定結果ではなく、モデルから数値を得る実装として読みます。グラフを見るときは「どんな状態を計算したか」「何を結果として返したか」「何回の標本に基づくか」を揃えると、期待値と測定集計を取り違えずに比較できます。[3]
参考資料
以下は2026年10月14日に確認した固定コミット 6a086a9843b91d041e76fbd4fed83c5384a14e6e(2025年9月10日)の資料です。本文の検算例はQuantum Seaによる独立計算です。
