page_type | author | description | ms.author | ms.date | languages | products | |||
---|---|---|---|---|---|---|---|---|---|
sample |
cgranade |
Search unstructured data on quantum hardware, using the Azure Quantum service |
01/25/2021 |
|
|
This sample demonstrates how to use Q# and the Azure Quantum service together to search for data with Grover's algorithm, also known as amplitude amplification. By applying a sequence of reflections, this state prepares a register of qubits in a state marked by a given quantum operation known as an oracle. The oracle used in this sample checks if its input matches a given integer, so that the computational basis state corresponding to that index is prepared with high probability.
This sample is implemented as a standalone executable, such that no C# or Python host is needed.
The program takes one command-line option, --n-qubits
, to control the number of qubits that are prepared using amplitude amplification.
dotnet run -- --simulator QuantumSimulator --n-qubits=3 --idx-marked=6
Make sure that you have created and selected a quantum workspace, and then run the following at the command line, substituting TARGET
with the target that you would like to run against (e.g.: ionq.qpu
or quantinuum.qpu.h1
):
az quantum execute --target-id TARGET -- --n-qubits=3 --idx-marked=6
For a full list of available quantum computing targets, run:
az quantum target list --output table
⚠️ This sample makes use of paid services on Azure Quantum. The cost of running this sample with the provided parameters on IonQ in a Pay-As-You-Go subscription is approximately $6 USD (or the equivalent amount in your local currency). This quantity is only an approximate estimate and should not be used as a binding reference. The cost of the service might vary depending on your region, demand and other factors.
Make sure that you have followed the Q# + Jupyter Notebook quickstart for the Quantum Development Kit, and then start a new Jupyter Notebook session from the folder containing this sample:
cd grover
jupyter notebook
Once Jupyter starts, open the Grover.ipynb
notebook and follow the instructions there.
- Grover.csproj: Main Q# project file for this sample.
- Reflections.qs: Definitions for each reflection used in Grover's search.
- SimpleGrover.qs: Main Q# program for this sample.
- Grover.ipynb: Q# notebook for this sample.