Tüm çözümleri listelemeye ilişkin karmaşıklık sınıfları?


15

Stack Overflow'da, belirli bir düğümü içeren bir grafikteki tüm basit döngüleri listelemenin NP- sert olup olmadığını soran bir soru okuyordum ve bana uygun olan herhangi bir karmaşıklık sınıfını düşünemedim. formdaki sorunlar hakkında konuşmak "bu soruna tüm çözümleri listele." NP sınıfı bir anlamda en az bir çözümün olup olmadığını soran problemlerden oluşur, FNP sınıfı tek bir çözüm üretmeyi ister ve #P sınıfı kaç çözüm olduğunu saymayı ister, ancak bunların hiçbiri karmaşıklık ile ilgilenmez olası tüm çözümleri kapsamlı bir şekilde numaralandırma.

Bir polinom zamanlı hesaplanabilir yüklem verilen biçim" büyük olan sorunların tarif etmek için bir karmaşıklık sınıfı var ve bir dizi , numaralandırmak olan bir uç doğru konusu [olduğu uygun karmaşıklık kısıtlamaları]? " Çözülemez görünmese de, çözüm sayısının giriş boyutundan katlanarak daha büyük olabileceği göz önüne alındığında, kısıtlamaları tespit etmenin zor olabileceğini anlıyorum .x y P ( x , y ) xP(x,y)xyP(x,y)x


İlginç. Belki pratikte, ilgili sorunların çok fazla örneğinde, genellikle üstel sayıda çözüm bulunur. SAT ve CLIQUE örneklerinin genel olarak geniş bir çözüm alanı vardır.
chi

3
İşte bunu resmileştirmek için başka bir ansatz. Bir sorun, ise X, E bir X-algoritma var ise (X = numaralandırılabilir için) bir böylece ile bir ( x , i ) döndürür i inci çözeltisi (yani, I inci y ile P ( x , y ) ) wrt bazı sipariş. Bunun bazen RE'yi nasıl tanımladığına benzer olduğuna dikkat edin. Bu, çözelti boşluğunun boyutunu aşar ve bir sonraki çözümü bulmanın ne kadar zor olduğuna odaklanır. Toplam maliyet elbette toplamla elde edilebilir. PXEAA(x,i)iIyP(x,y)
Raphael

3
(Ben bir olarak tanımlanan görmedim sınıfta ama size kavramının farkında olan polinom gecikme ile numaralandırma ?)

@Raphael Aradığımız şey bu olmayabilir. En iyi algoritma Örneğin, tüm çözümlere tekrarlatacak sahiptir bulduğu kadar i zaman içinde onları ve ishal İçeride ISTV melerin RWMAIWi'nin ( f ( | x | ) ) , o zaman aradığınız karmaşıklığı olduğunu Θ ( f ( | x | ) ) , ancak toplam Θ ( f ( | x | ) 2 ) karmaşıklığını gösterir . A(x,i)benΘ(f(|x|))Θ(f(|x|))Θ(f(|x|)2)
Lieuwe Vinkhuijzen

@RickyDemer Sleavesimden titriyordum, değil mi? Yerleşik bir formalizasyon olduğunu bilmek güzel.
Raphael

Yanıtlar:


10

Aradığınız konsepte , bir soruna (veya bir dilin / setin üyelerine) yönelik tüm çözümleri numaralandırmanın (listelemenin) hesaplama karmaşıklığının araştırılması olan numaralandırma karmaşıklığı denir . Numaralandırma algoritmaları iki aşamalı bir süreç olarak modellenebilir: bir ön hesaplama adımı ve gecikmeli bir numaralandırma aşaması . Bu adımların her ikisinin de kendi zaman ve mekan karmaşıklıkları vardır (belki de entropi de). Genel karmaşıklık ruhunda, bunlar arasında genellikle dikkate alınması gereken ödünleşmeler vardır.

Ön hesaplama adımı , ilk çözüm numaralandırılmadan önce gerekli bazı işleri yapar. Bu, çözümün kendisini bulmayı veya her çözüm arasındaki toplam gecikmeyi azaltacak bazı büyük veri yapısının başlatılmasını içerebilir.

Gecikme rasgele numaralandırılmış çözümler arasında gerekli hesaplama ile ilişkili kaynak maliyetidir. Başka bir deyişle, gecikme, i t h'den sonra çözeltisinin üretilmesi için gereken alan ve sürenin bir ölçüsüdür . Her numaralandırma için O ( 1 ) zaman alan çözümlerin sürekli gecikmesi olduğu söylenir. O ( p o l y ( n ) ) süresi gereksiniminin polinom gecikmesi olduğu söylenir.i+1thithO(1)O(poly(n))

