Snabbstart: Lösa ett optimeringsproblem i Azure Quantum
Lär dig hur du använder optimeringslösare i Azure Quantum att lösa ett enkelt problem med binär optimering.
Förutsättningar
- För att slutföra den här självstudien behöver du en Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Skapa en Azure Quantum arbetsyta
Du använder tjänsten Azure Quantum genom att lägga till en Azure Quantum-arbetsyteresurs till din Azure-prenumeration i Azure Portal. En Azure Quantum arbetsyteresurs, eller arbetsyta, är en samling tillgångar som är associerade med att köra kvant- eller optimeringsprogram.
Öppna Azure Portal genom att gå till https://portal.azure.com och sedan följa dessa steg:
Klicka på Skapa en resurs och sök sedan efter Azure Quantum. På resultatsidan bör du se en panel för Azure Quantum (förhandsversion).

Klicka Azure Quantum (förhandsversion) och klicka sedan på Skapa. Då öppnas ett formulär för att skapa en arbetsyta.

Fyll i informationen om din arbetsyta:
- Prenumeration: Den prenumeration som du vill associera med den här arbetsytan.
- Resursgrupp: Den resursgrupp som du vill tilldela den här arbetsytan till.
- Namn: Namnet på din arbetsyta.
- Region: Arbetsytans region.
- Storage konto: Azure Storage-kontot för att lagra jobb och resultat. Om du inte har något befintligt lagringskonto klickar du på Skapa ett nytt lagringskonto och fyller i de obligatoriska fälten. För den här förhandsversionen rekommenderar vi att du använder standardvärdena.

Anteckning
Du måste vara ägare till den valda resursgruppen för att kunna skapa ett nytt lagringskonto. Mer information om hur resursgrupper fungerar i Azure finns i Kontrollera och organisera Azure-resurser med Azure Resource Manager.
När du har slutfört informationen klickar du på fliken Providers (Leverantörer) för att lägga till providers på din arbetsyta. En leverantör ger dig tillgång till en kvanttjänst, som kan vara kvantmaskinvara, kvantsimulator eller en optimeringstjänst.

