L dilinin NP'de olup olmadığı belirlenebilir mi?


15

Bir Turing Machine tarafından tanımlanmış bir dil L verildiğinde, L'nin NP'de olup olmadığını algoritmik olarak belirlemek mümkün müdür?


Karmaşıklık teorisine yeniden etiketlendi. Bunun NP Tamamlama ile ne ilgisi olduğundan emin değilim.
Aryabhata

1
FWIW, teklif sitesindeki oylara rağmen, bu sorunun tam olarak faktoring konusundaki sorudan daha kapsamlı olduğunu düşünüyorum çünkü faktoring hakkındaki soru çoğu intro karmaşıklık dersinde ele alınacak, ancak bu bile birçok lisansüstü düzeyde ele alınmıyor karmaşıklık kursları.
Joshua Grochow

1
Bu, Rice teoreminin tipik bir uygulaması olarak hesaplanabilirlik üzerine giriş derslerinde yer almıyor mu?
Moritz

3
Moritz - Bu soruya verilen evet / hayır cevabı Rice Teoremi tarafından kapsanmasına rağmen, daha ilginç sonuçlar için aşağıdaki cevabımı inceleyin. Belki, txwikinger, soruyu "{i: L (M_i) NP'de olan setin karmaşıklığı nedir?") Olarak değiştirmelisiniz?
Joshua Grochow

Burada Joshua'nın cevabını ikinci vereceğim. Dil bir Turing Machine tarafından belirtildiğinde cevap açık olabilir, ancak dilin bazı keyfi formatlarda belirtilmesine izin verirsek cevap aynıdır (ve belki de çok açık değildir).
Anand Kulkarni

Yanıtlar:


24

Hayır. Birincisi, Rice'ın Teoremi ile bu, yalnızca hesapladıkları dile bağlı olan TM'lerin bir özelliğidir, bu yüzden hesaplanamaz.

