alberto-santini / orienteering-alns Goto Github PK
View Code? Open in Web Editor NEWAdaptive Large Neighbourhood Search for the Orienteering Problem
License: GNU General Public License v3.0
Adaptive Large Neighbourhood Search for the Orienteering Problem
License: GNU General Public License v3.0
Hi! Could you add instructions on how to compile/use? Thanks!
Due to an issue in the generation of Gen3 scores in OPLib, the results for the instances a280
, fnl4461
, nrw1379
, rat195
, rat575
, rat783
, rat99
, tsp225
are outdated. I would like to rerun the code to update the results of those instances.
I just want to ensure that I am using the right parameter configuration.
The Params.json file in your ALNS library with the following changes (according to Table 2 in the paper):
{
"prerun-iterations": 1000,
"total-iterations": 150000,
"timeout-s": 60,
"iters-without-improvement-max": 5000,
"iters-without-improvement-alarm": 1000,
"iterations-without-syncing-threads": 1,
"prob-return-to-best-known": 0.0,
"acceptance-criterion-possible-values": [
"Hill climbing",
"Simulated annealing",
"Threshold acceptance",
"Great deluge",
"Record-to-record travel",
"Late acceptance hill climbing",
"Non-Linear Great Deluge",
"Worse accept",
"Conservative worse accept",
"Discreet worse accept",
"Random walk",
"Custom"
],
"acceptance-criterion": "Simulated annealing",
"acceptance-params-base-possible-values": [
"time", "iterations"
],
- "acceptance-params-base": "time",
+ "acceptance-params-base": "iterations",
"scores": {
- "accepted": 2.0,
- "improved": 4.0,
- "global-best": 10.0,
- "decay": 0.99
+ "accepted": 3.0383,
+ "improved": 5.3385,
+ "global-best": 15.3815,
+ "decay": 0.4314
},
"parameter-tuning-file": "ParTuningResults.txt",
"results-log-basename": "Summary",
"acceptance": {
"simulated-annealing": {
"init-ratio-50p": 0.9,
"end-ratio-50p": 0.01,
"end-ratio-50p-refers-to-initial": false,
"temperature-decrease-is-linear": false,
"reheating": false,
"reheating-coefficient": 5.0,
"reheating-times": 2,
"magic-number-exponent": 1.0
},
"threshold-acceptance": {
- "start-threshold": 0.05,
+ "start-threshold": 0.0039,
"end-threshold": 0.001,
"threshold-decrease-is-linear": true
},
"great-deluge": {
"initial-water-level-ratio": 1.1,
"water-level-decrease-pct": 0.01
},
"record-to-record": {
"start-deviation": 0.1,
"end-deviation": 0.01,
"deviation-decrease-is-linear": true
},
"late-acceptance-hill-climbing": {
"list-size": 5000,
"allow-non-worsening": true
},
"non-linear-great-deluge": {
"initial-water-level-ratio": 1.0,
"gap-to-increase-water-level": 0.01,
"water-level-increase-pct": 0.05,
"water-level-decrease-exp-factor": 0.01
},
"worse-accept": {
"start-probability": 0.1,
"end-probability": 0.01,
"probability-decrease-is-linear": false
},
"conservative-worse-accept": {
"start-probability": 0.1,
"end-probability": 0.01,
"probability-decrease-is-linear": false
},
"discreet-worse-accept": {
"consecutive-rejects-for-100p": 5,
"probability-increase-is-linear": true
}
}
}
The following problem-specific parameters:
{
"destroy" : {"enable_random" : true},
"repair" : {"enable_greedy" : true},
"initial_solution" : {
"local_search" : true
},
"local_search_use" : {
"use_2opt" : false,
"use_tsp" : false,
"fill_tour" : true
}
}
You might prefer to rerun the modified instances in your workstation. However, I will create a PR with the updated results in case you want to include them.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.