braket.experimental.algorithms.bells_inequality.bells_inequality module

braket.experimental.algorithms.bells_inequality.bells_inequality.create_bell_inequality_circuits(qubit0: Qubit = 0, qubit1: Qubit = 1, angle_A: float = 0, angle_B: float = 1.0471975511965976, angle_C: float = 2.0943951023931953) List[Circuit][source]

Create the three circuits for Bell’s inequality. Default angles will give maximum violation of Bell’s inequality.

Parameters:
  • qubit0 (Qubit) – First qubit.

  • qubit1 (Qubit) – Second qubit.

  • angle_A (float) – Angle for the first measurement basis A. Defaults to 0.

  • angle_B (float) – Angle for the second measurement basis B. Defaults to np.pi/3.

  • angle_C (float) – Angle for the third measurement basis C. Defaults to 2*np.pi/3 to give maximum violation of Bell’s inequality.

Returns:

List[Circuit] – Three circuits circAB, circAC, circBC.

braket.experimental.algorithms.bells_inequality.bells_inequality.run_bell_inequality(circuits: List[Circuit], device: Device, shots: int = 1000) List[QuantumTask][source]

Submit three Bell circuits to a device.

Parameters:
  • circuits (List[Circuit]) – Three Bell inequality circuits in order circAB, circAC, circBC.

  • device (Device) – Quantum device or simulator.

  • shots (int) – Number of shots. Defaults to 1_000.

Returns:

List[QuantumTask] – List of quantum tasks.

braket.experimental.algorithms.bells_inequality.bells_inequality.get_bell_inequality_results(tasks: List[QuantumTask], verbose: bool = True) Tuple[List[Counter], float, float, float][source]

Return Bell task results after post-processing.

Parameters:
  • tasks (List[QuantumTask]) – List of quantum tasks.

  • verbose (bool) – Controls printing of the inequality result. Defaults to True.

Returns:

Tuple[List[Counter], float, float, float] – results, pAB, pAC, pBC

braket.experimental.algorithms.bells_inequality.bells_inequality.bell_singlet_rotated_basis(qubit0: Qubit, qubit1: Qubit, rotation0: float, rotation1: float) Circuit[source]

Prepare a Bell singlet state in a Rx-rotated meaurement basis.

Parameters:
  • qubit0 (Qubit) – First qubit.

  • qubit1 (Qubit) – Second qubit.

  • rotation0 (float) – First qubit Rx rotation angle.

  • rotation1 (float) – Second qubit Rx rotation angle.

Returns:

Circuit – the Braket circuit that prepares the Bell circuit.

braket.experimental.algorithms.bells_inequality.bells_inequality.bell_singlet(qubit0: Qubit, qubit1: Qubit) Circuit[source]

Prepare a Bell singlet state.

Parameters:
  • qubit0 (Qubit) – First qubit.

  • qubit1 (Qubit) – Second qubit.

Returns:

Circuit – the Braket circuit that prepares the Bell single state.