Güçlü Algoritmalar uygulanamayacak kadar karmaşık


67

Uygulanamayacak kadar karmaşık olan bazı meşru fayda algoritmaları nelerdir?

Netleştireyim: Geçerli asimptotik en uygun matris çarpım algoritması (Coppersmith-Winograd) gibi algoritmaları aramıyorum, uygulanması makul ama pratikte işe yaramaz kılan bir sabiti var. Makul bir şekilde pratik değere sahip olabilecek algoritmalar arıyorum, ancak kodlamalarını yapmak çok zor, ancak bunların hiçbir zaman uygulanmadığını, yalnızca son derece yapay ortamlarda uygulandığını ya da yalnızca çok özel amaçlı uygulamalar için uygulandığını söylüyorum.

Ayrıca, iyi asimptotik özelliklere sahip olan ancak gerçek performansın düşük olması muhtemel olan neredeyse imkansız algoritmalar da memnuniyetle karşılanmaktadır.


1
Bu CW'yi yapmak uzun bir liste olabileceğinden beri.
Suresh Venkat

4
'Uygulanması neredeyse imkansız' için bir ölçüm var mı? Onu tanımlayan bir teori var mı?
Ritwik Bose

@Mechko, belki de algoritmanın bir uygulaması olan bir Turing makinesinin açıklamasını çıkaran en küçük Turing makinesinin boyutuna bağlı bir alt sınırdır. :)
Radu GRIGore,

@Radu GRIGore, bu kabul edilmiş bir ölçüm mü yoksa geliştirilmesi gereken bir metrik mi? Diyelim ki (şimdilik) 'meh, buna değmez' diye tanımlayan basit, taşınmaz bir satır var ...: D
Ritwik Bose

4
Coppersmith-Winograd'ın uygulamak için makul olduğu önerisiyle ilgileniyorum. Daha önce hiç kimse sahte kodda bile yazılmış bir uygulama gördü mü ve hiç kimse sabiti tahmin etti mi?
Raphael

Yanıtlar:


33

Chazelle basit bir çokgenin üçgenleştirilmesi için doğrusal bir zaman algoritması verdi . Skiena (s.575, Algoritma Tasarım El Kitabı) “daha ​​çok bir varoluş kanıtı olarak nitelendirmesini uygulamak için yeterince umutsuz” olduğunu yazdı.


3
Algoritmanın makul sabitleri var mı?
jbapple

Sorun için bilinen tek doğrusal zaman algoritması bu mu?
Thomas Ahle

2
@ThomasAhle Bunun sadece bilinen deterministik lineer zaman algoritması olduğuna inanıyorum. Amato, Goodrich ve Ramos, daha basit bir randomize olana sahiptir
Sasho Nikolov

Chazelle'in lineer zaman basit poligon üçgenleme algoritması, benim bildiğim kadarıyla, hiç bir zaman uygulanmadı ve muhtemelen hiçbir zaman karmaşıklığı nedeniyle ve ayrıca sabitler yüksek olduğu için pratikte alternatiflerle rekabet edemeyeceği için asla olmayacak. Yine de ana teorik başarı. Ralph Boland
Ralph Boland

Tekrar soracağım: Algoritmanın makul sabitleri var mı?
user1271772

29

Risch algoritması temel antiderivatives hesaplanması için. Wikipedia'ya göre, karmaşıklığı nedeniyle tüm algoritmayı uygulayan hiçbir yazılım paketi bilinmiyor.


3
Vikipedi ayrıca bunun bir algoritma değil yarı algoritma olduğuna da dikkat çekiyor, çünkü sürekli problemi çözmek için sezgisel tarama gerektiriyor.
15

Sezgisel tarama nedir? Daha fazla okumak için link verebilir misin?
zygimantus

22

Robertson-Seymour'u kullanan herhangi bir algoritma, sabit bir küçük olanı hariç tutan grafikler içeren şeyler için "polytime" algoritması çıkarmaktadır. Sonuçlarında gizli sabit "galaktik" dir.


3
Bunu uygulamak zor mu yoksa büyük bir sabiti var mı?
Lev Reyzin

5
Evet, bu iyi bir örnek gibi görünmüyor. Doğru anlarsam, soru pratik olabilecek (dolayısıyla muhtemelen 'küçük' sabitler) olan algoritmalar ile ilgilidir, ancak uygulanması çok karmaşıktır. Tabii ki, tüm soru farklı yorumlara açıktır :-)
Aryabhata

5
Sorun şu ki, sabit olan, belirli bir mülk için dışlanması gereken küçüklerin listesinden geliyor. Belirli bir mülk için dışlanan küçüklerin istenen listesini oluşturmanın hiçbir yolunu bilmiyorum, bu yalnızca bir ölçek sorunu değil.
Suresh Venkat

2
Örneğin, torus'a gömülebilen grafikler için dışlanmış küçüklerin listesini bile bilmiyoruz.
Derrick Stolee

