QAOAAnsatz
class qiskit.circuit.library.QAOAAnsatz(cost_operator=None, reps=1, initial_state=None, mixer_operator=None, name='QAOA', flatten=None)
Bases: EvolvedOperatorAnsatz
Um circuito quântico QAOA generalizado com suporte de estados iniciais e misturadores personalizados.
Referências
[1] Farhi et al, Um algoritmo de otimização quântica aproximada. arXiv:1411.4028
Parâmetros
- cost_operator (BaseOperator or OperatorBase, optional) – O operador que representa o custo do problema de otimização, denotado como no documento original. Deve ser definido no construtor ou por meio do definidor de propriedade.
- reps (int) – O parâmetro inteiro p, que determina a profundidade do circuito, conforme especificado no documento original, o padrão é 1.
- initial_state (QuantumCircuit, optional) – Um estado inicial opcional a ser usado. Se None for passado, um conjunto de portas Hadamard será aplicado como um estado inicial a todos os qubits.
- mixer_operator (BaseOperator or OperatorBase or QuantumCircuit, optional) – Um misturador personalizado opcional a ser usado em vez das rotações X globais, denotado como no documento original. Pode ser um operador ou um circuito quântico parametrizado opcionalmente.
- name (str) – Um nome do circuito, padrão 'qaoa'
- flatten (bool | None) – Defina essa opção como
Truepara gerar um circuito plano em vez de aninhá-lo em várias camadas de objetos de porta. Por padrão, atualmente, o conteúdo do circuito de saída será agrupado em objetos aninhados para uma visualização mais limpa. No entanto, se estiver usando esse circuito para qualquer coisa além de visualização, é altamente recomendável definir esse sinalizador comoTruepara evitar uma grande sobrecarga de desempenho para a vinculação de parâmetros.
Atributos
cost_operator
Retorna um operador que representa o custo do problema de otimização.
Retorna
operador de custos.
Tipo de retorno
BaseOperator ou OperatorBase
initial_state
Retorna um estado inicial opcional como um circuito
mixer_operator
Retorna um operador de mixer opcional expresso como um operador ou um circuito quântico.
Retorna
operador ou circuito do misturador.
Tipo de retorno
BaseOperator ou OperatorBase ou QuantumCircuit, opcional
num_qubits
operators
Os operadores que são desenvolvidos nesse circuito.
Retorna
Os operadores a serem desenvolvidos
(e circuitos) nesse ansatz.
Tipo de retorno
List[Union[ BaseOperator, OperatorBase, QuantumCircuit ]]
parameter_bounds
Os limites de parâmetros para os parâmetros não vinculados no circuito.
Retorna
Uma lista de pares indicando os limites, como (inferior, superior). Nenhum indica um parâmetro não limitado na direção correspondente. Se None for retornado, o problema será totalmente ilimitado.
reps
Retorna o parâmetro reps, que determina a profundidade do circuito.
name
Tipo: str
Um nome legível por humanos para o circuito.
Exemplo
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit