Balance Machines: A New Formalism for Computing

The Balance Machine is a newly proposed natural computational model that consists of components resembling physical balances. The model has only one operation, “balancing”, which suffices in principle to perform universal computation. An interesting feature of the balance machine is its bidirectional operation: it can compute “forwards and backwards”, i.e. both a function and its partial inverse can be computed spontaneously using the same machine. Also, the machine exhibits a different kind of parallelism—a “bilateral parallelism”. The aim of this note is two–fold: To introduce a formalism for computing with balance machines—a convenient notation for representing the mechanical model on paper, and to demonstrate its expressive power by solving two NP–complete problems, namely, Set Partition and Knapsack. 1 Computing without knowing how to count Standard theoretical formalisms and programming languages of mainstream computer science influence us to think of computation mainly in terms of arithmetic/logical operations and symbol processing. We introduce a new computing formalism which is not based on arithmetic/logic or symbol processing, but which can, in principle, serve the purpose of its classical, better–known counterparts. Our formalism pertains to computing with a Balance Machine, an unconventional mechanical model of computation first proposed in [1]. The idea of computing using a balance might seem bizarre. It can be explained with the following example which is hypothetical and rather crude, yet serves our purpose. Suppose there is an illiterate farmer who has no knowledge of numbers/numerals