Kuantum hesaplama nasıl değişim programlayacak? [kapalı]


33

Kuantum algoritmasının programlanması nasıl farklıdır? Bir C benzeri dil, litreler için tasarlanmış olsaydı nasıl olurdu? Türler değişebilir mi?


Not: Bunun geçerli bir soru olup olmadığından emin değilim. Değilse üzgünüm.
MaiaVictor,

4
Sanırım öyle. Sonra tekrar, gerçekten bu sitenin kurallarını çok iyi bilmiyorum. Ve bu soruya gerçekten çok iyi bir cevabım yok, fakat tamsayıları çok daha verimli bir şekilde etkilemek
John Davis

3
Bence bu konu hala bilimsel araştırmada olsa da, varsayımsal kuantum bilgisayarların temelleri AFAIK olarak bilinir, bu yüzden soru bir alan uzmanı tarafından yanıtlanmalı (ki ben değilim). Oy Yani değil kapatmak için.
Doktor Brown

Yanıtlar:


17

Bir süre önce buna baktığımda, kuantum algoritmalarının, özellikle hızlı olmamakla birlikte üssel olarak büyük paralel paralelliğe izin verdiği açıktı. Böylece sıralı donanımla pratik olmayan alanlarda, hatta büyük ölçüde paralel sıralı donanımla aramayı içeren durumlarda parlarlar.

Kuantum algoritmalarının bir özelliği de geri dönüşümlü olmaları gerektiğidir . Herhangi bir algoritma, geri çalışmasına izin verecek kadar kayıt tutma ekleyerek, tersine çevrilebilir olana dönüştürülebilir.

Bir diğer özellik, kuantum algoritmasından cevap almanın bir hit-miss ilişkisidir, çünkü bir hesaplamanın sonunda elde ettiğiniz şey, her biri kendi olasılıklarına sahip olan birden fazla cevaptır. İstediğiniz cevap yüksek olasılık olacak şekilde çalıştırılmalıdır. Bu, algoritmayı birkaç kez ileri ve geri çalıştırmayı içerebilir.

Check out Grover Arama Algoritması .


Grover algoritmasının temel çalışmasını göstermek için INSERTED. Bir arama sorunu olduğunu varsayalım. Olası cevaplar 0, 1, 2 ve 3'tür, fakat doğru cevap 2'dir. Böylece kuantum bilgisayar dört durumun da üst üste getirilir ve hangisinin doğru olduğunu görmek için bir dizi adımdan geçer ve aşağıdaki siyah noktalar ve oklar gibi genliğini tersine çevirir:

görüntü tanımını buraya girin

Bu ok 2'nin makinenin içinde ters çevrildiğini görebilirsiniz, ancak bunu dışarıda söylemenin bir yolu yoktur, çünkü sadece olasılıklar dışarıda görülebilir, genlik kareleridir ve kareler karelerken hepsi eşittir.

Bununla birlikte, amplitüdler, kırmızı çizgi ile gösterilen bir ortalamaya sahiptir ve bilgisayarın , ortalama etrafında her genliği tersine çeviren bir dizi adımdan geçmesi sağlanabilir . Bu yapıldığında, genlikler ve olasılıklar 2. duruma, doğru cevaba geçsin ! Böylece makine gözlenirse durum 2 öne çıkar.

Bu kadar basit değil. Genel olarak, doğru cevabın olasılığını en üst seviyeye çıkarmak için, her bir döngünün sonunda ters çevrilerek, ileri ve geri, makinenin birden fazla devresini alır. Ayrıca, bu sayıdan daha fazla yapmamaya özen gösterin, çünkü kendisi de kolayca tersine çevrilebilir.

Peki neden kuantum bilgisayarların bu kadar hızlı olduğunu söylüyorlar ? Çünkü, her bir litre sayısını iki katına çıkardığınızda, paralelliğin karesini alırsınız, ancak zamanın uzunluğunu kare yapmazsınız, bu yüzden sonunda kazanır.

Bu eğlenceli değil mi?


Yazılım doğruluğunun doğrulanmasında bunun nasıl uygulanabileceği ile kişisel olarak ilgilenmiştim. Şimdi yazılımı bir demet test girişi atarak ve (çok basit olması için) bir Assert'e çarpıp çarpmadığını görerek test ediyoruz. Kuantum bir bilgisayarda, daha yoğun bir girdi grubuna karşı paralel olarak çalıştırmak ve bu durumlardan herhangi birinin bir Assert'e çarpıp çarpmadığını görmek mümkün olabilir.

Algoritmaya giriş 128 bayt veya 1024 bit ise, 2 ^ 1024 veya 10 ^ 308 olası farklı girişler vardır. Geleneksel bir bilgisayarda birçok girişin test edilmesinin bir yolu yoktur, ancak kuantum bir bilgisayar hepsini paralel olarak deneyebilir.


2
Grover'in Arama Algoritmasını inceleyin ... OH GOD! Buna hazır değildim!
Philip

1
@Philip: Matematiğin son derece kapalı olduğunu biliyorum, ancak ana fikir ortalamanın rotasyon olduğunu, olasılıkları cevap durumuna aktarma etkisine sahip. Ardından, başa dönüp ileriye koşup, belli sayıda tekrar yaparsınız. O zaman gözlem yaparsanız, cevap durumunu görme olasılığını en üst düzeye çıkarmış olursunuz.
Mike Dunlavey,

