diff --git a/qiskit/1_start_here.ipynb b/qiskit/1_start_here.ipynb index 045162079..9fb3c0b1c 100644 --- a/qiskit/1_start_here.ipynb +++ b/qiskit/1_start_here.ipynb @@ -73,7 +73,9 @@ "## 4 Qiskit Ignis\n", "\n", "Ignis, the ‘fire’ element, is dedicated to fighting noise and errors and to forging a new path. This includes better characterization of errors, improving gates, and computing in the presence of noise. Ignis is meant for those who want to design quantum error correction codes, or who wish to study ways to characterize errors through methods such as tomography and randomized benchmarking, or even to find a better way for using gates by exploring dynamical decoupling and optimal control. Ignis tutorials are found [here](advanced/ignis/) and include:\n", - " 1. [Calibrating a qubit](advanced/ignis/1_calibrating_a_qubit.ipynb) - Using pulse to calibrate a \"pi-pulse\" gate by fitting a Rabi oscillation on a qubit. Using the \"pi-pulse\" measure the single-shot analog voltages that are returned by an experiment.\n", + " 1. Calibrating a qubit:\n", + " * a. [Calibrating a qubit](advanced/ignis/1a_calibrating_a_qubit.ipynb) - Using pulse to calibrate a \"pi-pulse\" gate by fitting a Rabi oscillation on a qubit. Using the \"pi-pulse\" measure the single-shot analog voltages that are returned by an experiment.\n", + " * b. [Calibrating a two-qubit gate](advanced/ignis/1b_calibrating_a_two_qubit_gate.ipynb - \n", " 2. [Hamiltonian and gate characterizations](advanced/ignis/2_hamiltonian_and_gate_characterization.ipynb) - Sequences to measure ZZ rates between qubits and to measure rotation and angle errors in the gates.\n", " 3. [Relaxation and decoherence](advanced/ignis/3_relaxation_and_decoherence.ipynb) - How to measure coherence times on the real quantum hardware\n", " 4. [Measurement error mitigation](advanced/ignis/4_measurement_error_mitigation.ipynb) - How to peform calibration experiments for measurement errors and fed those calibrations into a \"filter\" that can be utilized to mitigate errors in subsequent experiments.\n", diff --git a/qiskit/advanced/ignis/1_calibrating_a_qubit.ipynb b/qiskit/advanced/ignis/1_calibrating_a_qubit.ipynb deleted file mode 100644 index cfaf2b117..000000000 --- a/qiskit/advanced/ignis/1_calibrating_a_qubit.ipynb +++ /dev/null @@ -1,1128 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\"Note: Trusted Notebook\" align=\"middle\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Calibrating a Qubit" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from scipy.optimize import curve_fit\n", - "\n", - "from qiskit import IBMQ\n", - "import qiskit.pulse as pulse\n", - "import qiskit.pulse.pulse_lib as pulse_lib\n", - "from qiskit.compiler import assemble\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "### Loading pulse backend\n", - "To run an OpenPulse experiment, at first we need to load a backend object of your quantum computing system with `open_pulse = True`. Then, you need to create a `PulseChannelSpec` object from the backend. This object will give you a data set to create a pulse schedule object.\n", - "\n", - "- `system.drives` : Returns a list of drive channels.\n", - "- `system.controls` : Returns a list of control channels.\n", - "- `system.measures` : Returns a list of measurement channels.\n", - "- `system.acquires` : Returns a list of acquire channels.\n", - "- `system.registers` : Returns a list of registers.\n", - "- `system.memoryslots` : Returns a list of memory slots.\n", - "\n", - "Mapping between these channels and qubits is automatically created in the `PulseChannelSpec` instance.\n", - "\n", - "- `system.qubits` : Returns a list of qubit object.\n", - "\n", - "Each qubit object comprises `.drive`, `.controls`, and `.measure` channels, which are associated with the qubit." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this example we use IBMQ Poughkeepsie, a 20 qubit client-only system." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "IBMQ.load_account()\n", - "ibmq_provider = IBMQ.get_provider(\n", - " hub='provide_your_hub_name_here',\n", - " group='provide_your_group_name_here',\n", - " project='provide_your_project_name_here'\n", - ")\n", - "backend = ibmq_provider.get_backend(\n", - " 'ibmq_poughkeepsie'\n", - ")\n", - "\n", - "system = pulse.PulseChannelSpec.from_backend(backend)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "config = backend.configuration()\n", - "defaults = backend.defaults()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create pulses" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "User defined pulses can be created by using the `pulse.function` decorator. A python callback function which returns an `array_like` object can be used to create pulses. The first argument of the function should be `duration` specifing the number of data points. You are also able to get standard pulse templates from `pulse_lib`, and able to find calibrated pulses provided by the backend in `CmdDef`. In this notebook, we use a Gaussian pulse template from `pulse_lib.gaussian` and default measurement pulses from `CmdDef`." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "cmd_def = pulse.CmdDef.from_defaults(defaults.cmd_def, defaults.pulse_library)\n", - "\n", - "measure = cmd_def.get('measure', qubits=config.meas_map[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# Calculate amplitude from complex signal\n", - "def get_amplitude(vec):\n", - " i_signal = np.imag(vec)\n", - " r_signal = np.real(vec)\n", - "\n", - " mvec = [np.mean(r_signal), np.mean(i_signal)]\n", - "\n", - " src_mat = np.vstack((r_signal - mvec[0], i_signal - mvec[1])).T\n", - " (_, _, v_mat) = np.linalg.svd(src_mat)\n", - "\n", - " dvec = v_mat[0, 0:2]\n", - "\n", - " if dvec.dot(mvec) < 0:\n", - " dvec = -dvec\n", - "\n", - " return src_mat.dot(dvec)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this notebook, we apply the backend default setting for drive and measurement pulse frequency. These frequencies are calibrated to be centered at resonanse frequency of corresponding qubit and readout resonator. To change this setting, you can refer to the [qiskit community tutorials](https://github.com/Qiskit/qiskit-community-tutorials)." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## _Running Rabi Experiment_" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "In this experiment, we apply a Rabi drive pulse to qubit0 and measure a signal from the qubit by changing the amplitude of the pulse (`drive_amps`) from 0 to 0.05. The returned signal is integrated and averaged over 512 shot. A `boxcar` kernel is used to process measurement data (**note**: currently the hardware overrides this specification, to be implemented in future versions). The result is stored in `memory_slot[0]`." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "# qubit to use for exeperiment\n", - "qubit = 0\n", - "\n", - "# exp configuration\n", - "exps = 64\n", - "shots = 512\n", - "\n", - "# Rabi pulse\n", - "drive_amps = np.linspace(0, 0.05, exps)\n", - "drive_samples = 128\n", - "drive_sigma = 16\n", - "\n", - "# scaling factor for data returned by system\n", - "scale_factor=1e-10" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Pulse commands are registered to `Schedule`s with information of `channel` and `start_time`. The channel information is provided by `PulseChannelSpec`. You can create your `Schedule` by using syntax sugar: \n", - "\n", - "- `|` (`union`): combine two `Schedule`s in parallel.\n", - "- `+` (`append`): add a `Schedule` right after a `Schedule` to be appended.\n", - "- `<<` (`shift`): shift `start_time` of `Schedule`.\n", - "\n", - "All details are available in [Pulse Schedules](../terra/5_pulse_schedules.ipynb).\n", - "Created `Schedule`s can be combined into a single job." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "# Create schedule\n", - "schedules = []\n", - "for ii, drive_amp in enumerate(drive_amps):\n", - " # drive pulse\n", - " rabi_pulse = pulse_lib.gaussian(duration=drive_samples, amp=drive_amp, sigma=drive_sigma, name='rabi_pulse_%d' % ii)\n", - " \n", - " # add commands to schedule\n", - " schedule = pulse.Schedule(name='Rabi Experiment at drive amp = %s' % drive_amp)\n", - " \n", - " schedule |= rabi_pulse(system.qubits[qubit].drive)\n", - " schedule |= measure << schedule.duration\n", - " \n", - " schedules.append(schedule)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We may plot any of the experiment schedules with:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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tyLWSrz38t4rlzv/PPzmN78lxYri+5vPf15PjIzooZ/8RLlcTuPjY5Kkl7z0pXrNa18r55weeeQRvemNv6qHfvLvxtUCAGCLFbEGO3jwoK57/vN1112/qRfeeIPe/ra36SW33aobb7he73//+55y34985CO66YU36qUvfYkef/xxSdIHPvB+ffRP//Scx3/Nq1+l3//939PNL36RXnjjDXrwwQeX/LoX3niDDh48+JSvHR0d1at+9vZTX3vvD38oSfrXf/1XvfxlL9Ott9ysN/7qrzztUuynP/NpveMd7zwVLlevXiNJ6unpOTWa5OTJk4wpAQBAAQaxC1kdalaPPz6kt7zlN/WjHz+o93/gA/re9+/Rffc/oB/+4Ad65JFHTt2vd0Wv7n/gR7rrrt/SO99x1kt4ntNccU4/vPc+fehDH9bb3/bW8/66L33xi3r5K16hH957n+69735tv/ZaTRw7pv/3Tz6or3/jG7rnBz/U859/nT72sf9xzmPs37dfX/3qV/SS227VL/7iLzzlQsZvfP3resF1z9edd96hj//ZJ867rmbU1dXFKBYAyLgk+nxwqaezs9O6hNRt3LhRN954oyTp7//+q7r1lpt1y80v1q5du7R7965T97vjjjslSXfeead+9KMfnffx77iz9mIHN99yi06cOKGpqanz+rrrrrtOn//85/WBD7xfg4ODWr58uX704x9r9+7duv2Vr9DNL36R7r77bzR8aPicx1hYmFdnoVPf+/49+rU3/dpTguDPv+51eugn/64v3P0Fvf99f3zeP08zuuqqq3TVVVdZlwEASFESfZ5rxAx0d3dLkg4cOKCPfvSj+u53v6dVq1bpP/3Wb2n+tPEdp2/fXchO3pnbfs45tbW1KYqiU7eV5s8eE3LzLbfoW9/6tr79rW/prf/pt/T23/7PWrVypX7mZS/TZz/7ufP63uvWrdPPv+51kmrB621LrMjdfMstOvDWA5o4dkz9F110/j8YAAAZE9yKWKlUsi6hYU6cOKFl3d1asWKFxsaO6p//+Z+e8vmvfuUrkqSvfOUruvHGF573cRe/7r5771Vvb69WrFihjRsv08BPByRJAwMDOnjgwFlfd+jQIa1Zs0a/9uu/rje+6U366U8HdMMNN+iB++8/dY3ayZMn9dhjj53ze//cz/287vn+9yVJP/jBPXrOli2SpMcf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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "schedules[-1].draw(channels_to_plot=[system.qubits[qubit].measure, system.qubits[qubit].drive],\n", - " scaling=10.0, label=True, plot_range=(0, 400))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "After `Schedule`s are now build for the Rabi experiment. We now assemble the Qobj to be sent to the quantum computing system. We use `meas_level=1` to get the default kernel integrated results from the system, and we automatically average them with `meas_return='avg'`." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "rabi_qobj = assemble(schedules, backend, meas_level=1, meas_return='avg', shots=shots)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After building our rabi experiment Qobj we now submit it to the backend to be run." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "job = backend.run(rabi_qobj)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We receive a job object for our experiment which we may be used to monitor and get the results of the experiment." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'5d69e108edb7530011bcd1a1'" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "job.job_id()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "job.status()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now ask for the result from the quantum computing system, which will block until completion (or timeout)." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "rabi_result = job.result(timeout=3600)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Analyze the result" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "The result for our experiment is stored in `memory_slot[qubit]`. The returned data are the integrated values of the received and mixed down stimulus signal applied to the measured resonator averaged over all shots. Looking at the signal amplitude, we will observe an oscillation of the signal as a function of the drive amplitude. This is known as a Rabi oscillation and correspond to the qubit being periodically driven to its excited state. This is how we control our qubits." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below we extract the data from the returned system `memory`. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "qubit_rabi_data = np.ones(exps, dtype=np.complex_)\n", - "for i in range(exps):\n", - " qubit_rabi_data[i] = rabi_result.get_memory(i)[qubit]*scale_factor" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now plot and fit the extracted signal to a sinusoid." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pi Amplitude 0.016340\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "rabi_amp_data = get_amplitude(qubit_rabi_data)\n", - "\n", - "fit_func = lambda x,A,B,T,phi: (A*np.cos(2*np.pi*x/T+phi)+B)\n", - "\n", - "#Fit the data\n", - "fitparams, conv = curve_fit(fit_func, drive_amps, rabi_amp_data, [7.0,0.0,0.03,0])\n", - "\n", - "#get the pi amplitude\n", - "pi_amp = (np.pi-fitparams[3])*fitparams[2]/2/np.pi\n", - "\n", - "plt.scatter(drive_amps, rabi_amp_data)\n", - "plt.plot(drive_amps, fit_func(drive_amps, *fitparams), color='red')\n", - "plt.axvline(pi_amp, color='black', linestyle='dashed')\n", - "plt.xlim(0, 0.05)\n", - "plt.ylim(-8, 8)\n", - "plt.xlabel('Pulse amplitude, a.u.', fontsize=20)\n", - "plt.ylabel('Signal, a.u.', fontsize=20)\n", - "plt.title('Rough Pi Amplitude Calibration', fontsize=20)\n", - "\n", - "print('Pi Amplitude %f'%(pi_amp))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From the fit we obtain the Rabi oscillation frequency. We may use this to extract the amplitude of a $\\pi$ pulse. This is the required amplitude to drive the qubit from the ground state ($|0\\rangle$) to the excited state ($|1\\rangle$)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## _Measuring the IQ Distribution from the 0 and 1 States_" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this experiment, we observe a change of measured signals depending on a quantum state of qubit0. By setting `drive_amp` to `pi_amp` we previously obtained, we can apply a $\\pi$-pulse to the qubit0. To observe a distribution on the IQ plane, we set `meas_return` to `single` ." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# Create schedule\n", - "rabi_pulse = pulse_lib.gaussian(duration=drive_samples,\n", - " amp=pi_amp,\n", - " sigma=drive_sigma,\n", - " name='pi_pulse')\n", - " \n", - "# excited\n", - "excited_exp = pulse.Schedule(name='pi_exp')\n", - "excited_exp |= rabi_pulse(system.qubits[qubit].drive)\n", - "excited_exp |= measure << rabi_pulse.duration\n", - "\n", - "# ground\n", - "ground_exp = pulse.Schedule(name='no_pi_exp')\n", - "ground_exp |= measure << rabi_pulse.duration\n", - "\n", - "excited_exp_schedules = [ground_exp, excited_exp]" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "excited_exp_qobj = assemble(excited_exp_schedules, backend, meas_level=1,\n", - " meas_return='single', shots=shots)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "excited_exp_job = backend.run(excited_exp_qobj)" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "excited_exp_job.status()" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": { - "collapsed": true, - "slideshow": { - "slide_type": "subslide" - } - }, - "outputs": [], - "source": [ - "excited_exp_result = excited_exp_job.result(timeout=3600)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Analyze the result" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(512,)" - ] - }, - "execution_count": 95, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "excited_exp_result.get_memory(0)[:, 0].shape" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "ground_data = excited_exp_result.get_memory(0)[:, qubit]*scale_factor\n", - "excited_data = excited_exp_result.get_memory(1)[:, qubit]*scale_factor\n" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Q (a.u.)')" - ] - }, - "execution_count": 99, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(np.real(ground_data), np.imag(ground_data), s=5, cmap='viridis',c='blue',alpha=0.5, label='|0>')\n", - "plt.scatter(np.real(excited_data), np.imag(excited_data), s=5, cmap='viridis',c='green',alpha=0.5, label='|1>')\n", - "ground_center = np.mean(ground_data)\n", - "excited_center = np.mean(excited_data)\n", - "\n", - "plt.scatter(np.real(ground_center), np.imag(ground_center), c='blue', s=200, alpha=1.0)\n", - "plt.scatter(np.real(excited_center), np.imag(excited_center), c='green', s=200, alpha=1.0)\n", - "\n", - "plt.title('Kernel integrated I-Q scatter plot', fontsize=20)\n", - "plt.legend(loc='upper right')\n", - "plt.xlabel('I (a.u.)', fontsize=16)\n", - "plt.ylabel('Q (a.u.)', fontsize=16)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Measuring CR Rabi oscillation\n", - "\n", - "In this section, we measure cross resonance Rabi oscillation on qubit0 and qubit1. The basic idea of cross resonance is applying a microwave pulse to a control qubit, but the pulse frequency is identical to a resonance frequency of target qubit. Because the oscillator frequency of drive channel used in previous experiments is adjusted to be at the resonance frequency of corresponding qubit, a cross resonance pulse should be applied from another channel to have different oscillator frequency. This is realized by a control channel (`U channel`) in this experiment. \n", - "It is to be noted that a role of control channels is not only applying CR pulses, but also anything as described in `config.hamiltonian`, and it strongly depends on the design of quantum computing system." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "# qubit to use for exeperiment\n", - "control_qubit = 0\n", - "target_qubit = 1\n", - "uchannel = 0\n", - "\n", - "# exp configuration\n", - "exps = 30\n", - "shots = 512\n", - "\n", - "# Rabi pulse\n", - "cr_amps = np.linspace(0, 0.2, exps)\n", - "cr_samples = 200\n", - "cr_sigma = 4\n", - "cr_rise_fall = 16" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can check if your control qubit and target qubit are connected by bus" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[control_qubit, target_qubit] in config.coupling_map" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Usually we use a qubit with higher frequency as a control." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "defaults.qubit_freq_est[control_qubit] > defaults.qubit_freq_est[target_qubit]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For above qubit configuration, control channel 0 is available to realize CR pulse. For other configurations, you can refere to `CmdDef` to find proper control channel index." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[UchannelLO(q=1, scale=(1+0j))]" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "config.u_channel_lo[uchannel]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this experiment, we use two pulse echoed CR sequence to eliminate unwanted interaction." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "# Create schedule\n", - "schedules = []\n", - "for ii, cr_amp in enumerate(cr_amps):\n", - " # drive pulse\n", - " cr_rabi_pulse_p = pulse_lib.gaussian_square(duration=cr_samples,\n", - " amp=cr_amp,\n", - " sigma=cr_sigma,\n", - " risefall=cr_rise_fall,\n", - " name='cr_rabi_pulse_p%d' % ii)\n", - " cr_rabi_pulse_m = pulse_lib.gaussian_square(duration=cr_samples,\n", - " amp=-cr_amp,\n", - " sigma=cr_sigma,\n", - " risefall=cr_rise_fall,\n", - " name='cr_rabi_pulse_m%d' % ii)\n", - " pi_pulse = pulse_lib.gaussian(duration=drive_samples,\n", - " amp=pi_amp,\n", - " sigma=drive_sigma,\n", - " name='pi_pulse')\n", - " \n", - " # add commands to schedule\n", - " schedule = pulse.Schedule(name='CR Rabi Experiment at drive amp = %s' % cr_amp)\n", - " \n", - " schedule |= cr_rabi_pulse_p(system.controls[uchannel])\n", - " schedule |= pi_pulse(system.qubits[control_qubit].drive) << schedule.duration\n", - " schedule |= cr_rabi_pulse_m(system.controls[uchannel]) << schedule.duration\n", - " schedule |= measure << schedule.duration\n", - " \n", - " schedules.append(schedule)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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c/M35JzTwpNPVjaTVVVVpZ586iktXbJUN31p73/F3njjF7V+/XptWL9Bx8w+Rp/73Od13Xuufen+g3/5l69qydKlkqTduzt05RVXqKmpSeeff56+9q9fVyaT0ckLT9Ly5Ss0bfrer97ZuHGj3nL5ZVp02ml6sr5eJ554ov79O7eqpqZmxPOeeOIJffpTn9Sv/+eeEc//xS9+ri/ddJOy2awmTZqke+79jfL5vP7hs5/VygdWqq+3V++57jpdc827Y/9OVq5coS/+0z+ptnbiXnWfddZZxf6VA8myVfK1JynTvlXq2SRfNWfMv+SPfr5c37j1V3LO6eQFc5TNZlRVUa4nn9mgpae/Ul/+9F/v9Zwvfv0ONW16URuat+qYo6fpCx97m6798De1p3tgs8/XPneNlp7+SknS7s5uveWam9S0sVXnL12or//jtcpkMjrxvPdp5d03afrUvc/gbHxhqy57541adPI8PdmwXicef4xu/er7VVNdOeJ5Tzz1vD550+265z8/N+L5P//1Q7rx5p8qm8lo8sQa/eYnn1c+H+kzX/mRVj78jHr7+vU3V79O737bxbF/JysebtAXv36HJk+aoIa1m/SWNy7TwlfO0be+92t19/TpJ//+Uc07doaOPaZOkpTJGO2CzHfJOSk/aZGimuNtagAGjed7TR7ynn32Gf3zV76i3/3ud5o2fbra29v1yU98Qi0tm/W73/1+v++TuXbNGt37m9+qurpaXV1duvuXv1JVVZUaGxv17mvepeUrVkqSVq1apUcfe1xz5szRWy6/TL/85d267LLLE2t77rnndMst39LSZcv0d+99r2679VZ94IMfHNWf68tf+pJ+cdfdmjlz5kuXP3/w/e9r0uRJWr58hXp7e3XJxRfpta+9UHPnzo09xsHWDaQlqjleyu9WdtcTUs9m+YqpGqtVic+se0Ff+ebP9Ps7/kHTp05U+85O3XDjj9TSul333fFZZbOZ+LfT8nmtea5Zv/vJZ1VdVaGu7l796vsfU1VlhRo3tOqdH7pFD9z1j1LUr8efbNSqe76sObOm68+v+Yru/p8HdfkbzpLkB1b6xB0/6te6ps361k3XatnpJ+hvb/iOvnP7r/Wha/9s5PN8v+SjwV/nXvr1TTffqV/+349p5oypA5c/oz59/yf3aXJtpVb+4vPq7e3XhW/9gi4850TNnV0X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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "schedules[1].draw(channels_to_plot=[system.qubits[control_qubit].drive,\n", - " system.qubits[target_qubit].drive,\n", - " system.qubits[control_qubit].measure,\n", - " system.qubits[target_qubit].measure,\n", - " system.controls[uchannel]],\n", - " scaling=20.0, label=True, plot_range=(0, 700))" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "cr_rabi_qobj = assemble(schedules, backend, meas_level=1, meas_return='avg', shots=shots)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "job = backend.run(cr_rabi_qobj)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'5d69e89e45953e0012355f06'" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "job.job_id()" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "job.status()" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], - "source": [ - "cr_rabi_result = job.result(timeout=3600)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Analyze the result" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "target_qubit_rabi_data = np.ones(exps, dtype=np.complex_)\n", - "control_qubit_rabi_data = np.ones(exps, dtype=np.complex_)\n", - "\n", - "for i in range(exps):\n", - " target_qubit_rabi_data[i] = cr_rabi_result.get_memory(i)[target_qubit]*scale_factor\n", - " control_qubit_rabi_data[i] = cr_rabi_result.get_memory(i)[control_qubit]*scale_factor" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can observe oscillation of measured signal only of the target qubit." - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'CR Rabi oscillation')" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "target_rabi_amp_data = get_amplitude(target_qubit_rabi_data)\n", - "control_rabi_amp_data = get_amplitude(control_qubit_rabi_data)\n", - "\n", - "fit_func = lambda x,A,B,T,phi: (A*np.cos(2*np.pi*x/T+phi)+B)\n", - "\n", - "#Fit the data\n", - "fitparams, conv = curve_fit(fit_func, cr_amps, target_rabi_amp_data, [3.0,0.0,0.1,0])\n", - "\n", - "#get the pi amplitude\n", - "cr_pi_2_amp = (np.pi-fitparams[3])*fitparams[2]/4/np.pi\n", - "\n", - "plt.plot(cr_amps, fit_func(cr_amps, *fitparams), color='red')\n", - "plt.axvline(cr_pi_2_amp, color='black', linestyle='dashed')\n", - "plt.scatter(cr_amps, target_rabi_amp_data, label='target qubit')\n", - "plt.scatter(cr_amps, control_rabi_amp_data, label='control qubit')\n", - "plt.xlim(0, 0.2)\n", - "plt.ylim(-5, 5)\n", - "plt.legend()\n", - "plt.xlabel('CR pulse amplitude, a.u.', fontsize=20)\n", - "plt.ylabel('Signal, a.u.', fontsize=20)\n", - "plt.title('CR Rabi oscillation', fontsize=20)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From the fit we obtain the CR Rabi oscillation frequency. We may use this to extract the amplitude of a CR π/2 pulse, which is the foundation of the CNOT gate." - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.029068217547629217" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "cr_pi_2_amp" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "ExecuteTime": { - "end_time": "2019-08-22T01:29:36.602627Z", - "start_time": "2019-08-22T01:29:36.594016Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "

