Solving the 3‐Satisfiability Problem Using Network‐Based Biocomputation

The 3‐satisfiability Problem (3‐SAT) is a demanding combinatorial problem that is of central importance among the nondeterministic polynomial (NP) complete problems, with applications in circuit design, artificial intelligence, and logistics. Even with optimized algorithms, the solution space that needs to be explored grows exponentially with the increasing size of 3‐SAT instances. Thus, large 3‐SAT instances require excessive amounts of energy to solve with serial electronic computers. Network‐based biocomputation (NBC) is a parallel computation approach with drastically reduced energy consumption. NBC uses biomolecular motors to propel cytoskeletal filaments through nanofabricated networks that encode mathematical problems. By stochastically exploring possible paths through the networks, the cytoskeletal filaments find possible solutions. However, to date, no NBC algorithm for 3‐SAT has been available. Herein, an algorithm that converts 3‐SAT into an NBC‐compatible network format is reported and four small 3‐SAT instances (with up to three variables and five clauses) using the actin–myosin biomolecular motor system are experimentally solved. Because practical polynomial conversions to 3‐SAT exist for many important NP complete problems, the result opens the door to enable NBC to solve small instances of a wide range of problems.


Introduction
The satisfiability problem (SAT) is a combinatorial decision problem that evaluates Boolean (binary) logic (see Textbox 1). Solving SAT is essential for technologies such as symbolic model checking, [1] planning in artificial intelligence, [2] automated theorem proving, [3] and hardware verification. [4] A specific representation of SAT, namely, the 3-SAT problem, is also increasingly recognized to be of scientific importance in its own right. For example, a recent study showed all Ising models, of fundamental importance in magnetism and beyond, [5,6] to be equivalent to instances of 3-SAT. [7] From a mathematical perspective, 3-SAT is considered to be the benchmark nondeterministic polynomialtime complete (NP complete) problem. [8] In addition, this problem is of particular interest because polynomial conversions to SAT exist for a wide range of other important NP complete problems. [9] Therefore, the The 3-satisfiability Problem (3-SAT) is a demanding combinatorial problem that is of central importance among the nondeterministic polynomial (NP) complete problems, with applications in circuit design, artificial intelligence, and logistics. Even with optimized algorithms, the solution space that needs to be explored grows exponentially with the increasing size of 3-SAT instances. Thus, large 3-SAT instances require excessive amounts of energy to solve with serial electronic computers. Network-based biocomputation (NBC) is a parallel computation approach with drastically reduced energy consumption. NBC uses biomolecular motors to propel cytoskeletal filaments through nanofabricated networks that encode mathematical problems. By stochastically exploring possible paths through the networks, the cytoskeletal filaments find possible solutions. However, to date, no NBC algorithm for 3-SAT has been available. Herein, an algorithm that converts 3-SAT into an NBC-compatible network format is reported and four small 3-SAT instances (with up to three variables and five clauses) using the actin-myosin biomolecular motor system are experimentally solved. Because practical polynomial conversions to 3-SAT exist for many important NP complete problems, the result opens the door to enable NBC to solve small instances of a wide range of problems.
ability to solve SAT enables solving a large number of different NP complete problems.
However, 3-SAT is conceptually simple; it is computationally demanding to solve in practice. Even though extensive efforts have been expended to solve 3-SAT on serial transistor-based computers, [10,11] only algorithms with exponential worst-case complexity have been developed. [11] Therefore, the processing time and the energy cost of solving a 3-SAT instance grow exponentially with problem size. The demand for more computational power, and the need for reducing the energy used in computation, therefore necessitate the search for energy-efficient alternatives to serial, electronic computers. [12,13] Network-based biocomputation (NBC) is an emerging approach that is expected to require orders of magnitude less energy than electronic computers. [14] So far, this approach has been used to solve a small instance of the NP-complete Subset Sum Problem (SSP), [14,15] and an optimized algorithm has been developed for solving Exact Cover with NBC. [16] In NBC, a given combinatorial problem is encoded into a graphical, modular network that, after implementation by nanofabrication, is explored in a parallel manner by biological agents. [15] This novel computation approach is an inherently stochastic method based on nondeterministic operation due to the random choice that agents make in the network. Similar to quantum computing, the output of NBC is a sample of the population of all possible solutions. [17] The result of NBC is therefore reported as the solution of the problem instance together with a statistical confidence interval. [14,15] Here we take a key step in demonstrating the general applicability of NBC to small instances of NP complete problems. We first present a new network algorithm for encoding 3-SAT instances in a graphic, planar layout suitable for NBC. We then implement this algorithm to experimentally solve four small instances of 3-SAT by allowing myosin-driven actin filaments to explore the nanofabricated network that encodes the problem. Finally, using a newly developed statistical approach, we confirm that our solutions are significant on a 99% confidence level.

