Quickstart: Een optimalisatieprobleem in Azure Quantum
Meer informatie over het gebruik van optimalisatieoplossers in Azure Quantum een eenvoudig binair optimalisatieprobleem op te lossen.
Vereisten
- Voor het voltooien van deze zelfstudie hebt u een Azure-abonnement nodig. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Een werkruimte Azure Quantum maken
U gebruikt de Azure Quantum-service door een resource Azure Quantum werkruimte toe te voegen aan uw Azure-abonnement in de Azure Portal. Een Azure Quantum of kort gezegd een werkruimte is een verzameling assets die is gekoppeld aan het uitvoeren van kwantum- of optimalisatietoepassingen.
Als u Azure Portal wilt openen, gaat u naar https://portal.azure.com en volgt u deze stappen:
Klik op Een resource maken en zoek naar Azure Quantum. Op de resultatenpagina ziet u een tegel voor de service Azure Quantum (preview).

Klik Azure Quantum (preview) en klik vervolgens op Maken. Hiermee opent u een formulier om een werkruimte te maken.

Vul de details van uw werkruimte in:
- Abonnement: Het abonnement dat u aan deze werkruimte wilt koppelen.
- Resourcegroep: De resourcegroep aan wie u deze werkruimte wilt toewijzen.
- Naam: De naam van uw werkruimte.
- Regio: De regio voor de werkruimte.
- Storage Account: het Azure-opslagaccount voor het opslaan van uw taken en resultaten. Als u geen bestaand opslagaccount hebt, klikt u op Een nieuw opslagaccount maken en vult u de benodigde velden in. Voor deze preview raden we u aan de standaardwaarden te gebruiken.

Notitie
U moet een eigenaar van de geselecteerde resourcegroep zijn om een nieuw opslagaccount te kunnen maken. Zie Azure-resources beheren en organiseren met Azure Resource Manager voor meer informatie over hoe resourcegroepen werken in Azure.
Nadat u de informatie hebt invullen, klikt u op het tabblad Providers om providers toe te voegen aan uw werkruimte. Een provider biedt u toegang tot een kwantumservice. Dit kan kwantumhardware, een kwantumsimulator of een optimalisatieservice zijn.

