Package Exports
- unique-grouping
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (unique-grouping) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
unique-grouping
Groups list of individuals into K unique groupings of N groups using simulated annealing.
Please consider following this project's author, SwiftWinds, and starring the project to show your ❤️ and support.
Installation
Install with npm:
$ npm install --save unique-grouping
Usage
const UniqueGrouping = require("unique-grouping");
const people = [ // people to group
"Alleson",
"Brad",
"Charlie",
"Danielle",
"Fredric",
"George",
"Harriet",
"Ivan",
"Jenny",
"Karen",
"Laura",
"Mona",
"Nathan",
"Olive",
"Penelope",
"Rachel",
"Stan",
"Tom"
];
const history = [ // previous groupings
[
["Harriet", "Karen", "Charlie", "Brad"],
["Nathan", "Rachel", "Ivan"],
["George", "Penelope", "Olive", "Danielle"],
["Jenny", "Tom", "Alleson", "Laura"],
["Stan", "Fredric", "Mona"]
],
[
["Alleson", "Mona", "Penelope", "Rachel"],
["Laura", "Ivan", "Charlie"],
["Tom", "Brad", "George"],
["Karen", "Nathan", "Fredric", "Olive"],
["Stan", "Jenny", "Danielle", "Harriet"]
]
];
// people to be seperated at all costs
const forbiddenPairs = [["Alleson", "Brad"], ["Fredric", "Tom"]];
// target size of each group
const groupSize = 4;
UniqueGrouping(people, history, forbiddenPairs, groupSize).then(grouping => {
console.log(grouping);
//=> [
// [ 'Brad', 'Rachel', 'Laura', 'Fredric' ],
// [ 'Charlie', 'Jenny', 'Olive', 'Mona' ],
// [ 'Penelope', 'Ivan', 'Harriet', 'Tom' ],
// [ 'Alleson', 'Nathan', 'Danielle' ],
// [ 'George', 'Karen', 'Stan' ]
// ]
});
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.