Klasik bilgisayar bilimi kuantum hesaplama ile karşılaştırılırken yaygın bilgisayar bilimi kullanımı 'sabitleri yoksayma' yararlı mıdır?


14

Daniel belirtilen batan bir yorum ki (benim) görüşüne yanıt, sabit hız-yukarı bir polinom zaman algoritması itiraf bir problem üzerinde yetersiz bir deyişle,108

Karmaşıklık teorisi, sonsuz boyut ölçekleme limitlerine çok takıntılıdır. Gerçek hayatta önemli olan sorunun cevabını ne kadar hızlı aldığınızdır.

Bilgisayar Bilimlerinde, algoritmalardaki sabitleri görmezden gelmek yaygındır ve sonuçta, bu oldukça iyi çalıştığı ortaya çıktı. (Ben orada, demek olan iyi ve pratik algoritmalar. Benden (teorik) algoritmaları araştırmacılar bu oldukça büyük bir el vardı verecektir umut!)

Ancak, bunun şu anda olduğumuz gibi biraz farklı bir durum olduğunu anlıyorum:

  1. Aynı bilgisayarda çalışan iki algoritmayı karşılaştırmamak, ancak iki çok farklı bilgisayarda iki (biraz) farklı algoritmayı karşılaştırmak .
  2. Şimdi, belki de geleneksel performans ölçümlerinin yetersiz olabileceği kuantum bilgisayarlarla çalışıyoruz .

Özellikle, algoritma analizi yöntemleri sadece yöntemlerdir . Yeni hesaplama yöntemlerinin, mevcut performans değerlendirme yöntemlerimizin eleştirel bir incelemesini gerektirdiğini düşünüyorum!

Benim sorum şu:

Bir kuantum bilgisayardaki algoritmaların performansı ile klasik bir bilgisayardaki algoritmalar karşılaştırılırken, sabitleri 'yoksayma' uygulaması iyi bir uygulama mıdır?


Sabitleri göz ardı etmek klasik hesaplamada her zaman iyi bir fikir değildir. Bu nasıl bir kuantum bilgi işlem sorusu ve algoritma kaynak ölçeklemesi hakkında düşünmek için bir soru değil? Başka bir deyişle, bir hesaplamayı çalıştırmak için gereken zaman veya diğer kaynaklar hakkında konuşurken, hesaplamanın kuantum veya klasik olup olmadığı, yüz milyonluk bir hız faktörünü önemsediğiniz veya ilgilenmediğiniz sorusuyla ilgisiz görünmektedir.
DanielSank

1
@DanielSank Daha önce de belirttiğim gibi, algoritma analizindeki sabitleri göz ardı etmek klasik hesaplama için oldukça işe yaradı. Ayrıca algoritma araştırmacıları için fiili standarttır . Görünüşe göre aynı fikirde olmayan tüm bu algoritma araştırmacılarını duymakla oldukça ilgileniyorum . Bu soruyu sormamın ana nedeni, 'sabitleri görmezden gelmenin' neredeyse herhangi bir algoritma araştırmacısı için değil, bir kuraldan daha fazla olmasıdır. Eminim ki bu site yararlı katkıda bulunanlar gibi insanlara sahip olacak, kuantum ile klasik karşılaştırılırken böyle bir düşüncenin ayarlanması gerekip gerekmediğini bilmek ilginç olabilir.
Ayrık kertenkele

3
Bu soru hakkında ilginç bir sohbet burada .
DanielSank

Yanıtlar:


9

'Sabitleri görmezden gelme' nin yaygın Bilgisayar Bilimi kullanımı, yalnızca çeşitli donanım mimarisi veya yazılımlarının performansındaki farklılıkların biraz masajla göz ardı edilebildiği durumlarda yararlıdır. Ancak klasik hesaplamada bile, zor sorunları veya büyük sorunları çözmek istiyorsanız mimarinin (önbellek davranışı, sabit disk kullanımı) etkisinin farkında olmak önemlidir.

Sabitleri göz ardı etme uygulaması, uygulama bakış açısından motive edilen (sürekli olarak teyit edilme anlamında) bir uygulama değildir. Çoğunlukla kompozisyon altında iyi davranan ve saf matematiğe yakın bir şekilde basit karakterizasyonları kabul eden algoritmaların incelenmesine yönelik bir ilgi ile yönlendirilir. Turing Machines için hızlandırma teoremleri, herhangi bir mantıklı tanımın, mantıklı bir teoriye ulaşmak için sorunların karmaşıklığını çok kesin bir şekilde tespit edemeyeceği anlamına geliyordu; ve ayrıca, zor problemler için iyi algoritmalar bulma mücadelesinde, sabit faktörler matematiksel olarak ilginç bir parça değildi ...

