本日はDicke(ディッケ)状態生成についてみてみます。用途はQAOAなどの組合せ最適化問題を実行する際、解の探索にXYミキサーなどを利用する際の量子状態生成としてハミルトニアンに対応した固有状態を作ることができます。量子もつれを使って探索すると部分空間探索ですむので正解率がかなり上がります。
Dicke状態生成はいろいろ提案されていますが、今回は古典ビットから指定のDicke状態を作る技法について確認します。
Dicke状態
こちらは下記の式で表現できます。
∣Dkn⟩=(nk)−21x∈{0,1}n,wt(x)=k∑∣x⟩ n量子ビットあったときにそのうちk個が1で残りのn-kが0になっているもつれ状態です。例えば∣D24⟩は、
∣D24⟩=61(∣0011⟩+∣0101⟩+∣1001⟩+∣1010⟩+∣1100⟩+∣0110⟩)
論文中ではSplit & Cyclic Shift ユニタリという操作を使って段階的に作っています。
今回利用するのは、古典的なビット列をDicke状態に変換するという方法を取りますが、SCSを使うことによって、うまく再帰的に計算ができます。
SCSn,kは、量子ビットの最初の0を最後に移動させて全体の配列をずらす操作に対応しています。
∣001⟩↦31∣001⟩+33−1∣010⟩ ビットの数が3、1の数が1なので、SCS3,1は、元の配列にk/nの係数をかけ、最初のゼロを最後に持って行って、全体の配列を前にずらした量子状態に(n−k)/nの係数をかけるという操作です。これを再帰的に行うことでなんとDicke状態を作ることができてしまいます!
ちょっと試しに作ってみます。
∣001⟩↦31∣001⟩+32∣010⟩
次に一つずらしてみます。1がないときはそのままの状態になります。
31∣00⟩⊗∣1⟩↦31∣001⟩
32∣01⟩⊗∣0⟩↦(21∗32∣01⟩+21∗32∣10⟩)⊗∣0⟩=31∣010⟩+31∣100⟩
つまり最終的には、
∣001⟩↦31∣001⟩+31∣010⟩+31∣100⟩
となり、Dicke状態が作れました。
かなり便利なDicke状態の生成方法が指定されています。是非次はこれを使ってQAOAをやってみたいですね!以上です!