common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


autoQAOA
Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

IBMのQiskitのQAOAのクラスがmixer対応してた

Yuichiro Minato

2020/12/20 11:42

#量子ゲート #qiskit #QAOA

はじめに

量子ゲート方式の組合せ最適化でさらに一歩進んだテクで探索の空間を制限するテクがあります。IBMのAquaに収録されてるQAOAはこのテクをきちんと含んでたので、みてみます。

IBMのAqua

IBMのQiskitという量子コンピュータ向けのSDKのライブラリとしてアルゴリズムが搭載されています。その中でQAOAという最適化計算用のアルゴリズムがあります。

QAOA

QAOAは最適化アルゴリズムで、

https://qiskit.org/documentation/locale/ja_JP/api/qiskit.aqua.algorithms.QAOA.html

に収録されています。

classQAOA(operator, optimizer, p=1, initial_state=None, mixer=None, initial_point=None, max_evals_grouped=1, aux_operators=None, callback=None, auto_conversion=True)

様々な引数を設定できるクラスとして設定されています。そのなかに、

mixer=None

を見つけました。

operator (BaseOperator) – Qubit operator

p (int) – the integer parameter p as specified in https://arxiv.org/abs/1411.4028

initial_state (InitialState) – the initial state to prepend the QAOA circuit with

mixer (BaseOperator) – the mixer Hamiltonian to evolve with. Allows support of optimizations in constrained subspaces as specified in https://arxiv.org/abs/1709.03489

optimizer (Optimizer) – the classical optimization algorithm.

initial_point (numpy.ndarray) – optimizer initial point.

max_evals_grouped (int) – max number of evaluations to be performed simultaneously.

aux_operators (list) – aux operators

いろんなパラメータがありますが、

mixer (BaseOperator) – the mixer Hamiltonian to evolve with. Allows support of optimizations in constrained subspaces as specified in https://arxiv.org/abs/1709.03489

があります。ハミルトニアンの時間発展のミキサーを変更することで、制約部分空間の内部に制限して解の探索ができます。これはとてもありがたいです。

通常のQAOAステップは、

1、初期ハミルトニアンと初期状態を準備する。

2、最終ハミルトニアンを準備する。

3、時間発展させる。

この際にミキサーは初期ハミルトニアンの時間発展を利用しますが、初期状態と初期ハミルトニアンを自由に変更でき、特に、swap演算子を利用することで効率的に部分空間を活用できます。

IBM Qiskit

QAOA使うなら是非このmixer機能は使って欲しいです。時間があるときに実際のコードで実行してみたいと思います。

© 2025, blueqat Inc. All rights reserved