Files
easy-rl/codes/QLearning/main.ipynb
JohnJim0816 312b57fdff update
2021-04-04 16:59:03 +08:00

152 lines
82 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"metadata": {
"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.10-final"
},
"orig_nbformat": 2,
"kernelspec": {
"name": "python3",
"display_name": "Python 3.7.10 64-bit ('py37': conda)",
"metadata": {
"interpreter": {
"hash": "fbea1422c2cf61ed9c0cfc03f38f71cc9083cc288606edc4170b5309b352ce27"
}
}
}
},
"nbformat": 4,
"nbformat_minor": 2,
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"from pathlib import Path\n",
"curr_path = str(Path().absolute())\n",
"parent_path = str(Path().absolute().parent)\n",
"sys.path.append(parent_path) # add current terminal path to sys.path\n",
"\n",
"import gym\n",
"\n",
"from envs.gridworld_env import CliffWalkingWapper, FrozenLakeWapper\n",
"from QLearning.agent import QLearning\n",
"from common.plot import plot_rewards\n",
"from common.utils import save_results"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"class QlearningConfig:\n",
" '''训练相关参数'''\n",
" def __init__(self):\n",
" self.train_eps = 200 # 训练的episode数目\n",
" self.gamma = 0.9 # reward的衰减率\n",
" self.epsilon_start = 0.99 # e-greedy策略中初始epsilon\n",
" self.epsilon_end = 0.01 # e-greedy策略中的终止epsilon\n",
" self.epsilon_decay = 200 # e-greedy策略中epsilon的衰减率\n",
" self.lr = 0.1 # learning rate"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def train(cfg,env,agent):\n",
" rewards = [] \n",
" ma_rewards = [] # moving average reward\n",
" steps = [] # 记录所有episode的steps\n",
" for i_episode in range(cfg.train_eps):\n",
" ep_reward = 0 # 记录每个episode的reward\n",
" ep_steps = 0 # 记录每个episode走了多少step\n",
" state = env.reset() # 重置环境, 重新开一局即开始新的一个episode\n",
" while True:\n",
" action = agent.choose_action(state) # 根据算法选择一个动作\n",
" next_state, reward, done, _ = env.step(action) # 与环境进行一次动作交互\n",
" agent.update(state, action, reward, next_state, done) # Q-learning算法更新\n",
" state = next_state # 存储上一个观察值\n",
" ep_reward += reward\n",
" ep_steps += 1 # 计算step数\n",
" if done:\n",
" break\n",
" steps.append(ep_steps)\n",
" rewards.append(ep_reward)\n",
" if ma_rewards:\n",
" ma_rewards.append(ma_rewards[-1]*0.9+ep_reward*0.1)\n",
" else:\n",
" ma_rewards.append(ep_reward)\n",
" if (i_episode+1)%10==0:\n",
" print(\"Episode:{}/{}: reward:{:.1f}\".format(i_episode+1, cfg.train_eps,ep_reward))\n",
" return rewards,ma_rewards"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Episode:10/200: reward:-82.0\n",
"Episode:20/200: reward:-59.0\n",
"Episode:30/200: reward:-50.0\n",
"Episode:40/200: reward:-32.0\n",
"Episode:50/200: reward:-102.0\n",
"Episode:60/200: reward:-151.0\n",
"Episode:70/200: reward:-34.0\n",
"Episode:80/200: reward:-71.0\n",
"Episode:90/200: reward:-34.0\n",
"Episode:100/200: reward:-26.0\n",
"Episode:110/200: reward:-32.0\n",
"Episode:120/200: reward:-48.0\n",
"Episode:130/200: reward:-25.0\n",
"Episode:140/200: reward:-31.0\n",
"Episode:150/200: reward:-38.0\n",
"Episode:160/200: reward:-47.0\n",
"Episode:170/200: reward:-29.0\n",
"Episode:180/200: reward:-36.0\n",
"Episode:190/200: reward:-21.0\n",
"Episode:200/200: reward:-34.0\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"281.117344pt\" version=\"1.1\" viewBox=\"0 0 389.592812 281.117344\" width=\"389.592812pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n <cc:Work>\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n <dc:date>2021-03-31T18:50:18.442345</dc:date>\n <dc:format>image/svg+xml</dc:format>\n <dc:creator>\n <cc:Agent>\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n </cc:Agent>\n </dc:creator>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n <defs>\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n <g id=\"patch_1\">\n <path d=\"M 0 281.117344 \nL 389.592812 281.117344 \nL 389.592812 0 \nL 0 0 \nz\n\" style=\"fill:#ffffff;\"/>\n </g>\n <g id=\"axes_1\">\n <g id=\"patch_2\">\n <path d=\"M 47.592813 239.383125 \nL 382.392812 239.383125 \nL 382.392812 21.943125 \nL 47.592813 21.943125 \nz\n\" style=\"fill:#eaeaf2;\"/>\n </g>\n <g id=\"matplotlib.axis_1\">\n <g id=\"xtick_1\">\n <g id=\"line2d_1\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 62.810994 239.383125 \nL 62.810994 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_1\">\n <!-- 0 -->\n <g style=\"fill:#262626;\" transform=\"translate(59.752479 256.756719)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 4.15625 35.296875 \nQ 4.15625 48 6.765625 55.734375 \nQ 9.375 63.484375 14.515625 67.671875 \nQ 19.671875 71.875 27.484375 71.875 \nQ 33.25 71.875 37.59375 69.546875 \nQ 41.9375 67.234375 44.765625 62.859375 \nQ 47.609375 58.5 49.21875 52.21875 \nQ 50.828125 45.953125 50.828125 35.296875 \nQ 50.828125 22.703125 48.234375 14.96875 \nQ 45.65625 7.234375 40.5 3 \nQ 35.359375 -1.21875 27.484375 -1.21875 \nQ 17.140625 -1.21875 11.234375 6.203125 \nQ 4.15625 15.140625 4.15625 35.296875 \nz\nM 13.1875 35.296875 \nQ 13.1875 17.671875 17.3125 11.828125 \nQ 21.4375 6 27.484375 6 \nQ 33.546875 6 37.671875 11.859375 \nQ 41.796875 17.71875 41.796875 35.296875 \nQ 41.796875 52.984375 37.671875 58.78125 \nQ 33.546875 64.59375 27.390625 64.59375 \nQ 21.34375 64.59375 17.71875 59.46875 \nQ 13.1875 52.9375 13.1875 35.296875 \nz\n\" id=\"ArialMT-48\"/>\n </defs>\n <use xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_2\">\n <g id=\"line2d_2\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 101.047632 239.383125 \nL 101.047632 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_2\">\n <!-- 25 -->\n <g style=\"fill:#262626;\" transform=\"translate(94.930601 256.756719)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 50.34375 8.453125 \nL 50.34375 0 \nL 3.03125 0 \nQ 2.9375 3.171875 4.046875 6.109375 \nQ 5.859375 10.9375 9.828125 15.625 \nQ 13.8125 20.3125 21.34375 26.46875 \nQ 33.015625 36.03125 37.109375 41.625 \nQ 41.21875 47.21875 41.21875 52.203125 \nQ 41.21875 57.421875 37.46875 61 \nQ 33.734375 64.59375 27.734375 64.59375 \nQ 21.390625 64.59375 17.578125 60.78125 \nQ 13.765625 56.984375 13.71875 50.25 \nL 4.6875 51.171875 \nQ 5.609375 61.28125 11.65625 66.578125 \nQ 17.71875 71.875 27.9375 71.875 \nQ 38.234375 71.875 44.234375 66.15625 \nQ 50.25 60.453125 50.25 52 \nQ 50.25 47.703125 48.484375 43.546875 \nQ 46.734375 39.40625 42.65625 34.8125 \nQ 38.578125 30.21875 29.109375 22.21875 \nQ 21.1875 15.578125 18.9375 13.203125 \nQ 16.703125 10.84375 15.234375 8.453125 \nz\n\" id=\"ArialMT-50\"/>\n <path d=\"M 4.15625 18.75 \nL 13.375 19.53125 \nQ 14.40625 12.796875 18.140625 9.390625 \nQ 21.875 6 27.15625 6 \nQ 33.5 6 37.890625 10.78125 \nQ 42.28125 15.578125 42.28125 23.484375 \nQ 42.28125 31 38.0625 35.34375 \nQ 33.84375 39.703125 27 39.703125 \nQ 22.75 39.703125 19.328125 37.765625 \nQ 15.921875 35.84375 13.96875 32.765625 \nL 5.71875 33.84375 \nL 12.640625 70.609375 \nL 48.25 70.609375 \nL 48.25 62.203125 \nL 19.671875 62.203125 \nL 15.828125 42.96875 \nQ 22.265625 47.46875 29.34375 47.46875 \nQ 38.71875 47.46875 45.15625 40.96875 \nQ 51.609375 34.46875 51.609375 24.265625 \nQ 51.609375 14.546875 45.953125 7.46875 \nQ 39.0625 -1.21875 27.15625 -1.21875 \nQ 17.390625 -1.21875 11.203125 4.25 \nQ 5.03125 9.71875 4.15625 18.75 \nz\n\" id=\"ArialMT-53\"/>\n </defs>\n <use xlink:href=\"#ArialMT-50\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-53\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_3\">\n <g id=\"line2d_3\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 139.28427 239.383125 \nL 139.28427 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_3\">\n <!-- 50 -->\n <g style=\"fill:#262626;\" transform=\"translate(133.167239 256.756719)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-53\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_4\">\n <g id=\"line2d_4\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 177.520908 239.383125 \nL 177.520908 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_4\">\n <!-- 75 -->\n <g style=\"fill:#262626;\" transform=\"translate(171.403876 256.756719)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 4.734375 62.203125 \nL 4.734375 70.65625 \nL 51.078125 70.65625 \nL 51.078125 63.8125 \nQ 44.234375 56.546875 37.515625 44.484375 \nQ 30.8125 32.421875 27.15625 19.671875 \nQ 24.515625 10.6875 23.78125 0 \nL 14.75 0 \nQ 14.890625 8.453125 18.0625 20.40625 \nQ 21.234375 32.375 27.171875 43.484375 \nQ 33.109375 54.59375 39.796875 62.203125 \nz\n\" id=\"ArialMT-55\"/>\n </defs>\n <use xlink:href=\"#ArialMT-55\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-53\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_5\">\n <g id=\"line2d_5\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 215.757545 239.383125 \nL 215.757545 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_5\">\n <!-- 100 -->\n <g style=\"fill:#262626;\" transform=\"translate(206.581998 256.756719)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 37.25 0 \nL 28.46875 0 \nL 28.46875 56 \nQ 25.296875 52.984375 20.140625 49.953125 \nQ 14.984375 46.921875 10.890625 45.40625 \nL 10.890625 53.90625 \nQ 18.265625 57.375 23.78125 62.296875 \nQ 29.296875 67.234375 31.59375 71.875 \nL 37.25 71.875 \nz\n\" id=\"ArialMT-49\"/>\n </defs>\n <use xlink:href=\"#ArialMT-49\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"111.230469\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_6\">\n <g id=\"line2d_6\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 253.994183 239.383125 \nL 253.994183 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_6\">\n <!-- 125 -->\n <g style=\"fill:#262626;\" transform=\"translate(244.818636 256.756719)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-49\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-50\"/>\n <use x=\"111.230469\" xlink:href=\"#ArialMT-53\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_7\">\n <g id=\"line2d_7\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 292.230821 239.383125 \nL 292.230821 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_7\">\n <!-- 150 -->\n <g style=\"fill:#262626;\" transform=\"translate(283.055274 256.756719)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-49\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-53\"/>\n <use x=\"111.230469\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_8\">\n <g id=\"line2d_8\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 330.467458 239.383125 \nL 330.467458 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_8\">\n <!-- 175 -->\n <g style=\"fill:#262626;\" transform=\"translate(321.291912 256.756719)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-49\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-55\"/>\n <use x=\"111.230469\" xlink:href=\"#ArialMT-53\"/>\n </g>\n </g>\n </g>\n <g id=\"xtick_9\">\n <g id=\"line2d_9\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 368.704096 239.383125 \nL 368.704096 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_9\">\n <!-- 200 -->\n <g style=\"fill:#262626;\" transform=\"translate(359.528549 256.756719)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-50\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"111.230469\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"text_10\">\n <!-- epsiodes -->\n <g style=\"fill:#262626;\" transform=\"translate(190.976875 271.532344)scale(0.12 -0.12)\">\n <defs>\n <path d=\"M 42.09375 16.703125 \nL 51.171875 15.578125 \nQ 49.03125 7.625 43.21875 3.21875 \nQ 37.40625 -1.171875 28.375 -1.171875 \nQ 17 -1.171875 10.328125 5.828125 \nQ 3.65625 12.84375 3.65625 25.484375 \nQ 3.65625 38.578125 10.390625 45.796875 \nQ 17.140625 53.03125 27.875 53.03125 \nQ 38.28125 53.03125 44.875 45.953125 \nQ 51.46875 38.875 51.46875 26.03125 \nQ 51.46875 25.25 51.421875 23.6875 \nL 12.75 23.6875 \nQ 13.234375 15.140625 17.578125 10.59375 \nQ 21.921875 6.0625 28.421875 6.0625 \nQ 33.25 6.0625 36.671875 8.59375 \nQ 40.09375 11.140625 42.09375 16.703125 \nz\nM 13.234375 30.90625 \nL 42.1875 30.90625 \nQ 41.609375 37.453125 38.875 40.71875 \nQ 34.671875 45.796875 27.984375 45.796875 \nQ 21.921875 45.796875 17.796875 41.75 \nQ 13.671875 37.703125 13.234375 30.90625 \nz\n\" id=\"ArialMT-101\"/>\n <path d=\"M 6.59375 -19.875 \nL 6.59375 51.859375 \nL 14.59375 51.859375 \nL 14.59375 45.125 \nQ 17.4375 49.078125 21 51.046875 \nQ 24.5625 53.03125 29.640625 53.03125 \nQ 36.28125 53.03125 41.359375 49.609375 \nQ 46.4375 46.1875 49.015625 39.953125 \nQ 51.609375 33.734375 51.609375 26.3125 \nQ 51.609375 18.359375 48.75 11.984375 \nQ 45.90625 5.609375 40.453125 2.21875 \nQ 35.015625 -1.171875 29 -1.171875 \nQ 24.609375 -1.171875 21.109375 0.6875 \nQ 17.625 2.546875 15.375 5.375 \nL 15.375 -19.875 \nz\nM 14.546875 25.640625 \nQ 14.546875 15.625 18.59375 10.84375 \nQ 22.65625 6.0625 28.421875 6.0625 \nQ 34.28125 6.0625 38.453125 11.015625 \nQ 42.625 15.96875 42.625 26.375 \nQ 42.625 36.28125 38.546875 41.203125 \nQ 34.46875 46.140625 28.8125 46.140625 \nQ 23.1875 46.140625 18.859375 40.890625 \nQ 14.546875 35.640625 14.546875 25.640625 \nz\n\" id=\"ArialMT-112\"/>\n <path d=\"M 3.078125 15.484375 \nL 11.765625 16.84375 \nQ 12.5 11.625 15.84375 8.84375 \nQ 19.1875 6.0625 25.203125 6.0625 \nQ 31.25 6.0625 34.171875 8.515625 \nQ 37.109375 10.984375 37.109375 14.3125 \nQ 37.109375 17.28125 34.515625 19 \nQ 32.71875 20.171875 25.53125 21.96875 \nQ 15.875 24.421875 12.140625 26.203125 \nQ 8.40625 27.984375 6.46875 31.125 \nQ 4.546875 34.28125 4.546875 38.09375 \nQ 4.546875 41.546875 6.125 44.5 \nQ 7.71875 47.46875 10.453125 49.421875 \nQ 12.5 50.921875 16.03125 51.96875 \nQ 19.578125 53.03125 23.640625 53.03125 \nQ 29.734375 53.03125 34.34375 51.265625 \nQ 38.96875 49.515625 41.15625 46.5 \nQ 43.359375 43.5 44.1875 38.484375 \nL 35.59375 37.3125 \nQ 35.015625 41.3125 32.203125 43.546875 \nQ 29.390625 45.796875 24.265625 45.796875 \nQ 18.21875 45.796875 15.625 43.796875 \nQ 13.03125 41.796875 13.03125 39.109375 \nQ 13.03125 37.40625 14.109375 36.03125 \nQ 15.1875 34.625 17.484375 33.6875 \nQ 18.796875 33.203125 25.25 31.453125 \nQ 34.578125 28.953125 38.25 27.359375 \nQ 41.9375 25.78125 44.03125 22.75 \nQ 46.140625 19.734375 46.140625 15.234375 \nQ 46.140625 10.84375 43.578125 6.953125 \nQ 41.015625 3.078125 36.171875 0.953125 \nQ 31.34375 -1.171875 25.25 -1.171875 \nQ 15.140625 -1.171875 9.84375 3.03125 \nQ 4.546875 7.234375 3.078125 15.484375 \nz\n\" id=\"ArialMT-115\"/>\n <path d=\"M 6.640625 61.46875 \nL 6.640625 71.578125 \nL 15.4375 71.578125 \nL 15.4375 61.46875 \nz\nM 6.640625 0 \nL 6.640625 51.859375 \nL 15.4375 51.859375 \nL 15.4375 0 \nz\n\" id=\"ArialMT-105\"/>\n <path d=\"M 3.328125 25.921875 \nQ 3.328125 40.328125 11.328125 47.265625 \nQ 18.015625 53.03125 27.640625 53.03125 \nQ 38.328125 53.03125 45.109375 46.015625 \nQ 51.90625 39.015625 51.90625 26.65625 \nQ 51.90625 16.65625 48.90625 10.90625 \nQ 45.90625 5.171875 40.15625 2 \nQ 34.421875 -1.171875 27.640625 -1.171875 \nQ 16.75 -1.171875 10.03125 5.8125 \nQ 3.328125 12.796875 3.328125 25.921875 \nz\nM 12.359375 25.921875 \nQ 12.359375 15.96875 16.703125 11.015625 \nQ 21.046875 6.0625 27.640625 6.0625 \nQ 34.1875 6.0625 38.53125 11.03125 \nQ 42.875 16.015625 42.875 26.21875 \nQ 42.875 35.84375 38.5 40.796875 \nQ 34.125 45.75 27.640625 45.75 \nQ 21.046875 45.75 16.703125 40.8125 \nQ 12.359375 35.890625 12.359375 25.921875 \nz\n\" id=\"ArialMT-111\"/>\n <path d=\"M 40.234375 0 \nL 40.234375 6.546875 \nQ 35.296875 -1.171875 25.734375 -1.171875 \nQ 19.53125 -1.171875 14.328125 2.25 \nQ 9.125 5.671875 6.265625 11.796875 \nQ 3.421875 17.921875 3.421875 25.875 \nQ 3.421875 33.640625 6 39.96875 \nQ 8.59375 46.296875 13.765625 49.65625 \nQ 18.953125 53.03125 25.34375 53.03125 \nQ 30.03125 53.03125 33.6875 51.046875 \nQ 37.359375 49.078125 39.65625 45.90625 \nL 39.65625 71.578125 \nL 48.390625 71.578125 \nL 48.390625 0 \nz\nM 12.453125 25.875 \nQ 12.453125 15.921875 16.640625 10.984375 \nQ 20.84375 6.0625 26.5625 6.0625 \nQ 32.328125 6.0625 36.34375 10.765625 \nQ 40.375 15.484375 40.375 25.140625 \nQ 40.375 35.796875 36.265625 40.765625 \nQ 32.171875 45.75 26.171875 45.75 \nQ 20.3125 45.75 16.375 40.96875 \nQ 12.453125 36.1875 12.453125 25.875 \nz\n\" id=\"ArialMT-100\"/>\n </defs>\n <use xlink:href=\"#ArialMT-101\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-112\"/>\n <use x=\"111.230469\" xlink:href=\"#ArialMT-115\"/>\n <use x=\"161.230469\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"183.447266\" xlink:href=\"#ArialMT-111\"/>\n <use x=\"239.0625\" xlink:href=\"#ArialMT-100\"/>\n <use x=\"294.677734\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"350.292969\" xlink:href=\"#ArialMT-115\"/>\n </g>\n </g>\n </g>\n <g id=\"matplotlib.axis_2\">\n <g id=\"ytick_1\">\n <g id=\"line2d_10\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 47.592813 219.464957 \nL 382.392812 219.464957 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_11\">\n <!-- 2500 -->\n <g style=\"fill:#262626;\" transform=\"translate(7.2 223.401754)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 52.828125 31.203125 \nL 5.5625 31.203125 \nL 5.5625 39.40625 \nL 52.828125 39.40625 \nz\n\" id=\"ArialMT-8722\"/>\n </defs>\n <use xlink:href=\"#ArialMT-8722\"/>\n <use x=\"58.398438\" xlink:href=\"#ArialMT-50\"/>\n <use x=\"114.013672\" xlink:href=\"#ArialMT-53\"/>\n <use x=\"169.628906\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"225.244141\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_2\">\n <g id=\"line2d_11\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 47.592813 181.741154 \nL 382.392812 181.741154 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_12\">\n <!-- 2000 -->\n <g style=\"fill:#262626;\" transform=\"translate(7.2 185.677951)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-8722\"/>\n <use x=\"58.398438\" xlink:href=\"#ArialMT-50\"/>\n <use x=\"114.013672\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"169.628906\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"225.244141\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_3\">\n <g id=\"line2d_12\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 47.592813 144.017351 \nL 382.392812 144.017351 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_13\">\n <!-- 1500 -->\n <g style=\"fill:#262626;\" transform=\"translate(7.2 147.954148)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-8722\"/>\n <use x=\"58.398438\" xlink:href=\"#ArialMT-49\"/>\n <use x=\"114.013672\" xlink:href=\"#ArialMT-53\"/>\n <use x=\"169.628906\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"225.244141\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_4\">\n <g id=\"line2d_13\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 47.592813 106.293548 \nL 382.392812 106.293548 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_14\">\n <!-- 1000 -->\n <g style=\"fill:#262626;\" transform=\"translate(7.2 110.230345)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-8722\"/>\n <use x=\"58.398438\" xlink:href=\"#ArialMT-49\"/>\n <use x=\"114.013672\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"169.628906\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"225.244141\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_5\">\n <g id=\"line2d_14\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 47.592813 68.569745 \nL 382.392812 68.569745 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_15\">\n <!-- 500 -->\n <g style=\"fill:#262626;\" transform=\"translate(13.317031 72.506542)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-8722\"/>\n <use x=\"58.398438\" xlink:href=\"#ArialMT-53\"/>\n <use x=\"114.013672\" xlink:href=\"#ArialMT-48\"/>\n <use x=\"169.628906\" xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n <g id=\"ytick_6\">\n <g id=\"line2d_15\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 47.592813 30.845942 \nL 382.392812 30.845942 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n </g>\n <g id=\"text_16\">\n <!-- 0 -->\n <g style=\"fill:#262626;\" transform=\"translate(31.975781 34.782739)scale(0.11 -0.11)\">\n <use xlink:href=\"#ArialMT-48\"/>\n </g>\n </g>\n </g>\n </g>\n <g id=\"line2d_16\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 62.810994 229.499489 \nL 64.34046 113.913757 \nL 65.869925 41.182264 \nL 67.399391 41.106817 \nL 68.928856 52.122167 \nL 70.458322 37.86257 \nL 71.987787 46.765387 \nL 73.517253 35.674589 \nL 75.046718 49.934187 \nL 76.576184 37.032646 \nL 78.105649 37.787122 \nL 79.635115 44.652854 \nL 81.16458 36.957199 \nL 82.694046 42.540321 \nL 84.223511 40.503236 \nL 85.752977 43.21935 \nL 87.282442 36.127275 \nL 88.811908 41.33316 \nL 90.341373 49.255158 \nL 91.870839 35.297351 \nL 93.400305 41.710398 \nL 94.92977 33.033923 \nL 96.459236 36.655408 \nL 97.988701 42.615769 \nL 99.518167 35.448246 \nL 101.047632 39.824208 \nL 102.577098 34.69377 \nL 104.106563 38.390703 \nL 105.636029 38.390703 \nL 107.165494 34.618323 \nL 108.69496 41.408607 \nL 110.224425 35.900932 \nL 111.753891 35.146456 \nL 113.283356 35.448246 \nL 114.812822 36.127275 \nL 116.342287 33.411161 \nL 117.871753 37.711675 \nL 119.401218 39.899655 \nL 120.930684 35.221904 \nL 122.460149 33.260266 \nL 123.989615 35.372799 \nL 125.51908 38.994284 \nL 127.048546 34.316532 \nL 128.578011 35.599142 \nL 130.107477 35.900932 \nL 131.636942 38.767941 \nL 133.166408 33.637504 \nL 134.695873 32.581237 \nL 136.225339 36.202723 \nL 137.754804 38.541598 \nL 139.28427 34.467428 \nL 140.813735 34.618323 \nL 142.343201 33.939294 \nL 143.872666 34.769218 \nL 145.402132 33.486609 \nL 146.931597 36.504513 \nL 148.461063 35.599142 \nL 149.990528 33.712952 \nL 151.519994 36.655408 \nL 153.049459 42.238531 \nL 154.578925 34.09019 \nL 156.10839 35.071008 \nL 157.637856 36.730856 \nL 159.167321 44.728302 \nL 160.696787 32.203999 \nL 162.226252 37.258989 \nL 163.755718 33.637504 \nL 165.285183 33.109371 \nL 166.814649 36.881751 \nL 168.344114 33.411161 \nL 171.403045 34.844666 \nL 172.932511 34.69377 \nL 174.461977 33.788399 \nL 175.991442 33.486609 \nL 177.520908 32.958475 \nL 179.050373 34.769218 \nL 180.579839 33.788399 \nL 182.109304 43.294797 \nL 183.63877 36.202723 \nL 185.168235 41.785845 \nL 186.697701 32.80758 \nL 188.227166 34.39198 \nL 189.756632 34.014742 \nL 191.286097 33.863847 \nL 192.815563 34.467428 \nL 194.345028 34.467428 \nL 195.874494 32.203999 \nL 197.403959 34.69377 \nL 198.933425 33.411161 \nL 200.46289 33.260266 \nL 201.992356 33.637504 \nL 203.521821 34.995561 \nL 205.051287 35.146456 \nL 206.580752 32.50579 \nL 208.110218 45.40733 \nL 209.639683 33.033923 \nL 211.169149 32.279447 \nL 212.698614 34.69377 \nL 214.22808 32.80758 \nL 215.757545 34.316532 \nL 217.287011 32.656685 \nL 218.816476 32.732133 \nL 220.345942 34.014742 \nL 221.875407 33.939294 \nL 223.404873 33.109371 \nL 224.934338 35.221904 \nL 226.463804 32.80758 \nL 227.993269 32.430342 \nL 229.522735 33.260266 \nL 231.0522 34.241085 \nL 232.581666 32.50579 \nL 234.111131 34.165637 \nL 235.640597 32.430342 \nL 237.170062 32.354895 \nL 238.699528 33.939294 \nL 240.228993 35.221904 \nL 241.758459 32.883028 \nL 243.287924 32.203999 \nL 244.81739 34.467428 \nL 246.346855 32.128552 \nL 247.876321 34.014742 \nL 249.405786 33.939294 \nL 250.935252 32.581237 \nL 253.994183 33.712952 \nL 255.523648 32.732133 \nL 257.053114 33.411161 \nL 258.58258 32.732133 \nL 260.112045 32.732133 \nL 263.170976 33.562056 \nL 264.700442 33.486609 \nL 266.229907 32.430342 \nL 267.759373 33.939294 \nL 269.288838 32.656685 \nL 270.818304 33.788399 \nL 272.347769 33.335713 \nL 273.877235 32.581237 \nL 275.4067 33.184818 \nL 276.936166 33.411161 \nL 279.995097 32.958475 \nL 281.524562 41.257712 \nL 283.054028 32.732133 \nL 284.583493 34.316532 \nL 286.112959 32.581237 \nL 287.642424 32.581237 \nL 289.17189 33.562056 \nL 290.701355 33.712952 \nL 292.230821 40.955922 \nL 293.760286 32.354895 \nL 295.289752 32.279447 \nL 296.819217 34.316532 \nL 298.348683 33.335713 \nL 299.878148 31.977657 \nL 301.407614 32.656685 \nL 302.937079 32.053104 \nL 304.466545 41.106817 \nL 305.99601 34.39198 \nL 307.525476 32.732133 \nL 309.054941 32.354895 \nL 310.584407 33.712952 \nL 312.113872 32.430342 \nL 315.172803 32.883028 \nL 316.702269 32.430342 \nL 318.231734 33.033923 \nL 319.7612 32.128552 \nL 321.290665 33.033923 \nL 322.820131 32.203999 \nL 324.349596 32.279447 \nL 325.879062 32.883028 \nL 327.408527 32.581237 \nL 328.937993 32.053104 \nL 330.467458 33.486609 \nL 333.526389 32.883028 \nL 335.055855 31.977657 \nL 336.58532 33.562056 \nL 338.114786 33.260266 \nL 339.644252 39.899655 \nL 341.173717 32.80758 \nL 342.703183 32.354895 \nL 344.232648 32.430342 \nL 347.291579 31.826761 \nL 348.821045 32.958475 \nL 350.35051 33.033923 \nL 351.879976 32.430342 \nL 353.409441 32.656685 \nL 354.938907 32.279447 \nL 356.468372 32.581237 \nL 357.997838 32.279447 \nL 359.527303 33.260266 \nL 361.056769 32.883028 \nL 362.586234 32.732133 \nL 364.1157 32.279447 \nL 365.645165 40.654131 \nL 367.174631 33.411161 \nL 367.174631 33.411161 \n\" style=\"fill:none;stroke:#4c72b0;stroke-linecap:round;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_17\">\n <path clip-path=\"url(#pc2b40b28a4)\" d=\"M 62.810994 229.499489 \nL 64.34046 217.940915 \nL 65.869925 200.26505 \nL 67.399391 184.349227 \nL 70.458322 157.800126 \nL 73.517253 135.594446 \nL 78.105649 110.00467 \nL 81.16458 96.81826 \nL 84.223511 86.301743 \nL 87.282442 77.406881 \nL 88.811908 73.799509 \nL 90.341373 71.345074 \nL 91.870839 67.740301 \nL 93.400305 65.137311 \nL 94.92977 61.926972 \nL 96.459236 59.399816 \nL 97.988701 57.721411 \nL 99.518167 55.494095 \nL 101.047632 53.927106 \nL 102.577098 52.003772 \nL 107.165494 47.937393 \nL 108.69496 47.284514 \nL 111.753891 45.046186 \nL 113.283356 44.086392 \nL 114.812822 43.29048 \nL 116.342287 42.302548 \nL 117.871753 41.843461 \nL 119.401218 41.64908 \nL 120.930684 41.006363 \nL 122.460149 40.231753 \nL 123.989615 39.745858 \nL 125.51908 39.6707 \nL 127.048546 39.135283 \nL 130.107477 38.493596 \nL 131.636942 38.52103 \nL 134.695873 37.487533 \nL 136.225339 37.359052 \nL 137.754804 37.477307 \nL 142.343201 36.622397 \nL 146.931597 36.17828 \nL 148.461063 36.120366 \nL 149.990528 35.879625 \nL 151.519994 35.957203 \nL 153.049459 36.585336 \nL 154.578925 36.335821 \nL 156.10839 36.20934 \nL 157.637856 36.261492 \nL 159.167321 37.108173 \nL 160.696787 36.617755 \nL 162.226252 36.681879 \nL 165.285183 36.050634 \nL 166.814649 36.133746 \nL 169.87358 35.684358 \nL 174.461977 35.337594 \nL 177.520908 34.933093 \nL 180.579839 34.803875 \nL 182.109304 35.652967 \nL 183.63877 35.707943 \nL 185.168235 36.315733 \nL 186.697701 35.964918 \nL 200.46289 34.628159 \nL 201.992356 34.529094 \nL 205.051287 34.632812 \nL 206.580752 34.42011 \nL 208.110218 35.518832 \nL 211.169149 34.971252 \nL 212.698614 34.943503 \nL 214.22808 34.729911 \nL 215.757545 34.688573 \nL 218.816476 34.310059 \nL 226.463804 34.098217 \nL 229.522735 33.864313 \nL 231.0522 33.90199 \nL 232.581666 33.76237 \nL 234.111131 33.802697 \nL 237.170062 33.534405 \nL 238.699528 33.574894 \nL 240.228993 33.739595 \nL 243.287924 33.508944 \nL 244.81739 33.604793 \nL 246.346855 33.457168 \nL 249.405786 33.555563 \nL 252.464717 33.423254 \nL 255.523648 33.380215 \nL 258.58258 33.318192 \nL 261.641511 33.244564 \nL 264.700442 33.297343 \nL 266.229907 33.210643 \nL 267.759373 33.283508 \nL 269.288838 33.220826 \nL 272.347769 33.283396 \nL 275.4067 33.210344 \nL 279.995097 33.199126 \nL 281.524562 34.004985 \nL 283.054028 33.877699 \nL 284.583493 33.921583 \nL 287.642424 33.666917 \nL 290.701355 33.662083 \nL 292.230821 34.391467 \nL 295.289752 33.996973 \nL 298.348683 33.959608 \nL 301.407614 33.65094 \nL 302.937079 33.491156 \nL 304.466545 34.252722 \nL 305.99601 34.266648 \nL 310.584407 33.914925 \nL 315.172803 33.578242 \nL 319.7612 33.291305 \nL 322.820131 33.15941 \nL 328.937993 32.910208 \nL 333.526389 32.978893 \nL 335.055855 32.878769 \nL 338.114786 32.978415 \nL 339.644252 33.670539 \nL 345.762114 33.235246 \nL 347.291579 33.094397 \nL 353.409441 32.976054 \nL 357.997838 32.814435 \nL 362.586234 32.84849 \nL 364.1157 32.791586 \nL 365.645165 33.57784 \nL 367.174631 33.561172 \nL 367.174631 33.561172 \n\" style=\"fill:none;stroke:#dd8452;stroke-linecap:round;stroke-width:1.5;\"/>\n </g>\n <g id=\"patch_3\">\n <path d=\"M 47.592813 239.383125 \nL 47.592813 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;\"/>\n </g>\n <g id=\"patch_4\">\n <path d=\"M 382.392812 239.383125 \nL 382.392812 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;\"/>\n </g>\n <g id=\"patch_5\">\n <path d=\"M 47.592813 239.383125 \nL 382.392813 239.383125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;\"/>\n </g>\n <g id=\"patch_6\">\n <path d=\"M 47.592813 21.943125 \nL 382.392813 21.943125 \n\" style=\"fill:none;stroke:#ffffff;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;\"/>\n </g>\n <g id=\"text_17\">\n <!-- average learning curve of On-Policy First-Visit MC Control -->\n <g style=\"fill:#262626;\" transform=\"translate(61.054375 15.943125)scale(0.12 -0.12)\">\n <defs>\n <path d=\"M 40.4375 6.390625 \nQ 35.546875 2.25 31.03125 0.53125 \nQ 26.515625 -1.171875 21.34375 -1.171875 \nQ 12.796875 -1.171875 8.203125 3 \nQ 3.609375 7.171875 3.609375 13.671875 \nQ 3.609375 17.484375 5.34375 20.625 \nQ 7.078125 23.78125 9.890625 25.6875 \nQ 12.703125 27.59375 16.21875 28.5625 \nQ 18.796875 29.25 24.03125 29.890625 \nQ 34.671875 31.15625 39.703125 32.90625 \nQ 39.75 34.71875 39.75 35.203125 \nQ 39.75 40.578125 37.25 42.78125 \nQ 33.890625 45.75 27.25 45.75 \nQ 21.046875 45.75 18.09375 43.578125 \nQ 15.140625 41.40625 13.71875 35.890625 \nL 5.125 37.0625 \nQ 6.296875 42.578125 8.984375 45.96875 \nQ 11.671875 49.359375 16.75 51.1875 \nQ 21.828125 53.03125 28.515625 53.03125 \nQ 35.15625 53.03125 39.296875 51.46875 \nQ 43.453125 49.90625 45.40625 47.53125 \nQ 47.359375 45.171875 48.140625 41.546875 \nQ 48.578125 39.3125 48.578125 33.453125 \nL 48.578125 21.734375 \nQ 48.578125 9.46875 49.140625 6.21875 \nQ 49.703125 2.984375 51.375 0 \nL 42.1875 0 \nQ 40.828125 2.734375 40.4375 6.390625 \nz\nM 39.703125 26.03125 \nQ 34.90625 24.078125 25.34375 22.703125 \nQ 19.921875 21.921875 17.671875 20.9375 \nQ 15.4375 19.96875 14.203125 18.09375 \nQ 12.984375 16.21875 12.984375 13.921875 \nQ 12.984375 10.40625 15.640625 8.0625 \nQ 18.3125 5.71875 23.4375 5.71875 \nQ 28.515625 5.71875 32.46875 7.9375 \nQ 36.421875 10.15625 38.28125 14.015625 \nQ 39.703125 17 39.703125 22.796875 \nz\n\" id=\"ArialMT-97\"/>\n <path d=\"M 21 0 \nL 1.265625 51.859375 \nL 10.546875 51.859375 \nL 21.6875 20.796875 \nQ 23.484375 15.765625 25 10.359375 \nQ 26.171875 14.453125 28.265625 20.21875 \nL 39.796875 51.859375 \nL 48.828125 51.859375 \nL 29.203125 0 \nz\n\" id=\"ArialMT-118\"/>\n <path d=\"M 6.5 0 \nL 6.5 51.859375 \nL 14.40625 51.859375 \nL 14.40625 44 \nQ 17.4375 49.515625 20 51.265625 \nQ 22.5625 53.03125 25.640625 53.03125 \nQ 30.078125 53.03125 34.671875 50.203125 \nL 31.640625 42.046875 \nQ 28.421875 43.953125 25.203125 43.953125 \nQ 22.3125 43.953125 20.015625 42.21875 \nQ 17.71875 40.484375 16.75 37.40625 \nQ 15.28125 32.71875 15.28125 27.15625 \nL 15.28125 0 \nz\n\" id=\"ArialMT-114\"/>\n <path d=\"M 4.984375 -4.296875 \nL 13.53125 -5.5625 \nQ 14.0625 -9.515625 16.5 -11.328125 \nQ 19.78125 -13.765625 25.4375 -13.765625 \nQ 31.546875 -13.765625 34.859375 -11.328125 \nQ 38.1875 -8.890625 39.359375 -4.5 \nQ 40.046875 -1.8125 39.984375 6.78125 \nQ 34.234375 0 25.640625 0 \nQ 14.9375 0 9.078125 7.71875 \nQ 3.21875 15.4375 3.21875 26.21875 \nQ 3.21875 33.640625 5.90625 39.90625 \nQ 8.59375 46.1875 13.6875 49.609375 \nQ 18.796875 53.03125 25.6875 53.03125 \nQ 34.859375 53.03125 40.828125 45.609375 \nL 40.828125 51.859375 \nL 48.921875 51.859375 \nL 48.921875 7.03125 \nQ 48.921875 -5.078125 46.453125 -10.125 \nQ 44 -15.1875 38.640625 -18.109375 \nQ 33.296875 -21.046875 25.484375 -21.046875 \nQ 16.21875 -21.046875 10.5 -16.875 \nQ 4.78125 -12.703125 4.984375 -4.296875 \nz\nM 12.25 26.859375 \nQ 12.25 16.65625 16.296875 11.96875 \nQ 20.359375 7.28125 26.46875 7.28125 \nQ 32.515625 7.28125 36.609375 11.9375 \nQ 40.71875 16.609375 40.71875 26.5625 \nQ 40.71875 36.078125 36.5 40.90625 \nQ 32.28125 45.75 26.3125 45.75 \nQ 20.453125 45.75 16.34375 40.984375 \nQ 12.25 36.234375 12.25 26.859375 \nz\n\" id=\"ArialMT-103\"/>\n <path id=\"ArialMT-32\"/>\n <path d=\"M 6.390625 0 \nL 6.390625 71.578125 \nL 15.1875 71.578125 \nL 15.1875 0 \nz\n\" id=\"ArialMT-108\"/>\n <path d=\"M 6.59375 0 \nL 6.59375 51.859375 \nL 14.5 51.859375 \nL 14.5 44.484375 \nQ 20.21875 53.03125 31 53.03125 \nQ 35.6875 53.03125 39.625 51.34375 \nQ 43.5625 49.65625 45.515625 46.921875 \nQ 47.46875 44.1875 48.25 40.4375 \nQ 48.734375 37.984375 48.734375 31.890625 \nL 48.734375 0 \nL 39.9375 0 \nL 39.9375 31.546875 \nQ 39.9375 36.921875 38.90625 39.578125 \nQ 37.890625 42.234375 35.28125 43.8125 \nQ 32.671875 45.40625 29.15625 45.40625 \nQ 23.53125 45.40625 19.453125 41.84375 \nQ 15.375 38.28125 15.375 28.328125 \nL 15.375 0 \nz\n\" id=\"ArialMT-110\"/>\n <path d=\"M 40.4375 19 \nL 49.078125 17.875 \nQ 47.65625 8.9375 41.8125 3.875 \nQ 35.984375 -1.171875 27.484375 -1.171875 \nQ 16.84375 -1.171875 10.375 5.78125 \nQ 3.90625 12.75 3.90625 25.734375 \nQ 3.90625 34.125 6.6875 40.421875 \nQ 9.46875 46.734375 15.15625 49.875 \nQ 20.84375 53.03125 27.546875 53.03125 \nQ 35.984375 53.03125 41.359375 48.75 \nQ 46.734375 44.484375 48.25 36.625 \nL 39.703125 35.296875 \nQ 38.484375 40.53125 35.375 43.15625 \nQ 32.28125 45.796875 27.875 45.796875 \nQ 21.234375 45.796875 17.078125 41.03125 \nQ 12.9375 36.28125 12.9375 25.984375 \nQ 12.9375 15.53125 16.9375 10.796875 \nQ 20.953125 6.0625 27.390625 6.0625 \nQ 32.5625 6.0625 36.03125 9.234375 \nQ 39.5 12.40625 40.4375 19 \nz\n\" id=\"ArialMT-99\"/>\n <path d=\"M 40.578125 0 \nL 40.578125 7.625 \nQ 34.515625 -1.171875 24.125 -1.171875 \nQ 19.53125 -1.171875 15.546875 0.578125 \nQ 11.578125 2.34375 9.640625 5 \nQ 7.71875 7.671875 6.9375 11.53125 \nQ 6.390625 14.109375 6.390625 19.734375 \nL 6.390625 51.859375 \nL 15.1875 51.859375 \nL 15.1875 23.09375 \nQ 15.1875 16.21875 15.71875 13.8125 \nQ 16.546875 10.359375 19.234375 8.375 \nQ 21.921875 6.390625 25.875 6.390625 \nQ 29.828125 6.390625 33.296875 8.421875 \nQ 36.765625 10.453125 38.203125 13.9375 \nQ 39.65625 17.4375 39.65625 24.078125 \nL 39.65625 51.859375 \nL 48.4375 51.859375 \nL 48.4375 0 \nz\n\" id=\"ArialMT-117\"/>\n <path d=\"M 8.6875 0 \nL 8.6875 45.015625 \nL 0.921875 45.015625 \nL 0.921875 51.859375 \nL 8.6875 51.859375 \nL 8.6875 57.375 \nQ 8.6875 62.59375 9.625 65.140625 \nQ 10.890625 68.5625 14.078125 70.671875 \nQ 17.28125 72.796875 23.046875 72.796875 \nQ 26.765625 72.796875 31.25 71.921875 \nL 29.9375 64.265625 \nQ 27.203125 64.75 24.75 64.75 \nQ 20.75 64.75 19.09375 63.03125 \nQ 17.4375 61.328125 17.4375 56.640625 \nL 17.4375 51.859375 \nL 27.546875 51.859375 \nL 27.546875 45.015625 \nL 17.4375 45.015625 \nL 17.4375 0 \nz\n\" id=\"ArialMT-102\"/>\n <path d=\"M 4.828125 34.859375 \nQ 4.828125 52.6875 14.390625 62.765625 \nQ 23.96875 72.859375 39.109375 72.859375 \nQ 49.03125 72.859375 56.984375 68.109375 \nQ 64.9375 63.375 69.109375 54.90625 \nQ 73.296875 46.4375 73.296875 35.6875 \nQ 73.296875 24.8125 68.890625 16.21875 \nQ 64.5 7.625 56.4375 3.203125 \nQ 48.390625 -1.21875 39.0625 -1.21875 \nQ 28.953125 -1.21875 20.984375 3.65625 \nQ 13.03125 8.546875 8.921875 16.984375 \nQ 4.828125 25.4375 4.828125 34.859375 \nz\nM 14.59375 34.71875 \nQ 14.59375 21.78125 21.546875 14.328125 \nQ 28.515625 6.890625 39.015625 6.890625 \nQ 49.703125 6.890625 56.609375 14.40625 \nQ 63.53125 21.921875 63.53125 35.75 \nQ 63.53125 44.484375 60.578125 51 \nQ 57.625 57.515625 51.921875 61.109375 \nQ 46.234375 64.703125 39.15625 64.703125 \nQ 29.109375 64.703125 21.84375 57.78125 \nQ 14.59375 50.875 14.59375 34.71875 \nz\n\" id=\"ArialMT-79\"/>\n <path d=\"M 3.171875 21.484375 \nL 3.171875 30.328125 \nL 30.171875 30.328125 \nL 30.171875 21.484375 \nz\n\" id=\"ArialMT-45\"/>\n <path d=\"M 7.71875 0 \nL 7.71875 71.578125 \nL 34.71875 71.578125 \nQ 41.84375 71.578125 45.609375 70.90625 \nQ 50.875 70.015625 54.4375 67.546875 \nQ 58.015625 65.09375 60.1875 60.640625 \nQ 62.359375 56.203125 62.359375 50.875 \nQ 62.359375 41.75 56.546875 35.421875 \nQ 50.734375 29.109375 35.546875 29.109375 \nL 17.1875 29.109375 \nL 17.1875 0 \nz\nM 17.1875 37.546875 \nL 35.6875 37.546875 \nQ 44.875 37.546875 48.734375 40.96875 \nQ 52.59375 44.390625 52.59375 50.59375 \nQ 52.59375 55.078125 50.3125 58.265625 \nQ 48.046875 61.46875 44.34375 62.5 \nQ 41.9375 63.140625 35.5 63.140625 \nL 17.1875 63.140625 \nz\n\" id=\"ArialMT-80\"/>\n <path d=\"M 6.203125 -19.96875 \nL 5.21875 -11.71875 \nQ 8.109375 -12.5 10.25 -12.5 \nQ 13.1875 -12.5 14.9375 -11.515625 \nQ 16.703125 -10.546875 17.828125 -8.796875 \nQ 18.65625 -7.46875 20.515625 -2.25 \nQ 20.75 -1.515625 21.296875 -0.09375 \nL 1.609375 51.859375 \nL 11.078125 51.859375 \nL 21.875 21.828125 \nQ 23.96875 16.109375 25.640625 9.8125 \nQ 27.15625 15.875 29.25 21.625 \nL 40.328125 51.859375 \nL 49.125 51.859375 \nL 29.390625 -0.875 \nQ 26.21875 -9.421875 24.46875 -12.640625 \nQ 22.125 -17 19.09375 -19.015625 \nQ 16.0625 -21.046875 11.859375 -21.046875 \nQ 9.328125 -21.046875 6.203125 -19.96875 \nz\n\" id=\"ArialMT-121\"/>\n <path d=\"M 8.203125 0 \nL 8.203125 71.578125 \nL 56.5 71.578125 \nL 56.5 63.140625 \nL 17.671875 63.140625 \nL 17.671875 40.96875 \nL 51.265625 40.96875 \nL 51.265625 32.515625 \nL 17.671875 32.515625 \nL 17.671875 0 \nz\n\" id=\"ArialMT-70\"/>\n <path d=\"M 25.78125 7.859375 \nL 27.046875 0.09375 \nQ 23.34375 -0.6875 20.40625 -0.6875 \nQ 15.625 -0.6875 12.984375 0.828125 \nQ 10.359375 2.34375 9.28125 4.8125 \nQ 8.203125 7.28125 8.203125 15.1875 \nL 8.203125 45.015625 \nL 1.765625 45.015625 \nL 1.765625 51.859375 \nL 8.203125 51.859375 \nL 8.203125 64.703125 \nL 16.9375 69.96875 \nL 16.9375 51.859375 \nL 25.78125 51.859375 \nL 25.78125 45.015625 \nL 16.9375 45.015625 \nL 16.9375 14.703125 \nQ 16.9375 10.9375 17.40625 9.859375 \nQ 17.875 8.796875 18.921875 8.15625 \nQ 19.96875 7.515625 21.921875 7.515625 \nQ 23.390625 7.515625 25.78125 7.859375 \nz\n\" id=\"ArialMT-116\"/>\n <path d=\"M 28.171875 0 \nL 0.4375 71.578125 \nL 10.6875 71.578125 \nL 29.296875 19.578125 \nQ 31.546875 13.328125 33.0625 7.859375 \nQ 34.71875 13.71875 36.921875 19.578125 \nL 56.25 71.578125 \nL 65.921875 71.578125 \nL 37.890625 0 \nz\n\" id=\"ArialMT-86\"/>\n <path d=\"M 7.421875 0 \nL 7.421875 71.578125 \nL 21.6875 71.578125 \nL 38.625 20.90625 \nQ 40.96875 13.8125 42.046875 10.296875 \nQ 43.265625 14.203125 45.84375 21.78125 \nL 62.984375 71.578125 \nL 75.734375 71.578125 \nL 75.734375 0 \nL 66.609375 0 \nL 66.609375 59.90625 \nL 45.796875 0 \nL 37.25 0 \nL 16.546875 60.9375 \nL 16.546875 0 \nz\n\" id=\"ArialMT-77\"/>\n <path d=\"M 58.796875 25.09375 \nL 68.265625 22.703125 \nQ 65.28125 11.03125 57.546875 4.90625 \nQ 49.8125 -1.21875 38.625 -1.21875 \nQ 27.046875 -1.21875 19.796875 3.484375 \nQ 12.546875 8.203125 8.765625 17.140625 \nQ 4.984375 26.078125 4.984375 36.328125 \nQ 4.984375 47.515625 9.25 55.828125 \nQ 13.53125 64.15625 21.40625 68.46875 \nQ 29.296875 72.796875 38.765625 72.796875 \nQ 49.515625 72.796875 56.828125 67.328125 \nQ 64.15625 61.859375 67.046875 51.953125 \nL 57.71875 49.75 \nQ 55.21875 57.5625 50.484375 61.125 \nQ 45.75 64.703125 38.578125 64.703125 \nQ 30.328125 64.703125 24.78125 60.734375 \nQ 19.234375 56.78125 16.984375 50.109375 \nQ 14.75 43.453125 14.75 36.375 \nQ 14.75 27.25 17.40625 20.4375 \nQ 20.0625 13.625 25.671875 10.25 \nQ 31.296875 6.890625 37.84375 6.890625 \nQ 45.796875 6.890625 51.3125 11.46875 \nQ 56.84375 16.0625 58.796875 25.09375 \nz\n\" id=\"ArialMT-67\"/>\n </defs>\n <use xlink:href=\"#ArialMT-97\"/>\n <use x=\"55.615234\" xlink:href=\"#ArialMT-118\"/>\n <use x=\"105.615234\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"161.230469\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"194.53125\" xlink:href=\"#ArialMT-97\"/>\n <use x=\"250.146484\" xlink:href=\"#ArialMT-103\"/>\n <use x=\"305.761719\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"361.376953\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"389.160156\" xlink:href=\"#ArialMT-108\"/>\n <use x=\"411.376953\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"466.992188\" xlink:href=\"#ArialMT-97\"/>\n <use x=\"522.607422\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"555.908203\" xlink:href=\"#ArialMT-110\"/>\n <use x=\"611.523438\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"633.740234\" xlink:href=\"#ArialMT-110\"/>\n <use x=\"689.355469\" xlink:href=\"#ArialMT-103\"/>\n <use x=\"744.970703\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"772.753906\" xlink:href=\"#ArialMT-99\"/>\n <use x=\"822.753906\" xlink:href=\"#ArialMT-117\"/>\n <use x=\"878.369141\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"911.669922\" xlink:href=\"#ArialMT-118\"/>\n <use x=\"961.669922\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"1017.285156\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"1045.068359\" xlink:href=\"#ArialMT-111\"/>\n <use x=\"1100.683594\" xlink:href=\"#ArialMT-102\"/>\n <use x=\"1128.466797\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"1156.25\" xlink:href=\"#ArialMT-79\"/>\n <use x=\"1234.033203\" xlink:href=\"#ArialMT-110\"/>\n <use x=\"1289.648438\" xlink:href=\"#ArialMT-45\"/>\n <use x=\"1322.949219\" xlink:href=\"#ArialMT-80\"/>\n <use x=\"1389.648438\" xlink:href=\"#ArialMT-111\"/>\n <use x=\"1445.263672\" xlink:href=\"#ArialMT-108\"/>\n <use x=\"1467.480469\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"1489.697266\" xlink:href=\"#ArialMT-99\"/>\n <use x=\"1539.697266\" xlink:href=\"#ArialMT-121\"/>\n <use x=\"1589.697266\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"1617.480469\" xlink:href=\"#ArialMT-70\"/>\n <use x=\"1678.564453\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"1700.78125\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"1734.082031\" xlink:href=\"#ArialMT-115\"/>\n <use x=\"1784.082031\" xlink:href=\"#ArialMT-116\"/>\n <use x=\"1811.865234\" xlink:href=\"#ArialMT-45\"/>\n <use x=\"1845.166016\" xlink:href=\"#ArialMT-86\"/>\n <use x=\"1910.115234\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"1932.332031\" xlink:href=\"#ArialMT-115\"/>\n <use x=\"1982.332031\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"2004.548828\" xlink:href=\"#ArialMT-116\"/>\n <use x=\"2032.332031\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"2060.115234\" xlink:href=\"#ArialMT-77\"/>\n <use x=\"2143.416016\" xlink:href=\"#ArialMT-67\"/>\n <use x=\"2215.632812\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"2243.416016\" xlink:href=\"#ArialMT-67\"/>\n <use x=\"2315.632812\" xlink:href=\"#ArialMT-111\"/>\n <use x=\"2371.248047\" xlink:href=\"#ArialMT-110\"/>\n <use x=\"2426.863281\" xlink:href=\"#ArialMT-116\"/>\n <use x=\"2454.646484\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"2487.947266\" xlink:href=\"#ArialMT-111\"/>\n <use x=\"2543.5625\" xlink:href=\"#ArialMT-108\"/>\n </g>\n </g>\n <g id=\"legend_1\">\n <g id=\"patch_7\">\n <path d=\"M 219.054844 233.883125 \nL 374.692813 233.883125 \nQ 376.892812 233.883125 376.892812 231.683125 \nL 376.892812 201.534531 \nQ 376.892812 199.334531 374.692813 199.334531 \nL 219.054844 199.334531 \nQ 216.854844 199.334531 216.854844 201.534531 \nL 216.854844 231.683125 \nQ 216.854844 233.883125 219.054844 233.883125 \nz\n\" style=\"fill:#eaeaf2;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;\"/>\n </g>\n <g id=\"line2d_18\">\n <path d=\"M 221.254844 207.758125 \nL 243.254844 207.758125 \n\" style=\"fill:none;stroke:#4c72b0;stroke-linecap:round;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_19\"/>\n <g id=\"text_18\">\n <!-- rewards -->\n <g style=\"fill:#262626;\" transform=\"translate(252.054844 211.608125)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 16.15625 0 \nL 0.296875 51.859375 \nL 9.375 51.859375 \nL 17.625 21.921875 \nL 20.703125 10.796875 \nQ 20.90625 11.625 23.390625 21.484375 \nL 31.640625 51.859375 \nL 40.671875 51.859375 \nL 48.4375 21.78125 \nL 51.03125 11.859375 \nL 54 21.875 \nL 62.890625 51.859375 \nL 71.4375 51.859375 \nL 55.21875 0 \nL 46.09375 0 \nL 37.84375 31.0625 \nL 35.84375 39.890625 \nL 25.34375 0 \nz\n\" id=\"ArialMT-119\"/>\n </defs>\n <use xlink:href=\"#ArialMT-114\"/>\n <use x=\"33.300781\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"88.916016\" xlink:href=\"#ArialMT-119\"/>\n <use x=\"161.132812\" xlink:href=\"#ArialMT-97\"/>\n <use x=\"216.748047\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"250.048828\" xlink:href=\"#ArialMT-100\"/>\n <use x=\"305.664062\" xlink:href=\"#ArialMT-115\"/>\n </g>\n </g>\n <g id=\"line2d_20\">\n <path d=\"M 221.254844 223.317969 \nL 243.254844 223.317969 \n\" style=\"fill:none;stroke:#dd8452;stroke-linecap:round;stroke-width:1.5;\"/>\n </g>\n <g id=\"line2d_21\"/>\n <g id=\"text_19\">\n <!-- moving average rewards -->\n <g style=\"fill:#262626;\" transform=\"translate(252.054844 227.167969)scale(0.11 -0.11)\">\n <defs>\n <path d=\"M 6.59375 0 \nL 6.59375 51.859375 \nL 14.453125 51.859375 \nL 14.453125 44.578125 \nQ 16.890625 48.390625 20.9375 50.703125 \nQ 25 53.03125 30.171875 53.03125 \nQ 35.9375 53.03125 39.625 50.640625 \nQ 43.3125 48.25 44.828125 43.953125 \nQ 50.984375 53.03125 60.84375 53.03125 \nQ 68.5625 53.03125 72.703125 48.75 \nQ 76.859375 44.484375 76.859375 35.59375 \nL 76.859375 0 \nL 68.109375 0 \nL 68.109375 32.671875 \nQ 68.109375 37.9375 67.25 40.25 \nQ 66.40625 42.578125 64.15625 43.984375 \nQ 61.921875 45.40625 58.890625 45.40625 \nQ 53.421875 45.40625 49.796875 41.765625 \nQ 46.1875 38.140625 46.1875 30.125 \nL 46.1875 0 \nL 37.40625 0 \nL 37.40625 33.6875 \nQ 37.40625 39.546875 35.25 42.46875 \nQ 33.109375 45.40625 28.21875 45.40625 \nQ 24.515625 45.40625 21.359375 43.453125 \nQ 18.21875 41.5 16.796875 37.734375 \nQ 15.375 33.984375 15.375 26.90625 \nL 15.375 0 \nz\n\" id=\"ArialMT-109\"/>\n </defs>\n <use xlink:href=\"#ArialMT-109\"/>\n <use x=\"83.300781\" xlink:href=\"#ArialMT-111\"/>\n <use x=\"138.916016\" xlink:href=\"#ArialMT-118\"/>\n <use x=\"188.916016\" xlink:href=\"#ArialMT-105\"/>\n <use x=\"211.132812\" xlink:href=\"#ArialMT-110\"/>\n <use x=\"266.748047\" xlink:href=\"#ArialMT-103\"/>\n <use x=\"322.363281\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"350.146484\" xlink:href=\"#ArialMT-97\"/>\n <use x=\"405.761719\" xlink:href=\"#ArialMT-118\"/>\n <use x=\"455.761719\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"511.376953\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"544.677734\" xlink:href=\"#ArialMT-97\"/>\n <use x=\"600.292969\" xlink:href=\"#ArialMT-103\"/>\n <use x=\"655.908203\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"711.523438\" xlink:href=\"#ArialMT-32\"/>\n <use x=\"739.306641\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"772.607422\" xlink:href=\"#ArialMT-101\"/>\n <use x=\"828.222656\" xlink:href=\"#ArialMT-119\"/>\n <use x=\"900.439453\" xlink:href=\"#ArialMT-97\"/>\n <use x=\"956.054688\" xlink:href=\"#ArialMT-114\"/>\n <use x=\"989.355469\" xlink:href=\"#ArialMT-100\"/>\n <use x=\"1044.970703\" xlink:href=\"#ArialMT-115\"/>\n </g>\n </g>\n </g>\n </g>\n </g>\n <defs>\n <clipPath id=\"pc2b40b28a4\">\n <rect height=\"217.44\" width=\"334.8\" x=\"47.592813\" y=\"21.943125\"/>\n </clipPath>\n </defs>\n</svg>\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEXCAYAAABCjVgAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABc4klEQVR4nO3dd3wUZf7A8c9sT7JJliSbRgmE0DuGKhipEiB0PBBB4RS7iCcSEDlBEUFUwAInd8rvsAAiRZRYwEOQ3ov0mgRCOqRny8zvj5CVkIQU0mSf9+vlSzI7O/PdZ2fnO0+ZZyRFURQEQRAEAVBVdwCCIAhCzSGSgiAIguAgkoIgCILgIJKCIAiC4CCSgiAIguAgkoIgCILgIJLCX8yHH37I7Nmzq2RfTz75JOfOnauSfVW3JUuW8OCDDzJt2rRCr9lsNpYsWUL//v0ZMGAAAwYMYNasWVy/fr3M+9mzZw+tW7dm8ODBDBkyhMGDBzNs2DB+/fXXEt/bs2dPjh07xrFjx3jxxRfLvO+iNGnShIiICAYPHuz477XXXgNg8ODBpKWllXpb6enpjBs3rsjXPvroI/7+978XWn78+HG6dOnCkSNHSvxMixYtYv369Y7tbd68udA6sbGxNGnShDFjxhR6bdq0aTRp0oSUlBQA7HY7n3/+OcOGDWPw4MH079+fd999F4vFUuT+y7p+adypzO5k7dq1PPXUU+Xe7x0pwl/K4sWLlVmzZlV3GPecnj17Kvv27SvytRdeeEF5+eWXldTUVEVRFMVisSiffvqp0rdvXyU9Pb1M+9m9e7cyYMCAAstOnjyptG3bVklOTr7je3v06KEcPXq0TPsrSePGjUvcb2nFxMQobdu2LfK1+Ph4pWXLlsrVq1cLLH/99deV9957r8z7evTRR5WoqKgiY2jVqpXStWtXJTY21rE8MzNT6dOnT4HPO2PGDOWFF15Q0tLSHOs888wzyiuvvFLkPsu6fmncqczu5Ntvv1UmTpxY7v3eiaZyUk3NJssyb7/9NkeOHCEzMxNFUXjrrbdo3LgxYWFh/PTTT5jNZgAefvhhnnvuObp06cKCBQvYt28fdrud5s2bM2PGDIxGIz179qR169acPn2al19+GY1Gw7/+9S8sFgspKSkMGTKEl156CYBPP/2UNWvW4ObmRmhoKFu2bOHXX3/FYrEUu/3ixMfHM3v2bOLi4rBarQwYMICnn34agKVLl7J582Zyc3PJzs5m6tSp9OnThw8//JDDhw+TkJBAkyZNCAoK4sqVKyQmJnLlyhW8vLz44IMP8PPzo2fPnixatIisrCw++OAD6taty9mzZ7FYLMycOZPOnTuTkpLCtGnTiI6OxmQyYTabadSoES+88EKBWDMzM3nrrbc4ePAgarWa3r17M3nyZKZNm0ajRo0cV5GRkZGOv28t1xdeeIElS5awceNGANLS0ujVqxebN28mJyen2HK41bVr13jjjTe4cuUKiqIwZMgQnnjiCV566SXi4+N57bXXmDRpEv3793e859ChQxw+fJhff/0VjSbv56LVannyySc5ePAgK1eu5IknnqBVq1ZMnDiRHTt2kJCQwLhx43j88cdLdTw2bdoUg8HAlStXcHd355133mHXrl2o1Wpat27NtGnTChwHe/bs4c033+T7778vslyffvppwsLCWL16NQ0aNABg/PjxjBkzht69e5cqJsirRezatYutW7eyZs0asrOzMRqNvP/++0ydOpXU1FQAwsLCeOmll5g2bRo5OTkMHjyYtWvXolarHdvy9fWlZ8+erF27lueeew7IOyaioqLYsGFDgc+0f/9+3nnnHWRZBuCpp57ioYcechwbBoOB48ePM3/+fNRqNX369CkQt1qtJjw8nI0bNzqOg59//plevXrx2WefARATE8PGjRv5/fffHWXr6urKrFmzOHToUKGyKM366enpzJo1i1OnTiFJEt27d3ecD4o7Pm4vszZt2tCrVy9OnTrFggULyM3NZf78+WRnZ6PVannppZd44IEHSv0dlodTNh8dOXKEhIQEVq1axaZNmxg6dCjLli3D3d2dPn368N133wFw/vx5EhMT6d69O59++ilqtZq1a9fy3Xff4evry4IFCxzbbNSoEVFRUfTu3ZvPPvuMd955h7Vr17Jq1So+/fRTUlJS2L59O2vXrmXNmjWsXbuWzMxMx/tL2n5RpkyZwvDhwx3b3LlzJ5s2beLKlSvs3LmTL774go0bNzJ58mQWL17seN+VK1dYt26dY/v79+9n0aJF/Pjjj3h4eLBq1apC+zp69CgTJkxg/fr1jBgxgo8++giAt956i5CQEKKioli0aBEHDx4sMtbFixeTm5vLpk2bWL9+PQcPHmTv3r0lflf55RoeHk5mZibHjh0D4PvvvycsLAxPT89iy+F2r7zyCp06dWLjxo18/fXXfPfdd/zwww8sXLjQUd63JgTISwpt27Z1JIRbde3alQMHDgBgsVioVasWK1euZPHixbz33nvk5uaW+Pkg74SlUqkICQlhyZIlJCQksGHDBjZs2IAsy8yfP7/Y9xZVrseOHWPIkCF88803AERHR3Px4kV69OhR5DYee+yxAs1HycnJhdY5d+4cK1asYMWKFaxevZo6deqwbt06vvzySy5fvkx6ejpz587FYDCwYcOGAgkh35gxY1i7di3KzUkUfvjhBzp27EhgYGCB9T788EPGjx/P2rVrefvtt9m9e3eh7bRs2ZJXX321UELIN2TIEMfvGGD9+vUMHTrU8feJEycICQkpdNFlNpvp27dvoe2VZv233noLk8nExo0b+fbbbzl9+rQjCRV3fNxeZlarlR49evDTTz9Rp04dXnzxRV577TU2btzIvHnzmDJlCjExMUV+5orilDWFdu3a4enpycqVK4mJiWHPnj24ubkBMHLkSGbNmsXf//53vv32W4YNG4ZKpWLr1q2kp6ezc+dOAKxWK97e3o5thoaGAiBJEkuXLmXr1q18//33nD9/HkVRyM7O5rfffqNfv354eHgAeQd3/gFf0vZvl5WVxb59+7hx4waLFi1yLDt16hT9+/dn3rx5bNy4kcuXLztqRPluP8l17NjRcbA3b96cGzduFNpfYGAgzZo1c6yzbt06AH777TfHv319fenXr1+R8e7cuZNp06ahVqtRq9V88cUXAI73FufWch0xYgTr1q2jVatWrF27lilTppRYDreW18GDBx0/Und3d4YNG8a2bdsYMGDAHWOw2WxFLrdYLEiS5Pi7V69eALRo0QKLxUJWVhZ6vb7Q+6Kjoxk8eLBj2/7+/nzyySe4uLiwbds2Jk+ejFarBWDs2LGOK+uiFFeuvr6+PProo0yePJlVq1YxYsSIIk/UAP/3f/+Hl5fXHcugSZMmjmOke/fuTJw4kbi4OLp27co//vEP3N3dizxubtWxY0dcXFzYvXs3Xbp0YdWqVfzjH/8otF54eDizZ8/m119/pWvXrrz88st33G5RWrZsiUql4vjx43h7e5OZmUnjxo0dr6tUKkdNpDRKs/62bdv4+uuvkSQJnU7HqFGj+L//+z8mTpwIFH18FCX/mD969Cj16tWjTZs2QN4FUvv2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CKjN1Kmv4elpYsSICJo3b8nZs6f55JN/s3r11xw4sI+0tDRMJhNz5szH29uHLVt+4T//WYrBYKBx46bY7XZee+0NTp78g8WL3yc3NwdPTxNTpkynXr26BWJ9/vmJeHh4cvHieWbPnktycnKhWDZt+p7U1BSeffZF9u3bzfTprxIV9SsajYZHHx3J4sVLOXz4ECtXfkFubi65ublERs6gbdv2hbZ//vw5/u///oObmxF/f39cXFwB+OijhezfvweVSkW3bmFMmDDxro+RciWFEydOsGXLFkJCQhgyZAgAvr6+LFu2jHnz5vH666/z8ccf4+Xlxfz58wGYNGkSkZGRDBgwAHd3dxYsWADA2LFjmTlzJgMGDECn0znWr2weys0nromkIFQh65kdWE9vq5Rta5s8gLbx/SWud+LEH3z99Te4uXkQEdGH5557if/8ZwVvvz2LzZt/pk+fh3j33bdZsuQ/BAQE8tVX/+X99+fzxhtzePfdvOHlHh4ebN78Ey+88DKXLl0ssH1PT0+WLfsva9asZMWKz5gz513eeusNnnzyabp06caqVV9it9sLxbVx4wbGj/877dp14MqVWB5//BFGjhxFjx69+d//NjN8+N/YuvVXund/kPT0dJYu/YjFi5fi4eHB+vXfsmTJh0RGvg5A585dmT17LrGxMURHX2Lp0s9QqVS8+eZMfv75R/r1G8Dixe/x73//F29vH2bMmIqbmxtWq5V33nmLefM+wN/fnz17djFv3hw+/nhpoXgbNgzh7bffJTU1lTlzZhWKZfToscyenRfP/v37MBgMnDlzCpOpFi4urphMtdiw4Vvmz1+IyWTi++838NVXK2jbtn2B7SclJbJkyWI+//wrPDw8efXVl3BxceXatTh2797JypVryMzMZt68t8jNzS0wU215lCspNG/enNOnTxf5WqNGjVi5cmWh5SaTiaVLCxesXq9n3rx55Qnjrpjyk4J75TdVCUJNEhzcED8/f2w2GU9PE6GhHQHw8/MnPT2NEyf+oFmzFgQE5NXYBw0axooVy9FoNISF9eC3336lQ4dO3Lhxg+bNWxZKCp06db25nxB+++1/pKXd4Nq1OLp0yZtQb8CAwXzzTeFzxPPPv8T+/btZseJzzp0763hGQ79+/Vm06D2GD/8bmzf/xJNPPsOJE8eJj7/Giy/m9WPIsh0Pjz9HETZv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BWpOmQG0adOGixcvcvnyZex2O99//z0PPPAAtWvXRq/Xc+DAAQDWr19fpWWXkZHB3//+dyZNmsSECRMcyw0GA++++y4xMTEoisKXX35ZpWVX3HdXXDlWtZSUFHJycqhbt65jWVWWWVHniMo+xpxuSKqfnx+TJ09m3LhxWK1WRowYQevWrasllv/85z/k5ubyzjvvOJaNGjWKiRMnMnr0aGw2G3379mXgwIFVHluPHj04cuQIQ4YMQZZlHnnkEe67774aUXYxMTH4+/s7/m7atGmNKDMAvV7PO++8wwsvvEBubi5hYWH069cPgAULFjBjxgwyMzNp3ry5o426KqxZs4akpCQ+++wzPvvsMwB69uzJpEmTmD17Ns888wxWq5X27ds7muWqwp2+u+LKsSrFxsYWONYAvLy8qqzMijtHVOYxJp68JgiCIDg4XfORIAiCUDyRFARBEAQHkRQEQRAEB5EUBEEQBAeRFARBEAQHkRQEoQI8+eSTnDt3rkzveeqpp1i7dm0lRSQI5eN09ykIQmVYtmxZdYcgCBVCJAXBqf3666+O50MYDAamTp3K77//ztmzZ0lKSiI5OZmmTZsyZ84cjEYjX331FStXrkSr1aLX65k9ezYhISH07NmTRYsW0apVK8dzC1QqFT4+Prz++us0aNCA+Ph4IiMjSUhIIDAwkOTkZEcc58+fZ86cOVy/fh273c7YsWMZMWIEmZmZTJs2jcuXL6NSqWjRogWzZ89GpRKVfKGSlH+mb0H4a7t48aIycOBAJSUlRVGUvOcz3H///co777yjPPDAA0piYqJit9uVl19+WXnnnXcUm82mtGjRwjH3/7p165SVK1cqiqIoPXr0UI4ePars3LlT6d27t5KcnKwoiqJ8++23Snh4uCLLsvLss88qH3zwgaIoinLp0iWlbdu2yrfffqtYrValf//+yvHjxxVFUZS0tDQlPDxcOXTokLJu3TplwoQJiqIois1mU1577TXl0qVLVVlMgpMRNQXBae3YsYOEhAQef/xxxzJJkoiOjqZfv374+PgAMGLECN5++22mTp1Kv379GDVqFA8++CD3338/ERERBba5fft2+vfvj5eXF5A3p/2cOXOIjY1l586dTJ06FYCgoCA6deoE5E2JHB0dzfTp0x3bycnJ4cSJE3Tv3p0PPviAsWPH0rVrVx577DGCgoIqs1gEJyeSguC0ZFmmS5cuLFy40LEsLi6OVatWYbFYCqyX31yzYMECzpw5w86dO1m2bBlr1qxhyZIljnWVImaNURQFm81WaHrj/Jk17XY7Hh4ebNiwwfFaUlIS7u7u6PV6fvnlF/bs2cPu3bsZP348M2bMqJZ5gATnIBomBafVuXNnduzYwfnz5wH47bffGDRoELm5uWzZsoX09HRkWWb16tX06NGDlJQUwsLCMJlMPP7447z00kucPn26wDa7devGpk2bSElJAeDbb7/FZDIRFBRE9+7dWbVqFZA3/fKePXsAaNCgAXq93pEU4uLiGDhwIMePH+err75i2rRpdOvWjSlTptCtWzfOnj1bVUUkOCExIZ7g1KKioli6dKljTvzp06eza9cudu/ejd1uJzU1lQ4dOjBjxgwMBgMrV67kv//9LwaDAbVazeTJk+natWuBjuYvv/ySlStXIssyXl5ezJw5k0aNGpGSksK0adOIjo7G398fm83G0KFDGTZsGKdOnXJ0NNtsNsaNG8fo0aPJyspi+vTpnD59GhcXFwIDA5kzZw6enp7VXXTCPUokBUG4zYcffkhqaiozZ86s7lAEocqJ5iNBEATBQdQUBEEQBAdRUxAEQRAcRFIQBEEQHERSEARBEBxEUhAEQRAcRFIQBEEQHERSEARBEBz+H0nZIJBEFGUBAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
],
"source": [
"cfg = QlearningConfig()\n",
"env = gym.make(\"CliffWalking-v0\") # 0 up, 1 right, 2 down, 3 left\n",
"env = CliffWalkingWapper(env)\n",
"action_dim = env.action_space.n\n",
"agent = QLearning(action_dim,cfg)\n",
"rewards,ma_rewards = train(cfg,env,agent)\n",
"plot_rewards(rewards,ma_rewards,tag=\"train\",algo = \"On-Policy First-Visit MC Control\",save=False)"
]
}
]
}