我已从多个来源和我对该算法的理解中读取它在2 ^ N时间内运行。我的问题是什么原因导致TSP实现这个运行时间?我似乎无法找到伪代码,所以我可以检查它。
答案 0 :(得分:3)
您的算法可能是包含 - 排除:
使用A*
找到通过以下状态空间的最短路径:
包含 - 排除的时间复杂性由状态数量给出:恰好有一个“当前”城市(因子n
),所有其他城市都是访问过的或未访问过的(因子为{{1 }})。
'A *'算法最多只能进入一次状态。对于每个状态,它将探索最多'n'个其他节点并将它们推入优先级队列。优先级队列最多需要“O(n)”时间来执行其操作。
因此,运行时间为2^n
= O(2^n * n * n * O(n))
。进一步的见解表明,O(2^n * poly(n))
等于O(2^n * poly(n))
。