  In this paper we propose a fast optimization algorithm for approximately
minimizing convex quadratic functions over the intersection of affine and
separable constraints (i.e., the Cartesian product of possibly nonconvex real
sets). This problem class contains many NP-hard problems such as mixed-integer
quadratic programming. Our heuristic is based on a variation of the alternating
direction method of multipliers (ADMM), an algorithm for solving convex
optimization problems. We discuss the favorable computational aspects of our
algorithm, which allow it to run quickly even on very modest computational
platforms such as embedded processors. We give several examples for which an
approximate solution should be found very quickly, such as management of a
hybrid-electric vehicle drivetrain and control of switched-mode power
converters. Our numerical experiments suggest that our method is very effective
in finding a feasible point with small objective value; indeed, we find that in
many cases, it finds the global solution.
