Biased Random Walk Using Stochastic Switching of Nanomagnets: Application to SAT Solver

Yong Shim, Abhronil Sengupta, Kaushik Roy

Research output: Contribution to journalArticlepeer-review

4 Scopus citations


Random walk (RW)-based local search algorithms are highly popular for solving combinatorial optimization problems such as the satisfiability (SAT) problem. The RW algorithm tries to solve the SAT problem by flipping a randomly chosen variable to minimize the number of unsatisfied clauses for a given problem. In this paper, we propose a biased RW (BRW) based on stochastic magnetization switching dynamics of nanomagnets in the presence of thermal noise. The controllable stochastic switching behavior of nanomagnets is used to flip the current state of the variable of interest based on the assigned probability. Here, the flipping probabilities are assigned to the variables responsible for unsatisfied clauses (instead of deterministic flipping in traditional algorithms). The stochasticity of individual units of the proposed hardware SAT solver based on a magnetic tunnel junction lying on top of a heavy metal layer enables parallel search of the solution space, which results in rapid convergence in comparison to the baseline RW algorithm. A device-circuit-algorithm cosimulation framework (benchmarked to experimental measurements of a magnetic stack) is used to assess the efficiency of the proposal. In comparison to the baseline RW algorithm, stochastic magnetization switching-driven BRW achieves 94% reduction in search time while consuming 30 pJ energy per iteration.

Original languageEnglish (US)
Pages (from-to)1617-1624
Number of pages8
JournalIEEE Transactions on Electron Devices
Issue number4
StatePublished - Apr 2018

All Science Journal Classification (ASJC) codes

  • Electronic, Optical and Magnetic Materials
  • Electrical and Electronic Engineering


Dive into the research topics of 'Biased Random Walk Using Stochastic Switching of Nanomagnets: Application to SAT Solver'. Together they form a unique fingerprint.

Cite this