xqnx.net
当前位置:首页 >> 用贪心法解决tsp问题 >>

用贪心法解决tsp问题

tsp属于npc问题,一般只能靠近似算法求出近似解,问题规模小的时候,可以直接穷举问题空间,得出最优解,不过问题规模一大就不行了,问题空间是指数暴涨的,这时候只能退而求其次,求近似最优解,而对应的近似算法中会大量使用贪心策略,所以其实不是可不可行的问题,贪心牺牲了 解的精度(求得的不一定是最优解),但换来了时间上可观的节约(直接降到多项式).

AC代码,132kb,0ms 记得给分哦~~ #include #include using namespace std; int a[12],n,k,visit[12]; __int64 sum=0; void dfs(int num,int x,int j) { if(num==k) { sum+=x; return; } for(int i=1;ij) { visit[i]=1; if(!x) dfs(num+1,a[i],i

所有问题遍历算法的时间复杂度是最高的,但是对于TSP问题来说贪心算法一般是得不到最优解的

贪心自然也是不行的,这是NPC问题.你说的应该是剪枝,剪枝并不改变时间复杂度,规模大之后剪枝也不可行,一般只能用近似算法.

[图文] 利用贪心法求解0/1背包问题时,(26)能够确保获得最优解.用动态规划方求解O/1背包问题时,将“用前i个物品来装容量是x的背包”的0/1背包问题记为KNAP(1,i,X)设fi(X)是KNAP(1,i,X)最优解的效益

典型tsp问题,目标函数变成利益最大化.如果城市很多很多,考虑使用pso或者遗传算法

旅行商问题要从图G的所有周游路线中求取最小成本的周游路线,而从初始点出发的周游路线一共有(n-1)!条,即等于除初始结点外的n-1个结点的排列数,因此旅行商问题是一个排列问题.排列问题比子集合的选择问题通常要难于求解得多

旅行商问题(Traveling Saleman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本.字面上的

package noah; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class TxTsp { private int cityNum; // 城市数量 private int[][] distance; // 距离矩阵 private int[]

网站首页 | 网站地图
All rights reserved Powered by www.xqnx.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com