Skip to main content
IBM Quantum Platform

ターゲット

class qiskit.transpiler.Target(description=None, num_qubits=0, dt=None, granularity=1, min_length=1, pulse_alignment=1, acquire_alignment=1, qubit_properties=None, concurrent_measurements=None, **_subclass_kwargs)

GitHub

ベース: BaseTarget

Target オブジェクトの意図は、Qiskitのコンパイラに特定のバックエンドの制約を通知し、コンパイラが入力回路をデバイスに最適化された動作するものにコンパイルできるようにすることです。 現在、バックエンドのインストラクションとそのプロパティ、そしていくつかのタイミング情報が含まれている。 しかし、この正確なインターフェイスは、コンパイラのニーズが変化するにつれて変化していく可能性がある。 これらの変更は、ターゲットによって公開される情報のセットに追加するために(バージョニング、サブクラス化、ミキシンのいずれかによって)行われる場合、後方互換性があり、管理された方法で行われる。

基本的な例として、あるバックエンドが2つの量子ビットを持ち、両方の量子ビットで UGate をサポートし、 CXGate 両方向で をサポートしていると仮定しましょう。 これをモデル化するには、次のようにターゲットを作成します:

from qiskit.transpiler import Target, InstructionProperties
from qiskit.circuit.library import UGate, CXGate
from qiskit.circuit import Parameter

gmap = Target()
theta = Parameter('theta')
phi = Parameter('phi')
lam = Parameter('lambda')
u_props = {
    (0,): InstructionProperties(duration=5.23e-8, error=0.00038115),
    (1,): InstructionProperties(duration=4.52e-8, error=0.00032115),
}
gmap.add_instruction(UGate(theta, phi, lam), u_props)
cx_props = {
    (0,1): InstructionProperties(duration=5.23e-7, error=0.00098115),
    (1,0): InstructionProperties(duration=4.52e-7, error=0.00132115),
}
gmap.add_instruction(CXGate(), cx_props)

Target 内の各命令は、Target 内のオブジェクトのインスタンスを一意に識別する一意の文字列名でインデックス付けされる。 Instruction オブジェクトのインスタンスを一意に識別します。 名前とターゲットのインスタンスの間には1対1のマッピングがあり、それぞれの名前は一意でなければならない。 Instruction のインスタンスとの間に1対1の対応付けがあり、それぞれの名前は一意でなければならない。 デフォルトでは name 属性であるが、任意に設定できる。 これにより、1つのターゲットが、異なるパラメータを持つ同じ命令クラスの複数のインスタンスを持つことができる。 例えば、バックエンドターゲットに2つのインスタンス RXGate の2つのインスタンスがある場合、一方は任意のθに対してパラメータ化され、もう一方は pi/6 のθに対して調整されている:

import math

from qiskit.transpiler import Target, InstructionProperties
from qiskit.circuit.library import RXGate
from qiskit.circuit import Parameter

target = Target()
theta = Parameter('theta')
rx_props = {
    (0,): InstructionProperties(duration=5.23e-8, error=0.00038115),
}
target.add_instruction(RXGate(theta), rx_props)
rx_30_props = {
    (0,): InstructionProperties(duration=1.74e-6, error=.00012)
}
target.add_instruction(RXGate(math.pi / 6), rx_30_props, name='rx_30')

そして、 rx_30 でアクセスする target オブジェクトは固定角度を取得し、 はパラメータ化された角度を取得する。 RXGate 一方、 rx はパラメータ化された RXGate.

メソッド add_instruction() 呼び出し時にキーワード angle_bounds 引数を使用することで、ターゲットのゲートにおける有効な値の上限を任意で指定できます。 操作に対して境界が設定され、個々の命令に対しては設定されない。したがって、関数を呼び出す際には、その関数が定義 add_instruction() されているすべてのqargsに対して境界が適用される。 境界は、2つの浮動小数点数の組からなるリストで指定される。最初の浮動小数点数は下限値、2番目の浮動小数点数は上限値である。 たとえば、角度の境界を指定した場合:

[(0.0, 3.14), (-3.14, 3.14), (0.0, 1.0)]

