Kipu Quantum Iskay Quantum Optimizer API リファレンス
Qiskit Functions — パートナー組織によって開発された既製のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。
Iskay Quantum Optimizer Qiskit 関数ガイド
入力
problem
タイプ: Dict[str, float]
QUBO/HUBO形式またはスピン形式で定式化された最適化問題の係数。 問題の仕様に関する詳細は、 「許可される問題形式」 を参照してください。
- 必須:はい
- 例:
{"()": -21.0, "(0, 4)": 0.5,"(0, 2)": 0.5,"(0, 1)": 0.5,"(1, 3)": 0.5}
problem_type
タイプ: str
問題の係数が2進形式(QUBO/HUBO)かスピン形式かを指定してください。 2つの可能性は、または "spin" です "binary"。 問題の仕様に関する詳細については、 「許可される問題形式」 を参照してください。
- 必須:はい
- 例:
"spin"
backend_name
タイプ: str
クエリを実行するバックエンドの名前
- 必須:はい
- 例:
"ibm_fez"
オプション
タイプ: Dict[str, Any]
撮影枚数など、ハードウェアの送信を処理するためのオプション。 この関数のオプションは、ネストされた辞書として指定します。 オプションの一覧とそのデフォルト値を確認してください。
- 必須:いいえ
- 例:
{"shots": 5000, "num_iterations": 3, "use_session": True, "seed_transpiler": 42}
引数 problem problem_type および は、次のような形式の最適化問題を表現している
ここで
- を選択することで
problem_type = "binary"、コスト関数がbinary形式であることを指定します。これは、 となることを意味し、つまり、コスト関数がQUBO/HUBO形式で記述されていることを示します。 - 一方、を選択すると
problem_type = "spin"、コスト関数はアイジング形式で表され、ここで となる。
この問題の係数は、次のように辞書にエンコードする必要があります:
- 辞書のキーは、重複しない整数の有効なタプルを含む文字列でなければならない点にご注意ください。
オプション・リスト
Iskayは、オプションのパラメータを通じて微調整機能を提供します。 デフォルトの設定はほとんどの問題で問題なく機能しますが、特定の要件に合わせて動作をカスタマイズすることも可能です:
shots
タイプ: `int`
デフォルト値: 10000
1回の反復あたりの量子測定回数(数値が大きいほど精度が高い)
num_iterations
タイプ: `int`
デフォルト値: 10
アルゴリズムの反復回数(反復回数を増やすと解の精度が向上する可能性があります)
use_session
タイプ: `bool`
デフォルト値: True
待ち時間を短縮するには、 IBM のセッションをご利用ください
seed_transpiler
タイプ: `int`
デフォルト値: None
再現可能な量子回路のコンパイル用セット。
シードの最適化 :デフォルトでは、 None はに設定されている seed_transpiler ことに注意してください。 これにより、トランスパイラの自動最適化プロセスが有効になります。 この場合 None、システムは複数のシードを用いて試行を開始し、各トランスパイルレベルにおけるパラメータ max_trials の能力を最大限に活用して、回路の深さが最も深くなるものを選択します。
direct_qubit_mapping
タイプ: `bool`
デフォルト値: False
仮想量子ビットを物理量子ビットに直接対応させる
job_tags
タイプ: `List[str]`
デフォルト値: None
業務管理用のカスタムタグ
preprocessing_level
タイプ: `int`
デフォルト値: 0
問題の前処理強度(0~3)。
前処理レベル(0~3) :現在、ハードウェアのコヒーレンス時間に収まらない大規模な問題において特に重要です。 前処理レベルが高いほど、問題のトランスパイルにおける近似によって回路の深さが浅くなります:
- レベル0 :正確で、より長い回路
- レベル1 :正確性と近似性のバランスが良好で、角度が下位10パーセンタイルにあるゲートのみを除外する
- レベル 2 :やや精度の高い近似。下位 20パーセンタイルの角度を持つゲートを除外し、トランスパイレーション
approximation_degree=0.95で を使用する - レベル 3 :最高精度レベル。下位 30 パーセンタイルのゲートを除外し、トランスパイル時に
approximation_degree=0.90を使用する
postprocessing_level
タイプ: `int`
デフォルト値: 2
解の精緻化レベル(0~2)。
後処理レベル (0~2) :局所探索の貪欲法による反復回数を変更し、ビット反転エラーを補正する古典的最適化の度合いを制御します:
- レベル0 :1回通過
- レベル1 :2回合格
- レベル2 :3回
transpilation_level
タイプ: `int`
デフォルト値: 0
トランスパイラ最適化の実験(0~5)。
トランスパイルレベル(0~5) :量子回路のコンパイルにおける高度なトランスパイラ最適化の試行を制御します。 これにより、従来のオーバーヘッドが増加する可能性があり、場合によっては回路の深さに変化がないこともあります。 一般的に、デフォルト値 2 を使用すると回路が最も小さくなり、処理も比較的速くなります。
- レベル0 :分解されたDCQO回路の最適化(レイアウト、配線、スケジューリング)
- レベル1 :および、分解された
PauliEvolutionGateDCQO回路の最適化( max_trials=10 ) - レベル2 :および、分解された
PauliEvolutionGateDCQO回路の最適化( max_trials=15 ) - レベル3 :および、分解された
PauliEvolutionGateDCQO回路の最適化( max_trials=20 ) - レベル4 :および、分解された
PauliEvolutionGateDCQO回路の最適化( max_trials=25 ) - レベル5 :および、分解された
PauliEvolutionGateDCQO回路の最適化( max_trials=50 )
transpile_only
タイプ: `bool`
デフォルト値: False
量子アルゴリズムを完全に実行することなく、回路の最適化を分析したいユーザー向けに利用可能です。 回路解析や深さ最適化の検討、および完全な実行に移す前にトランスパイラの影響を把握するのに役立ちます。
の値を高く設定 max_trials して transpilation_level の数を増やすと、必然的にトランスパイル時間が長くなりますが、必ずしも最終的な回路が変更されるとは限りません。これは、具体的な回路の構造や複雑さに大きく依存します。 ただし、回路や問題によっては、10回の試行(レベル1)と50回の試行(レベル5)との間に劇的な違いが生じる場合があるため、これらのパラメータを調整することが、解決策を見出すための鍵となるかもしれません。
出力
タイプ: `Dict[str, Any]`
ソリューションとメタデータ。 構成はオプション transpile_only によって異なります。
結果辞書
結果辞書の構造は、実行モードによって異なります:
solution
タイプ: `Dict[str, int]`
キーが数値順にソートされた変数インデックス(文字列として)であり、値が対応する変数の値(スピン問題の場合は1/-1、二値問題の場合は1/0)である、ソート済みマップ型ソリューション。
- モード:標準
- 例:
{'0': -1, '1': -1, '2': -1, '3': 1, '4': 1}
solution_info
タイプ: `Dict[str, Any]`
ソリューションに関する詳細情報。
- モード:標準
- 例:
{'bitstring': '11100', 'cost': -13.8, 'seed_transpiler': 42, 'mapping': {0: 0, 1: 1, 2: 2, 3: 3, 4: 4}} - 標準的な実行 :オプションのパラメータが指定された
transpile_only=False場合、以下の辞書を参照してください。
bitstring
タイプ: `str`
解の生のビット列表現。
cost
タイプ: `float`
その解決策に伴う費用対効果。
seed_transpiler
タイプ: `int`
この結果を生成したトランスパイラで使用された乱数シード。
mapping
タイプ: `Dict[int, int]`
計算に使用された、元の量子ビットと変数の対応関係。
qpu_time
タイプ: `float`, optional
QPUの実行時間(秒単位)。
- 辞書
solutionは、ソリューションのビット列から、変数のインデックス付けにオブジェクトmappingを使用して取得されます。 - という代入
problem_type=spinを行うと。 - ソリューション辞書のキーは、文字列として数値順に並べられた変数インデックスです。
prob_type
タイプ: `str`
最適化問題の種類(spin または binary)
- モード:標準
- 例:
'spin'
transpilation_info
タイプ: `Dict[str, Any]`
回路解析およびトランスパイルの詳細。
- モード:トランスパイルのみ
- 例:
{'best_seed': 42, 'transpilation_time_seconds': 50.06, 'transpiled_circuit': {'depth': 576, 'gate_count': 4177, 'num_qubits': 156, 'width': 176, 'operations': {'sx': 1325, 'rx': 891, 'cz': 783, 'rz': 650, 'rzz': 466, 'x': 42, 'measure': 20}}} - トランスパイル解析 :オプションのパラメータが指定された
transpile_only=True場合、以下の辞書を参照してください:
best_seed
タイプ: `int`
転植に適した最適な種子が発見された。
transpilation_time_seconds
タイプ: `float`
トランスパイル処理にかかる時間。
transpiled_circuit
タイプ: `Dict`
以下の内容を含む回路解析:
depth
タイプ: `int`
回路の深さ(層数)
gate_count
タイプ: `int`
回路内のゲート総数。
num_qubits
タイプ: `int`
使用される量子ビットの数。
width
タイプ: `int`
回路の幅。
operations
タイプ: `Dict[str, int]`
各ゲートタイプの使用回数。