Anteckning
Som standard lägger tjänsten Azure Quantum Microsoft QIO-providern till varje arbetsyta.
Kontrollera att Microsoft QIO-providern är aktiverad (det är som standard) och klicka sedan på Granska + skapa.
Granska den inställning som du har valt och om allt är korrekt klickar du på Skapa för att skapa din arbetsyta.
Anteckning
Prissättningen för Azure Quantum varierar beroende på leverantör. Läs informationen på fliken Providers (Leverantörer) på Azure Quantum-arbetsytan i Azure Portal för att få den senaste prisinformationen, eller besök sidan med Azure Quantum priser.
Installera Python-paketet azure-quantum
Om du vill implementera en lösning måste du först se till att du har Python-paketet azure-quantum installerat på datorn. Om du inte har installerat det ännu följer du dessa steg:
Installera Python 3.6 eller senare om du inte redan har gjort det.
Installera PIP och kontrollera att du har version 19.2 eller senare.
Installera
azure-quantumPython-paketet. Använd flaggan--upgradeför att se till att hämta den senaste versionen.pip install --upgrade azure-quantum
Jupyter Notebooks-installation
Om du vill kan du välja att interagera med Azure Quantum optimering med Jupyter Notebooks. För att göra detta måste du:
Installera Python-paketet azure-quantum (enligt beskrivningen i föregående avsnitt)
Använd följande kommando i valfri terminal för att starta en ny Jupyter Notebook:
jupyter notebookDå öppnas ett nytt webbläsarfönster (eller en ny flik) som visar Notebook-instrumentpanelen, en typ av kontrollpanel där du (bland annat) kan välja vilken notebook-dator som ska öppnas.
I webbläsarvyn väljer du listrutan i det övre högra hörnet och
Python 3väljer i listan. Då bör du skapa en ny notebook-dator.
Skapa och ansluta till en Azure Quantum arbetsyta
En Workspace representerar en Azure Quantum arbetsyta och är det huvudsakliga gränssnittet för att interagera med tjänsten.
from typing import List
from azure.quantum.optimization import Term
from azure.quantum import Workspace
workspace = Workspace (
subscription_id = "", # Add your subscription_id
resource_group = "", # Add your resource_group
name = "", # Add your workspace name
location = "" # Add your workspace location (for example, "westus")
)
Första gången du kör en metod som interagerar med Azure-tjänsten kan ett fönster fråga i din standardwebbläsare och be om dina autentiseringsuppgifter.
Du kan även skicka en autentiseringsautentisering som ska användas i autentiseringen vid konstruktionen av Workspace objektet eller via dess credentials egenskap.
Mer information finns på Azure.Quantum.Workspace
Anteckning
Metoden workspace.login() är inaktuell och behövs inte längre. Första gången ett anrop görs till tjänsten görs ett autentiseringsförsök med de autentiseringsuppgifter som skickas i Workspace konstruktorn eller dess credentials egenskap. Om inga autentiseringsuppgifter skickades görs flera autentiseringsmetoder av DefaultAzureCredential.
Uttrycka ett enkelt problem
Om du vill uttrycka ett enkelt problem som ska lösas skapar du en instans av en Problem och anger problem_type till antingen eller ProblemType.ising ProblemType.pubo . Mer information finns i ProblemType.
from azure.quantum.optimization import Problem, ProblemType, Term
problem = Problem(name="My First Problem", problem_type=ProblemType.ising)
Skapa sedan en matris med Term objekt och lägg till dem i Problem :
terms = [
Term(c=-9, indices=[0]),
Term(c=-3, indices=[1,0]),
Term(c=5, indices=[2,0]),
Term(c=9, indices=[2,1]),
Term(c=2, indices=[3,0]),
Term(c=-4, indices=[3,1]),
Term(c=4, indices=[3,2])
]
problem.add_terms(terms=terms)
Anteckning
Det finns flera sätt att ange villkor för problemet, och alla villkor måste inte läggas till samtidigt.
Tillämpa en optimeringslösare
För Microsoft QIO-providern använder vi en parameterfri version av parallell temperatur. Du hittar dokumentation om den här lösaren och andra tillgängliga lösare i Microsoft QIO-providerreferensen.
from azure.quantum.optimization import ParallelTempering
solver = ParallelTempering(workspace, timeout=100)
result = solver.optimize(problem)
print(result)
Den här metoden skickar problemet till Azure Quantum för optimering och väntar synkront på att det ska lösas. Du ser utdata som liknar följande i terminalfönstret eller i Jupyter Notebook:
{'solutions': [{'configuration': {'0': 1, '1': 1, '2': -1, '3': 1}, 'cost': -32.0}]}
Förutsättningar
- För att slutföra den här självstudien behöver du en Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Skapa en Azure Quantum arbetsyta
Du använder tjänsten Azure Quantum genom att lägga till Azure Quantum resurs för arbetsyta i din Azure-prenumeration i Azure Portal. En Azure Quantum arbetsyteresurs, eller arbetsyta, är en samling tillgångar som är associerade med att köra kvant- eller optimeringsprogram.
Öppna Azure Portal genom att gå till https://portal.azure.com och sedan följa dessa steg:
Klicka på Skapa en resurs och sök sedan efter Azure Quantum. På resultatsidan bör du se en panel för Azure Quantum (förhandsversion).

Klicka Azure Quantum (förhandsversion) och sedan på Skapa. Då öppnas ett formulär för att skapa en arbetsyta.

Fyll i informationen om din arbetsyta:
- Prenumeration: Den prenumeration som du vill associera med den här arbetsytan.
- Resursgrupp: Den resursgrupp som du vill tilldela den här arbetsytan till.
- Namn: Namnet på din arbetsyta.
- Region: Arbetsytans region.
- Storage konto: Azure Storage-kontot för att lagra jobb och resultat. Om du inte har ett befintligt lagringskonto klickar du på Skapa ett nytt lagringskonto och fyller i de fält som krävs. För den här förhandsversionen rekommenderar vi att du använder standardvärdena.

Anteckning
Du måste vara ägare till den valda resursgruppen för att kunna skapa ett nytt lagringskonto. Mer information om hur resursgrupper fungerar i Azure finns i Kontrollera och organisera Azure-resurser med Azure Resource Manager.
När du har slutfört informationen klickar du på fliken Providers (Leverantörer) för att lägga till providers på din arbetsyta. En leverantör ger dig åtkomst till en kvanttjänst, som kan vara kvantmaskinvara, en kvantsimulator eller en optimeringstjänst.

Anteckning
Som standard lägger tjänsten Azure Quantum Microsoft QIO-providern till varje arbetsyta.
Lägg till minst 1Qloud Optimization Platform-providern och klicka sedan på Granska + skapa.
Granska inställningen som du har valt och om allt stämmer klickar du på Skapa för att skapa din arbetsyta.

