The tile assembly model, a formal model of crystal growth, is of special interest to computer scientists and mathematicians
because it is universal [1]. Therefore, tile assembly model systems can compute all the functions that computers compute.
In this paper, I formally define what it means for a system to nondeterministically decide a set, and present a system that
solves an NP-complete problem called SubsetSum. Because of the nature of NP-complete problems, this system can be used to
solve all NP problems in polynomial time, with high probability. While the proof that the tile assembly model is universal [2]
implies the construction of such systems, those systems are in some sense “large” and “slow.” The system presented here uses
49 = Θ(1) different tiles and computes in time linear in the input size. I also propose how such systems can be leveraged to program
large distributed software systems.