- "canonical_solution": "from qiskit_ibm_runtime.fake_provider import FakeOsaka, FakeSherbrooke, FakeBrisbane\nfrom qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\nfrom qiskit.circuit.library import QFT\n\ndef backend_with_lowest_complexity():\n qc = QFT(4)\n backends = [FakeOsaka(), FakeSherbrooke(), FakeBrisbane()]\n complexity_dict = {}\n for backend in backends:\n pm = generate_preset_pass_manager(\n optimization_level=3, seed_transpiler=1234, backend=backend\n )\n data = pm.run(qc).data\n complexity = 0\n for instruc in data:\n if instruc.operation.num_qubits == 2:\n complexity += 5\n elif instruc.operation.name == \"rz\":\n complexity += 1\n else:\n complexity += 2\n complexity_dict[backend.name] = complexity\n return complexity_dict[max(complexity_dict, key=complexity_dict.get)]\n",
0 commit comments