Emil Jerabek'in yorumu güzel bir özettir, ancak aşağı yukarı aynı kavramı yakalayan daha net tanımlara sahip başka sınıflar olduğunu ve tüm bunlar arasındaki ilişkiyi açıklığa kavuşturmak istedim.
[Uyarı: Tanımları doğru aldığımı düşünürken, aşağıdaki şeylerden bazıları kişisel tercihlerimi yansıtıyor - bunun nerede olduğu konusunda net olmaya çalıştım.]
Deterministik dünyada, bir fonksiyon sınıfı sadece bir fonksiyonlar topluluğudur ("fonksiyon" kelimesinin olağan, matematiksel anlamında, yani bir harita ). Bazen, belirli girdiler için çıktısı "tanımsız" olan "kısmi işlevlere" izin vermek istiyoruz. (Aynı şekilde, bir alt kümesi üzerinde tanımlı fonksiyonlar Σ * hepsini yerine.)Σ∗→Σ∗Σ∗
Ne yazık ki, etrafında yüzen iki farklı tanımı vardır ve söyleyebildiğim kadarıyla eşdeğer olmadıklarını ("ahlaken" eşdeğer olsalar da).FP
- (tanım 1) polinom zamanında hesaplanabilen fonksiyon sınıfıdır. F P'yi her gördüğünüzdeve insanların F N P , T F N P hakkında konuştuğu bir bağlamda olmadığında, bu varsaydığım tanımdır.FPFPFNP,TFNP
Belirsiz olmayan dünyada işler biraz komikleşir. Burada, "kısmi, çok değerli fonksiyonlara" izin vermek uygundur. Böyle bir şeyi ikili bir ilişki , yani alt kümesi olarak adlandırmak doğal olurdu . Ancak, karmaşıklık açısından, bunları "belirsiz olmayan işlevler" olarak düşünmek genellikle felsefi ve zihinsel olarak yararlıdır. Bu tanımların birçoğu (çok iyi bilinmese de tanımları tamamen standartlaştırılmış olan) aşağıdaki sınıflar tarafından açıklanmıştır:Σ∗×Σ∗
: Polinom zamanında belirlenemeyen bir makine tarafından hesaplanan "kısmi, çok değerli fonksiyonlar" sınıfı. Bunun anlamı, bir poli-zaman belirsiz olmayan makine ve x girişinde, her belirsiz olmayan dalda bazı çıktıları kabul etmeyi ve yapmayı veya reddetmeyi ve çıktı vermemeyi seçebilir. X girişindeki "çok değerli" çıkış, x olarak girdi olarakverildiğinde, belirsiz olmayan tüm dallardaki tüm çıkışların kümesidir. Bu kümenin boş olabileceğini, bu nedenle "çok değerli bir işlev" olarak yalnızca kısmi olabileceğini unutmayın. Bunu ikili ilişkiler açısından düşünürsek, bu { ( x , y ) ilişkisine karşılık gelir : yNPMVxxx girişindeki hesaplamanın bir dalı tarafından çıktılanır .{(x,y):y is output by some branch of the computation on input x}
: Toplam "fonksiyonları" , N P E V her bir giriş ile ilgili olduğu,x(tanımı gereği ve bu nedenle bir çıkış yapar) en az bir dal kabul,NPMVtNPMVx
: N P M V'de tek değerli (potansiyel olarak kısmi) fonksiyonlar. Bununla birlikte, burada, birden çok dalın kabul edebileceği konusunda bir miktar esneklik vardır, ancak herhangi bir dal kabul ederse, tüm kabul eden dallarınaynıçıktıyıüreteceği garanti edilmelidir(böylece gerçekten tek değerli). Bununla birlikte, hiçbir dalın kabul etmemesi hala mümkündür, bu nedenle işlev sadece bir "kısmi işlevdir" (yani tüm Σ ∗' de tanımlanmamıştır).NPSVNPMVΣ∗
: toplam fonksiyonları tek değerli , N P G V . Bunlar gerçekten kelimenin genel anlamda, fonksiyonlar, Σ * → Σ * . N P S V t = F P N P ∩ c o N P (yukarıdaki FP için Def 1 kullanılarak)görmek zor değildir.NPSVtNPSVΣ∗→Σ*N P S Vt= F PN P ∩ c o N P
Potansiyel olarak çok değerli işlevler hakkında konuştuğumuzda, karmaşıklık sınıflarının sınırlandırılması hakkında konuşmak artık gerçekten yararlı değil: koşulsuz olarak basitçe N P S V çok değerli "işlevler içermediğinden ", ancak N P M V yapar. Bunun yerine, ⊆ c ile ifade edilen "c-çevreleme" hakkında konuşuyoruz . A (potansiyel olarak kısmen, çok değerli) fonksiyonu f daraltılmış bir (potansiyel olarak kısmi çoklu değerli) işlev g edin: Her girdi (1) x olan gN P M V ⊈ N P S VN P S VN P M V⊆cfgxgbazı çıktılar yapar, yapar ve (2) f çıktıları her zaman g çıktılarının bir alt kümesidir . Doğru soru, her N P M V "fonksiyonunun" bir N P S V iyileştirmesine sahip olup olmadığıdır . Öyleyse, N P M V ⊆ c N P S V yazıyoruz .ffgN P M VN P S VN P M V ⊆cN P S V
- (biraz daha az standart), poli zamanda hesaplanabilen (potansiyel olarak kısmi) fonksiyonların sınıfıdır. Yani, bir fonksiyonudur f : D → Σ * ( D ⊆ Σ * ) olan P F , bir poli-zaman deterministik makine, var ise, bu girdilere x ∈ D makine çıkışları f ( x ) ve girişler x ∉ D makinesi (/ reddeder / "hayır" / ancak ifade durdurana diyor) hiçbir çıkış yapar.P Ff: D → Σ*D ⊆ Σ*P Fx ∈ Df( x )x ∉ D
bir "fonksiyon problemleri" sınıfıdır (bir fonksiyonlar sınıfı yerine). Ayrıca F N P'ye "ilişkisel sınıf" diyorum, ama gerçekten onu tanımlamak için kullandığınız kelimeler ne olursa olsun, daha sonra kendinizi açıklığa kavuşturmanız gerekiyor, bu yüzden bu tanımın kısmi değilim. Herhangi bir ikili ilişkide R ⊆ Σ ∗ × Σ ∗ ilişkili bir "işlev sorunu" vardır. İşlev sorunu nedir? Dil / işlev / ilişki için yaptığım gibi temiz bir matematik tanımım yok; bunun yerine, geçerli bir çözümün ne olduğu ile tanımlanır:F N PF N PR⊆Σ∗×Σ∗Rföyle ki eğer o zaman f böyle bir y çıkarır , aksi takdirde f çıktı vermez. F , N p ilişkilerine bağlı fonksiyon sorunları sınıfıdır R şekilde R ∈ P (çiftlerinin bir dil olarak ele alındığında) ve p-dengelidir. Dolayısıyla F N P bir işlevler sınıfı ya da bir dil sınıfı değil, burada bir "işlev problemleri" sınıfıdır; burada "problem", kabaca onu çözmek anlamına gelir.(∃y)[R(x,y)]fyfFNPRR∈PFNP
sonra çalışmamasına sınıfıdır F N , P , bir ilişki ile tanımlanır - R yukarıda - örneğin R, her için bu anlamda, toplam bir x bir vardır y böyle R ' ( X , y ) .TFNPFNPRRxyR(x,y)
Olup amacıyla gibi şeyler yazmak zorunda "her ise (resp., T K , N P ) işlevi sorunun bir çözümü vardır P F (resp., F P yukarıdaki tanıma göre), daha sonra ..." de Bu bağlamda, bir tanımı 2 kullanan F P olan,:FNPTFNPPFFPFP
- (tanım 2), F N P'de poli-zaman çözümüne sahipfonksiyon problemleri sınıfıdır. Buradaki çözümün (= işlevi),herhangi bir x içingeçerli bir y olmayanözel bir y 0 dizisi seçerekveaksi takdirde geçerli y olmadığında y 0 işlevine sahipolarak kabul edilebilir. (Gerekirse, biz ilişki değiştirebilir R her prepending tarafından y 1 olan ve daha sonra almak y 0 dize 0 olması; katılan bu şey karmaşıklığını değişmez).FPFNPy0yxy0yRyy0
Bu çeşitli tanımların birbiriyle nasıl ilişkilendiği şöyledir: (tanım 2, çünkü bu F N P ile karşılaştırıldığı bir bağlamda ) N P M V ⊆ c P'ye eşdeğerdir. F . T F N P ⊆ F P (def 2), N P M V t ⊆ c F P (def 1) ile eşdeğerdir .FNP⊆FPFNPNPMV⊆cPFTFNP⊆FPNPMVt⊆cFP