Eğer özel olarak Soruda belirtilen numaralandırma sorunu için, sınıfa bakmak gerekir (altta Bağlantılı) Johannes Schmidt tarafından: "Algoritmalar ve Karmaşıklık Sayım" bölümünde 2.1'de ve ilgili kardeşler.ENUMNP


Ön hesaplama zamanı ve gecikmesini neden önemsiyoruz?

Gecikme, sayım problemlerinin gerçek karmaşıklıklarını anlamak için çok önemlidir. Elemanlarını numaralandırma (boyutuna kadar n ) ve { x : cp ( x ) } burada φ ( x ) bir Boole formül (örneğin SAT) her iki üstel zaman olduğu. Ancak, Σ ∗ ile numaralandırmaΣn{x:ϕ(x)}ϕ(x)Σsadece belirli bir gecikme gerektirir, çünkü öğeleri bir sırayla geçebilirsiniz. Tüm bildiğimiz için, bir 3SAT örneğine çözümlerin numaralandırılmasının gecikmesi üssel olabilir. Karmaşıklık teorisyenleri olarak görevimiz, ikinci sorunun neden bir öncekinden daha zor (daha karmaşık) olduğunu yakalamaktır. Gecikme, bu farkı ortaya koymada oldukça iyi bir iş çıkarır.

Aynı şekilde, ne kadar ön hesaplama yapıldığını da bilmemiz gerekir. Tüm çözümleri önceden hesaplayıp daha sonra numaralandırılacak bir listede saklayarak, herhangi bir numaralandırma sorununun zaman ve mekana olan gecikmesini azaltabiliriz. Zor olan, iki kaynak arasındaki en iyi dengeyi bulmaktır.

Öğeleri numaralandırma sırası karmaşıklığı da etkileyebilir. Sonuçların belirli bir sıralama düzeninde döndürülmesini istemek, her iki adımda da ek hesaplama yapmamızı gerektirebilir. Her hangi bir düzenin yeterli olduğu durumlar da (her numaralandırılmış eleman benzersiz olduğu sürece) kesinlikle incelenir.

Bildiğim kadarıyla, bu sınıfların tipik olarak özlü etiketleri yoktur ( ve N P'ye benzer ). Numaralandırma karmaşıklığı sınıfları yaklaşık 3 veya daha fazla kaynağa (ön hesaplama / toplam süre, boşluk, gecikme ve entropi) dönüştüğü için bunu yapmayı beklemiyoruz. Özel adları dağıtmak için çok fazla kaynak sınırı kombinasyonu vardır. Bu, bu sınıfları daha az ilginç kılmaz ve aynı zamanda araştırmacıların yine de denemelerini engellemez.PNP


kaynaklar

Bu anket (gerçekten resmileştirme girişimi) başlamanıza yardımcı olacaktır. Aynı zamanda bazı temel hiyerarşi teoremlerini kanıtlar.

Sayım: Algoritmalar ve Karmaşıklık (Johannes Schmidt, 2009)

https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf

Numaralandırma karmaşıklığında sonuçların numaralandırılması için, Kunihiro Wasa tarafından küratörlüğünde bu derlemeye göz atın. Sorun türüne göre kategorize edildiğinden, grafik döngülerini numaralandırmaya adanmış bir dizi kağıdı kolayca bulabilirsiniz. Yalnızca belirli bir düğüme sahip döngüleri dikkate almak için ilgili algoritmaları değiştirmek basit olmalıdır.

http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html


ΣnO(1)O(1)

1
@j_random_hacker Sorunuzun gerçek cevabı "duruma bağlı" olmasına rağmen, düşüncenizin yanlış olduğunu düşünmüyorum. Bu makalelerin yazarları genellikle hangi hesaplama modelini (normal teyp TM - RAM - Word RAM) kullandıklarını belirtir. Bu seçim, neyin sabit zamanlı çalışma olarak kabul edilebileceğini ve nelerin yapılamayacağını (bir sayıyı artırmak veya çıktı üretmek gibi) değiştirecektir. Genişletilmiş Kilise Turu tezi nedeniyle gecikmeniz polinom haline gelir gelmez bu farkın ortadan kalktığı varsayılmaktadır.
mdxn
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.