3-SAT Network Algorithm
3-SAT (Textbox 1) is a variant of SAT that is restricted to a Boolean formula in conjunctive normal form (CNF), where each clause is limited to at most three literals. In 3-SAT, one asks whether the formula is satisfiable by assigning appropriate logical values to its variables. In the present study, we map 3-SAT to a spatially encoded NBC network that solves the mathematical problem. The network encoding is a critical step in implementing NBC for a given NP complete problem. We encode 3-SAT into network format in five steps. Briefly (see below for a detailed explanation including examples): Step 1: Literal assignments are encoded as binary numbers reflecting specific clauses that are satisfied by the respective literals. [3,18] Step 2: The binary numbers are represented by unary encoding in a planar network.
Step 3: The bitwise 'OR' operation is realized as an 'OR-block' in the unary network via several types of junctions.
Step 4: The entire 3-SAT instance is represented in a network consisting of one 'OR-block' per variable.
Step 5: The network is further optimized to reduce the physical size ( Figure 2). Satisfiability of the instance is tested at the target exit representing TRUE assignment for all clauses via the readout of the number of exiting computing agents. Notably, the algorithm for network design (Steps 1-5) scales polynomially with network size and requires no prior information about the solution.
As a minimal example, we use the 3-SAT instance Φ 1 with two variables (x 1 and x 2 ) and four clauses: Table 1) Φ 1 was chosen such that exactly one assignment (x 1 = TRUE, x 2 = TRUE) satisfies the logical statement. In addition, we also solve three other instances, namely, Φ 2, (two variables, four clauses, no solution), Φ 3 (three variables, five clauses, one solution), and Φ 4 (three variables, five clauses, no solution). A propositional logic formula, also called Boolean expression, is built from variables, operators AND (conjunction, also denoted by ∧), OR (disjunction, ∨), NOT (negation, ¬), and parentheses. For example: A literal is either a variable, called positive literal (e.g., x 1 ), or the negation of a variable, called negative literal (e.g., ¬x 1 ).
A clause is a collection of literals enclosed in parentheses (e.g., A formula is in conjunctive normal form (CNF) or clausal normal form if it is a conjunction of one or more clauses. In CNF, all clauses are disjunctions (OR). Any propositional logic formula can be represented in CNF form.
The Boolean satisfiability problem (SAT) is the problem of determining whether there exists an assignment of values to its variables that makes the formula Φ TRUE. The formula is said to be satisfiable then and unsatisfiable otherwise. The example given above has the solution x 1 = TRUE and x 2 = TRUE.
In 3-SAT, formulas are in 3-CNF, in which each clause is limited to at most three literals. Any CNF formula can be converted to 3-CNF.
Technically, Φ 1 and Φ 2 are instances not only of 3-SAT but also of 2-SAT, which is not NP-complete. However, we deliberately chose these very simple instances in order to facilitate understanding how the algorithm works. We use Φ 1 as an example to explicitly walk through the five steps of the network encoding algorithm: Step 1: Binary Representation of 3-SAT Instance Φ 1 In the CNF representation of 3-SAT, any variable assignment will either fulfil a clause (the result of the clause is TRUE) or not. Thus, an instance with c clauses and n variables can be represented by n pairs of c-digit binary numbers: each digit of the binary numbers represents a clause and each pair of binary numbers represents the two possible assignments for each variable. [3] The digit is binary 1 2 if the variable assignment fulfils the clause and 0 2 otherwise (the 2 in subscript indicates the binary base). For our minimal example Φ 1 , the TRUE assignment of x 1 (first row in Table 1) fulfils the first clause ðx 1 ∨ x 2 Þas well as the third clause ðx 1 ∨ ¬x 2 Þ, while the second ð¬x 1 ∨ x 2 Þ and fourth ð¬x 1 ∨ x 2 Þ clauses are not fulfilled. Therefore, the respective binary representation is 1010 2 . We give the complete binary representation for our minimal example Φ 1 in Table 1.
The whole 3-SAT instance is satisfiable if a combination with exactly one binary number from each pair can be found, such that the bitwise 'OR' operation for the combination returns all ones, indicating that each clause has been fulfilled. Table 2 lists all possible combinations of binary representations for Φ 1 . The combination (1010 2 Λ1101 2 = 1111 2 ) corresponding to x 1 = TRUE, x 2 = TRUE satisfies Φ 1 , indicating that this instance is satisfiable.

Step 2: Encoding of Numbers in the Network
In our spatial network encoding method, information is processed in a unary numeral system where a symbol (in our case the network column) representing 1 is repeated N-times to represent number N. In the network, we define the leftmost column as column '0,' so any agent in that column will represent the number '0'. Moving to the right, the number for each column increases in increments of 1. For example, in Figure 1a, from left to right, each column represents a number from 0 10 = 0000 2 to 7 10 = 0111 2 . An agent travelling in a given column thus represents the corresponding number. An example agent travelling along column 2 10 = 0010 2 is shown as an orange dashed line in Figure 1a.

Step 3: Bitwise OR Operation in Unary Encoding
Operations within the network are performed by connecting an input (entrance) row (at the top in Figure 1a,b) to the respective output (exit) row (near the bottom in Figure 1a,b). The network consists of a grid of individual junctions, where different types of junctions allow agents to travel either straight down-not changing the input-or diagonally downchanging the input by one for each row they travel (see Supporting Information for details). Thus, the number of network rows (and columns) required for each operation is the largest possible difference between input and output. By repeating the junctions at each column, the network block always performs the same operation with the same operand for a certain range of input columns. Figure 1b shows an illustrative example network that performs an OR operation with operand 0101 2 for all inputs from 0000 2 to 1000 2 . The number of rows in the network equals the value of the operand. Each input is connected to the respective output by first moving the respective number of rows straight down and then moving the respective number of rows diagonally down. Within the network, each input consists either of a reset-FALSE junction (see Table S2, Supporting Information for the junction layout) that ensures that agents move straight down (in case the input already contains the bit of the operand) or a reset-TRUE junction (see Table S2, Supporting Information for the junction layout) that forces agents to take the diagonal path and move to the right. All other junctions are pass junctions designed to ensure that agents stay on their respective paths (either straight down or diagonal). Placement of the reset-TRUE junctions is determined by checking if the binary number corresponding to the respective column and the operand have common '1' bits. In that case, the reset-TRUE junction is placed further down to move the agents fewer steps to the side and arrive at the correct result. For example, column 0000 2 has no common bits with the operand 0101 2 and thus the reset-TRUE junction is placed immediately at the entrance of the OR network block, guiding the agent to the correct exit at column 0101 2 (0000 2 ∨ 0101 2 = 0101 2 ; purple path 1 in Figure 1b). In contrast, column 0110 2 has the second bit in common with the operand 0101 2 . Therefore, the reset-TRUE junction is placed Table 1. Binary representations of instance Φ 1 . Binary numbers formed by the logical values from all four clauses. Each variable (x 1 and x 2 ) will generate one pair of binary numbers when assigned TRUE or FALSE. www.advancedsciencenews.com www.advintellsyst.com 0100 2 rows further down, guiding the agent to the correct exit at column 0111 2 (0110 2 ∨ 0101 2 = 0111 2 red path 2 in Figure 1b).

Step 4: Network Representation of 3-SAT
In the binary representation of 3-SAT, each variable is represented by two binary numbers (described in Step 1). In order to enable the agents to randomly explore all possible variable assignments, each agent chooses randomly between either of these two numbers and performs the bitwise OR operation for its current value with that number as an operand. This is achieved by encoding both numbers as operands into the same OR operation block in the network and then replacing the first reset-TRUE junction at each input with a junction that is designed such that input agents have a 50% chance to choose each variable assignment by moving either diagonally or straight down. If the first reset-TRUE junction is at the first row of the OR operation block, it is replaced by a split junction, that is designed to distribute agents arriving from the top or the left equally between both exits of the junction (see Table S2, Supporting Information for the junction layout). If the first reset-TRUE junction is at a lower row of the OR operation block, it is replaced by a split-top junction, that is designed to distribute agents arriving from the top equally between both junction exits but keep agents arriving from the left on the diagonal path (see Table S2, Supporting Information for the junction layout).
As an example, we show the network encoding of instance Φ 1 in Figure 2a. To illustrate the solving process, we have marked all the possible legal paths in the network for this instance (Figure 2a, green dashed lines). In this network, the variable x 2 is represented by the first OR block with the only input 0000 2 and the operands 1101 2 and 0010 2 (corresponding to the assignments x 2 = TRUE and x 2 = FALSE, respectively). In this first OR block, agents have a 50% chance to choose either operand and arrive at output 1101 2 or output 0010 2 (green dashed lines in Figure 2a). That way, agents entering the network stochastically pick either the assignment x 2 = TRUE (corresponding to the binary number 1101 2 , encoding fulfilment of clauses ðx 1 ∨ x 2 Þ, ð¬x 1 ∨ x 2 Þ, and ð¬x 1 ∨ x 2 Þ) or the assignment x 2 = FALSE (corresponding to the binary number 0010 2 , encoding fulfilment of clause ðx 1 ∨ ¬x 2 Þ). The output of the first OR operation block in row 13 of the network acts as the input for the next 'OR' operation block that represents variable x 1 . There, agents randomly pick the binary number operands 10 10 2 (x 1 = TRUE) or 0101 2 (x 1 = FALSE). Thus, agents that arrived at column 0010 2 will exit the second OR operation block at columns 0111 2 or 1010 2 , while agents that arrived at column 1101 2 will exit at columns 1101 2 or 1111 2 .
By observing column 1111 2 , the satisfiability of the instance can be checked. If agents can find a way through the network and exit at column 1111 2 , this indicates that there exists one combination for assignments to x 1 and x 2 that satisfies the formula. During the operation of a network device, the solution can be read out by following the legal path leading to column 1111 2 .
In the example given in Figure 2a, the solution is x 1 = TRUE (1010 2 ) and x 2 = TRUE (1101 2 ).

Step 5: Network Optimization
Finally, we optimized the network by reducing its physical size before nanofabrication. A smaller network is cheaper to fabricate www.advancedsciencenews.com www.advintellsyst.com and can be explored by fewer agents in a shorter time. Specifically, we first replaced the single entrance at the top with two separate entrances, placed at the two columns that represent the two binary numbers for the first variable (see Figure 2a (entire network) compared with Figure 2b (optimized version of network in 2a). By doing this, we removed the variable space for the first variable, reducing the travelling distance for all agents. Moreover, with two entrances, more agents can enter the network at the same time, increasing operation speed. Second, we truncated the rows to the left of the first variable, because that part of the network is not explored by agents moving correctly according to the network design. Third, recognizing that we need to record the network output only at the one column that represents the all-one binary number (target exit, see step 4), we removed all columns to the right of that column. The optimized network encoding instance is significantly smaller than the original design (compare Figure 2a,b) but still explores all nontrivial, possible solutions, and its creation requires no prior knowledge of the solution. The network layout for all the instances can be found in Supporting Information S3-S6, Supporting Information.

Experimental Demonstration
In order to demonstrate that the network algorithm works in practice and to analyze the error rates of the 3-SAT networks, we fabricated four networks that encode small 3-SAT instances with up to three variables and five clauses. As biological agents, we used actin filaments that were propelled by myosin II motor fragments (heavy meromyosin) along the surface in gliding motility assays. [19][20][21][22][23] Actin filaments are highly flexible with a very low escape rate from nanochannels, [21] when propelled by fast myosin II molecular motors from skeletal muscle. With a speed of up to 15 μm s À1 , a high value among biomolecular motors, [24] this motor-filament combination enables fast computation. [20,21,[24][25][26][27][28][29][30] Reliable guiding of agents through the network was enabled by two features: 1) physical guiding, provided by channels that are patterned into a layer of polymer to form a network, and 2i) chemical guiding, achieved by selectively functionalizing only the floor of the channels to enable actin-myosin motility. As a result of (1) and (2), the filaments can only attach to the channel floors where they are propelled by motors and move, guided by channel walls. [21] Recent improvements of the actomyosin function and longevity in nanofabricated networks [31] have been instrumental in facilitating the effective use of this motor-filament system for the present purpose. The general layout of the networks implementing the algorithm explained earlier is shown in Figure 3a with details of the key junctional elements given in Figure 3b-f (see also Table S2, Supporting Information). The width of the network channels was 100 nm with a wall height of 400 nm. Two loading zones (rows of large heart shapes in Figure 3a) were placed to guide filaments to enter the network from columns representing numbers corresponding to one variable (here at column 2 and column 13, see Figure 3a,g). One row of rectifier structures was introduced at the bottom of the network to stop filaments from re-entering the network. One long outer channel was introduced between exits and loading zones to recirculate the filaments.  The corresponding detailed physical layout of the junctions is shown in Figure 3. b) The optimized spatially encoded network design for 3-SAT instance Φ 1 following step 5. c,d) Schematics of split junction, and split top junction, in which the yellow and blue dashed lines represent the paths of filaments starting from left and right entrances, respectively.
www.advancedsciencenews.com www.advintellsyst.com The devices were then operated using an in vitro motility assay, [19] where fluorescently labelled actin filaments from the solution were collected in loading zones from where they were guided by nonlabeled myosin-II motor fragments to explore the network. To read out the results, fluorescence timelapse movies of the process were recorded (see details in the Experimental Section).
The data in Figure 4a, based on such recordings, show the standard deviation projection of the resulting time series. In this projection, more frequently travelled paths appear brighter. Each straight part of the paths at the bottom represents one exit. Quantitatively, the distribution of the filaments leaving each exit was obtained by counting the filaments in image sequences where each filament was tracked (blue bars, Figure 4b). Similarly, the error rate at pass junctions was determined to be 2.20% AE 0.09% by counting the fraction of agents that take a turn at pass junctions (567) divided by the total number of pass junction crossing events (25 748).
In our algorithm, the satisfiability of the formula is determined by whether there are filaments that leave the network at the target exit, that is, at column 15 corresponding to 1111 2 for problems Φ 1 (Figure 2a) and Φ 2 , or column 31 corresponding to 11111 2 for problem Φ 3 and Φ 4 , respectively. However, in a real device, filaments may inadvertently turn incorrectly at pass junctions and exit at incorrect columns (not following the rules of the networks), thus creating a background of errors in the filament distribution histogram. Therefore, we have to be able to distinguish correct results for a given exit, where filaments arrive while following the rules of the junctions in the network, and incorrect results, where filaments arrive at a given exit due to wrong turns.

