Hangi algoritmalar için teorik analiz ile gerçeklik arasında büyük bir boşluk var?


52

Bir algoritmanın etkinliğini analiz etmenin iki yolu

  1. çalışma süresine asimptotik bir üst sınır koymak, ve
  2. Çalıştırmak ve deneysel verileri toplamak için.

Merak ediyorum (1) ve (2) arasında önemli bir farkın olduğu durumlar var mı ? Bununla, (a) deney verilerinin daha sıkı bir asimptotik önerdiğini veya (b) teorik analizin X'in Y'den çok daha iyi olduğunu öne sürdüğü ve deneysel verilerin Y'nin çok daha iyi olduğunu öne sürdüğü şekilde X ve Y algoritmaları olduğu anlamına gelir. X.

Deneyler genellikle ortalama durum davranışını gösterdiğinden, en ilginç cevapların ortalama durum üst sınırlarına değinmesini beklerim. Ancak, Noam'ın Simplex hakkındaki cevabı gibi farklı sınırlar hakkında konuşan ilginç cevapları ekarte etmek istemiyorum.

Veri yapılarını dahil et. Lütfen cevap başına bir algo / ds koyun.


Ne tür üst sınırlardan bahsettiğinizi netleştirmeniz faydalı olacaktır. Sadece en kötü zaman karmaşıklığı için bilinen en iyi üst ve alt sınırlar arasında önemli bir boşluk olan sorunlardan mı bahsediyorsunuz? Yoksa, en kötü durum karmaşıklığı konusundaki sıkı sınırların bilindiği, ancak tipik çalışma sürelerinin önemli ölçüde daha hızlı olduğu sorunları da mı yaşıyorsunuz? En kötü durum karmaşıklığından ziyade düzleştirilmiş karmaşıklığı göz önüne almak daha ilginç olabilir. 'Tipik' girdiler veya rastgele girdiler hakkındaki deneysel sonuçlar, patolojik girdilerin varlığını ispatlamak için çok az şey yapar.
James King

Bu durumda, ayrı ayrı sorulması gereken iki soru olduğunu düşünüyorum: Biri en kötü durum karmaşıklığı ile ortalama durum / düzleştirilmiş karmaşıklık arasındaki boşluklardan biri, bir tanesi teorik ortalama durum / düzgünleştirilmiş karmaşıklık ile pratik deneysel sonuçlar arasındaki boşluklardan biri. Düzenleme: Ben yorum yazarken bunu ele alan bir düzenleme yaptınız :)
James King

Yanıtlar:


37

Elbette en göze batan örnek, pratikte hızlı çalışan, çoklu zamanlılık düşündüren ancak teoride üstel zaman alan Simplex yöntemi. Dan Spielman, bu gizemi açıkladığı için Nevanlinna ödülünü büyük ölçüde aldı.

Daha genel olarak, birçok Integer-programlama örneği, standart IP-çözücüleri kullanılarak oldukça iyi çözülebilir, örneğin, önemli boyutlardaki girdilerde denen çoğu dağıtım için kombinasyonlu açık artırmalar çözülebilir - http://www.cis.upenn.edu/~mkearns /teaching/cgt/combinatorial-auctions-survey.pdf


3
Simpleksin üssel zaman aldığı, açık bir doğrusal programlar ailesi oldu mu?
Opt

1
Anladığım kadarıyla, üstel zaman gerektiren birçok açık aile var (örneğin, Klee ve Minty tarafından verilen ilk arı: "Simpleks algoritması ne kadar iyi?", 1972). Ancak, pivot kuralının seçimi bu sonuçlarla ilgilidir. Sanırım bu sonuçlara yapılan atıfların çoğu Spielman ve Teng'in makalesinde bulunabilir ( arxiv.org/abs/cs/0111050 ).
MRA


Bu yazıda belirli bir dönme kuralı için daha düşük sınırlar var. cs.au.dk/~tdh/papers/random_edge.pdf
Igor Shinkar 17:13

26

Groebner üsleri . En kötü durumdaki çalışma süresi iki kat katlıdır (değişkenlerin sayısında). Bununla birlikte pratikte, özellikle iyi yapılandırılmış problemler için, F4 ve F5 algoritmaları etkilidir (yani oldukça hızlı bir şekilde sonlanır). Hala ortalama ya da beklenen çalışma süresi için ne kadar uygun bir varsayımın olması gerektiğine karar vermek aktif bir araştırma alanıdır. Bir şekilde, altında yatan idealin Newton polipopunun hacmi ile ilgili olduğu varsayılmaktadır.


Hangi dağılımda ortalama / beklenen? Beklenen çalışma zamanını tanımlamanın bile cebirsel problemler için zor olduğunu düşündüm ...
Joshua Grochow

