3

Let $C_n$ denote the cycle graph over $n$ vertices. Let $C_n^k$ denote the $k$-th power of the cycle graph, or namely that for two vertices $i,j$, $(i,j)\in Edges(C_n^k) \iff |i-j|\leq k$ for a constant $k$.

Now given a subgraph $G$ of $C_n^k$, how can we find a hamiltonian cycle (if it exists) in $G$ in polynomial time (in $n$)?

I've tried solving this with DP but the best I've reached is $O(2^nn)$ which just matches the known DP for hamiltonian cycle. I would prefer hints over full answers.

Inuyasha Yagami
  • 6,277
  • 1
  • 12
  • 23
AspiringMat
  • 623
  • 5
  • 19

2 Answers2

1

Addressing another question of OP:

Suppose $k$ is equal to $n$. If so, then $C_{n}^{k}$ would be a complete graph. And, suppose if we could check if a Hamiltonian cycle exists in any subgraph $G$ of $C_n^{k}$ in polynomial time (i.e., $poly(n,k)$), then it would mean that we can solve Hamiltonian Cycle problem in polynomial time on any graph with $n$ vertices.

Since the Hamiltonian Cycle problem is $\mathsf{NP}$-hard; therefore, the stated problem is also $\mathsf{NP}$-hard. In other words, it is hard to find a Hamiltonian cycle in $G$ in time polynomial in $k$ and $n$.

Inuyasha Yagami
  • 6,277
  • 1
  • 12
  • 23
1

Here is an overkill solution:

Lemma: The subgraph $G$ has tree-width at most $2k$.

Proof. Treat all additions and subtractions in what follows in circular modulo arithmetic (for example $n+1 = 1$). Also assume $n\gg k$. Let $L_j=\{j-1, j-2, ..., j-2k\}$ and $R_j=\{j+1, ..., j+2k\}$. Then the path decomposition for $C_n^k$ of $(L_1\cup \{1\}\cup R_1), (L_1\cup \{2\} \cup R_2), (L_1\cup\{3\}\cup R_3), ...$ is a path (tree) decomposition with width $2k$, and so the tree-width of $C_n^k$ is at most $2k$ so a subgraph of $C_n^k$ has tree-width at most $2k$.

Since the tree-width of $G$ is at most $2k$, then there is a $O(n^{O(k)})$ algorithm that finds a nice tree decomposition $T$ for $G$. We can then run the FPT hamiltonian cycle algorithm on $T$ to find a hamiltonian cycle for $G$ in $O(k^{O(k)}n)$ time.

Overall, the algorithm takes $O(n^{O(k)})$, which is polynomial time. I would still be interested in a polynomial time solution without a $k$ dependency, or even with dependency $k$ but simpler.

AspiringMat
  • 623
  • 5
  • 19