Site Tools


scqubits-optimization

Parameter Optimization

Parameter optimization finds qubit design parameters that maximize a figure of merit (high frequency, strong anharmonicity, long coherence, etc.).

from scqubits import Transmon
from scipy.optimize import minimize
 
# Target: maximize anharmonicity
def objective(params):
    EJ, EC = params
    transmon = Transmon(EJ=EJ, EC=EC, ncut=30)
    alpha = transmon.anharmonicity()
    return -alpha  # Minimize negative alpha
 
# Initial guess
x0 = [15.0, 0.3]
 
# Optimize
result = minimize(objective, x0, method='Nelder-Mead')
EJ_opt, EC_opt = result.x
print(f"Optimal EJ: {EJ_opt:.2f}, EC: {EC_opt:.2f}")
 
# Multi-objective: high frequency AND high anharmonicity
def multi_objective(params):
    EJ, EC = params
    transmon = Transmon(EJ=EJ, EC=EC, ncut=30)
    f = transmon.f_01()
    alpha = transmon.anharmonicity()
 
    # Trade-off: reward frequency, penalize small anharmonicity
    return -(f + 0.1 * abs(alpha))
 
result = minimize(multi_objective, x0, method='Nelder-Mead')

Design Trade-offs

Optimization reveals fundamental trade-offs:

  • Frequency vs. anharmonicity: higher $E_J$ increases both, but trade-off limits exist
  • Frequency vs. noise sensitivity: faster qubits often more sensitive to noise
  • Coherence vs. control speed: strong drives shorten coherence

scqubits makes these trade-offs quantitative and enables rational design choices.

scqubits-optimization.md · Last modified: by 127.0.0.1