求解旅行商问题C语言的算法,【算法作业】用回溯法求解旅行商问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#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语言的算法,【算法作业】用回溯法求解旅行商问题相关推荐
- 回溯法求解N皇后问题(Java实现)
回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并以此慢慢地扩大问题规模,迭代地逼近最终问题的解.这种迭代类似于穷举并且是试探性的,因为当目前的可 ...
- 算法设计与分析 实验三 回溯法求解地图填色问题
回溯法求解地图填色问题 一.实验目的与要求 1.实验基本要求: 2.实验亮点: 二.实验内容与方法 三.实验步骤与过程 1.未优化的回溯: (1)算法描述: (2)编程实现 (3)运行并测试: 2.对 ...
- java背包算法回溯法_【算法分析】实验 4. 回溯法求解0-1背包等问题
[TOC] 实验内容 本实验要求基于算法设计与分析的一般过程(即待求解问题的描述.算法设计.算法描述.算法正确性证明.算法分析.算法实现与测试),通过回溯法的在实际问题求解实践中,加深理解其基本原理和 ...
- 拉斯维加斯算法结合回溯法求解n后问题
实验8 拉斯维加斯算法结合回溯法求解n后问题 设stopVgas为采用拉斯维加斯算法随机排设的皇后个数,对n.stopVgas进行多组不同取值时,记录程序成功率.运行时间 ① 参考课件.教材.其它资料 ...
- 数据结构与算法(Python)– 回溯法(Backtracking algorithm)
数据结构与算法(Python)– 回溯法(Backtracking algorithm) 1.回溯法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条 ...
- 【Java -- 算法】分治算法、动态规划、回溯法、贪心算法
前言 一句话理解四种算法思想 分治:分而治之,先解决子问题,再将子问题的解合并求出原问题. 贪心:一条路走到黑,选择当下局部最优的路线,没有后悔药. 回溯:一条路走到黑,手握后悔药,可以无数次重来.( ...
- 回溯法求解旅行商问题
回溯法求解旅行商问题 #include <iostream> #include <cstdlib> using namespace std; #define n 5 #defi ...
- 【算法导论07】回溯法-旅行售货员问题
07回溯法-旅行售货员问题 问题描述: 已知有m个城市,城市之间由n条不同长度的道路相连.一个售货员从一座城市出发,途径所有城市,并最终回到原点,设计算法计算售货员所走的最短路径结点. 问题分析: 从 ...
- 回溯法解决tsp问题 matlab,回溯法求解tsp问题
回溯法以这种工作方式递归地在解空间中搜索, 直至找到所 要求的解或解 空间中已无活结点时为止. 回溯法求解 TSP 问题,首先把所有的顶点的访问标志初始化为 0,...... 回溯法求解 TSP 问题 ...
- 【算法分析】实验 4. 回溯法求解0-1背包等问题
目录 实验内容 实验目的 实验结果 步骤1:描述与分析 步骤2:策略以及数据结构 步骤3 步骤4 步骤5 步骤6 实验总结 实验内容 本实验要求基于算法设计与分析的一般过程(即待求解问题的描述.算法设 ...
最新文章
- CommunityServer研习心得(转)
- 字节Java高工面试:java软件开发工程师的市场薪资
- 引用用户控件图片无法
- 【解答】一个电动模型,每一组电池能让其行驶8分钟,一个充电器能同时给两组电池充电,一组充满需要15分钟,至少准备(?)组电池,(?)个充电器,可以让模型每次行驶完可以立即换电池行驶不用等待。
- 玩转mini2440开发板之【在Ubuntu 14.04下编译安装tslib 1.4版本】
- java open course_关于开闭原则 JavaDiscountCourse 类的设计
- AJAX,只是一种过渡技术吗?
- 使用PackageManager获得应用(包)信息
- centos 6.5 yum
- APU~ZPU全掌握!
- 31-管家婆家庭记账软件
- word自动生成目录和页码设置
- jzoj3457. 【NOIP2013模拟联考3】沙耶的玩偶
- python深浅拷贝应用_简述Python的深浅拷贝以及应用场景?
- Node-RED使用指南:5:设置管理员的登录密码
- Docker_数据卷容器
- 昨天刚扩容80G,今天C盘就爆满了?C盘莫名其妙少了60G,使用Spacesniff也扫描不出来
- 上海居住证办理 续办上海居住证全攻略
- 「短视频+社交电商」营销模式爆发式发展,带来的好处有什么?
- 【i.MX8 Linux】构建 i.MX8 Yocto Project 映像