回溯法解决TSP问题

本文探讨了如何运用回溯法来解决著名的旅行商问题(TSP)。通过详细阐述算法步骤,展示了如何构建搜索空间并有效地剪枝,以找到城市间的最短路径。该方法涉及图论和组合优化,对于理解和实现回溯法有很好的实践意义。
摘要由CSDN通过智能技术生成
#include<iostream>
#define  MAXSUM 100
#define INF 65535
using namespace std;
class TSP{  //TSP类
public:
    int bestv;  //最优解即最短路径
    int tempv;  //当前路径长度
    int node;   //节点个数
    int edge;   //无向边条数
    int adj[MAXSUM][MAXSUM];  //邻接矩阵存储无向边信息
    int *best_route;  //最优路径记录
    int *route;  //当前路径记录
    bool *vis;   //判断该节点是被否访问数组
public:
    /* 初始化 */
    void Initial(){
        cout<<"please input the number of nodes and edge: "<<endl;
        cin>>node>>edge;
        bestv = INF;
        route = new int[node * 2];
        vis = new bool[node * 2];
        best_route = new int[node * 2];
        for(int i = 1;i <= node;i++)
            for(int j = 1;j <= node;j++)adj[i][j] = INF;
        cout<<"please input the two nodes and value of each edge(each edge is entered only once): "<<endl;
        for(int i = 1;i <= edge;i+&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值