We show how to translate a subset of RISC-V machine code compiled from a subset of C to quadratic unconstrained binary optimization (QUBO) models that can be solved by a quantum annealing machine: given a bound $n$, there is input $I$ to a program $P$ such that $P$ runs into a given program state $E$ executing no more than $n$ machine instructions if and only if the QUBO model of $P$ for $n$ evaluates to 0 on $I$. Thus, with more qubits on the machine than variables in the QUBO model, quantum annealing the model reaches 0 (ground) energy in constant time with high probability on some input $I$ that is part of the ground state if and only if $P$ runs into $E$ on $I$ executing no more than $n$ instructions. Translation takes $\mathcal{O}(n^2)$ time effectively turning a quantum annealer into a polynomial-time symbolic execution engine and bounded model checker, eliminating their path and state explosion problems. Here, we take advantage of the fact that any machine instruction may only increase the size of the program state by a constant amount of bits. Translation time comes down from $\mathcal{O}(n^2)$ to $\mathcal{O}(n\cdot|P|)$ if memory consumption of $P$ is bounded by a constant, establishing a linear (quadratic) upper bound on quantum space, in number of qubits on a quantum annealer, in terms of algorithmic time (space) in classical computing, implying $NP\subseteq BQP$. Our prototypical open-source toolchain translates machine code that runs on real RISC-V hardware to models that can be solved by real quantum annealing hardware, as shown in our experiments.
翻译:我们展示了如何将从C子集编成的RISC-V机器代码子集从C子集 折合为 QUBO 模型中比变量多的QUBO 模型中,可以用量子反射机解决的二次二次优化(QUBO) 模型中,将更多的QQUBetrial QUBO 模型转换为 0. (地面) 美元, 在一个程序中输入美元, 美元运行到一个特定的程序状态, 美元不会超过$美元执行机器指令。 如果QUBO 模型中以美元计价, 美元对美元进行量子对美元评价, QUBBB 模型中, 量盘算模型中, 以0(地面) 美元向上, 美元向下调量子流的货币, 将一个固定的货币货币数据向内运行。