Quantifying the Significance of Computation using Statistical Analysis
NBC is inherently stochastic and thus delivers answers with a confidence level lower than 1 (100%). Calculating the confidence level is thus an integral part of solving a problem instance. To quantitatively assess the computation result from NBC, we developed a statistical method to estimate the probability that the results measured for each network indicate that the corresponding problem instance is satisfiable. For the networks encoding 3-SAT instances, this is equivalent to estimating the probability that the target exit corresponds to a correct result.
The statistical analysis is described in detail in Supporting Information (section "Statistical evaluation of the experimental results"). Briefly, we begin by estimating the fraction of useful agents (those that do not make wrong turns at any pass junction) from the average number of pass junctions that agents will travel through and the fractional error per pass junctions ( f, see the Supplementary Materials and Methods). We then calculated the expected number of agents that follow a legal path and an illegal path using the normal approximation of a binomial distribution and arrived at a z-score-based calculation of a significance level that also corresponds to a certain confidence. Comparing the experimental readout to the expected values (Figure 4b) resulting from our analysis, instances Φ 1 and Φ 3 are satisfied www.advancedsciencenews.com www.advintellsyst.com with a 99% confidence level. In contrast, our results suggest that the instances Φ 2 and Φ 4 are unsatisfied with a 99% confidence level.

