“En Kötü Durum” Dışındaki Durumlar İçin Karmaşıklık Sınıfları


10

Ortalama vaka karmaşıklığı açısından karmaşıklık sınıflarımız var mı? Örneğin, karar vermesi beklenen polinom zamanını alan sorunlar için (adlandırılmış) bir karmaşıklık sınıfı var mı?

Başka bir soru , aşağıda örneklendirilen en iyi vaka karmaşıklığını göz önünde bulundurur :

Kararı en az üstel zaman gerektiren bir sınıf (doğal) problem var mı?

Açıklığa kavuşturmak için bazı EXP-tamamlanmış dil düşünün L. Açıkçası, tüm örnekleri Lüstel zaman gerektirmez: Polinom zamanında bile karar verilebilecek örnekler vardır. Bu nedenle, L' nin en iyi vaka karmaşıklığı üstel zaman değildir.L

DÜZENLEME: Birkaç belirsizlik ortaya çıktığından, onu daha da açıklığa kavuşturmak istiyorum. "En iyi durum" karmaşıklığı ile, sorunlarının karmaşıklığı bazı işlevlerle daha düşük sınırlara sahip olan bir karmaşıklık sınıfını kastediyorum . Örneğin, BestE'yi zaman içinde bazı doğrusal üstel değerlerden daha azına karar verilemeyen dil sınıfı olarak tanımlayın . Sembolik olarak, keyfi bir Turing makinesini göstermesine izin verin ve c , n 0 ve n doğal sayılar olsun:Mcn0n

LBestE (c)(M)[(L(M)=L)(n0)(n>n0)(x{0,1}n)[T(M(x))2c|x|]]

burada daha önce bu alır kez belirtmektedir M girişi duraklamalara x .T(M(x))Mx

Bu tür problemleri tanımlamanın çok garip olduğunu kabul ediyorum, çünkü her Turing makinesi gücü ne olursa olsun, zaman içinde dile bazı doğrusal üstellerden daha az karar verememesini istiyoruz.M

Yine polinom zamanlı muadili (yani ihbar BestP her Turing makinası süresi gerektirir beri), doğaldır en azından girdisini okumak için.|x|

PS: Belki, "tüm Turing makinesi için" olarak nicelendirmek yerine, polinom zamanlı Turing makineleri gibi önceden belirlenmiş Turing makineleri sınıfıyla sınırlamamız gerekir. Bu şekilde, polinom-zamanlı Turing makinelerinde kararlaştırılması gereken en azından ikinci dereceden zaman gerektiren dil sınıfı olan B e s t ( n 2 ) gibi sınıfları tanımlayabiliriz .MBest(n2)

PS2: Bir dil kararlaştırmak için en az devre boyutunu / derinliğini düşündüğümüz devre karmaşıklığı karşılığı da düşünülebilir.


Kolay SAT örnekleri olması, beklenen sürenin polinom olduğu anlamına gelmez. Sorunuzu anladığımdan emin değilim ..
Lev Reyzin

@Lev Reyzin: SAT'ın beklenen poli zamanda olduğu anlamına gelmiyordum. Demek istediğim, SAT'ın kolay örnekleri olduğundan, "en iyi durum" karmaşıklığının zor olduğunu söyleyemeyiz.
MS Dousti

Görüyorum ki, ortalama vaka karmaşıklığı ve en iyi vaka karmaşıklığı iki ayrı sorudur! Bir şekilde ilk okumamda bunu kaçırdım - hatam.
Lev Reyzin

BestE tanımınızı tam olarak ayrıştıramıyorum. M ve x, niceliklerinin dışında oturuyorlar ... ayrıca, L' de olmayan girdileri reddetmesini istemiyor musunuz? ML
Ryan Williams

@Ryan: Kusurları işaret ettiğiniz için teşekkürler. Ben düzelttim.
MS Dousti

Yanıtlar:


13

Tanımlarınızı tam olarak çözümleyemesem de, çok daha güçlü zaman hiyerarşilerinin, özellikle de "hemen hemen her yerde" zaman hiyerarşilerinin bilindiğini bilmelisiniz.

