众所周知,计算具有最小可能叶数的生成树是 NP 完全的。但是我无法弄清楚这个问题的多项式时间减少到哈密顿路径问题。
我的指数减少:
if(hamiltonian path exists for whole graph)
min leaves = 1;
return;
else
for each vertex of the graph
if(hamiltonian path exists for this graph after removing the vertex and its incident edges)
min leaves = 2;
return;
continue similarly for the graph deleting 2 vertices, 3 vertices, 4vertices,... until you get a minimum spanning tree with some minimum number of leaves.
所以,在最坏的情况下,这个算法总共会产生
(N choose 1) + (N choose 2) + (N choose 3) + ....(N choose N) = 2^N
调用哈密顿路径问题。因此减少是指数的。
请为此问题提出多项式时间缩减建议。