rsmt-ts
TypeScript icon, indicating that this package has built-in type declarations

1.1.6 • Public • Published

Rectilinear Steiner Minimal Trees

Note: I'm not the original author of this library. I wasn't able to find the source of the original library, and wanted to update it, adding tests, making it work in browser and adding typescript support.

A library to obtain Rectilinear Steiner Minimal Trees.

For more info on the problem that this solves, check Rectilinear Steiner tree. This library implements a fast algorithm that provides exact (ie: minimal) solutions.

Usage

To use it, just do:

import rsmt from `rsmt-ts`

const nodes = [[0, 0], [1, 2], [4, 1], ...]
const solution = await rsmt(nodes)

/*
solution = {
  terminals: [[0, 0], [1, 2], [4, 1], ...],
  steiners: [[0, 1], ...],
  edges: [[[0, 0], [0, 1]], ...],
  edgeIds: [[1, -1], ...]
}
*/

Methods

Method Description
rsmt (default) Returns terminals, steiners and edges (note: edges seem to have issues, see resolution)
mst Compute edges of minimum spanning tree
getEdges Returns all edges between all points

Acknowledgements

This library is a reimplementation of the algorithms used in GeoSteiner, based on the paper "A New Exact Algorithm for Rectilinear Steiner Trees" (David M. Warme, 1997).

We also make use of an emscripten build of glpk, named glpk.js.

Thank you to Glue Digital who did the original npm module.

Dependencies (1)

Dev Dependencies (5)

Package Sidebar

Install

npm i rsmt-ts

Weekly Downloads

1,316

Version

1.1.6

License

MIT

Unpacked Size

151 kB

Total Files

5

Last publish

Collaborators

  • seveibar