Skip to main content
IBM Quantum Platform

Riferimento all'API di Parity Twine Optimizer

  • Qiskit Functions

    Qiskit Functions — strumenti preconfigurati realizzati da organizzazioni partner — astraggono alcune parti del flusso di lavoro di sviluppo software per semplificare e accelerare la scoperta di algoritmi su scala industriale e lo sviluppo di applicazioni. Clicca qui per visualizzare la guida relativa a questa funzione di Qiskit.


Input

Consulta l'elenco seguente per conoscere tutti i parametri di input accettati da questa API.

problem

Tipo: dict[str, float]

La funzione di costo da risolvere. Le chiavi del dizionario corrispondono alle etichette dei qubit, mentre i valori corrispondono ai coefficienti.

  • Obbligatorio: sì
  • Esempio: {"()": 3, "(0,)": 1, "(0, 1)": 2, "(1, 2)": -1}

variable_type

Tipo: str

A prescindere dal fatto che le variabili siano di tipo spin ( s∈{−1,1}s \in \{-1, 1\} ) o binary ( x∈{0,1}x \in \{0, 1\} ).

  • Obbligatorio: sì
  • Opzioni: oppure spin binary

backend_name

Tipo: str

Nome del backend da utilizzare. Se non specificato, viene scelto il backend meno carico.

  • Obbligatorio: No
  • Esempio: ibm_phoenix

problem_type

Tipo: str

Valore predefinito: ""

Specifica il tipo di problema per abilitare una post-elaborazione specializzata. Al momento è supportato solo il ( mis insieme massimo indipendente). Se mis è impostato, l'algoritmo applica una post-elaborazione specifica che sfrutta la struttura MIS. Se lasciato vuoto, viene applicata la post-elaborazione standard.

  • Obbligatorio: No
  • Opzioni: mis

Opzioni

Tipo: dict[str, Any]

Opzioni di input, tra cui le seguenti: (Facoltativo) Le opzioni vengono specificate come un dizionario annidato. Consulta l' elenco completo delle opzioni e dei relativi valori predefiniti.

  • Obbligatorio: No
  • Esempio: {"shots": 1000, "problem_type": "my_problem", "postprocessing_level": 1, "transpile_only": False, "job_tags": ["my_tag"]}

Elenco opzioni

shots

Tipo: int

Valore predefinito: 100000

Il numero di scatti da utilizzare.

postprocessing_level

Tipo: int

Valore predefinito: 1

Se effettuare o meno la post-elaborazione classica. I valori possibili sono 0 (nessuna post-elaborazione) e 1 (eseguire la post-elaborazione).

transpile_only

Tipo: bool

Valore predefinito: False

Valore booleano che indica se viene eseguita solo la transpilazione del circuito. In tal caso, vengono restituite le metriche del circuito.

job_tags

Tipo: list[str]

Valore predefinito: None

Un'etichetta per identificare un'attività su IBM Quantum® Platform.

  • Predefinito: None
  • Esempio: ["my_job_tag"]

Output

L'output di questa API è un oggetto dict contenente la soluzione, la stringa di bit della soluzione, il valore dell'obiettivo e i metadati. Se il flag transpile_only è impostato, vengono compilati con valori solo i campi relativi alla metrica del circuito.

Esempio:

{
    'solution': {'0': -1, '1': 1, '2': 1}, 
    'objective_value': -1.0,
    'solution_bitstring': '100',
    'metadata': {
        'circuit_metrics': {
            'depth': 23, 
            'gate_count': 200,
            'two_qubit_gate_depth': 4,
            'two_qubit_gate_count': 4,
            'num_qubits': 3,
            'operations': {'delay': 158, 'rz': 18, 'sx': 15, 'cz': 4, 'measure': 3, 'x': 2}
        }, 
        'solver_info': {
            'variable_mapping': {'0': 0, '1': 1, '2': 2},
            'bitstring_distributions': {
                'before_postprocessing': {'011': 3, '001': 1, '110': 1, '111': 3, '101': 1, '010': 1},
                'after_postprocessing': {'011': 4, '100': 6}
            }, 
            'best_parameters': {
                'beta': [-0.46259546391008877],
                'gamma': [0.6181957189727373]
            }
        },
        'resource_usage': {
            'RUNNING: MAPPING': {'CPU_TIME': 15.536},
            'RUNNING: OPTIMIZING_FOR_HARDWARE': {'CPU_TIME': 0.04}, 
            'RUNNING: WAITING_FOR_QPU': {'CPU_TIME': 0.0},
            'RUNNING: EXECUTING_QPU': {'QPU_TIME': 8.945},
            'RUNNING: POST_PROCESSING': {'CPU_TIME': 0.765}
        }
    }
}

Struttura dell'output

solution

Tipo: dict[str, int]

Valore della soluzione. Le chiavi corrispondono a quelle definite in problem.

  • Esempio: {'0': -1, '1': 1, '2': 1}

objective_value

Tipo: float

Costo della soluzione. Misura la qualità della soluzione.

  • Esempio: -1.0

solution_bitstring

Tipo: str

La stringa di bit corrispondente al costo più basso.

  • Esempio: '100'

metadata

circuit_metrics

Tipo: dict[str, Any]

Informazioni sulla trasposizione di Twine.

depth

Tipo: int

La profondità del circuito.

gate_count

Tipo: int

Il numero di porte logiche nel circuito.

two_qubit_gate_depth

Tipo: int

La profondità del circuito a due qubit.

two_qubit_gate_count

Tipo: int

Numero di qubit del circuito.

num_qubits

Tipo: int

Numero di qubit attivi nel circuito.

operations

Tipo: dict[str, int]

Tipo di gate (chiavi) e presenza (valore) nel circuito.

solver_info

Tipo: dict[str, Any]

Approfondimenti algoritmici

variable_mapping

Tipo: dict[str, int]

La mappatura da variabile a qubit utilizzata nel calcolo.

bitstring_distributions

Tipo: dict[str, Any]

Una rappresentazione dello stato di base e della frequenza con cui è stato campionato.

before_postprocessing

Tipo: dict[str, int]

Distribuzione delle stringhe di bit misurate prima della post-elaborazione classica.

after_postprocessing

Tipo: dict[str, int]

Distribuzione delle stringhe di bit misurate dopo la post-elaborazione classica.

best_parameters

Tipo: dict[str, Any]

Parametri di addestramento variazionale ottimizzati.

beta

Tipo: list[float]

Parametro variazionale beta ottimizzato.

gamma

Tipo: list[float]

Parametro variazionale gamma ottimizzato.

resource_usage

Tipo: dict[str, Any]

Informazioni sulle tempistiche.

RUNNING: MAPPING

Tipo: dict[str, float]

Tempo di CPU (s) per il problema di mappatura.

RUNNING: OPTIMIZING_FOR_HARDWARE

Tipo: dict[str, float]

Tempo di CPU (s) per l'ottimizzazione hardware.

RUNNING: WAITING_FOR_QPU

Tipo: dict[str, float]

Tempo di CPU (s) trascorso in attesa della QPU.

RUNNING: EXECUTING_QPU

Tipo: dict[str, float]

Tempo di elaborazione della QPU (in s) impiegato.

RUNNING: POST_PROCESSING

Tipo: dict[str, float]

Tempo di CPU (s) per la post-elaborazione dei risultati.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.