Algoritmalar üzerinde yapılan bu daha soyut yaklaşım büyük ölçüde verimli olmuştur. Ama şimdi iki hesaplama modelimiz olan bir durumla karşı karşıyayız.

  • Bunlardan biri ileri bir teknolojik olgunluk durumundadır (klasik hesaplama); ve
  • Biri çok olgunlaşmamış bir durumda, ancak önemli asimtotik gelişmelere (kuantum hesaplama) yol açabilecek teorik bir model gerçekleştirmeye çalışıyor.

Bu durumda, sabit faktörlerin dikkatli bir şekilde hesaplanmasıyla veya hesaplanmadan asimtotik yararı düşünmenin mantıklı olup olmadığını sorabiliriz . Ölçeklenebilir kuantum hesaplama yapmak için gerekli olabilecek ekstra çaba nedeniyle, sadece skaler faktörler değil , teorik performanstaki polinom "hızlandırmaları" bir kuantum algoritmasının gerçekleştirilmesindeki tüm ek yükler dikkate alındığında yıkanabilir.

Bu ilk günlerde, kuantum mimarisine farklı yaklaşımlarda performansta önemli farklılıklar da olabilir. Bu, mimarlık seçimini, bir algoritmanın asimptotik analizden daha iyi performans göstermesi için (daha önemli olmasa bile) önemli hale getirebilir - tıpkı bir von Neumann makinesinde veya oldukça dağıtılmış bir ağda geleneksel hesaplamanızı yapmanızın sizin için çok önemli olduğu gibi önemli gecikmeler ile.

Pratik hesaplama için asıl önemli olan sadece algoritmalar değil, aynı zamanda algoritmaların uygulamalarıdır - ve her zaman böyle olmuştur : belli bir şekilde, belirli bir mimaride gerçekleşen bir algoritma. Sabit faktörleri göz ardı eden ortak asimptotik analiz uygulaması, algoritmaların performansındaki farklılıkların sistematik, matematiksel nedenlerine dikkat etmemizi sağlar ve mimari farklılıkların pratik performansa hükmedecek kadar büyük olmadığı durumlarda pratik olarak motive edilir. .

Kuantum teknolojileri ile ilgili olarak, herhangi bir pratik bağlamda sabit faktörleri güvenli bir şekilde parlatabildiğimiz mutlu durumda değiliz. Ama belki bir gün bunu yapabiliriz. Bu kuantum bilgi teknolojilerinin uzun oyunu - şimdiye kadar, kuantum bilgi teknolojisi ile ilgili olarak, akademik bilgisayar bilimcilerinin şimdiye kadar oynadığı neredeyse tek oyun. Kuantum teknolojisinin temellerini bulduğu günü tahmin ederek , kuantum algoritmalarının performansında bir araştırma hattı olarak asimptotik analiz yapmaya devam etmemiz iyi olacaktır .


Yani, sonuç olarak, sen 'sabitlerini kenara atmak' lehine gibi görünen şimdilik biz aşamasında hala iken, uygulama çok önemlidir. İlginç. Akıl yürütme çizginizi seviyorum, ama biraz katılmıyorum. Yakında bunu kendi cevabımla genişleteceğim.
Ayrık kertenkele

1
@Discretelizard: Sabitlerin pratik bir fark yarattığı durumlarda sabitleri atmamaktan yanayım. Açıkça 1e8 gibi sabitler, klasik hesaplamada da pratik olarak önemlidir; ancak çok ilginç olabilecek diğer ayrıntıları bulmaya çalışmak için bu tür sabitleri göz ardı edebiliriz. Ama aynı zamanda, 1e8'in kuantum ve klasik teknolojiler arasında bugünkü haliyle karşılaştırmalarda, klasik hesaplamada olduğundan daha önemli olduğu doğrudur.
Niel de Beaudrap

5

O(f[N])N

1010

300


2

Kuantum hesaplamayı klasik hesaplamayla karşılaştırırken sabit faktörleri göz ardı edemezsiniz. Çok büyükler.

Örneğin, geçen yıl sunduğum bazı slaytlardan bir resim :

kuantum ve kapı

Alt kısımdaki şeyler sihirli devlet fabrikaları. 150K fiziksel kübite ayak izine sahiptirler. AND geçidi 0,6 milisaniye boyunca 150K kubit kullandığından, bir kuantum AND geçidinin uzay-zaman hacminin 90 kubit saniye civarında olduğunu tahmin ediyoruz.