Scaling Considerations
To estimate requirements for scaling our 3-SAT NBC algorithm to solving larger 3-SAT instances, we consider a benchmark instance with eight clauses and ten variables, which results in a network similar in size to a current electronic CPU: The network will have %2300 rows corresponding to a chip of %24 Â 24 mm 2 , which is certainly feasible to fabricate. It is also fully reasonable to explore a network of this size using the actomyosin system, in view of the recently achieved longevity of motile function for several hours to almost a day [31] and a gliding velocity of %10 μm s À1 . To avoid a majority of filaments crossing the network making errors, the error rate at pass junctions needs to be below 0.07%, [15] a factor of 4 better than the best error rate reported for an NBC calculation so far [15] and achievable with error-free 3D junctions. [32] To ensure that a sufficient number of agents explore this network, %50 000 actin filaments are required, [14,33] which corresponds to %5 Â 10 À10 mg actin, an amount that is available at a very low cost. Third, agents need to be detected efficiently at exits, for example, using electrical/ optical sensors. [34][35][36] It is important to note that energy consumption would not pose any limitation due to the energy efficiency of the biomolecular motors. [14] The above developments all build on available technology and would thus be, in principle, readily achievable. However, the reliability of components such as 3D junctions and sensors would need to be improved and fully integrated into the networks, making the developments outside the scope of the present work. Concluding from these considerations, the major limiting factor for further scale-up of the SAT network encoding presented here is the unary encoding. The unary encoding requires that the networks grow exponentially with the number of clauses in the SAT problem. For example, each OR operation block needs 8 rows (and 8 columns) for 3 clauses, 32 rows for 5 clauses, and 256 rows for 8 clauses. The number of OR operation blocks required is one less than the number of variables. Thus, the network grows exponentially with the number of clauses and linearly with the number of variables (i.e., S ∝ 2 c ∨ n, where S is the network size, c is the number of clauses and n is the number of variables). Notably, the energy required to fabricate the network, and the run time of the network design algorithm, both are proportional to the network size and thus have the same scaling behavior as the network itself. With the current network design, an instance with 8 clauses and 10 variables would require a network with 256 Â 10 junction rows and columns. With a size of an individual junction of %10 Â 10 μm, this results in a network of %26 Â 26 mm 2 , similar in size to a current CPU. Given that the fabrication technologies for CPU and biocomputation network are similar, the energy required for fabricating such a network would also be similar. This suggests that, in order to avoid exponential scaling of the network, it will be important to store information about the agent path in binary encoding-preferably on the agents themselves, rather than in the network. See Section 4 in ref. [37] for an example of how SAT could be solved with information stored on the agents. The corresponding network is independent in size of the number of clauses and ). For the target column (15 for Φ 1 , Φ 2 and 31 for Φ 3 , Φ 4 , shown in red boxes in (a)), values above the magenta bar are significantly correct exits (p < 0.01, corresponding to 99% confidence level, see the Supporting Information-1), values below the green bar are significantly incorrect exits (p < 0.01, see the Supporting Information-1). Both criteria are mutually exclusive, otherwise, the result is not conclusive. For example, Φ 2 would be inconclusive if column 15 had received more than 132 and less than 333 filaments.
www.advancedsciencenews.com www.advintellsyst.com requires only one junction per variables, meaning that a SAT instance with 8 clauses and 10 variables would require a network with a size of %10 Â 100 μm 2 . Such networks are expected to be limited, not by network size, but by the number of computing agents and the respective protein mass. For example, 2 Â 10 18 , 2 μm-long actin filaments weigh %100 g. If we assume an operation frequency of 0.1 Hz (similar to the frequency observed for the networks presented here), that number of actin filaments could perform as many computing operations per second as %5 Â 10 7 CPU cores (where each operate at a frequency of %4 GHz). At the same time, the myosin motor proteins propelling this number of actin filaments would dissipate only %200 W of power (calculated as described in detail in the study by Nicolau et al., [14] assuming 10 motors/filament, 100 steps s À1 , and 70 kJ mol À1 for the hydrolysis of ATP under physiological conditions [38] ). Therefore, we believe that NBC has potential as an energy-efficient alternate computing technology. The challenges and strengths of this technology were recently detailed in a roadmap for network-based biocomputation. [37]