İşte resmi ifadedir: bağlı her zaman için , bir dil yoktur L T ı M E [ T ( n ) ] doğru her deterministik algoritma tanır o mülkle L sürede daha asimptotik büyük çalıştırmalısınız t ( n ) yeteri kadar küçük bir zaman için neredeyse sonlu sayıda girdilere, t ( n ) . T(n)LTIME[T(n)]Lt(n)t(n)

"Yeterince küçük" .t(n)logt(n)o(T(n))

Bir örnek için seçtiğimizi ve sert bir dil L elde ettiğimizi varsayalım . Daha sonra, L'yi doğru tanıyan herhangi bir algoritma, belirli bir uzunluğu geçen tüm girişlerde en az 2 n / n 2 zaman almalıdır . Sınıf BestE'de aradığınız şey bu gibi görünüyor.T(n)=2nLL2n/n2

Referans:

John G. Geske, Dung T. Huynh, Joel I. Seiferas: Neredeyse Her Yerde Karmaşık Kümeler ve Ayırıcı Deterministik-Zaman-Karmaşıklık Sınıfları Üzerine Bir Not Inf. Comput. 92 (1): 97-104 (1991)


Çok iyi teşekkürler. Sanırım sorumu çok iyi anladınız ve "
Cümlenizin

2
Doğru tahmin edersem, tanımınız şöyle olmalıdır: "BestE \ iff'de L \ (\ exist c) (\ forall M) [(L (M) = L) \ Rightarrow (\ exist n_0) (\ forall n > n_0) (\ {0,1 \} ^ n içinde \ forall x \ [T (M (x))> 2 ^ {c | x |})]. "
Ryan Williams

Evet, haklısın. Tanımı son dakikada düzenledim ve nicelleştiricilerin bazılarını yanlış yerleştirdim. Sorunu tanımınıza göre düzelttim.
MS Dousti

12

Ortalama-durum karmaşıklığının çeşitli kavramlarını ele almaya çalışan birkaç sınıf vardır. Karmaşık Hayvanat Bahçesi'nde ilginizi çekebilecek bazı sınıflar şunlardır:

AvgP

HeurP

DistNP

(NP, P-samplable)

Arora / Barak distP, distNP ve sampNP'yi tanımlayan birçok benzer sınıfı (Bölüm 18'de) kapsar.

Tüm bu sınıflar arasındaki kesin ilişki, daha önce başka bir soruda sorulan Impagliazzo'nun Beş Dünyası ile karakterizedir .

"En iyi durum" karmaşıklık sorusuna gelince, ne demek istediğinizi anladığımdan emin değilim. EXP mi arıyorsunuz ?

Tüm örneklerde en iyi vaka çalışma süresi olarak tanımlanan karmaşıklık sınıflarını kastediyorsanız, bu, çok iyi bir karmaşıklık ölçüsü değildir, çünkü sadece verilen herhangi bir sorunun önemsiz durumlarına bakarsınız.


Çok iyi yapılmış! Sorunun ortalama-durum karmaşıklığı kısmı için buna ihtiyacım vardı. "En iyi durum" kısmı ile ilgili olarak, sorunun orijinal ifadesinin belirsiz olduğunu fark ettim. Benim hatam! Çok düzenledim, bu yüzden lütfen tekrar okumayı düşünün.
MS Dousti

5

[Ryan Williams'ın cevabını genişletmek ve sizin için bazı arama terimleri eklemek] En iyi vaka karmaşıklığı kavramınızın zaten bir adı var: neredeyse her yerde (ae) sertlik veya iki bağışıklık. (Ryan'ın örneği -bi-bağışıklıktır). Eğer C bir karmaşıklık sınıfıdır, sonra bir dil L olan C hiçbir sonsuz alt küme varsa bağışık L 'L öyle ki L 'C . Hem L hem de tamamlayıcısı ¯ L ise L , C -bi-bağışıklıktırTIME[T(n)]CLCLLLCLCL olan bağışık. Örneğin, B e s t E tanımınızın E -bi-bağışıklık kümelerisınıfına eşdeğerolduğunu göstermek zor değildir.L¯=ΣLCBestEE

