Site Tools


qutip-optimal-control

Optimal Control

Optimal control designs time-dependent pulses to drive a quantum system to a target state while minimizing error and control cost. QuTiP's CRAB (Chopped RAndomBasis) algorithm finds near-optimal pulse shapes.

Given Hamiltonian $H(t)$ with time-dependent control fields, find $u(t)$ to maximize fidelity to a target unitary or state.

CRAB Algorithm

CRAB optimizes pulse coefficients using randomized basis functions—faster than general optimal control but practical for realistic systems.

from qutip import *
from qutip.control import crab_optimization
import numpy as np
 
# Two-level system: prepare |1⟩ from |0⟩
N = 2  # Hilbert space dimension
H0 = 0.5 * sigmaz()
H1 = [sigmax(), lambda t, args: args['u'](t)]
 
# Initial and target states
psi0 = basis(2, 0)
psi_target = basis(2, 1)
 
# Run CRAB
result = crab_optimization(...)  # Depends on QuTiP version

Gradient-Based Optimization

For precision, use gradient-based methods to find optimal control fields:

from scipy.optimize import minimize
 
def fidelity_objective(params, H0, H1, psi0, psi_target, times):
    # Construct H(t) with params, solve, compute fidelity
    result = sesolve(H, psi0, times, [], [])
    return 1 - abs((psi_target.dag() * result.states[-1])[0, 0])**2
 
params0 = np.random.rand(10)
result = minimize(fidelity_objective, params0, args=(...))

Optimal control is used for robust gate implementation, state preparation, and noise-resilient operations. QuTiP provides tools for both CRAB and gradient-based methods.

qutip-optimal-control.md · Last modified: by 127.0.0.1