janus.circuit.instruction 源代码
"""
Janus 电路指令
表示电路中的一条指令,包含操作和作用的量子比特
"""
from typing import List, Tuple, Optional, Union
from .gate import Gate
[文档]
class Instruction:
"""
电路指令类
将一个操作(Gate)与具体的量子比特绑定
Attributes:
operation: 量子操作(门)
qubits: 作用的量子比特索引
clbits: 作用的经典比特索引(用于测量等)
"""
[文档]
def __init__(
self,
operation: Gate,
qubits: List[int],
clbits: Optional[List[int]] = None
):
self._operation = operation
self._qubits = qubits
self._clbits = clbits if clbits is not None else []
# 同步设置 operation 的 qubits
operation.qubits = qubits
@property
def operation(self) -> Gate:
return self._operation
@property
def qubits(self) -> List[int]:
return self._qubits
@property
def clbits(self) -> List[int]:
return self._clbits
@property
def name(self) -> str:
return self._operation.name
@property
def params(self) -> List[float]:
return self._operation.params
[文档]
def copy(self) -> 'Instruction':
"""创建指令的副本"""
return Instruction(
self._operation.copy(),
self._qubits.copy(),
self._clbits.copy()
)
def __repr__(self) -> str:
return f"Instruction({self._operation}, qubits={self._qubits})"
[文档]
def to_dict(self) -> dict:
"""转换为字典格式"""
return {
'name': self._operation.name,
'qubits': self._qubits,
'params': self._operation.params
}