  In this paper we suggest analytical methods and associated algorithms for
determining the sum of the subsets $X_m$ of the set $X_n$ (subset sum problem).
Our algorithm has time complexity $T=O(C_{n}^{k})$ ($k=[m/2]$, which
significantly improves upon all known algorithms. This algorithm is applicable
to all NP-complete problems. Moreover, the algorithm has memory complexity
$M=O(C_n^k)$, which makes our algorithm applicable to real-world problems. At
first, we show how to use the algorithm for small dimensions $m=4 ,5 ,6 ,7 ,8$.
After that we establish a general methodology for $m>8$. The main idea is to
split the original set $X_n$ (the algorithm becomes even faster with sorted
sets) into smaller subsets and use parallel computing. This approach might be a
significant breakthrough towards finding an efficient solution to $NP$-complete
problems. As a result, it opens a way to prove the $P$ versus NP problem (one
of the seven Millennium Prize Problems).
