"Durum üret" sorunlarını üç bölüme ayırarak basitleştirebilirsiniz:
- Faz veya hangi durumun hangi büyüklüğe sahip olduğu konusunda endişelenmeden ihtiyacınız olan büyüklüklerin toplanmasını hazırlayın.
- Fazları sabitleyin.
- Siparişi düzeltin.
Şimdi Hardy durumunu düşünün. Yapmamız gereken büyüklükler nelerdir? Bir örneğine ihtiyacımız var3 /12--√ ve üç örneği 1 /12--√. Ayrılmaya devam ettiğimiz "kalan genlik" durumuna sahip olarak bunları teker teker yapabiliriz.
Tek bir durumda tüm genlikle solda bir uyarmayla başlıyoruz, ℓ0| 1000 ...00⟩ nerede ℓ0= 1. Yapmak istediğimiz şey, istenen büyüklükleri geride bırakarak uyarımı sağa doğru hareket ettirmektir. Başlamak için büyüklüğün arkasında bırakmak istiyoruz3 /12--√. Bunu kontrollü bir şekilde yapabilirizR,y(θ0)kontrolün en soldaki kübit olduğu ve hedefin sadece sağındaki kübit olduğu işlem. İçin doğru değeri seçerekθ, bu devletle sonuçlanacak 3 /12--√| 1000 ...00⟩+ℓ1| 1100 ...00⟩. Sonra ikinci kübiti ilk kubite geri götürüyoruz.ℓ1| 1000 ...00⟩+3 /12--√| 0100 ...00⟩. Sonra çıkarmak istiyoruz1 /12--√. Başka bir performans sergiliyoruzR,yen soldaki kübit tarafından kontrol edilen ve ardından geriye doğru bir CNOT tarafından kontrol edilen, ancak hedefle bu kez soldan üçüncü kubit. Mükemmel olanı seçerekθ1 devleti üreteceğiz ℓ2| 1000 ...00⟩+3 /12--√| 0100 ...00⟩+1 /12--√ℓ2| 0010 ...00⟩. Ve bunu, bireysel kübitlerin heyecanla ele aldığı, ihtiyacınız olan tüm genliklere sahip olana kadar yapmaya devam edersiniz.
Şimdi Y dönüşleri tarafından üretilen yanlış fazları düzeltmek istiyorsunuz. Hardy durumu için bu kolaydır, çünkü tüm aşamalar pozitiftir. Genel olarak her bir kubit konumunu hedeflersinizk bir ile R,z(φk) uygun şekilde seçilmiş operasyon φk ve bu aşamaların doğru olmasını sağlayacaktır.
Şimdi siparişi doğru almak istiyoruz. Bunu yapmanın en kolay yolu, çıkış kubitleriniz olan bazı ekstra kübitlere sahip olmaktır ve şimdiye kadar hazırladığımız her kubit için ve çıkış kubitlerinin her biri için ikisi arasında bir CNOT ekleyin veya eklemeyin. Örneğin, genlikli durum3 /12--√ olması gerekiyor | 11⟩, en soldaki kübitimizden çıkış kübitlerinin ikisine de CNOT yapmamız gerekir. O zaman çok kontrollü bir NOT işlemi kullanarak en soldaki kübiti hesaplamalıyız. Her çıkış qubit için bir kontrol olmalıdır ve kontrolün tipi (qubit-gerekir-açık vs qubit-olmalıdır-off) qubit değiştirip değiştirmediğinize göre belirlenir.
Bu adımları uygulamak, Hardy durumu oluşturmak için verimsiz ancak doğru bir devre üretir. Devreyi Quirk'te açabilirsiniz :
Çok fazla çalışma alanı kullanmadan bir durum üretmek istiyorsanız, görev zorlaşır. Ama yine de büyüklükleri, daha sonra fazları takip edebilir ve desen sipariş edebilirsiniz. Ayrıca, güzel desenlere sahip büyüklük kümeleri hazırlamak için daha akıllı yollar vardır. Örneğin, sadece bir genlik diğerlerinden farklı olduğunda, durumu hazırlamak için bir tur kısmi genlik amplifikasyonu yeterli olabilir.