Skip to content

dlasecki/QAOA-MicrosoftQuantumLibraries

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unitary Fund

QAOA in Q#

The project is still in progress. This readme will be extended as the project develops.

This project provides a hybrid quantum-classical algorithm for solving optimization problems. It includes a Q# implementation of the Quantum Approximate Optimization Algorithm (QAOA) together with a classical optimizer in C#. The classical optimizer uses a quantum objective function to choose hopefully optimal parameters for running the QAOA. The quantum objective function is currently evaluated on a simulator backend provided by Q#.

How to run it?

  1. Import this project to Microsoft Visual Studio or similar.
  2. Use Driver.cs to prepare your ProblemInstance and run the project (some examples also provided).

Current limitations:

  • an optimization problem shall be encoded into a Hamiltonian consisting of Z operators,
  • support for up to 2-local Hamiltonians,
  • input consists of arrays of coefficients for 1-local and 2-local Hamiltonian terms,
  • a gradient-free Cobyla optimizer is used for finding good QAOA input parameters.

The flowchart of the implementation can be seen below. Notation comes from the QAOA paper).

qaoa-flowchart
Dependencies:

  1. Q# and Microsoft Quantum Libraries
  2. C# Accord Math library

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published