Süper Sicimi Tam Olarak Çözme


18

En kısa süper sicim sorununun karmaşıklığı hakkında bilinenler nelerdir? daha hızlı çözülebilir O(2n)mi? TSP'ye indirgenmeden en kısa süper sicimi çözen bilinen algoritmalar var mı?

UPD: polinom faktörlerini bastırır.O()

En kısa superstring problemi, cevabı belirli bir dizeden her dizeyi içeren en kısa dize olan bir sorundur. Soru, ünlü NP-hard problemi Shortest Superstring'in optimizasyonunun genişletilmesiyle ilgilidir (Garey ve Johnson, s.228).


5
"Süper sicim problemi" nedir?
Jeffε

En Kısa Superstring Sorunu demek istedim, düzelttim. Teşekkür ederim!
Alex Golovnev

10
Tamam o zaman, "en kısa batıl inanç sorunu" nedir? Bu adı hak eden birkaç problem düşünebilirim ve birkaç problem daha "en kısa üstünlük problemi" olarak adlandırılmalıdır, ancak muhtemelen pratikte yoktur. Bize biraz bağlam verin, lütfen!
Jeffε

1
Sorun alanın nedir? Örneğin, genom fragmantasyonunda en kısa süper dizeyi arıyorsanız, genom fragmantasyonu sınırlı ağaç genişliği grafikleri oluşturduğundan, hızlı algoritmaya sahip olabilirsiniz, ancak sadece mevcut algoritmalardan daha hızlı ilgileniyorsanız, daha hızlı bir algoritmaya sahip olmanız dışında cevabınız hayırdır. TSP'de (basit azaltma nedeniyle), Ayrıca lokal olarak sınırlanmış ağaç genişliği grafiklerinde algoritma. O(2n)
Saeed

1
@AlexGolovnev, Evet haklısın, bu ATSP, ama sınırlı treewidth için bence cs.bme.hu/~dmarx/papers/marx-warsaw-fpt2 ya da daha fazla bilmek istiyorsanız algoritmik
Saeed

Yanıtlar:


5

Dizelerin cinsinden uzunluk polinomu olduğunu varsayarsak, evet, en az 2 n - Ω ( nzaman çözümü. Bunun nedeni, en kısa ortak süper sicim probleminden polinom boyutlu tamsayı ağırlıkları ile ATSP'ye iyi bilinen bir azalmadır; bu da, yönlendirilmiş bir çok satırda Hamilton döngülerini sayabiliyorsanız polinom enterpolasyonu ile çözebilirsiniz. İkinci problem2n-Ω(2nΩ(n/logn)zaman çözümü. Björklund 20122nΩ(n/logn)

Ağırlıkları ile ATSP redüksiyon köşelerin her çifti için u , v , aşağıdaki gibi Hamilton döngü sayımı gider:wuvu,v

İçin , ağırlık toplamı , bir üst her toplamları bağlanmış olan n ATSP örneği ağırlıkları, yapı bir grafiktir G r , her bir ağırlık yerine ağırlık u v ile r w u v arasından arkları u için v .r=1,2,,wsumwsumnGrwuvrwuvuv

Her biri için Hamilton döngü sayımı çözerek , polinom interpolasyon ile bir polinom gerçekleştirebilmesi Σ ağırlık toplamı l = 0 , bir l r l ile bir l ağırlığı orijinal grafikte TSP turlar sayısına eşit l . Bu nedenle, en küçük l'i , bir l sıfırdan farklı olacak şekilde bulmak sorunu çözer.Grl=0wsumalrlalllal


Çok teşekkürler! Hamilton döngüsü sayımıyla bu bağlantıyı bilmiyordum.
Alex Golovnev

@AlexGolovnev: Ama azalma, örneğin kendi cevabınızda bahsettiğiniz Kohn, Gottlieb, Kohn sonuçlarındakiyle aynı mı, yoksa daha mı az? Tamsayılar üzerinde minimum toplamın basit bir şekilde gömülmesidir. Her neyse, makalemin bir sonraki versiyonunun bunu açıkça belirtmesi gerektiğini fark ettiğiniz için teşekkür ederim.
Andreas Björklund

8

Sorunu inceledim ve bazı sonuçlar buldum. En kısa ortak Superstring (SCS) zaman içinde çözülebilir sadece polinom boşluk ile ( Kohn, Gottlieb, Kohn , Karp , Bax, Franklin ).2n

En iyi bilinen yaklaşım (Paluch).21130

En iyi bilinen sıkıştırma yaklaşımı (Paluch).34

SCS , ikili alfabe üzerinde bir faktör ile yaklaşıklanabilirse, herhangi bir alfabe ( Vassilevska-Williams ) üzerinde bir faktör α ile yaklaşık olarak tahmin edilebilir .αα

P = NP ( Karpinski, Schmied ) olmadığı sürece SCS, daha iyi bir oran ile yaklaşık olarak tahmin edilemez .1.0029

Maksimal Sıkıştırma, daha iyi bir oranla yaklaşılamaz P = NP (Karpinski, Schmied)olmadığı sürece 1.0048'den edilemez .1.0048

Herhangi bir ekleme ve öneri için minnettar olurum.


5

İşte kısa süperdizgi problem: Size verilen dizeleri s 1 , ... , s , n bazı alfabe üzerinde Σ baştan kısa dize bulmak istiyorum ve Σ her içeriyor s ins1,,snΣΣsi yani bir alt dize ardışık karakterlerin bir alt diziyle olarak.

Sorunun kesin algoritmaları hakkında konuştuğumuzda , en kısa süper sicimin uzunluğunu bulmak , nihai sicimdeki tüm ardışık dize çakışmaları toplamı olan maksimum sıkıştırma C'yi bulmaya eşdeğerdir , yani C = i | s i | - L .LCC=i|si|L

Bildiğim kadarıyla, en kısa süper sicim için en hızlı tam algoritma ( 2 n ) 'de çalışır, burada n dizelerin sayısıdır. Bu, en uzun yol (ve diğer sorunlar) için dinamik programlama algoritmasına benzer basit bir dinamik programlama algoritmasıdır:O2nn

Her dizeleri alt kümesi için ve dize v içinde S biz her yerinden süpersicimlerin üzerinde maksimum sıkıştırma hesaplamak S nerede v ilk dize ((, süperdizgi görünen C olarak saklamak olduğunu v , s )). Biz ilk tek elemanlı tüm alt kümelerini işleme ve sonra C kadar bina gerçekleştirirsiniz (( v , s )) alt kümeleri için değerler S üzerinde k üzerinde olanlardan dizeleri k - 1 dizeleri. özellikle:SvSSvv,Sv,SSkk1

Her dize için hepimizin alt kümeleri bakmak S ' ile ilgili k - 1 do not dahil dizeleri u ve (değerini ayarlamak u , uS ' dizeleri üzerinde maksimum) v içinde S ' maksimum toplamının u'nun v ile C ile örtüşmesi (( v , S )).uSk1uu,uSvSuvv,S

Son çalışma zamanı O'dan ( ) fazla değildir, burada l maksimum dize uzunluğudur.n22n+n2ll

nin küçük olduğunu veya çift üst üste binmelerin küçük olduğunu, alfabe boyutunun küçük olduğunu varsayarsanız daha iyi algoritmalar vardır , ancak 2 n'den daha hızlı olan herhangi bir algoritmanın farkında değilim .l2n


5
OP algoritmasını biliyor , daha hızlı çözüm istedi. O(2n)
Saeed

2
Dediğim gibi, daha hızlı bir çözümün bilindiğine inanmıyorum.
virgi

1
O(2n)
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.