17
Hayır vardır: Burada sorun daha derin görünüyor etkili küçüklerin listesini oluşturmak için bilinen bir yol, bu nedenle bu aslında hiç bir algoritma ortaya koymamıştır. Küçük-kapalı özelliklerin çoğu, eğer mantıksal ifadeyi doğrudan çevirirse, sınırlandırılmamış küçüklerin sonsuz bir listesini verir. Robertson-Seymour Teoremi (Wagner'in Konjürasyonu) bize sınırlı bir dışlanmış küçükler listesinin bu sonsuz listenin içinde gizlendiğini söyler, ancak teorem aslında onları bulmada kesinlikle hiçbir yardımda bulunmaz. Bu nedenle Robertson-Seymour, genellikle saf bir varlık kanıtına yol açar.
András Salamon

16

Dan Willard'ın "iyi kötü durum zaman içinde ardışık olarak sıralı dosya girmeler ve silmeler yapmak için bir yoğunluk kontrol algoritması" , bir boyutu bir dizideki sıralı dizi muhafaza edilmesi için bir algoritma tarif içinde yerleştirilmesi ve silme ile en kötü durumda, burada sayfa büyüklüğüdür.0 ( log 2 nO(n)BO(log2nB)B

Makale 55 sayfa uzunluğundadır ve sonucu, yazarın mekanın nedenleriyle açıklamadığı sabitlerinde bazı gelişmeler olduğunu belirtmektedir. Bu, belki de sabitlerin o kadar galak olmadığından ve bu veri yapısının, özellikle defalarca atıldığından beri "meşru fayda" olacağından şüphelenmemi sağlıyor.


12

Qian'ın lineer zaman yüksek dereceli model birleştirme algoritması, karmaşıklığı AFAIK nedeniyle hiçbir zaman uygulanmadı.


Neyse ki hala bunun için pratik algoritmalar var. Otomatik muhakeme el kitabı, polytime (Qian'ın algoritmasını gösterdiği yerin hemen yanında) yapılabileceğini söylüyor, bu yüzden bu harika.
Jake,

11

Grafiğin sabit bir yüzeye gömülü olup olmadığını kontrol etmek için doğrusal zaman algoritması.

Ken-ichi Kawarabayashi, Bojan Mohar, Bruce A. Reed: Grafikleri Keyfi Bir Yüzeye Yerleştirmeye Yönelik Daha Basit Bir Doğrusal Zaman Algoritması ve Sınırlı Ağaç Genişliği Grafikleri. FOCS 2008: 771-780.

Bojan Mohar: Grafikleri İsteğe Bağlı Bir Yüzeye Gömme İçin Doğrusal Bir Zaman Algoritması. SIAM J. Ayrık Matematik. 12 (1): 6-26 (1999)


1
Bu, cinse olan büyük üstel (sic) bağımlılık nedeniyle, uygulanmış olsa bile pratik bir değere sahip değildir.
Jeffε

8

Uygulamada ne kadar faydalı olabileceğinden emin değilim (protein katlanması ve karşılaştırılması ve RNA sekonder yapı tahmini hakkında düşünmekle birlikte), ancak Wolfgang Haken, bir düğümü olup olmadığına karar vermek için ilk polinom-zaman algoritmasını verdi. basit döngü ( Theorie der Normalflächen. Acta Math. 105, 1961, ss. 245-375). Hatırladığım kadarıyla, on yıllar sonra uygulanmayacak kadar karmaşık.

Vikipedi inanılacaksa, daha sonra birkaç algoritma daha verildi ve "Bu algoritmaların karmaşıklığını anlamak aktif bir çalışma alanıdır".


4
Haken ilk algoritmayı verdi, ancak polinom zamanında çalışmaz; Aslında, çoklu zaman algoritması (veya NP sertliği sonucu) bilinmemektedir. Daha yeni çalışmalar, pratikte çözülmesi kolay olan tamsayılı programlamaya düğüm önemsizliğini (Haken'in normal yüzey formülasyonu aracılığıyla) azaltmıştır.
Jeffε

3

Ağaç parçalanması ve belki de Fibonacci yığınları .


14
Fibonacci yığınları kesinlikle uygulanamayacak kadar karmaşık değildir; uygulandılar ve test edildiler. Onlarla ilgili problem, pratik performanslarının, çalışma sürelerinde sabit faktörler nedeniyle, diğer bazı yığınlar kadar iyi olmamasıdır.
David Eppstein

1
Ağaç ayrışmasını bulmak için bir paket yazdım ve uygulamanın zor olduğunu sanmıyorum yaroslavvb.blogspot.com/2011/01/building-junction-trees.html
Yaroslav Bulatov

2
Kodum sadece sezgisel bir ağaç ayrıştırma, dal ve sınır ve dinamik programlama yaklaşımları gibi uygun değil ... Sanırım Bodlaender'ın "Doğrusal Zaman Algoritması ..." anlamına mı geliyorsunuz? Bunun hiçbir uygulamasını görmedim
Yaroslav Bulatov

4
2O(k3)O(n)

3
Bence bu en iyi uygulama çabası: hein.roehrig.name/dipl
Diego de Estrada

1

Mükemmel karma yapı ( https://en.wikipedia.org/wiki/Perfect_hash_function#Construction ), statik veya seyrek değişen anahtarlara sahip herhangi bir kullanım durumu için geçerlidir (örn. Yönlendiricilerdeki üst düzey alan adları, derleyicilerdeki anahtar kelimeler veya işlev adları) standart kütüphanelerde) ama son baktığımda hiçbir uygulama bulamadım.

Parametrik arama, polinom zamanında NP-zor olması gerektiği gibi görünebilecek bazıları da dahil olmak üzere birçok zor optimizasyon problemini çözebilir. İyi adlandırılmış kağıt pratik yapılan Parametrik arama parametrik arama bir varyantını uygular ama hala pratik yazılımda uygulamaya konmuştur sanmıyorum.

knO(nlogn+k)O((n+k)logn)


1
FKS inşaatının uygulanamayacak kadar karmaşık olduğuna inanmayı reddediyorum. Aslında oldukça basit. Belki pratik değil, ama kesinlikle uygulanacak kadar karmaşık değil.
Sasho Nikolov
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.