TSP的Held-Karp算法的时间复杂度
当我看完Michael Held和Richard M. Karp的“解决问题的动态编程方法 ”时,我想到了以下问题:为什么他们用于TSP的算法的复杂性是(第199页),我的意思是它们在哪里取因子?如果我理解正确,表示每个城市子集的增加数量。那么,为什么每次添加操作再加上不知道的我操作?我想它以某种方式与取最小值有关,但是计算最小值似乎不需要这么多操作。(∑n−1k=2k(k−1)(n−1k))+(n−1)(∑k=2n−1k(k−1)(n−1k))+(n−1)(\sum_{k=2}^{n-1}k(k-1)\binom{n-1}{k})+(n-1)kkkk−1k−1k-1kkk 由Held和Karp以及独立的Bellman进行的动态编程算法运行如下:对于每对,这意味着经过的路径,所有元素并终止于计算(S,ci)(S,ci)(S,c_i)c1c1c_1SSScicic_i OPT[S,ci]=min{OPT[S∖{ci},cj]+d(cj,ci):cj∈S∖{ci}},OPT[S,ci]=min{OPT[S∖{ci},cj]+d(cj,ci):cj∈S∖{ci}},OPT[S,c_i]=min\{OPT[S\setminus\{c_i\},c_j]+d(c_j,c_i):c_j\in S\setminus\{c_i\}\}, 其中表示城市和之间的距离。然后在纸的公式中表示的大小。d(cj,ci)d(cj,ci)d(c_j,c_i)cjcjc_jcicic_ikkkSSS