Aracılığıyla paylaş


Kuantum kahinlerini anlama

Bir öngörü işlevi, $O$, başka bir algoritmaya giriş olarak kullanılan açıklanmayan bir işlemdir. Genellikle, bu tür işlemler, n-bit ikili bir girdiyi ve m-bit ikili bir çıktıyı işleyen klasik bir f fonksiyonu $f : \{0, 1\}^n \to \{0, 1\}^m$ kullanılarak tanımlanır. Bunu yapmak için belirli bir ikili girişi $göz önünde bulundurun x = (x_{0}, x_{1}, \dots, x_{n-1})$. Kubit durumlarını x$\ket{\vec{}}=x_\ket{{{0}}\otimesx_x_\ket{{1}}\otimes\cdots\otimes\ket{n-1{ olarak }}$etiketleyebilirsiniz.

Öncelikle $O$'yı, $O\ket{x}=\ket{f(x)}$ olacak şekilde tanımlamayı deneyebilirsiniz, ancak bu yöntemde birkaç sorun vardır. İlk olarak, $f$ farklı bir giriş ve çıkış boyutuna ($n \ne m$) sahip olabilir; örneğin, O'nun$ uygulanması $yazmaçtaki kubit sayısını değiştirebilir. İkinci olarak, n < m olsa bile, işlevin tersin alınamayacağı durumlar olabilir: bazı x, y değerleri için f(x) = f(y) ise, O x O y ama O^ O x O^ O y. Bu, birleşik işlem O^$'yi \dagger$ oluşturamayacağınız anlamına gelir ve kahinler için bir birleşik işlemin tanımlı olması gerekir.

Bir oraklı hesaplama temel durumları üzerindeki etkisiyle tanımlayın

İkinci bir $m$ kubit kaydı ekleyerek yanıtı tutabilir ve bu sorunların her ikisini de çözebilirsiniz. Ardından, kahinin tüm hesaplama temel durumlarına etkisini tanımlayın: her x \{0, 1\}^n$ ve her y \{0, 1\}^m.

$$ \begin{ \begin{align}O(\ket{x}\otimes\ket{y})=\ket{ x}\otimes\ket{y \oplus f(x).} \end{align} $$

Şimdi $O = O^\dagger$ yaparak ve her iki önceki sorunu çözdünüz.

İpucu

O^'yi $=görmek için, tüm a, b{\dagger}$$ 0, 1= için \mathbf{1}$\oplus b \oplus b $ a'dan= bu yana $O^2'nin$\inolduğunu unutmayın.{}$ Sonuç olarak, $O \ket{x}\ket{y \oplus f(x)}=\ket{x}\ket{y \oplus f(x) \oplus f(x)}=\ket{x}\ket{y}$.

Önemli olan, her hesaplama temeli durumu $\ket{x}\ket{y}$ için bu şekilde bir kahin tanımlamak, aynı zamanda $O$'nun diğer herhangi bir durum için nasıl hareket ettiğini de tanımlar. Bu davranış, tüm kuantum işlemleri gibi O'un $$da üzerinde işlem yaptığı durumda doğrusal olması gerçeğinden hemen sonra gelir. Örneğin H +$ ve \ket{0}H=\ket{}$$\ket{1}= olarak tanımlanan \ket{-}$Hadamard işlemini göz önünde bulundurun. H'nin + üzerinde nasıl davrandığını öğrenmek istiyorsanız, bu H'nin $$ doğrusal olduğunu kullanabilirsiniz.$\ket{}$$$

$$ \begin{align}H\ket{+}& =\frac{1}{\sqrt{{2}} H(\ket{0} + \ket{{1}) =\frac{1}{\sqrt{{2}}(H\ket{0} + H\ket{1}) \\& =\frac{1}{\sqrt{2}} (\ket{+} + \ket{{-}) =\frac12 (\ket{{0} + \ket{{1}\ket{{0} -\ket{{1}) . =\ket{{0} \end{align} $$

Oracle $O$'i tanımlarken, $\ket{\psi}$n + m$ kubit üzerindeki herhangi bir durumun da benzer şekilde yazılabileceğini kullanabilirsiniz.

$$ \begin{ \begin{align} \ket{\psi} & =\sum_{x \in \{0, 1\}^n, y \in \{0, 1\}^m}\alpha(x, y) \ket{x}\ket{y}. \end{align} $$

Burada: $\alpha \{0, 1\}^n \times \{0, 1\}^m\to\mathbb{ C}$, durumun $\ket{\psi}$katsayılarını temsil eder. Bu nedenle,

$$ \begin{ \begin{align}O \ket{\psi}& = O \sum_{x \in \{0, 1\}^n, y \in \{0, 1\}^m}\alpha(x, y) \ket{x}\ket{y}\\& =\sum_{x \in \{0, 1\}^n, y \in \{0, 1\}^m}\alpha(x, y) O \ket{x}\ket{y}\\& =\sum_{x \in \{0, 1\}^n, y \in \{0, 1\}^m}\alpha(x, y) \ket{x}\ket{y \oplus f(x)}. \end{align} $$

Faz kahinleri

Alternatif olarak, $f$'yi, $O$'ya, O girişine dayalı bir aşama uygulayarak kodlayabilirsiniz$$. Örneğin, O'yu, O x (-1)^(f(x))'in x ile olan hali olarak tanımlayabilirsiniz. \end{align} $$

Eğer bir faz oraklı başlangıçta $\ket{x}$ bilgisayar temeli durumundaki bir yazmaç üzerinde hareket ederse, bu faz genel bir fazdır ve bu nedenle gözlemlenemez. Ancak böyle bir kehanet, süperpozisyon veya kontrollü bir işlem olarak uygulandığında güçlü bir kaynak olabilir. Örneğin, tek kubitli bir fonksiyon olan $f$ için bir faz kahini $O_f$ düşünün. Ardından $$\begin{align} O_f \ket{+}& = O_f (\ket{0} +\ket{{1}) /\sqrt{{2}\\& = ((-1)^{f(0)}\ket{0} + (-1)^{f(1)}\ket{1}) /\sqrt{2}\\& = (-1)^{f(0)} (\ket{{0} + (-1)^{f(1) - f(0)}\ket{{1}) /\sqrt{{2}\\& = (-1)^{f(0)} Z^{f(0) - f(1)}\ket{+}. \end{align} $$

Not

Dikkat edin ki $Z^{-1}=Z^{\dagger}=Z$ ve dolayısıyla $Z^{f(0)-f(1)}=Z^{f(1)-f(0)}.$

Daha genel olarak, kahin görünümlerinin her ikisi de, yalnızca tek bir bit yerine gerçek sayılar döndüren klasik fonksiyonları temsil edecek şekilde genişletilebilir.

Bir kahini uygulamanın en iyi yolunu seçmek, bu kahinin belirli bir algoritmada nasıl kullanılacağına büyük ölçüde bağlıdır. Örneğin, Deutsch-Jozsa algoritması ilk yoldan uygulanan kahini kullanırken Grover algoritması ikinci şekilde uygulanan kahini kullanır.

Daha fazla bilgi için Bkz. Gilyén 1711.00465'teki tartışma.