%0 Journal Article
%A Traversa, Fabio Lorenzo
%A Ramella, Chiara
%A Bonani, Fabrizio
%A Di Ventra, Massimiliano
%T Memcomputing *NP*-complete problems in polynomial time using polynomial resources and collective states
%D 2015
%R 10.1126/sciadv.1500031
%J Science Advances
%P e1500031
%V 1
%N 6
%X Memcomputing is a novel non-Turing paradigm of computation that uses interacting memory cells (memprocessors for short) to store and process information on the same physical platform. It was recently proven mathematically that memcomputing machines have the same computational power of nondeterministic Turing machines. Therefore, they can solve NP-complete problems in polynomial time and, using the appropriate architecture, with resources that only grow polynomially with the input size. The reason for this computational power stems from properties inspired by the brain and shared by any universal memcomputing machine, in particular intrinsic parallelism and information overhead, namely, the capability of compressing information in the collective state of the memprocessor network. We show an experimental demonstration of an actual memcomputing architecture that solves the NP-complete version of the subset sum problem in only one step and is composed of a number of memprocessors that scales linearly with the size of the problem. We have fabricated this architecture using standard microelectronic technology so that it can be easily realized in any laboratory setting. Although the particular machine presented here is eventually limited by noiseâ€”and will thus require error-correcting codes to scale to an arbitrary number of memprocessorsâ€”it represents the first proof of concept of a machine capable of working with the collective state of interacting memory cells, unlike the present-day single-state machines built using the von Neumann architecture.
%U http://advances.sciencemag.org/content/advances/1/6/e1500031.full.pdf