Anteckning
Prissättningen för Azure Quantum varierar beroende på leverantör. Läs informationen på fliken Providers (Leverantörer) på Azure Quantum-arbetsytan i Azure Portal för att få den senaste prisinformationen. Du kan också gå Azure Quantum sidan med prisinformation.
Installera Python-paketet azure-quantum
Om du vill implementera en lösning måste du först se till att du har Python-paketet azure-quantum installerat på datorn. Om du inte har installerat det ännu följer du dessa steg:
Installera Python 3.6 eller senare om du inte redan har gjort det.
Installera PIP och kontrollera att du har version 19.2 eller senare.
Installera
azure-quantumPython-paketet. Använd flaggan--upgradeför att se till att hämta den senaste versionen.pip install --upgrade azure-quantum
Installation av Jupyter Notebooks
Om du vill kan du välja att interagera med Azure Quantum optimering med Jupyter Notebooks. För att göra detta måste du:
Installera Python-paketet azure-quantum (enligt beskrivningen i föregående avsnitt)
Använd följande kommando i valfri terminal för att starta en ny Jupyter Notebook:
jupyter notebookDetta startar ett nytt webbläsarfönster (eller en ny flik) som visar Notebook-instrumentpanelen, en typ av kontrollpanel där du (bland annat) kan välja vilken notebook-dator som ska öppnas.
I webbläsarvyn väljer du listrutan i det övre högra hörnet och
Python 3väljer i listan. Då bör en ny notebook-dator skapas.
Skapa och ansluta till en Azure Quantum arbetsyta
En Workspace representerar en Azure Quantum arbetsyta och är det huvudsakliga gränssnittet för att interagera med tjänsten.
from typing import List
from azure.quantum.optimization import Term
from azure.quantum import Workspace
workspace = Workspace (
subscription_id = "", # Add your subscription_id
resource_group = "", # Add your resource_group
name = "", # Add your workspace name
location = "" # Add your workspace location (for example, "westus")
)
Första gången du kör en metod som interagerar med Azure-tjänsten kan ett fönster fråga i din standardwebbläsare och be om dina autentiseringsuppgifter.
Om du vill kan du skicka en autentiseringsautentisering som ska användas i autentiseringen vid konstruktionen av Workspace objektet eller via dess credentials egenskap.
Mer information finns på Azure.Quantum.Workspace
Anteckning
Metoden workspace.login() är inaktuell och behövs inte längre. Första gången ett anrop görs till tjänsten görs ett autentiseringsförsök med autentiseringsuppgifterna som skickas i Workspace konstruktorn eller dess credentials egenskap. Om inga autentiseringsuppgifter skickades görs flera autentiseringsmetoder av DefaultAzureCredential.
Uttrycka ett enkelt problem
Om du vill uttrycka ett enkelt problem som ska lösas skapar du en instans av en Problem och anger problem_type till antingen eller ProblemType.ising ProblemType.pubo . Mer information finns i ProblemType.
from azure.quantum.optimization import Problem, ProblemType, Term
problem = Problem(name="My First Problem", problem_type=ProblemType.ising)
Skapa sedan en matris med Term objekt och lägg till dem i Problem :
terms = [
Term(c=-9, indices=[0]),
Term(c=-3, indices=[1,0]),
Term(c=5, indices=[2,0]),
Term(c=9, indices=[2,1]),
Term(c=2, indices=[3,0]),
Term(c=-4, indices=[3,1]),
Term(c=4, indices=[3,2])
]
problem.add_terms(terms=terms)
Anteckning
Det finns flera sätt att ange villkor för problemet, och alla villkor måste inte läggas till samtidigt.
Använda en optimeringslösare
För 1QBit-providern använder vi lösningslösaren path-relinking. Du hittar dokumentation om den här lösaren och andra tillgängliga lösare i 1QBit-providerreferensen.
from azure.quantum.optimization.oneqbit import PathRelinkingSolver
solver = PathRelinkingSolver(workspace)
result = solver.optimize(problem)
print(result)
Den här metoden skickar problemet för Azure Quantum för optimering och väntar synkront på att det ska lösas. Du ser utdata som liknar följande i terminalfönstret eller Jupyter Notebook:
{'solutions': [{'configuration': {'0': 1, '1': 1, '2': -1, '3': 1}, 'cost': -32.0}]}
Anteckning
Om du får ett fel när du arbetar med Azure Quantum kan du kontrollera vår lista över vanliga problem. Om du använder en optimeringslösare och du får ett fel i formuläret kan du kontrollera vår lista över vanliga användarfel i <AZQxxx> optimeringslösare.
Nästa steg
Dokumentation
- Översikt över Solver
- Uttrycka problem & att ange villkor
- Tolka lösarresultat
- Jobbhantering
- Lösa långvariga problem (överföring av asynkrona problem)
- Återanvända problemdefinitioner
- Autentisera med ett huvudnamn för tjänsten
- Referens för lösare för Microsoft QIO-lösare
- Referens för lösare för 1QBit-lösare
Exempel och utbildning från end-to-end
- Lagringsplatsen QIO-exempel
- Komma igång
- Problem med att skicka inläsningsexempel
- Problem med schemaläggning av jobbbutik