该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#define N 6

#define MAX 10000

int bestc=MAX;

int cc=0;

int dis[N+1][N+1]={0,0,0,0,0,0,0,

0,0,10,20,30,40,50,

0,12,0,18,30,25,21,

0,23,19,0,5,10,15,

0,34,32,4,0,8,16,

0,45,27,11,10,0,18,

0,56,22,16,20,12,0};

int x[N+1];

int bestx[N+1];

void swap(int x[N+1],int i,int j)

{

int a;

a=x[i];

x[i]=x[j];

x[j]=a;

}

void backtrack(int i)

{

int j;

if(i==N)

{

if(dis[x[i-1]][x[i]]

dis[x[i]][1]

(bestc==MAX||cc+dis[x[i-1]][x[i]]+dis[x[i]][6]

{

for(j=1;j<=i;j++)

bestx[j]=x[j];

bestc=cc+dis[x[i-1]][x[i]]+dis[x[i]][6];

}

}

else

{

for(j=i;j<=N;j++)

if(dis[x[i-1]][x[j]]

(bestc==MAX||cc+dis[x[i-1]][x[j]]

{

swap(x,i,j);

cc+=dis[x[i-1]][x[i]];

backtrack(i+1);

cc-=dis[x[i-1]][x[i]];

swap(x,i,j);

}

}

}

int main()

{

int i;

for(i=1;i<=N;i++)

{

x[i]=i;

bestx[i]=i;

}

backtrack(2);

printf("bestc=%d\n",bestc);

for(i=1;i<=N;i++)

{

printf("%d ",bestx[i]);

}

getch();

return 0;

}

/*

int i,j;

for(i=0;i

{

for(j=0;j

{

printf("%3d ",dis[i][j]);

}

printf("\n");

}

*/

求解旅行商问题C语言的算法,【算法作业】用回溯法求解旅行商问题相关推荐

  1. 回溯法求解N皇后问题(Java实现)

    回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并以此慢慢地扩大问题规模,迭代地逼近最终问题的解.这种迭代类似于穷举并且是试探性的,因为当目前的可 ...

  2. 算法设计与分析 实验三 回溯法求解地图填色问题

    回溯法求解地图填色问题 一.实验目的与要求 1.实验基本要求: 2.实验亮点: 二.实验内容与方法 三.实验步骤与过程 1.未优化的回溯: (1)算法描述: (2)编程实现 (3)运行并测试: 2.对 ...

  3. java背包算法回溯法_【算法分析】实验 4. 回溯法求解0-1背包等问题

    [TOC] 实验内容 本实验要求基于算法设计与分析的一般过程(即待求解问题的描述.算法设计.算法描述.算法正确性证明.算法分析.算法实现与测试),通过回溯法的在实际问题求解实践中,加深理解其基本原理和 ...

  4. 拉斯维加斯算法结合回溯法求解n后问题

    实验8 拉斯维加斯算法结合回溯法求解n后问题 设stopVgas为采用拉斯维加斯算法随机排设的皇后个数,对n.stopVgas进行多组不同取值时,记录程序成功率.运行时间 ① 参考课件.教材.其它资料 ...

  5. 数据结构与算法(Python)– 回溯法(Backtracking algorithm)

    数据结构与算法(Python)– 回溯法(Backtracking algorithm) 1.回溯法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条 ...

  6. 【Java -- 算法】分治算法、动态规划、回溯法、贪心算法

    前言 一句话理解四种算法思想 分治:分而治之,先解决子问题,再将子问题的解合并求出原问题. 贪心:一条路走到黑,选择当下局部最优的路线,没有后悔药. 回溯:一条路走到黑,手握后悔药,可以无数次重来.( ...

  7. 回溯法求解旅行商问题

    回溯法求解旅行商问题 #include <iostream> #include <cstdlib> using namespace std; #define n 5 #defi ...

  8. 【算法导论07】回溯法-旅行售货员问题

    07回溯法-旅行售货员问题 问题描述: 已知有m个城市,城市之间由n条不同长度的道路相连.一个售货员从一座城市出发,途径所有城市,并最终回到原点,设计算法计算售货员所走的最短路径结点. 问题分析: 从 ...

  9. 回溯法解决tsp问题 matlab,回溯法求解tsp问题

    回溯法以这种工作方式递归地在解空间中搜索, 直至找到所 要求的解或解 空间中已无活结点时为止. 回溯法求解 TSP 问题,首先把所有的顶点的访问标志初始化为 0,...... 回溯法求解 TSP 问题 ...

  10. 【算法分析】实验 4. 回溯法求解0-1背包等问题

    目录 实验内容 实验目的 实验结果 步骤1:描述与分析 步骤2:策略以及数据结构 步骤3 步骤4 步骤5 步骤6 实验总结 实验内容 本实验要求基于算法设计与分析的一般过程(即待求解问题的描述.算法设 ...

最新文章

  1. CommunityServer研习心得(转)
  2. 字节Java高工面试:java软件开发工程师的市场薪资
  3. 引用用户控件图片无法
  4. 【解答】一个电动模型,每一组电池能让其行驶8分钟,一个充电器能同时给两组电池充电,一组充满需要15分钟,至少准备(?)组电池,(?)个充电器,可以让模型每次行驶完可以立即换电池行驶不用等待。
  5. 玩转mini2440开发板之【在Ubuntu 14.04下编译安装tslib 1.4版本】
  6. java open course_关于开闭原则 JavaDiscountCourse 类的设计
  7. AJAX,只是一种过渡技术吗?
  8. 使用PackageManager获得应用(包)信息
  9. centos 6.5 yum
  10. APU~ZPU全掌握!
  11. 31-管家婆家庭记账软件
  12. word自动生成目录和页码设置
  13. jzoj3457. 【NOIP2013模拟联考3】沙耶的玩偶
  14. python深浅拷贝应用_简述Python的深浅拷贝以及应用场景?
  15. Node-RED使用指南:5:设置管理员的登录密码
  16. Docker_数据卷容器
  17. 昨天刚扩容80G,今天C盘就爆满了?C盘莫名其妙少了60G,使用Spacesniff也扫描不出来
  18. 上海居住证办理 续办上海居住证全攻略
  19. 「短视频+社交电商」营销模式爆发式发展,带来的好处有什么?
  20. 【i.MX8 Linux】构建 i.MX8 Yocto Project 映像

热门文章

  1. C#中使用DateTimePicker控件显示修改日期时间
  2. easyui datagrid 返回数据正确 fit='true' 时不显示内容
  3. [数据库]简单SQL语句总结
  4. iOS 有用的代码片段
  5. linux版的lcx
  6. 第一篇读书笔记,关于UML和模式应用(1)--书籍简介
  7. python 多进程安全日志库 ConcurrentLogHandler 简介
  8. metasploit msfvenom使用实例
  9. How program works
  10. Android 中ContentProvider和Uri详解