# 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. ```python 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: ```python 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.