Quantum computers are becoming more widely available, so it is important to develop tools that enable people to easily program these computers to solve complex problems. To address this issue, we present the design and two applications of ToQ.jl, a high-level programming language for D-Wave quantum annealing machines. ToQ.jl leverages the metaprogramming facilities in Julia (a high-level, high-performance programming language for technical computing) and uses D-Wave's ToQ programming language as an intermediate representation. This makes it possible for a programmer to leverage all the capabilities of Julia, and the D-Wave machine is used as a co-processor. We demonstrate ToQ.jl via two applications: (1) a pedagogical example based on a map-coloring problem and (2) a linear least squares problem. We also discuss our experience using ToQ.jl with a D-Wave 2X, particularly with respect to a linear least squares problem which is of broad interest to the scientific computing community.
[1]
Stéphane Chrétien,et al.
Using the eigenvalue relaxation for binary least-squares estimation problems
,
2009,
Signal Process..
[2]
Andrew Lucas,et al.
Ising formulations of many NP problems
,
2013,
Front. Physics.
[3]
Iain Dunning,et al.
Computing in Operations Research Using Julia
,
2013,
INFORMS J. Comput..
[4]
Fabián A. Chudak,et al.
The Ising model : teaching an old problem new tricks
,
2010
.
[5]
M. Larkin.
Software
,
2003,
The Lancet.
[6]
Björn E. Ottersten,et al.
Robust binary least squares: Relaxations and algorithms
,
2011,
2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP).