Skip to main content
IBM Quantum Platform

Referência da API do Parity Twine Optimizer

  • Qiskit Functions

    Qiskit Functions — ferramentas prontas para uso, criadas por organizações parceiras — abstraem partes do fluxo de trabalho de desenvolvimento de software para simplificar e acelerar a descoberta de algoritmos e o desenvolvimento de aplicativos em escala de serviços públicos. Clique para visualizar o guia desta função do Qiskit.


Entradas

Consulte a lista a seguir para conhecer todos os parâmetros de entrada aceitos por esta API.

problem

Tipo: dict[str, float]

A função de custo a ser resolvida. As chaves do dicionário correspondem aos rótulos dos qubits, e os valores, aos coeficientes.

  • Necessário: sim
  • Exemplo:{"()": 3, "(0,)": 1, "(0, 1)": 2, "(1, 2)": -1}

variable_type

Tipo: str

Independentemente de as variáveis serem do tipo spin ( s∈{−1,1}s \in \{-1, 1\} ) ou binary ( x∈{0,1}x \in \{0, 1\} ).

  • Necessário: sim
  • Opções: spin ou binary

backend_name

Tipo: str

Nome do backend a ser usado. Se não for especificado, é escolhido o backend menos ocupado.

  • Obrigatório: Não
  • Exemplo:ibm_phoenix

problem_type

Tipo: str

Valor Padrão: ""

Especifica o tipo de problema para habilitar o pós-processamento especializado. No momento, apenas o ( mis Conjunto Independente Máximo) é compatível. Se mis estiver definido, o algoritmo aplica um pós-processamento específico que aproveita a estrutura MIS. Se for deixado em branco, será aplicado o pós-processamento padrão.

  • Obrigatório: Não
  • Escolhas: mis

Opções

Tipo: dict[str, Any]

Opções de entrada, incluindo as seguintes: (Opcional) As opções são especificadas como um dicionário aninhado. Veja a lista completa de opções e seus valores padrão.

  • Obrigatório: Não
  • Exemplo:{"shots": 1000, "problem_type": "my_problem", "postprocessing_level": 1, "transpile_only": False, "job_tags": ["my_tag"]}

Lista de opções

shots

Tipo: int

Valor Padrão: 100000

O número de fotos a serem usadas.

postprocessing_level

Tipo: int

Valor Padrão: 1

Se deve ou não realizar o pós-processamento clássico. Os valores possíveis são 0 (sem pós-processamento) e 1 (com pós-processamento).

transpile_only

Tipo: bool

Valor Padrão: False

Variável booleana que indica se será realizada apenas a transpilação do circuito. Nesse caso, são retornadas as métricas do circuito.

job_tags

Tipo: list[str]

Valor Padrão: None

Uma etiqueta para identificar o trabalho no site IBM Quantum® Platform.

  • Padrão: None
  • Exemplo:["my_job_tag"]

Saídas

O resultado dessa API é um objeto dict que contém a solução, a sequência de bits da solução, o valor do objetivo e os metadados. Se o sinalizador transpile_only estiver definido, apenas os campos de métrica do circuito serão preenchidos com valores.

Exemplo:

{
    '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}
        }
    }
}

Estrutura de saída

solution

Tipo: dict[str, int]

Valor da solução. As chaves correspondem às definidas em problem.

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

objective_value

Tipo: float

Custo da solução. Quantifica a qualidade da solução.

  • Exemplo:-1.0

solution_bitstring

Tipo: str

A sequência de bits correspondente ao menor custo.

  • Exemplo:'100'

metadata

circuit_metrics

Tipo: dict[str, Any]

Informações sobre a transpilacão do Twine.

depth

Tipo: int

A profundidade do circuito.

gate_count

Tipo: int

O número de portas no circuito.

two_qubit_gate_depth

Tipo: int

A profundidade do circuito de dois qubits.

two_qubit_gate_count

Tipo: int

O número de qubits do circuito.

num_qubits

Tipo: int

Número de qubits ativos no circuito.

operations

Tipo: dict[str, int]

Tipo de porta (chaves) e ocorrência (valor) no circuito.

solver_info

Tipo: dict[str, Any]

Perspectivas algorítmicas

variable_mapping

Tipo: dict[str, int]

O mapeamento de variáveis para qubits utilizado no cálculo.

bitstring_distributions

Tipo: dict[str, Any]

Um mapeamento do estado fundamental e da frequência com que ele foi amostrado.

before_postprocessing

Tipo: dict[str, int]

Distribuição das sequências de bits medidas antes do pós-processamento clássico.

after_postprocessing

Tipo: dict[str, int]

Distribuição das sequências de bits medidas após o pós-processamento clássico.

best_parameters

Tipo: dict[str, Any]

Parâmetros de treinamento variacional otimizados.

beta

Tipo: list[float]

Parâmetro variacional beta otimizado.

gamma

Tipo: list[float]

Parâmetro variacional gama otimizado.

resource_usage

Tipo: dict[str, Any]

Informações sobre os prazos.

RUNNING: MAPPING

Tipo: dict[str, float]

Tempo de CPU (s) para o problema de mapeamento.

RUNNING: OPTIMIZING_FOR_HARDWARE

Tipo: dict[str, float]

Tempo de CPU (s) para otimização de hardware.

RUNNING: WAITING_FOR_QPU

Tipo: dict[str, float]

Tempo de CPU (s) em espera pela QPU.

RUNNING: EXECUTING_QPU

Tipo: dict[str, float]

Tempo de uso da CPU (s).

RUNNING: POST_PROCESSING

Tipo: dict[str, float]

Tempo de CPU (s) para o pós-processamento dos resultados.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.