Grover algoritmasında bir kübik neden gereklidir?


10

Grover'ın algoritmasında kâhin bir kübitin gerekliliği hakkında biraz kafam karıştı.

Benim sorum şu, kâhin kubite ihtiyacınız olsun ya da olmasın kâhininizi nasıl uyguladığınıza bağlı mı? Yoksa kâhin bir kübit için bir sebep var mı? (örneğin, kâhin bir kübit olmadan çözülemeyen bazı problemler vardır veya bir kâhin kübitiyle ilgili sorunu düşünmek daha kolaydır, ya da bir kongre vb.)

Birçok kaynak Grover'ın algoritmasını bir kübit ile tanıştırır, ancak bir kübit kubitine ihtiyacınız olmayan bazı durumlar olduğunu buldum.

Örneğin, Grover'in algoritmasının IBM Q simulator'daki iki uygulaması. Biri kâhin kübit kullanıyor, diğeri kullanmıyor. Her iki durumda da | 00>, | 01>, | 10> ve | 11> alanından | 11> bulmak istiyorum. Her iki durumda da, kehanet başarılı bir şekilde | 11> ila - | 11> 'i çevirir.

O Bir kübit ile ( IBM Q simülatörüne bağlantı ) resim açıklamasını buraya girin

O Kâhin bir kübit olmadan ( IBM Q simulator'a bağlantı ) resim açıklamasını buraya girin

Yanıtlar:


5

Kuantum devresini tanımlama perspektifinden, kâhin kübit kesinlikle gerekli değildir. Örneğin, Grover'ın aramasında, kehanetin eylemini normalde burada 1 döndürürse , işaretli öğedir. Ancak, bunu her zaman belirli bir şekilde kullanıyoruz, giriyoruz. Bunun, işaretli öğe üzerinde sadece bir aşama uygulamasının net etkisi vardır. Başka bir deyişle, tamamen yeni bir üniter uygulamasına tamamen eşdeğerdir

U|x|y=|x|yf(x),
f(x)x(|0|1)/2
U~|x=(1)f(x)|x

Bununla birlikte, fark yarattığı yerde pratik gerçeklik vardır. Bir öğeyi ararken, girişine göre işaretli öğeyi tanıyan bir devre türüne ihtiyacımız olacaktır . Bu noktada, cevabı kâhin kubiti kullanmadan faz veren üniter bir şekilde doğrudan inşa etmek yerine, kâhin bitine çıktı vermeyi düşünmek çok daha kolaydır. Gerçekten, sizden genel bir sürüm tasarlamanızı istersem şüpheliyim , çözüm olarak ekstra qubit ile ile geleceksiniz .xU~U


Oracle hesaplaması sırasında çalışma alanı olarak kullanılmadığını varsayarak, ekstra kübitten kaçınmak gerçekten çok kolaydır. Ekstra kübit üzerindeki herhangi bir CNOT'u bulun ve CNOT'un kontrolü üzerine bir Z geçidi ile değiştirin. Benzer şekilde, CCNOT'ları ekstra qubit üzerine CCNOT'un iki kontrolü arasında bir CZ ile değiştirin. Vb.
Craig Gidney

@CraigGidney İfadenizde daha fazla varsayım olduğunu düşünmeme rağmen adil bir nokta (her ne kadar bildiğimiz vakaların çoğu onları tatmin etse bile jenerik olmayan hale getiriyor): (1) fonksiyon değerlendirmesi; (2) kehanetin devresi, kehanet qubitine etki eden tek çok-qubit kapılarının, oracle qubitini hedefleyen (multi) kontrollü-notlar olduğu bir geçit kümesine ayrılmalıdır; (3) oracle kubitinde başka hiçbir kapı hareket edemez (yani, giriş ve çıkışlarda Hadamard'ları kullanarak yanlış şekilde hareket eden c-notları tersine çeviremezsiniz).
DaftWullie

Bu doğru.
Craig Gidney
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.