uniqc.algorithms.core.training.qaoa_torch module

Quantum Approximate Optimization Algorithm (QAOA) with TorchQuantum backend.

Provides QAOASolver for combinatorial optimization using TorchQuantum’s native PyTorch autograd. Includes built-in MaxCut Hamiltonian.

class uniqc.algorithms.core.training.qaoa_torch.QAOASolver(edges, n_qubits, p=1, lr=0.05, device='cpu')[source]

Bases: object

QAOA with PyTorch optimization.

Parameters:
  • edges – Graph edges for MaxCut.

  • n_qubits – Number of qubits (= graph vertices).

  • p – Number of QAOA layers.

  • lr – Learning rate.

  • device – “cpu” or “cuda”.

solve(n_iters=100, verbose=True)[source]

Run QAOA optimization.

Returns:

(best_cut_value, optimal_params)

step()[source]

Single optimization step. Returns cost value.

uniqc.algorithms.core.training.qaoa_torch.build_maxcut_hamiltonian(edges, n_qubits)[source]

Build MaxCut cost Hamiltonian from graph edges.

H_C = 0.5 * sum_{(i,j)} (I - Z_i Z_j)

Returns list of (pauli_string, coefficient).

uniqc.algorithms.core.training.qaoa_torch.build_qaoa_circuit(params, n_qubits, edges, p=1)[source]

Build QAOA circuit with torch.Tensor parameters.

params layout: [gamma_0, …, gamma_{p-1}, beta_0, …, beta_{p-1}]

Returns (opcode_list, n_qubits, param_overrides).