P'deki hangi problemler için sonucu tespit etmek, bulmaktan daha kolaydır?


52

NP-tamamlanmış problemlerin (arama sürümleri) için, bir çözümün doğrulanması onu bulmaktan daha kolaydır, çünkü doğrulama polinom zamanında yapılabilir, ancak bir tanık bulmak (muhtemelen) üssel zaman alır.

In P Ancak, çözüm de polinom zamanda bulunabilir, bu nedenle doğrulama hızlı çözüm bulmaktan daha olduğunda bariz görünmüyor. Aslında, farklı sorunların bu açıdan farklı davrandığı görülmektedir. Bazı örnekler:

  1. 3SUM: girdi numarası verilirse , aralarında 0 olan toplam 3'ü bulun. Bildiğim kadarıyla, bilinen en hızlı algoritma O ( n 2 - 0 ( 1 ) ) sürede çalışır ve bu sıra en uygun şekilde hesaplanır. Öte yandan, bir çözümün doğrulanması çok daha hızlıdır, çünkü tek yapmamız gereken, bulunan 3 sayının gerçekten 0 olarak toplandığını kontrol etmektir.nO(n2o(1))

  2. Tüm Çiftler En Kısa Yollar: Kenar ağırlıkları olan bir grafik verildiğinde, en kısa yol mesafesi matrisini hesaplayın. Böyle bir matris verildiğinde, yeniden hesaplamak yerine gerçekten doğru mesafe matrisi olduğu daha hızlı kontrol edilebilir mi? Tahminime göre cevabı belki evet, ama kesinlikle 3SUM için daha az açıktır .

  3. Doğrusal programlama. Talep edilen en uygun çözüm verildiyse, yardımcı bilgi de verildiğinde kontrol edilmesi, yeniden hesaplama yapmaktan daha kolaydır (en uygun ikili çözüm). Öte yandan, yalnızca ilk çözüm mevcutsa, LP'yi çözmek yerine daha hızlı kontrol edip edemediği açık değildir.

Soru: Bu konu hakkında ne bilinmektedir? Yani, ne zaman bir sorun için bir çözüm doğrulamak daha kolaydır P çözüm bulma yerine,?


7
kkk

16
nn1Θ(nlogn)

7
Karar problemleri için hem evet hem de hayır vakasını doğrulamanın kolay olmasını ister misiniz? 3SUM için, sabit durumdaki evet durumlarını doğrulamak kolay olsa da, hiçbir örneği doğrulamanın kolay olup olmadığını bilmiyorum. Yoksa Boolean olmayan bir çıktının olduğu, matris çarpımı gibi problemler boyunca mı daha fazla düşünüyorsunuz? (Matris çarpımı, rastgele algoritmalara izin verirseniz, istediklerinizin bir örneğidir.)
Robin Kothari

3
“Öte yandan, bir çözümün doğrulanması çok daha hızlı, çünkü tek yapmamız gereken, bulunan 3 sayının gerçekten 0 olduğunu gösteriyor.” - Bulunan 3 sayının gerçekte girdinin bir parçası olduğunu da kontrol etmemiz gerekir.
hvd

3
Doğrulamanın kolay olmadığını bildiğimiz sorunlar var mı?
Raphael

Yanıtlar:



20

Bu makale , bir polinom faktörü ile çözümün kendisinin hesaplanmasından daha hızlı olan Max flow, 3SUM ve APSP dahil olmak üzere 3 problem için hem YES hem de NO örnekleri için doğrulama algoritmaları olduğunu göstermektedir .

Çalışma zamanını iyileştiren SETH-zor olan, yani NO örneklerini doğrulamak için çalışma zamanının çözümü hesaplama zamanından önemli ölçüde daha hızlı olması muhtemel olmayan bir problem sınıfı var, aksi takdirde Nondeterministic adlı bu makalenin Güçlü Üstel Zaman Hipotezi başarısız olur.


18

Bazı problemlerde fark yok gibi görünüyor. Özellikle, Vassilevska Williams ve Williams şunları göstermektedir:

  • Boolean matris çarpımı için, matris ürününü hesaplamak ve matris ürün subcubic eşdeğerini doğrulamak, bunların her ikisinin de subububik zaman algoritmasına sahip olmaları veya hiçbirinin yapmadığı anlamına gelir.

  • Aynısı, herhangi bir "genişletilmiş (min, +) yapı" üzerindeki matris ürün hesaplaması ve doğrulaması için de geçerlidir (tanım için makaleye bakın, ancak bu birçok doğal sorun içerir).

(Şimdi, elbette, bu sorunların hepsinin alt-alt algoritmaları olması muhtemeldir ve daha sonra hesaplama ve doğrulama arasında polinom bir fark olabilir, ancak bu problemler için kübik bir fark olamaz. Aslında hepsi esasen kübik zaman gerektirir.)


2
Öte yandan, yeterince geniş bir alanda matris çarpımı için, doğrulama için karesel bir zaman rastgele algoritma varken, ürünü hesaplamak için en hızlı çalışma süresi n ^ omega'dır.
Thatchaphol

2
@Thatchaphol: Evet, birçok insan omega = 2'ye inanmasına rağmen ... Boolean matris çarpımının (yani Boolean ve / veya yarı-halkanın üzerindeki çoklu hesaplama matrisi) bir matris çarpımından farklı bir yapıya sahip olduğu yaygın olarak kabul edilmektedir. alan.
Joshua Grocho

16
  • Ω(n)Ω(logn)

    O(1)

  • Ω(nlogn)O(n)


2
Ω(nlogn)O(1)

O(n)

Θ(n)


9

O~(n6)O~(n3)


tamamlayıcı (kompozisyon) tanık olmak daha kolaydır!
Yonatan N

3

O(n2ϵ)

PΩ(n1ϵ)

O(n2/logn)

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.