Creare e visualizzare circuiti con circuit editor

circuit editor è una funzionalità di Quantum Development Kit (QDK) che fornisce un'interfaccia grafica in cui è possibile creare, modificare e visualizzare diagrammi di circuito quantistico all'interno dei Q# progetti. È possibile usare i circuiti compilati direttamente nei Q# programmi come operazioni chiamabili.

Come accedere a circuit editor

Per iniziare a usare circuit editor, seguire questa procedura:

  1. Creare un nuovo Q# progetto in VS Code o aprire un progetto esistente.
  2. Creare un nuovo file di circuito con l'estensione .qsc.
  3. Aprire il file del circuito in VS Code.

circuit editor è la visualizzazione predefinita per .qsc i file.

Caratteristiche di circuit editor

Ecco cosa è possibile fare con :circuit editor

funzionalità Come usare
Espandere il pannello Visualizzatore di stato Fare clic su Visualizzazione stato per espandere il pannello Visualizzatore di stato per visualizzare lo stato quantistico risultante dall'esecuzione del circuito. Il pannello mostra la densità di probabilità e la fase per ogni stato di base. È possibile usare la casella degli strumenti per modificare il circuito e visualizzare gli aggiornamenti live del pannello.
Inserire un elemento circuito Fare clic e trascinare l'elemento dalla casella degli strumenti nel diagramma del circuito.
Rimuovere un elemento del circuito Fare clic e trascinare l'elemento all'esterno del diagramma del circuito. In alternativa, fare clic con il pulsante destro del mouse sull'elemento e scegliere Elimina dal menu di scelta rapida.
Spostare un elemento del circuito Fare clic e trascinare l'elemento in una nuova posizione nel diagramma del circuito.
Copiare un elemento circuito Tenere premuto CTRL mentre si fa clic e si trascina l'elemento in una nuova posizione nel diagramma del circuito.
Aggiungere un qubit Posizionare un elemento dalla barra degli strumenti su un nuovo collegamento nel diagramma del circuito. In alternativa, spostare un elemento esistente su un nuovo conduttore nel diagramma.
Rimuovere un qubit Fare clic e trascinare l'icona del qubit dal diagramma del circuito. Il qubit più in basso viene eliminato automaticamente quando si rimuovono tutti gli elementi del circuito da tale qubit.
Ridisporre l'ordine dei qubit Fare clic e trascinare le icone del qubit nel diagramma del circuito.
Aggiungere un controllo a un cancello Fare clic con il pulsante destro del mouse sull'icona del cancello, scegliere Aggiungi controllo dal menu di scelta rapida e quindi scegliere il collegamento qubit di controllo.
Rimuovere un controllo da un cancello Fare clic con il pulsante destro del mouse sull'icona del cancello, scegliere Rimuovi controllo dal menu di scelta rapida e quindi selezionare l'icona per il controllo da rimuovere. È anche possibile fare clic con il pulsante destro del mouse sull'icona del controllo direttamente e scegliere Rimuovi controllo oppure trascinare l'icona del controllo dal diagramma.
Convertire un cancello nell'adiacente Fare clic con il pulsante destro del mouse sull'icona della porta e scegliere Attiva/Disattiva Adjoint dal menu di scelta rapida.
Definire un parametro per un gate Quando si posiziona un cancello che richiede un argomento, viene visualizzata una finestra di dialogo. Immettere un numero o un'espressione nella casella di richiesta. Per aggiornare l'argomento, fare clic con il pulsante destro del mouse sulla porta e scegliere Modifica argomento. In alternativa, fare clic con il pulsante sinistro del mouse sul testo dell'argomento sull'icona del cancello.

Come usare circuit editor i circuiti nei Q# progetti

I file di circuito con l'estensione .qsc definiscono le operazioni a cui è possibile fare riferimento dal Q# codice all'interno dello stesso Q# progetto. I circuiti dai file .qsc vengono visualizzati come qualsiasi altra operazione Q# e sono supportati dal servizio linguistico Q# con funzionalità come completamenti automatici, assistenza per le firme e definizione go-to.

Il file di circuito definisce un namespace che deriva dal nome del file, simile al funzionamento dei file Q#. Il circuito nel file .qsc definisce un'operazione Q# che ha lo stesso nome del file all'interno dello stesso spazio dei nomi. Ad esempio, per fare riferimento a un circuito dal file Foo.qsc nel Q# codice, usare l'istruzione import seguente: import Foo.Foo;.

Il programma seguente Q# importa un circuito dal file JointMeasurement.qsce quindi chiama l'operazione JointMeasurement() per applicare il circuito a un sistema di qubit.

    import JointMeasurement.JointMeasurement;

    operation Main() : Result[] {
        use qs = Qubit[4];
        ApplyToEach(H, qs[0..2]);
        let results = JointMeasurement(qs);
        ResetAll(qs);
        results
}