Piccolo Amico
AI-assisted and learning-based software to systematize expert control and calibration workflows
1using Piccolo
2using Random
3# Define system
4H_drift = PAULIS[:Z]
5H_drives = [PAULIS[:X], PAULIS[:Y]]
6sys = QuantumSystem(H_drift, H_drives, [1.0, 1.0])
7# Create trajectory
8T, N = 10.0, 100
9times = collect(range(0, T, length=N))
10pulse = ZeroOrderPulse(0.1 * randn(2, N), times)
11qtraj = UnitaryTrajectory(sys, pulse, GATES[:X])
12# Solve
13qcp = SmoothPulseProblem(qtraj, N; Q=100.0, R=1e-2)
14solve!(qcp, max_iter=100)1import pypiccolo
2import numpy as np
3# Define system
4H_drift = PAULIS['Z']
5H_drives = [PAULIS['X'], PAULIS['Y']]
6sys = QuantumSystem(H_drift, H_drives, [1.0, 1.0])
7# Create trajectory
8T, N = 10.0, 100
9times = np.linspace(0, T, N)
10pulse = ZeroOrderPulse(0.1 * np.random.randn(2, N), times)
11qtraj = UnitaryTrajectory(sys, pulse, GATES['X'])
12# Solve
13qcp = SmoothPulseProblem(qtraj, N, Q=100.0, R=1e-2)
14solve(qcp, max_iter=100)The Chalenge
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.
The Solution
‘Piccolo.jl is a meta-package for quantum optimal control using the Pade Integrator Collocation (Piccolo) method. This package reexports the following packages
QuantumCollocation.jl
NamedTrajectories.jl
TrajectoryIndexingUtils.jl
PiccoloQuantumObjects.jl
How are we different?
Robotics and Aerospace Algorithms
Piccolo uses proven algorithms from robotics and aerospace fields that have mastered the design of precision control under uncertainty.
Real-time Software Design
Users can design control sequences, calibrate in situ, and compensate for noisy, drifting hardware in real time.