Simülasyonda kuantum bilgisayarı oluşturma


13

Biri kuantum bilgisayarı simülasyonların içinde sıfırdan inşa etmeye başlamak istiyorsa (insanlar Nand2Tetris kursunda sıfırdan nasıl klasik bir bilgisayar inşa edecekler gibi ) mümkün mü?

Evetse, bazı olası yaklaşımlar neler olabilir?

Ayrıca, belirli miktarda klasik bilgi işlem gücü verildiğinde, bu tür bir simüle edilmiş makinenin sınırları ne olacak? Örneğin, ortalama masaüstü / dizüstü bilgisayarınızı seçecek olsaydık, sınır ne olacak? Eğer bir süper bilgisayarı (Titan gibi) alırsak sınır ne olur?


Yanıtlar:


5

Sorunuzun ilk kısmı mevcut bir QC SE yazısının kopyası gibi görünüyor: Kuantum bilgisayarlar için emülatörler var mı? .

Simülasyonların içinde sıfırdan bir kuantum bilgisayar inşa ederek ne demek istediğinden tam olarak emin değilim . Ancak, evet, ortalama bir dizüstü / masaüstü kullanarak kuantum bilgisayar yazılım simülasyonları yapabilirsiniz. Kesin "sınır" bilgisayar özelliklerine bağlı olacaktır.

n2nn4n2n×2n

1log4(8×1012)2120n


Büyük ünitenizi ayrıştırmak için sadece 1 ve 2 qubit kapıları kullanırsanız ve saf bir durumda hareket ederseniz, aslında biraz daha fazla kübit simüle edebilirsiniz. 8 GB RAM ile kolayca 25 qubit çift hassasiyetle yapabilirsiniz.
vsoftco

4

Şu anda bir kuantum bilgisayar simülatörü üzerinde çalışıyorum. Kuantum hesaplamanın temel fikri, elbette, vektörlerle temsil edilen kubitlere uygulanan matrislerle temsil edilen kapılardır. Python'un numpy paketini kullanarak, bu en temel anlamda programlamak zor değil.

Oradan, elbette, arayüz üzerine genişleyebilir. Birisi de, dekealite sürelerini ve hata düzeltmeyi hesaba katarak, ideal olmayan bir kuantum bilgisayarın bir simülatörü yapmaya çalışmayı düşünebilir.

Sonra, çok keşfedilmemiş bir bölgeye girersiniz. Bir kuantum bilgisayarı için komut setini nasıl oluşturuyorsunuz? Kim bilir. Anlamanız gerekecek. Ayrıca derleme sürümünüzü ve hatta üst düzey programlama dilleri sürümünüzü de anlamanız gerekir.

Peki, bu klasik bilgisayarın sınırları? Bu gerçekten karmaşık bir soru (ve ayrıca sormaya değer, imho) ama hızlı bir özet:

  • kuantum bilgisayarların klasik bilgisayarlardan daha iyi olup olmadığını bilmiyoruz; klasik bilgisayarlar için algoritmalar henüz yeterince iyi olamazdı (kuantum üstünlüğü)
  • olarak kuantum bilgisayarlar olduğunu, terbiyeli muhtemel görünüyor diyelim olan iyi klasik bilgisayarlardan daha. bu iyileştirme büyük ölçüde soruna bağlı olacaktır - kuantum bilgisayarlar, örneğin, asal çarpanların bulunmasında e-postaları kontrol etmekten çok daha yüksek bir hız artışı görebilir. (ayrıca bkz. bu P.SE q / a.)
  • O(e649(logN)13(loglogN)23)O((logN)2(loglogN)(logloglogN))
  • |0|1

4

Bu cevabın çoğunlukla bir şeyi "simüle etmenin" ne anlama geldiğinin altında yatan bir yanlış anlamaya dayandığını hissediyorum.

Genel olarak konuşmak gerekirse, karmaşık bir sistemi "simüle etmek", böyle bir sistemin belirli özelliklerini kontrol edilmesi daha kolay bir platformla (genellikle, ancak her zaman değil, klasik bir bilgisayar) yeniden üretmek anlamına gelir.

Bu nedenle, “klasik bir bilgisayarda kuantum bilgisayarı simüle edip edemeyeceği” sorusu bir şekilde kötü durumdadır. Bir "kuantum bilgisayarı" nın olası her yönünü çoğaltmak istediğinizi kastediyorsanız, bu asla olmayacaktır, tıpkı herhangi bir klasik sistemin her yönünü asla simüle edemeyeceğiniz gibi (aynı özdeşliği kullanmadığınız sürece) sistemi).

Öte yandan, "kuantum bilgisayarı" gibi karmaşık bir cihazın birçok yönünü kesinlikle simüle edebilirsiniz . Örneğin, kuantum devresi içindeki bir durumun evrimini simüle etmek isteyebilirsiniz. Gerçekten de, bunu yapmak son derece kolay olabilir! Örneğin, bilgisayarınızda python varsa, aşağıdakileri çalıştırın

import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)

cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)

awesome_entangling_gate = np.dot(cnot_gate, H1_gate)

initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)

Tebrikler, ayrılabilir iki-kübit bir devletin bir Çan haline dönüşmesini "simüle ettiniz"!

n2n(1)(2)

Diğer cevaplar zaten bu sertliğin çeşitli yönlerine değindi ve bu diğer sorunun cevapları zaten kuantum algoritmalarının çeşitli yönlerini simüle etmek / taklit etmek için birçok mevcut platformdan bahsetti, o yüzden oraya gitmeyeceğim.


(1) Bunun ilginç bir örneği, bir bozon örnekleme cihazını simüle etme sorunudur (bu, bir dizi kapıdan gelişen bir durum anlamında bir kuantum algoritması değildir, ancak yine de önemsiz bir kuantum cihazının bir örneğidir). BosonSampling, bir örnekleme problemi ile görevlendirildiği bir örnekleme problemidir.belirli bir olasılık dağılımından ve bunun (muhtemel varsayımlar altında) klasik bir cihazla verimli bir şekilde yapmasının imkansız olduğu gösterilmiştir. Her ne kadar bu sertliğin temel bir yönü olmadığı gösterilmiş olsa da, bir bozon örnekleme cihazını simüle etmekle ilgili kesinlikle önemsiz bir konu, örnekleme için katlanarak çok sayıda olasılık hesaplamak zorundaydı. Bununla birlikte, son zamanlarda, bunlardan örnek almak için gerçekten de tüm olasılık kümesini hesaplamaya gerek olmadığı gösterilmiştir ( 1705.00686 ve 1706.01260). Bu, prensip olarak, sistemin tüm durumunu herhangi bir noktada depolamak zorunda kalmadan kuantum devresindeki birçok kubitin evrimini simüle etmekten uzak değildir. Daha doğrudan kuantum devreleri ile ilgili olarak, simülasyon kabiliyetlerindeki son atılım örnekleri 1704.01127 ve 1710.05867'dir (ayrıca henüz yayınlanmamış olan süper yakın bir zamanda 1802.06952'dir ).

(2) Aslında, çoğu kuantum devresini verimli bir şekilde simüle etmenin mümkün olmadığı gösterilmiştir (veya daha doğrusu, güçlü kanıtlar sağlanmıştır), bkz. 1504.07999 .

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.