Giter Club home page Giter Club logo

salesman.js's Introduction

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. Used as the input for solve.

Param Type Description
x number abscissa
y number ordinate

salesman~solve(points, [temp_coeff], [callback], [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.

Param Type Default Description
points Array.<Point> The points that the path will have to visit.
[temp_coeff] number 0.999 changes the convergence speed of the algorithm. Smaller values (0.9) work faster but give poorer solutions, whereas values closer to 1 (0.99999) work slower, but give better solutions.
[callback] function An optional callback to be called after each iteration.
[callback] function euclidean An optional argument to specify how distances are calculated. The function takes two Point objects as arguments and returns a number for distance. Defaults to simple Euclidean distance calculation.

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.

salesman.js's People

Contributors

lovasoa avatar elitemastereric avatar kikawet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.