Version Information

Qiskit SoftwareVersion
QiskitNone
Terra0.9.0
Aer0.3.0
Ignis0.2.0
Aqua0.5.3
IBM Q Provider0.3.2rc1
System information
Python3.7.4 (default, Aug 13 2019, 15:17:50) \n", - "[Clang 4.0.1 (tags/RELEASE_401/final)]
OSDarwin
CPUs4
Memory (Gb)16.0
Wed Aug 21 21:29:36 2019 EDT
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "

This code is a part of Qiskit

© Copyright IBM 2017, 2019.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import qiskit.tools.jupyter\n", - "%qiskit_version_table\n", - "%qiskit_copyright" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.6.8" - }, - "varInspector": { - "cols": { - "lenName": 16, - "lenType": 16, - "lenVar": 40 - }, - "kernels_config": { - "python": { - "delete_cmd_postfix": "", - "delete_cmd_prefix": "del ", - "library": "var_list.py", - "varRefreshCmd": "print(var_dic_list())" - }, - "r": { - "delete_cmd_postfix": ") ", - "delete_cmd_prefix": "rm(", - "library": "var_list.r", - "varRefreshCmd": "cat(var_dic_list()) " - } - }, - "types_to_exclude": [ - "module", - "function", - "builtin_function_or_method", - "instance", - "_Feature" - ], - "window_display": false - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/qiskit/advanced/ignis/1a_calibrating_a_qubit.ipynb b/qiskit/advanced/ignis/1a_calibrating_a_qubit.ipynb new file mode 100644 index 000000000..d7cf979aa --- /dev/null +++ b/qiskit/advanced/ignis/1a_calibrating_a_qubit.ipynb @@ -0,0 +1,733 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"Note: Trusted Notebook\" align=\"middle\">" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Calibrating a qubit" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.optimize import curve_fit\n", + "\n", + "from qiskit import IBMQ\n", + "import qiskit.pulse as pulse\n", + "import qiskit.pulse.pulse_lib as pulse_lib\n", + "from qiskit.compiler import assemble\n", + "from qiskit.qobj.utils import MeasLevel, MeasReturnType" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "### Loading a pulse backend\n", + "To run an OpenPulse experiment, at first we need to load a backend object of your quantum computing system with `open_pulse = True`. Then you will be able to program a `pulse` experiment using the pulse module. For more information on how to use the `pulse` module see this [tutorial](../terra/5_pulse_schedules.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example we use `ibmq_armonk`, a one qubit system publicly available on the IBM Q Experience." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "IBMQ.load_account()\n", + "ibmq_provider = IBMQ.get_provider(\n", + " hub='provide_your_hub_name_here',\n", + " group='provide_your_group_name_here',\n", + " project='provide_your_project_name_here'\n", + ")\n", + "backend = ibmq_provider.get_backend('ibmq_armonk')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "config = backend.configuration()\n", + "defaults = backend.defaults()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating our pulses" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "User defined pulses can be created from the standard pulse library found in `pulse_lib`, and able to find calibrated pulses provided by the backend in `defaults.circuit_instruction_map`. In this notebook, we use a Gaussian pulse template from `pulse_lib.gaussian` and default measurement pulses from the `circuit_instruction_map`" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "circ_inst_map = defaults.circuit_instruction_map\n", + "\n", + "measure = circ_inst_map.get('measure', qubits=config.meas_map[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# auto-phase the output measurement signal\n", + "\n", + "def get_amplitude(vec):\n", + " i_signal = np.imag(vec)\n", + " r_signal = np.real(vec)\n", + "\n", + " mvec = [np.mean(r_signal), np.mean(i_signal)]\n", + "\n", + " src_mat = np.vstack((r_signal - mvec[0], i_signal - mvec[1])).T\n", + " (_, _, v_mat) = np.linalg.svd(src_mat)\n", + "\n", + " dvec = v_mat[0, 0:2]\n", + "\n", + " if dvec.dot(mvec) < 0:\n", + " dvec = -dvec\n", + "\n", + " return src_mat.dot(dvec)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this notebook, we apply the backend default setting for drive and measurement pulse frequency. These frequencies are calibrated to be centered at resonanse frequency of corresponding qubit and readout resonator. To change this setting, you can refer to the [qiskit community tutorials](https://github.com/Qiskit/qiskit-community-tutorials)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Running a Rabi experiment" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "In this experiment, we apply a Rabi drive pulse to qubit0 and measure a signal from the qubit by changing the amplitude of the pulse (`drive_amps`) from 0 to 0.05. The returned signal is integrated and averaged over 512 shot." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "# qubit to use for exeperiment\n", + "qubit = 0\n", + "\n", + "# exp configuration\n", + "exps = 64\n", + "shots = 512\n", + "\n", + "# Rabi pulse\n", + "drive_amps = np.linspace(0, 1.0, exps)\n", + "drive_samples = 2048\n", + "drive_sigma = 256\n", + "\n", + "# scaling factor for data returned by backend\n", + "# note: You may have to adjust this for the backend you use\n", + "scale_factor=1e-10" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Pulse commands are registered to `Schedule`s with information of `channel` and the timestep they occur at. You can create your `Schedule` by using schedule composition methods or their syntactic sugar as shown below: \n", + "\n", + "- `|` (`union`): combine two `Schedule`s in parallel.\n", + "- `+` (`append`): add a `Schedule` right after a `Schedule` to be appended.\n", + "- `<<` (`shift`): shift `start_time` of `Schedule`.\n", + "\n", + "Once create, `Schedule`s can be combined to form a composite `Schedule`. More details are available in this [tutorial](../terra/5_pulse_schedules.ipynb)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "# Create schedule\n", + "schedules = []\n", + "for ii, drive_amp in enumerate(drive_amps):\n", + " # drive pulse\n", + " rabi_pulse = pulse_lib.gaussian(duration=drive_samples, amp=drive_amp, sigma=drive_sigma, name='rabi_pulse_%d' % ii)\n", + " \n", + " # add commands to schedule\n", + " schedule = pulse.Schedule(name='Rabi Experiment at drive amp = %s' % drive_amp)\n", + " \n", + " schedule |= rabi_pulse(pulse.DriveChannel(qubit))\n", + " schedule |= measure << schedule.duration\n", + " \n", + " schedules.append(schedule)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We may plot any of the experiment schedules with:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlkAAAKrCAYAAADCophVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeZScV3nv+99+q2voQd0ttSQLK/IUYQuEHMUTnm2wISGcEyCxzzoZAEPAJHDvzRxyV044NyFwbsi6JHCSwCUkIQmBcxNIwnjgBAiOR8BOOpbbGtzW1G651fNQXXPVvn9UtyLL6n4ldVXvXbu+n7W8JNdb3XpsSU//eu/9Pq+x1goAAACNFbkuAAAAIESELAAAgCYgZAEAADQBIQsAAKAJCFkAAABN0OG6AEkyxtwv6X5J6uzsvHbXrl2OKwIQklwuJ0nq6upyXAmAkORyOR08eHDSWrvlbNeNbyMcdu3aZb/3+BOuywAQkMHBQUnS3r17HVcCICSDg4O6/bZbn7DWXne2616sZJ0unU67LgFAYHbu3Om6BAABiust3oWsRCLhugQAgenp6XFdAoAAxfUW7w6+VyoV1yUACMz09LSmp6ddlwEgMHF9xbuVrFKp5LoEAIE5fvy4JGnTpk2OKwEQkuXeshLvVrIAAABCQMgCAABoAkIWAABAExCyAAAAmsC7g+/pTMZ1CQACc+WVV7ouAUCA4nqLdyErEbG4BqCxeJwOgGaI6y3eJRrmZAFotKmpKU1NTbkuA0Bg4vqKdytZzMkC0GgjIyOSpIGBAceVAAjJcm9ZiXcrWQAAACEgZAEAADQBIQsAAKAJCFkAAABN4N3B9wxzsgA02K5du1yXACBAcb3Fu5AVMScLQIPxzRuAZojrLd4lmnK57LoEAIEZHx/X+Pi46zIABCaur3i3kkXIAtBoJ06ckCRt3brVcSUAQrLcW1bi3UoWAABACAhZAAAATUDIAgAAaAJCFgAAQBN4d/A909npugQAgdm9e7frEgAEKK63eBeyImNclwAgMMlk0nUJAAIU11u82y5khAOARhsbG9PY2JjrMgAEJq6vELIABI+QBaAZWi5kAQAAhICQBQAA0ASELAAAgCYgZAEAADSBdyMcOpmTBaDB9uzZ47oEAAGK6y3ehSzDnCwADZZIJFyXACBAcb3Fu+3CUqnkugQAgRkdHdXo6KjrMgAEJq6veBeyKpWK6xIABGZiYkITExOuywAQmLi+4l3IAgAACAEhCwAAoAkIWQAAAE1AyAIAAGgC70Y4dHV1uS4BQGD27t3rugQAAYrrLaxkAQAANIF3IYs5WQAabWRkRCMjI67LABCYuL7iXchiThaARpuamtLU1JTrMgAEJq6veBeyAAAAQkDIAgAAaAJCFgAAQBN4N8JBMq4LABCYRMT3kwAaL663eBeyuro6XZcAIDB7rr7adQkAAhTXW/j2DgAAoAm8C1nFYtF1CQACc+zoUR07etR1GQACE9dXvNsurFarrksAEJiZ2VlJ0qWO6wAQluXeshLvVrIAAABCQMgCAABoAkIWAABAE3h3JssY5mQBaKxkMum6BAABiust3oWszk7mZAForN27d7suAUCA4noL24UAAABN4F3IYk4WgEY7fPiwDh8+7LoMAIGJ6yvebRcyJwtAo83Pz7suAUCA4nqLdytZAAAAISBkAQAANAEhCwAAoAm8O5PFnCwAjZZOp1yXACBAcb3Fu5DFnCwAjfayl73cdQkAAhTXW9guBAAAaALvQlahwJwsAI01PDys4eFh12UACExcX/Fuu7BWY04WgMbKZrOuSwAQoLje4t1KFgAAQAgIWQAAAE1AyAIAAGgC785kRRG5D0BjMRoGQDPE9RbvQlYmk3FdAoDAXHXVVa5LABCguN7CshEAAEATeBeyCoWC6xIABObgwYM6ePCg6zIABCaur3i3XVir1VyXACAw+XzedQkAAhTXW7xbyQIAAAgBIQsAAKAJCFkAAABN4N2ZrChKuC4BQGB6enpclwAgQHG9xYuQZYy5X9L9krRjxw7H1QAIzc6dO12XACBAcb3Fi+1Ca+0nrLXXWWuv27x5s+tyAAAA1syLkHU6brUG0Gj79z+t/fufdl0GgMDE9RUvtgtPZ611XQKAwBSLJdclAAhQXG/xbiULAAAgBIQsAACAJiBkAQAANIF3Z7ISCeZkAWis3t5e1yUACFBcb/EuZKXTadclAAjMFVdc4boEAAGK6y1sFwIAADSBdyGLOVkAGm1oaEhDQ0OuywAQmLi+4t12IXOyADRauVx2XQKAAMX1Fu9WsgAAAEJAyAIAAGgCQhYAAEATeHcmizlZABptY3+/6xIABCiut3gXspiTBaDRLr3sMtclAAhQXG9huxAAAKAJvAtZuRxzsgA01r4nn9S+J590XQaAwMT1Fe+2CyXmZAForGqt5roEAAGK6y3erWQBAACEgJAFAADQBIQsAACAJvDuTFZHh3clAWhxAwMDrksAEKC43uJdokmlUq5LABCYHTt2uC4BQIDiegvbhQAAAE3gXcjK5XKuSwAQmMHBQQ0ODrouA0Bg4vqKdyELAAAgBIQsAACAJiBkAQAANAEhCwAAoAm8G+HAnCwAjbZlyxbXJQAIUFxv8S7RMCcLQKNt377ddQkAAhTXW7zbLrTWui4BQGCq1aqq1arrMgAEJq6veBey8vm86xIABGbfvn3at2+f6zIABCaur3gXsgAAAEJAyAIAAGgCQhYAAEATELIAAACawLsRDslk0nUJAAKzbds21yUACFBcbyFkAQgeIQtAM8T1Fu+2C2vMyQLQYOVyWeVy2XUZAAIT11e8C1kF5mQBaLChoSENDQ25LgNAYOL6inchCwAAIASELAAAgCYgZAEAADQBIQsAAKAJGOEAIHgXX3yx6xIABCiutxCyAARv69atrksAEKC43uLddmGtVnNdAoDAFAoFFQoF12UACExcX/EuZNEIATTagQMHdODAAddlAAhMXF/xLmQBAACEgJAFAADQBIQsAACAJiBkAQAANIF3IxxSqZTrEgAEZseOHa5LABCguN7iXcjq6PCuJAAtbmBgwHUJAAIU11u82y6sMicLQIPlcjnlcjnXZQAITFxf8S5kFZmTBaDBDh06pEOHDrkuA0Bg4vqKdyELAAAgBIQsAACAJiBkAQAANAEhCwAAoAm8m5fAnCwAjXbJJZe4LgFAgOJ6i3chizlZABpt06ZNrksAEKC43uLddmG1WnVdAoDAZLNZZbNZ12UACExcX/EuZBWLRdclAAjM8PCwhoeHXZcBIDBxfcW7kAUAABACQhYAAEATELIAAACagJAFAADQBN7NS0il065LABCYyy+/3HUJAAIU11u8C1kdiYTrEgAEpq+vz3UJAAIU11u82y6sMCcLQIPNzc1pbm7OdRkAAhPXV7wLWSXmZAFosCNHjujIkSOuywAQmLi+4l3IAgAACAEhCwAAoAkIWQAAAE1AyAIAAGgC70Y4pJmTBaDBdu7c6boEAAGK6y3ehawEc7IANFhPT4/rEgAEKK63eBeyKpWK6xLgsVpNWsgb5UtSuWIkSckOq+60VU+nZIzjAuGl6elpSdKmTZscVwIgJMu9ZSVehCxjzP2S7pekbdu2Oa4GPqpZaXrBaGwm0mzWqFiRjJYTlVU6KW3sqWnbRquNPZawhRc4fvy4JEIWgMZa7i0r8SJkWWs/IekTkrRr1y7ruBx4plCSjk1EGp+JVKlJvZ1W/d2SMfU/KtZK+ZI0NhNpZkHatrGm79tSUzrpuHAAQFvzImQBK5nPGT37fKTpBaO+bqvO1IvfY4zUlZa60laLBenoRKTFktEV26rqyax/zQAASIQseGwmazR8IqGFvLSlzypxDgNHujNSOmk1MRepUpFeenFVG7qaXysAAGdiTha8tFiQnn0+UrZw7gFrWUdC2tpb08yi0bMnEyqUmlcnAAAr8W4lK51hf6fdFcvSs2MJzS1G2tpXU3QBh9ijSNq8wWpyzuhwItKV22vqYDpI27ryyitdlwAgQHG9xbuQlYhYXGtn1Zp0bDzSxJzRQG9Na/nj0JGQNvVYjc1EyqSkyy+qcddhm+rqYs8YQOPF9RbvEg1zstrb89ORTkxH6uuySjZg5SmVlHoyVqOTkcbnSFjtampqSlNTU67LABCYuL7iXcgqlThA065mF41GJiMlEzrrXYQXqjsjWUnHxxNaLDTu86J1jIyMaGRkxHUZAAIT11e8C1loT5WqdHwiUr4o9XU1flTaxm6r+bzR8YlI1VrDPz0AAC9CyIIXTkxHmpwz2tSkae1RJG3srunkbP28FwAAzUbIgnMLeenEVKRMUko28VaMdFJKGOm5yYixDgCApiNkwbmxmUiLRaPeJmwTnqm/22pu0Wh8lj/6AIDm8m6EQ4Y5WW1lPmc0MRepJ70+4xWiSMqkpOdnI23uq6kr3fxfE+7t2rXLdQkAAhTXW7z7dj5iTlbbqFnpxJRRvmTUvY7ZurfTKpuXnp/iz1q7yGQyfAMHoOHi+op3X2XK5bLrErBOZrJGE/OR+rrWd0hoFEk9aauTc5HmcxyCbwfj4+MaHx93XQaAwMT1FUIWnKjW6oNHK9XGzsQ6V90ZKV80en7GyDb/KBgcO3HihE6cOOG6DACBiesr3oUstIfpBaOpedOUmVjnwhipt6umydlIs4usZgEAGo+QhXVXrUnPz0Syqo9VcKUrLRUq0klWswAATUDIwrqbXjCaWTDq63SfbHo7rabmWc0CADQeIQvrqlarz8Wq2frDm11jNQsA0Cz+zcnq7HRdAppoJms0k3V3FutsejutphYizees+rr9qQuNs3v3btclAAhQXG/xbiUrWs97+bGualYamzWq1tyexTpTZ0oqlIzGeaZhsJLJpJJJj/7QAQhCXF/xLmQxwiFc2bzRbDbShoxfq0XGSN0Zq+kFnmkYqrGxMY2NjbkuA0Bg4voKIQvrZiZrVCjVH2vjm6601WJBms6ymhUiQhaAZmi5kIUwFcvS+GykTErrOt39XCUiqSNRr7Fac10NACAEhCysi+kFo4WC1OPZVuHpNnRazS0aTS94mAIBAC2HkIWmq9akk3OREqa+WuSrVIdUtdL4nFHN3ywIAGgRhCw03WzWaH7RqNeD4aNxejNWs9lICzw4GgCwRt7NyepkTlZQrJUm5owqVT+Gj8bJpKS5vNHkgmFmVkD27NnjugQAAYrrLd6tZBkfT0XjgmUL0nQ28vos1umMkbpSVpPzjHMISSKRUCLh8V41gJYU11e8C1mlEl/ZQjK9EClfrD++plX0ZKwW8+IAfEBGR0c1OjrqugwAgYnrK96FrEql4roENEipIk3MGm/HNqwkWh7nMMc4h1BMTExoYmLCdRkAAhPXV7wLWQjHTNZooWBaZqvwdD0Zq/mc0dxiC6VDAIBXCFloipqVJuYiGfk9tmEl6aRUrkqT84QsAMCFIWShKbL5+ipQK65iLetO159nmCu6rgQA0IoIWWiK6QV/n1N4rrrTUq4ozbJlCAC4AN7Nyerq6nJdAtaoWquHrHSytQ68nymKpMjUz5a9ZKNt6f+Wdrd3717XJQAIUFxvYSULDbeQN1osGnWlW3ercFlX2mo+F2mRLUMAwHnyLmQxJ6v1TS8YFcv1laxW17W8ZZj17q8KzsPIyIhGRkZclwEgMHF9xbuvHMzJam3FsjQ5H6k7gFUsqb7dmeqQxmcNM7Na2NTUlKamplyXASAwcX3Fu5CF1jabNVosKIitwmU9GatsgZlZAIDzQ8hCw1grTS6Ylp2NtZJUR31m1hSP2QEAnAdCFhomm5dmFyN1t/BsrJV0p+vPYeSh0QCAc+VhyGK1oFXNZCMVilJnC8/GWklX2mqxwMysVpWIIiUiD9sdgJYW11c8nJPV6boEXIDK0iNoWn021koSSzOzJuYibe2vKgrwvzFke66+2nUJAAIU11v41g4NMZ8zyhZMkFuFy5YfGp3Nk7AAAPG8C1nFIlMfW9H0glGlWj8kHqpMSiqU6hPg0VqOHT2qY0ePui4DQGDi+op3IatarbouAeepUJKmslGQZ7FOZ4yUTta3RSv8MW0pM7OzmpmddV0GgMDE9RXvQhZaz9yiUa6goLcKl3VnrLJ5o7kcq1kAgNURsrAmp8/GSrTBn6ZUh1RZegA2AACraYMvi2imxYI0txgFNeE9TldKms5GKpZdVwIA8Jl3IcuEeP9/wBbyRoWS1Jl2Xcn66UxbFYpStsCf1VaRTCaVTAbwxHIAXonrK97dC9bZyZysVjK7aGSM2mpuVDIhVapGs4tGAxvaZwWvle3evdt1CQACFNdbvFvJQuuoT0CP1N1GW4XLOlNW0/ORShXXlQAAfOVdyGJOVuuYWzTKBfoYnTjdGavFYv3/Afx3+PBhHT582HUZAAIT11e82y5kTlZrqFlpciFSRyS14yPhOhL1Oyun5o229LXfSl6rmZ+fd10CgADF9ZY2/PKIRsjmjRZyYT9GJ05Xymp2MVKexVcAwFkQsnBBZrL1uwozbXzDVldayhXrh/8BADgTIQvnrVKtb5Olk/VHzbSrKKoPYJ2cj1Rr3wU9AMAKvAtZzMny33zOKFswbXlX4Zm601bzOaPFvOtKsJp0OqV0ug3v0ADQVHF9xbuD78zJ8t9M1qhcNUolCVmZlDSXk2ZzkTZ01VyXgxW87GUvd10CgADF9RbvVrLgt2JZmlqI1JUiYEn17dJUUpqYNaqSsQAAp/EuZBUK3Krls7mc0WJBbfWswjjdaavFotF8jq1uXw0PD2t4eNh1GQACE9dXvAtZtRpzsnw2PW9kVZ8Thbp0UiqWjWayhCxfZbNZZbNZ12UACExcX/EuZMFf9XEFkbrZKnyRrpTVFI/ZAQCchpCFcza79BidrrTrSvzDY3YAAGciZOGcWCtNL0RKtOljdOJ0JKRajZAFAPh33o1wiPgK7qVCSVrIG3WyVbiiTFKazRpVqpxZ8w2jYQA0Q1xv8S5kZTIZ1yXgLObz9cfoDGxwXYm/OtNWC/n6XYabNhBGfXLVVVe5LgFAgOJ6C8tGiGVt/TE6Uv0xMji7VEf9kUMzC2wZAgA8DFmFQsF1CThDrijN5SIeo3MOOlPSZDZSsey6Epzu4MGDOnjwoOsyAAQmrq94F7JqNcZm+2Z2MVKuKHVyV2GsrrRVrsABeN/k83nl8zxgEkBjxfUV70IW/FKrSZPzRsmEFJEbYi0feJ9iyxAA2h4hC6tayBst5AxbheehO201uxhpkZ1vAGhrhCysanbRqFiuPzoG56YztXSOjS1DAGhr3oWsKGLAkC8qVWlyziiTkgx54ZxFkdQRSZPzkWosAHqhp6dHPT09rssAEJi4vuLhnCxOV/tibtEoWzDq6yIpnK/ujNVCrr7V2tfN/z/Xdu7c6boEAAGK6y3erWTBH1MLRlUrJb2L4v7LJKVCub7dCgBoT96FLG6z9kOhJM1kI3WlXFfSmoypB63JufpjduDW/v1Pa//+p12XASAwcX3Fu5BlLVsrPphdNFos1uc+4cJ0Z6yyBcMBeA8UiyUViyXXZQAITFxf8SJkGWPuN8Y8box5fG5uznU5bc/a+qHtSDxGZy2SHVLVMjMLANqVF19CrbWfsNZeZ629rq+vz3U5bS+bl+ZyRt0ZVrHWqitV33YtsIgCAG3Hi5AFv8zn66Ggk/NYa9aVtsoVpfk8q1kA0G68u28skWBOlkvWStMLRh0Rs7EaIRHV/5/OLRpt7WNl0JXe3l7XJQAIUFxv8S5kpdPMyXIpW6g/SocD743TlZamFyIVSjVlWB104oorrnBdAoAAxfUWtgvxArOLkfJsFTZUV9pqscjMLABoN96FLOZkuVOtSROzRqkOtgobKRHV/6JNzPGYHVeGhoY0NDTkugwAgYnrK96FLOZkuTO79BidHu4qbLiejNV8zijLAXgnyuWyyuWy6zIABCaur3gXsuDO1LxRuSqlvDup1/oyqeUp+oQsAGgXhCxIkvJLj9Hp5r6DpjCmHrQm5ozKFdfVAADWAyELkuorLIsFqZu7Cptm+TE7HIAHgPbg3cYQc7LWX60mTc5F9QPaxO6mSSaWH1lktLnXcnPBOtrY3++6BAABiust3oUs5mStv/m80XyOA+/roTttNbsYabFYU0/GdTXt49LLLnNdAoAAxfUW1i2gqQWjQtkwKHMddKWlXLF+/g0AEDbvOn0ux5ys9VQsS5PzEWex1okx9bs3J2aNKlXX1bSPfU8+qX1PPum6DACBiesr3oUsiS/26+nUgXe2CtdNT8ZqIc8B+PVUrdVUrdVclwEgMHF9xcOQhfVSs9L4XKSEqU8lx/pIddSn608tELIAIGR8aW1ji3lpIWdYxXKgKy3NZiMVSq4rAQA0CyGrjc3lIhXKUibpupL205myyhWlObYMASBY3o1w6OjwrqQgVarSOA+DdqYjIRnVt2u39FcV8XvQVAMDA65LABCguN7iXaJJpZgjsB5mskYLeaPeLrYKXenptJpbrM8o6+/m96GZduzY4boEAAGK6y1sF7ah5anjNcvDoF3KJKVC2WhqjmUsAAiRdyErl8u5LiF4C3mj6WzEhHfHjKlPgJ9ciJTnAHxTDQ4OanBw0HUZAAIT11e8C1lovqkFo0JR6mRn1rmejFW2IE0v8FcRAEJDZ28zxbI0MRepM8WBdx9EkZRKSCdnmAAPAKEhZLWZqXmjbL5+6Bp+2NBpNZ83msmSegEgJISsNlKt1UcGdCSY8O6TZEf9ZoTxufrNCACAMHh3bxlzsppnesFobpGxDT7a0Gk1sxBpPmcZ59AEW7ZscV0CgADF9RbvEg1zspqjdtpKCWMb/NOZqk9/H59lZlYzbN++3XUJAAIU11u82zSyli8wzTCfM5pZiLSBs1je6snUNLUQKVtwXUl4qtWqqlXuLADQWHF9xbuQlc/nXZcQpKk5o2LZMLbBY90ZKVesPzgajbVv3z7t27fPdRkAAhPXV+jmbaBYliazkbrSrGL5zJj6OIeJecY5AEAICFltYHI+0mJe6mbCu/eWn2c4vcA4BwBodYSswJUr9UGXScY2tIRUhyQrjc1GqtZcVwMAWAu+7AZuasFoLsfYhlbS22U1m2U4KQC0Ou9u5k8mk65LCEalKo3NRIqM1JFwXQ3OVTopzeakk7NGmzZYRWStNdu2bZvrEgAEKK63ELICNjVvNLto1M8qVsvp67SaXog0m7XatIHfv7UiZAFohrje4t12YY05WQ1RqdbP9RjVH9uC1pJJ1c/TPT/Do3YaoVwuq1wuuy4DQGDi+op3IavAnKyGmFqon+nhLFbr6u1aXs1iv3CthoaGNDQ05LoMAIGJ6yvehSysXaUqPT9dX8XiETqtq/P01SzuNASAlkPICtDkfH0Vq49VrJbX12U1NR9pmtUsAGg5hKzAlCvSialIiYizWCHIpKRqrb4yyWoWALQWQlZgprP1uVisYoWjt9NqdrH++woAaB3erXUwwuHCLc/FMmIuVkgyKWkuLz0/bdTXzdysC3HxxRe7LgFAgOJ6CyErIBNz9Wfe9XezihWavk6ryflIU/NWW/r4/T1fW7dudV0CgADF9RbvtgtrHDy5IMVy/SxWR8QdhSHKpKSalU5MR6pUXVfTegqFggqFgusyAAQmrq94F7JohBdmbCbS7GJ9Owlh6u+yml4wGp9lv/B8HThwQAcOHHBdBoDAxPUV70IWzt9Cvr7C0ZWWEvyOBivZISUT0uhUQvmS62oAAHH4ktzialYanYyUKxht6GQVK3R9XVbzOenEZCSeQAUAfiNktbjJeaPxuUh93TUZdpGCF0VST6fV2Gx9exgA4C9CVgsrlqXnJuorGp0p19VgvfRk6r/3I5McggcAn3l3H1oqRVo4V6NTkWYWjTZvYN+o3WzqsZqcNzo5G2n7AHfkxtmxY4frEgAEKK63eBeyOjq8K8lLC3np5Gyk7jSDR9tRskNKJeoDSgc21Ec8YGUDAwOuSwAQoLje4t12YZU5WbGqNWlkon7YvSfDKla76u2ymls0GpmMVOOPwapyuZxyuZzrMgAEJq6veBeyiszJijU2E+nkbKSNPRx2b2eJqB60xqYjTc7xB2E1hw4d0qFDh1yXASAwcX3Fu5CF1c3njEYmIqU6pDRPIGp7Xen6GI/jE5EW+f4EALxCyGohpYp0dDzSYrE+LwmQ6ofg53KRjk9EqrLbDgDeIGS1iJqtn8OamDMa2GDZJsQpUSRt7K5pbCbS6CR/pQHAF3TkFjE+azQ6FWlDxirJ3YQ4QzopZZLSyFSkqXkSOAD4wLt5CczJerH5nNGx8YSMpO6M62rgq94uq4k5o6MnI3Wlq+pMu67IH5dcconrEgAEKK63eLeSxZysFypVpGPjkbIFaWMP57CwuoENVrOLRsfGOZ91uk2bNmnTpk2uywAQmLi+4l3IqlZ5Tsiyak06ejLS+KzRQA/nsBAviuph/MR0pGPjzM9als1mlc1mXZcBIDBxfcW7kFUsFl2X4IWara9gjU5F6uu2SrLAh3OUTko9GauRifpBeEvQ0vDwsIaHh12XASAwcX3Fu5AFyVrpuclIIxORutKWhz/jvHVnpGSiHtTHZlgCBQAXCFmesVantnpSHVIPB91xgfq660tYR04mdJKgBQDrjpDlkeWAdXgsUsLU7xYD1mJjj1W1Kj07ltDJWYIWAKwnQpYnrJVOztZvv0+Yf1+FANZqY49VpSodGUtokhlaALBuvDtOnUq333CfmpVOTEU6djKSldTPqAY0kDH1R+9MLRg9cyKhSrWqi/rb627Vyy+/3HUJAAIU11u8C1kdifYaZ16pSscmIj03ESmZkPpZwUITGFOfoTWzaDR8IqFiuabv21xTok3Wsvv6+lyXACBAcb3Fu5BVaaM5WbmidORkpJMzkXoylmnuaKrlFa2FvNHhsUiFsnTplpoybXD36tzcnCTCFoDGWu4tK/EuZJXaZE7W9ILRkbFIs7lIm7prSiVdV4R2saGz/vzL5yYi5YtGV2yrBX+TxZEjRyRJe/fudVwJgJAs95aVeBeyQlep1u8gHJ2KVCxJW3tritpkywb+yKSkzYn6Oa1iOaEdm6u6aIm4PrIAACAASURBVKNtm+1DAFgPhKx1Yq00u2g0Mhlpcs4ok5Q297bX4WP4pSMhbe2rP+vw4GhCM4s17dhsg1/VAoD10pSQZYw5KumotfbOZnz+VrNYqK9ejc9GKpbrt9SniLfwgDH1P4/FsnRyJtJ8Trqov6aXbKrxpAEAWKN13RwwxrzSGPMNY8yCMWbeGPM1Y0ywhyQKJen4eKSnjnXo+HikZMLqon4CFvyTTtZXtYykI2ORnjqWqG9pl11XBgCta92+3BtjbpT0bUmjkt639PL/JulBY8zN1tp9kpRu8TlZ1krZgjQ1H+nkXKRsXupMSlv7rSK2BuExY+qH4rvT0lzO6OBzRs93GW3ttxrYUGvpu1937tzpugQAAYrrLeu5pvJRSSVJt1trRyXJGPM3kvZL+n8kvVaSEi06J6tcqZ+5mpw3mslGyhelzpS0tddysB0tJYr+fUp8Nm/0zAmj0XSkTRtq2txr1ddl1dFif017enpclwAgQHG9ZU0hyxizQ/WA9EOSjKQHJP3CWd63U9L1kv5sOWBJkrV21Bjzt5LeZozZZq0dq1QqaylpXRXL0kLeaC5nNDNvlC0a1azUk7a6qF8cakdL60jUnz5Qs1KuII1ORjo5I3WnrQZ6rTZ0WW3obI3t7+npaUnSpk2bHFcCICTLvWUlF9wejTH9kv5Z0g5JH5f0tKQ7JP2TpM4z3n790o+PnuVTPSbp7ZKulfSVUql0oSU1lbVSqSLlS0aLBaPZRSmbj5QvSbWalElK/V1WyRb4ggOcj8hIPZ1ST6dVqSLlCkbDz9fPGGbSUl9nTb3dVl1pqSvtZ+g6fvy4JEIWgMZa7i0rWUs7/DVJl0l6u7X2z5de+2NjzB9I+vkz3nvx0o+jerHl17avoZaGsVYqV+uBqlQ2KpTrwSqbNyqUjIrl+qyryEiZlNXGbrXc1glwoVIdUqrHql9W5apUKBk9PxNpdHrpWlLqTNZXuDrTVumklOqoBy++AQHQbtbS9t4o6aSkvzzj9d/Vi0NW19KPZxvnXjjjPQ1Vs/XgVK3VV5yqNalaM6rW6mGp/qNRqSIVS/VAVa4ZVapSpSJVavV90GSi/sViQ2f952wFot0lE1Kys/53wtr6ucTiaWcTpfo3IB0JKZGQUgmrTMqqMy11RFJHon62KxFJHVH97GIi0qkfjRE3iwBoaWsJWVdI+p619gUPG7TWPm+MmT3jvbmlH89262Dm9PfMZSv6+OdPnFchdml2ol36R0vBytql16w57ef1f2q1egBb/sfWXtjN642eQ+vAWtS/uTGq1V74erT0d8uo/nctMvVQdeofScbY+oyZpde0/Lr+/efnamxkUpL02LPn11sAYDVjI5NKJDf0rnR9rQv4K42GPrP/LXe2s20JLr/2q8aY+40x+rX7rlxjWQDw75ZHwxTb5NmoANZHOp2WSfSsOOBmLSHrsKQrjTGJ01ezjDEvkXTmo+6/t/TjTZI+eca1G1UPa7dZa8d+YO9e+9BDD6+hLAB4oVyuvpje1dWUUwkA2lQul9O2i7aOr3R9LZthX5B0kaS3nPH6e898o7V2WNLjku41xiwfgtfSz++V9C1r7ZgkJdifA9BgXV1dBCwADRfXV9aykvUhST8p6U+MMddKGpJ0p+qrVZNnef/Pqz7e4UFjzH9feu1/Vz3o/fLym1ppThaA1jA1NSVJGhgYcFwJgJAs95aVXPCykbV2RtJtkv5B9dWsD6l+h+CrJC2e5f2PqB7Cjkr6HUnvlzSs+gT4f1t+n69zsgC0rpGREY2MjLguA0Bg4vrKmg6+W2uPS7rnLJcuW+H9j0q6ay2/JgAAQCvgABQAAEATELIAAACagJAFAADQBN49TSyTWXGmFwBckF27drkuAUCA4nqLdyErYk4WgAbjmzcAzRDXW7xLNOVy2XUJAAIzPj6u8fEVhzIDwAWJ6yverWQRsgA02okT9cenbt261XElAEKy3FtW4t1KFgAAQAgIWQAAAE1AyAIAAGgCQhYAAEATeHfwPdPZ6boEAIHZvXu36xIABCiut3gXsiJjXJcAIDDJZNJ1CQACFNdbvNsuZIRDWF6x++Wampx80et/+qef1Gc+85mG/lov2XZRwz6XtVa//Vv/l35w715dd+01+tjH/liS9JUvf1k33fhK3XLzTbrj9tv06COPNOzXRPOMjY1pbGzMdRkAAhPXV7xbySJktR5rray15zWt/2d+5h1NrGjt/vrTn9Zzo6N64l/+RVEUaWKiPnDujjvv1I+8/vUyxuipp57SW9/yZj3xL//quFrEWW6E27Ztc1wJgJDEhSzvVrLQGo4dO6brrr1Gv/iLv6Dbbr1F73n3u3XH7bfphuuv0wc+8DsveO9HPvIR3XnnHbrzzjv07LPPSpI++MEP6KMf+ciKn/9HXvfDeu97f01333WXXnnD9Xr88cfP+nGvvOF6HTt27AUfOzY2ph/+odfqlptv0itvuF6PPPywJOmb3/ym7nr1q3XbrbfoLW/+aWWz2RV//U/+6Sf13vf++qnguGVLfYhlT0+PzNKW9uLi4qmfAwBwJkIWLtgzzzyjn/iJn9RDDz+iD3zwg3rgnx/Uo499Rw8/9JCeeuqpU+/b0LtB3/72A7r//nfp19/73nP+/LnFnL7xzW/qwx/+fb3n3T93zh/3t3/zN7rr7rv18COP6pFHH9Oeq6/W1OSkfu9Dv6svfulLevChh/WDP3iN/vAP//uKn+PI4SP6u7/7vO64/Tb92I+9ScPDw6eufemLX9S11/yg7r33Hv3RH3/snOsCALQXQhYu2CWXXKIbbrhBkvT3f/93uu3WW3TrLTdr//79OnBg/6n33XPPvZKke++9V9/97nfP+fPfc+89kqRbbr1VCwsLmp2dPaePu+aaa/TpT39aH/zgBzQ0NKQNGzbou9/7ng4cOKDXvuZu3XLzTfrMZ/5aI8dHVvwcpVJRmXRGD/zzg7rvrfe9IOT9xx/9UT3xL/+qz37ms/rA77z/nP97AADtxbszWWgdXV1dkqSjR4/qox/9qL797Qe0ceNG/ey73qVioXjqfadvqZ3P7tqZW3HGGHV0dKhWq516rVAsnvlhuuXWW/W1r31dX//a13T/O9+h/+Pnf0Eb+/v1qle/Wn/+5586p1/74osv1o++4Q2S6qHq3WdZSbvl1lt15GePaGpyUgObN5/7fxgAoC14t5LVyZyslrOwsKDuri719fVpfPyk/vEf/9cLrv/d5z8vSfr85z+vG2545Tl/3uWPe/SRR9Tb26u+vj5dcsmlGvy3QUnS4OCgjh09+qKPO378uLZs2aL73vY2vfktb9W//dugrr/+en3nscdOnQnL5XJ65plnVvy1/8N/+I/65wcekCQ99NCD+v6dOyVJzz77rKy1p379UqmkTQMD5/zfBDf27NmjPXv2uC4DQGDi+op3K1kcJG49e/bs0dVX/4BuuP46XXbZ5brxxhtfcL1YKupVr7pTtVpNf/Znf37On7e/f6PuvusuLSzMnzr79IY3vEGf/exndMvNN+maa67VzqXwc7oHH3xQH/3IHyiZTKq7u1v/7yf+RJu3bNHHPv5xvf3tb1NpafXrN3/zfXrpS1961l/7F3/pl/SOn/kZ/dEf/aG6u3v0h3/4R5KkL37hC/rsZz+jZDKpTKZTn/rUX/BntgUkEgnXJQAIUFxvMcvflfviFa94hX30se+4LgOO/cjrfli/84EP6pprrnFdCgIwOjoqSdq+fbvjSgCEZHR0VC/bddUT1trrznbdu+3CSqXiugQAgZmYmNDExITrMgAEJq6veLddiPbyS7/0i/rOY4+94LWf+7l366v/82vr8uv/5E/85xfN2fqt336/7r777nX59QEA4SJkwakPf/j3nf76n/ns/3D66wMAwuXddiEAAEAICFkAAABN4N124fKASwBolL1797ouAUCA4noLK1kAAABN4F3IKpVKrksAEJiRkRGNjKz8rEoAuBBxfcW7kMWcLACNNjU1pampKddlAAhMXF/xLmQBAACEgJAFAADQBIQsAACAJvBuhINkXBcAIDCJiO8nATReXG/xLmR1dXW6LgFAYPZcfbXrEgAEKK638O0dAABAE3gXsorFousSAATm2NGjOnb0qOsyAAQmrq94t11YrVZdlwAgMDOzs5KkSx3XASAsy71lJd6tZAEAAISAkAUAANAEhCwAAIAm8O5MljHMyQLQWMlk0nUJAAIU11u8C1mdnczJAtBYu3fvdl0CgADF9Ra2CwEAAJrAu5DFnCwAjXb48GEdPnzYdRkAAhPXV7zbLmROFoBGm5+fd10CgADF9RbvVrIAAABCQMgCAABoAkIWAABAE3h3Jos5WQAaLZ1OuS4BQIDieot3IYs5WQAa7WUve7nrEgAEKK63sF0IAADQBN6FrEKBOVkAGmt4eFjDw8OuywAQmLi+4t12Ya3GnCwAjZXNZl2XACBAcb3Fu5UsAACAEBCy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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "schedules[-1].draw(channels=[pulse.DriveChannel(qubit), pulse.MeasureChannel(qubit)],\n", + " label=True, plot_range=(0, 4096))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "After `Schedule`s are now build for the Rabi experiment. We now assemble the Qobj to be sent to the quantum computing system. We use `meas_level=MeasLevel.KERNELED` (otherwise known as measurement level `meas_level=1`) to get the default kernel integrated results from the system, and we automatically average them with `meas_return=MeasReturnType.AVERAGE` (otherwise known as `meas_return='avg'`)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "rabi_qobj = assemble(schedules, backend, \n", + " meas_level=MeasLevel.KERNELED, \n", + " meas_return=MeasReturnType.AVERAGE, \n", + " shots=shots)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After building our rabi experiment Qobj we now submit it to the backend to be run." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "job = backend.run(rabi_qobj)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We receive a job object for our experiment which we may be used to monitor and get the results of the experiment." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'5df01a6e60dba60011df07e4'" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job.job_id()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now ask for the result from the quantum computing system, which will block until completion (or timeout)." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "rabi_result = job.result(timeout=3600)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Analyze the result" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "The result for our experiment is stored in `pulse.MemorySlot(qubit)`. Looking at the signal amplitude, we will observe an oscillation of the signal as a function of the drive amplitude. This is known as a Rabi oscillation and corresponds to the qubit being periodically driven to its excited state and back again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we extract the data from the returned system `memory`. " + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "qubit_rabi_data = np.ones(exps, dtype=np.complex_)\n", + "for i in range(exps):\n", + " qubit_rabi_data[i] = rabi_result.get_memory(i)[qubit]*scale_factor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now plot and fit the extracted signal to a sinusoid." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Pi Amplitude 0.305795\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "rabi_amp_data = get_amplitude(qubit_rabi_data)\n", + "\n", + "fit_func = lambda x,A,B,Omega,phi: (A*np.cos(2*np.pi*x/Omega+phi)+B)\n", + "\n", + "#Fit the data\n", + "fitparams, conv = curve_fit(fit_func, drive_amps, rabi_amp_data, [7.0,0.0,1.0,0])\n", + "\n", + "#get the pi amplitude\n", + "pi_amp = (np.pi-fitparams[3])*fitparams[2]/4/np.pi\n", + "\n", + "plt.scatter(drive_amps, rabi_amp_data)\n", + "plt.plot(drive_amps, fit_func(drive_amps, *fitparams), color='red')\n", + "plt.axvline(pi_amp, color='black', linestyle='dashed')\n", + "plt.xlim(0, 1)\n", + "plt.ylim(-8, 8)\n", + "plt.xlabel('Pulse amplitude, a.u.', fontsize=20)\n", + "plt.ylabel('Signal, a.u.', fontsize=20)\n", + "plt.title('Rough Pi Amplitude Calibration', fontsize=20)\n", + "\n", + "print('Pi Amplitude %f'%(pi_amp))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the fit we obtain the Rabi oscillation frequency. We may use this to extract the amplitude of a $\\pi$ pulse. This is the required amplitude to drive the qubit from the ground state ($|0\\rangle$) to the excited state ($|1\\rangle$)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Measuring the IQ distribution from the |0> and |1> states" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this experiment, we observe a change of measured signals depending on a quantum state of qubit0. By setting `drive_amp` to `pi_amp` we previously obtained, we can apply a $\\pi$-pulse to the qubit0. To observe a distribution on the IQ plane, we set `meas_return` to `MeasReturnType.SINGLE` ." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Create schedule\n", + "rabi_pulse = pulse_lib.gaussian(duration=drive_samples,\n", + " amp=pi_amp,\n", + " sigma=drive_sigma,\n", + " name='pi_pulse')\n", + " \n", + "# excited\n", + "excited_exp = pulse.Schedule(name='pi_exp')\n", + "excited_exp |= rabi_pulse(pulse.DriveChannel(qubit))\n", + "excited_exp |= measure << rabi_pulse.duration\n", + "\n", + "# ground\n", + "ground_exp = pulse.Schedule(name='no_pi_exp')\n", + "ground_exp |= measure << rabi_pulse.duration\n", + "\n", + "excited_exp_schedules = [ground_exp, excited_exp]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "excited_exp_qobj = assemble(excited_exp_schedules, backend, meas_level=MeasLevel.KERNELED, \n", + " meas_return=MeasReturnType.SINGLE, shots=shots)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "excited_exp_job = backend.run(excited_exp_qobj)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "excited_exp_job.status()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "excited_exp_result = excited_exp_job.result(timeout=3600)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analyze the result" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "ground_data = excited_exp_result.get_memory(0)[:, qubit]*scale_factor\n", + "excited_data = excited_exp_result.get_memory(1)[:, qubit]*scale_factor\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Q (a.u.)')" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(np.real(ground_data), np.imag(ground_data), s=5, cmap='viridis',c='blue',alpha=0.5, label='|0>')\n", + "plt.scatter(np.real(excited_data), np.imag(excited_data), s=5, cmap='viridis',c='green',alpha=0.5, label='|1>')\n", + "ground_center = np.mean(ground_data)\n", + "excited_center = np.mean(excited_data)\n", + "\n", + "plt.scatter(np.real(ground_center), np.imag(ground_center), c='blue', s=200, alpha=1.0)\n", + "plt.scatter(np.real(excited_center), np.imag(excited_center), c='green', s=200, alpha=1.0)\n", + "\n", + "plt.title('Kernel integrated I-Q scatter plot', fontsize=20)\n", + "plt.legend(loc='upper right')\n", + "plt.xlabel('I (a.u.)', fontsize=16)\n", + "plt.ylabel('Q (a.u.)', fontsize=16)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next step in controlling a quantum computer with pulse is to calibrate a two-qubit gate. For more information on how to do this see the next tutorial [Calibrating a Two Qubit Gate](1b_calibrating_a_two_qubit_gate.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2019-08-22T01:29:36.602627Z", + "start_time": "2019-08-22T01:29:36.594016Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "

Version Information

Qiskit SoftwareVersion
Qiskit0.14.0
Terra0.11.0
Aer0.3.4
Ignis0.2.0
Aqua0.6.1
IBM Q Provider0.4.4
System information
Python3.7.4 (default, Aug 13 2019, 15:17:50) \n", + "[Clang 4.0.1 (tags/RELEASE_401/final)]
OSDarwin
CPUs4
Memory (Gb)16.0
Wed Dec 11 12:02:58 2019 EST
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

This code is a part of Qiskit

© Copyright IBM 2017, 2019.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import qiskit.tools.jupyter\n", + "%qiskit_version_table\n", + "%qiskit_copyright" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.4" + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/qiskit/advanced/ignis/1b_calibrating_a_two_qubit_gate.ipynb b/qiskit/advanced/ignis/1b_calibrating_a_two_qubit_gate.ipynb new file mode 100644 index 000000000..219f506c0 --- /dev/null +++ b/qiskit/advanced/ignis/1b_calibrating_a_two_qubit_gate.ipynb @@ -0,0 +1,534 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"Note: Trusted Notebook\" align=\"middle\">" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Calibrating a two qubit gate" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy.optimize import curve_fit\n", + "\n", + "from qiskit import IBMQ\n", + "import qiskit.pulse as pulse\n", + "import qiskit.pulse.pulse_lib as pulse_lib\n", + "from qiskit.compiler import assemble\n", + "from qiskit.qobj.utils import MeasLevel, MeasReturnType" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the previous [tutorial](1a_calibrating_a_qubit.ipynb) we demonstrated how to control a single-qubit device with pulse and calibrate a single qubit gate. In this tutorial we will calibrate a two-qubit gate with a cross-resonance pulse using `ibmq_almaden`, a 20 qubit client-only system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [], + "source": [ + "IBMQ.load_account()\n", + "ibmq_provider = IBMQ.get_provider(\n", + " hub='provide_your_hub_name_here',\n", + " group='provide_your_group_name_here',\n", + " project='provide_your_project_name_here'\n", + ")\n", + "backend = ibmq_provider.get_backend('ibmq_almaden')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "config = backend.configuration()\n", + "defaults = backend.defaults()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Measuring CR Rabi oscillation\n", + "\n", + "In this section, we measure cross resonance Rabi oscillation on qubit0 and qubit1. The basic idea of a cross resonance gate is to apply a microwave pulse to the control qubit at the frequency of the target qubit resonance frequency. For more information, see this [paper](https://arxiv.org/abs/1603.04821). As the frequency of the drive channel used in previous experiments is adjusted to be at the resonance frequency of corresponding qubit, a cross resonance pulse must be applied from another channel so that a different frequency may be used for the pulse. This is why we use a control channel (`U channel`) in this experiment. \n", + "It should be noted that the role of control channels is not only applying CR pulses, but any possible Hamiltonian term as described in `config.hamiltonian`, and consequently the effect of `ControlChannel` stimulus strongly depends on the design of the specific quantum computing backend." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# qubit to use for exeperiment\n", + "control_qubit = 1\n", + "target_qubit = 0\n", + "control_channel_index = 1\n", + "\n", + "# exp configuration\n", + "exps = 30\n", + "shots = 512\n", + "\n", + "# Rabi pulse\n", + "cr_amps = np.linspace(0, 0.2, exps)\n", + "cr_samples = 200\n", + "cr_sigma = 4\n", + "cr_rise_fall = 16\n", + "\n", + "# scaling factor for data returned by backend\n", + "# note: You may have to adjust this for the backend you use\n", + "scale_factor= 1e-14" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can check if your control qubit and target qubit are connected by bus" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[control_qubit, target_qubit] in config.coupling_map" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Usually we use a qubit with higher frequency as a control." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "defaults.qubit_freq_est[control_qubit] > defaults.qubit_freq_est[target_qubit]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the above qubit configuration, control channel 0 is available to realize a CR pulse. For other configurations, you can refer to the `InstructionScheduleMap` which may be found in `defaults.circuit_instruction_map` to find the proper control channel index." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[UchannelLO(q=0, scale=(1+0j))]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "config.u_channel_lo[control_channel_index]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this experiment, we use two-pulse echoed CR sequence to eliminate unwanted interactions." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Create schedule\n", + "schedules = []\n", + "for ii, cr_amp in enumerate(cr_amps):\n", + " # drive pulse\n", + " cr_rabi_pulse_p = pulse_lib.gaussian_square(duration=cr_samples,\n", + " amp=cr_amp,\n", + " sigma=cr_sigma,\n", + " risefall=cr_rise_fall,\n", + " name='cr_rabi_pulse_p%d' % ii)\n", + " cr_rabi_pulse_m = pulse_lib.gaussian_square(duration=cr_samples,\n", + " amp=-cr_amp,\n", + " sigma=cr_sigma,\n", + " risefall=cr_rise_fall,\n", + " name='cr_rabi_pulse_m%d' % ii)\n", + " \n", + " control_channel = pulse.ControlChannel(control_channel_index)\n", + " \n", + " # We get the state preparation and measurement pulses we need from the\n", + " # defaults `circuit_instruction_map`\n", + " pi_pulse_q0 = defaults.circuit_instruction_map.get('u3', (control_qubit,), np.pi, 0, np.pi)\n", + " measure = defaults.circuit_instruction_map.get('measure', config.meas_map[0])\n", + " \n", + " # add commands to schedule\n", + " schedule = pulse.Schedule(name='CR Rabi Experiment at drive amp = %s' % cr_amp)\n", + " \n", + " schedule |= cr_rabi_pulse_p(control_channel)\n", + " schedule |= pi_pulse_q0 << schedule.duration\n", + " schedule |= cr_rabi_pulse_m(control_channel) << schedule.duration\n", + " schedule |= measure << schedule.duration\n", + " \n", + " schedules.append(schedule)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmIAAAKrCAYAAABSseGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deZhlVWEv7N86VT3Q3UADLTJIRESjGFEapJkMeMURJCaG+DlETVRigmMGJddMGhKHJNeBRP0cPkyiNzEaxCsRNUEZnBBEJUYECcNlhmbokR6qzvr+qFNN0VTbXV1NrTqn3/d56jl19nRWre6961drrb12qbUGAICZ12ldAACAnZUgBgDQiCAGANCIIAYA0IggBgDQyHDrAmxu/vz5t69fv/6Rrcsx0+bPn99dt27dTheMd9afm5k3b9687vr163e6/2s76zm2s/7czLz58+ffcf/99++zvfuX2TZ9RSml3nDDDa2LMeMOPPDArF27tnUxZtyCBQt2yp+bmbdgwYK4tuw8XFuYKQsWLEittWzv/v5aAABoRBADAGhEEAMAaEQQAwBoRBADAGikb4LYihUr8o//+I875Fgf//jHc+KJJ+a5z31uXvrSl+bmm2/etO5zn/tcTjjhhJxwwgn53Oc+t2n5f/7nf+Y5z3lOjj/++PzZn/1ZWt9tetppp+Xzn//8lPY588wz8/73vz9Jcs455+Twww/PwoUL873vfe/hKOKM+dCHPpTDDjssv/Ebv9G6KHnEIx7Rughb9bGPfSxPe9rTsmzZsjzzmc/MVVddNel2v/Vbv5VHP/rROeKIIyZd//73vz8LFizI8uXLH87iPuxm6tryile8Ik9+8pPzm7/5mw/a56abbsov/dIv5YQTTsjpp5+eDRs27JCybC/Xlge4tkyNa8v26ZsgtnLlyh12sTzkkEPyxS9+MV/+8pfzvOc9L+9617uSJPfdd18+8IEP5Nxzz80XvvCFfOADH8iKFSuSJH/0R3+Uv/zLv8yFF16Y66+/PhdeeOEOKUsrhxxySP7pn/4pxx13XOuiTNtHP/rRfP7zn8/ZZ5/9oOUjIyONSjS7vfjFL85ll12WSy+9NG95y1vytre9bdLtfv3Xfz3nnnvupOtuvvnmfO1rX8sBBxzwcBZ1RszEtSUZ++Xzvve97yH7vPvd786rX/3qXHjhhdl9993zmc98ZoeUpRXXlp2Xa8v26Zsg9p73vCc33nhjnve85+Uv//Ivp3WsY445JrvsskuS5LDDDsvtt9+eJLnoooty3HHHZfHixdl9991z3HHH5cILL8ydd96ZVatW5fDDD08pJb/yK7+Sr371q9P+mbbVpz/96Rx55JFZtmxZXv3qV29a/o1vfCPPeMYzcsghh2zxL9j3vOc9ecpTnpKTTjopP/3pTzctf8ITnpDHP/7xD3vZH25veMMbcv311+fUU0/NWWedlTPPPDOnn356XvCCF+Q1r3lNbrzxxpx44ok5+uijc/TRR+c73/lOkuTiiy/Os5/97Lz85S/PoYcemj/+4z/OP//zP+fpT396nva0p+W6665Lktx11115yUtekuOOOy7HHXdcvv3tbydJVq9endNOOy1Pe9rTcuSRRz7oovKnf/qnWbZsWY4//vjccccdSZJ/+7d/yy/+4i/mqKOOykknnbRp+Zlnnpnf+q3fynOe85wccsgh+dCHPrTpOO9617vy1Kc+NSeffHJe+cpXbmpxuO6663LKKafkmGOOyYknnpirr756SnW22267bfp+7dq1KWXy6W+OO+647LnnnpOue+tb35ozzzxzi/v2k5m4tiTJsccem4ULFz5o+1prvvWtb+X5z39+kuRFL3qRa8ss4dri2jJTZt3M+lvytre9Lddcc03OP//8SdefeuqpWb169UOWv/3tb/+Zf5n9y7/8S0444YQkyR133JH99ttv07p99903d9xxR26//fbsu+++D1k+E3784x/nve99by644IIsWbIk99xzz6Z1t99+ey644IJcffXVOfXUU/PLv/zLD9r3iiuuyOc+97l8+9vfzsjISI455pgcdthhM1LumXLWWWfl3//933P++ednyZIlOfPMM/P9738/F1xwQXbZZZesXbs25513XubPn59rr702r3zlK/PNb34zyVh38xVXXJE999wzhxxySF71qlflkksuyd/93d/lwx/+cP7qr/4qf/AHf5A3vOENOeaYY3LTTTfllFNOyfe///28+93vzu67757LLrssSXLvvfcmSdasWZMjjzwy73jHO/L2t789Z599ds4444wcc8wxueiii1JKydlnn533ve99efe7350kueaaa/LlL385q1atylOf+tS89rWvzZVXXplzzz130n+717/+9fngBz+Ygw8+ON/97nfz5je/Oeeff37OO++8XHHFFfmTP/mTrdbbRz7ykZx11lnZsGHDFs+pLTnvvPOy33775dBDD53SfrPVTFxbtuTee+/NbrvtluHhsUuxa8vs4dri2jJT+iaIbc1nP/vZKe/z+c9/PldeeeWmroDJxn2VUra4fCZcdNFFeeELX5glS5YkyYP+injBC16QTqeTJz7xibnzzjsfsu+3vvWtvOAFL8iCBQuSJCeddNKMlLm1k046aVOrxMaNG/O7v/u7ufLKK9PpdHLttddu2u7www/fFLAPOuignHjiiUmSJz3pSbnooouSJF//+tcfNM5h5cqVWbVqVb72ta/lH/7hHzYt32OPPZIkc+fO3dS6cdhhh+WCCy5Iktxyyy15xStekdtvvz0bNmzIox/96E37Pve5z828efMyb968POIRj8gdd9yRb3/72zn55JM3/Rzjx1y9enW+853v5GUve9mm/cfHFJ188sk5+eSTt6mOXve61+V1r3tdPvOZz+Q973lPPvaxj23TfmvXrs173/vefPGLX9ym7QfBjri2bIlrS39xbdk615apG5ggNtW/Wr/xjW/kb//2b/OZz3wm8+bNS5Lss88+m5qXk+S2227LUUcdlX333Te33Xbbg5bvvffeD8NP8VC11i1emMfLPb7dZHam5t1xE7t/zjrrrOy999659NJL0+12N13UkrEL27hOp7PpfafT2TQGpNvt5sILL9x00Rq3pX+XOXPmbFo+NDSU0dHRJMnv/d7v5Q1veENOPvnkXHzxxfmLv/iLTftM/Hcc32dL/57dbje77757Lr300m2rjIx1Z3z5y19Okofsd+qpp+ZNb3rTNh/ruuuuy4033phly5YlGfslcMwxx+Tiiy/OPvts96PWZrUdcW3Zkj333DMrV67MyMhIhoeHXVtmOdeWB3Nt2TH6ZozYokWLsmbNmi2u/+xnP5vzzz//IV+TXSh/9KMf5X/+z/+Zj3/845v+GkyS448/PpdccklWrFiRFStW5JJLLsnxxx+fvffeO4sWLcoVV1yRWmvOOeecPPvZz35Yfs7NnXDCCTnnnHNy9913J8mDug+25thjj80Xv/jF3H///Vm1alW+9KUvPVzFnLVWrlyZffbZJ51OJ//7f//vTRevbfXMZz4zH/nIRza9/+EPf5gkOfHEEx+0fLz7YEtWrFixqdv7U5/61FY/9+ijj86XvvSlrFu3LqtXr950sdttt91y4IEH5pxzzkkydtG+8sorf+ax3vGOd+TSSy/ddKGc+Jf7+eefn8c+9rFbLc+4X/iFX8iNN96Yn/zkJ/nJT36S/fffP9/61rf6+kI5E9eWLSmlbPq3TpJ//dd/dW3pE64tri07St8EsT322COHH354nv3sZ097QO273vWurF27Nr/zO7+T5z3veXnNa16TJFm8eHHe+MY35pRTTskpp5ySN77xjVm8eHGSsYGPZ5xxRo4//vg8+tGP3urYjx3lkEMOyVvf+tY85znPybJly3LGGWds876HHXZYXvSiF+Woo47KS1/60hxzzDGb1n3hC1/IwQcfnEsvvTQvetGLcsoppzwcxW/utNNOy6c//ekcf/zxufbaax8yWHpr/vqv/zpXXHFFjjzyyCxdujQf//jHk4yNK7rvvvtyxBFHZNmyZZu6G7bk7W9/e17+8pfnxBNP3KZf0EcccUROOumkLFu2LC95yUuydOnSTQNhzz777Hzyk5/MsmXLcvjhh+e8885LMja+4p3vfOdWj/2Rj3wkhx9+eJYtW5azzjprU9fBrbfemhe+8IWbtnvlK1+ZE044Iddcc00OPvjgfPKTn9zqsfvRTFxbkrEWgtNPPz3f/OY3c9RRR236P3PGGWfkE5/4RI4//vjcd999+bVf+7VplWFbubZMj2vLQ7m2bJ/Sej6szZVS6g033NC6GDPuwAMPzNq1a1sXY8YtWLBgp/y5t8Xq1auzaNGirF27Ns961rPyt3/7twM3IHomLViwIK4tOw/Xli1zbdmxFixYkFrrdvfVD8wYMRg0r3/963PVVVdl/fr1ednLXuZCCewQri2ziyAGs9TO3lwPPDxcW2aXvhkjBgAwaAQxAIBGBDEAgEYEMQCARmbF9BWllNOSnJYkCxcuPHwQHhgLAAy+73//+7XWut0NW7MiiE20dOnSetHFl7QuBgDAVu2266Lv1VqP2N79dU0CADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0IogBADQiiAEANCKIAQA0MiuCWCnltFLK5aWUy5cvX966OAAAM2JWBLFa60drrUfUWo9YsmRJ6+IAAMyIWRHEAAB2RoIYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjghgAQCOCGABAI4IYAEAjw60LAMDDo450U1evb10MGFxl+ocQxAAG1OgNd2fjlbemdmvrosBAKkMlu5Q586dzDEEMYEDV9SMZvWt1hg5Y3LooMJC6t65MptkuJogBDKi6cTRl3px0Fs1rXRQYSN050x9qb7A+wICqG0aTodalAH4WQQxgUG0YSRlymYfZzBkKMKDq+pFEEINZzRkKMIBqranrR5OhHXB/PfCwEcQABtFIN+l2Uzou8zCbOUMBBtFINxntahGDWU4QAxhAdbSbdGuiRQxmNWcowCDq1rEZ9TtaxGA2E8QABtFoN+nGVR5mOacowCDq1t5gfS1iMJsJYgADqHZrUmtSBDGYzQQxgEE02jVGDPqAIAYwiLq1d9ekIAazmSAGMIA2TV+haxJmNUEMYBCNjxHTIgazmiAGMIi6NUlStIjBrCaIAQyi0W5SWxcC2BpBDGAA1W5NNIbBrCeIAQyi0apFDPqAIAYwgOqq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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "schedules[1].draw(channels_to_plot=[pulse.DriveChannel(control_qubit),\n", + " pulse.DriveChannel(target_qubit),\n", + " control_channel,\n", + " pulse.MeasureChannel(control_qubit),\n", + " pulse.MeasureChannel(target_qubit)],\n", + " scaling=10.0, label=False, plot_range=(0, 700))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "cr_rabi_qobj = assemble(schedules, backend, meas_level=MeasLevel.KERNELED, \n", + " meas_return=MeasReturnType.AVERAGE, shots=shots)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "job = backend.run(cr_rabi_qobj)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'5df01b0e03329400119bf8c8'" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job.job_id()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job.status()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "cr_rabi_result = job.result(timeout=3600)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analyze the result" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "target_qubit_rabi_data = np.ones(exps, dtype=np.complex_)\n", + "control_qubit_rabi_data = np.ones(exps, dtype=np.complex_)\n", + "\n", + "for i in range(exps):\n", + " target_qubit_rabi_data[i] = cr_rabi_result.get_memory(i)[target_qubit]\n", + " control_qubit_rabi_data[i] = cr_rabi_result.get_memory(i)[control_qubit]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected below we can observe the oscillation of the measured signal of only the target qubit." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# auto-phase the output measurement signal\n", + "\n", + "def get_amplitude(vec):\n", + " i_signal = np.imag(vec)\n", + " r_signal = np.real(vec)\n", + "\n", + " mvec = [np.mean(r_signal), np.mean(i_signal)]\n", + "\n", + " src_mat = np.vstack((r_signal - mvec[0], i_signal - mvec[1])).T\n", + " (_, _, v_mat) = np.linalg.svd(src_mat)\n", + "\n", + " dvec = v_mat[0, 0:2]\n", + "\n", + " if dvec.dot(mvec) < 0:\n", + " dvec = -dvec\n", + "\n", + " return src_mat.dot(dvec)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.027191350692821387\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "target_rabi_amp_data = get_amplitude(target_qubit_rabi_data)*scale_factor\n", + "control_rabi_amp_data = get_amplitude(control_qubit_rabi_data)*scale_factor\n", + "\n", + "fit_func = lambda x,A,B,T,phi: (A*np.cos(2*np.pi*x/T+phi)+B)\n", + "\n", + "#Fit the data\n", + "fitparams, conv = curve_fit(fit_func, cr_amps, target_rabi_amp_data, [3.0,0.0,0.1,0])\n", + "\n", + "#get the pi amplitude\n", + "cr_pi_2_amp = (np.pi-fitparams[3])*fitparams[2]/4/np.pi\n", + "\n", + "plt.plot(cr_amps, fit_func(cr_amps, *fitparams), color='red')\n", + "plt.axvline(cr_pi_2_amp, color='black', linestyle='dashed')\n", + "plt.scatter(cr_amps, target_rabi_amp_data, label='target qubit')\n", + "plt.scatter(cr_amps, control_rabi_amp_data, label='control qubit')\n", + "plt.xlim(0, 0.2)\n", + "plt.ylim(-5, 5)\n", + "plt.legend()\n", + "plt.xlabel('CR pulse amplitude, a.u.', fontsize=20)\n", + "plt.ylabel('Signal, a.u.', fontsize=20)\n", + "plt.title('CR Rabi oscillation', fontsize=20)\n", + "\n", + "print(cr_pi_2_amp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the fit we obtain the CR Rabi oscillation frequency. We may use this to extract the amplitude of a CR π/2 pulse, which is the foundation of the `cx`(CNOT) gate in our systems. To see the pulse schedule for a `cx` gate look in the `defaults.circuit_instruction_map`" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "defaults.circuit_instruction_map.get('cx', (control_qubit, target_qubit)).draw(show_framechange_channels=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2019-08-22T01:29:36.602627Z", + "start_time": "2019-08-22T01:29:36.594016Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "

Version Information

Qiskit SoftwareVersion
Qiskit0.14.0
Terra0.11.0
Aer0.3.4
Ignis0.2.0
Aqua0.6.1
IBM Q Provider0.4.4
System information
Python3.7.4 (default, Aug 13 2019, 15:17:50) \n", + "[Clang 4.0.1 (tags/RELEASE_401/final)]
OSDarwin
CPUs4
Memory (Gb)16.0
Wed Dec 11 12:03:36 2019 EST
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

This code is a part of Qiskit

© Copyright IBM 2017, 2019.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import qiskit.tools.jupyter\n", + "%qiskit_version_table\n", + "%qiskit_copyright" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/qiskit/advanced/terra/5_pulse_schedules.ipynb b/qiskit/advanced/terra/5_pulse_schedules.ipynb old mode 100755 new mode 100644 index 993376c75..379711d4d --- a/qiskit/advanced/terra/5_pulse_schedules.ipynb +++ b/qiskit/advanced/terra/5_pulse_schedules.ipynb @@ -1,15 +1,10 @@ { "cells": [ { - "attachments": { - "qiskit_header.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAAEsCAAAAADS83BIAAA/bklEQVR4AezTAQEAAAQAIFf8P2kGqA9FwjJoC9oC2gLagraAtoC2oC2gLaAtaAtoC2gL2gLaAtqCtoC2gLaAtqAtoC2gLWgLaAtoC9oC2gLagraAtoC2oC2gLaAtoC1oC2gLaAvaAtoC2oK2M4C2gLaAtoC2oC2gLaAtaAtoC2gL2kKxdx9+UVxrA8f/kvfKM7O7s7uwS126VAsdVMAGVtQINqKoqAmJEWPvvaeaaoqSZjf2EkxiVyyxI0pn+zzv7AI7s9J2luFeyZ6vXWftv8+cczicIUi2cm1IXELG0BHjJ701fsTQjITYMF8GCIJ4I7OV6wbmzlq6c99vpy5fvX7rdsW9exW3b127Wn7q4L49K+aMTw5VAkG8MUi2dEDG9NVfnvj7zqPK2iaDhUUB1mLU1714VHHl1HcbZmeH0UAQ/2skWypgyPzdx649qGowY6csTa8e3Ti1a25GAAX/MwRBspVHTlx/6MbjWhO6hjXXPrp2aP3ESDn8DxAEyVYWWbDz9L2XRhTJ+PLemd1Tov7b5RIEydZ/1OaT92vN2B5LY9XTBxUV/zyparBge8y1909tHRNIwX8LQZBs6cjZP1W8MmEbbEPFsY8/nD159Iis9IysEaMnz1q84+err9qJ11xd8fN7AxRAEMR/I1t56qqTj/TYhrXq+PopGfFhfmpGTlMAlEzOqP1CYlLHLz7woJ3GDc/Obx6qBoIgejpbRea2P1+0E6Hl0aeT4oOUFLTF+EWNXFluQBsWBSyvrn+W5wsEQfRktorMXdeqBekZK8oOWpFT/2teOAMdkgdkbntsL/XET7eNyKur+GYiCZcgei5befqOazWsoNl9C7ISFqHNvWkMdEo+6BCLnBVJWfO/vSMot+HuF7ne0BMIgmRLx635i4/WWvnbwuy+Wlo53WiP72CeBjrBpO15ghzzXG/aJzKr5NdKC7aqu7l7EAMEQbKVnP+801WOaC03dubF+dK2mLPvoU3TjS8KQmlon3bo+vPVVuQ8GSkDAFobO37bNQO2YGsur4gCaREEyZbJ2ffYhC1Mf6/NDGGgWfgetGPr757YVpihY8CJ3HfApFVl16rMaPdlX2jGhAwqPdOILSyVh8YxIB2CINlSEatvNmAL48XStECa7zLrPLYw1zy8euLb9SXTxw8dzBk6bnrJ2s8Olt99YWCx2eWRfJy038Di4w3YwlCxMYYGiRAEyZYZd/AFtjD9sTDRD4RUeReQZ7Zvkbp1g3OL2yj1st7EosP9fB8Q0vYvPuoI9+WxyQxIgiBItsErbhlao7yxIsUXXqMa9n0dusBwvsgHXqPpX3JOj80M99dHUEAQJNtukw/+oRKbWZ/tzAyEthRx75xq6DLaq+sGa6AtbcrKWyZsVvXrMAX0IhT5nb2RSLbKty+3Fqn/bUKoDCjd8DklxTmhIEBpE+d8/48JO2R5cXxJtk4G7aECc/a+wGb6v4vV0DuEfnKxkn16dpsfSKv0L4dl4JbAneeesZXn9+jAQ5Fsdav/sbSUd3NRLAOge/fI7UdPH986sjACBCifqOx39/5RacA2TNXXDywf389PBh1RRMw6Z0A766NNYdAbzG/AZi/fAkntQodPwR3TarBZXRF4IpIt3f/LF9isYd9wPwB64L4nxuYYn/yQBU4obUTiyKJVnx0rv/Hg2QvO84e3yo99s+HdvLRofwV0SpO+sxabVX2fJIM3XpoVWzVGvFHZxhqwlWkgEJ6XrTz7aB3aWe5+ECUHoOIP1mOrhsODoZVXM5CpAyLiEtKyRuZyRmalJ8RH6jQKxw93jA5757oF7RpOjVTAf48iLCFUDmL9gbwDb1S2h5B3CgiPy5bJ+8OAdobDo/2A47u7CXkN3+q8XgPNKJkNTQujdgZtaIeXGdDOeGUqAz2vb8nu/WduV7OIyFbfOv3jrgUR4CrGirzKNyrbOuQZaCA8LFt5yXMr2lUt18mAo8irQ6EnJX28OH369Om4RkG2fWxavw7cxc7XU36LnrFow1aVekOPogZtvIFtXVuXDi5JRCHfNyjbUBSKBcKzslUsqmZb1qLyNWDn+wk6Mfyk6dOSo6vZ2r/0sgOKAqAA+Bd55/1lRrvaNRroOdlfvsCOPN87BLo2CoX6vUHZpqJQNhAela3iw1q0M54czIAdFf4XOvs7yZ6gS9nydfMXUxyaltFUS7tMymED2tVt84ceEvMrdu5AJHQlF4Xi3qBsU1AoEwhPylaxpKVa/XfRcuDIZApF8mN0dntUc7ZddOvVjM9WWK1MLlMoGEYmA44sYm8T2tXvDoSeoN1mxK4YNvpA5+JRgFW/QdkGoFAEEJ6TLV9tww4dBXJGpVarlarUF+isYjx/t3U5W+7zPs3VQku1Sob7BTiMHMB/fR3aNWzTguToBS/RFZVzKOiMzIS8R/AGZQsvkdcA7cuc1Coc/jVItorSlmprl/spvP38fDVaH2+1qv9ddHYz0x5g+8W2l25rwVy49mopmquWYRi1t9pHq/H19/NWaEpfol39eg1ITHseXXXSGzpzGHkfv1HZfuPCm6ZOYKvp8G9BspUXV6Pdq6UhurAQXVCAn73b4GPoxHo2zN6iCK3xApctR2avVtlSbWBQUEiYTvfBC7SrW+oNktJdQ9dd9odOROmx1QvfNyrboBpsVR9KsvWcbGUFlWhXsy4+OjoiIizI3q1GrV2MTmp2yMEtjsktLVcouWrVag1XbUBQUGhERHR03OpXaFc9TwUSiriHYtwKhU7kPsBm19LhjcoWMm9hs4phQLL1mGzp4f+gXe2mpP5xsTHhEaFct/4ajdY78ToKsNcyoTtay1WqvLUajV9AYFBoeHhMbPyApPXVaPcsnwHJ9HuK4jyMgU4wJV+cqfj909k0vGHZgrz485MVp/e+owCSrcdkSw28yqKNYfugpISB8THR4eFct4G+3kqZcnot8h4vUkC32dOVMd6aQNu9Njw6JnZgQlL6puZu2YpsGUgk7RW20XDks7Xv5I8sKFm/94QB26hMBOn1fLY8kq3HZBt83II2pm+y09OTEwZw99vIsCANI6fAC3zfeYWtLGf7gkS8gKIVmqCwvjGxcQMSktPTsz5qQBvL+XgKJOH7DF/zcE+uAniqvL1tL/Eh2RK9IVv1p0a0Mf86OisrIz01KSE21I9xbIjQTjxrwhYPi0BKFM34hsYmJKakZ2Rljfq2CW2MP+hAEt+hs5tjoK2CB+hsL8mW6AXZKkoaW25zU3JzhmdnpcXpVDTlBQ5M+NRPT/55rtyCaDwSDpLyomhVUFxaZvbwnJy3jhjQRr/CByQwCZ1UFtPQHsXCV+hkNMn2jUeypUc+Rxvrnfl548eNzor1VdDwGqVWF6LLLkfEpwtBcrTcNzpz9Li8vNmXzWhTVcBAtwW+QKEyb+iI9ggKPdWSbN90JNuIP1jksJWrp07PHxHtLaOgfdoSI6L5bDz0AJl332GTp09bet+KNtcSaeiuMhTaQ0HHZF+i0Lck2zccyVb5iQltGvbOK57Qz0cGHUv8HRGr1tDQA7xk3tHj5sz/6CXamL8LhG6ahkJLoXPrUCiPZPtGI9nKpjegjeXY0jlpGpkXdMK7qAHRejkDeobMJ/Htxb81oY3+PTl0C/0YBRZDV9agwN1/YbYXSbb/omzjbrdMbDdOCJZ7dXVxGSLW7lJAD5EHjFlzxYw2DxMp6I4JKHAcukSdQ4Gcf1+2j0m2/55sVV9Y0Kbmo0Eq6BIzuQqRvZYLPYZJ2lTJIsf6vQa64zjyXuiga+E1yPvlX5etwkKy/ddkKytobNlnESsHF0TuRcSGr32gx8gjdjWijf5tObgvmkUHdgy4YjLyzKH/tmznI8n2X5Nt+BW0sRyNpF2LatQjRLYiH3oOFfqDHm2u9wX3bUXebyIXbWzWQPdQA9+aU7p+z9ZFM3ISAqn/fbb9npJs/zXZMuvNyGHvuDyRDNlmP08qEHpQ3CUzciw7GHAX88qNU1pykfdMBm0w8Q5x0Al6zLZzjShg+XtpdPezjYwX0IKQLJ4HQhHxnH7DZn1iQt7ifgKhQPSybKmMSrRpmEmDi+ism4j4cA70IHrCc7R5lUmBmwqR9we46hryJnd6ZFMTdChmwzNsxxW+XPeyLbAi74rGuU7kKUHgPHblJyB6Wbaq71nkWH73BpcFLLcgGo9HQg9ifjQgh/3JB9x0RhigW7EfcS9b3Q/YoTJdN7LNMSLvXhB4arYkW3pMPdrol4LrqNRyRHxWCj1pdjXa6CfJwC1yAzo8ocBV8ip0qHUr2+Ja7ETtXLezTWtA3rNI8NBsSbb8Vlz9DBBBW2JAtJzvDz0or6Wf037gllTkfePmfsh+4rNVHMQunI1zL9u4KuTVDASPzZZkK5tkQDvDEhBj4DFEfLmehp4zpwbtjLPk4I53kVfk7utEZ8scwS4ZJruTbchD5DUNAc/NlmSrPYHNLGdUIIL67TpE65+DoccwBwzY7I9AcMc+5EWB6wYi7zOx2cqPoQvM08Rnq72OPNMY8NxsSbayAjO2aCoBMaJsVdTvVUJPKarCFta5cnDDXXR4DGK8QodrYrNdji6xzhSbrVIYHzsdPDhbkq32HLZiHw8HERRjKxHxTh70kBF3rNiqPADE80PejyDGQXSwqMVlG6VHZ+ZH58rO3G3C17HF4rKVHUSBEvDgbEm2svEmdGArskGEsD2IqP9R20PV3rQI4imQgWhjkLcdxPgUeUPFZXschY7nhtNg55u07jE6eeknKtuvUWAteHK2JFv1z2hjNTd/8Wi6mOSH3UPEB4XQEwrvWdHGaEabExoQbQ3yloMY65H3oahsU1Hg5BAQokYdMKND5UAQk+0WFPgYxGWbPanVA3TYOUkgA4jeky01qBY55kNrsFntdh24LGgti2g8GgySC9v5ikW7VWUm5OiH090612IeiPEB8r4Rle1m5G2DNtIrsMWjGBCTbSkK7KdEZsu7QvYk/wuyZbahTeNE7Q/YTF8+gXY5+vSriPjkPZAYM/2yHpv9pM2pQ5svlCDWSeTlgxgzkXdQVLYP0OGiDNpS7mHR5m44iMn2bRZ5x+Xg0dmSbMPuI8d60RtCf8Fm1tofM8FFvh+YEM1nYkBKspxfaq3Y7HgsML9bkPMsFsT6C3kjQIzxyDsnJttkdKgOg3ZNNCHidR2IyXasGXnlavDobEm28iIWOYYSW8Fl2MJcvW8QBS5JOIuIL1aBdNR5ZTVmbLE/hgKYqUcO+54CRLqPvFQQIxt518Vk+zY6/AAdyLfgZT8Qk+3gJuTd8gPPzpZkqz5iL+JBOHD8t5kc4Vb9OFYDLvCe04RovZwEEgmd83utI1r9Fh1wAm6yyDmrBZFeSZLtYzHZLkGHUuhI4RkfEJPtgBrkPQoFz86WZEsl1iLH+ElLg4X8/clUe2nJABq6FPcbItbukIMEvIfuuNNkwVa3Z7SEusVoTySTAnEskmRbLyJbYXjDpTrdIuIp8qriwMOzJdkqStGmfjg0U/T72oCtrPrKX4tju0qFKahGxOvDoLs0mesv1hpZbFX3aT8FNMuoRpuNDIjijZJki7SIbA+gQ6RE2QZUIK8+FTw9W5Ktz2l7n5fU/PdMuog8s/7Jb+8mqaEzfb9GxIbO1nm97KAzutFbymsNVnQwnRingVbMSQtyrvqDKOESZesnIttf0WG0NNmqypFnGA6eni3JlkqpRY5hLfDogOK/UcBseHVh5+S+jHOIArLRTxGxYmLn1ToDIW3avLKKemGzaD47zY8G3vsGe8pDaRAjQaJso0Vk+xk6LJEm2/3Is0wCj8+WZKtYhDav0kBIETT7vAUFrMbGJye3FQzwea3BPnZeoTtt6Zf5dZVt89V2wH3LFi8dkvXe11erDSYWBeoP5vvLQah/JdqsYcS1J1G2qSKyXYMOP0qS7VIUmAMkW5Kt9xF7lReU4EyunfBzDTqxGJpe/v398vGxPv/5Tx8bPkQq6w4iPpwF7XOq3BH7fxQhg2fvPH6/1mC2opNHe4ZpZeCMPmpBznkNiDFcomwzRGQ7Hx0aEyXIdpwVne7fJFuSbUwlcgzroQ3aJ3X1X0Z0xpr1jVVXftsya2hfb8rLzl5iwCoroulYaFfZetlRqpCMgmXfnv2n1mC0sOis+khxtIoGAeEouS6FAhFSJcq2n4hshyDvH/9uZxtf99peSZItyTbfXk39MGgP4z9qx3UTvo61GAx1z68f+WL1rJyUcB/aNtZNvICIzxZBJ7jLvEMTRsxY9slvfz2u1evNFmyj+vfSFI0C2pNcgzbz5CBCjETZhorIFp4h71xMN7PVViDvayDZkmxb/5ewN7XQLkrGhI/bfKkO28GaTQZ9Y82jmxd//XLr0tKfWETLpTRfH0ZBQTOaYbx9A0P7xqWOnFT0wYZPDpy+8ehVg95gMrPYnsc/l2QEKGQUtEt9yYqc75UgQqBE2fqIyXYPClj2xXcnW+oo8o7SJFsOyZa+jBzTPmiLVqo1Go2PWqkKHvzuj3easAOs1WwyGgwm5BgfXf/70oVTx+1OnLl06a8bFQ+f19Q3NDUZjEazhcWOvDq3dXKcVqlS+2i0GrVS5gVt7DIi504QiKCQJlsriMk2A51Yz64fpXE32y0ocEVGsuWQbCNqkKOfC69hvAN0QUGBfhqtj1qtZOTqiGEL912vwy6xVqvV0srKYbEr5qendxQm+zMKRqX29tFo/AKCgoICNAwFziY3IccwmAIRDJJkWycqW/gOX2e9+tWHeTG06Gyno5PlJFsOyXacvaraJBDwUgWERUZGhAUHBQZw3Wq8vVUMw8hpRpcybdPhe3UoHePzP75amBOjkdMKhlHaotVqfAMCg4LDIiL7hgeqKBCIeoY24o6UqpQk2yfisg2qwXYZrn6xIIMRkW2qHp0Y+pFsSbYAq5pvBVq+WSYwOr5fbEwU160uKMBfq9VqfLzVKiVD0wAyRh2YMmn5vvNPGljsFv2La79tmzs8WssoZF5AyRS28bGtWj//wCBdWEREVGxs//gYnQocmAtW5HzCgAh3kZcNYoxC3i1x2cI0FjtkOv1usIvZ6h7ja/6gSLYkW/gNOeYfoQWliUpKSU4cOCA2NioiPITrNsDfV+utUshoaN3ZRMkYpXd4+qSSHT9fvFtjFJmvqfaf8oMfL56aHe2vZmQ0/wYikClUaq3WPyAgSBcabq92YEJyalIsv1fqEyNyLmpBhD+RNxHEmI68SyKzhXksdoK9UEi7kG15ObbxAcmWZKu6KzzTXB6WnDlkUHpaStJA7n7bNzwiXBekVStkjmIFKJmcUWlC4gZNmLNs+76jf9x6WCncUCxkNdS9eHznr9/3f7Rm3qTMfmFaNWMLludol5LJ1dogXTh3r42J7TcwISUtfVBmZkq4HOzm6pHzrC+IcBR5c0CMEuT9JDZbeNeKnaqYTnWRbfuaokm2Hp9tTANymsbZo43MzMkZMSxrSHpacuKAeO5+GxqgllPgXGx7+dpmpb5hcYkZ2bmTp89774OV6+3WLil5r3hG/ujsQUlxEf4+ahXDyPlc22cbL6v9Q6Ni4/rbqx2SNXRETm5mtAI4Q2qRY8miwXUbkbfY7cPjVorOFrLvY+fKw93JFk+TbD0+29EscirjAGR9c96aOG5U7sgRQ7luU1MGRgWqbLdZEIGiKa8+IJMpmBYKhVwmk9EUBWJ4Aa0K7DswOTU9Y0j2iJG5o8ZNnJwTLQMIe8gip0gOrstH3mYQYw/y8sRnC6rdJuxU1UgXs31exCJvHsnW07MtQQ573RvCxr1dWJD/1oRxuVy4wwYPCPGhwQvE8qLkcpWPigK38eV6B/fPGMZFmzs2b1J+QeHMcZFAN69JbWDAdVHI+wrE2I+8cBHZ8kI312BnLONdyrZ6IOxFXl04ydbDs92DHPMvqhHvvlNcNLNwSv7EvLwxWXEad8OjlT6+umA1SMM7asjovLwJ+QUzZs4ufufdXNWXJuTsV4EIgnJugBj/CMIBUdny1IV772DH6vu7kG1DBoDvC+QdIdl6eLZH7dmWTV9aurBkfnHR2zOmT84MlYP7VIFhUf3DFCARefCgidNnvF1UvKBkYenSwr1G5JR7gwin0IENcPMd7E+Jz5YXMHFbuQnbd1/ZZbaGkcCZhgKFJFuPzlZxFTmW31esXLZk8fvvLJg/MzMIukUWHJ80ZFAISMcvY/q8+e8uLF2ybOWKg2bkPAoGEbYi7y1wXSHydriXLU+VPX/3iccstlHaVbbmCW2fT1KtI9l6crb+j5Fj/nX9hrWrlixdWpIbBN1E+aUNHf3WEA1IyDe7ZOnS5avXbVi/39wy1xNhKvJ2g+v2Iu9t97MV8h5Ssq8anVR5d54tW9je08B+Itl6crYRjc2D5O3bNq/fuG5qGHSfKnnitOLiZBqkFFKwZtOmLdt3fG9EjjGTcnNN6rp7ByyzkdJkayMbdRaFFnSebQm0WoIC+SRbD842iUWOoezT3bs+WplGgQTo8JnvLds0LwKklbzs448++eyHRrQZR7v7XIIMt47FuAASZMvLb0TewU6zXQEO8uvIq/Qj2Xputjlo0/jL119/+24gSEPz9sadX32TrwBp+RV/8+2+n2rRplDu7m6nMrd2V82XNlsYjrx6eSfZbgOBwVbk7SPZem62+WhTf/jnsqlykAg9as+Bo5e/HQQSoyft/+VwDdosVIAIASZ0sEaDawaw6GDylzhb+BZ5KR1newycfIwCY0m2HpvtbLSpO3V0KkgnduOl68+q1mpBahOPnmrOdjkDYvyKvI/ANV8h7yBInW1QnbA/V5+4p32OvCcakq2nZvse2jSULwAJyd6+2mDGCzkgudmXatFmKyMud+Tp48AViUbkTZE8WziBDjNdzhbyUeBzkq2nZrscbZq+VIKU+h2w9bHZD6Qm/6gRbbaJy1b+CnlXFNA15S3k1Sulz1bQZqnr2cIh5LHDSbYemu0ytKkZBpKiZt5HxL/zQHKpL9DmS6XoSHjboWufosA2kD7bYnSYLyLbiEbkPVCRbD04W+sVNUgr7HMzonlPMEiNOW9Fzrcis9XVIo8dJWpUjZUad7IdUa7renZiN0lEtrAIBXaSbD0z2+3IsRwGqb11DRFvTwHJlZndyRZKUKBuOHRuTCMKzAI3si0y4TVf6Ng+dBgsJlv6CvKsg0m2HpntOnu25yiQWOAOA6L16yiQ2jGLW9nSV1HAOAU6U2RGgXJwI9sNXb3Hw210iBKTLaRZkHebIdl6YrZL0eZFAkht1CVEfDSbBmnFPEObr5Ug0mAWBdj3oWMrUIjNEJ8tcwDtTjHQAa0VW9XIRGULu1BgA8nWc5ekTJ+B1DTrGhFxf3+Q1sdGtNnOgFhfopNjA6B9aWfQydcgOtvAS9jiRiK07wd02AfisvV5jDxzMsnWA7NdgnYNM0Bq2acR8XmJHKQ0vRHttonPNuAlOrHs1UFbkd+z6KTCT3S28Q/QwbiYgnaUIm+yyGxhAgpclbmT7TmSba/Odh42q8wDiSmX1iDi4XSQ0LhKbLaaAdHSG9BZw7cFGueyCw8Y0FllXxCbLV2BQmdioI08CzoYvMVmC7+gwAp3sv2CZNursy3EFlVTQWJphxCxZokSJFP0ClssUoB4Iwz4OtPJJTNyEoIUusTcwpUXrPi6hhQQnS0k1qAQe6pQCUK5Z1FgG4jONrQeecb+bmRbig5ly3lToFcg2eZhK/1aNUhK/n4lIp7MBolodxmx1Sw5uGGSBcUxjwI3soX0enRW9/nUrEg5AKjic+ddRqHnPuKzhRIUKKfEZzse23UMegWS7RB0sJzMAEkNKEPExnUakERuuRUd8mTgjtkozixwK1vIbsK22Mqbr7CNQnAjW6ocBRaJzzaWZNurs40zIa9mUyhIiJrzEBEv5YIE4j83IM+cTYNbSszoutrJ4Ga2kGtE15SBO9lCkhl5TTGis4U/Sba9OdvgKhRg7y0KAulEfW1FNGwPgO6KWP2CdQoqiQL3ZNxDV/3ZF9zOFka/RFcclLuXLWxFgTPis023kmx7cbbeFejEWvFhOEhm2h1EvDYRumfgtqdWdPI4HNyl3ouu2aWAbmQLuoPYtRMMuJmt6iEKzBedLXxOsu3F2cJ55FiuPcZW7LM9GTRII+QTM6L5szBwnzp33ysWW909bUbOVR9w38SX2LUXEwDcypY3ux47x+5WgrvZwlgUqA8Xna1/Jcm2F2f7A3JMXw44jjzjqbkRIIm8K/ZHy4GbqITlf5mQtz96txE5B1XQDbrttdi5+wuU0O1sIfJs579INoD72cJ+597EZgtBB0i2vTfbVcixnAPlgofIYyt/nBIM3ee/1YDI7osGN8jiSk7Uo8C1KTI4ZUHODga6RTX3GnasPJ8CkCBboAo7/mVerFdBt7LV1aLATJHZ2kx4RrLtrdlOsVf6UAcQuv6RkRWU+7xs3gAfRgbdMvwci/hkgRzEoBTK4BFrL9Sz6GA13FjkDxB4l0XOAgV0V3ZZI7bDenVPNvDczJaX83MDtuPMFAVA97KFeShQoxOfLWjyFn95sZpk2wuzTTMhp3aIrZb47Q8NVhR4eXptbpiKocFt3itqEPFgshfHxWQZbdrcb+6YUMBiuF4aApykantbOTR0H9VvxvYztcgznFk/SgNSU4zcfqYSeYY/dk2PBHcRJFt+aUI/G+xiV9/Sm1HI8vC3Zbl91YycgnZ5CUFbg46yiFWlSq/XQVsyRhmUPnfvX3UsCrCmpgslgWA3XY+cV3EgmfHo8Dn0GN+M0flFJXMmj0yNlgPRXSRb+hxyjLuhRdCsYzUGKzqxPP5964xUHdcuLYiV+6yPF6cPp+MUmUVViHgik7vOcWGfNvVSNKP07TduedmdJnRmMTzb/5YGWmw1IudvX5BMqjDb3oEg2cKn9jjOyPmQ0zdcaTSy+JrGO4e3zMyO0KpsN94+LcV6dd1t4k8sYu0aHz7bPvxroQ/QCqVPcMpby74rr2axTbOvTi/qJ4NW9DELcvYpSbaejWQ7C22eRICAduyntxqNVmzD8Kz8+7Uzh/ULUMplMrCV2GW2suLHiHguB/ibLfeK//TxomkZ4xc7ZMqyL049qLPi61iz4eXZ5RkMCAQ/spe9UEGy9Wwk20QDcprywFnA6J3ltQYzi+2wvrxz5uuVc8alxgR6q5QKhZymKQBhtEJx+6yI+i0BtqopSqZQMEq1Ljpl7OxVe4/feG7E9liM+keHPkhlwFluA3LMOTTJ1rORbL0fIMewCdpQp5X+9qDROV0h1vjy9sXDX20qnTVpZHq/0CA/jVqlUioZjqIVwzDKwgpEvDItKCw2dVhe0aJNXx2+eLtKz2IHrEb9y4t7Cvq20+YqA3IehYNnZ0uQbGF/84YLBbSDCh21+sj9JoPZip0yNdVUPrh26fTBn775YufmDcsXlTb7cO2Wzbt/eWyLsfJ+ZXWDkcXOsGajvrL805mJKmiP/IQFOYdUnp4tQbItQZsX/aEdXgC0f+KEVfuvVjYZTFYWe4zVYtRXVxzbNTc7xp+hwAvaEfUMbZYqQDopJFuiN2aboUeOfh60RfmERPYN1/lptCFp+at+KH9arzeYLdLGy3LBGhpf3jqya/bQ2OCAwLCo2Pi4MC0NbRXqkWPMpkE6gSRbojdm6/83csxl8Dp5YMzA/rHREeGhQUH+PoxCGRibW7y57OLD2kaD0WTp5r2XZS1cr031T/48uHvhxJQwrcrHLygkIjI6Nn5AQkpy/xAlBa/53oScm0EgpVfY6tJCgfFAEG9wtswOe0VPIkGIUoUnpackDIyLjYmMCNUFBfhrtSoF9PECJiRpwvvb9l+4/ayuUW/rV0zArNViMRkN+sa6Z7cv/LxncUF6hDcFXn1opdYvKCg0PCIqNm5AQnJa+uCsjBgfGoR091nkfMyAlC5gu34BgniDs6XHWpCjLwIBdezgYZkZ6SmJAwfExUaFhwUHaFVyCgRobUzGmKLlu/YdvnDjEbfa1NikNxi4ik1ms4VnNptNHINB36RvaqitfHLj/KF9O5cVjcmI8ZWDEC1TB4RExtqqTUrPGJI1dGTuiIHewnALmuzhT5SBlPaSbIlemC2EVCDH/AufiDxq5LjcnGFZQzLSkxMGxMWE+avl0CHGJyg6eei4KUULV2ze8cXXPx86cupcizPHDh0q+2bvrk0r3p8zNW9EalywDwMd8pKrdVEDElPSMzKzR+bmjs2bPLafGhx+MCPnQRhIaibJluiN2TIfo83zeGgmC86ZUjBxbG7uyKFZg9KT40PUNIhDyVvQjiL/83//BzLaC7oi84lIGJw9PCd37PhJBQUzZ02IlEOzqCcscvYqQVLUnyRbohdmS482IcewBOyY1KLimVMLJueNG507YnC/QAVIwItWqDUB/gy4QBGcOHzM+An5BdNnFs0rmT/Uuzn2EgNyLJNkIK00K8mW6H3ZQuA15FjLfWx9+U4sfX/+vKJCLtwJI/trQCKU0i8oNEonB5doE0blz+CiXfDeBx8unxpKA4DyrAU5t4NBap+QbIlemC2zFh37kkPmrl7y4aL35hXPmTkp0Rsk48XoouISEwPBRT4Jk4sXvL/ow6UrV298P4oGGFGHNlsYkBqzwUSyJXpdtlRKLXLMZTSEfLB1w9pVS5eULpybqQUpyYIGpAwZmaoAV2mGFH+4YvXajZu37l4RDdRX9rYahlAgvcRyki3R27IF1c9oU5WsWfzZ7u1bNm9Yt7wgDCTmmzRibH5BMLguZPLqzVt37P7k86/W+cU+RZsTPtATqGnbDlaYSLZEb8pWNsmMHOMnM3/86vPPPtmza02WHKQm7zehsPiDMWK6k/8/e/fh0NS993H8H3nuvf1mgmAAARdOcNGiRdy7tigWtO7Zwa3bqrUW9x5VXGC0roqrqFVcOCpOlkzDDPOQ9XnOyCEhhhDUXPTe8+o+g5P8ct4c8supDl63/7fEI0nHTy/c3gCWeaaSPEbRI8ymM0kkH3a21OEBONVXTp86eSLp6K99yAOCv1qyetOm/gpqhZ5rjp88dfrMuT8rwXnekQQSiZStKt4MliXn0uVLF85v6UqeoByyZteh86taV16nX1MupV65km0By7JKTRKJlK1Vl2xwmIe3b9082p08o+vikxfTH072otbovC/t9t2HdeAU9CaRRCJlq14jXM7KHj+6PZY8RBn9x5OC+vNh1CqRqRlPXguPbquaJBIp20bdcsExFeUekJOn9Nhb2oDauT7UKgnZhQ3g6PqRRCJla6NaZgKHKYklj5FNfQ4g7TNqldG59eCYN6pJIpGytRPyHLyqSPKcjjuNgGGlP7VG/zzwXoWSPYlEylb1gwGcuq/Ig8bnA3gcJaNWGKEDx/iTmiQSKdsmgu+C07BPSZ6jSWEAy4Zgcp/i12pwMrpSUxKJlK0irh6coijyoOnZALLHKMhtEZlmsJh5SpJIpGwd+J62gGW6HkKeozleB2B/CLmr83kGnCv+5EgikbKVRb4Gx/hHiJw8ZuIzC6CLVpNb5CFJ9eCUj5bTe7IrOfkr+oCMWXssOTmSWiMxOXkUuUO5IGm2jDhHkpOHk6OOycnJIcQZeXB1MP2PGfszO/Cff+zZknqtQej2wgA1eYrX/ioAx3uRO9SfWa+1xu1qegvB3ZroSpwCYAV9OJLAiaPWqAYWkjsmAxhNHAaYQ45CAXxGrHY1wF7635IMztcffbbU6RZ45owpGhl5yNBHFkA/w5taJNdMyzCBl9GN3kYamnj9AWY7E57MNgHAcjeyjQBwj/6nzMJ/S7byCZUQVO0IbUeeodhYDuBSP2qJz6f7qiGonqL46LJd+uDBTGrZVWDToEGD/DyTbRSAfm5kKysC1tBHoPuDB3/Qe/EXsNHlwD948EDxUWRL6s0NEJif/BDioXDD75iA+u/bkysyn57LMk0QGA+r6W2zNTM2r/6T2e5y7zD5wLdk856zpV5zu5Eb2ZJm+lD6GPQFcui9KGxpDAGoPo5sqWOaBVam9G+7tpORByx/DeBOBDVP0T50WYYRor8H0Ftne5XsfXjZ6j2arY3LbFvBb8a8eR3+G7Kt/i/KVj68CI1Md37sr1HRe9ct1QAYVwZQM9QBkeufG9GoLFb9EWa7978y26n1ACKpzYT/x7JVfETZkiq+DjamrB3jgn0U9J4tygfwZKharXDSrKbntGSdBTbMr+3Jo9mqyYl2dutlJHK5i6zJ0keOh/F2L1uFwv1TTi1762y9W8hWriZH3jKii3Carasfy5RKcpMPiZodt0VOs3X/9XM/2+Fvk626jbIln0QD7FXfWDU0yEdJ71PwOQawHIiLHhPWQdXkvNeETNr51Ah7xvOdyXPZDtyUWmF6emyRkqy0Wm0U9fy9EjU3pxKrd3KRpS59nZIaef87+aW59EpCH7KaqdUmkCr+hcGceTKUeLtP5gJ4zH6xL4mjWXu/HOw+46mJg1qtAbjPbmYtYcr+dKY+ff9kEiVqtWOI+i757egbp1yvAzpU/7W5Owm82a8SToJorXY3cXqxCwPfyNZ7VYoO+gsj7bLdp9VOJM4PWu0ydoMco/HZsS7UyPfXGzqY8hL11+Lj44PInmbJIz2YlxeiyYmIXXcZc/7mYJrBDRJnsla7k6z2iuNDFLYnh4H+0dFQsurMPvQQirqsR9k16yOfpL1pBGrYFTuItUOrFQeqP7vMl1gyfix7n65EzY04YoUeL7LU3lurIJE4rMbGge/J/kN8Sgu12lVENFB7uR7A7+waOREt02rjSeDHLgojznatdgpRj/i9WrWwZvmpHEtxys8hbZEthaSZ0YSl8uqqkZ00ahm9N3GZFsDUYKzLPTreX0Y8RbuAPrG7Mxg0ZcmIkHsu2xVGCO6Jgw1gWpdy8I6rKNoAXnpnsur/HIK6eSTYAdynA+DVziJOHkTLifWVHlaJarJTAVEcsdqfgFWyr93FWHnEDNQ7ZjtcD17ZCGs9ACaQYBWQT5zBALo5Ztv1b/Asi23ZvgaWEucEkEJ/gFfRWGKcDlZnyMGIUlilhZCj6Qx4+aHbgQfEWWN3vSwClhHvJzMExr3yxnexCI8ygnfah98Iomxi5dhmv8cC6CD+aBsbUglekpKmGMG705Hs6SH6migSQA8SHAFSiWgSGimJKAU4QYJOAIYTJwv4mXYYAfgQa0g+BJWT2iJbWVQuHFmq722fOiDwvaXre6IOVrq1ITJSevt3HfrjqTwT3lAYrSZPZau8woV2+2yWBaiMasx25h0w+Uaw1vVrgCm/DqzTJIitByzZZ+/UADhoy3YaUKYDyxj6ZrZhVYD5yVUd33/HZrPtkQtWQSFY2SG2bI8Db2a7VAe81oNlmNK6bHvrwGLyTbDMdJ7tYkBXBlZNEPE+NwLlSQl7ud5/dKjWCKAhPcsA4K6cmloGTkkZ8HCHy2w3g1V+txisNbZsR+WDyTOCtaEV2U5P558da024QXz9Tnok2x2ANdvvjID5xen0egC/tEG2pIgrgxPmwtSEaeEd/bxV795uYHINRExCaI+R3yWm6+GM/od25LFs4wHzFhURDS8AHjdmm/N4nIzUCxmg5nrJXDXJhr4CLAOFOMqAjHAi8kkCMEbMtrQyIZgo8Ih4OeoXEaEDdkdERAQR0SngVV8i6rnKiOs+ZBMeEVEDbGQ30xDReYBZpSHSrGGA043nVxJQlH7xjEO2RaXxPkRdd1uAXEWrsk0GcHWAnJTRGUVOsy3Qr/In6vIHxDunlJnAFV9ifQuYIsneQyBtgjdR8AmIDTYKqAUaVgYRdfilrshVtiFGYM9AGVvQM8DYrzHbnL+GEam+0QN1nYgoOCJiP1DIDldfV9nmPOJev28ZoOqGbraKZMPzAcun1HTga4EEYeCdZKuJiFgGIJLdgFxkqzVBd//SBTVRVwa43YOIOlwAzP3bIFtSLa1ubNXSNN2SW4k/TAgL9vNVy+ntKVbo7Mu886LK4TAGWNVtbE/vlu3DUTYO2bYvAxYTr7cBmNmYrT9xlgAwCLH2tQDbiLMJyFQT7yzwUMwW84l3CbB42x1GkAfEEm/cCXWzU1IjActw4o0GMExcjWv2oYjZ6vsTby6Ama3JtrsROEo83wyn2eLLxiL1xBkIIJh414B1ZK97VroPceQZb3yPTADMw4g3weQqW4phNhMvrAGIb8z2pkpYC3GhbW8X2WZpiLMcQIMQaziATc1MSTnNljVFnJJykS3SR9huUb0jI95d4GJbZEteW+vAM+kKqwxwwBTcPrI6NrJnkL+vl1ouo1aT971nRrMsTMUL8R0ukxhI75itPYeefgEy5LaPazLFbDcQrx1ju+HvuvUqGswA40jQ0wJMtGZbI7f11s8xWy8Ag1r+ACgdSCKrE8BtcfUjNTnJ9qDdc8xoTba7gcoAEkx3mm2e3Vp+ywVAIQk2v3FOBvmTYAWgI3tqPZBIVjddZkuhZHUbSGzMdoYt0J3uZ7ueeL4G4JZtkH73QLa5viToa4ElnATDAHzaFtmS5jAjZPtk8dpruuoGJ3FVZt5IWr9wUmRo18AAjY+3WiWXkysyuVLt5dM+ILBz6KANOjTDzFRmn1k07Z5RqPZsV/JgttfEQllx4mUSwHQSZANHSLAP+JtYE4E6GVkVAmus2T4kQTCAaMdsSbxz0GW2ajMwiaxiAaNSWO1s12pxJ9Z3gEnhZraOZ3Afp9mKXYaLn/UkAM9sX/kJOTcFQDvHT4VHk9VOl9naHAOuN2Yrnv0XgBT3s40jQZ7tu8ZB4L4Hst1NVguAXLKSNwBz2yRbCjpt7fbhCM3wdVfyK+tNcMaoL3iYqt3508K4L4Z9GhrSMTgoIMBfo9G05/i2Z//NLyAgMDi4a6/+g8fFzFm6MflS+qtKI5yxNFSXZiTP79suylptw5+hsnfOtvaljUNPBbZC6VMA4eJMsu0CcZgEa6wdLBYL5fwFJDXOJFsZgHlvZHsGMO6NUrnOtr94oRaLCRNXu/7McZRQptvZ5gPryaq5mWRBAICJ1u8MVSTYD5wg5yYCaE92xgPoTFbb3cz2AHDTNpNMgt+Au+5nG2u7cB8kwS9Argey/ZmstgIpJMoENrVNttTlnNCtOTO2HXmHLzj6SKdnTGiWhdGXFGQ9TEs9d/Lo/j1b1vMSduzff/jE2Ss30l/kv66sc7W7oa4iN3VDdGcZeUc/FzY03OgjVuuRKSlvC5D/wiobQJxDtldt2a60drAfqH0hqgHuOWZb7yzb7pVgGV4mze7cfLZfA9CQVSCAaPey7QtgpPvZKkzA9+5l217MNhzAKOJ4Zb8ZGo34YcPR8ykp6Y7ZLgKgcDdbr9hl20+mpKTkO8t2z1tle8OW7RoPZ3se0L8QMcDZNsqWnUhkhKCKF7YnIlnQiGXJD4sr6xrMeO9qy3Ku7Z7VV02s9nPzLeA03I6Qkyez7QsH8S1n+yeaeuVWtjTkGQTGrd7NZbvCPtsAAEvcz3am+9l2BfBdK7OlVKA4htv+MlDoT00seA6RQ7YJAOTuZavZUgHRx5jtEzR1u62ypc7WblH5S6CMeAGD5+++9EJXWcMYLXh/6g/GiP+boMz/p3LwmJtitZ7KNgiAdr2dyJazPQ7krrez2L1sST79WA54qc1lO9cx25nuZ/ul+9n6vE22vqkAmOxyAOZRJBJHBob7F09otTcds13qdrbKGwAqbp3VarXZH2W2fwEZ6+3Mb7NsqfPZemtWSb1UJFJ1GTZv07n0vFIuXvPb1euw15NPyUrZI7HOWu2lPjLyXLZiMV+TI9fZ/gzcIXtuZCvSRC3PBTC1mWyHAAghq54APncv288B9LNm+0XL2VI5sKy12ZLyGASOvzb9EAuQFOj8ve0UcYFjtrmO2W4ETAtUxDnQqmzXvq9se7aU7UmX2R4ATpO9tsuWgrW14BlujmxHTfiFTfh+S/L1jDxdub6mjjGa3OnXYjY21Nfoy3V5OgNsGjYGk8B72PUG8OrOhMrI09neB9a0MttpQMVbZCvy0QMHmsk2AMAY+9kcjXvZzrDepqO2ALPdyPYhkNjqbAen6PccO7v7u2HkYB2gk5HzbCMADHoj26VAtWO2j8TH1KpsnwB73ke2AwBEucz2d+C6y2yXAk8/lGwpeF8VeOa8b/2cZKQO7DcyLn5j4umrD14W6MrKK/RVVbW1dUw90yBgGKa+trZar68oLyspznmclnJky5Jvxgz4+m8TRMa0gTLiyDTzss3gVR/qSuTxbI8BqST6zK1sw+2newNC3M1WTlaHgNRmsiUdsJJsp1khucz2V7LaD5QQp9h2Gu1xke1p4KmMBKPdzDYRRRpy6gKQ6nhxFflZ7G6F/F3MNgaAP/HUjJCtygD8QIJj7mebYnuos94l23Z2r/mfTrPdZDvqIKfZTgAagsmqa4e2zZZ8/51t7av+1AgNNUvt3yNy7MTJsbMW/bD8p4Qt2347xDu4a8uWX1cv/2HBjNhJE0YN+ax7ezkJYm6KN0bp/xyuIo7P8OR68MyvVmjoP5BtuBn4Uhx34wl1C9mKy66TwPueLtK9bL/KH2b7JGNfc9kuBSoDiRdcBfzbdbbP1MTrYwA2iU82Uy7ejNh8thMAzCfBYfey7Q/sJedOAX+TYLtjtnQOKPMjXlCFmG04Gu9N+xJCtrI624dSWe5nuwNgOhLv9LtkSzrgMvH8apxmuwDAEOKtd5qt7AmQTIKAzNywts2WvKY9YMAzPvm+m5Kc+0QV2DusW7Cft0JBn/zrH//8178++eQTIvZv//rXP//5j39+QkovTWDX0L6d231CPNmII09Lq+tqSp7vjVARS9555iMjeMzfs73ovWWbFmwTRJxXjT0dBcrjiDO2FkhoKVsx9WQNsQIuAmVezWeb23iYBWYw3xCnZ6WYjJNsVTnA3VBihaUDmUrX2ZovdiLWkFygXnheGwBsU3C5/W56M9taMVt6BNTwD8J7g9m9bMcBzIIhPbp3795FQU2tBUzCCT2p7o1sBwG4LzyjR2YxW3UJUDqYWJGlFiFbegBk8bvK9xpcZ7vSLtsYABc0RKRca3qnbE+L03TBt02N2UbbZdvHDDwOIdaMBqfZ0ngAu7yI1Yl78WRtmy2pRlyohEB/ZESA82q9eg4dMnAAe7eFf/t2ShnXK4uEbj8hmdLL1y+wa+/+EVHDBnhZu6WAib8kJiWuGeNDHM3gnUXiYa6MU9G7cf1LwF0DSjMzOxNRZz2Ae/tWnCoD8ErjTraUCEB36udtf1sghuA821T+MJm9iMJyARSfiv9+fy2Q6dNctjTZAjAXN2+5xACWr8h1trtMTMq2fWkmNN73p6kA8OLQxhNV9U5+SH4C6DIzvbjDgPXk2MaTOmxzL1tfI0Tm4ssjyE5fBmBSl8YsvoFV6UBWZgjZuQyg/tqO3anmiiNitvQdAOPlbbvTcFx8b7sEQOnxmd+syzNPMKI+81Kz2X4NGNhRXS3eDopi7YbDBdjyTtmGGgHc37/lHFN4ojHbPgDYIx0Rv8FDf2bjgWfY4jxbuggg//jqPc8BWMZTG2dLst57Ci3gmZ4tD/WmNynDYmK+GBUV0bdHR39vlVxGYprEp8tm2z6oW5/PokaMnzwlzC5JlZeSeF49Ft1hICg+2EdOHs12GiCezD3uQ/SwO7mVrWyNCVbMImouW7EO4Z1w4B2IqvpTs9nS+BJY6cZSC9kuTIDVXgUJZpsgWOxkSurf4HgTaw4Dwc2+7mVL02pg5zDZWQarjHYzwOpFdnxTILDM3t6YreIWBMUhYraym7DaSacAvGg2W+98cHYTJ1IPwfGx75Qt/QqBKdo2JUU3AYhvsrrkQ3C3RzPZqnZCVBVLbZityO/HpwwEzOVpIao3wu4yI37e9CkTR0eGBnk7TU7GvvcdOPKLydPmfDe3m/yN6jtFayshYJ4t8yfybLY07ykjnszKzfngZC5TkVvZsoalM2DVJw8gV9nSzAzGmi2pN74Gh9kVRC6ypeAzerD0p4OoxWzpx1KwChZSo6hcsEoWkZNsZUteGqzZUtQTMwDmgNrdmWSfFEsFrxacWWQnhj+o8YSGFBvzLdZsRbKEUrDyYsmWLSkSTGBdDyMxW/L6uQ6s8pXc/QKVLrKlnimljdlSyC2w6rcq3jFbiikHKyea7LLtcKSwMVvSnALLnKR5cyZZFP3YyEd7oAd9CNmSatz5UggspYfGdVJQE75fblm/etn3c2IGdlBQM+S+fSbM+m7J6vVbv9Y4rAkauf2VCYKyyxPV9B8WOH7BxH7UKsrP5kwd0p5aQz5o8sKYcB9qUc+42B7kHvXoudHB1ESPmDnDvKllvqMWTAwkd80vYWJI0G5KEXCd7Cn6RC/4shM1p1vczKFyErIVeUfOjenj8IgGfTNntBe1Vsfx88d0oHcn7zN1RqSSXPAfOf+LLuSSOnJ+7GBvog8jW5KFJGQxEKd5t43saJ/nJ903nzp2YNempUN9yQWvfvM37PjtyKkdoU2jjVr3pAECJmdzTxl9aCSfW3CcGk0Cyqn1bNlKPJ6tSB1zocQCgSlry4guahIpR1y/d+vqpeMzfVqa3NpzKTXtXtpYu12Do9b+zcCq9HKcN314JD8Ba+wiBvKkbD+ObEnWbd2TaliZsvd8GSIm5v1Nsa44P+9iOLWg48ZXBcUlr+f5ksCr65iNGQys6l6u7y6jD5BkBXBPbt/fCSnbjyBb8Wp5LI+xfQ5waGpYgIJYvt+ZzSaT4U4YtSBwB2M2m7FUQyy5X2jsgWwDrAyFpyep6IMkiQRwfqCaWL4jkgFMkbL9CLIV+c26XGyElaUiddmI7r5yUk+tB6sw3odcUo/7C6yGeT4k8wkZtvhSmRlWJt1f8Z1l9IGS7AdHX17OgLOEpGw/omxJ1nXJDZ0JIkN20qKobv7DXvLpPZ7agVzwGf47n/er0X4hn889/LIBIlPFvZ/7KenDJVn2EiLDH1+RlO1Hkq1IHrr6ts6IRsyL5PiZV4T6Mlf08aVmqEOmpTLg3Jy+6FBGHRqZyu5vHqSmD5skfO6yzYm71yyYFEBvp8vAgWHUJqRsWYq+P90oYGBjKBbvoqq5NH9AsJMClX6hMYmFEBTlN8CmQXd302AvEkkkUraeIe/1Q0pONZypTUuICe/m5yW3+119Ovcdt+z8awucqMtP/Slc7FwikbL1qOC4Q8/KDHDCXJF+ZOk3Yz8P78saMGhk3OI91wqdbmksf/n7gp4KEkkkUrYe5j0qITVbb4Izllpd1oO069dvpL8sqna+ianq1V9bx/uT50kkUrY2ipDY3TdzKhvQagZ97p1907sryfMkEilbB6qesVv/fF5cY4LbTPW6l1d3TQ9VUVuQSKRsWfKOoxYfvvmySN9gRgssptqSnNvJK8d3UVDbkEikbEWqbuN+3HMp/WVBWbXzeC2GOn1xdsb1Y2vjentR25JIpGxFcr9+4xclHDyf9vB5Zl7h65LSCr2+srREV5SX/SLj3pXk7ctiI7uo6UMhkUjZiuSazv2HR8/+ftnadZt37tq6fu3KH+Z+PW5Qj0DpGvv/7dOxAAAAAMAgf+tJ7CyHYGwLaAtoC9oC2gLagraAtoC2gLagLaAtoC1oC2gLaAvaAtoC2oK2gLaAtqAtoC2gLWgLaAtoC2gL2gLaAtqCtoC2gLagLaAtoC1oC2gLaAvaAtoC2gLagraAtoC2oC2gLaAtaAtoC2gL2gLaAtqCtoC2gLZAy1EI1wwY3vcAAAAASUVORK5CYII=" - } - }, "cell_type": "markdown", "metadata": {}, "source": [ - "![qiskit_header.png](attachment:qiskit_header.png)" + "\"Note: Trusted Notebook\" align=\"middle\">" ] }, { @@ -57,9 +52,10 @@ "import numpy as np\n", "from qiskit.pulse.channels import (DriveChannel, MeasureChannel, ControlChannel, \n", " AcquireChannel, MemorySlot, SnapshotChannel)\n", - "from qiskit.pulse.commands import (SamplePulse, FrameChange, PersistentValue,\n", + "from qiskit.pulse.commands import (SamplePulse, FrameChange,\n", " Acquire, Snapshot)\n", - "from qiskit.pulse import pulse_lib, Schedule" + "from qiskit.pulse import pulse_lib, Schedule\n", + "from qiskit.qobj.utils import MeasLevel, MeasReturnType" ] }, { @@ -70,7 +66,7 @@ "\n", "`Channel`s correspond to physical channels on the backend. `Channel`s are combined with `Command`s to form an `Instruction`.\n", "\n", - "As all channels correspond to physical channels on a device, they have an `index` which specifies their corresponding device channel and a `buffer`, which is the buffering delay in units `dt/dtm` that must be added between commands on the same channel when `appending`.\n", + "As all channels correspond to physical channels on a device, they have an `index` which specifies their corresponding device channel.\n", "\n", "The fundamental channel types are: \n", "- `DriveChannel`: Qubit drive channel. The index channel corresponds to the system qubit index.\n", @@ -93,27 +89,18 @@ "start_time": "2019-08-21T09:37:09.538117Z" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\PaulNation\\Anaconda3\\lib\\site-packages\\qiskit_terra-0.11.0-py3.7-win-amd64.egg\\qiskit\\pulse\\channels\\channels.py:46: UserWarning: Buffers are no longer supported. Please use an explicit Delay.\n", - " warnings.warn(\"Buffers are no longer supported. Please use an explicit Delay.\")\n" - ] - } - ], + "outputs": [], "source": [ - "drive_ch0 = DriveChannel(0, buffer=2)\n", - "meas_ch0 = MeasureChannel(0, buffer=2)\n", - "control_ch0 = ControlChannel(0, buffer=2)\n", - "acquire_ch0 = AcquireChannel(0, buffer=0)\n", + "drive_ch0 = DriveChannel(0)\n", + "meas_ch0 = MeasureChannel(0)\n", + "control_ch0 = ControlChannel(0)\n", + "acquire_ch0 = AcquireChannel(0)\n", "memory_slot0 = MemorySlot(0)\n", "\n", - "drive_ch1 = DriveChannel(1, buffer=2)\n", - "meas_ch1 = MeasureChannel(1, buffer=2)\n", - "control_ch1 = ControlChannel(1, buffer=2)\n", - "acquire_ch1 = AcquireChannel(1, buffer=0)\n", + "drive_ch1 = DriveChannel(1)\n", + "meas_ch1 = MeasureChannel(1)\n", + "control_ch1 = ControlChannel(1)\n", + "acquire_ch1 = AcquireChannel(1)\n", "memory_slot1 = MemorySlot(1)" ] }, @@ -121,7 +108,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The buffer parameter is optional and both index and buffer may be accessed." + "The index may be accessed." ] }, { @@ -138,22 +125,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "0\n", "0\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\PaulNation\\Anaconda3\\lib\\site-packages\\qiskit_terra-0.11.0-py3.7-win-amd64.egg\\qiskit\\pulse\\channels\\channels.py:56: UserWarning: Buffers are no longer supported. Please use an explicit Delay.\n", - " warnings.warn(\"Buffers are no longer supported. Please use an explicit Delay.\")\n" - ] } ], "source": [ - "print(drive_ch0.index)\n", - "print(drive_ch0.buffer)" + "print(drive_ch0.index)" ] }, { @@ -252,8 +229,7 @@ "source": [ "The fundamental commands for the `PulseChannel` are:\n", "- `SamplePulse`: A pulse specified as a complex array of samples to be output out on the corresponding channel. Each pulse sample corresponds to a timestep of unit `dt` on the backend.\n", - "- `FrameChange`: A persistent framechange of the phase of all future pulses on the corresponding channel. `Framechange`s have zero duration on the backend.\n", - "- `PersistentValue`: A pulse that will hold its value until the next pulse on the corresponding channel. `PersistentValue` pulses will have variable duration on the backend as they depend on subsequent commands." + "- `FrameChange`: A persistent framechange of the phase of all future pulses on the corresponding channel. `Framechange`s have zero duration on the backend." ] }, { @@ -268,8 +244,7 @@ "outputs": [], "source": [ "sine_pulse = SamplePulse(np.sin(np.linspace(0,4*np.pi, 20)), name='random_pulse')\n", - "pi_fc = FrameChange(np.pi)\n", - "one_pv = PersistentValue(1.0)" + "pi_fc = FrameChange(np.pi)" ] }, { @@ -636,7 +611,7 @@ "metadata": {}, "source": [ "## Schedules\n", - "Pulse schedules are made by scheduling `Instruction`s. The `Schedule` may be viewed as a container for `Instruction`s and `Schedule`s shifted in time. In this way a simple `Schedule` may be treated as a building block for more complicated `Schedule`s. " + "Pulse schedules are made by scheduling `Instruction`s. The `Schedule` may be viewed as a tree-like container for `Instruction`s and `Schedule`s to be executed at specific times. In this way a simple `Schedule` may be treated as a building block for more complicated `Schedule`s. " ] }, { @@ -676,7 +651,7 @@ "\n", "1. `union`: Joins the supplied schedules and instructions, merging their timeslots together. If timeslots overlap an error will be raised.\n", "2. `shift`: Shifts the initial time of the `Schedule` or `Instruction` by an amount.\n", - "3. `append`: Append the supplied schedule or instruction at the last time of the parent schedule plus the maximum buffer over the set of all channels shared by the parent and child schedules.\n", + "3. `append`: Append the supplied schedule or instruction at the last time of the parent schedule over the set of all channels shared by the parent and child schedules.\n", "\n", "Note that there is no requirement that a parent `Schedule` must contain all of the `Channel`s of a child `Schedule` or `Instruction` to which it is being joined with. The set of `Channel`s present in the `Schedule` will automatically be extended." ] @@ -890,18 +865,27 @@ "## Outcomes of Pulse Schedules" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "MeasReturnType." + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are three (integer) measurement pulse levels (`meas_levels`) for pulse outputs which are triggered by `Acquire` commands and stored into the desired `MemorySlots`:\n", - "- Measurement level 0: Return the sampled measurement output from the `AcquireChannel` after mixing down with the measurement stimulus LO. There will be a large amount of data associated with measurement level.\n", - "- Measurement level 1: Return the data after the application of a user specified (or default if not specified) kernel.\n", - "- Measurement level 2: Return the discriminated counts after the application of a measurement kernel and discriminator. This corresponds to the measurement output of a quantum circuit. See the [circuits notebook](../../fundamentals/4_quantum_circuit_properties.ipynb) for more information.\n", + "- Measurement level 0 (`MeasLevel.RAW`): Return the sampled measurement output from the `AcquireChannel` after mixing down with the measurement stimulus LO. There will be a large amount of data associated with measurement level.\n", + "- Measurement level 1 (`MeasLevel.KERNELED`): Return the data after the application of a user specified (or default if not specified) kernel.\n", + "- Measurement level 2 (`MeasLevel.CLASSIFIED`): Return the discriminated counts after the application of a measurement kernel and discriminator. This corresponds to the measurement output of a quantum circuit. See the [circuits notebook](../../fundamentals/4_quantum_circuit_properties.ipynb) for more information.\n", "\n", "For measurement level 0 and 1 there is another supported measurement result post-processing modifier, `meas_return`:\n", - "- `single`: Return the results for each individual shot.\n", - "- `avg`: Average the results over all shots.\n", + "- `single` (`MeasReturnType.SINGLE`): Return the results for each individual shot.\n", + "- `avg` (`MeasReturnType.AVERAGE`): Average the results over all shots.\n", "\n", "
\n", "Note: All modes may not be supported on all backends due to different system constraints.\n", @@ -929,7 +913,7 @@ "metadata": {}, "source": [ "```python\n", - "job = execute(sched, meas_level=1, meas_return='avg')\n", + "job = execute(sched, meas_level=MeasLevel.CLASSIFIED, meas_return=MeasReturnType.AVERAGE)\n", "result = job.result()\n", "```" ] @@ -986,51 +970,19 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2019-08-21T09:37:30.807701Z", "start_time": "2019-08-21T09:37:30.798864Z" } }, - "outputs": [ - { - "data": { - "text/html": [ - "

Version Information

Qiskit SoftwareVersion
Qiskit0.14.0
Terra0.11.0
Aer0.3.4
Ignis0.2.0
Aqua0.6.1
IBM Q Provider0.4.4
System information
Python3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
OSWindows
CPUs2
Memory (Gb)7.9987335205078125
Tue Dec 10 16:19:16 2019 Eastern Standard Time
" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "

This code is a part of Qiskit

© Copyright IBM 2017, 2019.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import qiskit.tools.jupyter\n", "%qiskit_version_table\n", "%qiskit_copyright" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {