Minimum number of non-intersecting simple cycles in unweighted directed graph

62 views Asked by At

I decided to try implement some assignment problem algorithms. I already did some, but I got stuck on the problem described below:

To put it simply, I need to cover all its vertices with the minimum number of non-intersecting simple cycles.

But I don't understand how, does anyone have any ideas? I would be especially glad to see an explanation.

1

There are 1 answers

0
templatetypedef On

This problem is NP-hard via a reduction from the Hamiltonian cycle problem. More specifically, if a graph has a Hamiltonian cycle, then you can cover all the vertices with a single simple cycle, namely the Hamiltonian cycle, and otherwise the graph requires multiple cycles to cover its nodes (if it can even be done at all).

As a result, unless P = NP, there are no polynomial-time algorithms for this problem. You can still solve it using either heuristic searches or brute force, but those approaches won’t necessarily be fast on all inputs.