İş arkadaşlarımın hedeflerinden biri, hata düzeltmesi yaparken 100 qubit başına 1 cpu kullanmak. Bu nedenle 90 kübit saniyenin 0,9 cpu saniyelik bir çalışma gerektirdiğini söyleyebiliriz. Yukarıdaki görüntü yapıldığından beri kuantum yapılarını birkaç kat daha verimli hale getirdik, bunun yerine 0.1 cpu saniye diyelim.

(Bu tahminlere giren birçok varsayım vardır. Ne tür bir mimari, hata oranları, vb. Ben sadece bir büyüklük fikrini iletmeye çalışıyorum.)

64 bitlik bir ekleme yapmak için 63 VE geçidi gerekir. 63 * 0.1 cpu saniye ~ = 6 cpu saniye. Kuantum olarak, 64 bit'lik bir ekleme bir CPU saniyesinden daha pahalı. Klasik olarak, 64 bitlik bir ekleme işleminin bir nanosaniyeden daha az maliyeti vardır. Burada kolayca 10 milyar sabit faktör farkı var. GPU gibi paralel bir klasik makineyle karşılaştırırsanız, sayılar daha da kötüleşir. Bu kadar basamakla sabit faktörleri göz ardı edemezsiniz.

Örneğin, Grover'in, N değerlendirmesi yerine işlevin sqrt (N) değerlendirmesinde bir işleve tatmin edici bir girdi aramamızı sağlayan algoritmasını ele alalım. 10 milyar sabit faktörü ekleyin ve kuantum bilgisayarın daha az değerlendirme gerektirdiği yeri çözün:

N>1010NN>1020

Grover'ın algoritması değerlendirmeleri paralelleştiremez ve değerlendirmeler için en az bir AND geçidi gerekir, bu nedenle temelde CPU zaman avantajlarını yalnızca arama on milyonlarca yıl sürdüğünde görmeye başlarsınız.

Sabit faktörleri çok daha iyi hale getirmediğimiz sürece, hiç kimse Grover aramasını yararlı bir şey için kullanmayacaktır. Şu anda kuantum-klasik durum üstel avantaj veya büsttür.


1

Diğer cevaplar iyi puan verirken, hala biraz katılmıyorum. Bu noktada kendi düşüncelerimi paylaşacağım.

Kısacası, 'olduğu gibi' sabitini öne çıkarmak en iyi ihtimalle boşa giden bir fırsattır. Belki de şimdilik elde edebildiğimiz en iyisi, ama ideal olmaktan uzak.

Ama önce kısa bir gezinin gereksiz olduğunu düşünüyorum.

Ne zaman etkili bir algoritmamız var?

106

  1. P
  2. P2P
  3. P2

P2PPP2

Bu nedenle, çöp algoritmamızın tesadüfen 'mucizevi' hızlanmalara sahip olması mantıksız değildir. Şimdi, elbette, riski azaltabilen birçok deney tasarım tekniği vardır, ancak belki de hala birçoğunda başarısız olan daha akıllı 'hızlı' algoritmalar, ancak yeterli örnekler bizi kandırabilir! (ayrıca hiçbir araştırmacının kötü amaçlı olduğunu varsaydığımı unutmayın , bu da işleri daha da kötüleştirir!)

Şimdi, "Daha iyi bir performans ölçütü olduğunda beni uyandır" diye yanıtlıyorum.

Peki nasıl daha iyisini yapabiliriz?

'Kara kutu' algoritmamızı her durumda test edebilirsek, yukarıdakiler sizi kandıramaz. Ancak, pratik durumlar için bu mümkün değildir. (Bu olabilir teorik modellere yapılabilir!)

Ne yapabilirsiniz yapmak yerine istatistiksel oluşturmaktır hipotezini bazıları için parametreli biz böyle bir hipotezi elde ederiz ve null adlı reddeden makul görünüyor kadar belki yine bizim hipotezi ve testi uyarlamak, bu test etmek (genellikle giriş boyutu için) çalışma süresi. (Göz ardı ettiğim başka faktörlerin de olduğunu unutmayın. Pratikte bir matematikçiyim. Deney tasarımı uzmanlığım dahilinde bir şey değil)

O(n3)

Peki, sabitlerle ne yapmalı?

109

Meraklı sabiti bir anomali olarak değerlendirmenin en yararlı olduğunu düşünüyorum , yani kendi başına daha fazla araştırmayı gerektiren bir iddia. Bence 'algoritmamız X zaman alır' dan daha genel modellere dayalı hipotezler oluşturmanın bunu yapmak için iyi bir araç olduğunu düşünüyorum. Bu yüzden, burada CS sözleşmelerini devralabileceğimizi düşünmeme rağmen, sabitler için 'küçümseme'yi tamamen göz ardı etmek de kötü bir fikirdir.

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.