Conclusion
We have demonstrated the use of NBC to solve four small instances of the key NP complete problem, 3-SAT. To achieve this, a highly multidisciplinary approach was necessary. First, we developed an algorithm that encodes 3-SAT into the network format. We then used this algorithm to encode four small 3-SAT instances into four networks of channels. After nanofabrication and fine tuned selective functionalization of the network channels, myosin-driven actin filaments effectively searched the entire network. Finally, we devised a statistical approach to determine whether a significant number of filaments (p < 0.01) arrived at the target exit, indicating whether the respective 3-SAT instance was satisfiable or not. All networks were solved successfully with a 99% confidence level, demonstrating correct network operation. This is a key step toward the broad general applicability of NBC because it enables solving NP complete problem for which a polynomial conversion to SAT exists. Many of such conversions already exist, because NP completeness is usually proven mathematically by finding a polynomial conversion to SAT. [8] Thus, the network encoding of 3-SAT presented here enables NBC to solve small instances of any NP complete problem for which NP-completeness was proven via a polynomial conversion to SAT.

Experimental Section
Fabrication of Computational Networks: The fabrication of the computational networks was done on a single-side-polished 150 mm Si (100) wafer. A 70 nm-thick SiO 2 on the Si substrate was made by dry thermal oxidation. The layer growing was carried out under oxygen atmosphere with 3% HCl. After O 2 plasma cleaning and surface activation steps for 30 s, a resist layer (ALLRESIST AR-P 6200:10) was spin coated onto the SiO 2 , to a thickness around 400 nm, and hard baked at 180°C for 2 min. The network was patterned by electron beam lithography (Vistec SB254) with a dose of around 100 μC cm À2 . The AR-P 6200:10 was developed in 600 594 developer for 60 s, rinsed with IPA, and flushed in a conductance-controlled deionized (DI) water bath. Finally, the wafer was spun dry and separated into 1 cm 2 chips.
To make the surface suitable for protein anchoring and support of motility, silanization with trimethylchlorosilane (TMCS; Sigma-Aldrich Sweden AB, Stockholm, Sweden) was performed. In detail, the samples were O 2 plasma etched (Plasma Preen II-862, Plasmatic Systems, Inc., North Brunswick, NJ) at 5 mbar for 45 s to remove resist residues and remove the adsorbed water molecules. Etching was performed within a Faraday cage to achieve isotropic etching so the sidewalls in the nanostructures were etched as well. [31] The samples were then immersed in DI water for 5 min to generate as many as possible hydroxyl groups on the surface for later silanization. The silanization was then performed in a controlled chemical vapor deposition (CVD) system following the method in the study by Lindberg et al. [39] Protein Preparations: Rabbits were sacrificed in accordance with the ethical guidelines and procedures approved by the Regional Ethical Committee for Animal Experiments in Linköping, Sweden (ref. no.: 73-14). Myosin-II was isolated from rabbit hind leg fast muscles, [40,41] followed by digestion with Tosyl-L-lysine-chloromethyl ketone hydrochloride (TLCK) treated α-chymotrypsin to obtain heavy meromyosin (HMM). [42] Actin was isolated from rabbit back muscles. [43] Fluorescence labeling of actin filaments was achieved using Rhodamine-phalloidin. [44] Solutions and Chemicals: For all solutions used in the in vitro motility assay type of experiments, low-ionic strength solution (LISS) was first prepared as a basal component, containing 1 mM magnesium chloride (MgCl 2 ), 10 mM 3-(N-morpholino) propanesulfonic acid (MOPS), 0.1 mM K 2 ethylene glycol tetra-acetic acid (EGTA), with a pH of 7.4 and ionic strength of 15 mM. Wash solution was prepared by adding 1 mM Dithiothreitol (DTT) and 50 mM potassium chloride (KCl) to the LISS solution (final concentrations). Finally, assay solution was prepared by adding 0.2 mg mL À1 creatine phosphokinase (CPK), 2.5 mM creatine phosphate (CP), 1 mM magnesium adenosine triphosphate (MgATP), an oxygen scavenger mixture (GOC): 3 mg mL À1 glucose : 0.1 mg mL À1 glucose oxidase, 0.02 mg mL À1 catalase, 10 mM DTT, and 45 mM (KCl) to the LISS solution, giving a final ionic strength of 60 mM. [45,46] In Vitro Motility Assays: HMM, fluorescently labeled actin and nonfluorescent-blocking actin, [47] were diluted in the wash solution. To perform the in vitro motility assay, flow cells were built using a glass coverslip and a nanostructured chip on top, separated with Parafilm spacers. [21,39] Flow cells were incubated using the following steps: 120 μg mL À1 HMM (5 min); 1 mg mL À1 bovine serum albumin (2 min); wash solution (washing, 1Â); 0.5 μM blocking actin (2 min); 1 mM MgATP dissolved in wash buffer (2 min); wash solution (washing, 1Â); 15 nM rhodaminephalloidin-labeled actin filaments (2 min); wash (1Â) and final incubation with assay solution (2 min). The in vitro motility assays for all nanostructured chips were performed within the temperature range 24-26°C using a temperature-controlled objective coil. Usually, the flow cells were sealed with silicone vacuum grease during experimental observations. Imaging Methods: In vitro motility assays experiments were imaged using an inverted fluorescence microscope (Zeiss Axio Observer.D1), mounted with either 63Â or 40Â objective (numerical aperture: 1.4 or 1.3) and Hamamatsu EMCCD camera (512 Â 512 pixels). Image sequences were recorded at an exposure time of either 200 ms (4.96 frames s À1 ) or 400 ms (2.5 frames s À1 ). A mercury short-arc lamp (OSRAM) was used along with a filter (cyanine-3) for the excitation of rhodamine fluorescence. Images were then analyzed with Fiji software. [48] Supporting Information Supporting Information is available from the Wiley Online Library or from the author.