Sorry for the complex name - it's kind of well-deserved. Let me present the problem.
Context: I have a type of location network that I want to do some partitioning with.
Definition of Problem: I have an undirected weighted graph G = {V,E,w} with a set of vertexes V, edges E, and edge-weights W. Edges exist between all vertexes in V.
Now, I have cycles C = {C1...CN} of sizes |C1|...|CN| s.t. the sum of |C1|...|CN| is equal to the total number of vertexes |V|. The score of a cycle Ci is then the sum of weights of all the edges involved in the path.
Finally, here's the objective: I would like to fit all the cycles of C in G in such a way that their combined scores is maximal with the constraint that no cycles in C intersect with each other.
So in layman terms: I'd like to fill a graph with cycles of defined length s.t. the global weight is optimal.
My take on this problem: This problem is at least NP-hard because it can be reduced to something like a packing problem or Hamiltonian cycle.
The optimal solution is likely not even pseudo-polynomial. I've tried formulating the problem in several different ways (graphs) and it always results in state explosions so a tractable 2D dynamic programming approach is likely not possible (correct me if I am wrong).
So it appears that I probably have to use an approximation approach. One thing that comes to mind is to just try to find the Hamiltonian path of the entire graph using its own approximation approaches. Then the next step would be to find the locations to "cut" the local-optimal Hamiltonian path to produce the cycles. There are |C|!*|V| ways to arrange these "cut-sites". The factorial comes from the permutations of the ordering of these cycles and the |V| comes from the total number of start positions. Even with pruning (i.e. there are cycles of same sizes), this is still intractable for large |C|'s. I'd say brute force is okay for small |C|'s and a hill-climbing approach would be needed for larger |C|'s to get an approximation of a local-optimal arrangement.
Anyhow, what do you guys think?