最初のパラメーターは0から 3.14、2番目のパラメーターは -3.14 から 3.14、3番目のパラメーターは0から1の間の角度を受け付ける。 すべてのバウンドも包括的に設定されている。 パラメータに制約がないことを示す2タプルの代わりに、 None 。 例:

[(0.0, 3.14), None, None]

は、3つのパラメータを持つゲートの角度制限を示し、最初のパラメータのみが 0.0 から 3.14 の間の角度に制限され、他のパラメータはどのような値でも受け付ける。

ターゲット内の操作に角度境界が設定されているかどうかを確認できます、 has_angle_bounds() また、ターゲット内の特定の名前に gate_has_angle_bounds(). パラメータ値の特定のセットが角度境界に適合しているかどうかは、次のようにしてチェックできる。 supported_angle_bound(). プリセットパスマネージャーでは WrapAngles パスは角度の境界を強制するために使われます。 WrapAngleRegistry に関数を提供する必要があります。 詳しくはゲートの角度

このクラスは、命令の名前をキーとして、マッピング・プロトコルで問い合わせることができる。 メソッドを使って、命令のプロパティを変更することができます。 update_instruction_properties() メソッドで変更できます。 マッピング・プロトコルによる変更や、オブジェクトの属性の変更はサポートされていません。 InstructionProperties オブジェクトの属性を変更することはサポートされていません

このクラスは、量子ビットのインデックスが0から始まり、連続したセットであることを前提としている。 Target オブジェクトでインデックスを付け直す必要があります。

このクラスは、ゲート、qargs、プロパティの追加のみをサポートしている。 これらのいずれかを削除する必要がある場合は、既存のオブジェクトを反復処理して新しいサブセットを作成するのが最良の方法です(または、これを実行するメソッドのいずれかを使用します)。 オブジェクトは内部的にさまざまなビューをキャッシュしており、それらは削除によって無効になる可能性がある。


サブクラス化

技術的には Targetをサブクラス化することは技術的には可能だが、組み込み情報の大部分はRustにあり、組み込みのトランスパイラ・パスの中でRustからクエリされることに注意しよう。 Python -スペースのオーバーライドはRustからは見えませんので、Qiskitの組み込みトランスパイラパスの動作を変更するためにこれらに頼るべきではありません。 Target は主に、特殊なサブクラスではなく、特殊なコンストラクタを持つQPUの表現であると考えられています。 Target 基数を返す関数であるべきである Targetカスタム初期化子を持つサブクラスではありません。

サブクラス化を利用して、 Python -spaceプロパティオブジェクトに追加することができます。たとえば、カスタムバックエンド固有 Targetのトランスパイラステージで解釈するために使用できます。このオブジェクトは Target 、stage-pluginのコンストラクタに渡されます。

をサブクラス化してはいけません。 Target をサブクラス化してはいけません。 Python -spaceサブクラス化はRustで書かれたパスからは見えません。

さらに Target のコアはRustで書かれているため __new__() をイニシャライザーとして使用するので、正しい引数が基礎となる実装に渡されるようにしなければならない。 メソッドのシグネチャをオーバーライドする場合は __init__() メソッドのシグネチャをオーバーライドする場合は、同じシグネチャを持つ __new__()super().__new__() をオーバーライドする必要があります。

新しい Target オブジェクトを作成する。

パラメタ記述

Target を表すオプションの文字列。

タイプの説明

str

param num_qubits

バックエンドターゲットの量子ビット数を指定するオプションの int。 を呼び出すと、num_qubitsセットが更新され、指定されたプロパティの具体的な。 add_instruction() を呼び出すと、与えられたプロパティの具体的な qargs に対応するために、num_qubitsセットが更新される。

これを明示的に NoneTarget シミュレータやその他の抽象的なマシンで、量子ビット数に制限がないことを表します。 この場合、ターゲットに追加される命令はすべてグローバルでなければならない( properties=None または properties={None: None} )。

num_qubits

int

param dt

