Skip to content

Commit

Permalink
updates, orderings et al..
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikos M committed Jun 24, 2016
1 parent 5288451 commit fa93008
Show file tree
Hide file tree
Showing 13 changed files with 521 additions and 448 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ see: `test/test.bat`
* `test/permutations-bigint.js`
* `test/combinations.js`
* `test/combinations_repeats.js`
* `test/powersets.js`
* `test/subsets.js`
* `test/tensors.js`
* `test/tuples.js`
* `test/partitions.js` **in-complete, in progress**
Expand All @@ -271,7 +271,7 @@ see: `test/test.bat`

most algorithms:

* are **linear** `O(n)` (or log-linear `O(nlgn)`) time and space algorithms
* are **linear** `O(n)` (or log-linear `O(nlgn)`) **time and space** algorithms
* are **statisticaly unbiased** (e.g uniform sampling methods)
* use **efficient successor methods** (e.g loopless methods / constant delay methods) to generate next/prev object from current object (supporting multiple combinatorial orderings along the way, see below)
* **avoid big-integer arithmetic and computational overhead** (except if explicit ranking / unranking is needed and objects are large)
Expand All @@ -281,7 +281,7 @@ most algorithms:

###Todo

* support **multiple custom iterator orderings**, i.e `LEX`, `COLEX`, `REVLEX`, `REVCOLEX`, `RANDOM`, `STOCHASTIC` (where applicable) seamlessly and uniformly [ALMOST DONE, NEW FEATURE]
* support **multiple custom iterator orderings**, i.e `LEX`, `COLEX`, `REVLEX`, `REVCOLEX`, `MINIMAL`, `RANDOM`, `STOCHASTIC` (where applicable) seamlessly and uniformly, both forward and backward [ALMOST DONE, NEW FEATURE]
* support **efficient ranking / unranking algorithms** and associated methods (preferably of `O(n)` or `O(nlgn)` complexity) for supported orderings [DONE]
* support **unique and uniform random ordering traversals** for all combinatorial objects, so that the space of a combinatorial object can be traversed in any random ordering uniquely and unbiasedly (useful in some applications, eg backtracking) [DONE, see reference, used as custom iterator ordering, see above]
* make sure the `.random` methods **uniformly and unbiasedly sample the combinatorial object space** (methods use unbiased sampling algorithms, however results in certain cases might depend on [quality of PRNGs](http://www0.cs.ucl.ac.uk/staff/d.jones/GoodPracticeRNG.pdf)) [DONE]
Expand Down
Loading

0 comments on commit fa93008

Please sign in to comment.