TSP问题动态规划状态压缩法的空间优化

以下是以动态规划算法状态压缩法为基础进行。

城市距离图

以以上4个城市为例,形成一张二维矩阵表

城市距离二维矩阵表

状态压缩法使用二进制记录经过城市节点的距离,以以上4个城市为例,下面是4*7的DP数组

计算过程表

推而广之,n个城市下,城市距离二维矩阵表空间复杂度是n*n,计算过程DP表空间复杂度

空间复杂度

优化点

北京超市实际数量

百度搜索结果:全北京超市总数:60218个,就近选择100个超市送货,DP表空间复杂度就是

空间复杂度

100个超市中很多都不是直接可达的,造成空间浪费

整型数组的大小受限于开发语言和操作系统

Java语言整型数组上限为225 * 225  ,即26个超市 

所以使用HASH表来代替计算过程二维表

KEY=总坐标,横坐标 

VALUE=DP表对应值

结果

修改后空间使用

可计算城市节点数不受语言和操作系统限制

节省了存储空间

单系统存取情况下,HASH比数组效率低

你可能感兴趣的:(TSP问题动态规划状态压缩法的空间优化)