Існує простий поліноміальний алгоритм, щоб вирішити, чи є шлях між двома вузлами в спрямованому графіку (просто зробіть звичайний обхід графіка з, скажімо, глибиною першого пошуку).
Однак здається, що дивно проблема стає набагато складніше, якщо замість тестування на існування ми хочемо порахувати кількість шляхів.
Якщо ми дозволимо шляхам повторно використовувати вершини, то існує динамічне рішення програмування для пошуку кількості шляхів від s до t з n країв. Однак, якщо ми дозволяємо лише прості шляхи, які не використовують повторно вершини, єдине рішення, про яке я можу придумати, - це перерахування грубої сили шляхів , що має експоненціальну часову складність.
Тож я прошу,
- Чи важко підрахувати кількість простих шляхів між двома вершинами?
- Якщо так, то чи є NP-комплектація? (Я кажу, що це тому, що технічно це не проблема вирішення ...)
- Чи є інші проблеми у P, які теж важко рахують такі версії? **