Skip to content

Commit d7354fd

Browse files
committed
fix
1 parent 28cc99e commit d7354fd

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

qiskit/providers/fake_provider/generic_backend_v2.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,11 @@ def _build_generic_target(self):
388388
defaults = self._generate_calibration_defaults()
389389
calibration_inst_map = defaults.instruction_schedule_map
390390

391+
is_fully_connected = (
392+
self._coupling_map.graph.num_edges()
393+
== self._coupling_map.graph.num_nodes() * (self._coupling_map.graph.num_nodes() - 1)
394+
)
395+
391396
# Iterate over gates, generate noise params from defaults,
392397
# and add instructions, noise and calibrations to target.
393398
for name in self._basis_gates:
@@ -406,9 +411,12 @@ def _build_generic_target(self):
406411
noise_params = self._get_noise_defaults(name, gate.num_qubits)
407412
self._add_noisy_instruction_to_target(gate, noise_params, calibration_inst_map)
408413
else:
409-
qarg_set = self._coupling_map if gate.num_qubits > 1 else range(self.num_qubits)
410-
props = {(qarg,) if isinstance(qarg, int) else qarg: None for qarg in qarg_set}
411-
self._target.add_instruction(gate, properties=props, name=name)
414+
if is_fully_connected:
415+
self._target.add_instruction(gate, properties=None, name=name)
416+
else:
417+
qarg_set = self._coupling_map if gate.num_qubits > 1 else range(self.num_qubits)
418+
props = {(qarg,) if isinstance(qarg, int) else qarg: None for qarg in qarg_set}
419+
self._target.add_instruction(gate, properties=props, name=name)
412420

413421
if self._control_flow:
414422
self._target.add_instruction(IfElseOp, name="if_else")

test/python/providers/fake_provider/test_generic_backend_v2.py

+14
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,20 @@ def test_no_noise(self):
7373
self.assertTrue(Operator.from_circuit(qc_res).equiv(qc))
7474
self.assertEqual(backend.target.qubit_properties, None)
7575

76+
def test_no_noise_fully_connected(self):
77+
"""Test no noise info when parameter is false"""
78+
backend = GenericBackendV2(num_qubits=5, noise_info=False)
79+
qc = QuantumCircuit(5)
80+
qc.h(0)
81+
qc.cx(0, 1)
82+
qc.cx(0, 2)
83+
qc.cx(1, 4)
84+
qc.cx(3, 0)
85+
qc.cx(2, 4)
86+
qc_res = generate_preset_pass_manager(optimization_level=2, backend=backend).run(qc)
87+
self.assertTrue(Operator.from_circuit(qc_res).equiv(qc))
88+
self.assertEqual(backend.target.qubit_properties, None)
89+
7690
def test_no_info(self):
7791
"""Test no noise info when parameter is false"""
7892
backend = GenericBackendV2(

0 commit comments

Comments
 (0)