Yönlendirilmiş bir grafikteki iki düğüm arasındaki basit yolların sayısını saymak ne kadar zor?


29

Yönlendirilmiş grafikteki iki düğüm arasında bir yol olup olmadığına karar vermek için kolay bir polinom algoritması vardır (derinlik-ilk-arama ile sadece rutin bir grafik yapın).

Bununla birlikte, şaşırtıcı bir şekilde, sorunların varlığını test etmek yerine , yol sayısını saymak istiyorsak daha da zorlaştığı görülmektedir .

Biz yeniden vertices yolları izin sonra gelen yolları sayısını bulmak için dinamik bir programlama çözüm vardır s için t ile n kenarları. Bununla birlikte, sadece basit yollara izin verirsek, köşeleri tekrar kullanmazsak, düşünebildiğim tek çözüm , üstel zaman karmaşıklığına sahip bir yol olan kaba kuvvet sayımıdır .

Yani soruyorum,

  • İki köşe arasındaki basit yol sayısını saymak zor mu?
  • Öyleyse, NP tamamlandı mı? (Teknik olarak bir karar sorunu olmadığı için söylüyorum ...)
  • P'de bunun gibi zor sayma versiyonları olan başka problemler var mı? **

BTW, şu anda bu sorunun cevabını gerçekten biliyorum ama ilk konuya geldiğimde sorduğumda ne tür bir cevap alacağımı merak ediyorum.
hugomg


@Suresh: Kaba kuvvet aramasının nasıl kodlanacağını biliyorum. Benim sorum daha verimli bir algoritma olup olmadığını. Her durumda, bu SO sorusu daha benzer olurdu ve eğer spoilerle ilgileniyorsanız, benim cevabımı bile içeriyor.
hugomg

Yanıtlar:


18

Sayma problemleriyle ilgili en yaygın karmaşıklık sınıfı #P'dir . Belirli bir düğümden diğerine basit bir yol olup olmadığına karar vermek açıkça NP’dedir. Onları saymak sonra #P.

n!

İki ilk iki sorunuzun cevabı: evet, zor, # P-complete (ref) .

Wikipedia makalesi ilgili gerçekleri verir: 1) olasılıklı algoritmalar # P-complete fonksiyonlarını yaklaşık olarak bulmakta faydalıdır ve bu, önceki makalede yaklaştırma için kullanılan algoritma türüdür. 2) Zor (# P-tamamlandı) sayma versiyonlarında başka kolay problemler de var:

  • DNF formülünü veya 2-SAT örneğini sağlayan tüm ödevleri sayma (doğrusal) bulma
  • Topolojik sıralamaları bulma (doğrusal)
  • İki taraflı grafiklerde mükemmel eşleşmeyi sayarak (O (VE)) bulma

Eğer zaten "basit yol" sınırlamasını kaldırırsanız, problemin P'ye düştüğünü biliyorsunuzdur (peki yolların uzunluğunu grafiğin büyüklüğünde bir polinomla sınırlamanız veya sınırlamayı tekdüze olarak vermeniz gerekir)

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.