当前位置:首页 » 操作系统 » 旅行商问题算法

旅行商问题算法

发布时间: 2022-01-08 11:26:52

A. 想用动态规划算法解决旅行商(TSP)问题,麻烦指点下方法和思路,详细点,谢谢1

http://hi..com/__%D2%E5__/blog/item/d6326f1fcbdb4eff1ad576d8.html
http://liouwei20051000285.blog.163.com/blog/static/25236742009112242726527/
以上都是动态规划解决TSP问题的,但是个人觉得不是太好,建议你去了解一下遗传算法,很容易懂,网上有很详细的讲解。希望你学到知识

B. TSP问题的算法

你是说有10个点,想选4个点么,找4个点+起点的周游最小值?
点比较少,枚举4个点,C(10,4) = 210 种情况,然后找所有情况的最小值。那么最后这4个点就是你要的4个点。

C. 跪求用dijkstra算法解决TSP多旅行商问题的MATLAB程序!

dijkstra算法是用来求任意两点间的最短路径。他求出的路径并不是欧拉回路,不满足TSP的要求

D. 用粒子群算法求解旅行商问题的仿真实验怎么做呀谁有求解旅行商问题的粒子群算法的源程序

这个问题你可以搜索PSO+TSP即可,代码很多。
一般TSP问题都有个已知的最优解,有个数值表示耗费的最短路,你可以将你搜索出来的最优解的最短路径与之比较。

E. 一段关于旅行商问题的代码,可否解释下算法思想,及 swap 函数的作用

=151456456847

F. 对于非完全图的旅行商问题,用什么算法就是有些节点之间是没有路的

汉密尔顿回路问题是NP的
但是如果图满足一定条件(可以不是完全图),也可以构造出解(不同的条件有不同的构造法,具体网络吧)
但没有一般解法

所以,如果一定说,一般方法的话,只能是搜索。

G. 求模拟退火算法解旅行商问题的C++代码

我自己写的:
#include<stdlib.h>
#include<cmath>
#include<algorithm>
using namespace std;
static double Tmax = 10, Tmin = 0.1, r = 0.999999;
static int k = 100;
inline void random_sele(int &fl, int &fp, int arr[], int n)
{
do
{
fl = rand() % n;
fp = rand() % n;
} while (fl == arr[fp] || arr[fl] == arr[fp]);
};
inline bool accept(double r1, double r2, double T)
{
const unsigned int MASK((1 << 30) - 1);
double p = 1.0 / (1.0 + exp((r2 - r1) / T));
unsigned int temp1=((rand()<<20)^(rand()<<10)^rand())&MASK;
unsigned int temp2=((rand()<<20)^(rand()<<10)^rand())&MASK;
double res=(1.0*temp1+1.0*temp2/MASK);
return res < p*MASK;
}
void set_SA()
{
printf(" Tmax Tmin r k\n");
printf(" %.8f %.8f %.8f %d \n",Tmax,Tmin,r,k);
printf("Input Tmax,Tmin,r,k:\n");
scanf("%lf%lf%lf%d",&Tmax,&Tmin,&r,&k);
}
void TSP_SA(int arr[], double &evl, int n, double map[][2000])
{
double r1, r2, T = Tmax;
int i, fl, sl, fp, sp;
int show_s=0;
srand(11827);
while (T >= Tmin)
{
for (i = 0; i < k; i++)
{
random_sele(fl, fp, arr, n);
sl = arr[fl], sp = arr[fp];
r1 = map[fl][sl] + map[fp][sp] + map[sp][arr[sp]];
r2 = map[fl][sp] + map[sp][sl] + map[fp][arr[sp]];
if (accept(r1, r2, T))
{
arr[fp] = arr[sp];
arr[fl] = sp;
arr[sp] = sl;
sl = sp;
evl = evl + r2 - r1;
}
}
if(++show_s==1000000/k)
{
printf("T=%f evl=%f\n",T,evl);
show_s=0;
}
T *= r;
}
}

H. 计算机算法设计之 旅行商问题

你是要什么语言的...
告诉你思路...
用动态规划做..设状态变量是gk(i,S)..表示从0出发经过k个城市到达i的最短距离..S为包含k个城市的可能集合..动态规划的递推关系为:
gk(i,S)=min[gk-1(j,S\{j})+dji]
j属于S..dji表示j-i的距离
当然也可以用回朔法和分支限界法..

I. 用动态规划求旅行商问题是不是一个有效的算法为什么

实际工程中动态规划往往很难实现,但是求解能得到全局最优。 但是贪心算法虽然较易陷入局部最优,但是求解效率极高。 若是决策量前后之间影响不是很大,且较大规模问题贪心法较好。

J. 哪些算法可以用来求解旅行商问题

额,TSP问题可以用很多智能算法,我再给你找找相关文献吧,作为回报 迄今为止,这类问题中没有一个找到有效算法。
倾向于接受NP完全问题(NP-Complet或NPC)和NP难题(NP-Hard或NPH)不存在有效算法这一猜想,认为这类问题的大型实例不能用精确算。

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:760
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:661
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:309
子弹算法 发布:2024-09-20 08:41:55 浏览:286
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:815
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:160
sql数据库安全 发布:2024-09-20 08:31:32 浏览:91
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:505
编程键是什么 发布:2024-09-20 07:52:47 浏览:655
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:479