Ama, daha da fazlası, bu bilinmektedir ki dizin kümesi (bu da, hesaplama dilleri o TM'lerin kümesi N P ) 'dir Σ 0 3 -tamamlamak ( Σ 0 3 içinde aritmetik hesaplanabilirlilik hiyerarşisi değil, polinom hiyerarşisi).N-PN-PΣ30Σ30

Bunun gibi sorular önce Hajek tarafından araştırıldı . Daha fazla bilgi için, örneğin Ken Regan'ın bu makalesine bakın .

Hajek'in gazetesinden birkaç büyük külçe:

  • İndeksi seti ise Σ 0 3 -tamamlamak.PΣ30
  • olup Π 0 2 -Komple{ben:PL(Mben)N-PL(Mben)}Π20
  • Toplam bir Turing makinesi (tüm girişlerde durur) , P L i = N P L i ancak " P L i = N P L i " ifadesi bağımsızdır (burada L i = L ( M i ) ) . Benzer şekilde relativizations için P K p .MbenPLben=N-PLbenPLben=N-PLbenLben=L(Mben)PN-P

1
Burada soru, tam bir karar sorununun aksine, söz verilen bir karar sorunu (verilen dilin sadece tanınan bir TM tarafından karar verileceği vaat edilmektedir) gibi görünüyor. Rice Teoremi burada hala geçerli olacak mı? Rice Teoreminin kanıtının durdurmanın kararsızlığını kullandığını hatırlayın, bu nedenle burada kararsızlık şarttır.
Zeyu

2
Sorulan soruda L dili "ona karar veren bir makine tarafından verildi." Yani gerçekten: bir Turing makinesi M verildiğinde, L (M) NP'de olup olmadığı belirlenebilir. L dili bir TM tarafından belirtilmemişse, sadece doğal sayıların bir alt kümesi olarak verilmişse, L NP'de ise algoritmik olarak karar vermek ne anlama gelir? Özellikle, L'nin kendisi sınırlı bir tanımla verilmediğinde L'yi bir algoritmaya girdi olarak nasıl düşünebiliriz?
Joshua Grochow

1
Evet biliyorum. Ancak Rice Teoreminde TM'nin bir dile karar vermemesi, yani toplam bir işlevi hesaplamaması mümkündür.
Zeyu

2
Turing makinelerinin "M bir NP dilini tanımlar" gibi semantik bir özelliği göz önüne alındığında, öncelikle bu özelliği birinci dereceden mantıkla ifade etmeye çalışmak genel bir buluşsal yöntemdir. Bu, özelliği Aritmetik Hiyerarşi seviyesine yerleştirir; buluşsal yöntem, mülkün genellikle hiyerarşinin bu seviyesi için tamamlanmış olmasıdır. Bu buluşsal yöntem için önemli bir karşı örnek olup olmadığını sormak istiyorum.
Andy Drucker

2
Polinom Hiyerarşisine doğru ilerlerken, işlerin bu kadar güzel davranması daha az olasıdır. Örneğin, "C, minimum boyutta bir Boole devresi (hesapladığı işlev için)" olarak düşünün. Bu problem NP-zordur ve Polinom Hiyerarşisine yerleştirilebilir, ancak doğal olarak bulunduğu seviye için tamamlanıp tamamlanmadığı açıktır. (bu tür sonuçlar DNF'ler gibi bazı sınırlı devre sınıfları için bilinir; Schaefer ve Umans'ın "Polinom Hiyerarşisinde Tamlık" adlı 2 bölümlü ankete bakın.
Andy Drucker

5

Joshua Grochow'un işaret ettiği gibi, gerçek sorunuzun cevabı hayır.

Bununla birlikte, Holger'in belirttiği gibi, doğrusal olmayan zamanda Turing makinesinin (NTM) kendini "saat" edip etmediğini ve bir sabit k için n ^ k adımlarından sonra bir saati simüle etmenin bazı standart yollarıyla (örneğin, aşağıdaki kod). Genellikle bir makale ya da kitap (yanlış) bir NTM'nin polinom zamanı olup olmadığını belirlemeyi mümkün kılarsa, bu gerçekten demek istedikleri şeydir. Belki de bu yüzden soruyu sordunuz? (Karmaşıklık teorisini ilk öğrendiğimde ve bir yerde bir TM'nin çok zamanlı olup olmadığını kontrol etmenin mümkün olduğu ifadesini gördüğümde aynı soruya sahiptim.) Asıl soru, bunu açıklamaktan sonra aşağıda tartıştığım bir kişinin neden bunu yapmak isteyebileceğidir. nasıl .

Böyle bir saat özelliği eklemenin birçok yolu vardır. Örneğin, dönüşümlü olarak "birincil algoritmanın" bir ifadesini ve sonra n ^ k adımlarında (yakın bir şey) biten aşağıdaki algoritmanın bir ifadesini yürüttüğünüzde, n uzunluğundaki x girişini düşünün:

i_1 = 1'den n'ye
  i_2 = 1'den n'ye
...
        i_k = 1'den n'ye
          -Op bir;
dönüş;

Yukarıdaki kod birincil algoritma durmadan dönerse, tüm hesaplamayı durdurun (diyelim ki reddederek).

Bir NTM'nin bu formda olup olmadığına karar veren algoritma, girdisinin bir poli-zaman NTM olup olmadığına karar vermek için bir algoritma girişimi olarak yorumlanırsa, bazı yanlış negatifleri rapor edecektir: bazı NTM'lerin polinom zamanında durması garanti edilmektedir. bir algoritmanın bir ifadesini, yukarıdaki kod gibi bir saatin bir ifadesi ile değiştirmezler (bu nedenle, çoklu zaman olmasına rağmen reddedilir).

Ancak yanlış pozitifler yoktur. Bir NTM testi geçerse, kesinlikle polinom zamanında durur, bu nedenle bazı NP dillerini tanımlar. Bununla birlikte, belki de temel birincil algoritmasının davranışı değiştirilir, eğer saat bazen birincil algoritma durmadan önce biterse, birincil algoritma bitirmek için yeterli zaman verilirse, hesabın reddedilmesine neden olur. Bu nedenle, karar verilen dil birincil algoritmadan farklı olabilir. Fakatve bu anahtardır, yürütülen birincil algoritma aslında p (n) zamanında çalışan bir polinom-zaman algoritmasıysa ve saatteki k sabiti n ^ k> p (n) kadar büyükse, birincil algoritma her zaman saat bitmeden duracaktır. Bu durumda, birincil algoritmanın yanıtı değiştirilmez, bu nedenle birincil algoritma ve onu taklit eden NTM aynı NP diline karar verir.

Bu neden önemli? Bu, "tüm NP dillerini numaralandırmanın" mümkün olduğu anlamına gelir (söylediğim gibi, literatürde genellikle "belirli bir NTM'nin çok zamanlı olup olmadığına karar verin" veya "tüm çok zamanlı NTM'leri numaralandırın" şeklinde ifade edilir). Daha doğrusu, NTM'nin M_1 M_2, ... 'in sonsuz bir listesini numaralandırmak mümkündür.

  1. Her M_k polinom zamanında çalışır (örneğin, M_k'ye bir ^ k-zaman saati ekleyerek), bu nedenle bazı NP diline karar verir ve
  2. Her NP dili, listedeki bazı M_i'ler tarafından karar verilen dildir.

Gerçekleşmeyen şey, her polinom-zaman NTM'nin listede olmasıdır. Ancak her NP dili, onu temsil eden sonsuz sayıda NTM'ye sahiptir. Bu nedenle, her NP dilinin, en azından bazı temsilci NTM'lerinin, özellikle de n ^ k'nin M_k'nin çalışma süresini aşan k büyük bir dizinindeki tüm NTM'lerinin olması garanti edilir.

Bu, tüm NP dillerinin bu tür sonsuz (veya sınırsız) listelerini algoritmik olarak numaralandırmayı gerektiren köşegenleştirme gibi numaralar yapmak için kullanışlıdır. Ve elbette, tüm bu tartışma, poli-zaman belirleyici TM'ler gibi poli-zaman NTM'lerinin yanı sıra diğer birçok makine için de geçerlidir.


3

p(n)


2
Bu sadece saatin belli olmayan bir TM olması durumunda işe yarar . Size sadece bir saatli TM (üstel zamanda çalışan bir tane bile) verirsem, karar verdiği dilin NP'de olup olmadığı hala kararsızdır. Bununla birlikte, N_1, N_2, ... üstel saatler içeren TM'lerin numaralandırması ise, {i: L (N_i) kümesi NP'de} muhtemelen Sigma_3-tamamlanmış değildir, çünkü zaten N_i'nin toplam, ancak yine de kesinlikle hesaplanamaz.
Joshua Grochow
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.