diff --git a/tutorials-v5/quantum-optimal-control/Single_Qubit_RL.ipynb b/tutorials-v5/quantum-optimal-control/Single_Qubit_RL.ipynb new file mode 100644 index 0000000..e95c9e0 --- /dev/null +++ b/tutorials-v5/quantum-optimal-control/Single_Qubit_RL.ipynb @@ -0,0 +1,1627 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c3371bed", + "metadata": {}, + "source": [ + "# Quantum Optimal Control with Reinforcement Learning\n", + "\n", + "In this notebook, we will demonstrate how to use the `_RL` module to solve a quantum optimal control problem using reinforcement learning (RL). We will define a simple state transfer problem with a single qubit, where the goal is to transfer a quantum system from one state to another, and we will use the RL agent to optimize the control pulses to achieve this task.\n", + "After we will also see the same problem but using unitary operators" + ] + }, + { + "cell_type": "markdown", + "id": "717f07c0-515d-427a-82ef-14603780b9ff", + "metadata": {}, + "source": [ + "## State to State Transfer\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "c81d453d", + "metadata": {}, + "source": [ + "### Setup and Import Required Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f1e015e6", + "metadata": {}, + "outputs": [], + "source": [ + "# If you are running this in an environment where some packages are missing, use this cell to install them:\n", + "# !pip install qutip stable-baselines3 gymnasium\n", + "\n", + "import qutip as qt\n", + "import numpy as np\n", + "from stable_baselines3 import PPO\n", + "#from qutip_qoc import Result, Objective, _TimeInterval\n", + "from qutip_qoc import Objective\n", + "#from _rl import _RL\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0131f1b2-b218-435c-a1e6-5c1acad6ac6b", + "metadata": {}, + "outputs": [], + "source": [ + "#this is just for using local files (not yet merged in github)\n", + "import sys\n", + "import os\n", + "\n", + "module_path = os.path.abspath(os.path.join('..', 'Github', 'qutip-qoc', 'src', 'qutip_qoc'))\n", + "\n", + "sys.path.append(module_path)\n", + "\n", + "from _rl import _RL\n", + "from pulse_optim import optimize_pulses" + ] + }, + { + "cell_type": "markdown", + "id": "b4b725c0", + "metadata": {}, + "source": [ + "### Define the Quantum Control Problem" + ] + }, + { + "cell_type": "markdown", + "id": "7e895742", + "metadata": {}, + "source": [ + "We define the problem of transferring a quantum system from the initial state |0⟩ to the target state |+⟩. The system is controlled via three control Hamiltonians corresponding to the Pauli matrices, and a drift Hamiltonian for natural evolution of the qubit." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6c414871", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the initial and target states\n", + "initial_state = qt.basis(2, 0) # |0⟩\n", + "target_state = (qt.basis(2, 0) + qt.basis(2, 1)).unit() # |+⟩\n", + "#target_state = qt.basis(2, 1) # |1⟩\n", + "\n", + "# Define the control Hamiltonians (Pauli matrices)\n", + "H_c = [qt.sigmax(), qt.sigmay(), qt.sigmaz()]\n", + "\n", + "# Define the drift Hamiltonian\n", + "w, d = 0.1, 1.0\n", + "H_d = 1 / 2 * (w * qt.sigmaz() + d * qt.sigmax())\n", + "\n", + "# Combine the Hamiltonians into a single list\n", + "H = [H_d] + H_c\n", + "\n", + "# Define the objective\n", + "objectives = [Objective(initial=initial_state, H=H, target=target_state)]\n", + "\n", + "# Define the control parameters with bounds\n", + "control_parameters = {\n", + " \"p\": {\"bounds\": [(-13, 13)]}\n", + "}\n", + "\n", + "# Define the time interval\n", + "tlist = np.linspace(0, 10, 100)\n", + "\n", + "# Define algorithm-specific settings\n", + "algorithm_kwargs = {\n", + " \"fid_err_targ\": 0.01,\n", + " \"alg\": \"RL\",\n", + " \"max_iter\": 20000,\n", + " \"shorter_pulses\": True,\n", + "}\n", + "optimizer_kwargs = {}\n" + ] + }, + { + "cell_type": "markdown", + "id": "eab0e4f0-3b42-4f32-a3dc-bb752c8dbe8c", + "metadata": {}, + "source": [ + "Note that `max_iter` defines the number of episodes, the 100 in `tlist` defines the maximum number of steps per episode. \n", + "If `shorter_pulses` is True, the training will be longer as the algorithm will try to optimize the episodes using as few steps as possible in addition to checking if the target infidelity is reached.\n", + "If it is False, the algorithm stops as soon as it finds an episode with infidelity <= of the target infidelity" + ] + }, + { + "cell_type": "markdown", + "id": "a6273e17", + "metadata": {}, + "source": [ + "### Initialize and Train the RL Environment" + ] + }, + { + "cell_type": "markdown", + "id": "e7b27df4", + "metadata": {}, + "source": [ + "Now we will call the `optimize_pulses()` method, passing it the control problem we defined.\n", + "The method will create an instance of the `_RL` class, which will set up the reinforcement learning environment and start training.\n", + "Finally it returns the optimization results through an object of the `Result` class." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1c4b0b58", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using cpu device\n", + "Wrapping the env with a `Monitor` wrapper\n", + "Wrapping the env in a DummyVecEnv.\n", + "---------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 9.92 |\n", + "| ep_rew_mean | -2.21 |\n", + "| time/ | |\n", + "| fps | 2282 |\n", + "| iterations | 1 |\n", + "| time_elapsed | 0 |\n", + "| total_timesteps | 2048 |\n", + "---------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 10.1 |\n", + "| ep_rew_mean | -2.3 |\n", + "| time/ | |\n", + "| fps | 1871 |\n", + "| iterations | 2 |\n", + "| time_elapsed | 2 |\n", + "| total_timesteps | 4096 |\n", + "| train/ | |\n", + "| approx_kl | 0.005770128 |\n", + "| clip_fraction | 0.0454 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.26 |\n", + "| explained_variance | 0.00456 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.36 |\n", + "| n_updates | 10 |\n", + "| policy_gradient_loss | -0.00512 |\n", + "| std | 1 |\n", + "| value_loss | 3.56 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 8.16 |\n", + "| ep_rew_mean | -1.67 |\n", + "| time/ | |\n", + "| fps | 1777 |\n", + "| iterations | 3 |\n", + "| time_elapsed | 3 |\n", + "| total_timesteps | 6144 |\n", + "| train/ | |\n", + "| approx_kl | 0.0059958715 |\n", + "| clip_fraction | 0.0327 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.28 |\n", + "| explained_variance | 0.00907 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.92 |\n", + "| n_updates | 20 |\n", + "| policy_gradient_loss | -0.00476 |\n", + "| std | 1.01 |\n", + "| value_loss | 5.02 |\n", + "------------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 10.2 |\n", + "| ep_rew_mean | -2.21 |\n", + "| time/ | |\n", + "| fps | 1707 |\n", + "| iterations | 4 |\n", + "| time_elapsed | 4 |\n", + "| total_timesteps | 8192 |\n", + "| train/ | |\n", + "| approx_kl | 0.0067452346 |\n", + "| clip_fraction | 0.0616 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.28 |\n", + "| explained_variance | 0.0347 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 2.78 |\n", + "| n_updates | 30 |\n", + "| policy_gradient_loss | -0.00704 |\n", + "| std | 1.01 |\n", + "| value_loss | 6.3 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 6.49 |\n", + "| ep_rew_mean | -1.28 |\n", + "| time/ | |\n", + "| fps | 1685 |\n", + "| iterations | 5 |\n", + "| time_elapsed | 6 |\n", + "| total_timesteps | 10240 |\n", + "| train/ | |\n", + "| approx_kl | 0.005527503 |\n", + "| clip_fraction | 0.0367 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.26 |\n", + "| explained_variance | 0.0404 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 2.51 |\n", + "| n_updates | 40 |\n", + "| policy_gradient_loss | -0.00418 |\n", + "| std | 0.998 |\n", + "| value_loss | 5.73 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 6.65 |\n", + "| ep_rew_mean | -1.37 |\n", + "| time/ | |\n", + "| fps | 1667 |\n", + "| iterations | 6 |\n", + "| time_elapsed | 7 |\n", + "| total_timesteps | 12288 |\n", + "| train/ | |\n", + "| approx_kl | 0.006008967 |\n", + "| clip_fraction | 0.0488 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.25 |\n", + "| explained_variance | 0.0647 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 3.31 |\n", + "| n_updates | 50 |\n", + "| policy_gradient_loss | -0.00528 |\n", + "| std | 1 |\n", + "| value_loss | 6.49 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 5.92 |\n", + "| ep_rew_mean | -1.08 |\n", + "| time/ | |\n", + "| fps | 1656 |\n", + "| iterations | 7 |\n", + "| time_elapsed | 8 |\n", + "| total_timesteps | 14336 |\n", + "| train/ | |\n", + "| approx_kl | 0.006880779 |\n", + "| clip_fraction | 0.0687 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.25 |\n", + "| explained_variance | 0.0296 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 3.2 |\n", + "| n_updates | 60 |\n", + "| policy_gradient_loss | -0.00615 |\n", + "| std | 0.995 |\n", + "| value_loss | 5.22 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 6.46 |\n", + "| ep_rew_mean | -1.21 |\n", + "| time/ | |\n", + "| fps | 1636 |\n", + "| iterations | 8 |\n", + "| time_elapsed | 10 |\n", + "| total_timesteps | 16384 |\n", + "| train/ | |\n", + "| approx_kl | 0.006914506 |\n", + "| clip_fraction | 0.0744 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.24 |\n", + "| explained_variance | 0.105 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 2.35 |\n", + "| n_updates | 70 |\n", + "| policy_gradient_loss | -0.00785 |\n", + "| std | 0.996 |\n", + "| value_loss | 6.24 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 7.63 |\n", + "| ep_rew_mean | -1.32 |\n", + "| time/ | |\n", + "| fps | 1633 |\n", + "| iterations | 9 |\n", + "| time_elapsed | 11 |\n", + "| total_timesteps | 18432 |\n", + "| train/ | |\n", + "| approx_kl | 0.008130429 |\n", + "| clip_fraction | 0.0882 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.24 |\n", + "| explained_variance | 0.137 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.93 |\n", + "| n_updates | 80 |\n", + "| policy_gradient_loss | -0.00804 |\n", + "| std | 0.997 |\n", + "| value_loss | 5.68 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 6.73 |\n", + "| ep_rew_mean | -1.21 |\n", + "| time/ | |\n", + "| fps | 1630 |\n", + "| iterations | 10 |\n", + "| time_elapsed | 12 |\n", + "| total_timesteps | 20480 |\n", + "| train/ | |\n", + "| approx_kl | 0.009801803 |\n", + "| clip_fraction | 0.116 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.25 |\n", + "| explained_variance | -0.0604 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.8 |\n", + "| n_updates | 90 |\n", + "| policy_gradient_loss | -0.0123 |\n", + "| std | 1 |\n", + "| value_loss | 3.45 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 4.02 |\n", + "| ep_rew_mean | -0.668 |\n", + "| time/ | |\n", + "| fps | 1617 |\n", + "| iterations | 11 |\n", + "| time_elapsed | 13 |\n", + "| total_timesteps | 22528 |\n", + "| train/ | |\n", + "| approx_kl | 0.0070579182 |\n", + "| clip_fraction | 0.0863 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.24 |\n", + "| explained_variance | 0.0842 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.38 |\n", + "| n_updates | 100 |\n", + "| policy_gradient_loss | -0.0104 |\n", + "| std | 0.991 |\n", + "| value_loss | 3.32 |\n", + "------------------------------------------\n", + "----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 4.29 |\n", + "| ep_rew_mean | -0.666 |\n", + "| time/ | |\n", + "| fps | 1615 |\n", + "| iterations | 12 |\n", + "| time_elapsed | 15 |\n", + "| total_timesteps | 24576 |\n", + "| train/ | |\n", + "| approx_kl | 0.01636789 |\n", + "| clip_fraction | 0.165 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.22 |\n", + "| explained_variance | 0.104 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.37 |\n", + "| n_updates | 110 |\n", + "| policy_gradient_loss | -0.021 |\n", + "| std | 0.986 |\n", + "| value_loss | 2.7 |\n", + "----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 2.32 |\n", + "| ep_rew_mean | -0.258 |\n", + "| time/ | |\n", + "| fps | 1611 |\n", + "| iterations | 13 |\n", + "| time_elapsed | 16 |\n", + "| total_timesteps | 26624 |\n", + "| train/ | |\n", + "| approx_kl | 0.011109401 |\n", + "| clip_fraction | 0.12 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.18 |\n", + "| explained_variance | 0.111 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.735 |\n", + "| n_updates | 120 |\n", + "| policy_gradient_loss | -0.0191 |\n", + "| std | 0.965 |\n", + "| value_loss | 1.98 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.68 |\n", + "| ep_rew_mean | -0.14 |\n", + "| time/ | |\n", + "| fps | 1601 |\n", + "| iterations | 14 |\n", + "| time_elapsed | 17 |\n", + "| total_timesteps | 28672 |\n", + "| train/ | |\n", + "| approx_kl | 0.012810201 |\n", + "| clip_fraction | 0.164 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.12 |\n", + "| explained_variance | 0.199 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.07 |\n", + "| n_updates | 130 |\n", + "| policy_gradient_loss | -0.0239 |\n", + "| std | 0.948 |\n", + "| value_loss | 1.78 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.57 |\n", + "| ep_rew_mean | -0.128 |\n", + "| time/ | |\n", + "| fps | 1599 |\n", + "| iterations | 15 |\n", + "| time_elapsed | 19 |\n", + "| total_timesteps | 30720 |\n", + "| train/ | |\n", + "| approx_kl | 0.011240302 |\n", + "| clip_fraction | 0.151 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.06 |\n", + "| explained_variance | 0.289 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.693 |\n", + "| n_updates | 140 |\n", + "| policy_gradient_loss | -0.0189 |\n", + "| std | 0.931 |\n", + "| value_loss | 1.54 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.28 |\n", + "| ep_rew_mean | -0.0604 |\n", + "| time/ | |\n", + "| fps | 1596 |\n", + "| iterations | 16 |\n", + "| time_elapsed | 20 |\n", + "| total_timesteps | 32768 |\n", + "| train/ | |\n", + "| approx_kl | 0.012472793 |\n", + "| clip_fraction | 0.148 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.02 |\n", + "| explained_variance | 0.419 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.593 |\n", + "| n_updates | 150 |\n", + "| policy_gradient_loss | -0.021 |\n", + "| std | 0.924 |\n", + "| value_loss | 0.859 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.43 |\n", + "| ep_rew_mean | -0.0818 |\n", + "| time/ | |\n", + "| fps | 1587 |\n", + "| iterations | 17 |\n", + "| time_elapsed | 21 |\n", + "| total_timesteps | 34816 |\n", + "| train/ | |\n", + "| approx_kl | 0.010671131 |\n", + "| clip_fraction | 0.121 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.97 |\n", + "| explained_variance | 0.407 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.159 |\n", + "| n_updates | 160 |\n", + "| policy_gradient_loss | -0.0216 |\n", + "| std | 0.904 |\n", + "| value_loss | 0.472 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.44 |\n", + "| ep_rew_mean | -0.073 |\n", + "| time/ | |\n", + "| fps | 1584 |\n", + "| iterations | 18 |\n", + "| time_elapsed | 23 |\n", + "| total_timesteps | 36864 |\n", + "| train/ | |\n", + "| approx_kl | 0.009028839 |\n", + "| clip_fraction | 0.116 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.9 |\n", + "| explained_variance | 0.376 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0734 |\n", + "| n_updates | 170 |\n", + "| policy_gradient_loss | -0.0181 |\n", + "| std | 0.883 |\n", + "| value_loss | 0.225 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.25 |\n", + "| ep_rew_mean | -0.0551 |\n", + "| time/ | |\n", + "| fps | 1581 |\n", + "| iterations | 19 |\n", + "| time_elapsed | 24 |\n", + "| total_timesteps | 38912 |\n", + "| train/ | |\n", + "| approx_kl | 0.0109791495 |\n", + "| clip_fraction | 0.126 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.87 |\n", + "| explained_variance | 0.443 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0107 |\n", + "| n_updates | 180 |\n", + "| policy_gradient_loss | -0.0189 |\n", + "| std | 0.885 |\n", + "| value_loss | 0.204 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.08 |\n", + "| ep_rew_mean | -0.0231 |\n", + "| time/ | |\n", + "| fps | 1574 |\n", + "| iterations | 20 |\n", + "| time_elapsed | 26 |\n", + "| total_timesteps | 40960 |\n", + "| train/ | |\n", + "| approx_kl | 0.010651594 |\n", + "| clip_fraction | 0.0928 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.84 |\n", + "| explained_variance | 0.49 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0843 |\n", + "| n_updates | 190 |\n", + "| policy_gradient_loss | -0.0125 |\n", + "| std | 0.866 |\n", + "| value_loss | 0.231 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.01 |\n", + "| ep_rew_mean | -0.0072 |\n", + "| time/ | |\n", + "| fps | 1571 |\n", + "| iterations | 21 |\n", + "| time_elapsed | 27 |\n", + "| total_timesteps | 43008 |\n", + "| train/ | |\n", + "| approx_kl | 0.007608075 |\n", + "| clip_fraction | 0.0848 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.77 |\n", + "| explained_variance | 0.392 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0338 |\n", + "| n_updates | 200 |\n", + "| policy_gradient_loss | -0.016 |\n", + "| std | 0.846 |\n", + "| value_loss | 0.0777 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1.27 |\n", + "| ep_rew_mean | -0.0515 |\n", + "| time/ | |\n", + "| fps | 1567 |\n", + "| iterations | 22 |\n", + "| time_elapsed | 28 |\n", + "| total_timesteps | 45056 |\n", + "| train/ | |\n", + "| approx_kl | 0.009603938 |\n", + "| clip_fraction | 0.0639 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.71 |\n", + "| explained_variance | 0.435 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0436 |\n", + "| n_updates | 210 |\n", + "| policy_gradient_loss | -0.0129 |\n", + "| std | 0.835 |\n", + "| value_loss | 0.0349 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 1 |\n", + "| ep_rew_mean | -0.00487 |\n", + "| time/ | |\n", + "| fps | 1561 |\n", + "| iterations | 23 |\n", + "| time_elapsed | 30 |\n", + "| total_timesteps | 47104 |\n", + "| train/ | |\n", + "| approx_kl | 0.008504309 |\n", + "| clip_fraction | 0.0841 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.71 |\n", + "| explained_variance | 0.558 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0363 |\n", + "| n_updates | 220 |\n", + "| policy_gradient_loss | -0.0113 |\n", + "| std | 0.842 |\n", + "| value_loss | 0.177 |\n", + "-----------------------------------------\n" + ] + } + ], + "source": [ + "# Initialize the RL environment and start training\n", + "rl_result = optimize_pulses(\n", + " objectives,\n", + " control_parameters,\n", + " tlist,\n", + " algorithm_kwargs,\n", + " optimizer_kwargs\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "b5fa66a4", + "metadata": {}, + "source": [ + "### Analyze the Results" + ] + }, + { + "cell_type": "markdown", + "id": "afdc0129", + "metadata": {}, + "source": [ + "After the training is complete, we can analyze the results obtained by the RL agent. \n", + "In the above window showing the output produced by Gymansium, you can observe how during training the number of steps per episode (ep_len_mean) decreases and the average reward of the episodes (ep_rew_mean) increases." + ] + }, + { + "cell_type": "markdown", + "id": "3172a7d8-5621-4366-a7a1-847aa01974cf", + "metadata": {}, + "source": [ + "We can now see the fields of the `Result` class, this includes the final infidelity, the optimized control parameters and more." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "32521c12-5ff1-4199-a9d2-bc56bfd58b51", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Control Optimization Result\n", + "--------------------------\n", + "- Started at 2024-08-24 20:38:52\n", + "- Number of objectives: 1\n", + "- Final fidelity error: 0.0048685058051837204\n", + "- Final parameters: [[-10.849769413471222, -12.63647347688675, -13.0], 30.0]\n", + "- Number of iterations: 19691\n", + "- Reason for termination: Training finished. No episode in the last 100 used fewer steps and infidelity was below target infid.\n", + "- Optimized time parameter: 30.0\n", + "- Ended at 2024-08-24 20:39:22 (30.0s)\n" + ] + } + ], + "source": [ + "print(rl_result)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "340f0cc9-8329-47d3-9cba-09009b56a786", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We can also visualize the initial and final states on the Bloch sphere\n", + "bloch_sp = qt.Bloch()\n", + "bloch_sp.add_states(initial_state)\n", + "bloch_sp.add_states(target_state)\n", + "bloch_sp.add_states(rl_result._final_states[0])\n", + "bloch_sp.show()" + ] + }, + { + "cell_type": "markdown", + "id": "abd99882-1f74-4036-aa66-2aff99758ded", + "metadata": {}, + "source": [ + "If the total number of iterations in the Result class is slightly higher than the set value, it is because the algorithm needs to complete the rollout, which consists of a certain number of episodes, before performing termination checks (as defined in the Callback class)." + ] + }, + { + "cell_type": "markdown", + "id": "a4ac563d", + "metadata": {}, + "source": [ + "## Unitary Operators\n", + "\n", + "Now we will show how to tackle a problem similar to the previous one, but this time, instead of reaching a specific target state, the goal is to start from the identity operator and evolve it in a controlled way until we obtain a specific unitary operator, such as the Hadamard gate." + ] + }, + { + "cell_type": "markdown", + "id": "0c2f5b7e-9f73-498e-bd61-fe51d9eb2879", + "metadata": {}, + "source": [ + "The control problem is similar to the previous one, we just need to change the initial state, the target state (now they are matrices) and update the objective. \n", + "We can also change the number of episodes for this task by changing `max_iter` \n", + "By setting `shorter_pulses` to False, the algorithm will stop as soon as it finds an episode that satisfies the target infidelity." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3aeeb5bd-e637-4af7-b0a7-7196c24474ed", + "metadata": {}, + "outputs": [], + "source": [ + "initial = qt.qeye(2) # Identity\n", + "target = qt.gates.hadamard_transform()\n", + "\n", + "objectives=[Objective(initial, H, target)]\n", + "\n", + "algorithm_kwargs = {\n", + " \"fid_err_targ\": 0.01,\n", + " \"alg\": \"RL\",\n", + " \"max_iter\": 900,\n", + " \"shorter_pulses\": False,\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "6e7a9f9d-9761-457e-994c-732b11060d73", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using cpu device\n", + "Wrapping the env with a `Monitor` wrapper\n", + "Wrapping the env in a DummyVecEnv.\n", + "---------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.4 |\n", + "| time/ | |\n", + "| fps | 2351 |\n", + "| iterations | 1 |\n", + "| time_elapsed | 0 |\n", + "| total_timesteps | 2048 |\n", + "---------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.3 |\n", + "| time/ | |\n", + "| fps | 1878 |\n", + "| iterations | 2 |\n", + "| time_elapsed | 2 |\n", + "| total_timesteps | 4096 |\n", + "| train/ | |\n", + "| approx_kl | 0.004405604 |\n", + "| clip_fraction | 0.0345 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.25 |\n", + "| explained_variance | -0.0302 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.86 |\n", + "| n_updates | 10 |\n", + "| policy_gradient_loss | -0.00376 |\n", + "| std | 0.997 |\n", + "| value_loss | 28 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49.1 |\n", + "| time/ | |\n", + "| fps | 1734 |\n", + "| iterations | 3 |\n", + "| time_elapsed | 3 |\n", + "| total_timesteps | 6144 |\n", + "| train/ | |\n", + "| approx_kl | 0.0046608616 |\n", + "| clip_fraction | 0.0235 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.25 |\n", + "| explained_variance | 0.00253 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.58 |\n", + "| n_updates | 20 |\n", + "| policy_gradient_loss | -0.00136 |\n", + "| std | 0.995 |\n", + "| value_loss | 8.41 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.8 |\n", + "| time/ | |\n", + "| fps | 1692 |\n", + "| iterations | 4 |\n", + "| time_elapsed | 4 |\n", + "| total_timesteps | 8192 |\n", + "| train/ | |\n", + "| approx_kl | 0.006713907 |\n", + "| clip_fraction | 0.0322 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.23 |\n", + "| explained_variance | 0.0167 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.87 |\n", + "| n_updates | 30 |\n", + "| policy_gradient_loss | -0.00373 |\n", + "| std | 0.984 |\n", + "| value_loss | 7.91 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49.3 |\n", + "| time/ | |\n", + "| fps | 1675 |\n", + "| iterations | 5 |\n", + "| time_elapsed | 6 |\n", + "| total_timesteps | 10240 |\n", + "| train/ | |\n", + "| approx_kl | 0.0056952434 |\n", + "| clip_fraction | 0.0311 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.2 |\n", + "| explained_variance | 0.0864 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.2 |\n", + "| n_updates | 40 |\n", + "| policy_gradient_loss | -0.00337 |\n", + "| std | 0.974 |\n", + "| value_loss | 5.18 |\n", + "------------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49 |\n", + "| time/ | |\n", + "| fps | 1658 |\n", + "| iterations | 6 |\n", + "| time_elapsed | 7 |\n", + "| total_timesteps | 12288 |\n", + "| train/ | |\n", + "| approx_kl | 0.0038293994 |\n", + "| clip_fraction | 0.0164 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.16 |\n", + "| explained_variance | 0.0966 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.13 |\n", + "| n_updates | 50 |\n", + "| policy_gradient_loss | -0.00192 |\n", + "| std | 0.962 |\n", + "| value_loss | 4.51 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49.3 |\n", + "| time/ | |\n", + "| fps | 1649 |\n", + "| iterations | 7 |\n", + "| time_elapsed | 8 |\n", + "| total_timesteps | 14336 |\n", + "| train/ | |\n", + "| approx_kl | 0.008284866 |\n", + "| clip_fraction | 0.0638 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.14 |\n", + "| explained_variance | 0.232 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.77 |\n", + "| n_updates | 60 |\n", + "| policy_gradient_loss | -0.00626 |\n", + "| std | 0.963 |\n", + "| value_loss | 2.74 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49.1 |\n", + "| time/ | |\n", + "| fps | 1633 |\n", + "| iterations | 8 |\n", + "| time_elapsed | 10 |\n", + "| total_timesteps | 16384 |\n", + "| train/ | |\n", + "| approx_kl | 0.0061374204 |\n", + "| clip_fraction | 0.0455 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.14 |\n", + "| explained_variance | 0.37 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.561 |\n", + "| n_updates | 70 |\n", + "| policy_gradient_loss | -0.00462 |\n", + "| std | 0.96 |\n", + "| value_loss | 2.08 |\n", + "------------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49 |\n", + "| time/ | |\n", + "| fps | 1630 |\n", + "| iterations | 9 |\n", + "| time_elapsed | 11 |\n", + "| total_timesteps | 18432 |\n", + "| train/ | |\n", + "| approx_kl | 0.0043069483 |\n", + "| clip_fraction | 0.0229 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.14 |\n", + "| explained_variance | 0.444 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.794 |\n", + "| n_updates | 80 |\n", + "| policy_gradient_loss | -0.00385 |\n", + "| std | 0.966 |\n", + "| value_loss | 2.14 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.5 |\n", + "| time/ | |\n", + "| fps | 1627 |\n", + "| iterations | 10 |\n", + "| time_elapsed | 12 |\n", + "| total_timesteps | 20480 |\n", + "| train/ | |\n", + "| approx_kl | 0.004516308 |\n", + "| clip_fraction | 0.0264 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.15 |\n", + "| explained_variance | 0.656 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.701 |\n", + "| n_updates | 90 |\n", + "| policy_gradient_loss | -0.00309 |\n", + "| std | 0.962 |\n", + "| value_loss | 1.97 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.5 |\n", + "| time/ | |\n", + "| fps | 1623 |\n", + "| iterations | 11 |\n", + "| time_elapsed | 13 |\n", + "| total_timesteps | 22528 |\n", + "| train/ | |\n", + "| approx_kl | 0.004935258 |\n", + "| clip_fraction | 0.0244 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.14 |\n", + "| explained_variance | 0.669 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.803 |\n", + "| n_updates | 100 |\n", + "| policy_gradient_loss | -0.00345 |\n", + "| std | 0.962 |\n", + "| value_loss | 2.49 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.8 |\n", + "| time/ | |\n", + "| fps | 1609 |\n", + "| iterations | 12 |\n", + "| time_elapsed | 15 |\n", + "| total_timesteps | 24576 |\n", + "| train/ | |\n", + "| approx_kl | 0.0066686976 |\n", + "| clip_fraction | 0.0445 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.15 |\n", + "| explained_variance | 0.64 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.789 |\n", + "| n_updates | 110 |\n", + "| policy_gradient_loss | -0.00489 |\n", + "| std | 0.967 |\n", + "| value_loss | 2.6 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.4 |\n", + "| time/ | |\n", + "| fps | 1609 |\n", + "| iterations | 13 |\n", + "| time_elapsed | 16 |\n", + "| total_timesteps | 26624 |\n", + "| train/ | |\n", + "| approx_kl | 0.005435321 |\n", + "| clip_fraction | 0.0443 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.14 |\n", + "| explained_variance | 0.644 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.918 |\n", + "| n_updates | 120 |\n", + "| policy_gradient_loss | -0.00518 |\n", + "| std | 0.958 |\n", + "| value_loss | 1.98 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.5 |\n", + "| time/ | |\n", + "| fps | 1607 |\n", + "| iterations | 14 |\n", + "| time_elapsed | 17 |\n", + "| total_timesteps | 28672 |\n", + "| train/ | |\n", + "| approx_kl | 0.004944969 |\n", + "| clip_fraction | 0.0457 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.12 |\n", + "| explained_variance | 0.737 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.21 |\n", + "| n_updates | 130 |\n", + "| policy_gradient_loss | -0.00603 |\n", + "| std | 0.951 |\n", + "| value_loss | 2.28 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.9 |\n", + "| time/ | |\n", + "| fps | 1605 |\n", + "| iterations | 15 |\n", + "| time_elapsed | 19 |\n", + "| total_timesteps | 30720 |\n", + "| train/ | |\n", + "| approx_kl | 0.006223672 |\n", + "| clip_fraction | 0.0668 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.11 |\n", + "| explained_variance | 0.723 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.666 |\n", + "| n_updates | 140 |\n", + "| policy_gradient_loss | -0.00688 |\n", + "| std | 0.951 |\n", + "| value_loss | 1.98 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49.1 |\n", + "| time/ | |\n", + "| fps | 1597 |\n", + "| iterations | 16 |\n", + "| time_elapsed | 20 |\n", + "| total_timesteps | 32768 |\n", + "| train/ | |\n", + "| approx_kl | 0.005545385 |\n", + "| clip_fraction | 0.0473 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.1 |\n", + "| explained_variance | 0.781 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.05 |\n", + "| n_updates | 150 |\n", + "| policy_gradient_loss | -0.00429 |\n", + "| std | 0.947 |\n", + "| value_loss | 2.5 |\n", + "-----------------------------------------\n", + "----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.9 |\n", + "| time/ | |\n", + "| fps | 1595 |\n", + "| iterations | 17 |\n", + "| time_elapsed | 21 |\n", + "| total_timesteps | 34816 |\n", + "| train/ | |\n", + "| approx_kl | 0.00498241 |\n", + "| clip_fraction | 0.0263 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.09 |\n", + "| explained_variance | 0.633 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.906 |\n", + "| n_updates | 160 |\n", + "| policy_gradient_loss | -0.00302 |\n", + "| std | 0.942 |\n", + "| value_loss | 2.75 |\n", + "----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -49.1 |\n", + "| time/ | |\n", + "| fps | 1594 |\n", + "| iterations | 18 |\n", + "| time_elapsed | 23 |\n", + "| total_timesteps | 36864 |\n", + "| train/ | |\n", + "| approx_kl | 0.0064855358 |\n", + "| clip_fraction | 0.0426 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.08 |\n", + "| explained_variance | 0.658 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.2 |\n", + "| n_updates | 170 |\n", + "| policy_gradient_loss | -0.00508 |\n", + "| std | 0.942 |\n", + "| value_loss | 2.36 |\n", + "------------------------------------------\n", + "---------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.8 |\n", + "| time/ | |\n", + "| fps | 1595 |\n", + "| iterations | 19 |\n", + "| time_elapsed | 24 |\n", + "| total_timesteps | 38912 |\n", + "| train/ | |\n", + "| approx_kl | 0.0066174 |\n", + "| clip_fraction | 0.0362 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.07 |\n", + "| explained_variance | 0.649 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.33 |\n", + "| n_updates | 180 |\n", + "| policy_gradient_loss | -0.00309 |\n", + "| std | 0.937 |\n", + "| value_loss | 3.01 |\n", + "---------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.5 |\n", + "| time/ | |\n", + "| fps | 1592 |\n", + "| iterations | 20 |\n", + "| time_elapsed | 25 |\n", + "| total_timesteps | 40960 |\n", + "| train/ | |\n", + "| approx_kl | 0.0062293075 |\n", + "| clip_fraction | 0.0578 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.06 |\n", + "| explained_variance | 0.683 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.38 |\n", + "| n_updates | 190 |\n", + "| policy_gradient_loss | -0.00481 |\n", + "| std | 0.937 |\n", + "| value_loss | 2.4 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.1 |\n", + "| time/ | |\n", + "| fps | 1593 |\n", + "| iterations | 21 |\n", + "| time_elapsed | 26 |\n", + "| total_timesteps | 43008 |\n", + "| train/ | |\n", + "| approx_kl | 0.006579734 |\n", + "| clip_fraction | 0.0502 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.06 |\n", + "| explained_variance | 0.727 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.28 |\n", + "| n_updates | 200 |\n", + "| policy_gradient_loss | -0.00512 |\n", + "| std | 0.934 |\n", + "| value_loss | 2.63 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.9 |\n", + "| time/ | |\n", + "| fps | 1595 |\n", + "| iterations | 22 |\n", + "| time_elapsed | 28 |\n", + "| total_timesteps | 45056 |\n", + "| train/ | |\n", + "| approx_kl | 0.0065193363 |\n", + "| clip_fraction | 0.0587 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4.03 |\n", + "| explained_variance | 0.702 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.4 |\n", + "| n_updates | 210 |\n", + "| policy_gradient_loss | -0.00485 |\n", + "| std | 0.923 |\n", + "| value_loss | 2.38 |\n", + "------------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -48.2 |\n", + "| time/ | |\n", + "| fps | 1592 |\n", + "| iterations | 23 |\n", + "| time_elapsed | 29 |\n", + "| total_timesteps | 47104 |\n", + "| train/ | |\n", + "| approx_kl | 0.0045397887 |\n", + "| clip_fraction | 0.0393 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -4 |\n", + "| explained_variance | 0.757 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.838 |\n", + "| n_updates | 220 |\n", + "| policy_gradient_loss | -0.00353 |\n", + "| std | 0.918 |\n", + "| value_loss | 2.1 |\n", + "------------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.9 |\n", + "| time/ | |\n", + "| fps | 1594 |\n", + "| iterations | 24 |\n", + "| time_elapsed | 30 |\n", + "| total_timesteps | 49152 |\n", + "| train/ | |\n", + "| approx_kl | 0.0059773056 |\n", + "| clip_fraction | 0.0457 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.99 |\n", + "| explained_variance | 0.713 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.11 |\n", + "| n_updates | 230 |\n", + "| policy_gradient_loss | -0.00375 |\n", + "| std | 0.916 |\n", + "| value_loss | 2.91 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.7 |\n", + "| time/ | |\n", + "| fps | 1592 |\n", + "| iterations | 25 |\n", + "| time_elapsed | 32 |\n", + "| total_timesteps | 51200 |\n", + "| train/ | |\n", + "| approx_kl | 0.006354755 |\n", + "| clip_fraction | 0.0526 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.97 |\n", + "| explained_variance | 0.692 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.18 |\n", + "| n_updates | 240 |\n", + "| policy_gradient_loss | -0.00395 |\n", + "| std | 0.905 |\n", + "| value_loss | 2.68 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.9 |\n", + "| time/ | |\n", + "| fps | 1592 |\n", + "| iterations | 26 |\n", + "| time_elapsed | 33 |\n", + "| total_timesteps | 53248 |\n", + "| train/ | |\n", + "| approx_kl | 0.0069060894 |\n", + "| clip_fraction | 0.0633 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.95 |\n", + "| explained_variance | 0.797 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.16 |\n", + "| n_updates | 250 |\n", + "| policy_gradient_loss | -0.00548 |\n", + "| std | 0.902 |\n", + "| value_loss | 2.56 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.8 |\n", + "| time/ | |\n", + "| fps | 1592 |\n", + "| iterations | 27 |\n", + "| time_elapsed | 34 |\n", + "| total_timesteps | 55296 |\n", + "| train/ | |\n", + "| approx_kl | 0.008833875 |\n", + "| clip_fraction | 0.0865 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.93 |\n", + "| explained_variance | 0.788 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.18 |\n", + "| n_updates | 260 |\n", + "| policy_gradient_loss | -0.00951 |\n", + "| std | 0.895 |\n", + "| value_loss | 2.5 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.3 |\n", + "| time/ | |\n", + "| fps | 1588 |\n", + "| iterations | 28 |\n", + "| time_elapsed | 36 |\n", + "| total_timesteps | 57344 |\n", + "| train/ | |\n", + "| approx_kl | 0.009341501 |\n", + "| clip_fraction | 0.107 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.91 |\n", + "| explained_variance | 0.795 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.16 |\n", + "| n_updates | 270 |\n", + "| policy_gradient_loss | -0.00948 |\n", + "| std | 0.89 |\n", + "| value_loss | 2.49 |\n", + "-----------------------------------------\n", + "----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -47.3 |\n", + "| time/ | |\n", + "| fps | 1588 |\n", + "| iterations | 29 |\n", + "| time_elapsed | 37 |\n", + "| total_timesteps | 59392 |\n", + "| train/ | |\n", + "| approx_kl | 0.00845156 |\n", + "| clip_fraction | 0.0839 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.88 |\n", + "| explained_variance | 0.778 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.15 |\n", + "| n_updates | 280 |\n", + "| policy_gradient_loss | -0.00978 |\n", + "| std | 0.878 |\n", + "| value_loss | 2.78 |\n", + "----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -46.9 |\n", + "| time/ | |\n", + "| fps | 1589 |\n", + "| iterations | 30 |\n", + "| time_elapsed | 38 |\n", + "| total_timesteps | 61440 |\n", + "| train/ | |\n", + "| approx_kl | 0.0066356836 |\n", + "| clip_fraction | 0.0696 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.84 |\n", + "| explained_variance | 0.799 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.38 |\n", + "| n_updates | 290 |\n", + "| policy_gradient_loss | -0.00576 |\n", + "| std | 0.865 |\n", + "| value_loss | 2.67 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -46.4 |\n", + "| time/ | |\n", + "| fps | 1589 |\n", + "| iterations | 31 |\n", + "| time_elapsed | 39 |\n", + "| total_timesteps | 63488 |\n", + "| train/ | |\n", + "| approx_kl | 0.011593084 |\n", + "| clip_fraction | 0.118 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -3.79 |\n", + "| explained_variance | 0.722 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 1.06 |\n", + "| n_updates | 300 |\n", + "| policy_gradient_loss | -0.0136 |\n", + "| std | 0.849 |\n", + "| value_loss | 2.73 |\n", + "-----------------------------------------\n" + ] + } + ], + "source": [ + "# Initialize the RL environment and start training\n", + "rl_result = optimize_pulses(\n", + " objectives,\n", + " control_parameters,\n", + " tlist,\n", + " algorithm_kwargs,\n", + " optimizer_kwargs\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "9d46b2cb-e3e4-492b-84f7-2229058ff802", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Control Optimization Result\n", + "--------------------------\n", + "- Started at 2024-08-26 19:04:39\n", + "- Number of objectives: 1\n", + "- Final fidelity error: 0.002551819763576102\n", + "- Final parameters: [[3.4188188314437866, 13.0, 13.0], [13.0, 13.0, -13.0], [6.511582612991333, 13.0, 8.964270651340485], [-13.0, 7.0920491218566895, 13.0], [13.0, 13.0, 7.403999388217926], [-7.155267655849457, 6.941469728946686, -0.06780803203582764], [0.3478652387857437, 13.0, -13.0], [0.9450445175170898, 13.0, 10.478427648544312], [-2.7053715586662292, 6.866261005401611, -2.9162583351135254], [-12.548729062080383, 13.0, 0.3780375272035599], [5.524807989597321, -12.404477953910828, -1.3450259938836098], [9.932345569133759, 6.742649078369141, 0.8036832511425018], [10.077520310878754, 10.17627239227295, -0.3489200174808502], [-8.5400710105896, -13.0, 4.9227414727211], [3.7715193927288055, 13.0, -13.0], [-9.494724571704865, -13.0, -12.165066242218018], [-13.0, 0.28259196877479553, -0.2347586750984192], [-13.0, 13.0, -1.1993653178215027], [-13.0, 13.0, -3.2808731496334076], [-2.0000401735305786, 13.0, 13.0], [-6.9624924659729, -0.8900302052497864, 13.0], [13.0, 0.22511941194534302, -13.0], [12.91728287935257, 13.0, 13.0], [13.0, 13.0, -13.0], [5.803696125745773, 9.111721158027649, 13.0], [13.0, 13.0, -7.657740592956543], [13.0, 13.0, -6.739334225654602], [13.0, -0.5586533173918724, 13.0], [-3.2091493606567383, 9.593821465969086, -13.0], [13.0, -13.0, 6.971161603927612], [13.0, -4.907809913158417, -4.819970577955246], [3.572271406650543, 9.932078242301941, 13.0], [13.0, -13.0, -4.883280158042908], [9.99718976020813, 13.0, 7.891545414924622], [1.17414128780365, 11.88118064403534, 13.0], [-13.0, 13.0, 1.8821984380483627], [9.180704653263092, -9.39372307062149, 2.399792581796646], [-3.331559866666794, -0.2218501791357994, 13.0], [3.0872934609651566, 13.0, -4.681073755025864], [-0.13288933038711548, -6.234242260456085, 1.472162663936615], [3.661263346672058, 1.5755969360470772, -12.517065167427063], [1.5426646918058395, -4.089141249656677, 13.0], [4.887776285409927, -13.0, -10.995292067527771], [-13.0, -0.45841602236032486, 13.0], [3.2520944476127625, 3.0989434868097305, 6.663681507110596], [-13.0, -6.065039873123169, 11.589093923568726], [1.3966505825519562, 13.0, 1.652427151799202], [-13.0, -1.0330521911382675, 13.0], [1.4274927377700806, 13.0, 8.263666689395905], [-6.012888669967651, -1.4705532789230347, -9.972679376602173], [-7.9508408308029175, -11.454957842826843, -8.144261479377747], [2.247176080942154, 1.2720030546188354, 13.0], [13.0, 13.0, -11.275928676128387], [-0.48115187883377075, -11.333942472934723, 7.231829285621643], [2.05837282538414, -12.688138842582703, -13.0], [-7.996112048625946, -8.991393089294434, -7.918865442276001], [-13.0, 10.492306172847748, 3.85249462723732], [6.597911357879639, -13.0, 12.52410089969635], [13.0, -1.6222021728754044, 2.7806494385004044], [7.98918479681015, 5.118352651596069, -3.199215844273567], [13.0, -13.0, -11.10127592086792], [-0.3817961812019348, 13.0, -5.7455726861953735], [-13.0, 3.0795744955539703, 13.0], [-2.201941668987274, -3.7015785574913025, -13.0], [0.7181568741798401, -7.438749551773071, 10.924750328063965], [13.0, 3.264466255903244, -1.135591208934784], [13.0, -3.5049081444740295, 7.498368859291077], [13.0, -3.6533349752426147, -12.531098663806915], [-13.0, 6.673511385917664, 13.0], [-12.567341208457947, 9.32302713394165, 2.2332334369421005], [4.962125301361084, 10.5961754322052, -9.708646476268768], [2.4967450499534607, -9.764376759529114, 13.0], [-3.2077371776103973, 13.0, -1.0517201274633408], [-13.0, 13.0, -13.0], [-10.395427703857422, 11.5837721824646, 7.713315904140472], [-1.5034708976745605, -3.695146828889847, -9.910763382911682], [3.4931019842624664, -6.954262673854828, 13.0], [13.0, -4.445300787687302, -9.596865117549896], [13.0, -13.0, 11.766752362251282], [4.538477748632431, 13.0, 6.2513333559036255], [-6.342582851648331, 0.7486081123352051, 13.0], [-2.477048873901367, -4.575975179672241, -3.5929694771766663], [-7.137736439704895, -3.73245170712471, -2.05170476436615], [-9.719637095928192, 0.4852590262889862, 5.271544873714447], [11.546406865119934, -0.5641068816184998, 13.0], [13.0, -13.0, -1.4608764350414276], 42.0]\n", + "- Number of iterations: 641\n", + "- Reason for termination: Stop training because an episode with infidelity <= target infidelity was found\n", + "- Optimized time parameter: 42.0\n", + "- Ended at 2024-08-26 19:05:21 (42.0s)\n" + ] + } + ], + "source": [ + "print(rl_result)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a8d8739f-1c54-432d-b2ae-ff1e71d217d7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'hinton')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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fETpyEfENxn71a9+pdjYWK1fv16DBg2qt19cXJzi4uJsrAwAAHNinA7FmBjNCEbpyIdl4aNmxKOu0Q1JKikpUWJiYq32pKQk9ezZs9GRDwAAWjunyfARiNLwYdm0S81aj5+u65Akv9+vM2fO1LkepLCwUPv379f1119vVSkAAEREzciHmSMaWRY+asLD5s2ba723adOmsD4/9te//lWBQEBjxoyxqhQAACLCrvCxZMkSpaWlye12KyMjQ3v27Km376pVq2rdYeN2u8P6BINBzZ49W126dFH79u2VlZVV52CCVSwLH0OHDlX37t21Zs0a7du3L9ReXFys+fPny+VyaeLEibXOe/3115Wamqr09HSrSgEAICLsCB/r1q3T9OnTNWfOHH300Ue66qqrlJ2drePHj9d7jsfj0bFjx0LHjzf9lKQnnnhCzzzzjJYuXardu3erQ4cOys7O1tmzZ03XZ4Rl4SM2NlbLly9XIBDQddddpylTpmjGjBm66qqr9D//8z+aP3++0tLSws4pLi7W1q1bNXr06Khd8QsAaDtinVKs02HiMP8ZTz/9tPLy8pSbm6vevXtr6dKlio+P18qVK+s9x+FwyOfzhY6UlJTQe8FgUIsXL9asWbN04403qm/fvnrhhRf07bffttgjUCx9tssvf/lLbd++Xb/4xS+0bt06Pffcc0pJSdHatWs1Y8aMWv3feecdVVZWMuUCAGgTmjryYXQTzYqKCu3du1dZWVmhNqfTqaysLO3ataveus6cOaNu3bqpa9euuvHGG/X555+H3jt06JD8fn/YNRMSEpSRkdHgNZvD8ltt09PT9e677xrqu379eiUmJmrw4MFWlwEAgO3M3u1S/c++Xbt2DWufM2eO5s6dW6v/yZMnVV1dHTZyIUkpKSn64osv6vyMnj17auXKlerbt6+Ki4u1aNEiXXPNNfr888918cUXy+/3h67x02vWvGe1iO3zcfbsWb377rsaO3asYmMjvt0IAAARc/ToUXk8ntBrK/e1yszMVGZmZuj1Nddco169euk//uM/NG/ePMs+x4yI/av/wQcfyO126+abb45UCQAAWCrG4VSM0/iKhhjHub4ejycsfNQnOTlZMTExKiwsDGsvLCyUz+cz9Jnt2rXT1VdfrYMHD0pS6LzCwkJ16dIl7Jo/flCslSxd82HGDTfcoJMnT2rUqFGR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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We can show in this case the hinton matrix\n", + "fig, ax = qt.hinton(rl_result._final_states[0])\n", + "ax.set_title('hinton')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5022f446-a4de-4961-9e25-4e3b3488f2e7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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qGg/odPOZVdBQYEWL16shQsXasyYMdq7d6/Ky8sDizyPHDmib775JlA/PT1dmzdv1p49e3TjjTfqySef1FNPPRVy26opRtdcvP/++8rLy1NiYqKmTZumfv366Y033lBBQYFqamo0d+7cQN077rhDSUlJeuuttzRt2jST3QAAICrsTnXYnRZpV1RUpKKiopCfbdu27YKynJwc/e///m9E94qEsZGL1tZWFRYWyul0avv27Vq5cqWWLFmiP/7xj7r++us1f/58HT58OFC/T58+uvvuu7Vp06YO9/MCAIDex1i42Lp1qw4ePKgHH3xQY8aMCZQnJSVp/vz5am5u1po1a4LaTJ06Vd9++23QwhQAAHorWwdo2d222osYCxftwzATJ0684LO8vDxJ0gcffBBUPmnSJCUmJqqsrOyi39/U1BT2CWYAAERDT7247FJnLFx8+eWXkqTrrrvugs88Ho+uuuqqQJ12ffv21cSJE7Vx48agLTKhlJaWBp1e1tkJZgAAREN3b0XtLYyFi4aGBkn+aZBQ3G53oM75pk6dqrq6Ou3atavT73/mmWfU0NAQdJ2/1QYAgGiL9N0isSbqJ3ROnjxZ8fHxKisr0/jx4zus53K5jB6HCgCAaXFOh+JsvXKdcNGp9hGLUKMTkv+Nb/3797+gPCUlRcOGDbvoyAUAAJc6p81wYcVouDA2LdK+1uL76yokyev16tSpUyHXY9TW1mr//v269dZbTXUFAICoaB+5sHPFImPhoj0cvPfeexd8tnnz5qA65/v9738vy7I0ZcoUU10BACAqCBd+xsLFhAkTNHToUK1bt0579+4NlDc0NOiFF15QQkKCZsyYcUG7N998U4MHD1ZWVpaprgAAEBWECz9jay7i4+O1atUq5eXl6ZZbbgk6/vvw4cNavHixMjIygto0NDRo69atKiwsjNkVswCAy0e8U4q3taCzGzsTRUZ3i9x+++3asWOHSkpKtGHDBrW0tGjUqFF68cUXVVBQcEH9d955Ry0tLUyJAABigt3RiFhd0Gl8K2pWVpbefffdsOqWlZWpf//+uu2220x3AwCAHmd3t0hbjIaLqA3InDt3Tu+++67+9m//VvHxUT9uAwAAGBK1f9U//PBDJSYm6v77749WFwAAMCrO4VScM/z/bo9zxOaii6iFizvvvFMnTpyI1u0BADDO7poLdoucp32N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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# for the hadamard matrix\n", + "U = qt.gates.hadamard_transform()\n", + "fig, ax = qt.hinton(U)" + ] + }, + { + "cell_type": "markdown", + "id": "cababff9-b1f3-41ef-b0e9-d0fea38a9e4b", + "metadata": {}, + "source": [ + "We are using PSU norm in the infidelity calculation, so the found transformation is correct, independently of the global phase." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d3812ffe-d30c-47f1-84a6-f33ddc76edea", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials-v5/quantum-optimal-control/Two_Qubits_RL.ipynb b/tutorials-v5/quantum-optimal-control/Two_Qubits_RL.ipynb new file mode 100644 index 0000000..182aef7 --- /dev/null +++ b/tutorials-v5/quantum-optimal-control/Two_Qubits_RL.ipynb @@ -0,0 +1,713 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c3371bed", + "metadata": {}, + "source": [ + "# Quantum Optimal Control with Reinforcement Learning\n", + "\n", + "In this notebook, we will demonstrate how to use the `_RL` module to solve a quantum optimal control problem using reinforcement learning (RL).\n", + "The goal is to use 2 Qubits to realize CNOT gate. In practice there is a control qubit and a target qubit, if the control qubit is in the state |0⟩ the target qubit remains unchanged, if the control qubit is in the state |1⟩ the CNOT gate flips the state of the target qubit.\n" + ] + }, + { + "cell_type": "markdown", + "id": "c81d453d", + "metadata": {}, + "source": [ + "### Setup and Import Required Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f1e015e6", + "metadata": {}, + "outputs": [], + "source": [ + "# If you are running this in an environment where some packages are missing, use this cell to install them:\n", + "# !pip install qutip stable-baselines3 gymnasium\n", + "\n", + "import qutip as qt\n", + "import numpy as np\n", + "from stable_baselines3 import PPO\n", + "from qutip_qoc import Objective\n", + "#from _rl import _RL\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0131f1b2-b218-435c-a1e6-5c1acad6ac6b", + "metadata": {}, + "outputs": [], + "source": [ + "#this is just for using local files (not yet merged in github)\n", + "import sys\n", + "import os\n", + "\n", + "module_path = os.path.abspath(os.path.join('..', 'Github', 'qutip-qoc', 'src', 'qutip_qoc'))\n", + "\n", + "sys.path.append(module_path)\n", + "\n", + "from _rl import _RL\n", + "from pulse_optim import optimize_pulses" + ] + }, + { + "cell_type": "markdown", + "id": "b4b725c0", + "metadata": {}, + "source": [ + "### Define the Quantum Control Problem" + ] + }, + { + "cell_type": "markdown", + "id": "7e895742", + "metadata": {}, + "source": [ + "The system starts from an initial state represented by the identity on two qubits, with the goal of achieving a CNOT gate as the target state. To accomplish this, control operators based on the Pauli matrices are defined to act on individual qubits and pairs of qubits. Additionally, a drift Hamiltonian is introduced to account for interactions between the qubits and noise, thereby modeling the dynamics of the open quantum system." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6c414871", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the initial and target states\n", + "initial = qt.tensor(qt.qeye(2), qt.qeye(2))\n", + "target = qt.gates.cnot()\n", + "\n", + "# convert to superoperator (for open system)\n", + "initial = qt.sprepost(initial, initial.dag())\n", + "target = qt.sprepost(target, target.dag())\n", + "\n", + "# single qubit control operators\n", + "sx, sy, sz = qt.sigmax(), qt.sigmay(), qt.sigmaz()\n", + "identity = qt.qeye(2)\n", + "\n", + "# two qubit control operators\n", + "i_sx, sx_i = qt.tensor(sx, identity), qt.tensor(identity, sx)\n", + "i_sy, sy_i = qt.tensor(sy, identity), qt.tensor(identity, sy)\n", + "i_sz, sz_i = qt.tensor(sz, identity), qt.tensor(identity, sz)\n", + "\n", + "# Define the control Hamiltonians\n", + "Hc = [i_sx, i_sy, i_sz, sx_i, sy_i, sz_i]\n", + "Hc = [qt.liouvillian(H) for H in Hc]\n", + "\n", + "# drift and noise term for a two-qubit system\n", + "omega, delta, gamma = 0.1, 1.0, 0.1\n", + "i_sm, sm_i = qt.tensor(qt.sigmam(), identity), qt.tensor(identity, qt.sigmam())\n", + "\n", + "# energy levels and interaction\n", + "Hd = omega * (i_sz + sz_i) + delta * i_sz * sz_i\n", + "Hd = qt.liouvillian(H=Hd, c_ops=[gamma * (i_sm + sm_i)])\n", + "\n", + "# combined operator list\n", + "H = [Hd, Hc[0], Hc[1], Hc[2], Hc[3], Hc[4], Hc[5]]\n", + "\n", + "# Define the objective\n", + "objectives = [Objective(initial, H, target)]\n", + "\n", + "# Define the control parameters with bounds\n", + "control_parameters = {\n", + " \"p\": {\"bounds\": [(-30, 30)]}\n", + "}\n", + "\n", + "# Define the time interval\n", + "tlist = np.linspace(0, np.pi, 100)\n", + "\n", + "# Define algorithm-specific settings\n", + "algorithm_kwargs = {\n", + " \"fid_err_targ\": 0.01,\n", + " \"alg\": \"RL\",\n", + " \"max_iter\": 400,\n", + " \"shorter_pulses\": False,\n", + "}\n", + "optimizer_kwargs = {}\n" + ] + }, + { + "cell_type": "markdown", + "id": "eab0e4f0-3b42-4f32-a3dc-bb752c8dbe8c", + "metadata": {}, + "source": [ + "Note that `max_iter` defines the number of episodes, the 100 in `tlist` defines the maximum number of steps per episode" + ] + }, + { + "cell_type": "markdown", + "id": "a6273e17", + "metadata": {}, + "source": [ + "### Initialize and Train the RL Environment" + ] + }, + { + "cell_type": "markdown", + "id": "e7b27df4", + "metadata": {}, + "source": [ + "Now we will call the `optimize_pulses()` method, passing it the control problem we defined.\n", + "The method will create an instance of the `_RL` class, which will set up the reinforcement learning environment and start training.\n", + "Finally it returns the optimization results through an object of the `Result` class." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1c4b0b58", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using cpu device\n", + "Wrapping the env with a `Monitor` wrapper\n", + "Wrapping the env in a DummyVecEnv.\n", + "---------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 573 |\n", + "| iterations | 1 |\n", + "| time_elapsed | 3 |\n", + "| total_timesteps | 2048 |\n", + "---------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 520 |\n", + "| iterations | 2 |\n", + "| time_elapsed | 7 |\n", + "| total_timesteps | 4096 |\n", + "| train/ | |\n", + "| approx_kl | 0.009919285 |\n", + "| clip_fraction | 0.0753 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.51 |\n", + "| explained_variance | 0.0116 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.908 |\n", + "| n_updates | 10 |\n", + "| policy_gradient_loss | -0.0134 |\n", + "| std | 1 |\n", + "| value_loss | 36.2 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.5 |\n", + "| time/ | |\n", + "| fps | 501 |\n", + "| iterations | 3 |\n", + "| time_elapsed | 12 |\n", + "| total_timesteps | 6144 |\n", + "| train/ | |\n", + "| approx_kl | 0.008348271 |\n", + "| clip_fraction | 0.0497 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.51 |\n", + "| explained_variance | 0.641 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 8.07 |\n", + "| n_updates | 20 |\n", + "| policy_gradient_loss | -0.0114 |\n", + "| std | 1 |\n", + "| value_loss | 49.9 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.5 |\n", + "| time/ | |\n", + "| fps | 495 |\n", + "| iterations | 4 |\n", + "| time_elapsed | 16 |\n", + "| total_timesteps | 8192 |\n", + "| train/ | |\n", + "| approx_kl | 0.010809683 |\n", + "| clip_fraction | 0.085 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.54 |\n", + "| explained_variance | 0.731 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 4.86 |\n", + "| n_updates | 30 |\n", + "| policy_gradient_loss | -0.0133 |\n", + "| std | 1.01 |\n", + "| value_loss | 35.4 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.5 |\n", + "| time/ | |\n", + "| fps | 493 |\n", + "| iterations | 5 |\n", + "| time_elapsed | 20 |\n", + "| total_timesteps | 10240 |\n", + "| train/ | |\n", + "| approx_kl | 0.0126280505 |\n", + "| clip_fraction | 0.113 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.54 |\n", + "| explained_variance | 0.848 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 2.63 |\n", + "| n_updates | 40 |\n", + "| policy_gradient_loss | -0.0143 |\n", + "| std | 1 |\n", + "| value_loss | 21.6 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.5 |\n", + "| time/ | |\n", + "| fps | 489 |\n", + "| iterations | 6 |\n", + "| time_elapsed | 25 |\n", + "| total_timesteps | 12288 |\n", + "| train/ | |\n", + "| approx_kl | 0.010566739 |\n", + "| clip_fraction | 0.0949 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.5 |\n", + "| explained_variance | 0.917 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.961 |\n", + "| n_updates | 50 |\n", + "| policy_gradient_loss | -0.00888 |\n", + "| std | 0.994 |\n", + "| value_loss | 12.3 |\n", + "-----------------------------------------\n", + "------------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.5 |\n", + "| time/ | |\n", + "| fps | 490 |\n", + "| iterations | 7 |\n", + "| time_elapsed | 29 |\n", + "| total_timesteps | 14336 |\n", + "| train/ | |\n", + "| approx_kl | 0.0142566655 |\n", + "| clip_fraction | 0.14 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.45 |\n", + "| explained_variance | 0.957 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.301 |\n", + "| n_updates | 60 |\n", + "| policy_gradient_loss | -0.0113 |\n", + "| std | 0.984 |\n", + "| value_loss | 5.71 |\n", + "------------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.5 |\n", + "| time/ | |\n", + "| fps | 492 |\n", + "| iterations | 8 |\n", + "| time_elapsed | 33 |\n", + "| total_timesteps | 16384 |\n", + "| train/ | |\n", + "| approx_kl | 0.015264266 |\n", + "| clip_fraction | 0.148 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.4 |\n", + "| explained_variance | 0.981 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.15 |\n", + "| n_updates | 70 |\n", + "| policy_gradient_loss | -0.0133 |\n", + "| std | 0.982 |\n", + "| value_loss | 2.23 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 491 |\n", + "| iterations | 9 |\n", + "| time_elapsed | 37 |\n", + "| total_timesteps | 18432 |\n", + "| train/ | |\n", + "| approx_kl | 0.017051091 |\n", + "| clip_fraction | 0.175 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.38 |\n", + "| explained_variance | 0.992 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.107 |\n", + "| n_updates | 80 |\n", + "| policy_gradient_loss | -0.019 |\n", + "| std | 0.974 |\n", + "| value_loss | 1.01 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 491 |\n", + "| iterations | 10 |\n", + "| time_elapsed | 41 |\n", + "| total_timesteps | 20480 |\n", + "| train/ | |\n", + "| approx_kl | 0.016767085 |\n", + "| clip_fraction | 0.199 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.33 |\n", + "| explained_variance | 0.996 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.0812 |\n", + "| n_updates | 90 |\n", + "| policy_gradient_loss | -0.0207 |\n", + "| std | 0.968 |\n", + "| value_loss | 0.538 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 491 |\n", + "| iterations | 11 |\n", + "| time_elapsed | 45 |\n", + "| total_timesteps | 22528 |\n", + "| train/ | |\n", + "| approx_kl | 0.016128123 |\n", + "| clip_fraction | 0.186 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.28 |\n", + "| explained_variance | 0.995 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.29 |\n", + "| n_updates | 100 |\n", + "| policy_gradient_loss | -0.0204 |\n", + "| std | 0.96 |\n", + "| value_loss | 0.619 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 491 |\n", + "| iterations | 12 |\n", + "| time_elapsed | 50 |\n", + "| total_timesteps | 24576 |\n", + "| train/ | |\n", + "| approx_kl | 0.014264241 |\n", + "| clip_fraction | 0.183 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.26 |\n", + "| explained_variance | 0.995 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.233 |\n", + "| n_updates | 110 |\n", + "| policy_gradient_loss | -0.02 |\n", + "| std | 0.957 |\n", + "| value_loss | 0.672 |\n", + "-----------------------------------------\n", + "----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.6 |\n", + "| time/ | |\n", + "| fps | 490 |\n", + "| iterations | 13 |\n", + "| time_elapsed | 54 |\n", + "| total_timesteps | 26624 |\n", + "| train/ | |\n", + "| approx_kl | 0.01653198 |\n", + "| clip_fraction | 0.199 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.23 |\n", + "| explained_variance | 0.996 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.528 |\n", + "| n_updates | 120 |\n", + "| policy_gradient_loss | -0.0205 |\n", + "| std | 0.954 |\n", + "| value_loss | 0.824 |\n", + "----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.8 |\n", + "| time/ | |\n", + "| fps | 490 |\n", + "| iterations | 14 |\n", + "| time_elapsed | 58 |\n", + "| total_timesteps | 28672 |\n", + "| train/ | |\n", + "| approx_kl | 0.018434964 |\n", + "| clip_fraction | 0.207 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.21 |\n", + "| explained_variance | 0.994 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.299 |\n", + "| n_updates | 130 |\n", + "| policy_gradient_loss | -0.0274 |\n", + "| std | 0.95 |\n", + "| value_loss | 0.804 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -88.9 |\n", + "| time/ | |\n", + "| fps | 488 |\n", + "| iterations | 15 |\n", + "| time_elapsed | 62 |\n", + "| total_timesteps | 30720 |\n", + "| train/ | |\n", + "| approx_kl | 0.018158613 |\n", + "| clip_fraction | 0.196 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.17 |\n", + "| explained_variance | 0.995 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.368 |\n", + "| n_updates | 140 |\n", + "| policy_gradient_loss | -0.0249 |\n", + "| std | 0.944 |\n", + "| value_loss | 0.86 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -89.1 |\n", + "| time/ | |\n", + "| fps | 486 |\n", + "| iterations | 16 |\n", + "| time_elapsed | 67 |\n", + "| total_timesteps | 32768 |\n", + "| train/ | |\n", + "| approx_kl | 0.017807882 |\n", + "| clip_fraction | 0.224 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.13 |\n", + "| explained_variance | 0.995 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.318 |\n", + "| n_updates | 150 |\n", + "| policy_gradient_loss | -0.028 |\n", + "| std | 0.939 |\n", + "| value_loss | 0.895 |\n", + "-----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -89.4 |\n", + "| time/ | |\n", + "| fps | 485 |\n", + "| iterations | 17 |\n", + "| time_elapsed | 71 |\n", + "| total_timesteps | 34816 |\n", + "| train/ | |\n", + "| approx_kl | 0.019113595 |\n", + "| clip_fraction | 0.209 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.07 |\n", + "| explained_variance | 0.995 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.192 |\n", + "| n_updates | 160 |\n", + "| policy_gradient_loss | -0.024 |\n", + "| std | 0.929 |\n", + "| value_loss | 0.63 |\n", + "-----------------------------------------\n", + "----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -89.5 |\n", + "| time/ | |\n", + "| fps | 483 |\n", + "| iterations | 18 |\n", + "| time_elapsed | 76 |\n", + "| total_timesteps | 36864 |\n", + "| train/ | |\n", + "| approx_kl | 0.02225456 |\n", + "| clip_fraction | 0.218 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -8.01 |\n", + "| explained_variance | 0.997 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.176 |\n", + "| n_updates | 170 |\n", + "| policy_gradient_loss | -0.0213 |\n", + "| std | 0.924 |\n", + "| value_loss | 0.488 |\n", + "----------------------------------------\n", + "-----------------------------------------\n", + "| rollout/ | |\n", + "| ep_len_mean | 100 |\n", + "| ep_rew_mean | -89.6 |\n", + "| time/ | |\n", + "| fps | 482 |\n", + "| iterations | 19 |\n", + "| time_elapsed | 80 |\n", + "| total_timesteps | 38912 |\n", + "| train/ | |\n", + "| approx_kl | 0.015925717 |\n", + "| clip_fraction | 0.172 |\n", + "| clip_range | 0.2 |\n", + "| entropy_loss | -7.96 |\n", + "| explained_variance | 0.996 |\n", + "| learning_rate | 0.0003 |\n", + "| loss | 0.223 |\n", + "| n_updates | 180 |\n", + "| policy_gradient_loss | -0.0178 |\n", + "| std | 0.915 |\n", + "| value_loss | 0.578 |\n", + "-----------------------------------------\n" + ] + } + ], + "source": [ + "# Initialize the RL environment and start training\n", + "rl_result = optimize_pulses(\n", + " objectives,\n", + " control_parameters,\n", + " tlist,\n", + " algorithm_kwargs,\n", + " optimizer_kwargs\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "b5fa66a4", + "metadata": {}, + "source": [ + "### Analyze the Results" + ] + }, + { + "cell_type": "markdown", + "id": "afdc0129", + "metadata": {}, + "source": [ + "After the training is complete, we can analyze the results obtained by the RL agent. \n", + "In the above window showing the output produced by Gymansium, you can observe how during training the number of steps per episode (ep_len_mean) decreases and the average reward of the episodes (ep_rew_mean) increases." + ] + }, + { + "cell_type": "markdown", + "id": "3172a7d8-5621-4366-a7a1-847aa01974cf", + "metadata": {}, + "source": [ + "We can now see the fields of the `Result` class, this includes the final infidelity, the optimized control parameters and more." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "32521c12-5ff1-4199-a9d2-bc56bfd58b51", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Control Optimization Result\n", + "--------------------------\n", + "- Started at 2024-08-26 18:54:31\n", + "- Number of objectives: 1\n", + "- Final fidelity error: 0.9678450426696734\n", + "- Final parameters: [[-3.1087526679039, -8.416411578655243, 30.0, 17.213022708892822, 14.167898297309875, 30.0], [30.0, -18.649579882621765, 30.0, 4.698044657707214, 8.504285216331482, -13.694652915000916], [30.0, 30.0, -30.0, -30.0, 0.3120405972003937, -30.0], [30.0, -9.982881546020508, -7.644322514533997, -30.0, -21.7467999458313, 22.356192469596863], [-16.941781640052795, 23.70549201965332, -5.7092490792274475, -3.1341876089572906, -30.0, -22.90980041027069], [2.145122140645981, -29.785653948783875, 30.0, 24.86776828765869, -30.0, 30.0], [18.50911259651184, 20.09882926940918, -21.215654611587524, 2.6178836077451706, -10.580383837223053, -30.0], [30.0, 28.613587617874146, 30.0, 1.297985091805458, -11.024004220962524, 17.568976879119873], [-12.576630413532257, 4.3459005653858185, -10.798923969268799, -3.521493226289749, 24.44423496723175, 9.873266816139221], [3.5593581944704056, 30.0, -30.0, 30.0, -29.55104112625122, 2.953566312789917], [-17.086318731307983, -30.0, 30.0, -30.0, -2.630687803030014, -30.0], [-30.0, -8.527162671089172, 30.0, 3.3770348131656647, -17.610286474227905, 30.0], [21.06366991996765, -30.0, -30.0, 28.026187419891357, -30.0, -30.0], [-0.5829647183418274, -30.0, 0.39471566677093506, -29.881417751312256, -14.624554216861725, 30.0], [3.309006616473198, -20.649999976158142, -27.216011881828308, -15.278343558311462, -7.579786777496338, -30.0], [30.0, -25.959577560424805, -8.394513130187988, -30.0, 19.242825508117676, 30.0], [8.013235330581665, -24.82700228691101, 30.0, 15.088427066802979, 22.54744291305542, -0.40182530879974365], [27.49415874481201, -24.548481702804565, 17.323461771011353, -30.0, -0.5638691782951355, -14.158146679401398], [-1.352214775979519, 30.0, 30.0, 30.0, 2.332618832588196, -11.007753610610962], [10.588710308074951, 7.763637900352478, 8.27732115983963, -30.0, -0.5638763308525085, 12.999211549758911], [-30.0, -0.6728419661521912, 26.35693609714508, 30.0, -30.0, 9.728605449199677], [-13.936073184013367, -30.0, -11.035144329071045, 30.0, -18.027353882789612, -30.0], [30.0, -22.465408444404602, 0.19662916660308838, 2.70523801445961, -30.0, 30.0], [-18.623807430267334, 20.45433282852173, -25.64580202102661, 30.0, -30.0, -30.0], [30.0, -30.0, 22.24388301372528, 8.658326268196106, -9.13745105266571, 30.0], [-30.0, 21.34746015071869, -30.0, 20.93157649040222, -30.0, -11.851279735565186], [30.0, 8.799038529396057, -30.0, 30.0, 30.0, 5.615948438644409], [-18.51969301700592, -4.786216467618942, -30.0, -11.014840006828308, -30.0, -30.0], [1.8015557527542114, 30.0, 25.55101454257965, 30.0, 7.317472994327545, 7.97799825668335], [10.583961009979248, -30.0, 30.0, 18.709394931793213, -30.0, 30.0], [5.546256601810455, 30.0, -30.0, -30.0, -9.384287595748901, -30.0], [2.721581608057022, 30.0, -17.415393590927124, 30.0, -30.0, 7.490333318710327], [-22.799490094184875, 30.0, 12.259226739406586, 26.91823661327362, -1.8036991730332375, 1.768445000052452], [-8.539204895496368, 30.0, 21.05818748474121, -8.289629817008972, -30.0, -29.166247844696045], [-28.006927371025085, -10.715399980545044, -20.410330295562744, 7.698541581630707, 20.006970763206482, -30.0], [19.758925437927246, 19.55112934112549, 3.5737384110689163, 30.0, -12.892876267433167, -23.32941770553589], [2.4562114477157593, 30.0, 9.713201522827148, 3.1446851044893265, 16.7449289560318, 20.437912344932556], [-30.0, -30.0, 1.2014302611351013, -7.873741686344147, -30.0, -4.170540869235992], [-21.027299165725708, -30.0, 30.0, 30.0, -1.749400980770588, 28.96402359008789], [-30.0, -30.0, 10.804772078990936, -30.0, -23.41088891029358, -30.0], [30.0, 28.936269879341125, 30.0, 12.618644535541534, 26.150214672088623, 30.0], [-23.830032348632812, 12.627696096897125, 6.235614717006683, 30.0, -30.0, -30.0], [30.0, -14.821178913116455, 28.844250440597534, 4.8175786435604095, -14.676317274570465, 5.136289000511169], [-30.0, 30.0, -3.2001489400863647, 8.161829710006714, 30.0, 30.0], [-11.257586181163788, 30.0, 22.495551109313965, 14.006163775920868, -30.0, -9.58780825138092], [30.0, -3.2841461151838303, -2.8722088783979416, -30.0, -22.224994897842407, -20.68937122821808], [-3.8243257999420166, 30.0, -13.638724386692047, 30.0, -9.664212763309479, -20.168482661247253], [3.2078522443771362, 6.73091322183609, 27.41309881210327, 8.935953676700592, 0.37857480347156525, 1.48747980594635], [5.261540114879608, 23.693813681602478, 23.72292995452881, -30.0, -10.060108602046967, 30.0], [-6.126531958580017, 4.584648460149765, -13.129574060440063, 18.980677127838135, 30.0, -30.0], [30.0, -17.47907280921936, 5.239324271678925, 30.0, 18.152443170547485, 7.376201748847961], [-30.0, -30.0, 10.558403134346008, -11.307235658168793, 30.0, 22.211179733276367], [29.367637038230896, -11.977027952671051, 11.857212781906128, -20.733482837677002, 3.149323984980583, -9.324101507663727], [23.380256295204163, -22.276305556297302, 30.0, -9.564227163791656, -30.0, 24.627222418785095], [30.0, 22.601636052131653, -16.67562246322632, -20.180422067642212, -10.760060548782349, -30.0], [-30.0, -10.561510026454926, 8.180200159549713, 9.38538283109665, 20.21921396255493, 20.276060700416565], [30.0, -6.746397614479065, -21.764763593673706, -0.12885242700576782, 11.00729763507843, -30.0], [-9.224560260772705, -8.080736696720123, 30.0, 30.0, -1.0702532529830933, 1.7416155338287354], [5.196931958198547, 9.266873002052307, 30.0, 30.0, -9.557740688323975, 30.0], [16.014232635498047, 15.875131487846375, -7.712865471839905, 26.462870836257935, -10.527227818965912, -30.0], [-20.52076756954193, -30.0, 30.0, 22.811327576637268, 30.0, 20.069124698638916], [-23.37564468383789, -30.0, 24.346659779548645, -22.068958282470703, -9.679112434387207, -7.289157807826996], [-4.739203155040741, -30.0, -17.470232248306274, -16.068751215934753, 22.664607167243958, 17.942445874214172], [-10.336931347846985, -19.98522698879242, -24.442450404167175, -25.539121627807617, -30.0, -30.0], [-5.9700992703437805, -30.0, 22.532195448875427, 15.415359735488892, -25.71263015270233, 30.0], [30.0, -4.535705745220184, 30.0, 21.750606894493103, -30.0, -30.0], [-26.964715719223022, -15.222809314727783, 22.532747983932495, 30.0, -28.782237768173218, 30.0], [30.0, -3.271692842245102, 7.541305124759674, 23.899844884872437, -30.0, -19.538832306861877], [30.0, 11.78169071674347, 9.983564615249634, 17.42326319217682, 16.275426149368286, 22.99768567085266], [-10.316378474235535, -30.0, -12.636566162109375, 28.725385665893555, -21.886146068572998, -30.0], [-30.0, 25.093143582344055, -29.264066219329834, 24.33700919151306, -30.0, 30.0], [1.1465048789978027, 0.2423576731234789, -8.476797938346863, 30.0, -30.0, -20.919764041900635], [-14.426280856132507, 28.92910659313202, -30.0, -30.0, 15.197673439979553, 3.501485288143158], [24.403620958328247, -12.611689567565918, 20.203712582588196, 25.027851462364197, -5.033597052097321, -14.513703882694244], [-11.130014955997467, -21.518633365631104, -3.0117693543434143, 9.756401181221008, 30.0, 30.0], [29.35376286506653, 25.172159671783447, 8.696078360080719, -12.456485331058502, -14.965754449367523, -30.0], [30.0, -6.100337952375412, 2.966141849756241, -24.583967328071594, -3.6252542585134506, 2.9131007194519043], [9.153912663459778, -13.541809916496277, -6.093204617500305, -16.800130605697632, 10.854100584983826, 20.1009339094162], [-26.10504984855652, 26.41999840736389, 18.10444414615631, 9.271708130836487, -14.027472138404846, 15.704569816589355], [-0.4124414920806885, -30.0, 24.955875277519226, -18.137421011924744, 30.0, -15.995977520942688], [30.0, -5.882952064275742, -16.29595935344696, 6.000301837921143, 29.16996717453003, -30.0], [2.2801566123962402, 8.071172833442688, 2.7869027853012085, -21.832353472709656, -24.894644021987915, 24.334484338760376], [21.568551063537598, 28.29891085624695, -1.2894871830940247, -30.0, 25.257071256637573, -19.727632999420166], [2.6807785034179688, -26.929922103881836, -30.0, 0.5336201190948486, 28.995829224586487, 30.0], [17.6004695892334, 30.0, 14.325123131275177, 6.6842275857925415, 6.812509596347809, -29.09172534942627], [30.0, 22.988394498825073, 29.93071138858795, -30.0, -24.49855327606201, 30.0], [12.698577046394348, -27.501500844955444, 9.532395601272583, -26.67670726776123, 30.0, -30.0], [30.0, 8.755772709846497, 27.297150492668152, -17.473171949386597, -19.227054119110107, 19.75345730781555], [-16.802916526794434, 30.0, 23.78861367702484, -30.0, 7.9971760511398315, -13.027499914169312], [29.833139777183533, -5.583303272724152, 6.027087718248367, 30.0, 18.115296363830566, 30.0], [-25.46385169029236, 5.029732435941696, -30.0, 0.0949627161026001, 3.2119931280612946, -30.0], [-27.962322235107422, 30.0, 5.715133398771286, -2.7688899636268616, -12.89980262517929, 30.0], [-19.072067141532898, 14.59810495376587, 20.751537680625916, -12.960581481456757, -18.418128490447998, -25.064170360565186], [27.535747289657593, -2.6648537814617157, 30.0, 30.0, -23.544312715530396, -8.650515675544739], [30.0, -6.306121498346329, -30.0, 8.04179459810257, -14.27808701992035, 29.375606775283813], [-13.90311062335968, 22.851226329803467, -30.0, 6.758987009525299, 18.53027880191803, -24.978879690170288], [28.30285906791687, -30.0, -30.0, 30.0, 22.073732614517212, 12.210258543491364], [-30.0, -25.621742606163025, 7.907553613185883, -2.5500932335853577, -30.0, 0.6186537444591522], [-30.0, 14.853196442127228, -3.790283203125, -2.2404947876930237, 11.038969159126282, 5.507649779319763], [-10.339385569095612, 30.0, 18.92696499824524, 15.41258454322815, -30.0, -23.514423966407776], 83.0]\n", + "- Number of iterations: 400\n", + "- Reason for termination: Reached 400 episodes, stopping training.\n", + "- Optimized time parameter: 83.0\n", + "- Ended at 2024-08-26 18:55:54 (83.0s)\n" + ] + } + ], + "source": [ + "print(rl_result)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "0742940e-889c-4bac-bc5b-61ed07a78c46", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'hinton')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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oMrKSsPtPNfp06fp4osvJgD0/PPPhy1PROR2u+n6668nADRv3jy/57QGF6HqINJ+jOqpV8sxqredgYQ7Rhnj4CKIaAYXRN5fUunp6dSzZ0/67LPPqEuXLtStWzc6cuSI4Xpbf+W1Pn7vvfcSAHr66acjamtbJ06coAsuuIAA0Msvvxy23lYjR44kALRmzRpfL8vKlSvblQt14tZaR6u1a9f69mnjxo0EgK699tp2v7L01DtjxgwCQE888QS5XC664oor2v161tvOtj766COy2+2UmZkZ9Jdr6y/U9PR0+s9//uPrVRgyZIhf71S44EJrPa1aewskSaL33nuPfvjDH5IQgt5++21Dde7du5e6dOlCPXv2pBMnTvh6w84NsPW2sy1VVWnMmDEEgCZPnhyybFszZ84kADRq1ChSFMXvOa3BRag6Wmk9RvXUq+UY1dvOtrQco4xxcBFEtIMLIqJnn32WAJDdbicAtH79+ojr/dWvfuXrphZC0PDhwzV1WWoJLjweD914440EgObMmaOpra0OHDhAWVlZvn3Nz88PWC7UiVtrHW0VFBT4/sYZGRn07bffRlRvU1MTDRgwgGw2G/3iF78gAPTQQw9F3E4iokOHDtH5559PQgh67bXXQpZ9++23fb9QBwwYELB3KlxwobWetj777DOyWq2+fbv33nsjqnPlypW+v1FOTg7l5ORQbW1txO1s9fDDDxMAGjZsGDmdzrDliYhWrVpFAKh///506tSpds9rCS7C1dGWlmNUT71ajlEj7STSd4yy5MbBRRAdEVyoqkp9+vTRdQEKV2/rrzwAlJmZqbkrXktwMXv2bN/979YuVz3mz59PAMhqtdKhQ4cClgl34tZSR1v/+c9/CAABoN///vcRta3Vxx9/TBaLhQAE/fWst51Op5OuvvpqAkAPP/xw2PJERCUlJb59C9SNriW40FLPuVq77rt3706NjY0R19nauwOANm3aZFo7//SnP5EQgs4//3xN4yOIiP7xj39QSkoKZWRk0K5duwKWCXeMaqmjLa3HqJ56tRyjettp5BhlyYuDiyA6IrhovW8JgLKzszWfAMPVu2zZMgJA999/v6b6tNT50ksvEQC64IIL6MSJE5rrbdU6JqR1f1esWBGwXKgTt9Y62mq9Xw+AfvKTnwTs9jVS789//nMCQG+++aYp9d1zzz0EgMaMGaN5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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We can show the hinton matrix\n", + "fig, ax = qt.hinton(rl_result._final_states[0])\n", + "ax.set_title('hinton')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5802870-966c-4dd6-9fdc-df971cbfb0c7", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}