Gördün mü, böyle söylediğinde hiç fena değil. Sanırım kullandıkları gösterime veya kuantum devrelerine aşina değilim. Kuantum algoritmaları sayfası da aynı şekilde korkutucu. Qubit'in başlangıç ​​için yer olduğuna inanıyorum . (Basit wikipedia'da Quantum bilgisayarlarında bir sayfa var , ancak bazı çalışmaları kullanabilir)
Philip

@Philip: 1024'lük bir giriş tablonuz olduğunu varsayalım, bu yüzden dizine eklemek 10 bit sürer. Bir 10- (qu) bit kaydınız var ve 1024 olası durumu var. Tamam, yani, kasanın 0 olduğu, diğerinin 1 olduğu 1024 paralel evrenin olduğu bir evren yaratıyorsunuz. Ardından kuantum "talimatlar" bunların hepsine paralel olarak çalışır. Her evrenin büyüklüğü olasılığı olan bir "genlik vektörü" vardır, fakat aynı zamanda bir yönü vardır ve bunlar manipüle edilmektedir. 1024 vektörlerin toplanması sıfır olmayan bir ortalama vektöre sahip olduğundan, rotasyon bir tane daha büyük, gerisi daha küçük hale getirir.
Mike Dunlavey

Ben reformcu bir fizikçiyim ve yanıltıcı olduğu için bu cevabı düşürdüm. 1) kuantum algoritmaları sık olan (hızlı) asimptotik - Grover arama algoritması çalışır O (sqrt (n) özellikle) klasik bilgisayar yapabileceği en iyi oysa O (n) 'dir. Kuantum bilgisayarlar asimptotik olarak daha hızlı olmasalardı, çok ilginç olmazlardı. Donanım şu anda yavaş olabilir, ancak algoritmaların hatası bu değil!
Benjamin Hodgson

7

Bir C benzeri dil, litreler için tasarlanmış olsaydı nasıl olurdu? Türler değişebilir mi?

C gibi anlaşılmaz olmak için çok farklı olurdu.

Asıl mesele (anladığım kadarıyla), kuantum hesaplamanın 'zorunlu, o zaman, o zaman bu diğer şey' gibi yapması gerektiği gibi güzel bir zorunluluk içinde çalışmadığıdır. C'nin bunu kuantum bilgisayarının 'işlemcisine' yapabilme yeteneğini zorlamaya çalışmak, imkansız olmasa da, yeterince verimsiz olacaktır.

Kuantum bilgisayarları için programlama algoritmaları (tekrar anladığım gibi), fonksiyonel programlama stili haritasına / azaltmaya daha yakın olma eğilimindedir, çünkü kuantum hesaplama, 'azaltma' bölümündeki tüm adayların aynı anda var olmalarına ve bilgisayarın “düşmelerine” izin verir. gözlendiğinde.

Aygıtları çalıştırmak için mevcut olmasa da, kuantum bilgisayarlar için bazı algoritmalar olduğunu unutmayın. Örneğin Simon'ın algoritması .


Kuantum algoritması için ELI5 harika olurdu.
MaiaVictor,

3

Bir kuantum bilgisayarın mümkün olan en verimli şekilde kullanılmasını sağlamak için, gerçekten klasik bir analogun olmadığı kuantum sicilinin durumları olan girdi ve çıktılarla başa çıkabilmek gerekir. Kuantum bilgi alanındaki birkaç yıllık deneyimden bahseden, sizi uyarmam gerekir ki, C * cebirlerinin soyut matematiğinin ötesinde kimsenin bunun için iyi bir sezgisi yoktur ve bu sezginin bile yetersiz kaldığı söylendi. görelilik teorisi hakkında merak etmeye başlarsanız.

Kuantum bilgisayarda etkin bir şekilde çözülebilen problemler sınıfı, Sınırlı Kuantum Polinomu için BQP olarak bilinir. Bu BPP'nin kuantum versiyonudur ve bu yazıda daha fazla bilgi bulabilirsiniz: http://www.scottaaronson.com/papers/bqpph.pdf

Daha dün gece kuantum algoritmaları araştırmacısı tarafından BQP-tamamlanmış çok önemli bir problemin olduğu söylendi: N denklemlerinin doğrusal bir sistemini çözme. Klasik olarak, bu, Gauss ortadan kaldırmasıyla O (N) basamağında çözülebilir. Harrow-Hassidim-Lloyd algoritması ( http://arxiv.org/abs/0811.3171 ), kuantum hali olarak kodlanmış bir çözüme sahip olan bir cevabı kabul etmek istemeniz koşuluyla, pollog (N) 'de çözer. Bir kuantum bilgisayardan tam olarak yararlanmak istiyorsanız, bu nedenle, bir kuantum sicilinin durumuna karşılık gelen bir türün olması gerekli görünmektedir.

Şu andaki uzmanlık alanımın biraz dışında olsam da, sihirli durumlara karşılık gelen bir türe erişebildiğiniz sürece, kuantum bir bilgisayarı programlayabileceğinize dair bir tahminde bulunacağım. Bu zor bir kavram olsa da konuyla ilgili biraz çalışmayı gerektirir.

Kuantum programlama diline sahip olmaktan çok uzun zaman geçtiğimiz konusunda uyarılırsınız, çünkü çok ilkel bir kuantum hesaplama araştırması aşamasındayız. Şu an kuantum C istemek Alan Turing'e gidip, Python'u tasarlamasını istemek gibi bir şey olacaktır. Vakum tüpünün kuantum versiyonunu bile almadık!

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.