Skip to main content
IBM Quantum Platform

qiskit.circuit.library.qaoa_ansatz

qiskit.circuit.library.qaoa_ansatz(cost_operator, reps=1, initial_state=None, mixer_operator=None, insert_barriers=False, name='QAOA', flatten=True)

GitHub

カスタム初期状態とミキサーをサポートした一般化QAOA量子回路。

例:

QAOAアサッツを定義するためには、古典的な最適化問題を符号化したコスト・ハミルトニアンが必要である:

from qiskit.quantum_info import SparsePauliOp
from qiskit.circuit.library import qaoa_ansatz

cost_operator = SparsePauliOp(["ZZII", "IIZZ", "ZIIZ"])
ansatz = qaoa_ansatz(cost_operator, reps=3, insert_barriers=True)
ansatz.draw("mpl")
先のコードで出力された回路図。

パラメーター

  • cost_operator (BaseOperator) – 最適化問題のコストを表す演算子で、 [1では] U(C,γ)U(C, \gamma)
  • reps (int) – 回路の深さを決める整数で、 [1では] pp
  • initial_state (QuantumCircuit | None) – デフォルトはハダマードゲートのレイヤーで、 +n|+\rangle^{\otimes n}。 カスタム・ミキサーを選択した場合、この回路は、アニール条件を適切に満たすために、接地状態を準備するように設定されるべきである。
  • mixer_operator (BaseOperator | None) – オプションのカスタム・ミキサーで、デフォルトはグローバル・パウリ XX ローテーション。 これを [1では] U(B,β)U(B, \beta)。 これが設定されている場合、 initial_state
  • insert_barriers (bool) – コストとミキサーオペレーターの間にバリアを挿入するかどうか。
  • name (str) – 回路の名前。
  • flatten (bool) – True の場合、ゲート・オブジェクトの複数のレイヤーの中に入れ子にするのではなく、フラットな回路が返される。 これを False に設定すると、特にパラメーター・バインディングのパフォーマンスが著しく低下するが、よりきれいに視覚化するためには望ましい。

戻りの型

QuantumCircuit

参照資料:

[1] ファーリら、 量子近似最適化アルゴリズム。 arXiv:1411.4028

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。