1
F4 ve F5 yöntemleriyle hızla çözülen durumlar için bilmiyorum, ancak SAT örneğini kodlayan çok değişkenli ve düşük dereceli bir polinom sistemi oluşturmak oldukça kolaydır. Bu durumda algoritmanın DPLL / DPLL + 'dan daha iyi performans gösterdiği bilinmemektedir. Bu tür deneysel sonuçlar hakkında daha fazla şey bilmek isterdim!
MassimoLauria

@Joshua: Bu noktada, sonuçlara izin veren herhangi bir dağıtım ... @Massimo: X problemini Y'nin bir örneği olarak kodlamak, X için özel algoritmaları neredeyse hiçbir zaman geçemez! Ancak GB ve DPLL esasen eşdeğerdir, bu yüzden etkili bir fark gördüğümde çok şaşırdım.
Jacques Carette

1
@Massimo: Evet, GB hesaplaması NP-Hard'tır. Formülasyona bağlı olarak. Aslında, çoğu soru (tamamlanma, ideal üyelik, cebirsel olarak kapalı alanlara karşılık, boole'ler) PSPACE tamamlandı veya daha kötüydü (EXPSPACE tamamlandı). Bu, GB hesaplamalarının NP-tamamlayıcı sorunlardan daha zor olması beklendiği anlamına gelir (ve dolayısıyla avg durumunda bile, F5 gibi herhangi bir algoritma DPLL'den daha iyi sonuç vermeyecektir).
Mitch,

22

Bu fenomenin büyük ve az tanınan bir örneği grafik izomorfizmidir . En iyi bilinen algoritma O gibi bir şey alır ( 2 ( Ö(2((nlÖgn)))

Sorunun ortalama / düzleştirilmiş karmaşıklığı üzerine resmi bir sonuç olup olmadığını bilmiyorum, ama birinin var olduğunu okuduğumu hatırlıyorum - belki bir başkası resmi bir sonuç ortaya koyar. Elbette, çok sayıda deneysel kanıt ve çok sayıda hızlı çözücü var. Ayrıca, bu mülkün GI-complete ailesinin diğer üyelerine uzanıp açılmadığını merak ediyorum.


1
GI için düzgünleştirilmiş bir analiz bilmiyorum - hatta tam olarak nasıl göründüğünü bile bilmiyorum - ama en kötü durumdaki üssel zamanda çalıştığını gösteren en iyi bilinen pratik uygulamanın (nauty) analizi var. Tabii ki, nauty uygulamıyorÖ(2nkütükn)

2
Ah! Belki de GI için lineer zamanlı ortalama durum algoritması veren Babai- Kucera'yı düşünüyorsunuz
Joshua Grochow

Evet, Babai-Kucera olanı! Referans için teşekkürler.
Anand Kulkarni


20

Yakın zamana kadar iyi anlaşılmayan bir başka örnek, (pratik açıdan) 50 yıldan fazla bir süredir tercih edilen kümeleme algoritması olan Lloyd'un k-aracı algoritmasının çalışma süresidir . Ancak yakın zamanda, 2009 yılında ( Vattani tarafından ), en kötü durumda, Lloyd algoritmasının giriş noktası sayısında üssel olan birkaç yineleme gerektirdiği kanıtlanmıştır . Öte yandan, aynı zamanda düzeltilmiş bir analiz ( Arthur, Manthey ve Röglin tarafından yapılan ), düzeltilmiş sayıdaki yinelemenin yalnızca ampirik performansı açıklayan polinom olduğunu kanıtladı.


10

Patlak ağaçları için dinamik iyimserlik varsayımının traversal, deque ve split parantezleri bu boşluklara örnek olarak verilebilir. Deneyler doğrusal zaman iddiasını desteklemektedir, ancak bilinen hiçbir kanıt yoktur.


3
Seth Pettie, n deque işlemlerinin O (n alfa * (n)) süresinden daha fazla zaman almadığını, burada "alfa *" nın oldukça küçük bir boşluk olan yinelenen ters Ackermann işlevi olduğunu kanıtladı.
jbapple

9

Soruyla ilgili ufak bir sorun var. Aslında, bir algoritmayı analiz etmenin ikiden fazla yolu vardır ve ihmal edilen teorik yollardan biri, en kötü durum çalışma zamanından ziyade beklenen çalışma süresidir. Gerçekten de, deney yapmakla ilgili olan bu ortalama durum davranışı. İşte çok basit bir örnek: n boyunda bir girdi için bir algoritmaya sahip olduğunuzu düşünün, n'nin her olası uzunluğu için n değerini alan, her zamanın 2 ^ n değerini alan bir uzunluğun belirli bir girişi dışında. En kötü vaka çalışma süresinin üstel olduğunu, ancak ortalama durumun [(2 ^ n -1) n + (2 ^ n) 1] / (2 ^ n) = n - (n-1) / 2 ^ n olduğunu sınırlar Açıkçası, iki analiz türü çok farklı cevaplar veriyor, ancak farklı miktarları hesaplarken bu beklenebilir.

Deneyi birkaç kez çalıştırarak, örnek için en uzun çalışma zamanını alsak bile, yine de olası girdiler alanının sadece küçük bir kısmını örnekliyoruz ve bu nedenle zor örnekler nadirse o zaman onları kaçırmamız muhtemeldir. .

Böyle bir problemin oluşturulması nispeten kolaydır: Eğer ilk n / 2 bitin hepsi sıfır ise, son n / 2 bit ile kodlanmış 3SAT örneğini çözmek yerine. Aksi takdirde reddet. N büyüdükçe, problem en kötü durumda 3SAT için en verimli algoritma ile aynı çalışma süresine sahiptir, burada ortalama çalışma süresinin çok düşük olduğu garanti edilir.


James King'e çoktan cevap verdim, en ilginç cevapların beklenen çalışma süresi hakkında olacağını umuyorum. Bunu daha görünür hale getirmek için soruyu düzenleyeceğim.
Radu GRIGore,

9

Damas-Milner tipi çıkarımın üssel zaman için tamamlandığı kanıtlanmıştır ve sonucun boyutunda üssel patlama ile kolayca yapılan durumlar vardır. Bununla birlikte, çoğu gerçek dünya girdisinde, etkili bir şekilde doğrusal bir şekilde davranır.


Bu sonuç için önerebileceğiniz bir referans var mı? Bununla ilgili daha fazla okumak istiyorum.
Radu GRIGore

1
Kendim okumamıştım, ancak en sık alıntılanan makale Harry G. Mairson, “ML yazımının kararlılığı deterministik üssel zaman için tamamlandı”, 17. Programlama Dilleri İlkeleri Sempozyumu (1990).
sclv

9

Düzlemsel grafiklerdeki Steiner ağacı için PTAS'ın epsilon'a gülünç bir bağımlılığı vardır. Ancak uygulamada şaşırtıcı derecede iyi performans gösteren bir uygulama var.


8

[1] 'den gelen yığınların eşleştirilmesi - ekleme ve birleştirme işleminin O (log n) itfa karmaşıklığına sahip olduğu ancak O (1) olduğu tahmin edilen yığınlar uygular. Uygulamada, özellikle birleştirme kullanıcıları için oldukça verimlidirler.

Sadece Sec okurken bugün onları keşfettim. C. Okasaki'nin "Tamamen işlevsel veri yapıları" kitabından 5.5'i aldım, bu yüzden onlar hakkında bilgi paylaşmam gerektiğini düşündüm.

[1] Fredman, ML, Sedgewick, R., Sleator, DD ve Tarjan, RE 1986. Eşleştirme yığını: Kendi kendini ayarlayan bir yığının yeni bir şekli. Algoritma 1, 1 (Ocak 1986), 111-129. DOI = http://dx.doi.org/10.1007/BF01840439


Okasaki'den bu yana bazı ilerlemeler oldu ve şimdi (zorunlu) O (0) meld, O (1) insert ve findMin, O (lg lg n) azalmaKey ve O (lg n) deleteMin: arxiv ile (zorunlu) eşleştirme yığınları var . org / abs / 0903.4130 . Bu yığın, Fredman ve arkadaşlarının orijinal eşleştirme yığınlarından farklı bir eşleştirme mekanizması kullanır.
jbapple

7

İlyaraz'ın dallanma ve sınırlanma konusundaki yorumu ile ilgili olarak, Pataki ve ark. dal ve sınır artı kafes bazında indirgemenin polytime'daki neredeyse tüm rastgele IP'leri çözebileceğini gösterin.


6

TSP için Lin-Kernighan sezgisel ("Seyahat eden satıcı problemi için etkili bir sezgisel buluşma", Yöneylem Araştırması 21: 489-516, 1973) uygulamada çok başarılıdır, ancak performansını açıklamak için hala ortalama bir durum veya düzleştirilmiş bir analiz bulunmamaktadır. . Bunun aksine, TSP'ye yönelik 2 tercihli sezgisel araştırmacının Matthias Englert, Heiko Röglin ve Berthold Vöcking (Algorithmica, ortaya çıkması) tarafından yapılan düzgünleştirilmiş bir analizi var.


5

Uygulamada titizlikle analiz edemeyeceğimiz farklı NP-zor problemler için branş ve sınır algoritmalarında çok hızlı ve etkili bir çok şey var: TSP, Steiner ağacı, çöp kutusu vb.

Ω(nm)


O (mn) demek istiyorsun, yoksa kafam mı karıştı?
Radu GRIGore

Ö(nmlÖg(n2/m))
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.