braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization module
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.cost_function(values: ndarray, device: Device, circ: Circuit, coeffs: ndarray, cost_history: List[float], shots: int = 0) float[source]
Cost function and append to loss history list.
- Parameters:
values (ndarray) – Values for the parameters.
device (Device) – Braket device to run on.
circ (Circuit) – QAOA circuit to run.
coeffs (ndarray) – The coefficients of the cost Hamiltonian.
cost_history (List[float]) – History of cost evaluations.
shots (int) – Number of shots. Defaults to 0.
- Returns:
float – The cost function value
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.run_qaoa_circuit(device: Device, circ: Circuit, values: ndarray, shots: int) QuantumTask[source]
Evaluate a QAOA circuit with parameters=values.
- Parameters:
device (Device) – Braket device to run on.
circ (Circuit) – QAOA circuit to run.
values (np.ndarray) – Values for the parameters.
shots (int) – Number of shots.
- Returns:
QuantumTask – The Braket task to run.
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.get_cost(task: QuantumTask, coeffs: ndarray) float[source]
Evaluate the cost function from a QAOA task.
- Parameters:
task (QuantumTask) – QAOA task.
coeffs (np.ndarray) – The coefficients of the cost Hamiltonian.
- Returns:
float – Loss function value.
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.qaoa(n_qubits: int, n_layers: int, ising: ndarray) Circuit[source]
QAOA template.
- Parameters:
n_qubits (int) – Number of qubits
n_layers (int) – Number of layers. Defaults to 1.
ising (ndarray) – Ising interaction matrix.
- Returns:
Circuit – The parameteric QAOA Circuit
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.driver_layer(beta: float, n_qubits: int) Circuit[source]
Returns circuit for driver Hamiltonian U(Hb, beta).
- Parameters:
beta (float) – Rotation angle to apply parameterized rotation around x
n_qubits (int) – number of qubits to apply rx gate
- Returns:
Circuit – Circuit object that implements evolution with driver Hamiltonian
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.cost_layer(gamma: float, ising: ndarray) Circuit[source]
Returns circuit for evolution with cost Hamiltonian.
- Parameters:
gamma (float) – Rotation angle to apply parameterized rotation around z
ising (np.ndarray) – Ising matrix
- Returns:
Circuit – Circuit for evolution with cost Hamiltonian
- braket.experimental.algorithms.quantum_approximate_optimization.quantum_approximate_optimization.decomposed_zz_gate(qubit0: int, qubit1: int, gamma: float) Circuit[source]
Return a circuit implementing \(exp(-i * \gamma * Z_i * Z_j)\) using CNOT gates if ZZ not supported.
- Parameters:
qubit0 (int) – Index value for the controlling qubit for CNOT gate
qubit1 (int) – Index value for the target qubit for CNOT gate
gamma (float) – Rotation angle to apply parameterized rotation around z
- Returns:
Circuit – Circuit object that implements ZZ gate using CNOT gates