IQFT 邏輯閘實作。

邏輯閘實作

根據上一篇 “Quantum Fourier Transform” 的內容,本篇延續相關知識並補充一些實作。

注意到這邊雖然看起來只是利用 $M_{QFT}\times M_{IQFT} = I$ 的特性,不過這是因為目前尚未有比較好的例子可以當作 IQFT 的輸入,所以這邊利用 QFT 先將輸入轉成 phase,接著再利用 IQFT 從這些 phase 分析出規律後輸出各個頻率。另外,為了保留完整性,所以 SWAP 並沒有被省略。

OuO

OPENQASM 2.0;
include "qelib1.inc";

qreg q[2];
creg c[2];

// Input
x q[0];
barrier q[0], q[1];

// QFT
h q[1];
cu1(pi / 2) q[0], q[1];
h q[0];
swap q[0], q[1];

// IQFT
swap q[0], q[1];
h q[0];
cu1(-pi / 2) q[0], q[1];
h q[1];

// Output
barrier q[0], q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];

實際使用 IBM QPU 執行結果

資料的 encoding 是 q[0] 為 LSB,q[1] 為 MSB。所以輸出與輸入相同皆為 01

1024 shots 機率分布

1024 shots 機率分布

OuO

轉換過實際執行的邏輯閘

轉換過實際執行的邏輯閘

OuO

  • ⊛ Back to top
  • ⊛ Go to bottom