【学习】LKH求解器使用

下载

Linux系统中,下载LKH求解器,目前更到3.0.9了

wget http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.9.tgz
tar xvfz LKH-3.0.9.tgz
cd LKH-3.0.9
make

测试

运行在LKH-3.0.9里的名为LKH的可执行文件,并带上参数表.par文件

// 求解TSP问题
./LKH pr2392.par 

//求解mTSP问题(多旅行商问题)
./LKH whizzkids96.par

结果如下

…… 省略了些 主要是后面显示success

* 1: Cost = 378787, Gap = 0.1997%, Time = 0.21 sec. 
* 3: Cost = 378634, Gap = 0.1592%, Time = 0.27 sec. 
* 4: Cost = 378615, Gap = 0.1542%, Time = 0.32 sec. 
* 8: Cost = 378032, Gap = 0.0000%, Time = 0.50 sec. =
Run 9: Cost = 378032, Gap = 0.0000%, Time = 0.50 sec. =

* 1: Cost = 378032, Gap = 0.0000%, Time = 0.15 sec. =
Run 10: Cost = 378032, Gap = 0.0000%, Time = 0.15 sec. =

Successes/Runs = 10/10 
Cost.min = 378032, Cost.avg = 378032.00, Cost.max = 378032
Gap.min = 0.0000%, Gap.avg = 0.0000%, Gap.max = 0.0000%
Trials.min = 1, Trials.avg = 5.8, Trials.max = 29
Time.min = 0.14 sec., Time.avg = 0.30 sec., Time.max = 0.61 sec.
Time.total = 6.39 sec.

par文件参数说明

PROBLEM_FILE 指的是包含路径点信息的tsp、atsp文件路径
OPTIMUM 指的是已知的最佳路径长度,是结束判断的条件之一
RUNS指的是循环计算路径的轮数,是结束判断的条件之一
MAX_TRIALS每轮run的最大试验次数
MOVE_TYPE指定本地搜索中使用的移动类型。数值可以是 2、3、4 或 5,表示使用 2-opt、3-opt、4-opt 还是 5-opt。默认值:5
SEED随机数生成的初始种子
TOUR_FILE最好的tour的名称及输出路径

tsp/atsp等文件参数说明

DIMENSION 点数

下面的内容可选的类型都在TSPLIB_DOC.pdf文件中,一共两部分

规格部分
TYPE包含TSPLIB_DOC.pdf文件中的不同类型
EDGE_WEIGHT_TYPE城市之间代价计算方法
pr2392 是用的欧式距离
whizzkids96 是用的EXPLICIT,明确点间代价
EDGE WEIGHT FORMAT 当选用EXPLICIT类型时,对代价的类型描述
whizzkids96 是用的dimension * dimension 的矩阵

数据部分
pr2392用的 NODE_COORD_SECTION 即给出所有的点的二维坐标
whizzkids96 用的 EDGE_WEIGHT_SECTION 则是所有点间的权重,与dimension相关

自定义

对应上面的参数生成自己的par和不同问题的tsp、atsp等对应文件格式
mark一下:c++的调用方法有人GitHub开源了个清楚的
https://github.com/dringakn/lkh_tsp_solver
一个tsp数据集的网站
http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值