跳转至

VF2Mapping

QuICT.qcda.mapping.VF2Mapping

VF2Mapping(layout_info: Union[Layout, VirtualQuantumMachine])

A mapping algorithm to map a logic circuit onto a physical quantum circuit, as a subgraph isomorphism problem, solved by VF2++. Be careful the isomorphic algorithm may timeout when running on large and random circuits.

Examples:

>>> from QuICT.core import Layout
>>> from QuICT.qcda.mapping import VF2Mapping
>>> layout = Layout.load_file("example/layout/ibmqx2_layout.json")
>>> vf2 = VF2Mapping(layout)
>>> mapping_circuit = vf2.execute(circuit)
Source code in QuICT/qcda/mapping/vf2/vf2.py
def __init__(self, layout_info: Union[Layout, VirtualQuantumMachine]):
    self._layout = layout_info if isinstance(layout_info, Layout) else layout_info.layout
    self._gate_fidelity = None if isinstance(layout_info, Layout) else layout_info.gate_fidelity
    self._edge_fidelity = self._layout.double_gate_fidelity
    self._layout_graph = self._get_layout_graph()
    self._logic2phy = []
    self._phy2logic = [-1 for _ in range(self._layout.qubit_number)]