Subset Sum(dpss)
What is subset sum problem?
Assuming there is a list of integers (such as [1, 2, 3, 6, -9, 11]), and another integer (such as 6), subset sum problem is the question to answer the subsets that sum to the specified integer. In this case, the answer is [1, 2, 3] and [-9, 1, 3, 11].
For detail information of subset sum problem, please refer to https://en.wikipedia.org/wiki/Subset_sum_problem
What is DPSS?
DPSS provides a tool to solve this problem without any specialized math knowledge.
It also offers a method to solve multiple subset sum problem. For example, if you are a travel planner, and you have to allocate families to some cars, you can count on this tool to make a plan of allocation. Given each member of the family are [2, 3, 2, 4, 5, 3, 2] and the capacities of each car are [4, 5, 8, 4], you can allocate the families to the cars as follows:
[pattern => [([4, ] [4, ]), ([2, 2, ] [4, ]), ([2, 3, ] [5, ]), ([3, 5, ] [8, ])] , pattern => [([4, ] [4, ]), ([5, ] [5, ]), ([2, 2, ] [4, ]), ([2, 3, 3, ] [8, ])] ]
How to use DPSS?
The easiest way to use this tool is the Google Colab Notebook that I made. I also explain the other ways in https://github.com/europeanplaice/subset_sum .
Or, there is a WebAssenbly implementation. But, it is not stable and I’m still working on it.
What are the applications of subset sum problem and this tool?
This tool can be used in bank reconciliation. Here is a Google Colab Notebook that shows the example of the usage of DPSS in bank reconciliation. Inside of this example, a function of solving multiple subset sum problem is used.