Skip to content

ignatisD/nearest-neighbor

Repository files navigation

view on npm license Tests codecov semantic-release Commitizen friendly

NearestNeighbor

Brute forcing the nearest neighbor problem.

Author: Ignatios Drakoulas
License: MIT

NearestNeighbor~Point

Kind: inner class of NearestNeighbor

new Point(x, y)

Represents a point in two dimensions.

Param Type Description
x Number abscissa
y Number ordinate

NearestNeighbor~sortBruteForce(neighbors, [distanceFn]) ⇒ Array.<Point> | Array.<any>

Sorts all the neighbors by their respective distance starting from the first

Kind: inner method of NearestNeighbor

Param Type Description
neighbors Array.<Point> | Array.<any> The array of Point elements
[distanceFn] function Optional, distSquared will be used if none provided

Example

var nn = require("NearestNeighbor.js");
var neighbors = [
      {x: 5, y: 5},
      {x: 3, y: 3},
      {x: 4, y: 4},
      {x: 1, y: 1},
      {x: 2, y: 2},
      //other points
 ];
var ordered_neighbors = nn.sortBruteForce(neighbors);
// ordered_neighbors now contain the neighbors, in the order they ought to be visited.

NearestNeighbor~getNearestIndex(home, neighbors, [distanceFn]) ⇒ number

Returns the nearest, relative to the provided home point, neighbor's index from the array of neighbors

Kind: inner method of NearestNeighbor

Param Type Description
home Point | any The reference Point
neighbors Array.<Point> | Array.<any> The array of Point elements
[distanceFn] function Optional, distSquared will be used if none provided

Example

var nn = require("NearestNeighbor.js");
var home = {x: 6, y: 6};
var neighbors = [
      {x: 4, y: 4},
      {x: 3, y: 3},
      {x: 5, y: 5},
      {x: 1, y: 1},
      {x: 2, y: 2},
      //other points
 ];
var index = nn.getNearestIndex(home, neighbors);
// index will equal 2, because {x: 5, y: 5} is
// the nearest neighbor for {x: 6, y: 6} which is the home point

NearestNeighbor~getNearest(home, neighbors, [distanceFn]) ⇒ Point | any

Returns the nearest neighbor, relative to the provided home point, from the given array of neighbors

Kind: inner method of NearestNeighbor

Param Type Description
home Point | any The reference Point
neighbors Array.<Point> | Array.<any> The array of Point elements
[distanceFn] function Optional, distSquared will be used if none provided

Example

var nn = require("NearestNeighbor.js");
var home = {x: 6, y: 6};
var neighbors = [
      {x: 5, y: 5},
      {x: 3, y: 3},
      {x: 4, y: 4},
      {x: 1, y: 1},
      {x: 2, y: 2},
      //other points
 ];
var neighbor = nn.getNearest(home, neighbors);
// neighbor will equal {x: 5, y: 5}, because {x: 5, y: 5} is
// the nearest neighbor for {x: 6, y: 6} which is the home point

Copyright © 2021 Ignatios Drakoulas