Rasgele algoritmaların sınıflandırılması


14

Gönderen Wikipedia randomize algoritmaları hakkında

Beklenen çalışma süresini veya bellek kullanımını azaltmak için rasgele girişi kullanan algoritmalar arasında ayrım yapmak gerekir , ancak her zaman sınırlı bir süre içinde doğru bir sonuçla sonlanır ve rasgele girdiye bağlı olarak bir şansa sahip olasılıklı algoritmalar hatalı bir sonuç üretme (Monte Carlo algoritmaları) veya bir başarısızlık sinyali vererek veya sonlandırılamadığında bir sonuç üretememe (Las Vegas algoritmaları).

  1. Ben ilk tür algoritmalar beklenen çalışma süresini veya bellek kullanımını azaltmak için rastgele girdiyi nasıl kullandığını merak ediyordum , ama her zaman sınırlı miktarda doğru bir sonuç ile son?
  2. Sonuç vermeyebilecek Las Vegas algoritmaları ile arasındaki farklar nelerdir?
  3. Doğru anlarsam olasılıklı algoritmalar ve rastgele algoritmalar aynı kavram değildir. Olasılıksal algoritmalar sadece bir çeşit randomize algoritmadır, diğeri ise beklenen çalışma süresini veya bellek kullanımını azaltmak için rastgele girdiyi kullanır, ancak her zaman sınırlı miktarda doğru sonuçla sonlandırılır mı?

Yanıtlar:


12
  1. O(n2)O(nlogn)O(n2)O(nlogn)

  2. Bu, Las Vegas algoritmalarının bir alt kümesini verir. Las Vegas algoritmaları da (düşük olasılıkla) hiç bitmeyebilir - sadece biraz daha fazla zamanla sona ermez.

  3. Bunlar sırayla, cevabın yanlış olabileceği (düşük olasılıkla), en azından kavramsal olarak cevap vermemekten farklı olan bir tür Monte Carlo algoritmasıdır.

Tabii ki bıraktığım bir sürü detay var, bu fikirleri resmileştiren ZPP, RP ve BPP karmaşıklık sınıflarına bakmak isteyebilirsiniz.


Teşekkürler! Peki rasgele algoritmalar, Monte Carlo algoritmaları ve olasılık algoritmaları aynı kavram mıdır?
Tim

Evet, Monte Carlo algoritmaları belirli bir olasılıksal algoritma türüdür (BPP sınıfına karşılık gelir - PP gibi olasılıklı, ancak - muhtemelen! - BPP'den daha fazlasını içeren başka sınıflar vardır). Bu cümlenin neden wikipedia makalesinde olduğundan emin değilim, belki biri farklı bir şey olan olasılıksal analizle karıştı.
Luke Mathieson

8

İki terim rastgele algoritmalar ve olasılık algoritmaları iki farklı bağlamda kullanılır. Rasgele algoritmalar , kullanmayan deterministik algoritmalara aykırı olarak rasgeleliği kullanan algoritmalardır . Olasılıksal algoritmalar , örneğin ilkellik testi için olasılıklı algoritmalar, rasgelelik kullanan ve bazı (umarım) küçük olasılıklarla hata yapabilen algoritmalardır.

Monte Carlo algoritmaları ile Las Vegas algoritmaları arasında önemli bir ayrım yapılmalıdır . Las Vegas algoritmaları, her zaman doğru cevabı döndüren rastgele algoritmalardır, ancak çalışma süreleri bozuk paraya bağlıdır. Bir örnek tamsayı çarpanlarına ayırma algoritmalarıdır - her zaman doğru faktörleri döndürürler, ancak çalışma süreleri rastgeleliğe bağlıdır. Bir Las Vegas algoritmasının (bir faktoring algoritması diyelim) çalışma süresini belirtirken, aslında beklenen çalışma süresini belirtiriz ; şanssız olursak, algoritma daha uzun süre çalışabilir.

Monte Carlo algoritmaları ise çalışma süresi önceden belirlenen rastgele algoritmalardır. Bu algoritmalar bir hata yapabilir, ancak genellikle hata olasılığı çok düşüktür. Bunun iyi bir örneği olasılıksal öncelik testidir. Bu algoritmalar çok hızlıdır, ancak hata yapabilir. Bununla birlikte, hata olasılığı uygulamada asla hata yapmadıklarından yavaştır.

Her Las Vegas algoritması, yeterince uzun bir süre sonra yürütmeyi durdurarak Monte Carlo algoritmasına dönüştürülebilir, bu nedenle Las Vegas algoritmaları bir anlamda Monte Carlo algoritmalarından "daha iyi" olur.


Bu tanımlar için bir referans verebilir misiniz?
R. Chopin

Wikipedia'nın bazı ilgili referansları olmalıdır.
Yuval Filmus
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.