博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TSP问题由标准格式转成简单格式(我的实验代码需要的格式)
阅读量:6306 次
发布时间:2019-06-22

本文共 2414 字,大约阅读时间需要 8 分钟。

  hot3.png

    最近从网上收集tsp问题实例,因为网上的格式较为复杂,于是进行了一些小的转换。从而成为简单的格式,用于我的实验代码输入。我的代码需要的格式是:先给出城市数N,然后列出N个 x y 坐标。转换的代码如下:包含一个转换程序transformOneProblem.cpp 和一个批量处理的python脚本。

1:  #include
2:  #include
3:  #include
4:   
5:   
6:  using namespace std;
7:   
8:  int main(int argc,char ** argv)
9:  {
10:      if(argc<2)
11:      {
12:          cout<<"error, you need paramete a file to transform"<
13:          exit(0);
14:      }
15:      ifstream in;
16:      in.open(argv[1]);
17:   
18:      int cityNum=0;
19:   
20:      int count=0;
21:      char c;
22:      string temp1,temp2,line;
23:      while(count<5)
24:      {
25:          getline(in,line);
26:          count++;
27:      }
28:   
29:      in>>temp1;
30:      in>>c;
31:      in>>temp2;
32:   
33:      cityNum=atoi(temp2.c_str());
34:   
35:      count=0;
36:      while(count<3)
37:      {
38:          getline(in,line);
39:          cout<
<
40:          count++;
41:      }
42:   
43:   
44:      ofstream out;
45:      string outname;
46:      string app="_formated";
47:      outname=argv[1]+app;
48:      out.open(outname.c_str(),ofstream::out);
49:   
50:      out<
<
51:
52:      int id,x,y,i;
53:      i=0;
54:      while(i
55:      {
56:          in>>id>>x>>y;
57:          out<
<<" "<
<
58:          cout<
<<" "<
<
59:          i++;
60:      }
61:   
62:      in>>temp1;
63:      if(temp1!="EOF")
64:      {
65:          cout<<"error in transforming file "<
<
66:      }
67:   
68:      in.close();
69:      out.close();
70:   
71:
72:  }

python脚本如下(主要是对多个文件进行批处理)

1:  #!/bin/python
2:  #coding=utf-8
3:  import os
4:  import sys
5:   
6:  #将allProblem.txt中的问题,用transformOneProblem进行formate。形成我们需要的格式的问题
7:  def transform():
8:      pro=[]
9:      infile=open(r'allProblem.txt')
10:      pro=infile.readlines();
11:   
12:      for p in pro:
13:          print p
14:          s=r"./transformOneProblem";
15:          ns=s+" "+p
16:          print ns
17:          #print ns
18:          #os.system("%s %s"("transformOneProblem",p))
19:          os.system(ns)
20:          print "exec "+ ns
21:          print
22:          #print "exec "+("%s %s"("transformOneProblem",p))
23:   
24:   
25:   
26:   
27:   
28:   
29:  transform()
30:   

     以后不管从网上哪里下载的标准TSP问题实例,我都可以通过这两个程序进行处理了。然后用于实验。哈哈

转载于:https://my.oschina.net/shewa/blog/81284

你可能感兴趣的文章
剑指offer第二版-1.赋值运算符函数
查看>>
javascript 对象
查看>>
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
查看>>
Echart:前端很好的数据图表展现工具+demo
查看>>
CATransform3D iOS动画特效详解
查看>>
Linux VNC黑屏(转)
查看>>
Java反射简介
查看>>
react脚手架应用以及iview安装
查看>>
shell学习之用户管理和文件属性
查看>>
day8--socket网络编程进阶
查看>>
node mysql模块写入中文字符时的乱码问题
查看>>
仍需"敬请期待"的微信沃卡
查看>>
分析Ajax爬取今日头条街拍美图
查看>>
内存分布简视图
查看>>
POJ 2918 求解数独
查看>>
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>