Referência da API do Parity Twine Optimizer
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.
ParityQC Guia do Parity Twine Optimizer
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 ( ) ou binary ( ).
- Necessário: sim
- Opções:
spinoubinary
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.