Notitie
Standaard voegt de Azure Quantum de Microsoft QIO-provider toe aan elke werkruimte.
Zorg ervoor dat de Microsoft QIO-provider is ingeschakeld (dit is standaard) en klik vervolgens op Controleren en maken.
Controleer de instelling die u hebt geselecteerd. Als alles klopt, klikt u op Maken om uw werkruimte te maken.
Notitie
De prijzen voor Azure Quantum verschillen per provider. Raadpleeg de informatie op het tabblad Providers van uw Azure Quantum-werkruimte in de Azure Portal voor de meest recente prijsinformatie of ga naar de pagina Azure Quantum prijzen.
Het Python-pakket azure-quantum installeren
Als u een oplossing wilt implementeren, moet u er eerst voor zorgen dat het Python-pakket azure-quantum op uw computer is geïnstalleerd. Als u deze nog niet hebt geïnstalleerd, volgt u deze stappen:
Installeer Python 3.6 of hoger voor het geval u dat nog niet hebt gedaan.
Installeer PIP en zorg ervoor dat u versie 19.2 of hoger hebt.
Installeer het
azure-quantumPython-pakket. Gebruik de--upgradevlag om ervoor te zorgen dat u de nieuwste versie krijgt.pip install --upgrade azure-quantum
Installatie van Jupyter Notebooks
U kunt er eventueel voor kiezen om te communiceren met Azure Quantum optimalisatie met behulp van Jupyter Notebooks. Hiervoor moet u het volgende doen:
Installeer het Python-pakket azure-quantum (zoals beschreven in de vorige sectie)
Gebruik in de terminal van uw keuze de volgende opdracht om een nieuw Jupyter Notebook:
jupyter notebookHiermee wordt een nieuw browservenster (of een nieuw tabblad) geopend met het Notebook-dashboard, een soort configuratiescherm waarmee u (onder andere) kunt selecteren welk notebook u wilt openen.
Selecteer in de browserweergave de vervolgkeuzeknop in de rechterbovenhoek en selecteer
Python 3een optie in de lijst. Hiermee maakt u een nieuw notebook.
Een werkruimte voor een Azure Quantum maken en er verbinding mee maken
Een Workspace vertegenwoordigt Azure Quantum werkruimte en is de belangrijkste interface voor interactie met de service.
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")
)
De eerste keer dat u een methode gebruikt die communiceert met de Azure-service, wordt in uw standaardbrowser mogelijk gevraagd om uw referenties.
U kunt eventueel een referentie doorgeven die moet worden gebruikt in de verificatie bij de constructie van het object of Workspace via de credentials eigenschap ervan.
Zie Azure.Quantum.Workspace voor meer informatie
Notitie
De workspace.login() methode is afgeschaft en is niet meer nodig. De eerste keer dat er een aanroep naar de service is, wordt een verificatie uitgevoerd met behulp van de referenties die zijn doorgegeven in de Workspace constructor of de eigenschap credentials ervan. Als er geen referenties zijn doorgegeven, worden verschillende verificatiemethoden geprobeerd met de DefaultAzureCredential.
Een eenvoudig probleem uitdrukken
Als u een eenvoudig probleem wilt uitdrukken dat moet worden opgelost, maakt u een exemplaar van een en stelt u de in Problem problem_type op of ProblemType.ising ProblemType.pubo . Zie ProblemType voor meer informatie.
from azure.quantum.optimization import Problem, ProblemType, Term
problem = Problem(name="My First Problem", problem_type=ProblemType.ising)
Maak vervolgens een matrix met Term objecten en voeg deze toe aan de 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)
Notitie
Er zijn meerdere manieren om termen aan het probleem toe te voegen en niet alle termen moeten in één keer worden toegevoegd.
Een optimalisatieoploser toepassen
Voor de Microsoft QIO-provider gebruiken we een parameterloze versie van parallelle verwijdering. U vindt documentatie over deze solver en de andere beschikbare oplossers in de Microsoft QIO-providerverwijzing.
from azure.quantum.optimization import ParallelTempering
solver = ParallelTempering(workspace, timeout=100)
result = solver.optimize(problem)
print(result)
Met deze methode wordt het probleem Azure Quantum optimalisatie en wordt synchroon gewacht tot het is opgelost. De uitvoer ziet er als volgt uit in uw terminalvenster of Jupyter Notebook:
{'solutions': [{'configuration': {'0': 1, '1': 1, '2': -1, '3': 1}, 'cost': -32.0}]}
Vereisten
- U hebt een Azure-abonnement nodig om deze zelfstudie te voltooien. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Een werkruimte Azure Quantum maken
U gebruikt de Azure Quantum-service door een resource Azure Quantum werkruimte toe te voegen aan uw Azure-abonnement in de Azure Portal. Een Azure Quantum-werkruimteresource, kort gezegd, is een verzameling assets die is gekoppeld aan het uitvoeren van kwantum- of optimalisatietoepassingen.
Als u Azure Portal wilt openen, gaat u https://portal.azure.com naar en volgt u deze stappen:
Klik op Een resource maken en zoek naar Azure Quantum. Op de resultatenpagina ziet u een tegel voor de Azure Quantum service (preview).

Klik Azure Quantum (preview) en klik vervolgens op Maken. Hiermee opent u een formulier om een werkruimte te maken.

Vul de details van uw werkruimte in:
- Abonnement: Het abonnement dat u aan deze werkruimte wilt koppelen.
- Resourcegroep: De resourcegroep aan wie u deze werkruimte wilt toewijzen.
- Naam: De naam van uw werkruimte.
- Regio: De regio voor de werkruimte.
- Storage account: het Azure-opslagaccount voor het opslaan van uw taken en resultaten. Als u geen bestaand opslagaccount hebt, klikt u op Een nieuw opslagaccount maken en vult u de benodigde velden in. Voor deze preview raden we u aan de standaardwaarden te gebruiken.

Notitie
U moet een eigenaar van de geselecteerde resourcegroep zijn om een nieuw opslagaccount te kunnen maken. Zie Azure-resources beheren en organiseren met Azure Resource Manager voor meer informatie over hoe resourcegroepen werken in Azure.
Nadat u de informatie hebt invullen, klikt u op het tabblad Providers om providers toe te voegen aan uw werkruimte. Een provider biedt u toegang tot een kwantumservice, die kwantumhardware, een kwantumsimulator of een optimalisatieservice kan zijn.

Notitie
Standaard voegt de Azure Quantum de Microsoft QIO-provider toe aan elke werkruimte.
Voeg ten minste de provider 1Qreviewd Optimization Platform toe en klik vervolgens op Beoordelen en maken.
Controleer de instelling die u hebt geselecteerd en als alles klopt, klikt u op Maken om uw werkruimte te maken.

