Implemented multidimensional exact subset sum in arbitrary precision and magnitude, arbFLSSS()
, and its distributed computing counterpart, decomposeArbflsss()
and arbFLSSSobjRun()
. A simple Bloom filter is added as an option to accelerate the algorithms.
Implemented the distributed computing infrastructure, decomposeMflsss()
and mFLSSSobjRun()
, for multidimensional subset sum.
Changed the timer from measuring total CPU time to measuring the elapsed wall time for multithreaded functions.
Bug fix. A typo in the code related to integer type selection resulted in crash of the multidimensional subset sum miner given superset size > 127.
Bug reported and fixed for FLSSS::FLSSS()
. At a certain step, the algorithm uses a relative error threshold to decide if two floats are equal. Due to limited numeric precision, in an unusual instance the algorithm ended up comparing two subset sums 1e-14 and 1.2e-14. These two sums should both equal 0 theoretically (superset has negative elements). A wrong decision was thus made upon the significant relative error between 1e-14 and 1.2e-14. Bug fix consists of shifting superset v
to nonnegative domain and scaling error bound ME
to 1 before mining. The rest functions are not affected by this incident.
Added namespaces to suppress link-time optimization warnings.
Bug fix. The previous branch-and-bound knapsack solver did not initialize containers with sufficient sizes. In rare cases a pointer would be realized at the end of the container.
Added a genetic algorithm with local heuristics for generalized assignment problem.
Implemented different algorithms for the binary knapsack and the generalized assignment problems. Functions prefixed with 'aux' (auxiliary) are new.
Future updates will dedicate to implementing existing foundational or state-of-the-art algorithms for combinatorial problems of interest. The implementation will focus on computing speed as usual.
Integerization for the generalized assignment solver is canceled. A new compact representation for cost matrix is implemented and accelerates mining speed.
Bug fix to the output format of GAP()
given no solution exists.
Package vignette is pushed to arXiv.