入力信号のシステム時間分解能(秒

タイプdt

浮動小数点

パラメータ粒度

パルス・ゲートの最小分解能を表す整数値で、単位は dt。 ユーザー定義のパルスゲートは、この粒度値の倍数の持続時間を持つべきである。

タイプ粒度

int

param min_length

最小パルスゲート長を表す整数値で、単位は dt。 ユーザー定義のパルスゲートは、この長さより長くなければならない。

タイプ min_length

int

param pulse_alignment

ゲート命令開始時刻の時間分解能を表す整数値。 ゲート命令は、アラインメント値の倍数である時間から開始すべきである。

type pulse_alignment

int

param acquire_alignment

測定指示開始時刻の時間分解能を表す整数値。 測定指示は、アライメント値の倍数である時間から開始すべきである。

タイプacquire_alignment

int

param qubit_properties

のリスト。 QubitProperties オブジェクトのリスト。 指定された場合、このリストの長さはターゲットの量子ビット数と一致しなければならず、リストのインデックスはプロパティが定義されている量子ビット番号と一致する。 もしいくつかの量子ビットにプロパティがない場合は、そのエントリーを None

qubit_properties型

リスト

param concurrent_measurements

一緒に測定しなければならない量子ビットのセットのリスト。 これは、 [[0, 1], [2, 3, 4]] のようにネストされたリストとして提供されなければならない。

type concurrent_measurements

リスト

レイズ ValueError

num_qubitsqubit_properties の両方が定義されており、 num_qubits の値が qubit_properties の長さと異なる場合。


属性

acquire_alignment

concurrent_measurements

description

dt

dtを返す。

granularity

instructions

対象のタプルのリスト(Instruction(qargs))を取得する

グローバルに定義された可変幅操作の場合、タプルは (class, None) 。classはグローバルに定義された実際の操作クラスである。

min_length

num_qubits

operation_names

ターゲット内の操作名を取得する。

operations

ターゲットの操作オブジェクトを取得する。

physical_qubits

物理量子ビットのソートされたリストを返します。

pulse_alignment

qargs

ターゲットのqargsのセット。

qubit_properties


方法

add_instruction

add_instruction(instruction, properties=None, name=None, *, angle_bounds=None)

GitHub

に新しい命令を追加する。 Target

Target オブジェクトは厳密に加法的であるため、これは Target を修正するための主要な方法である。 一般的には、 Target を完全に入力してから、それを BackendV2. 例:

from qiskit.circuit.library import CXGate
from qiskit.transpiler import Target, InstructionProperties

target = Target()
cx_properties = {
    (0, 1): None,
    (1, 0): None,
    (0, 2): None,
    (2, 0): None,
    (0, 3): None,
    (2, 3): None,
    (3, 0): None,
    (3, 2): None
}
target.add_instruction(CXGate(), cx_properties)

を追加する。 CXGate を、プロパティ(継続時間、エラーなど)のないターゲットに、カップリング・エッジ・リストとともに追加する: (0, 1), (1, 0), (0, 2), (2, 0), (0, 3), (2, 3), (3, 0), (3, 2). 命令に利用可能なプロパティがある場合は、プロパティ辞書の None の値を InstructionProperties オブジェクトに置き換えることができます。 このパターンは Instruction に対して繰り返される。

パラメーター

  • instruction (Union[qiskit.circuit.Instruction, Type[qiskit.circuit.Instruction]]) – マップに追加する操作オブジェクト。 パラメータ化されている場合、パラメータには任意の値を設定できます。 幅が可変の命令(やなどの制御フロー操作など MCXGate``ForLoop )については、必要に応じてクラスを指定することができます。 クラスが指定されている場合、引 name 数を指定する必要があります。 クラスを使用する場合、ゲートはグローバルとして扱われ、プロパティは設定されていないものとみなされます。
  • properties (dict) – qargエントリーの辞書。 InstructionProperties オブジェクトに変換します。 バックエンドで利用可能なプロパティがない場合、値は None になります。 InstructionProperties バックエンドで利用可能なものがない場合、値は None になります。 命令に制約がない場合(ノイズのない理想的なシミュレーションの場合)、 {None, None} 。これは、すべての量子ビット(マルチ量子ビット・ゲートの場合は、利用可能なすべての量子ビットの並べ替え)で実行されることを示します。 最初の None は、すべての量子ビットに適用されることを示し、2番目の None は、すべての量子ビットに適用される命令がないことを示す。 InstructionProperties であることを示す。 デフォルトでは、properties が設定されていない場合、 {None: None} を渡すのと同じである。
  • name (str) – 命令を識別するために使用するオプションの名前。 指定がない場合は namegate の属性が使われる。 Target 、すべてのゲートに固有の名前が必要だ。 バックエンドは、それぞれにユニークな名前を提供することで、単一のゲートの異なるパラメータ化を区別することができます(例えば、 “rx30”、 “rx60”、 `”rx90”`` クラスのドキュメントの例に似ています)。 Target クラスのドキュメントの例に似ています)。
  • angle_bounds (list) – 与えられたゲートのパラメータの境界。 これはタプル(low, high)のリストで指定され、そのタプルは、その位置のパラメータに許容される浮動小数点数の下限と上限を表す(含む)。 パラメータに角度の制約がない場合は、 None 。 例えば、3パラメータのゲートが2番目のパラメータにのみバインドを持っている場合、次のように表現します: [None, [0, 3.14], None] これは、1番目と3番目のパラメータはどのような値でも許容するが、2番目のパラメータは0から 3.14 までの値しか受け付けないことを意味します。

レイズ

  • AttributeError - ゲートがすでにマップ内にある場合
  • TranspilerError - instruction 、操作クラスが渡され、名前が指定されないか、 properties

build_coupling_map

build_coupling_map(two_q_gate=None, filter_idle_qubits=False)

GitHub

このターゲットから CouplingMap をこのターゲットから取得する。

接続性の制約がある2量子ビット演算と、グローバルに定義された演算が混在している場合、グローバルな接続性によりターゲットに対する制約が存在 None しないことになるため、これも同様に返されます。 制約を持つ2量子ビット演算の制約を確認したい場合は、引数 two_q_gate を使用して、制約を持つゲートのみを出力するように制限する必要があります。

パラメーター

  • two_q_gate (str) – Target 、カップリングマップを生成するための2量子ビットゲートのオプションのゲート名。 指定された場合、出力カップリングマップはこのゲートが存在する量子ビット間のエッジのみを持ちます。
  • filter_idle_qubits (bool) – True に設定すると CouplingMap はターゲットに定義された演算を持たない量子ビットを削除します。 この引数を使用すると、クラスの仮定とは異なる可能性のある、インデックスに穴のある出力 CouplingMap オブジェクトが出力されることになる。 この引数の典型的な使用例としては CouplingMap.connected_components() と組み合わせることである。

戻り値

** CouplingMap オブジェクト**

このターゲットのために。 ターゲットに接続制約がない場合、これは None を返す。

戻りの型

CouplingMap

レイズ

  • ValueError - 非2量子ビットのゲートが two_q_gate
  • IndexError - Target にない命令が two_q_gate のために渡された場合。

durations

durations()

GitHub

ターゲットから InstructionDurations オブジェクトを取得する

戻り値

で表される命令持続時間である。

ターゲット

戻りの型

InstructionDurations

from_configuration

classmethod from_configuration(basis_gates, num_qubits=None, coupling_map=None, instruction_durations=None, concurrent_measurements=None, dt=None, timing_constraints=None, custom_name_mapping=None)

GitHub

個々のグローバル・コンフィギュレーションからターゲット・オブジェクトを作成する

クラスが作成される前は Target クラスに含まれる情報のサブセットを表すさまざまなオブジェクトのコレクションによって表現されていました。 Target. この関数は、これらの別々のオブジェクトを Target.

このコンストラクタは、 basis_gatesnum_qubitscoupling_map の入力を使ってバックエンドの基本モデルを構築し、 instruction_durationsbackend_propertiesinst_map の入力を、そのモデルに基づいて(この順番で)照会し、各命令と量子ビットのプロパティを調べる。 入力間に矛盾がある場合、 instruction_durationsbackend_propertiesinst_map にある余分な情報や矛盾する情報は無視される。

パラメーター

  • basis_gates (list[str]) – バックエンドの基本ゲート名のリスト。 ターゲットが作成されるためには、これらの名前が get_standard_gate_name_mapping() から出力されるか、指定された custom_name_mapping 引数に存在しなければならない。
  • num_qubits (int | None) – バックエンドでサポートされている量子ビットの数。
  • coupling_map (CouplingMap | None) – バックエンドの接続制約を表す結合マップ。 指定された場合、 basis_gates からの全てのゲートが全ての量子ビット(または量子ビットのペア)でサポートされる。
  • instruction_durations (InstructionDurations | None) – 命令に対する任意の命令時間。 指定された場合、 duration フィールドの設定が優先されます。 InstructionProperties フィールドの設定が優先されます。
  • concurrent_measurements (list) – 一緒に測定しなければならない量子ビットのセットのリスト。 これは、 [[0, 1], [2, 3, 4]] のようにネストされたリストとして提供されなければならない。
  • dt (float | None) – 入力信号のシステム時間分解能(秒
  • timing_constraints (TimingConstraints | None) – に含めるオプションのタイミング制約 Target
  • custom_name_mapping (dict[str, Any] | None) – オプションの辞書で、カスタムのゲート/操作名を にマッピングし basis_gates 、そのゲート/操作を表す オブジェクト Operation を返します。 デフォルトでは、ほとんどの標準ゲート名は標準ゲートオブジェクトにマッピングされます。入力がそれ以外のセットで basis_gates 定義されたゲート名を使用する場合にのみ、 qiskit.circuit.library これを明示的に指定する必要があります。

戻り値

入力コンフィギュレーションから構築されたターゲット

戻りの型

ターゲット

レイズ

  • TranspilerError - 入力基底ゲートが2量子ビット以上で、 coupling_map
  • を指定した。 -
  • KeyError - 指定された basis_gate にマッピングがない場合。

gate_has_angle_bounds

gate_has_angle_bounds(name)

特定のゲート門にアングルバウンドが設定されているかどうかをチェックする

パラメーター

name (str) – アングルバウンドが設定されているかどうかをチェックする命令名

戻り値

ゲートがターゲット内にあり、角度の境界が定義されていれば、 True を返す。 ゲートに角度境界が定義されていないか、ターゲット内にない場合は、 False を返す。

戻りの型

bool

get

get(key, default=None)

GitHub

ターゲットからアイテムを取得します。 見つからない場合は、指定されたデフォルトか None を返す。

get_non_global_operation_names

get_non_global_operation_names(strict_direction=False)

GitHub

ターゲットのグローバルでないオペレーション名を返す

非グローバル演算とは、すべての量子ビット(単一量子ビット演算の場合)またはすべての多量量子ビット(多量量子ビット演算の場合)に適用されないターゲット内の演算のことである。

パラメーター

strict_direction (bool) – True に設定すると、非グローバルとみなされる多量子ビット演算は、厳密な方向(またはqargs内の量子ビットの順序が重要)を尊重する。 例えば、 cx(0, 1) で定義され、 ecr(1, 0) で定義されている場合、デフォルトではどちらもノングローバルとはみなされないが、 strict_directionTrue に設定されている場合、 cxecr の両方が返される。

戻り値

このターゲットでグローバルでない操作の操作名のリスト

戻りの型

リスト [str]

has_angle_bounds

has_angle_bounds()

ターゲットに角度の境界線が設定されているかどうかをチェックする

戻り値

回路内のどの命令にも角度境界が設定されている場合、 True を返します

戻りの型

bool

instruction_properties

instruction_properties(index)

GitHub

特定の命令タプルの命令プロパティの取得

このメソッドは instructions オブジェクトの Target オブジェクトの の要素のインストラクション・プロパティを素早く取得するには、このメソッドを使用します。 instructions の要素の命令プロパティを素早く取得することができます。 しかし instructions を直接操作しないのであれば、命令のプロパティを取得するために、名前と量子ビットを介してターゲットに直接アクセスする方が効率的でしょう。 例えば instructions を返した:

[(XGate(), (0,)), (XGate(), (1,))]

を使えば、第1量子ビットの XGate

props = target.instruction_properties(1)

しかし、名前から直接アクセスした方が効率的だ:

props = target['x'][(1,)]

(ターゲット内の XGate'の正規名が 'x' であると仮定して) これは、ターゲット内の命令タプルの数に応じてスケールが悪化するため、特に大きなターゲットに当てはまります。

パラメーター

index (int) – 属性からの命令タプルのインデックス。 instructions 属性のインデックス。 の3番目の要素からプロパティを取得したい場合、次のように設定します。 instructions の3番目の要素のプロパティが欲しい場合、これを 2 に設定します。

戻り値

指定された命令タプルの命令プロパティ

戻りの型

InstructionProperties

instruction_supported

instruction_supported(operation_name=None, qargs=Ellipsis, operation_class=None, parameters=None, check_angle_bounds=True)

命令(演算+量子ビット)がターゲットでサポートされているかどうかを返す

パラメーター

  • operation_name (str) – 命令の操作名。 これか operation_class のどちらかを指定しなければならない。両方が指定された場合は、 operation_class が優先され、この引数は無視される。

  • qargs (tuple) – 命令の量子ビットのインデックスのタプル。 これが指定されていない場合、指定された操作がどの量子ビットでもサポートされていれば、このメソッドは True を返す。 一般的なアプリケーションでは、常にこの設定がされている(そうでなければ、ターゲットに操作が含まれているかどうかをチェックするのと同じことだ)。 通常、ターゲットが parameters 、任意の量子ビットの操作をサポートしていることをより一般的にチェックしたい場合は、この引数を設定しない。

  • operation_class (Type[qiskit.circuit.Instruction]) – ターゲットが特定の操作をサポートしているかどうかを、名前ではなくクラスでチェックするための操作クラス。 このルックアップは、単一のルックアップではなく、ターゲット内のすべてのオペレーションを反復する必要があるため、より高価になる。 これを指定すると、 operation_name の引数に優先する。 この操作の典型的なユースケースは、ある操作の特定のバリアントがバックエンドでサポートされているかどうかをチェックすることである。 例えば、角度が固定された特定の量子ビットに RXGate が特定の量子ビットに固定角度でサポートされているかどうかをチェックしたい場合。 その固定された角度のバリアントは、通常、ターゲットのオブジェクトの name 属性 ("rx") とは異なる名前を持ちます。 このような場合、クラスのインスタンスが利用可能かどうかをチェックするために使用できる。

  • parameters (list) –

    ターゲットが指定された量子ビットをサポートしているかどうかをチェックするためのパラメータのリスト。 命令で、指定された操作とqargsのリストで指定されたパラメータ値がサポートされている場合、 True が返されますが、指定された命令でパラメータがサポートされていない場合、 False が返されます。 この引数が指定されない場合、このメソッドは、命令が命令パラメータとは無関係にサポートされている場合、 True を返す。 リスト内の Parameter オブジェクトと一緒に指定された場合、そのエントリは任意の値をサポートするものとして扱われますが、パラメータ名はチェックされません(例えば、ターゲット内のオペレーションが "theta" でパラメータ化されたものとしてリストされており、 "phi" がこの関数に渡された場合、 True が返されます)。 例えば

    parameters = [Parameter("theta")]
    target.instruction_supported("rx", (0,), parameters=parameters)

    True を返す。 RXGate が返される。 固定数値パラメータをチェックする必要がある場合、この引数は通常、 operation_class 引数と対になる。 例:

    target.instruction_supported("rx", (0,), RXGate, parameters=[pi / 4])

    は、RXGate( pi/4 )が0量子ビットに存在する場合、 True を返す。

  • check_angle_bounds (bool) – True(デフォルト)に設定すると、 parameters の値がターゲットに設定されている角度の境界に対して検証されます。 parametersParameterExpression に設定されている場合、角度境界は回路内のパラメータ化されていない操作にのみ影響するため、このフラグは影響しない。

戻り値

その命令がサポートされていれば True 、サポートされていなければ False

戻りの型

bool

items

items()

GitHub

ゲート名とそのプロパティマップのペアを返す (str, dicttuple[, InstructionProperties] )

keys

keys()

GitHub

Targetのキー(operation_names)を返す

operation_from_name

operation_from_name(instruction)

指定された名前のオペレーション・クラス・オブジェクトを取得する

パラメーター

instruction (str) – インスタンス Instruction インスタンスを

戻り値

名前に対応する命令インスタンス。 このクラスは、グローバルに定義された変数を操作するクラスでもある。

戻りの型

qiskit.circuit.Instruction

operation_names_for_qargs

operation_names_for_qargs(qargs, /)

指定したqargsタプルの操作名を取得する

パラメーター

qargs (tuple) – qargs 、それに適用されるゲートを取得するための量子ビットのタプル。 例えば、 (0,) は、量子ビット0に適用されるすべての命令の集合を返す。 None に設定すると、ターゲットでグローバルに定義されている操作の名前が返される。

戻り値

指定された qargs に適用される操作名のセット。

戻りの型

セット

レイズ

KeyError - qargs がターゲットにない場合

operations_for_qargs

operations_for_qargs(qargs, /)

指定されたqargsタプルの操作クラスオブジェクトを取得する

パラメーター

qargs (tuple) – quargsのタプルは、それに適用されるゲートを取得するための量子ビットのタプル。 例えば、 (0,) は、量子ビット0に適用されるすべての命令の集合を返す。 None に設定すると、ターゲットでグローバルに定義された操作が返される。

戻り値

指定された Instruction 指定された qarg に適用されるインスタンスのリスト。 また、可変幅の操作がグローバルに定義されている場合、これはクラスになることもある。

戻りの型

リスト

レイズ

KeyError - qargs がターゲットにない場合

qargs_for_operation_name

qargs_for_operation_name(operation)

GitHub

与えられた操作名のqargsを取得する

パラメーター

operation (str) – qargs を取得する操作名

戻り値

ゲートインスタンスが適用されるqargsのセット。

戻りの型

セット

seconds_to_dt

seconds_to_dt(duration)

GitHub

秒単位の継続時間をdt単位に変換する

パラメーター

duration (float) – 秒単位の継続時間。 InstructionProperties フィールドのように。

戻りの型

int

戻り値

継続時間:dt 単位の継続時間

supported_angle_bound

supported_angle_bound(name, angles)

特定のゲートのパラメータが角度範囲に適合しているかチェックする

パラメーター

  • name (str) – の角度範囲をチェックする命令名
  • angles (list) – name 、定義された角度範囲に適合するかどうかを調べるための、floatパラメータ値のリスト。

戻り値

指定されたパラメータ値が角度境界に適合する場合、 True を返す。 False は、パラメータのいずれかが定義された範囲外である場合に返される。

戻りの型

bool

レイズ

  • TranspilerError - name がターゲットにない場合、またはターゲットにない場合
  • 角度の境界が定義されている。 -

timing_constraints

timing_constraints()

GitHub

ターゲットから TimingConstraints オブジェクトを取得する

戻り値

で表されるタイミング制約がある。 Target

戻りの型

TimingConstraints

update_instruction_properties

update_instruction_properties(instruction, qargs, properties)

GitHub

ターゲットに既に存在する命令 qarg ペアのプロパティオブジェクトを更新します。

簡単にアクセスできるように、ユーザーは、命令の名前をキーとして、命令の該当するqargsとその命令のプロパティの間のマッピングを、マッピングプロトコル( __getitem__ )を使用して取得することができます。 この方法は、 Target の命令のプロパティを変更/更新する唯一の方法である。 変更のためのマッピングプロトコルの使用はサポートされていません。

パラメーター

  • instruction (str) – 更新する命令名
  • qargs (tuple) – のプロパティを更新するqargs
  • properties (InstructionProperties) – この命令に設定するプロパティ

レイズ

KeyError - instruction または qarg がターゲットにない場合

values

values()

GitHub

ターゲットの各命令のプロパティマップ(qargs -> InstructionProperties )を返す

パラメーター

  • description (str | None)
  • num_qubits (int | None)
  • dt (float | None)
  • granularity (int)
  • min_length (int)
  • pulse_alignment (int)
  • acquire_alignment (int)
  • qubit_properties (list | None)
  • concurrent_measurements (list | None)
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。