Notitie
De prijzen voor Azure Quantum variëren per provider. Raadpleeg de informatie op het tabblad Providers van uw Azure Quantum-werkruimte in de Azure Portal voor de meest recente prijsinformatie of ga naar de pagina Azure Quantum prijzen.
Het Python-pakket azure-quantum installeren
Als u een oplossing wilt implementeren, moet u er eerst voor zorgen dat het Azure-Quantum Python-pakket op uw computer is geïnstalleerd. Als u deze nog niet hebt geïnstalleerd, volgt u deze stappen:
Installeer Python 3.6 of hoger als u dat nog niet hebt gedaan.
Installeer PIP en zorg ervoor dat u versie 19.2 of hoger hebt.
Installeer het
azure-quantumPython-pakket. Gebruik de--upgradevlag om ervoor te zorgen dat u de nieuwste versie krijgt.pip install --upgrade azure-quantum
Installatie van Jupyter Notebooks
U kunt er eventueel voor kiezen om te communiceren met Azure Quantum optimalisatie met behulp van Jupyter Notebooks. Hiervoor moet u het volgende doen:
Installeer het Python-pakket azure-quantum (zoals beschreven in de vorige sectie)
Gebruik in de terminal van uw keuze de volgende opdracht om een nieuw Jupyter Notebook:
jupyter notebookHiermee wordt een nieuw browservenster (of een nieuw tabblad) geopend met het Notebook-dashboard, een soort configuratiescherm waarmee u (onder andere) kunt selecteren welk notebook u wilt openen.
Selecteer in de browserweergave de vervolgkeuzeknop in de rechterbovenhoek en selecteer
Python 3in de lijst. Hiermee maakt u een nieuw notebook.
Een werkruimte maken en Azure Quantum maken
Een Workspace vertegenwoordigt Azure Quantum werkruimte en is de belangrijkste interface voor interactie met de service.
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")
)
De eerste keer dat u een methode die communiceert met de Azure-service, wordt in uw standaardbrowser mogelijk gevraagd om uw referenties.
U kunt eventueel een referentie doorgeven die moet worden gebruikt in de verificatie bij de constructie van het object of Workspace via de credentials eigenschap ervan.
Zie Azure.Quantum.Workspace voor meer informatie
Notitie
De workspace.login() methode is afgeschaft en is niet meer nodig. De eerste keer dat er een aanroep naar de service wordt uitgevoerd, wordt een verificatie uitgevoerd met behulp van de referenties die zijn doorgegeven in de Workspace constructor of de eigenschap credentials ervan. Als er geen referenties zijn doorgegeven, worden verschillende verificatiemethoden geprobeerd met de DefaultAzureCredential.
Een eenvoudig probleem uitdrukken
Als u een eenvoudig probleem wilt uitdrukken dat moet worden opgelost, maakt u een exemplaar van een en stelt u de in Problem problem_type op of ProblemType.ising ProblemType.pubo . Zie ProblemType voor meer informatie.
from azure.quantum.optimization import Problem, ProblemType, Term
problem = Problem(name="My First Problem", problem_type=ProblemType.ising)
Maak vervolgens een matrix met Term objecten en voeg deze toe aan de 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)
Notitie
Er zijn meerdere manieren om termen aan het probleem toe te voegen en niet alle voorwaarden moeten in één keer worden toegevoegd.
Een optimalisatieoplof toepassen
Voor de 1QBit-provider gebruiken we de solver voor het opnieuw koppelen van paden. U vindt documentatie over deze solver en de andere beschikbare oplossers in de 1QBit-providerverwijzing.
from azure.quantum.optimization.oneqbit import PathRelinkingSolver
solver = PathRelinkingSolver(workspace)
result = solver.optimize(problem)
print(result)
Met deze methode wordt het probleem naar Azure Quantum voor optimalisatie en wordt synchroon gewacht tot het is opgelost. De uitvoer ziet er als volgt uit in het terminalvenster of in Jupyter Notebook:
{'solutions': [{'configuration': {'0': 1, '1': 1, '2': -1, '3': 1}, 'cost': -32.0}]}
Notitie
Als er een fout is opgetreden tijdens het werken met Azure Quantum, kunt u onze lijst met veelvoorkomende problemen controleren. Als u ook een optimalisatieoploser gebruikt en u een foutmelding krijgt in het formulier , kunt u onze lijst met veelvoorkomende gebruikersfouten <AZQxxx> in optimalisatieoplossers controleren.
Volgende stappen
Documentatie
- Overzicht van Solver
- Problemen met het & het verstrekken van voorwaarden
- Resultaten van oplossers interpreteren
- Taakbeheer
- Langlopende problemen oplossen (async-probleem indienen)
- Probleemdefinities opnieuw gebruiken
- Authenticeren met een service-principal
- Naslag voor solvers voor Microsoft QIO Solver
- Referentie voor oplossers voor 1QBits-oplosser
Voorbeelden en end-to-end learning
- QIO-voorbeelden-repo
- Aan de slag
- Voorbeeldprobleem bij laden van verzenden
- Probleem met het plannen van een jobshop