examples/Piecewise_constant_controls.ipynb
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Optimal control with piecewise constant parametrization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting up the electronics model"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pytest\n",
"from copy import deepcopy\n",
"from c3.c3objs import Quantity\n",
"from c3.generator.generator import Generator\n",
"from c3.generator.devices import (\n",
" LO,\n",
" AWG,\n",
" Mixer,\n",
" DigitalToAnalog,\n",
" VoltsToHertz,\n",
")\n",
"from c3.signal.pulse import Envelope, Carrier\n",
"from c3.libraries.envelopes import pwc\n",
"from c3.libraries import hamiltonians\n",
"from c3.signal.gates import Instruction\n",
"from c3.model import Model\n",
"from c3.libraries import chip\n",
"from c3.parametermap import ParameterMap\n",
"from c3.experiment import Experiment"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"sim_res = 100e9 # Resolution for numerical simulation\n",
"awg_res = 2e9 # Realistic, limited resolution of an AWG\n",
"\n",
"lo = LO(name=\"lo\", resolution=sim_res, outputs=1)\n",
"awg = AWG(name=\"awg\", resolution=awg_res, outputs=1)\n",
"\n",
"dac = DigitalToAnalog(name=\"dac\", resolution=sim_res, inputs=1, outputs=1)\n",
"mixer = Mixer(name=\"mixer\", inputs=2, outputs=1)\n",
"v_to_hz = VoltsToHertz(\n",
" name=\"v_to_hz\",\n",
" V_to_Hz=Quantity(value=1e9, min_val=0.9e9, max_val=1.1e9, unit=\"Hz/V\"),\n",
" inputs=1,\n",
" outputs=1,\n",
")\n",
"\n",
"generator = Generator(\n",
" devices={\n",
" \"LO\": lo,\n",
" \"AWG\": awg,\n",
" \"DigitalToAnalog\": dac,\n",
" \"Mixer\": mixer,\n",
" \"VoltsToHertz\": v_to_hz,\n",
" },\n",
" chains={\n",
" \"d1\": {\n",
" \"LO\": [],\n",
" \"AWG\": [],\n",
" \"DigitalToAnalog\": [\"AWG\"],\n",
" \"Mixer\": [\"LO\", \"DigitalToAnalog\"],\n",
" \"VoltsToHertz\": [\"Mixer\"],\n",
" },\n",
" },\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## PWC Gate Definition"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"t_final = 7e-9 # Time for single qubit gates\n",
"slices = int(t_final * awg_res)\n",
"\n",
"pwc_params = {\n",
" \"inphase\": Quantity(value=np.random.randn(slices), unit=\"V\"),\n",
" \"quadrature\": Quantity(value=np.random.randn(slices), unit=\"V\"),\n",
" \"amp\": Quantity(value=1.0, unit=\"V\"),\n",
" \"xy_angle\": Quantity(\n",
" value=0.0, min_val=-0.5 * np.pi, max_val=2.5 * np.pi, unit=\"rad\"\n",
" ),\n",
" \"freq_offset\": Quantity(value=0, min_val=-5 * 1e6, max_val=5 * 1e6, unit=\"Hz 2pi\"),\n",
"}\n",
"\n",
"pwc_env_single = Envelope(\n",
" name=\"pwc\",\n",
" desc=\"piecewise constant\",\n",
" params=pwc_params,\n",
" shape=pwc,\n",
")\n",
"\n",
"lo_freq_q1 = 5e9\n",
"carrier_parameters = {\n",
" \"freq\": Quantity(value=lo_freq_q1, min_val=4.5e9, max_val=6e9, unit=\"Hz 2pi\"),\n",
" \"framechange\": Quantity(value=0.0, min_val=-np.pi, max_val=3 * np.pi, unit=\"rad\"),\n",
"}\n",
"carr = Carrier(\n",
" name=\"carrier\", desc=\"Frequency of the local oscillator\", params=carrier_parameters\n",
")\n",
"\n",
"pulse_gate = Instruction(name=\"rx90p\", t_start=0.0, t_end=t_final, channels=[\"d1\"], targets = [0])\n",
"pulse_gate.add_component(pwc_env_single, \"d1\")\n",
"pulse_gate.add_component(carr, \"d1\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setting up the Qubit model"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"q1 = chip.Qubit(\n",
" name=\"Q1\",\n",
" desc=\"Qubit 1\",\n",
" freq=Quantity(\n",
" value=5e9,\n",
" min_val=4.995e9,\n",
" max_val=5.005e9,\n",
" unit=\"Hz 2pi\",\n",
" ),\n",
" anhar=Quantity(\n",
" value=-150e6,\n",
" min_val=-380e6,\n",
" max_val=-120e6,\n",
" unit=\"Hz 2pi\",\n",
" ),\n",
" hilbert_dim=5,\n",
")\n",
"\n",
"drive = chip.Drive(\n",
" name=\"d1\",\n",
" desc=\"Drive 1\",\n",
" comment=\"Drive line 1 on qubit 1\",\n",
" connected=[\"Q1\"],\n",
" hamiltonian_func=hamiltonians.x_drive,\n",
")\n",
"phys_components = [q1]\n",
"line_components = [drive]\n",
"\n",
"model = Model(phys_components, line_components)\n",
"model.set_dressed(True)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"parameter_map = ParameterMap(\n",
" instructions=[pulse_gate], model=model, generator=generator\n",
")\n",
"\n",
"# ### MAKE EXPERIMENT\n",
"simulation = Experiment(pmap=parameter_map)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"gateset_opt_map = [\n",
" [\n",
" (\"rx90p[0]\", \"d1\", \"pwc\", \"amp\"),\n",
" ],\n",
" [\n",
" (\"rx90p[0]\", \"d1\", \"pwc\", \"inphase\"),\n",
" ],\n",
" [\n",
" (\"rx90p[0]\", \"d1\", \"pwc\", \"quadrature\"),\n",
" ]\n",
"]\n",
"\n",
"parameter_map.set_opt_map(gateset_opt_map)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"rx90p[0]-d1-pwc-amp : 1.000 V \n",
"rx90p[0]-d1-pwc-inphase : 178.942 mV 910.971 mV 413.580 mV 302.991 mV -831.126 mV -305.492 mV 1.710 V -584.895 mV -1.684 V 1.837 V 981.789 mV -1.228 V -971.819 mV 933.462 mV \n",
"rx90p[0]-d1-pwc-quadrature : -121.327 mV -199.645 mV 202.616 mV 996.790 mV -46.131 mV -343.020 mV 551.584 mV -71.846 mV 470.491 mV -117.357 mV 591.651 mV 594.609 mV 387.548 mV -922.418 mV \n",
"\n"
]
}
],
"source": [
"parameter_map.print_parameters()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import tempfile\n",
"from c3.optimizers.optimalcontrol import OptimalControl\n",
"from c3.libraries.fidelities import unitary_infid_set\n",
"from c3.libraries.algorithms import lbfgs\n",
"\n",
"# Create a temporary directory to store logfiles, modify as needed\n",
"log_dir = os.path.join(tempfile.TemporaryDirectory().name, \"c3logs\")\n",
"\n",
"opt = OptimalControl(\n",
" dir_path=log_dir,\n",
" fid_func=unitary_infid_set,\n",
" fid_subspace=[\"Q1\"],\n",
" pmap=parameter_map,\n",
" algorithm=lbfgs,\n",
" options={\"maxfun\" : 150},\n",
" run_name=\"better_X90\"\n",
")\n",
"opt.set_exp(simulation)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Qiskit Interface"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"from c3.qiskit import C3Provider\n",
"from c3.qiskit.c3_gates import RX90pGate, SetParamsGate\n",
"from qiskit import QuantumCircuit\n",
"from qiskit.tools.visualization import plot_histogram"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"c3_qiskit = C3Provider()\n",
"backend = c3_qiskit.get_backend(\"c3_qasm_physics_simulator\")\n",
"backend.set_c3_experiment(deepcopy(simulation))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"word-wrap: normal;white-space: pre;background: #fff0;line-height: 1.1;font-family: "Courier New",Courier,monospace\"> ┌────────────┐\n",
" q: ┤ Rx90p(π/2) ├\n",
" └────────────┘\n",
"c: 1/══════════════\n",
" </pre>"
],
"text/plain": [
" ┌────────────┐\n",
" q: ┤ Rx90p(π/2) ├\n",
" └────────────┘\n",
"c: 1/══════════════\n",
" "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"qc = QuantumCircuit(1, 1)\n",
"qc.append(RX90pGate(), [0])\n",
"qc.draw()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"job = backend.run(qc)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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CK0nraeUr6f6mLvXO0KqmFkOUA6McvdXYsrHA+e4e7/dTP8dQiI8092f393nFRcXe/UG2RRj72nyLJrVhCsyHUHdWnLdteR6E5HmY2bz3b040bB0dqrZCFQBPeLKewBr65vQzE4nJMPzGpIMRUREkpW2hOjuu4D5wAlxg04g9DZNyMzOICTD89396eaLUERE2rJ09zK9C3jMzOYBrwE/BnKABwHM7FEAdz8ven8WIRleDbxiZj2j+exy9w/THLuIiOzB0poQ3f1JM+sG3AAcDCwCTnb3ldEo8fcj/pgQ4z3RX7VZwOjmjFVERNqWdJ8h4u4PAA/UMWx0fe9FRESai55lKiIighKiiIgIoIQoIiICKCGKiIgASogiIiKAEqKIiAighCgiIgIoIYqIiABKiCIiIoASooiICKCEKCIiAighioiIAEqIIiIigBKiiIgIoIQoIiICKCGKiIgASogiIiKAEqKIiAighCgiIgIoIYqIiABKiCIiIoASooiICKCEKCIiAighioiIAEqIIiIigBKiiIgIoIQoIiICKCGKiIgASogiIiKAEqKIiAighCgiIgIoIYqIiABKiCIiIoASooiICKCEKCIiAighirQ6U6dOpV+/fhQUFHD77bd/YXhFRQVnnnkmBQUFDBs2jBUrVtQavmrVKrKzs7nzzjtryu6++26KiooYMGAA3/ve9/jkk0+aezFEWhwlRJFWpKqqiksvvZQpU6awZMkSnnjiCZYsWVJrnN///vd06dKFd999lyuvvJLrrruu1vCrrrqKk046qeZ9eXk59913H6WlpSxatIiqqiomTZqUluURaUmUEEVakXnz5lFQUEB+fj4dOnTgrLPOYvLkybXGmTx5Mj/4wQ8AOP3003n55ZdxdwCeffZZ+vTpQ1FRUa1pKisr2blzJ5WVlezYsYOcnJz0LJBIC6KEKNKKlJeX06tXr5r3eXl5lJeX1zlOVlYW+++/P5s2bWL79u386le/4sYbb6w1fm5uLldffTWHHHIIBx98MPvvvz8nnnhi8y+MSAujhCjSRtx0001ceeWVZGdn1yrfvHkzkydPZvny5bz//vt8/PHHTJw4MUNRimROVqYDEJGGy83NZfXq1TXv16xZQ25ubsJx8vLyqKys5KOPPqJbt27MnTuXp59+mmuvvZYtW7bQrl079t57b3r06EGfPn046KCD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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot_histogram(job.result().data()['state_pops'], title='Simulation of Qiskit circuit with Pulse Gate (Unoptimized)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Optimal Control"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<tf.Tensor: shape=(29,), dtype=float64, numpy=\n",
"array([-5.55111512e-16, 4.91433795e-02, 4.27125699e-01, 1.70298546e-01,\n",
" 1.13196263e-01, -4.72404008e-01, -2.00993522e-01, 8.39778523e-01,\n",
" -3.45262506e-01, -9.13022995e-01, 9.05158823e-01, 4.63692561e-01,\n",
" -6.77193608e-01, -5.45050367e-01, 4.38738851e-01, -1.53691782e-01,\n",
" -2.27887029e-01, 1.53199382e-01, 9.05568050e-01, -8.24537723e-02,\n",
" -3.63715145e-01, 4.83797154e-01, -1.06815652e-01, 4.06973370e-01,\n",
" -1.49930398e-01, 5.21755755e-01, 5.24557452e-01, 3.28395756e-01,\n",
" -9.12613768e-01])>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"parameter_map.get_parameters_scaled()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"C3:STATUS:Saving as: /tmp/tmpdvwit0ug/c3logs/better_X90/2022_06_27_T_01_50_36/open_loop.c3log\n"
]
}
],
"source": [
"opt.optimize_controls()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.51083751312953e-06"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"opt.current_best_goal"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Evaluate a simple sequence to get the state populations"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"def plot_controls(pmap):\n",
" for gate, instruction in pmap.instructions.items():\n",
" fig, axs = plt.subplots(2)\n",
" axs[0].set_title(gate.replace(\"_\", \"-\"))\n",
" legends = [[], []]\n",
" for chan, channel in instruction.comps.items():\n",
" for com, component in channel.items():\n",
" if \"t_final\" in component.params:\n",
" ts = np.linspace(0, t_final, slices)\n",
" shape = component.get_shape_values(ts)\n",
" ax = axs[0]\n",
" ax.plot(ts[:len(shape)]/1e-9, np.real(shape))\n",
" ax.plot(ts[:len(shape)]/1e-9, np.imag(shape))\n",
" legends[0].append((chan, com.replace(\"_\", \"-\"), \"I\"))\n",
" legends[0].append((chan, com.replace(\"_\", \"-\"), \"Q\"))\n",
" ax = axs[1]\n",
" ax.plot(ts[:len(shape)]/1e-9, np.abs(shape))\n",
" ax.plot(ts[:len(shape)]/1e-9, np.angle(shape))\n",
" legends[1].append((chan, com.replace(\"_\", \"-\"), \"Abs\"))\n",
" legends[1].append((chan, com.replace(\"_\", \"-\"), \"Phase\"))\n",
" ax = axs[0]\n",
" ax.legend(legends[0])\n",
" ax = axs[1]\n",
" ax.set_xlabel(\"Time [ns]\")\n",
" ax.set_ylabel(\"Amplitude [normalized]\")\n",
" ax.legend(legends[1])\n",
"\n",
"def plot_dynamics(exp, psi_init, seq, goal=-1):\n",
" \"\"\"\n",
" Plotting code for time-resolved populations.\n",
"\n",
" Parameters\n",
" ----------\n",
" psi_init: tf.Tensor\n",
" Initial state or density matrix.\n",
" seq: list\n",
" List of operations to apply to the initial state.\n",
" goal: tf.float64\n",
" Value of the goal function, if used.\n",
" debug: boolean\n",
" If true, return a matplotlib figure instead of saving.\n",
" \"\"\"\n",
" model = exp.pmap.model\n",
" exp.compute_propagators()\n",
" dUs = exp.partial_propagators\n",
" psi_t = psi_init.numpy()\n",
" pop_t = exp.populations(psi_t, model.lindbladian)\n",
" for gate in seq:\n",
" for du in dUs[gate]:\n",
" psi_t = np.matmul(du.numpy(), psi_t)\n",
" pops = exp.populations(psi_t, model.lindbladian)\n",
" pop_t = np.append(pop_t, pops, axis=1)\n",
"\n",
" fig, axs = plt.subplots(1, 1)\n",
" ts = exp.ts\n",
" dt = ts[1] - ts[0]\n",
" ts = np.linspace(0.0, dt*pop_t.shape[1], pop_t.shape[1])\n",
" axs.plot(ts / 1e-9, pop_t.T)\n",
" axs.grid(linestyle=\"--\")\n",
" axs.tick_params(\n",
" direction=\"in\", left=True, right=True, top=True, bottom=True\n",
" )\n",
" axs.set_xlabel('Time [ns]')\n",
" axs.set_ylabel('Population')\n",
" plt.legend(model.state_labels)\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_controls(parameter_map)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_dynamics(simulation, model.get_init_state(), [\"rx90p[0]\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Updating the piecewise pulse description in qiskit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now use the `SetParamsGate` to update the pwc pulse description for the previously built qiskit circuit. This `SetParamsGate` must always be added only once and only at the end of the circuit. It can be used for updating the description of as many `Instructions` (and more generally as many c3 experiment `Parameter`s) as desired through a single instance of the gate. The updated parameter values is the first element and the paramater_map for this update is the second element in the list being passed to the `params` argument of the `SetParamsGate` below. "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<qiskit.circuit.instructionset.InstructionSet at 0x7f8f4675b200>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"qc.append(SetParamsGate(params=[[param.asdict() for param in parameter_map.get_parameters()], \n",
" gateset_opt_map]), [0])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"job = backend.run(qc)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot_histogram(job.result().data()['state_pops'], title='Simulation of Qiskit circuit with Pulse Gate (Optimized)')"
]
}
],
"metadata": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.12"
}
},
"nbformat": 4,
"nbformat_minor": 4
}