2.0.4 • Published 6 years ago

salesman.js v2.0.4

Weekly downloads
34
License
Apache v2
Repository
github
Last release
6 years ago

salesman

See: demo
Author: Ophir LOJKINE salesman npm module

Good heuristic for the traveling salesman problem using simulated annealing.

salesman~Point

Kind: inner class of salesman

new Point(x, y)

Represents a point in two dimensions.

ParamTypeDescription
xNumberabscissa
yNumberordinate

salesman~solve(points, temp_coeff, callback=) ⇒ Array.<Number>

Solves the following problem: Given a list of points and the distances between each pair of points, what is the shortest possible route that visits each point exactly once and returns to the origin point?

Kind: inner method of salesman
Returns: Array.<Number> - An array of indexes in the original array. Indicates in which order the different points are visited.

ParamTypeDefaultDescription
pointsArray.<Point>The points that the path will have to visit.
temp_coeffNumber0.999changes the convergence speed of the algorithm: the closer to 1, the slower the algorithm and the better the solutions.
callback=functionAn optional callback to be called after each iteration.

Example

var points = [
      new salesman.Point(2,3)
      //other points
    ];
var solution = salesman.solve(points);
var ordered_points = solution.map(i => points[i]);
// ordered_points now contains the points, in the order they ought to be visited.