Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 3.26 KB

optimization-which-solver-should-you-use.md

File metadata and controls

44 lines (30 loc) · 3.26 KB
title description author ms.author ms.service ms.subservice ms.date ms.topic uid
Which optimization solver should I use?
This document provides a basic guide on which solvers to use in Azure Quantum.
bradben
brbenefield
azure-quantum
optimization
04/06/2022
conceptual
microsoft.quantum.optimization.choose-solver

Which optimization solver should I use?

Azure Quantum offers a broad range of solvers for optimization problems. You can consult the full list in the reference page. However, it is unfortunately not possible to determine a priori which solver will perform best for a new optimization problem. This article describes Microsoft's suggested strategy to find a suitable solver by benchmarking.

Benchmarking objective

The benchmarking objective will have a large influence on the selection of a suitable solver. This objective for the solvers is dictated by the application. For example, one benchmarking objective is to find the closest solution to the global minimum. Another objective might be to find the closest solution to the global minimum but in a given time interval or for a specified runtime cost. If you are interested in solving several problems from a similar domain, a benchmarking objective might be to find a solver which produces good results for most instances, rather than returning very good results for some instances but failing to give a good enough solution for the remaining instances.

Benchmarking strategy

Optimization problems from the same field of domain might share common features. As such, you could start with the solver which worked best for previous problems of the same domain and use that as a baseline. Nevertheless, even in such a case it makes sense to benchmark the other solvers again from time to time.

Start with the parameter-free solvers, as they don't require parameter tuning:

  • Parameter-free simulated annealing: This solver provides a solid baseline for the runtime and possible minima.

  • Parameter-free parallel tempering

Automatically determining parameters for solvers is convenient, but also creates a runtime overhead. If you have to solve many similar problems or want to achieve better performance, parameterized solvers should be considered. Start with parameterized simulated annealing if the parameter-free simulated annealing solver provided better results than the parameter-free parallel tempering. Otherwise, start with parameterized parallel tempering.

Afterwards, you should benchmark the remaining solvers.

Next steps

Explore more aspects of optimization in Azure Quantum.

  • Parameterized simulated annealing
  • Parameterized parallel tempering
  • Binary optimization
  • Ising model
  • Cost functions