(Tarihsel bir yana: bağışıklık kavramı ilk olarak 1944'te hesaplanabilirlik teorisinde, P bile tanımlanmadan çok önce geliştirildi. Post aslında "basit kümeler" olarak kabul edildi - bir küme, tamamlayıcısı bağışıksa basittir. "bağışıklık" kelimesi tipik olarak "hesaplanabilir kümelere bağışıklık" anlamına gelir. Bu ortamda bağışıklık "ce kümelerine bağışıklık" ile eşdeğerdir, çünkü her sonsuz ce kümesi sonsuz bir hesaplanabilir içerir. Bire bir indirim kavramı, ama buna yemin edemedim.)


MLLM(x)=1

LLC

1
@Sadeq: düzeltildi, teşekkürler. @Ryan: Doğru (ya da birkaç saat önceydi: o zamandan beri tanımı güncelledi). O zaman bi-bağışıklık yerine bağışıklık olurdu. Her iki durumda da, esas olarak "dokunulmazlık" anahtar kelimesine işaret etmek istedim.
Joshua Grochow

2

Farklı durumlar algoritmalardan bahsederken daha mantıklıdır, problemlerden değil. Öte yandan, karmaşıklık sınıfları algoritmalarla değil problemlerle ilgilidir. Bu nedenle, karmaşıklık sınıfı her zaman herhangi bir algoritma için en kötü durumdur.

Karmaşık olarak, amacınız belirli bir sorunun herhangi bir örneğini çözmek için gereken kaynak sayısını bilmektir. Bu nedenle, herhangi bir örnek ve algoritma için bu kaynaklara ihtiyacınız olacağını ve daha fazlasına ihtiyacınız olmadığını biliyorsunuz.

Algoritma analizinde amacınız, algoritmanın sorunun herhangi bir örneğinde bir kaynak için üst sınırı olmasını sağlamaktır. Önemsiz bir sınır, sorunun karmaşıklık sınıfıdır, çünkü hiçbir yararlı (gereksiz adımlar yapan algoritma) algoritması bundan daha fazla zaman almaz. Ancak, algoritmanın özellikleri göz önüne alındığında bu sınırı geliştirebilirsiniz.

Örneğin, diyelim ki birleştirme analizini yapıyorsunuz. Çözüm verildiğinde, polinom zamanında teyit edebilirsiniz, bu nedenle SIRALAMA NP'dedir. Ancak, analiz ederek bunu düşürebilirsiniz.Θ

En iyi duruma gelince, her sorunun ihtiyaç duyduğu en az sayıda kaynağı bulması önemsizdir. Girişin O (n) uzunluğunda ve O (m) uzunluğunda çıktı olduğunu varsayalım. Ardından aşağıdaki TM M her zaman en iyi durum için O (n) + O (m) 'de çalışır:

E {Giriş, Örnek, çözelti}

  1. Verilen örneği makinede kodlanan örnekle karşılaştırın.
  2. Eşitlerse, kodlanmış çözümü döndürün.
  3. Yoksa kaba kuvvetli bir arama yapın.

-1

O(1)


1
Bunun sorun için doğru bir algoritma olduğunu düşünmüyorum. Bununla birlikte, algoritmanız ilk önce girdinin önceden belirlediğiniz belirli örneğe (O (1) zamanında) eşit olup olmadığını kontrol edecek şekilde değiştirilebilir. Eğer öyleyse, önceden hesaplanmış cevabı verir. Değilse, verilen örneği herhangi bir yolla çözersiniz. Bu konuda, Düşünme herhangi için O doğru algoritma çalışır (1) zaman her farklı örnekleri için O-gösterimde arkasında farklı sabitleri alabilir eğer, örneğin. Bu yüzden gerçek anlamda “en iyi durum karmaşıklığı” yararlı değildir.
Tsuyoshi Ito

Deterministik, olasılık dışı hesaplamadan bahsediyorsanız, iki örnek kodlamasının eşdeğer olup olmadığını kontrol etmek doğrusal zaman (O (n) zaman) alacaktır: giriş kodlamasının n bitini tarayın ve aynı olduğunu doğrulayın programlanmış kodlama olarak, değil mi?
Daniel Apon

2
@Daniel: Evet, ancak örneklerden biri sabitse, sabit sürenin sabit örneğin uzunluğuna bağlı olduğu yalnızca sabit zaman alır.
Tsuyoshi Ito
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.